X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fsettingspage.h;h=b68b78b190f16bd5334aedee1765b3532c077c9d;hp=4a106aa1394bb1564587af3ceda942c95221164a;hb=7ce58ac01ce9f67c13bce15ff0db7b15872a7657;hpb=553fb640622542592d353ba2af06d5baef6a5915 diff --git a/src/uisupport/settingspage.h b/src/uisupport/settingspage.h index 4a106aa1..b68b78b1 100644 --- a/src/uisupport/settingspage.h +++ b/src/uisupport/settingspage.h @@ -40,6 +40,9 @@ 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)). @@ -64,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 @@ -127,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.