X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=b561fd12737cd6904210d86905b1691fff6fe548;hp=f98fe7266ab01759e9583696d217dbd7f9c33b3d;hb=2ee32e7f7707349d12c98181bbe6842f6d19f60e;hpb=de9a7ec6b70c796182e0a7992aa380a58b954b94 diff --git a/src/client/client.cpp b/src/client/client.cpp index f98fe726..b561fd12 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -121,10 +121,11 @@ bool Client::isConnected() { void Client::connectToCore(const QVariantMap &conn) { // TODO implement SSL coreConnectionInfo = conn; - if(isConnected() || socket != 0) { + if(isConnected()) { emit coreConnectionError(tr("Already connected to Core!")); return; } + if(socket != 0) socket->deleteLater(); if(conn["Host"].toString().isEmpty()) { clientMode = LocalCore; socket = new QBuffer(this); @@ -176,6 +177,7 @@ void Client::coreSocketDisconnected() { connectedToCore = false; emit disconnected(); socket->deleteLater(); + blockSize = 0; /* Clear internal data. Hopefully nothing relies on it at this point. */ _bufferModel->clear(); @@ -194,7 +196,7 @@ void Client::coreSocketDisconnected() { layoutTimer->stop(); } -void Client::coreSocketStateChanged(QAbstractSocket::SocketState state) { qDebug() << state; +void Client::coreSocketStateChanged(QAbstractSocket::SocketState state) { if(state == QAbstractSocket::UnconnectedState) coreSocketDisconnected(); } @@ -205,6 +207,7 @@ void Client::recvCoreState(const QVariant &state) { syncToCore(state); } +// TODO: auth errors void Client::syncToCore(const QVariant &coreState) { if(!coreState.toMap().contains("SessionState")) { emit coreConnectionError(tr("Invalid data received from core!")); @@ -261,6 +264,7 @@ QStringList Client::sessionDataKeys() { void Client::coreSocketError(QAbstractSocket::SocketError) { emit coreConnectionError(socket->errorString()); + socket->deleteLater(); } void Client::coreHasData() { @@ -365,13 +369,13 @@ void Client::recvNetworkState(QString net, QVariant state) { } void Client::recvMessage(const Message &msg) { - Buffer *b = buffer(msg.buffer); + Buffer *b = buffer(msg.buffer()); Buffer::ActivityLevel level = Buffer::OtherActivity; - if(msg.type == Message::Plain || msg.type == Message::Notice){ + if(msg.type() == Message::Plain || msg.type() == Message::Notice){ level |= Buffer::NewMessage; } - if(msg.flags & Message::Highlight){ + if(msg.flags() & Message::Highlight){ level |= Buffer::Highlight; } emit bufferActivity(level, b);