*headdesk* Apparently QTextLayout::FormatRange() does not have an initializing ctor...
[quassel.git] / src / qtui / mainwin.cpp
index 4b1c38f..9b49da1 100644 (file)
 #include "qtuisettings.h"
 #include "jumpkeyhandler.h"
 
+#include "uisettings.h"
+
 #include "selectionmodelsynchronizer.h"
 #include "mappedselectionmodel.h"
 
+#include "settingspages/appearancesettingspage.h"
+#include "settingspages/bufferviewsettingspage.h"
 #include "settingspages/colorsettingspage.h"
 #include "settingspages/fontssettingspage.h"
 #include "settingspages/generalsettingspage.h"
+#include "settingspages/highlightsettingspage.h"
 #include "settingspages/identitiessettingspage.h"
 #include "settingspages/networkssettingspage.h"
 
 
 #include "debugconsole.h"
 #include "global.h"
+#include "qtuistyle.h"
 
 MainWin::MainWin(QtUi *_gui, QWidget *parent)
   : QMainWindow(parent),
@@ -72,6 +78,12 @@ MainWin::MainWin(QtUi *_gui, QWidget *parent)
   statusBar()->showMessage(tr("Waiting for core..."));
 
   installEventFilter(new JumpKeyHandler(this));
+
+  UiSettings uiSettings;
+  QString style = uiSettings.value("Style", QString("")).toString();
+  if(style != "") {
+    QApplication::setStyle(style);
+  }
 }
 
 void MainWin::init() {
@@ -188,27 +200,28 @@ void MainWin::setupSettingsDlg() {
   //Category: Appearance
   settingsDlg->registerSettingsPage(new ColorSettingsPage(settingsDlg));
   settingsDlg->registerSettingsPage(new FontsSettingsPage(settingsDlg));
+  settingsDlg->registerSettingsPage(new AppearanceSettingsPage(settingsDlg)); //General
   //Category: Behaviour
   settingsDlg->registerSettingsPage(new GeneralSettingsPage(settingsDlg));
+  settingsDlg->registerSettingsPage(new HighlightSettingsPage(settingsDlg));
   //Category: General
   settingsDlg->registerSettingsPage(new IdentitiesSettingsPage(settingsDlg));
   settingsDlg->registerSettingsPage(new NetworksSettingsPage(settingsDlg));
+  // settingsDlg->registerSettingsPage(new BufferViewSettingsPage(settingsDlg));
 }
 
 void MainWin::setupNickWidget() {
   // create nick dock
-  nickDock = new QDockWidget(tr("Nicks"), this);
+  NickListDock *nickDock = new NickListDock(tr("Nicks"), this);
   nickDock->setObjectName("NickDock");
   nickDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
 
   nickListWidget = new NickListWidget(nickDock);
   nickDock->setWidget(nickListWidget);
 
-  nickListWidget->setShowDockAction(nickDock->toggleViewAction());
-  connect(nickDock->toggleViewAction(), SIGNAL(toggled(bool)), nickListWidget, SLOT(changedVisibility(bool)));
   addDockWidget(Qt::RightDockWidgetArea, nickDock);
-
-  ui.menuViews->addAction(nickListWidget->showNickListAction());
+  ui.menuViews->addAction(nickDock->toggleViewAction());
+  connect(nickDock->toggleViewAction(), SIGNAL(triggered(bool)), nickListWidget, SLOT(showWidget(bool)));
 
   // attach the NickListWidget to the BufferModel and the default selection
   nickListWidget->setModel(Client::bufferModel());
@@ -429,10 +442,19 @@ void MainWin::receiveMessage(const Message &msg) {
         sender = sender.left(i);
       title += QString(" - %1").arg(sender);
     }
-    QString text = QtUi::style()->styleString(Message::mircToInternal(msg.text())).text;
-    displayTrayIconMessage(title, text);
-    QApplication::alert(this);
-    setTrayIconActivity(true);
+
+    UiSettings uiSettings;
+
+    if(uiSettings.value("DisplayPopupMessages", QVariant(true)).toBool()) {
+      // FIXME don't invoke style engine for this!
+      QString text = QtUi::style()->styleString(Message::mircToInternal(msg.text())).text;
+      displayTrayIconMessage(title, text);
+    }
+
+    if(uiSettings.value("AnimateTrayIcon", QVariant(true)).toBool()) {
+      QApplication::alert(this);
+      setTrayIconActivity(true);
+    }
   }
 }