-void Client::recvStatusMsg(QString /*net*/, QString /*msg*/) {
- //recvMessage(net, Message::server("", QString("[STATUS] %1").arg(msg)));
-}
-
-void Client::recvMessage(const Message &msg) {
- Message msg_ = msg;
- messageProcessor()->process(msg_);
-}
-
-void Client::setBufferLastSeenMsg(BufferId id, const MsgId &msgId) {
- if(!bufferSyncer())
- return;
- bufferSyncer()->requestSetLastSeenMsg(id, msgId);
-}
-
-void Client::removeBuffer(BufferId id) {
- if(!bufferSyncer()) return;
- bufferSyncer()->requestRemoveBuffer(id);
-}
-
-void Client::bufferRemoved(BufferId bufferId) {
- // select a sane buffer (status buffer)
- /* we have to manually select a buffer because otherwise inconsitent changes
- * to the model might occur:
- * the result of a buffer removal triggers a change in the selection model.
- * the newly selected buffer might be a channel that hasn't been selected yet
- * and a new nickview would be created (which never heard of the "rowsAboutToBeRemoved").
- * this new view (and/or) its sort filter will then only receive a "rowsRemoved" signal.
- */
- QModelIndex current = bufferModel()->currentIndex();
- if(current.data(NetworkModel::BufferIdRole).value<BufferId>() == bufferId) {
- bufferModel()->setCurrentIndex(current.sibling(0,0));
- }
-
- // and remove it from the model
- networkModel()->removeBuffer(bufferId);
-}
-
-void Client::bufferRenamed(BufferId bufferId, const QString &newName) {
- QModelIndex bufferIndex = networkModel()->bufferIndex(bufferId);
- if(bufferIndex.isValid()) {
- networkModel()->setData(bufferIndex, newName, Qt::DisplayRole);
- }
-}
-
-void Client::logMessage(QtMsgType type, const char *msg) {
- QString prefix;
- switch (type) {
- case QtDebugMsg:
- prefix = "Debug";
- break;
- case QtWarningMsg:
- prefix = "Warning";
- break;
- case QtCriticalMsg:
- prefix = "Critical";
- break;
- case QtFatalMsg:
- Quassel::logFatalMessage(msg);
- return;
- }
- QString msgString = QString("%1: %3\n").arg(prefix, msg);
- instance()->_debugLog << msgString;
- emit instance()->logUpdated(msgString);
+void Client::recvStatusMsg(QString /*net*/, QString /*msg*/)
+{
+ //recvMessage(net, Message::server("", QString("[STATUS] %1").arg(msg)));
+}
+
+
+void Client::recvMessage(const Message &msg)
+{
+ Message msg_ = msg;
+ messageProcessor()->process(msg_);
+}
+
+
+void Client::setBufferLastSeenMsg(BufferId id, const MsgId &msgId)
+{
+ if (bufferSyncer())
+ bufferSyncer()->requestSetLastSeenMsg(id, msgId);
+}
+
+
+void Client::setMarkerLine(BufferId id, const MsgId &msgId)
+{
+ if (bufferSyncer())
+ bufferSyncer()->requestSetMarkerLine(id, msgId);
+}
+
+
+MsgId Client::markerLine(BufferId id)
+{
+ if (id.isValid() && networkModel())
+ return networkModel()->markerLineMsgId(id);
+ return MsgId();
+}
+
+
+void Client::removeBuffer(BufferId id)
+{
+ if (!bufferSyncer()) return;
+ 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::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
+ * to the model might occur:
+ * the result of a buffer removal triggers a change in the selection model.
+ * the newly selected buffer might be a channel that hasn't been selected yet
+ * and a new nickview would be created (which never heard of the "rowsAboutToBeRemoved").
+ * this new view (and/or) its sort filter will then only receive a "rowsRemoved" signal.
+ */
+ QModelIndex current = bufferModel()->currentIndex();
+ if (current.data(NetworkModel::BufferIdRole).value<BufferId>() == bufferId) {
+ bufferModel()->setCurrentIndex(current.sibling(0, 0));
+ }
+
+ // and remove it from the model
+ networkModel()->removeBuffer(bufferId);
+}
+
+
+void Client::bufferRenamed(BufferId bufferId, const QString &newName)
+{
+ QModelIndex bufferIndex = networkModel()->bufferIndex(bufferId);
+ if (bufferIndex.isValid()) {
+ networkModel()->setData(bufferIndex, newName, Qt::DisplayRole);
+ }
+}
+
+
+void Client::buffersPermanentlyMerged(BufferId bufferId1, BufferId bufferId2)
+{
+ QModelIndex idx = networkModel()->bufferIndex(bufferId1);
+ bufferModel()->setCurrentIndex(bufferModel()->mapFromSource(idx));
+ networkModel()->removeBuffer(bufferId2);
+}
+
+
+void Client::markBufferAsRead(BufferId id)
+{
+ if (bufferSyncer() && id.isValid())
+ bufferSyncer()->requestMarkBufferAsRead(id);
+}
+
+void Client::changePassword(QString newPassword) {
+ CoreAccount account = currentCoreAccount();
+ account.setPassword(newPassword);
+ coreAccountModel()->createOrUpdateAccount(account);
+ coreAccountModel()->save();
+ emit clientChangePassword(newPassword);
+}
+
+
+#if QT_VERSION < 0x050000
+void Client::logMessage(QtMsgType type, const char *msg)
+{
+ fprintf(stderr, "%s\n", msg);
+ fflush(stderr);
+ if (type == QtFatalMsg) {
+ Quassel::logFatalMessage(msg);
+ }
+ else {
+ QString msgString = QString("%1\n").arg(msg);
+
+ //Check to see if there is an instance around, else we risk recursions
+ //when calling instance() and creating new ones.
+ if (!instanceExists())
+ return;
+
+ instance()->_debugLog << msgString;
+ emit instance()->logUpdated(msgString);
+ }