#include "clientbufferviewconfig.h"
#include "clientbufferviewmanager.h"
#include "clientignorelistmanager.h"
+#include "coreconnectdlg.h"
#include "coreconnection.h"
#include "coreconnectionstatuswidget.h"
#include "coreinfodlg.h"
SLOT(messagesInserted(const QModelIndex &, int, int)));
connect(GraphicalUi::contextMenuActionProvider(), SIGNAL(showChannelList(NetworkId)), SLOT(showChannelList(NetworkId)));
connect(GraphicalUi::contextMenuActionProvider(), SIGNAL(showIgnoreList(QString)), SLOT(showIgnoreList(QString)));
+ connect(Client::coreConnection(), SIGNAL(userAuthenticationRequired(CoreAccount *, bool *, QString)), SLOT(userAuthenticationRequired(CoreAccount *, bool *, QString)));
// Setup Dock Areas
setDockNestingEnabled(true);
// 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();
}
- Client::coreConnection()->start();
}
MainWin::~MainWin() {
}
+void MainWin::showCoreConnectionDlg() {
+ CoreConnectDlg dlg(this);
+ if(dlg.exec() == QDialog::Accepted) {
+ AccountId accId = dlg.selectedAccount();
+ if(accId.isValid())
+ Client::coreConnection()->connectToCore(accId);
+ }
+}
+
+void MainWin::userAuthenticationRequired(CoreAccount *account, bool *valid, const QString &errorMessage) {
+ Q_UNUSED(errorMessage)
+ CoreConnectAuthDlg dlg(account, this);
+ *valid = (dlg.exec() == QDialog::Accepted);
+}
+
void MainWin::showChannelList(NetworkId netId) {
ChannelListDlg *channelListDlg = new ChannelListDlg();