Build the monolithic client (-DWANT_MONO=ON) by default again, as it's usable now
[quassel.git] / src / uisupport / settingspage.cpp
index 0417751..9ee7f00 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel IRC Team                         *
+ *   Copyright (C) 2005-08 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
 
 #include "settingspage.h"
 
-SettingsPage::SettingsPage(const QString &category, const QString &title, QWidget *parent) : QWidget(parent),
-     _category(category), _title(title) {
+#include <QCheckBox>
+#include <QComboBox>
+#include <QSpinBox>
+#include <QVariant>
 
+SettingsPage::SettingsPage(const QString &category, const QString &title, QWidget *parent)
+  : QWidget(parent),
+    _category(category),
+    _title(title),
+    _changed(false)
+{
 }
 
-QString SettingsPage::category() const {
-  return _category;
+void SettingsPage::setChangedState(bool hasChanged) {
+  if(hasChanged != _changed) {
+    _changed = hasChanged;
+    emit changed(hasChanged);
+  }
 }
 
-QString SettingsPage::title() const {
-  return _title;
+void SettingsPage::load(QCheckBox *box, bool checked) {
+  box->setProperty("StoredValue", checked);
+  box->setChecked(checked);
 }
 
-void SettingsPage::changed() {
-  emit changed(true);
+bool SettingsPage::hasChanged(QCheckBox *box) {
+  return box->property("StoredValue").toBool() == box->isChecked();
 }
 
-void SettingsPage::changeState(bool hasChanged) {
-  emit changed(hasChanged);
+
+void SettingsPage::load(QComboBox *box, int index) {
+  box->setProperty("StoredValue", index);
+  box->setCurrentIndex(index);
+}
+
+bool SettingsPage::hasChanged(QComboBox *box) {
+  return box->property("StoredValue").toInt() == box->currentIndex();
+}
+
+void SettingsPage::load(QSpinBox *box, int value) {
+  box->setProperty("StoredValue", value);
+  box->setValue(value);
+}
+
+bool SettingsPage::hasChanged(QSpinBox *box) {
+  return box->property("StoredValue").toInt() == box->value();
 }