X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fsettingspage.h;h=2d73e82387308d77be7b4a1efd21d92341ac17a9;hp=926d4d71492d57ac9d0020aee96cbe417ebcdd10;hb=21d8d7f0a79eeeb541664aa80ce481fdbfc41f09;hpb=7500eaafd4aa510c758eabd8c835c0c05b2587cd diff --git a/src/uisupport/settingspage.h b/src/uisupport/settingspage.h index 926d4d71..2d73e823 100644 --- a/src/uisupport/settingspage.h +++ b/src/uisupport/settingspage.h @@ -33,7 +33,13 @@ class SettingsPage : public QWidget { virtual QString category() const; virtual QString title() const; - virtual bool hasChanged() const = 0; + bool hasChanged() const; + + //! Called immediately before save() is called. + /** Derived classes should return false if saving is not possible (e.g. the current settings are invalid). + * \return false, if the SettingsPage cannot be saved in its current state. + */ + virtual bool aboutToSave(); public slots: virtual void save() = 0; @@ -41,7 +47,7 @@ class SettingsPage : public QWidget { virtual void defaults() = 0; protected slots: - //! Calling this slot is equivalent to emitting changed(true). + //! Calling this slot is equivalent to calling changeState(true). void changed(); protected: @@ -49,6 +55,7 @@ class SettingsPage : public QWidget { void changeState(bool hasChanged = true); signals: + //! Emitted whenever the widget state changes. void changed(bool hasChanged); private: