#BR127: user can now set the style of the application in the config menu (behaviour...
authorAlexander von Renteln <phon@quassel-irc.org>
Mon, 31 Mar 2008 14:32:47 +0000 (14:32 +0000)
committerAlexander von Renteln <phon@quassel-irc.org>
Mon, 31 Mar 2008 14:32:47 +0000 (14:32 +0000)
src/qtui/mainwin.cpp
src/qtui/settingspages/generalsettingspage.cpp
src/qtui/settingspages/generalsettingspage.h
src/qtui/settingspages/generalsettingspage.ui
version.inc

index 49496a8..fcbd228 100644 (file)
@@ -40,6 +40,8 @@
 #include "qtuisettings.h"
 #include "jumpkeyhandler.h"
 
+#include "uisettings.h"
+
 #include "selectionmodelsynchronizer.h"
 #include "mappedselectionmodel.h"
 
@@ -73,6 +75,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() {
index 5111b4e..a0c0228 100644 (file)
 #include "uisettings.h"
 #include "buffersettings.h"
 
+#include <QStyleFactory>
+
 GeneralSettingsPage::GeneralSettingsPage(QWidget *parent)
   : SettingsPage(tr("Behaviour"), tr("General"), parent) {
   ui.setupUi(this);
+  initStyleComboBox();
 
 #ifdef Q_WS_MAC
   ui.useSystemTrayIcon->hide();
@@ -52,6 +55,16 @@ GeneralSettingsPage::GeneralSettingsPage(QWidget *parent)
 
   connect(ui.displayTopicInTooltip, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
   connect(ui.mouseWheelChangesBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
+
+  connect(ui.styleComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(widgetHasChanged())); 
+}
+
+void GeneralSettingsPage::initStyleComboBox() {
+  QStringList styleList = QStyleFactory::keys();
+  ui.styleComboBox->addItem("<default>");
+  foreach(QString style, styleList) {
+    ui.styleComboBox->addItem(style);
+  }
 }
 
 bool GeneralSettingsPage::hasDefaults() const {
@@ -74,6 +87,8 @@ void GeneralSettingsPage::defaults() {
   ui.displayTopicInTooltip->setChecked(false);
   ui.mouseWheelChangesBuffers->setChecked(true);
 
+  ui.styleComboBox->setCurrentIndex(0);
+
   widgetHasChanged();
 }
 
@@ -99,6 +114,14 @@ void GeneralSettingsPage::load() {
   settings["DisplayPopupMessages"] = uiSettings.value("DisplayPopupMessages", QVariant(true));
   ui.displayPopupMessages->setChecked(settings["DisplayPopupMessages"].toBool());
 
+  settings["Style"] = uiSettings.value("Style", QString(""));
+  if(settings["Style"].toString() == "") {
+    ui.styleComboBox->setCurrentIndex(0);
+  } else {
+    ui.styleComboBox->setCurrentIndex(ui.styleComboBox->findText(settings["Style"].toString(), Qt::MatchExactly));
+    QApplication::setStyle(settings["Style"].toString());
+  }
+
   // bufferSettings:
   BufferSettings bufferSettings;
   settings["UserMessagesInStatusBuffer"] = bufferSettings.value("UserMessagesInStatusBuffer", QVariant(true));
@@ -126,6 +149,12 @@ void GeneralSettingsPage::save() {
   uiSettings.setValue("AnimateTrayIcon", ui.animateTrayIcon->isChecked());
   uiSettings.setValue("DisplayPopupMessages", ui.displayPopupMessages->isChecked());
 
+  if(ui.styleComboBox->currentIndex() < 1) {
+    uiSettings.setValue("Style", QString(""));
+  } else {
+    uiSettings.setValue("Style", ui.styleComboBox->currentText());
+  }
+
   BufferSettings bufferSettings;
   bufferSettings.setValue("UserMessagesInStatusBuffer", ui.userMessagesInStatusBuffer->isChecked());
   bufferSettings.setValue("UserMessagesInQueryBuffer", ui.userMessagesInQueryBuffer->isChecked());
@@ -157,6 +186,8 @@ bool GeneralSettingsPage::testHasChanged() {
   if(settings["DisplayTopicInTooltip"].toBool() != ui.displayTopicInTooltip->isChecked()) return true;
   if(settings["MouseWheelChangesBuffers"].toBool() != ui.mouseWheelChangesBuffers->isChecked()) return true;
 
+  if(settings["Style"].toString() != ui.styleComboBox->currentText()) return true;
+
   return false;
 }
 
index 42216d8..f7fc9e4 100644 (file)
@@ -47,6 +47,7 @@ class GeneralSettingsPage : public SettingsPage {
     QHash<QString, QVariant> settings;
 
     bool testHasChanged();
+    void initStyleComboBox();
 };
 
 #endif
index 03feae5..e857440 100644 (file)
@@ -5,8 +5,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>448</width>
-    <height>488</height>
+    <width>453</width>
+    <height>632</height>
    </rect>
   </property>
   <property name="windowTitle" >
      </layout>
     </widget>
    </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox_4" >
+     <property name="title" >
+      <string>Client style:</string>
+     </property>
+     <layout class="QHBoxLayout" >
+      <item>
+       <widget class="QComboBox" name="styleComboBox" />
+      </item>
+     </layout>
+    </widget>
+   </item>
    <item>
     <spacer>
      <property name="orientation" >
index f7d2871..b1798ee 100644 (file)
@@ -5,7 +5,7 @@
 
   quasselVersion = "0.2.0-alpha5-pre";
   quasselDate = "2008-03-31";
-  quasselBuild = 675;
+  quasselBuild = 676;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 642;