#include "buffermodel.h"
#include "buffersettings.h"
#include "buffersyncer.h"
+#include "bufferviewconfig.h"
#include "bufferviewmanager.h"
#include "clientbacklogmanager.h"
#include "clientirclisthelper.h"
_messageProcessor(0),
_connectedToCore(false),
_syncedToCore(false),
+ _internalCore(false),
_debugLog(&_debugLogBuffer)
{
_signalProxy->synchronize(_ircListHelper);
void Client::createIdentity(const CertIdentity &id) {
QVariantMap additional;
+#ifdef HAVE_SSL
additional["KeyPem"] = id.sslKey().toPem();
additional["CertPem"] = id.sslCert().toPem();
+#endif
emit instance()->requestCreateIdentity(id, additional);
}
socket->setParent(0);
signalProxy()->addPeer(socket);
}
+ _internalCore = !socket;
_connectedToCore = true;
setCurrentCoreAccount(id);
}
connect(bufferSyncer(), SIGNAL(lastSeenMsgSet(BufferId, MsgId)), _networkModel, SLOT(setLastSeenMsgId(BufferId, MsgId)));
connect(bufferSyncer(), SIGNAL(bufferRemoved(BufferId)), this, SLOT(bufferRemoved(BufferId)));
connect(bufferSyncer(), SIGNAL(bufferRenamed(BufferId, QString)), this, SLOT(bufferRenamed(BufferId, QString)));
+ connect(bufferSyncer(), SIGNAL(buffersPermanentlyMerged(BufferId, BufferId)), this, SLOT(buffersPermanentlyMerged(BufferId, BufferId)));
+ connect(bufferSyncer(), SIGNAL(buffersPermanentlyMerged(BufferId, BufferId)), _messageModel, SLOT(buffersPermanentlyMerged(BufferId, BufferId)));
connect(bufferSyncer(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog()));
connect(networkModel(), SIGNAL(setLastSeenMsg(BufferId, MsgId)), bufferSyncer(), SLOT(requestSetLastSeenMsg(BufferId, const MsgId &)));
signalProxy()->synchronize(bufferSyncer());
Q_ASSERT(!_bufferViewManager);
_bufferViewManager = new BufferViewManager(signalProxy(), this);
connect(bufferViewManager(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog()));
-
+ connect(bufferViewManager(), SIGNAL(initDone()), this, SLOT(createDefautBufferView()));
_syncedToCore = true;
emit connected();
emit coreConnectionStateChanged(true);
Client::backlogManager()->requestInitialBacklog();
}
+void Client::createDefautBufferView() {
+ if(bufferViewManager()->bufferViewConfigs().isEmpty()) {
+ BufferViewConfig config(-1);
+ config.setBufferViewName(tr("All Buffers"));
+ config.initSetBufferList(networkModel()->allBufferIdsSorted());
+ bufferViewManager()->requestCreateBufferView(config.toVariantMap());
+ }
+}
+
void Client::setSecuredConnection() {
emit securedConnection();
}
bufferSyncer()->requestRemoveBuffer(id);
}
+void Client::renameBuffer(BufferId bufferId, const QString &newName) {
+ if(!bufferSyncer())
+ return;
+ bufferSyncer()->requestRenameBuffer(bufferId, newName);
+}
+
+void Client::mergeBuffersPermanently(BufferId bufferId1, BufferId bufferId2) {
+ if(!bufferSyncer())
+ return;
+ bufferSyncer()->requestMergeBuffersPermanently(bufferId1, bufferId2);
+}
+
void Client::bufferRemoved(BufferId bufferId) {
// select a sane buffer (status buffer)
/* we have to manually select a buffer because otherwise inconsitent changes
}
}
+void Client::buffersPermanentlyMerged(BufferId bufferId1, BufferId bufferId2) {
+ QModelIndex idx = networkModel()->bufferIndex(bufferId1);
+ bufferModel()->setCurrentIndex(bufferModel()->mapFromSource(idx));
+ networkModel()->removeBuffer(bufferId2);
+}
+
void Client::logMessage(QtMsgType type, const char *msg) {
fprintf(stderr, "%s\n", msg);
fflush(stderr);