Introduce settingspage for editing core accounts
[quassel.git] / src / qtui / mainwin.cpp
index 9030bfd..21d4959 100644 (file)
 #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"
@@ -311,9 +312,9 @@ void MainWin::setupActions() {
   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);
 
@@ -747,7 +748,15 @@ void MainWin::setConnectedState() {
 void MainWin::loadLayout() {
   QtUiSettings s;
   int accountId = Client::currentCoreAccount().toInt();
-  restoreState(s.value(QString("MainWinState-%1").arg(accountId)).toByteArray(), accountId);
+  QByteArray state = s.value(QString("MainWinState-%1").arg(accountId)).toByteArray();
+  if(state.isEmpty()) {
+    // Make sure that the default bufferview is shown
+    if(_bufferViews.count())
+      _bufferViews.at(0)->show();
+    return;
+  }
+
+  restoreState(state, accountId);
   _layoutLoaded = true;
 }
 
@@ -885,6 +894,10 @@ void MainWin::showSettingsDlg() {
   dlg->registerSettingsPage(new AliasesSettingsPage(dlg));
   dlg->registerSettingsPage(new IgnoreListSettingsPage(dlg));
 
+  if(Quassel::runMode() != Quassel::Monolithic) {
+    dlg->registerSettingsPage(new CoreAccountSettingsPage(dlg));
+  }
+
   dlg->show();
 }