X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=d90e7eb8ff02aee7e17ef1b620b9e2f1d5cde9d9;hb=f6781dc095957d65e8fc1683fda1c5a5b9cbedbb;hp=92be56ef4e340b6a0d8d73ed5e78905596519faf;hpb=236dda81632fa792e788d45b0f4f31b973823f7f;p=quassel.git diff --git a/src/client/client.cpp b/src/client/client.cpp index 92be56ef..d90e7eb8 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -21,15 +21,17 @@ #include "client.h" #include "abstractmessageprocessor.h" +#include "abstractui.h" #include "bufferinfo.h" #include "buffermodel.h" #include "buffersettings.h" #include "buffersyncer.h" #include "bufferviewconfig.h" -#include "bufferviewmanager.h" #include "clientbacklogmanager.h" +#include "clientbufferviewmanager.h" #include "clientirclisthelper.h" #include "clientidentity.h" +#include "clientuserinputhandler.h" #include "ircchannel.h" #include "ircuser.h" #include "message.h" @@ -37,7 +39,6 @@ #include "network.h" #include "networkmodel.h" #include "quassel.h" -#include "quasselui.h" #include "signalproxy.h" #include "util.h" @@ -78,6 +79,7 @@ Client::Client(QObject *parent) _backlogManager(new ClientBacklogManager(this)), _bufferViewManager(0), _ircListHelper(new ClientIrcListHelper(this)), + _inputHandler(new ClientUserInputHandler(this)), _messageModel(0), _messageProcessor(0), _connectedToCore(false), @@ -109,7 +111,7 @@ void Client::init() { p->attachSlot(SIGNAL(displayStatusMsg(QString, QString)), this, SLOT(recvStatusMsg(QString, QString))); p->attachSlot(SIGNAL(bufferInfoUpdated(BufferInfo)), _networkModel, SLOT(bufferUpdated(BufferInfo))); - p->attachSignal(this, SIGNAL(sendInput(BufferInfo, QString))); + p->attachSignal(inputHandler(), SIGNAL(sendInput(BufferInfo, QString))); p->attachSignal(this, SIGNAL(requestNetworkStates())); p->attachSignal(this, SIGNAL(requestCreateIdentity(const Identity &, const QVariantMap &)), SIGNAL(createIdentity(const Identity &, const QVariantMap &))); @@ -264,8 +266,8 @@ void Client::coreIdentityRemoved(IdentityId id) { } /*** ***/ -void Client::userInput(BufferInfo bufferInfo, QString message) { - emit instance()->sendInput(bufferInfo, message); +void Client::userInput(const BufferInfo &bufferInfo, const QString &message) { + inputHandler()->handleUserInput(bufferInfo, message); } /*** core connection stuff ***/ @@ -297,13 +299,10 @@ void Client::setSyncedToCore() { // create a new BufferViewManager Q_ASSERT(!_bufferViewManager); - _bufferViewManager = new BufferViewManager(signalProxy(), this); + _bufferViewManager = new ClientBufferViewManager(signalProxy(), this); connect(bufferViewManager(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog())); connect(bufferViewManager(), SIGNAL(initDone()), this, SLOT(createDefaultBufferView())); - createDefaultIdentity(); - createDefaultNetworks(); - _syncedToCore = true; emit connected(); emit coreConnectionStateChanged(true); @@ -323,28 +322,6 @@ void Client::createDefaultBufferView() { } } -void Client::createDefaultIdentity() { - if(_identities.isEmpty()) { - Identity identity; - identity.setToDefaults(); - identity.setIdentityName(tr("Default Identity")); - createIdentity(identity); - } -} - -void Client::createDefaultNetworks() { - if(_networks.isEmpty()) { - QStringList defaultNets = Network::presetNetworks(true); - foreach(QString net, defaultNets) { - NetworkInfo info = Network::networkInfoFromPreset(net); - if(info.networkName.isEmpty()) - continue; - QStringList defaultChans = Network::presetDefaultChannels(net); - createNetwork(info, defaultChans); - } - } -} - void Client::disconnectFromCore() { if(!isConnected()) return; @@ -446,6 +423,12 @@ void Client::mergeBuffersPermanently(BufferId bufferId1, BufferId bufferId2) { bufferSyncer()->requestMergeBuffersPermanently(bufferId1, bufferId2); } +void Client::purgeKnownBufferIds() { + if(!bufferSyncer()) + return; + bufferSyncer()->requestPurgeBufferIds(); +} + void Client::bufferRemoved(BufferId bufferId) { // select a sane buffer (status buffer) /* we have to manually select a buffer because otherwise inconsitent changes