Refactorize settingspages a bit
authorManuel Nickschas <sputnick@quassel-irc.org>
Tue, 1 Dec 2009 21:13:07 +0000 (22:13 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Tue, 1 Dec 2009 21:13:07 +0000 (22:13 +0100)
Some more sensible ordering/categorizing, plus the ability to disable
certain settingspages in the settingspagedlg if we're not connected to a core.

24 files changed:
src/qtui/mainwin.cpp
src/qtui/settingsdlg.cpp
src/qtui/settingsdlg.h
src/qtui/settingspages/aliasessettingspage.cpp
src/qtui/settingspages/aliasessettingspage.h
src/qtui/settingspages/appearancesettingspage.cpp
src/qtui/settingspages/appearancesettingspage.h
src/qtui/settingspages/appearancesettingspage.ui
src/qtui/settingspages/backlogsettingspage.cpp
src/qtui/settingspages/bufferviewsettingspage.cpp
src/qtui/settingspages/connectionsettingspage.cpp
src/qtui/settingspages/connectionsettingspage.h
src/qtui/settingspages/coreaccountsettingspage.cpp
src/qtui/settingspages/generalsettingspage.cpp [deleted file]
src/qtui/settingspages/generalsettingspage.h [deleted file]
src/qtui/settingspages/generalsettingspage.ui [deleted file]
src/qtui/settingspages/identitiessettingspage.cpp
src/qtui/settingspages/identitiessettingspage.h
src/qtui/settingspages/ignorelistsettingspage.cpp
src/qtui/settingspages/ignorelistsettingspage.h
src/qtui/settingspages/networkssettingspage.cpp
src/qtui/settingspages/networkssettingspage.h
src/qtui/settingspages/settingspages.inc
src/uisupport/settingspage.h

index 24d9ac6..2e1ae40 100644 (file)
 #include "settingspages/chatviewsettingspage.h"
 #include "settingspages/connectionsettingspage.h"
 #include "settingspages/coreaccountsettingspage.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"
 #include "settingspages/ignorelistsettingspage.h"
 #include "settingspages/highlightsettingspage.h"
 #include "settingspages/identitiessettingspage.h"
 #include "settingspages/ignorelistsettingspage.h"
@@ -938,23 +937,23 @@ void MainWin::showSettingsDlg() {
   //Category: Interface
   dlg->registerSettingsPage(new AppearanceSettingsPage(dlg));
   dlg->registerSettingsPage(new ChatViewSettingsPage(dlg));
   //Category: Interface
   dlg->registerSettingsPage(new AppearanceSettingsPage(dlg));
   dlg->registerSettingsPage(new ChatViewSettingsPage(dlg));
+  dlg->registerSettingsPage(new ChatMonitorSettingsPage(dlg));
   dlg->registerSettingsPage(new ItemViewSettingsPage(dlg));
   dlg->registerSettingsPage(new ItemViewSettingsPage(dlg));
+  dlg->registerSettingsPage(new BufferViewSettingsPage(dlg));
   dlg->registerSettingsPage(new InputWidgetSettingsPage(dlg));
   dlg->registerSettingsPage(new TopicWidgetSettingsPage(dlg));
   dlg->registerSettingsPage(new HighlightSettingsPage(dlg));
   dlg->registerSettingsPage(new NotificationsSettingsPage(dlg));
   dlg->registerSettingsPage(new BacklogSettingsPage(dlg));
   dlg->registerSettingsPage(new InputWidgetSettingsPage(dlg));
   dlg->registerSettingsPage(new TopicWidgetSettingsPage(dlg));
   dlg->registerSettingsPage(new HighlightSettingsPage(dlg));
   dlg->registerSettingsPage(new NotificationsSettingsPage(dlg));
   dlg->registerSettingsPage(new BacklogSettingsPage(dlg));
-  dlg->registerSettingsPage(new BufferViewSettingsPage(dlg));
-  dlg->registerSettingsPage(new ChatMonitorSettingsPage(dlg));
 
 
-  //Category: Misc
-  dlg->registerSettingsPage(new GeneralSettingsPage(dlg));
+  //Category: IRC
   dlg->registerSettingsPage(new ConnectionSettingsPage(dlg));
   dlg->registerSettingsPage(new IdentitiesSettingsPage(dlg));
   dlg->registerSettingsPage(new NetworksSettingsPage(dlg));
   dlg->registerSettingsPage(new AliasesSettingsPage(dlg));
   dlg->registerSettingsPage(new IgnoreListSettingsPage(dlg));
 
   dlg->registerSettingsPage(new ConnectionSettingsPage(dlg));
   dlg->registerSettingsPage(new IdentitiesSettingsPage(dlg));
   dlg->registerSettingsPage(new NetworksSettingsPage(dlg));
   dlg->registerSettingsPage(new AliasesSettingsPage(dlg));
   dlg->registerSettingsPage(new IgnoreListSettingsPage(dlg));
 
+  // Category: Remote Cores
   if(Quassel::runMode() != Quassel::Monolithic) {
     dlg->registerSettingsPage(new CoreAccountSettingsPage(dlg));
   }
   if(Quassel::runMode() != Quassel::Monolithic) {
     dlg->registerSettingsPage(new CoreAccountSettingsPage(dlg));
   }
index d1db2ce..50c6413 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "settingsdlg.h"
 
 
 #include "settingsdlg.h"
 
+#include "client.h"
 #include "iconloader.h"
 
 SettingsDlg::SettingsDlg(QWidget *parent)
 #include "iconloader.h"
 
 SettingsDlg::SettingsDlg(QWidget *parent)
@@ -38,9 +39,28 @@ SettingsDlg::SettingsDlg(QWidget *parent)
   connect(ui.settingsTree, SIGNAL(itemSelectionChanged()), this, SLOT(itemSelected()));
   connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
 
   connect(ui.settingsTree, SIGNAL(itemSelectionChanged()), this, SLOT(itemSelected()));
   connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
 
+  connect(Client::instance(), SIGNAL(coreConnectionStateChanged(bool)), SLOT(coreConnectionStateChanged()));
+
   setButtonStates();
 }
 
   setButtonStates();
 }
 
+void SettingsDlg::coreConnectionStateChanged() {
+  for(int i = 0; i < ui.settingsTree->topLevelItemCount(); i++) {
+    QTreeWidgetItem *catItem = ui.settingsTree->topLevelItem(i);
+    for(int j = 0; j < catItem->childCount(); j++) {
+      QTreeWidgetItem *item = catItem->child(j);
+      setItemState(item);
+    }
+    setItemState(catItem);
+  }
+}
+
+void SettingsDlg::setItemState(QTreeWidgetItem *item) {
+  SettingsPage *sp = qobject_cast<SettingsPage *>(item->data(0, SettingsPageRole).value<QObject *>());
+  Q_ASSERT(sp);
+  item->setDisabled(!Client::isConnected() && sp->needsCoreConnection());
+}
+
 void SettingsDlg::registerSettingsPage(SettingsPage *sp) {
   sp->setParent(ui.settingsStack);
   ui.settingsStack->addWidget(sp);
 void SettingsDlg::registerSettingsPage(SettingsPage *sp) {
   sp->setParent(ui.settingsStack);
   ui.settingsStack->addWidget(sp);
@@ -68,6 +88,8 @@ void SettingsDlg::registerSettingsPage(SettingsPage *sp) {
   pageIsLoaded[sp] = false;
   if(!ui.settingsTree->selectedItems().count())
     ui.settingsTree->setCurrentItem(item);
   pageIsLoaded[sp] = false;
   if(!ui.settingsTree->selectedItems().count())
     ui.settingsTree->setCurrentItem(item);
+
+  setItemState(item);
 }
 
 void SettingsDlg::selectPage(SettingsPage *sp) {
 }
 
 void SettingsDlg::selectPage(SettingsPage *sp) {
index be8360f..1c3cc78 100644 (file)
@@ -40,6 +40,7 @@ public slots:
   void selectPage(SettingsPage *sp); // const QString &category, const QString &title);
 
 private slots:
   void selectPage(SettingsPage *sp); // const QString &category, const QString &title);
 
 private slots:
+  void coreConnectionStateChanged();
   void itemSelected();
   void buttonClicked(QAbstractButton *);
   bool applyChanges();
   void itemSelected();
   void buttonClicked(QAbstractButton *);
   bool applyChanges();
@@ -47,10 +48,11 @@ private slots:
   void reload();
   void loadDefaults();
   void setButtonStates();
   void reload();
   void loadDefaults();
   void setButtonStates();
-  
+  void setItemState(QTreeWidgetItem *);
+
 private:
   Ui::SettingsDlg ui;
 private:
   Ui::SettingsDlg ui;
-  
+
   SettingsPage *_currentPage;
   QHash<SettingsPage *, bool> pageIsLoaded;
 
   SettingsPage *_currentPage;
   QHash<SettingsPage *, bool> pageIsLoaded;
 
index 8ffd30a..2a7feae 100644 (file)
@@ -26,7 +26,7 @@
 #include "iconloader.h"
 
 AliasesSettingsPage::AliasesSettingsPage(QWidget *parent)
 #include "iconloader.h"
 
 AliasesSettingsPage::AliasesSettingsPage(QWidget *parent)
-  : SettingsPage(tr("Misc"), tr("Aliases"), parent)
+  : SettingsPage(tr("IRC"), tr("Aliases"), parent)
 {
   ui.setupUi(this);
   ui.newAliasButton->setIcon(SmallIcon("list-add"));
 {
   ui.setupUi(this);
   ui.newAliasButton->setIcon(SmallIcon("list-add"));
index 0e2fa8b..d6aea9d 100644 (file)
@@ -33,6 +33,7 @@ public:
   AliasesSettingsPage(QWidget *parent = 0);
 
   virtual inline bool hasDefaults() const { return true; }
   AliasesSettingsPage(QWidget *parent = 0);
 
   virtual inline bool hasDefaults() const { return true; }
+  virtual inline bool needsCoreConnection() const { return true; }
 
 public slots:
   void save();
 
 public slots:
   void save();
index 0b33f0f..5cd52df 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "appearancesettingspage.h"
 
 
 #include "appearancesettingspage.h"
 
+#include "buffersettings.h"
 #include "qtui.h"
 #include "qtuisettings.h"
 #include "qtuistyle.h"
 #include "qtui.h"
 #include "qtuisettings.h"
 #include "qtuistyle.h"
@@ -34,6 +35,11 @@ AppearanceSettingsPage::AppearanceSettingsPage(QWidget *parent)
   : SettingsPage(tr("Interface"), QString(), parent)
 {
   ui.setupUi(this);
   : SettingsPage(tr("Interface"), QString(), parent)
 {
   ui.setupUi(this);
+
+#ifdef Q_WS_MAC
+  ui.minimizeOnClose->hide();
+#endif
+
   initAutoWidgets();
   initStyleComboBox();
   initLanguageComboBox();
   initAutoWidgets();
   initStyleComboBox();
   initLanguageComboBox();
@@ -46,6 +52,18 @@ AppearanceSettingsPage::AppearanceSettingsPage(QWidget *parent)
   }
 
   connect(ui.chooseStyleSheet, SIGNAL(clicked()), SLOT(chooseStyleSheet()));
   }
 
   connect(ui.chooseStyleSheet, SIGNAL(clicked()), SLOT(chooseStyleSheet()));
+
+  connect(ui.userNoticesInDefaultBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
+  connect(ui.userNoticesInStatusBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
+  connect(ui.userNoticesInCurrentBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
+
+  connect(ui.serverNoticesInDefaultBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
+  connect(ui.serverNoticesInStatusBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
+  connect(ui.serverNoticesInCurrentBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
+
+  connect(ui.errorMsgsInDefaultBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
+  connect(ui.errorMsgsInStatusBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
+  connect(ui.errorMsgsInCurrentBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
 }
 
 void AppearanceSettingsPage::initStyleComboBox() {
 }
 
 void AppearanceSettingsPage::initStyleComboBox() {
@@ -99,6 +117,23 @@ void AppearanceSettingsPage::load() {
   ui.languageComboBox->setProperty("storedValue", ui.languageComboBox->currentIndex());
   Quassel::loadTranslation(selectedLocale());
 
   ui.languageComboBox->setProperty("storedValue", ui.languageComboBox->currentIndex());
   Quassel::loadTranslation(selectedLocale());
 
+  // bufferSettings:
+  BufferSettings bufferSettings;
+  int redirectTarget = bufferSettings.userNoticesTarget();
+  SettingsPage::load(ui.userNoticesInDefaultBuffer, redirectTarget & BufferSettings::DefaultBuffer);
+  SettingsPage::load(ui.userNoticesInStatusBuffer, redirectTarget & BufferSettings::StatusBuffer);
+  SettingsPage::load(ui.userNoticesInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
+
+  redirectTarget = bufferSettings.serverNoticesTarget();
+  SettingsPage::load(ui.serverNoticesInDefaultBuffer, redirectTarget & BufferSettings::DefaultBuffer);
+  SettingsPage::load(ui.serverNoticesInStatusBuffer, redirectTarget & BufferSettings::StatusBuffer);
+  SettingsPage::load(ui.serverNoticesInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
+
+  redirectTarget = bufferSettings.errorMsgsTarget();
+  SettingsPage::load(ui.errorMsgsInDefaultBuffer, redirectTarget & BufferSettings::DefaultBuffer);
+  SettingsPage::load(ui.errorMsgsInStatusBuffer, redirectTarget & BufferSettings::StatusBuffer);
+  SettingsPage::load(ui.errorMsgsInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
+
   SettingsPage::load();
   setChangedState(false);
 }
   SettingsPage::load();
   setChangedState(false);
 }
@@ -122,6 +157,34 @@ void AppearanceSettingsPage::save() {
         ui.useCustomStyleSheet->isChecked() != ui.useCustomStyleSheet->property("storedValue").toBool()
     || (ui.useCustomStyleSheet->isChecked() && ui.customStyleSheetPath->text() != ui.customStyleSheetPath->property("storedValue").toString());
 
         ui.useCustomStyleSheet->isChecked() != ui.useCustomStyleSheet->property("storedValue").toBool()
     || (ui.useCustomStyleSheet->isChecked() && ui.customStyleSheetPath->text() != ui.customStyleSheetPath->property("storedValue").toString());
 
+  BufferSettings bufferSettings;
+  int redirectTarget = 0;
+  if(ui.userNoticesInDefaultBuffer->isChecked())
+    redirectTarget |= BufferSettings::DefaultBuffer;
+  if(ui.userNoticesInStatusBuffer->isChecked())
+    redirectTarget |= BufferSettings::StatusBuffer;
+  if(ui.userNoticesInCurrentBuffer->isChecked())
+    redirectTarget |= BufferSettings::CurrentBuffer;
+  bufferSettings.setUserNoticesTarget(redirectTarget);
+
+  redirectTarget = 0;
+  if(ui.serverNoticesInDefaultBuffer->isChecked())
+    redirectTarget |= BufferSettings::DefaultBuffer;
+  if(ui.serverNoticesInStatusBuffer->isChecked())
+    redirectTarget |= BufferSettings::StatusBuffer;
+  if(ui.serverNoticesInCurrentBuffer->isChecked())
+    redirectTarget |= BufferSettings::CurrentBuffer;
+  bufferSettings.setServerNoticesTarget(redirectTarget);
+
+  redirectTarget = 0;
+  if(ui.errorMsgsInDefaultBuffer->isChecked())
+    redirectTarget |= BufferSettings::DefaultBuffer;
+  if(ui.errorMsgsInStatusBuffer->isChecked())
+    redirectTarget |= BufferSettings::StatusBuffer;
+  if(ui.errorMsgsInCurrentBuffer->isChecked())
+    redirectTarget |= BufferSettings::CurrentBuffer;
+  bufferSettings.setErrorMsgsTarget(redirectTarget);
+
   SettingsPage::save();
   setChangedState(false);
   if(needsStyleReload)
   SettingsPage::save();
   setChangedState(false);
   if(needsStyleReload)
@@ -162,5 +225,17 @@ bool AppearanceSettingsPage::testHasChanged() {
 
   if(selectedLocale() != QLocale()) return true; // QLocale() returns the default locale (manipulated via loadTranslation())
 
 
   if(selectedLocale() != QLocale()) return true; // QLocale() returns the default locale (manipulated via loadTranslation())
 
+  if(SettingsPage::hasChanged(ui.userNoticesInStatusBuffer)) return true;
+  if(SettingsPage::hasChanged(ui.userNoticesInDefaultBuffer)) return true;
+  if(SettingsPage::hasChanged(ui.userNoticesInCurrentBuffer)) return true;
+
+  if(SettingsPage::hasChanged(ui.serverNoticesInStatusBuffer)) return true;
+  if(SettingsPage::hasChanged(ui.serverNoticesInDefaultBuffer)) return true;
+  if(SettingsPage::hasChanged(ui.serverNoticesInCurrentBuffer)) return true;
+
+  if(SettingsPage::hasChanged(ui.errorMsgsInStatusBuffer)) return true;
+  if(SettingsPage::hasChanged(ui.errorMsgsInDefaultBuffer)) return true;
+  if(SettingsPage::hasChanged(ui.errorMsgsInCurrentBuffer)) return true;
+
   return false;
 }
   return false;
 }
index a6fffa2..1b9c0cf 100644 (file)
@@ -57,6 +57,8 @@ private:
   Ui::AppearanceSettingsPage ui;
   QHash<QString, QVariant> settings;
   QList<QLocale> _locales;
   Ui::AppearanceSettingsPage ui;
   QHash<QString, QVariant> settings;
   QList<QLocale> _locales;
+
+  inline QString settingsKey() const { return QString("QtUi"); }
 };
 
 #endif
 };
 
 #endif
index ef10ae1..2e88324 100644 (file)
    <rect>
     <x>0</x>
     <y>0</y>
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>521</width>
-    <height>524</height>
+    <width>549</width>
+    <height>470</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
+  <layout class="QVBoxLayout" name="verticalLayout">
    <item>
    <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Client Style</string>
-     </property>
-     <layout class="QVBoxLayout">
-      <item>
-       <widget class="QComboBox" name="styleComboBox">
-        <property name="toolTip">
-         <string>Set application style</string>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="0" column="0">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Client style:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QComboBox" name="styleComboBox">
+       <property name="toolTip">
+        <string>Set application style</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_9">
+       <property name="text">
+        <string>Language:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QComboBox" name="languageComboBox">
+       <property name="toolTip">
+        <string>Set the application language. Requires restart!</string>
+       </property>
+       <item>
+        <property name="text">
+         <string>&lt;System Default&gt;</string>
         </property>
         </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
+       </item>
+       <item>
+        <property name="text">
+         <string>&lt;Original&gt;</string>
+        </property>
+       </item>
+      </widget>
+     </item>
+     <item row="1" column="2">
+      <spacer name="horizontalSpacer_3">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
    </item>
    <item>
    </item>
    <item>
-    <widget class="QGroupBox" name="groupBox_2">
-     <property name="title">
-      <string>Language</string>
+    <widget class="QCheckBox" name="useCustomStyleSheet">
+     <property name="text">
+      <string>Use custom stylesheet</string>
+     </property>
+     <property name="settingsKey" stdset="0">
+      <string notr="true">UseCustomStyleSheet</string>
+     </property>
+     <property name="defaultValue" stdset="0">
+      <bool>false</bool>
      </property>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <widget class="QComboBox" name="languageComboBox">
-        <property name="toolTip">
-         <string>Set the application language. Requires restart!</string>
-        </property>
-        <item>
-         <property name="text">
-          <string>&lt;System Default&gt;</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>&lt;Original&gt;</string>
-         </property>
-        </item>
-       </widget>
-      </item>
-     </layout>
     </widget>
    </item>
    <item>
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="useCustomStyleSheet">
-     <property name="title">
-      <string>Use Custom Stylesheet</string>
-     </property>
-     <property name="checkable">
-      <bool>true</bool>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeType">
+        <enum>QSizePolicy::Fixed</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="text">
+        <string>Path:</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLineEdit" name="customStyleSheetPath">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="readOnly">
+        <bool>false</bool>
+       </property>
+       <property name="settingsKey" stdset="0">
+        <string notr="true">/UiStyle/CustomStyleSheetPath</string>
+       </property>
+       <property name="defaultValue" stdset="0">
+        <string/>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="chooseStyleSheet">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QCheckBox" name="useSystemTrayIcon">
+     <property name="text">
+      <string>Show system tray icon</string>
      </property>
      <property name="checked">
      </property>
      <property name="checked">
-      <bool>false</bool>
+      <bool>true</bool>
      </property>
      <property name="settingsKey" stdset="0">
      </property>
      <property name="settingsKey" stdset="0">
-      <string notr="true">/UiStyle/UseCustomStyleSheet</string>
+      <string notr="true">UseSystemTrayIcon</string>
      </property>
      <property name="defaultValue" stdset="0">
      </property>
      <property name="defaultValue" stdset="0">
-      <bool>false</bool>
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <spacer name="horizontalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeType">
+        <enum>QSizePolicy::Fixed</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QCheckBox" name="minimizeOnClose">
+       <property name="text">
+        <string>Hide to tray on close button</string>
+       </property>
+       <property name="settingsKey" stdset="0">
+        <string notr="true">MinimizeOnClose</string>
+       </property>
+       <property name="defaultValue" stdset="0">
+        <bool>false</bool>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox_3">
+     <property name="title">
+      <string>Message Redirection</string>
      </property>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <item>
-         <widget class="QLabel" name="label">
-          <property name="text">
-           <string>Path:</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QLineEdit" name="customStyleSheetPath">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="readOnly">
-           <bool>false</bool>
-          </property>
-          <property name="settingsKey" stdset="0">
-           <string notr="true">/UiStyle/CustomStyleSheetPath</string>
-          </property>
-          <property name="defaultValue" stdset="0">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="chooseStyleSheet">
-          <property name="text">
-           <string>...</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
+     <layout class="QGridLayout" name="gridLayout_2">
+      <item row="1" column="0">
+       <widget class="QLabel" name="label_3">
+        <property name="text">
+         <string>User Notices:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QCheckBox" name="userNoticesInDefaultBuffer">
+        <property name="enabled">
+         <bool>true</bool>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="2">
+       <widget class="QCheckBox" name="userNoticesInStatusBuffer">
+        <property name="enabled">
+         <bool>true</bool>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+        <property name="checked">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3">
+       <widget class="QCheckBox" name="userNoticesInCurrentBuffer">
+        <property name="enabled">
+         <bool>true</bool>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0">
+       <widget class="QLabel" name="label_4">
+        <property name="text">
+         <string>Server Notices:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="QCheckBox" name="serverNoticesInDefaultBuffer">
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QLabel" name="label_5">
+        <property name="text">
+         <string>Default Target</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2">
+       <widget class="QLabel" name="label_6">
+        <property name="text">
+         <string>Status Window</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="3">
+       <widget class="QLabel" name="label_7">
+        <property name="text">
+         <string>Current Chat</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0">
+       <widget class="QLabel" name="label_8">
+        <property name="text">
+         <string>Errors:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="2">
+       <widget class="QCheckBox" name="serverNoticesInStatusBuffer">
+        <property name="text">
+         <string/>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="3">
+       <widget class="QCheckBox" name="serverNoticesInCurrentBuffer">
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1">
+       <widget class="QCheckBox" name="errorMsgsInDefaultBuffer">
+        <property name="text">
+         <string/>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="2">
+       <widget class="QCheckBox" name="errorMsgsInStatusBuffer">
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="3">
+       <widget class="QCheckBox" name="errorMsgsInCurrentBuffer">
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
       </item>
      </layout>
     </widget>
       </item>
      </layout>
     </widget>
   </layout>
  </widget>
  <resources/>
   </layout>
  </widget>
  <resources/>
- <connections/>
+ <connections>
+  <connection>
+   <sender>useCustomStyleSheet</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>customStyleSheetPath</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>63</x>
+     <y>86</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>86</x>
+     <y>114</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>useCustomStyleSheet</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>label</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>45</x>
+     <y>80</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>38</x>
+     <y>113</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>useCustomStyleSheet</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>chooseStyleSheet</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>84</x>
+     <y>80</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>525</x>
+     <y>117</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>useSystemTrayIcon</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>minimizeOnClose</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>91</x>
+     <y>143</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>92</x>
+     <y>174</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
 </ui>
 </ui>
index 490cdaf..5af18c4 100644 (file)
@@ -24,7 +24,7 @@
 #include "backlogsettings.h"
 
 BacklogSettingsPage::BacklogSettingsPage(QWidget *parent)
 #include "backlogsettings.h"
 
 BacklogSettingsPage::BacklogSettingsPage(QWidget *parent)
-  : SettingsPage(tr("Misc"), tr("Backlog"), parent)
+  : SettingsPage(tr("Interface"), tr("Backlog Fetching"), parent)
 {
   ui.setupUi(this);
   initAutoWidgets();
 {
   ui.setupUi(this);
   initAutoWidgets();
index 166b292..1d18e38 100644 (file)
@@ -33,7 +33,7 @@
 #include "util.h"
 
 BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent)
 #include "util.h"
 
 BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent)
-  : SettingsPage(tr("Misc"), tr("Custom Chat Lists"), parent),
+  : SettingsPage(tr("Interface"), tr("Custom Chat Lists"), parent),
     _ignoreWidgetChanges(false),
     _useBufferViewHint(false),
     _bufferViewHint(0)
     _ignoreWidgetChanges(false),
     _useBufferViewHint(false),
     _bufferViewHint(0)
@@ -52,7 +52,7 @@ BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent)
   coreConnectionStateChanged(Client::isConnected());  // need a core connection!
   connect(Client::instance(), SIGNAL(coreConnectionStateChanged(bool)), this, SLOT(coreConnectionStateChanged(bool)));
   connect(ui.bufferViewList->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
   coreConnectionStateChanged(Client::isConnected());  // need a core connection!
   connect(Client::instance(), SIGNAL(coreConnectionStateChanged(bool)), this, SLOT(coreConnectionStateChanged(bool)));
   connect(ui.bufferViewList->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
-         this, SLOT(bufferViewSelectionChanged(const QItemSelection &, const QItemSelection &)));
+          this, SLOT(bufferViewSelectionChanged(const QItemSelection &, const QItemSelection &)));
 
   connect(ui.onlyStatusBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
   connect(ui.onlyChannelBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
 
   connect(ui.onlyStatusBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
   connect(ui.onlyChannelBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
@@ -353,16 +353,16 @@ void BufferViewSettingsPage::on_deleteBufferView_clicked() {
     } else if(config) {
       QList<BufferViewConfig *>::iterator iter = _newBufferViews.begin();
       while(iter != _newBufferViews.end()) {
     } else if(config) {
       QList<BufferViewConfig *>::iterator iter = _newBufferViews.begin();
       while(iter != _newBufferViews.end()) {
-       if(*iter == config) {
-         iter = _newBufferViews.erase(iter);
-         break;
-       } else {
-         iter++;
-       }
+        if(*iter == config) {
+          iter = _newBufferViews.erase(iter);
+          break;
+        } else {
+          iter++;
+        }
       }
       delete config;
       if(_deleteBufferViews.isEmpty() && _changedBufferViews.isEmpty() && _newBufferViews.isEmpty())
       }
       delete config;
       if(_deleteBufferViews.isEmpty() && _changedBufferViews.isEmpty() && _newBufferViews.isEmpty())
-       setChangedState(false);
+        setChangedState(false);
     }
   }
 }
     }
   }
 }
index 7bdac2d..969ccd8 100644 (file)
@@ -24,7 +24,7 @@
 #include "networkconfig.h"
 
 ConnectionSettingsPage::ConnectionSettingsPage(QWidget *parent)
 #include "networkconfig.h"
 
 ConnectionSettingsPage::ConnectionSettingsPage(QWidget *parent)
-  : SettingsPage(tr("Misc"), tr("Connection"), parent) {
+  : SettingsPage(tr("IRC"), QString(), parent) {
 
   ui.setupUi(this);
   initAutoWidgets();
 
   ui.setupUi(this);
   initAutoWidgets();
index 34c5684..4c86599 100644 (file)
@@ -33,6 +33,7 @@ class ConnectionSettingsPage : public SettingsPage {
     ConnectionSettingsPage(QWidget *parent = 0);
 
     bool hasDefaults() const;
     ConnectionSettingsPage(QWidget *parent = 0);
 
     bool hasDefaults() const;
+    bool needsCoreConnection() const { return true; }
 
   public slots:
 
 
   public slots:
 
index 3dbb299..11188ac 100644 (file)
@@ -26,7 +26,7 @@
 #include "iconloader.h"
 
 CoreAccountSettingsPage::CoreAccountSettingsPage(QWidget *parent)
 #include "iconloader.h"
 
 CoreAccountSettingsPage::CoreAccountSettingsPage(QWidget *parent)
-: SettingsPage(tr("Misc"), tr("Core Accounts"), parent),
+: SettingsPage(tr("Remote Cores"), QString(), parent),
 _lastAccountId(0),
 _lastAutoConnectId(0),
 _standalone(false)
 _lastAccountId(0),
 _lastAutoConnectId(0),
 _standalone(false)
diff --git a/src/qtui/settingspages/generalsettingspage.cpp b/src/qtui/settingspages/generalsettingspage.cpp
deleted file mode 100644 (file)
index a16e1b6..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-/***************************************************************************
- *   Copyright (C) 2005-09 by the Quassel Project                          *
- *   devel@quassel-irc.org                                                 *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
- ***************************************************************************/
-
-#include "generalsettingspage.h"
-
-#include "qtui.h"
-#include "qtuisettings.h"
-#include "buffersettings.h"
-
-GeneralSettingsPage::GeneralSettingsPage(QWidget *parent)
-  : SettingsPage(tr("Misc"), QString(), parent) {
-  ui.setupUi(this);
-
-#ifdef Q_WS_MAC
-  ui.useSystemTrayIcon->hide();
-#else
-  ui.macOnly->hide();
-#endif
-
-  connect(ui.useSystemTrayIcon, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-  connect(ui.showSystemTrayIcon, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-  connect(ui.minimizeOnClose, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-
-  connect(ui.userNoticesInDefaultBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-  connect(ui.userNoticesInStatusBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-  connect(ui.userNoticesInCurrentBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-
-  connect(ui.serverNoticesInDefaultBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-  connect(ui.serverNoticesInStatusBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-  connect(ui.serverNoticesInCurrentBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-
-  connect(ui.errorMsgsInDefaultBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-  connect(ui.errorMsgsInStatusBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-  connect(ui.errorMsgsInCurrentBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-}
-
-bool GeneralSettingsPage::hasDefaults() const {
-  return true;
-}
-
-void GeneralSettingsPage::defaults() {
-  ui.useSystemTrayIcon->setChecked(true);
-  ui.showSystemTrayIcon->setChecked(true);
-  ui.minimizeOnClose->setChecked(false);
-
-  ui.userNoticesInDefaultBuffer->setChecked(true);
-  ui.userNoticesInStatusBuffer->setChecked(false);
-  ui.userNoticesInCurrentBuffer->setChecked(false);
-
-  ui.serverNoticesInDefaultBuffer->setChecked(false);
-  ui.serverNoticesInStatusBuffer->setChecked(true);
-  ui.serverNoticesInCurrentBuffer->setChecked(false);
-
-  ui.errorMsgsInDefaultBuffer->setChecked(true);
-  ui.errorMsgsInStatusBuffer->setChecked(false);
-  ui.errorMsgsInCurrentBuffer->setChecked(false);
-
-  widgetHasChanged();
-}
-
-void GeneralSettingsPage::load() {
-  // uiSettings:
-  QtUiSettings qtuiSettings;
-  UiSettings uiSettings;
-  settings["UseSystemTrayIcon"] = qtuiSettings.value("UseSystemTrayIcon", QVariant(true));
-  ui.useSystemTrayIcon->setChecked(settings["UseSystemTrayIcon"].toBool());
-  ui.showSystemTrayIcon->setChecked(settings["UseSystemTrayIcon"].toBool());
-
-  settings["MinimizeOnClose"] = qtuiSettings.value("MinimizeOnClose", QVariant(false));
-  ui.minimizeOnClose->setChecked(settings["MinimizeOnClose"].toBool());
-
-  // bufferSettings:
-  BufferSettings bufferSettings;
-  int redirectTarget = bufferSettings.userNoticesTarget();
-  SettingsPage::load(ui.userNoticesInDefaultBuffer, redirectTarget & BufferSettings::DefaultBuffer);
-  SettingsPage::load(ui.userNoticesInStatusBuffer, redirectTarget & BufferSettings::StatusBuffer);
-  SettingsPage::load(ui.userNoticesInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
-
-  redirectTarget = bufferSettings.serverNoticesTarget();
-  SettingsPage::load(ui.serverNoticesInDefaultBuffer, redirectTarget & BufferSettings::DefaultBuffer);
-  SettingsPage::load(ui.serverNoticesInStatusBuffer, redirectTarget & BufferSettings::StatusBuffer);
-  SettingsPage::load(ui.serverNoticesInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
-
-  redirectTarget = bufferSettings.errorMsgsTarget();
-  SettingsPage::load(ui.errorMsgsInDefaultBuffer, redirectTarget & BufferSettings::DefaultBuffer);
-  SettingsPage::load(ui.errorMsgsInStatusBuffer, redirectTarget & BufferSettings::StatusBuffer);
-  SettingsPage::load(ui.errorMsgsInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
-
-  setChangedState(false);
-}
-
-void GeneralSettingsPage::save() {
-  QtUiSettings qtuiSettings;
-#ifdef Q_WS_MAC
-  qtuiSettings.setValue("UseSystemTrayIcon", ui.showSystemTrayIcon->isChecked());
-#else
-  qtuiSettings.setValue("UseSystemTrayIcon", ui.useSystemTrayIcon->isChecked());
-#endif
-  qtuiSettings.setValue("MinimizeOnClose", ui.minimizeOnClose->isChecked());
-
-  BufferSettings bufferSettings;
-  int redirectTarget = 0;
-  if(ui.userNoticesInDefaultBuffer->isChecked())
-    redirectTarget |= BufferSettings::DefaultBuffer;
-  if(ui.userNoticesInStatusBuffer->isChecked())
-    redirectTarget |= BufferSettings::StatusBuffer;
-  if(ui.userNoticesInCurrentBuffer->isChecked())
-    redirectTarget |= BufferSettings::CurrentBuffer;
-  bufferSettings.setUserNoticesTarget(redirectTarget);
-
-  redirectTarget = 0;
-  if(ui.serverNoticesInDefaultBuffer->isChecked())
-    redirectTarget |= BufferSettings::DefaultBuffer;
-  if(ui.serverNoticesInStatusBuffer->isChecked())
-    redirectTarget |= BufferSettings::StatusBuffer;
-  if(ui.serverNoticesInCurrentBuffer->isChecked())
-    redirectTarget |= BufferSettings::CurrentBuffer;
-  bufferSettings.setServerNoticesTarget(redirectTarget);
-
-  redirectTarget = 0;
-  if(ui.errorMsgsInDefaultBuffer->isChecked())
-    redirectTarget |= BufferSettings::DefaultBuffer;
-  if(ui.errorMsgsInStatusBuffer->isChecked())
-    redirectTarget |= BufferSettings::StatusBuffer;
-  if(ui.errorMsgsInCurrentBuffer->isChecked())
-    redirectTarget |= BufferSettings::CurrentBuffer;
-  bufferSettings.setErrorMsgsTarget(redirectTarget);
-
-  load();
-  setChangedState(false);
-}
-
-void GeneralSettingsPage::widgetHasChanged() {
-  bool changed = testHasChanged();
-  if(changed != hasChanged()) setChangedState(changed);
-}
-
-bool GeneralSettingsPage::testHasChanged() {
-#ifdef Q_WS_MAC
-  if(settings["UseSystemTrayIcon"].toBool() != ui.showSystemTrayIcon->isChecked()) return true;
-#else
-  if(settings["UseSystemTrayIcon"].toBool() != ui.useSystemTrayIcon->isChecked()) return true;
-#endif
-  if(settings["MinimizeOnClose"].toBool() != ui.minimizeOnClose->isChecked()) return true;
-
-  if(SettingsPage::hasChanged(ui.userNoticesInStatusBuffer)) return true;
-  if(SettingsPage::hasChanged(ui.userNoticesInDefaultBuffer)) return true;
-  if(SettingsPage::hasChanged(ui.userNoticesInCurrentBuffer)) return true;
-
-  if(SettingsPage::hasChanged(ui.serverNoticesInStatusBuffer)) return true;
-  if(SettingsPage::hasChanged(ui.serverNoticesInDefaultBuffer)) return true;
-  if(SettingsPage::hasChanged(ui.serverNoticesInCurrentBuffer)) return true;
-
-  if(SettingsPage::hasChanged(ui.errorMsgsInStatusBuffer)) return true;
-  if(SettingsPage::hasChanged(ui.errorMsgsInDefaultBuffer)) return true;
-  if(SettingsPage::hasChanged(ui.errorMsgsInCurrentBuffer)) return true;
-
-  return false;
-}
diff --git a/src/qtui/settingspages/generalsettingspage.h b/src/qtui/settingspages/generalsettingspage.h
deleted file mode 100644 (file)
index 33715e5..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/***************************************************************************
- *   Copyright (C) 2005-09 by the Quassel Project                          *
- *   devel@quassel-irc.org                                                 *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
- ***************************************************************************/
-
-#ifndef GENERALSETTINGSPAGE_H
-#define GENERALSETTINGSPAGE_H
-
-#include <QHash>
-
-#include "settingspage.h"
-#include "ui_generalsettingspage.h"
-
-class GeneralSettingsPage : public SettingsPage {
-  Q_OBJECT
-
-public:
-  GeneralSettingsPage(QWidget *parent = 0);
-
-  bool hasDefaults() const;
-
-public slots:
-  void save();
-  void load();
-  void defaults();
-
-private slots:
-  void widgetHasChanged();
-
-private:
-  Ui::GeneralSettingsPage ui;
-  QHash<QString, QVariant> settings;
-
-  bool testHasChanged();
-};
-
-#endif
diff --git a/src/qtui/settingspages/generalsettingspage.ui b/src/qtui/settingspages/generalsettingspage.ui
deleted file mode 100644 (file)
index 45103dc..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>GeneralSettingsPage</class>
- <widget class="QWidget" name="GeneralSettingsPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>467</width>
-    <height>515</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
-   <item>
-    <widget class="QGroupBox" name="useSystemTrayIcon">
-     <property name="title">
-      <string>Show System Tray Icon</string>
-     </property>
-     <property name="checkable">
-      <bool>true</bool>
-     </property>
-     <layout class="QVBoxLayout" name="_2">
-      <item>
-       <widget class="QCheckBox" name="minimizeOnClose">
-        <property name="text">
-         <string>Hide to tray on close button</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="macOnly">
-     <property name="title">
-      <string>Tray Icon</string>
-     </property>
-     <layout class="QHBoxLayout" name="_3">
-      <item>
-       <widget class="QCheckBox" name="showSystemTrayIcon">
-        <property name="text">
-         <string>Show system tray icon</string>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Message Redirection</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_2">
-      <item row="1" column="0">
-       <widget class="QLabel" name="label_3">
-        <property name="text">
-         <string>User Notices:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QCheckBox" name="userNoticesInDefaultBuffer">
-        <property name="enabled">
-         <bool>true</bool>
-        </property>
-        <property name="text">
-         <string/>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="2">
-       <widget class="QCheckBox" name="userNoticesInStatusBuffer">
-        <property name="enabled">
-         <bool>true</bool>
-        </property>
-        <property name="text">
-         <string/>
-        </property>
-        <property name="checked">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="3">
-       <widget class="QCheckBox" name="userNoticesInCurrentBuffer">
-        <property name="enabled">
-         <bool>true</bool>
-        </property>
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="0">
-       <widget class="QLabel" name="label_4">
-        <property name="text">
-         <string>Server Notices:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QCheckBox" name="serverNoticesInDefaultBuffer">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QLabel" name="label_5">
-        <property name="text">
-         <string>Default Target</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2">
-       <widget class="QLabel" name="label_6">
-        <property name="text">
-         <string>Status Window</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="3">
-       <widget class="QLabel" name="label_7">
-        <property name="text">
-         <string>Current Chat</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="0">
-       <widget class="QLabel" name="label_8">
-        <property name="text">
-         <string>Errors:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="2">
-       <widget class="QCheckBox" name="serverNoticesInStatusBuffer">
-        <property name="text">
-         <string/>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="3">
-       <widget class="QCheckBox" name="serverNoticesInCurrentBuffer">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <widget class="QCheckBox" name="errorMsgsInDefaultBuffer">
-        <property name="text">
-         <string/>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="2">
-       <widget class="QCheckBox" name="errorMsgsInStatusBuffer">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="3">
-       <widget class="QCheckBox" name="errorMsgsInCurrentBuffer">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>40</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
index 47463f6..55be691 100644 (file)
@@ -28,7 +28,7 @@
 #include "signalproxy.h"
 
 IdentitiesSettingsPage::IdentitiesSettingsPage(QWidget *parent)
 #include "signalproxy.h"
 
 IdentitiesSettingsPage::IdentitiesSettingsPage(QWidget *parent)
-  : SettingsPage(tr("Misc"), tr("Identities"), parent),
+  : SettingsPage(tr("IRC"), tr("Identities"), parent),
     _editSsl(false)
 {
   ui.setupUi(this);
     _editSsl(false)
 {
   ui.setupUi(this);
@@ -159,7 +159,7 @@ bool IdentitiesSettingsPage::testHasChanged() {
       ui.identityEditor->saveToIdentity(&temp);
       temp.setIdentityName(identities[currentId]->identityName());
       if(temp != *Client::identity(currentId) || temp.isDirty())
       ui.identityEditor->saveToIdentity(&temp);
       temp.setIdentityName(identities[currentId]->identityName());
       if(temp != *Client::identity(currentId) || temp.isDirty())
-       changedIdentities.append(currentId);
+        changedIdentities.append(currentId);
     }
     return changedIdentities.count();
   }
     }
     return changedIdentities.count();
   }
index 27be75c..277cee8 100644 (file)
@@ -38,6 +38,8 @@ class IdentitiesSettingsPage : public SettingsPage {
 public:
   IdentitiesSettingsPage(QWidget *parent = 0);
 
 public:
   IdentitiesSettingsPage(QWidget *parent = 0);
 
+  virtual inline bool needsCoreConnection() const { return true; }
+
   bool aboutToSave();
 
 public slots:
   bool aboutToSave();
 
 public slots:
index a832e5d..aa73396 100644 (file)
@@ -31,7 +31,7 @@
 #include "iconloader.h"
 
 IgnoreListSettingsPage::IgnoreListSettingsPage(QWidget *parent)
 #include "iconloader.h"
 
 IgnoreListSettingsPage::IgnoreListSettingsPage(QWidget *parent)
-  : SettingsPage(tr("Misc"), tr("Ignore List"), parent)
+  : SettingsPage(tr("IRC"), tr("Ignore List"), parent)
 {
   ui.setupUi(this);
   _delegate = new IgnoreListDelegate(ui.ignoreListView);
 {
   ui.setupUi(this);
   _delegate = new IgnoreListDelegate(ui.ignoreListView);
index 251018c..2313ba9 100644 (file)
@@ -75,6 +75,7 @@ public:
   IgnoreListSettingsPage(QWidget *parent = 0);
   ~IgnoreListSettingsPage();
   virtual inline bool hasDefaults() const { return false; }
   IgnoreListSettingsPage(QWidget *parent = 0);
   ~IgnoreListSettingsPage();
   virtual inline bool hasDefaults() const { return false; }
+  virtual inline bool needsCoreConnection() const { return true; }
   void editIgnoreRule(const QString &ignoreRule);
 
 public slots:
   void editIgnoreRule(const QString &ignoreRule);
 
 public slots:
index 516fb3c..1b20c2a 100644 (file)
@@ -33,8 +33,8 @@
 
 #include "settingspages/identitiessettingspage.h"
 
 
 #include "settingspages/identitiessettingspage.h"
 
-NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) 
-: SettingsPage(tr("Misc"), tr("Networks"), parent) {
+NetworksSettingsPage::NetworksSettingsPage(QWidget *parent)
+: SettingsPage(tr("IRC"), tr("Networks"), parent) {
   ui.setupUi(this);
 
   // set up icons
   ui.setupUi(this);
 
   // set up icons
@@ -316,7 +316,7 @@ void NetworksSettingsPage::clientIdentityRemoved(IdentityId id) {
   foreach(NetworkInfo info, networkInfos.values()) {
     if(info.identity == id) {
       if(info.networkId == currentId)
   foreach(NetworkInfo info, networkInfos.values()) {
     if(info.identity == id) {
       if(info.networkId == currentId)
-       ui.identityList->setCurrentIndex(0);
+        ui.identityList->setCurrentIndex(0);
       info.identity = defaultId;
       networkInfos[info.networkId] = info;
       if(info.networkId > 0) Client::updateNetwork(info);
       info.identity = defaultId;
       networkInfos[info.networkId] = info;
       if(info.networkId > 0) Client::updateNetwork(info);
index d0eed91..db209a7 100644 (file)
@@ -38,6 +38,8 @@ class NetworksSettingsPage : public SettingsPage {
 public:
   NetworksSettingsPage(QWidget *parent = 0);
 
 public:
   NetworksSettingsPage(QWidget *parent = 0);
 
+  virtual inline bool needsCoreConnection() const { return true; }
+
   bool aboutToSave();
 
 public slots:
   bool aboutToSave();
 
 public slots:
index 62ab590..48966bf 100644 (file)
@@ -1,7 +1,7 @@
 # Putting $FOO in SETTINGSPAGES automatically includes
 # $FOOsettingspage.cpp, $FOOsettingspage.h and $FOOsettingspage.ui
 
 # Putting $FOO in SETTINGSPAGES automatically includes
 # $FOOsettingspage.cpp, $FOOsettingspage.h and $FOOsettingspage.ui
 
-set(SETTINGSPAGES aliases appearance backlog bufferview chatview connection chatmonitor coreaccount general 
+set(SETTINGSPAGES aliases appearance backlog bufferview chatview connection chatmonitor coreaccount
                   highlight identities ignorelist inputwidget itemview networks topicwidget)
 
 # Specify additional files (e.g. for subdialogs) here!
                   highlight identities ignorelist inputwidget itemview networks topicwidget)
 
 # Specify additional files (e.g. for subdialogs) here!
index 3ef6d2c..b68b78b 100644 (file)
@@ -67,6 +67,12 @@ public:
   //! The title of this settings page.
   inline virtual QString title() const { return _title; }
 
   //! The title of this settings page.
   inline virtual QString title() const { return _title; }
 
+  //! Whether the settingspage needs a core connection to be selectable
+  /** This is a hint for the settingspage dialog. Do not rely on the settingspage not being
+   *  visible if disconnected, and care about disabling it yourself.
+   */
+  inline virtual bool needsCoreConnection() const { return false; }
+
   //! The key this settings page stores its values under
   /** This needs to be overriden to enable automatic loading/saving/hasChanged checking of widgets.
    *  The child widgets' values will be stored in client settings under this key. Every widget that
   //! The key this settings page stores its values under
   /** This needs to be overriden to enable automatic loading/saving/hasChanged checking of widgets.
    *  The child widgets' values will be stored in client settings under this key. Every widget that