Revert "Reset the BufferViewFilter after setting a new config"
[quassel.git] / src / uisupport / settingspage.h
index 98abc38..b68b78b 100644 (file)
@@ -40,11 +40,15 @@ class QSpinBox;
  *  its key is treated as a global path starting from the root, rather than from settingsKey().
  *  A second dynamic property \c defaultValue can be defined in child widgets as well.
  *
+ *  For widgets requiring special ways for storing and saving, define the property settingsKey and leave it empty. In this
+ *  case, the methods saveAutoWidgetValue() and loadAutoWidgetValue() will be called with the widget's objectName as parameter.
+ *
  *  SettingsPage manages loading, saving, setting to default and setting the changed state for all automatic child widgets.
  *  Derived classes must be sure to call initAutoWidgets() *after* setupUi(); they also need to call the baseclass implementations
  *  of load(), save() and defaults() (preferably at the end of the derived function, since they call setChangedState(false)).
  *
  *  The following widgets can be handled for now:
+ *    - QGroupBox (isChecked())
  *    - QAbstractButton (isChecked(), e.g. for QCheckBox and QRadioButton)
  *    - QLineEdit, QTextEdit (text())
  *    - QComboBox (currentIndex())
@@ -63,6 +67,12 @@ public:
   //! 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
@@ -126,6 +136,8 @@ protected slots:
 
 protected:
   void initAutoWidgets();
+  virtual QVariant loadAutoWidgetValue(const QString &widgetName);
+  virtual void saveAutoWidgetValue(const QString &widgetName, const QVariant &value);
 
 signals:
   //! Emitted whenever the widget state changes.