#include "chatmonitorview.h"
#include "chatview.h"
#include "client.h"
-#include "clientsyncer.h"
#include "clientbacklogmanager.h"
#include "clientbufferviewconfig.h"
#include "clientbufferviewmanager.h"
#include "clientignorelistmanager.h"
-#include "coreinfodlg.h"
#include "coreconnectdlg.h"
+#include "coreconnection.h"
+#include "coreconnectionstatuswidget.h"
+#include "coreinfodlg.h"
#include "contextmenuactionprovider.h"
#include "debugbufferviewoverlay.h"
#include "debuglogwidget.h"
#include "settingspages/chatmonitorsettingspage.h"
#include "settingspages/chatviewsettingspage.h"
#include "settingspages/connectionsettingspage.h"
+#include "settingspages/coreaccountsettingspage.h"
#include "settingspages/generalsettingspage.h"
#include "settingspages/highlightsettingspage.h"
#include "settingspages/identitiessettingspage.h"
#endif
coreLagLabel(new QLabel()),
sslLabel(new QLabel()),
- msgProcessorStatusWidget(new MsgProcessorStatusWidget()),
+ _msgProcessorStatusWidget(new MsgProcessorStatusWidget(this)),
+ _coreConnectionStatusWidget(new CoreConnectionStatusWidget(Client::coreConnection(), this)),
_titleSetter(this),
_awayLog(0),
_layoutLoaded(false)
// restore locked state of docks
QtUi::actionCollection("General")->action("LockLayout")->setChecked(s.value("LockLayout", false).toBool());
- if(Quassel::runMode() != Quassel::Monolithic) {
- showCoreConnectionDlg(true); // autoconnect if appropriate
- } else {
- startInternalCore();
+ CoreConnection *conn = Client::coreConnection();
+ if(!conn->connectToCore()) {
+ // No autoconnect selected (or no accounts)
+ showCoreConnectionDlg();
}
}
connect(lockAct, SIGNAL(toggled(bool)), SLOT(on_actionLockLayout_toggled(bool)));
coll->addAction("ToggleSearchBar", new Action(SmallIcon("edit-find"), tr("Show &Search Bar"), coll,
- 0, 0, QKeySequence::Find))->setCheckable(true);
+ 0, 0, QKeySequence::Find))->setCheckable(true);
coll->addAction("ShowAwayLog", new Action(tr("Show Away Log"), coll,
- this, SLOT(showAwayLog())));
+ this, SLOT(showAwayLog())));
coll->addAction("ToggleMenuBar", new Action(SmallIcon("show-menu"), tr("Show &Menubar"), coll,
0, 0, tr("Ctrl+M")))->setCheckable(true);
void MainWin::setupStatusBar() {
// MessageProcessor progress
- statusBar()->addPermanentWidget(msgProcessorStatusWidget);
+ statusBar()->addPermanentWidget(_msgProcessorStatusWidget);
+
+ // Connection state
+ _coreConnectionStatusWidget->update();
+ statusBar()->addPermanentWidget(_coreConnectionStatusWidget);
// Core Lag:
updateLagIndicator();
connect(showStatusbar, SIGNAL(toggled(bool)), statusBar(), SLOT(setVisible(bool)));
connect(showStatusbar, SIGNAL(toggled(bool)), this, SLOT(saveStatusBarStatus(bool)));
+
+ connect(Client::coreConnection(), SIGNAL(connectionMsg(QString)), statusBar(), SLOT(showMessage(QString)));
}
void MainWin::setupHotList() {
action->setVisible(!Client::internalCore());
}
- disconnect(Client::backlogManager(), SIGNAL(updateProgress(int, int)), msgProcessorStatusWidget, SLOT(setProgress(int, int)));
+ disconnect(Client::backlogManager(), SIGNAL(updateProgress(int, int)), _msgProcessorStatusWidget, SLOT(setProgress(int, int)));
disconnect(Client::backlogManager(), SIGNAL(messagesRequested(const QString &)), this, SLOT(showStatusBarMessage(const QString &)));
disconnect(Client::backlogManager(), SIGNAL(messagesProcessed(const QString &)), this, SLOT(showStatusBarMessage(const QString &)));
if(!Client::internalCore()) {
- connect(Client::backlogManager(), SIGNAL(updateProgress(int, int)), msgProcessorStatusWidget, SLOT(setProgress(int, int)));
+ connect(Client::backlogManager(), SIGNAL(updateProgress(int, int)), _msgProcessorStatusWidget, SLOT(setProgress(int, int)));
connect(Client::backlogManager(), SIGNAL(messagesRequested(const QString &)), this, SLOT(showStatusBarMessage(const QString &)));
connect(Client::backlogManager(), SIGNAL(messagesProcessed(const QString &)), this, SLOT(showStatusBarMessage(const QString &)));
}
void MainWin::loadLayout() {
QtUiSettings s;
- int accountId = Client::currentCoreAccount().toInt();
+ int accountId = Client::currentCoreAccount().accountId().toInt();
QByteArray state = s.value(QString("MainWinState-%1").arg(accountId)).toByteArray();
if(state.isEmpty()) {
// Make sure that the default bufferview is shown
void MainWin::saveLayout() {
QtUiSettings s;
- int accountId = Client::currentCoreAccount().toInt();
+ int accountId = Client::currentCoreAccount().accountId().toInt();
if(accountId > 0) s.setValue(QString("MainWinState-%1").arg(accountId) , saveState(accountId));
}
sslLabel->hide();
updateLagIndicator();
coreLagLabel->hide();
- if(msgProcessorStatusWidget)
- msgProcessorStatusWidget->setProgress(0, 0);
+ if(_msgProcessorStatusWidget)
+ _msgProcessorStatusWidget->setProgress(0, 0);
updateIcon();
systemTray()->setState(SystemTray::Inactive);
}
void MainWin::startInternalCore() {
- ClientSyncer *syncer = new ClientSyncer();
- Client::registerClientSyncer(syncer);
- connect(syncer, SIGNAL(syncFinished()), syncer, SLOT(deleteLater()), Qt::QueuedConnection);
- syncer->useInternalCore();
+
}
-void MainWin::showCoreConnectionDlg(bool autoConnect) {
- CoreConnectDlg(autoConnect, this).exec();
+void MainWin::showCoreConnectionDlg() {
+ CoreConnectDlg dlg(this);
+ if(dlg.exec() == QDialog::Accepted) {
+ AccountId accId = dlg.selectedAccount();
+ if(accId.isValid())
+ Client::coreConnection()->connectToCore(accId);
+ }
}
void MainWin::showChannelList(NetworkId netId) {
dlg->registerSettingsPage(new AliasesSettingsPage(dlg));
dlg->registerSettingsPage(new IgnoreListSettingsPage(dlg));
+ if(Quassel::runMode() != Quassel::Monolithic) {
+ dlg->registerSettingsPage(new CoreAccountSettingsPage(dlg));
+ }
+
dlg->show();
}