/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* 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())
//! 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
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.