Add new ItemView settingspage
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 6 Aug 2009 17:00:30 +0000 (19:00 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Thu, 6 Aug 2009 18:25:59 +0000 (20:25 +0200)
This can be used to define custom colors and fonts for the chat list and nick list.
As with the ChatView, only basic things are settable here; more complex stuff requires
a custom stylesheet.

src/qtui/mainwin.cpp
src/qtui/settingspages/appearancesettingspage.cpp
src/qtui/settingspages/appearancesettingspage.ui
src/qtui/settingspages/generalsettingspage.cpp
src/qtui/settingspages/generalsettingspage.ui
src/qtui/settingspages/itemviewsettingspage.cpp [new file with mode: 0644]
src/qtui/settingspages/itemviewsettingspage.h [new file with mode: 0644]
src/qtui/settingspages/itemviewsettingspage.ui [new file with mode: 0644]
src/qtui/settingspages/settingspages.inc

index 8b76d0e..ea94561 100644 (file)
 #include "settingspages/generalsettingspage.h"
 #include "settingspages/highlightsettingspage.h"
 #include "settingspages/identitiessettingspage.h"
+#include "settingspages/itemviewsettingspage.h"
 #include "settingspages/networkssettingspage.h"
 #include "settingspages/notificationssettingspage.h"
 
@@ -810,6 +811,7 @@ void MainWin::showSettingsDlg() {
   //Category: Appearance
   dlg->registerSettingsPage(new AppearanceSettingsPage(dlg));
   dlg->registerSettingsPage(new ChatViewSettingsPage(dlg));
+  dlg->registerSettingsPage(new ItemViewSettingsPage(dlg));
   dlg->registerSettingsPage(new HighlightSettingsPage(dlg));
   dlg->registerSettingsPage(new NotificationsSettingsPage(dlg));
   dlg->registerSettingsPage(new BacklogSettingsPage(dlg));
index 5206430..8ab7ce3 100644 (file)
@@ -27,6 +27,7 @@
 #include "qtuistyle.h"
 #include "util.h"
 
+#include <QCheckBox>
 #include <QDir>
 #include <QFileDialog>
 #include <QFontDialog>
@@ -57,10 +58,8 @@ AppearanceSettingsPage::AppearanceSettingsPage(QWidget *parent)
   mapper = new QSignalMapper(this);
   connect(mapper, SIGNAL(mapped(QWidget *)), this, SLOT(chooseFont(QWidget *)));
 
-  connect(ui.chooseBufferView, SIGNAL(clicked()), mapper, SLOT(map()));
   connect(ui.chooseInputLine, SIGNAL(clicked()), mapper, SLOT(map()));
 
-  mapper->setMapping(ui.chooseBufferView, ui.demoBufferView);
   mapper->setMapping(ui.chooseInputLine, ui.demoInputLine);
 
   connect(ui.chooseStyleSheet, SIGNAL(clicked()), SLOT(chooseStyleSheet()));
@@ -92,8 +91,6 @@ void AppearanceSettingsPage::defaults() {
   loadFonts(Settings::Default);
   _fontsChanged = true;
 
-  ui.showUserStateIcons->setChecked(true);
-
   SettingsPage::defaults();
   widgetHasChanged();
 }
@@ -122,9 +119,6 @@ void AppearanceSettingsPage::load() {
   ui.languageComboBox->setProperty("storedValue", ui.languageComboBox->currentIndex());
   Quassel::loadTranslation(selectedLocale());
 
-  BufferSettings bufferSettings;
-  SettingsPage::load(ui.showUserStateIcons, bufferSettings.showUserStateIcons());
-
   loadFonts(Settings::Custom);
 
   SettingsPage::load();
@@ -139,14 +133,6 @@ void AppearanceSettingsPage::loadFonts(Settings::Mode mode) {
     inputLineFont = s.value("InputLine", QFont()).value<QFont>();
   setFont(ui.demoInputLine, inputLineFont);
 
-  QFont bufferViewFont;
-  if(mode == Settings::Custom)
-    bufferViewFont = s.value("BufferView", QFont()).value<QFont>();
-  setFont(ui.demoBufferView, bufferViewFont);
-
-  //QTextCharFormat chatFormat = QtUi::style()->cachedFormat(UiStyle::None, 0); // FIXME
-  //setFont(ui.demoChatView, chatFormat.font());
-
   _fontsChanged = false;
 }
 
@@ -165,9 +151,6 @@ void AppearanceSettingsPage::save() {
     uiSettings.setValue("Locale", selectedLocale());
   }
 
-  BufferSettings bufferSettings;
-  bufferSettings.enableUserStateIcons(ui.showUserStateIcons->isChecked());
-
   // Fonts
   QtUiStyleSettings fontSettings("Fonts");
   if(ui.demoInputLine->font() != QApplication::font())
@@ -175,15 +158,6 @@ void AppearanceSettingsPage::save() {
   else
     fontSettings.setValue("InputLine", "");
 
-  if(ui.demoBufferView->font() != QApplication::font())
-    fontSettings.setValue("BufferView", ui.demoBufferView->font());
-  else
-    fontSettings.setValue("BufferView", "");
-
-  //QTextCharFormat chatFormat = QtUi::style()->format(UiStyle::None);
-  //chatFormat.setFont(ui.demoChatView->font());
-  //QtUi::style()->setFormat(UiStyle::None, chatFormat, Settings::Custom);
-
   _fontsChanged = false;
 
   bool needsStyleReload =
@@ -246,7 +220,5 @@ bool AppearanceSettingsPage::testHasChanged() {
 
   if(selectedLocale() != QLocale()) return true; // QLocale() returns the default locale (manipulated via loadTranslation())
 
-  if(SettingsPage::hasChanged(ui.showUserStateIcons)) return true;
-
   return false;
 }
index 291881a..9c48419 100644 (file)
      </property>
      <layout class="QGridLayout" name="gridLayout">
       <item row="0" column="0">
-       <widget class="QLabel" name="label_4">
-        <property name="toolTip">
-         <string>Set font for channel and nick lists</string>
-        </property>
-        <property name="text">
-         <string>Channel list:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QLabel" name="demoBufferView">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Set font for channel and nick lists</string>
-        </property>
-        <property name="frameShape">
-         <enum>QFrame::StyledPanel</enum>
-        </property>
-        <property name="frameShadow">
-         <enum>QFrame::Sunken</enum>
-        </property>
-        <property name="text">
-         <string>Font</string>
-        </property>
-        <property name="alignment">
-         <set>Qt::AlignCenter</set>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2">
-       <widget class="QPushButton" name="chooseBufferView">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text">
-         <string>Choose...</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
        <widget class="QLabel" name="label_3">
         <property name="toolTip">
          <string>Set font for the input line</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="1">
+      <item row="0" column="1">
        <widget class="QLabel" name="demoInputLine">
         <property name="sizePolicy">
          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
         </property>
        </widget>
       </item>
-      <item row="1" column="2">
+      <item row="0" column="2">
        <widget class="QPushButton" name="chooseInputLine">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
      </layout>
     </widget>
    </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_3">
-     <property name="title">
-      <string>Misc</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_3">
-      <item>
-       <widget class="QCheckBox" name="showUserStateIcons">
-        <property name="toolTip">
-         <string>Show status icons in channel and nick lists</string>
-        </property>
-        <property name="text">
-         <string>Use icons in channel and nick lists</string>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
    <item>
     <spacer name="verticalSpacer">
      <property name="orientation">
index 9f34b59..9888235 100644 (file)
@@ -50,8 +50,6 @@ GeneralSettingsPage::GeneralSettingsPage(QWidget *parent)
   connect(ui.errorMsgsInStatusBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
   connect(ui.errorMsgsInCurrentBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
 
-  connect(ui.displayTopicInTooltip, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-  connect(ui.mouseWheelChangesBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
   connect(ui.completionSuffix, SIGNAL(textEdited(const QString&)), this, SLOT(widgetHasChanged()));
 }
 
@@ -76,9 +74,6 @@ void GeneralSettingsPage::defaults() {
   ui.errorMsgsInStatusBuffer->setChecked(false);
   ui.errorMsgsInCurrentBuffer->setChecked(false);
 
-  ui.displayTopicInTooltip->setChecked(false);
-  ui.mouseWheelChangesBuffers->setChecked(false);
-
   ui.completionSuffix->setText(": ");
 
   widgetHasChanged();
@@ -95,9 +90,6 @@ void GeneralSettingsPage::load() {
   settings["MinimizeOnClose"] = qtuiSettings.value("MinimizeOnClose", QVariant(false));
   ui.minimizeOnClose->setChecked(settings["MinimizeOnClose"].toBool());
 
-  settings["MouseWheelChangesBuffers"] = uiSettings.value("MouseWheelChangesBuffers", QVariant(false));
-  ui.mouseWheelChangesBuffers->setChecked(settings["MouseWheelChangesBuffers"].toBool());
-
   // bufferSettings:
   BufferSettings bufferSettings;
   int redirectTarget = bufferSettings.userNoticesTarget();
@@ -115,10 +107,6 @@ void GeneralSettingsPage::load() {
   SettingsPage::load(ui.errorMsgsInStatusBuffer, redirectTarget & BufferSettings::StatusBuffer);
   SettingsPage::load(ui.errorMsgsInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
 
-
-  settings["DisplayTopicInTooltip"] = bufferSettings.value("DisplayTopicInTooltip", QVariant(false));
-  ui.displayTopicInTooltip->setChecked(settings["DisplayTopicInTooltip"].toBool());
-
   // completion settings
   TabCompletionSettings completionSettings;
   settings["CompletionSuffix"] = completionSettings.completionSuffix();
@@ -136,9 +124,6 @@ void GeneralSettingsPage::save() {
 #endif
   qtuiSettings.setValue("MinimizeOnClose", ui.minimizeOnClose->isChecked());
 
-  UiSettings uiSettings;
-  uiSettings.setValue("MouseWheelChangesBuffers", ui.mouseWheelChangesBuffers->isChecked());
-
   BufferSettings bufferSettings;
   int redirectTarget = 0;
   if(ui.userNoticesInDefaultBuffer->isChecked())
@@ -167,8 +152,6 @@ void GeneralSettingsPage::save() {
     redirectTarget |= BufferSettings::CurrentBuffer;
   bufferSettings.setErrorMsgsTarget(redirectTarget);
 
-  bufferSettings.setValue("DisplayTopicInTooltip", ui.displayTopicInTooltip->isChecked());
-
   TabCompletionSettings completionSettings;
   completionSettings.setCompletionSuffix(ui.completionSuffix->text());
 
@@ -202,9 +185,6 @@ bool GeneralSettingsPage::testHasChanged() {
   if(SettingsPage::hasChanged(ui.errorMsgsInDefaultBuffer)) return true;
   if(SettingsPage::hasChanged(ui.errorMsgsInCurrentBuffer)) return true;
 
-  if(settings["DisplayTopicInTooltip"].toBool() != ui.displayTopicInTooltip->isChecked()) return true;
-  if(settings["MouseWheelChangesBuffers"].toBool() != ui.mouseWheelChangesBuffers->isChecked()) return true;
-
   if(settings["CompletionSuffix"].toString() != ui.completionSuffix->text()) return true;
 
   return false;
index 8bf8274..41931dc 100644 (file)
      </layout>
     </widget>
    </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_2">
-     <property name="title">
-      <string>Buffer View</string>
-     </property>
-     <layout class="QVBoxLayout">
-      <item>
-       <widget class="QCheckBox" name="displayTopicInTooltip">
-        <property name="text">
-         <string>Display topic in tooltip</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QCheckBox" name="mouseWheelChangesBuffers">
-        <property name="text">
-         <string>Mouse wheel changes displayed buffers</string>
-        </property>
-        <property name="checked">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
    <item>
     <widget class="QGroupBox" name="inputLineGroup">
      <property name="toolTip">
diff --git a/src/qtui/settingspages/itemviewsettingspage.cpp b/src/qtui/settingspages/itemviewsettingspage.cpp
new file mode 100644 (file)
index 0000000..1b37c53
--- /dev/null
@@ -0,0 +1,76 @@
+/***************************************************************************
+ *   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) version 3.                                           *
+ *                                                                         *
+ *   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 <QSignalMapper>
+
+#include "itemviewsettingspage.h"
+#include "colorbutton.h"
+#include "qtui.h"
+#include "qtuistyle.h"
+
+ItemViewSettingsPage::ItemViewSettingsPage(QWidget *parent)
+  : SettingsPage(tr("Appearance"), tr("Chat & Nick Lists"), parent),
+  _mapper(new QSignalMapper(this))
+{
+  ui.setupUi(this);
+
+  _networkItem = new QTreeWidgetItem(ui.bufferViewPreview, QStringList(tr("Network")));
+  _networkItem->setFlags(Qt::NoItemFlags);
+
+  _inactiveBufferItem = new QTreeWidgetItem(_networkItem, QStringList(tr("Inactive")));
+  _defaultBufferItem = new QTreeWidgetItem(_networkItem, QStringList(tr("Normal")));
+  _unreadBufferItem = new QTreeWidgetItem(_networkItem, QStringList(tr("Unread messages")));
+  _highlightedBufferItem = new QTreeWidgetItem(_networkItem, QStringList(tr("Highlight")));
+  _activeBufferItem = new QTreeWidgetItem(_networkItem, QStringList(tr("Other activity")));
+
+  ui.bufferViewPreview->expandAll();
+
+  foreach(ColorButton *button, findChildren<ColorButton *>()) {
+    connect(button, SIGNAL(colorChanged(QColor)), _mapper, SLOT(map()));
+    _mapper->setMapping(button, button);
+  }
+  connect(_mapper, SIGNAL(mapped(QWidget *)), SLOT(updateBufferViewPreview(QWidget *)));
+
+  initAutoWidgets();
+}
+
+void ItemViewSettingsPage::save() {
+  SettingsPage::save();
+  QtUi::style()->generateSettingsQss();
+  QtUi::style()->reload();
+}
+
+void ItemViewSettingsPage::updateBufferViewPreview(QWidget *widget) {
+  ColorButton *button = qobject_cast<ColorButton *>(widget);
+  if(!button)
+    return;
+
+  QString objName = button->objectName();
+  if(objName == "defaultBufferColor") {
+    _networkItem->setForeground(0, button->color());
+    _defaultBufferItem->setForeground(0, button->color());
+  } else if(objName == "inactiveBufferColor")
+    _inactiveBufferItem->setForeground(0, button->color());
+  else if(objName == "activeBufferColor")
+    _activeBufferItem->setForeground(0, button->color());
+  else if(objName == "unreadBufferColor")
+    _unreadBufferItem->setForeground(0, button->color());
+  else if(objName == "highlightedBufferColor")
+    _highlightedBufferItem->setForeground(0, button->color());
+}
diff --git a/src/qtui/settingspages/itemviewsettingspage.h b/src/qtui/settingspages/itemviewsettingspage.h
new file mode 100644 (file)
index 0000000..4b184c4
--- /dev/null
@@ -0,0 +1,54 @@
+/***************************************************************************
+ *   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) version 3.                                           *
+ *                                                                         *
+ *   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 ITEMVIEWSETTINGSPAGE_H_
+#define ITEMVIEWSETTINGSPAGE_H_
+
+#include "settingspage.h"
+#include "ui_itemviewsettingspage.h"
+
+class ColorButton;
+class QSignalMapper;
+class QTreeWidgetItem;
+
+class ItemViewSettingsPage : public SettingsPage {
+  Q_OBJECT
+
+public:
+  ItemViewSettingsPage(QWidget *parent = 0);
+
+  inline bool hasDefaults() const { return true; }
+
+public slots:
+  void save();
+
+private slots:
+  void updateBufferViewPreview(QWidget *button);
+
+private:
+  Ui::ItemViewSettingsPage ui;
+  QSignalMapper *_mapper;
+  QTreeWidgetItem *_networkItem, *_defaultBufferItem, *_inactiveBufferItem,
+                  *_activeBufferItem, *_unreadBufferItem, *_highlightedBufferItem;
+
+  inline QString settingsKey() const { return QString("ItemViews"); }
+};
+
+#endif
diff --git a/src/qtui/settingspages/itemviewsettingspage.ui b/src/qtui/settingspages/itemviewsettingspage.ui
new file mode 100644 (file)
index 0000000..1f74204
--- /dev/null
@@ -0,0 +1,438 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ItemViewSettingsPage</class>
+ <widget class="QWidget" name="ItemViewSettingsPage">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>374</width>
+    <height>508</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_2">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <item>
+      <widget class="QCheckBox" name="useCustomItemViewFont">
+       <property name="text">
+        <string>Custom font:</string>
+       </property>
+       <property name="settingsKey" stdset="0">
+        <string>/UiStyle/Fonts/UseCustomItemViewFont</string>
+       </property>
+       <property name="defaultValue" stdset="0">
+        <bool>false</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="FontSelector" name="widget" native="true">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="settingsKey" stdset="0">
+        <string>/UiStyle/Fonts/ItemView</string>
+       </property>
+       <property name="defaultValue" stdset="0">
+        <font/>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QCheckBox" name="showItemViewIcons">
+     <property name="text">
+      <string>Show icons</string>
+     </property>
+     <property name="checked">
+      <bool>true</bool>
+     </property>
+     <property name="settingsKey" stdset="0">
+      <string>/UiStyle/ShowItemViewIcons</string>
+     </property>
+     <property name="defaultValue" stdset="0">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
+      <string>Chat List</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <widget class="QCheckBox" name="displayTopicInTooltip">
+        <property name="text">
+         <string>Display topic in tooltip</string>
+        </property>
+        <property name="settingsKey" stdset="0">
+         <string>DisplayTopicInTooltip</string>
+        </property>
+        <property name="defaultValue" stdset="0">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="mouseWheelChangesBuffers">
+        <property name="text">
+         <string>Mouse wheel changes selected chat</string>
+        </property>
+        <property name="checked">
+         <bool>false</bool>
+        </property>
+        <property name="settingsKey" stdset="0">
+         <string>MouseWheelChangesBuffer</string>
+        </property>
+        <property name="defaultValue" stdset="0">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QGroupBox" name="useBufferViewColors">
+        <property name="title">
+         <string>Use Custom Colors</string>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
+        </property>
+        <property name="settingsKey" stdset="0">
+         <string>/UiStyle/Colors/UseBufferViewColors</string>
+        </property>
+        <property name="defaultValue" stdset="0">
+         <bool>false</bool>
+        </property>
+        <layout class="QHBoxLayout" name="horizontalLayout">
+         <item>
+          <layout class="QGridLayout" name="gridLayout">
+           <item row="0" column="0">
+            <widget class="QLabel" name="label">
+             <property name="text">
+              <string>Standard:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="1">
+            <widget class="ColorButton" name="defaultBufferColor">
+             <property name="text">
+              <string>...</string>
+             </property>
+             <property name="settingsKey" stdset="0">
+              <string>/UiStyle/Colors/DefaultBuffer</string>
+             </property>
+             <property name="defaultValue" stdset="0">
+              <color>
+               <red>0</red>
+               <green>0</green>
+               <blue>0</blue>
+              </color>
+             </property>
+            </widget>
+           </item>
+           <item row="1" column="0">
+            <widget class="QLabel" name="label_2">
+             <property name="text">
+              <string>Inactive:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="1" column="1">
+            <widget class="ColorButton" name="inactiveBufferColor">
+             <property name="text">
+              <string>...</string>
+             </property>
+             <property name="settingsKey" stdset="0">
+              <string>/UiStyle/Colors/InactiveBuffer</string>
+             </property>
+             <property name="defaultValue" stdset="0">
+              <color>
+               <red>160</red>
+               <green>160</green>
+               <blue>164</blue>
+              </color>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="0">
+            <widget class="QLabel" name="label_3">
+             <property name="text">
+              <string>Unread messages:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="1">
+            <widget class="ColorButton" name="unreadBufferColor">
+             <property name="text">
+              <string>...</string>
+             </property>
+             <property name="settingsKey" stdset="0">
+              <string>/UiStyle/Colors/UnreadBuffer</string>
+             </property>
+             <property name="defaultValue" stdset="0">
+              <color>
+               <red>0</red>
+               <green>0</green>
+               <blue>128</blue>
+              </color>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="0">
+            <widget class="QLabel" name="label_4">
+             <property name="text">
+              <string>Highlight:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="1">
+            <widget class="ColorButton" name="highlightedBufferColor">
+             <property name="text">
+              <string>...</string>
+             </property>
+             <property name="settingsKey" stdset="0">
+              <string>/UiStyle/Colors/HighlightedBuffer</string>
+             </property>
+             <property name="defaultValue" stdset="0">
+              <color>
+               <red>255</red>
+               <green>128</green>
+               <blue>0</blue>
+              </color>
+             </property>
+            </widget>
+           </item>
+           <item row="4" column="0">
+            <widget class="QLabel" name="label_5">
+             <property name="text">
+              <string>Other activity:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="4" column="1">
+            <widget class="ColorButton" name="activeBufferColor">
+             <property name="text">
+              <string>...</string>
+             </property>
+             <property name="settingsKey" stdset="0">
+              <string>/UiStyle/Colors/ActiveBuffer</string>
+             </property>
+             <property name="defaultValue" stdset="0">
+              <color>
+               <red>0</red>
+               <green>128</green>
+               <blue>0</blue>
+              </color>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+         <item>
+          <spacer name="horizontalSpacer_2">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>40</width>
+             <height>20</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item>
+          <widget class="QTreeWidget" name="bufferViewPreview">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="editTriggers">
+            <set>QAbstractItemView::NoEditTriggers</set>
+           </property>
+           <property name="showDropIndicator" stdset="0">
+            <bool>false</bool>
+           </property>
+           <property name="itemsExpandable">
+            <bool>false</bool>
+           </property>
+           <attribute name="headerVisible">
+            <bool>false</bool>
+           </attribute>
+           <column>
+            <property name="text">
+             <string>1</string>
+            </property>
+           </column>
+          </widget>
+         </item>
+        </layout>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="useNickViewColors">
+     <property name="title">
+      <string>Custom Nick List Colors</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="settingsKey" stdset="0">
+      <string>/UiStyle/Colors/UseNickViewColors</string>
+     </property>
+     <property name="defaultValue" stdset="0">
+      <bool>false</bool>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_3">
+      <item>
+       <widget class="QLabel" name="label_6">
+        <property name="text">
+         <string>Online:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="ColorButton" name="onlineNickColor">
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="settingsKey" stdset="0">
+         <string>/UiStyle/Colors/OnlineNick</string>
+        </property>
+        <property name="defaultValue" stdset="0">
+         <color>
+          <red>0</red>
+          <green>0</green>
+          <blue>0</blue>
+         </color>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>88</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <widget class="QLabel" name="label_7">
+        <property name="text">
+         <string>Away:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="ColorButton" name="awayNickColor">
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="settingsKey" stdset="0">
+         <string>/UiStyle/Colors/AwayNick</string>
+        </property>
+        <property name="defaultValue" stdset="0">
+         <color>
+          <red>160</red>
+          <green>160</green>
+          <blue>164</blue>
+         </color>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer_3">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>87</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </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>
+ <customwidgets>
+  <customwidget>
+   <class>FontSelector</class>
+   <extends>QWidget</extends>
+   <header>fontselector.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>ColorButton</class>
+   <extends>QToolButton</extends>
+   <header>colorbutton.h</header>
+  </customwidget>
+ </customwidgets>
+ <tabstops>
+  <tabstop>useCustomItemViewFont</tabstop>
+  <tabstop>showItemViewIcons</tabstop>
+  <tabstop>displayTopicInTooltip</tabstop>
+  <tabstop>mouseWheelChangesBuffers</tabstop>
+  <tabstop>useBufferViewColors</tabstop>
+  <tabstop>defaultBufferColor</tabstop>
+  <tabstop>inactiveBufferColor</tabstop>
+  <tabstop>unreadBufferColor</tabstop>
+  <tabstop>highlightedBufferColor</tabstop>
+  <tabstop>activeBufferColor</tabstop>
+  <tabstop>useNickViewColors</tabstop>
+  <tabstop>onlineNickColor</tabstop>
+  <tabstop>awayNickColor</tabstop>
+  <tabstop>bufferViewPreview</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>useCustomItemViewFont</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>widget</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>114</x>
+     <y>16</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>235</x>
+     <y>17</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
index b993cdc..3e0fb19 100644 (file)
@@ -1,7 +1,7 @@
 # Putting $FOO in SETTINGSPAGES automatically includes
 # $FOOsettingspage.cpp, $FOOsettingspage.h and $FOOsettingspage.ui
 
-set(SETTINGSPAGES aliases appearance backlog bufferview chatview connection chatmonitor general highlight identities networks)
+set(SETTINGSPAGES aliases appearance backlog bufferview chatview connection chatmonitor general highlight identities itemview networks)
 
 # Specify additional files (e.g. for subdialogs) here!
 set(SP_SOURCES aliasesmodel.cpp identityeditwidget.cpp notificationssettingspage.cpp)