/***************************************************************************
- * Copyright (C) 2005-2013 by the Quassel Project *
+ * Copyright (C) 2005-2015 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "clientirclisthelper.h"
#include "clientidentity.h"
#include "clientignorelistmanager.h"
+#include "clienttransfermanager.h"
#include "clientuserinputhandler.h"
#include "coreaccountmodel.h"
#include "coreconnection.h"
#include "quassel.h"
#include "signalproxy.h"
#include "util.h"
+#include "clientauthhandler.h"
#include <stdio.h>
#include <stdlib.h>
_inputHandler(0),
_networkConfig(0),
_ignoreListManager(0),
+ _transferManager(0),
_messageModel(0),
_messageProcessor(0),
_coreAccountModel(new CoreAccountModel(this)),
connect(bufferSyncer(), SIGNAL(buffersPermanentlyMerged(BufferId, BufferId)), _messageModel, SLOT(buffersPermanentlyMerged(BufferId, BufferId)));
connect(bufferSyncer(), SIGNAL(bufferMarkedAsRead(BufferId)), SIGNAL(bufferMarkedAsRead(BufferId)));
connect(networkModel(), SIGNAL(requestSetLastSeenMsg(BufferId, MsgId)), bufferSyncer(), SLOT(requestSetLastSeenMsg(BufferId, const MsgId &)));
- signalProxy()->synchronize(bufferSyncer());
+
+ SignalProxy *p = signalProxy();
+
+ if ((Client::coreFeatures() & Quassel::PasswordChange)) {
+ p->attachSignal(this, SIGNAL(clientChangePassword(QString)));
+ }
+
+ p->synchronize(bufferSyncer());
// create a new BufferViewManager
Q_ASSERT(!_bufferViewManager);
- _bufferViewManager = new ClientBufferViewManager(signalProxy(), this);
+ _bufferViewManager = new ClientBufferViewManager(p, this);
connect(_bufferViewManager, SIGNAL(initDone()), _bufferViewOverlay, SLOT(restore()));
// create AliasManager
Q_ASSERT(!_aliasManager);
_aliasManager = new ClientAliasManager(this);
connect(aliasManager(), SIGNAL(initDone()), SLOT(sendBufferedUserInput()));
- signalProxy()->synchronize(aliasManager());
+ p->synchronize(aliasManager());
// create NetworkConfig
Q_ASSERT(!_networkConfig);
_networkConfig = new NetworkConfig("GlobalNetworkConfig", this);
- signalProxy()->synchronize(networkConfig());
+ p->synchronize(networkConfig());
// create IgnoreListManager
Q_ASSERT(!_ignoreListManager);
_ignoreListManager = new ClientIgnoreListManager(this);
- signalProxy()->synchronize(ignoreListManager());
+ p->synchronize(ignoreListManager());
+
+ Q_ASSERT(!_transferManager);
+ _transferManager = new ClientTransferManager(this);
+ p->synchronize(transferManager());
// trigger backlog request once all active bufferviews are initialized
connect(bufferViewOverlay(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog()));
_ignoreListManager->deleteLater();
_ignoreListManager = 0;
}
+
+ if (_transferManager) {
+ _transferManager->deleteLater();
+ _transferManager = 0;
+ }
+
// we probably don't want to save pending input for reconnect
_userInputBuffer.clear();
bufferSyncer()->requestMarkBufferAsRead(id);
}
+void Client::changePassword(QString newPassword) {
+ CoreAccount account = currentCoreAccount();
+ account.setPassword(newPassword);
+ coreAccountModel()->createOrUpdateAccount(account);
+ emit clientChangePassword(newPassword);
+}
+
+#if QT_VERSION < 0x050000
void Client::logMessage(QtMsgType type, const char *msg)
{
fprintf(stderr, "%s\n", msg);
emit instance()->logUpdated(msgString);
}
}
+#else
+void Client::logMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg)
+{
+ Q_UNUSED(context);
+
+ fprintf(stderr, "%s\n", msg.toLocal8Bit().constData());
+ fflush(stderr);
+ if (type == QtFatalMsg) {
+ Quassel::logFatalMessage(msg.toLocal8Bit().constData());
+ }
+ 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);
+ }
+}
+#endif