modernize: Require member function pointers for Settings::notify()
[quassel.git] / src / uisupport / uisettings.h
index f882a93..e62db07 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2015 by the Quassel Project                        *
+ *   Copyright (C) 2005-2018 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef UISETTINGS_H
-#define UISETTINGS_H
+#pragma once
+
+#include "uisupport-export.h"
 
 #include "clientsettings.h"
 #include "uistyle.h"
 
-class UiSettings : public ClientSettings
+class UISUPPORT_EXPORT UiSettings : public ClientSettings
 {
 public:
-    UiSettings(const QString &group = "Ui");
+    UiSettings(QString group = "Ui");
+
+    virtual void setValue(const QString &key, const QVariant &data);
+    virtual QVariant value(const QString &key, const QVariant &def = {}) const;
 
-    virtual inline void setValue(const QString &key, const QVariant &data) { setLocalValue(key, data); }
-    virtual inline QVariant value(const QString &key, const QVariant &def = QVariant()) { return localValue(key, def); }
+    /**
+     * Gets if a value exists in settings
+     *
+     * @param[in] key ID of local settings key
+     * @returns True if key exists in settings, otherwise false
+     */
+    bool valueExists(const QString &key) const;
 
-    inline void remove(const QString &key) { removeLocalKey(key); }
+    void remove(const QString &key);
 };
 
 
-class UiStyleSettings : public UiSettings
+class UISUPPORT_EXPORT UiStyleSettings : public UiSettings
 {
 public:
     UiStyleSettings();
     UiStyleSettings(const QString &subGroup);
 
-    void setCustomFormat(UiStyle::FormatType, QTextCharFormat);
-    QTextCharFormat customFormat(UiStyle::FormatType);
+    void setCustomFormat(UiStyle::FormatType, const QTextCharFormat &format);
+    QTextCharFormat customFormat(UiStyle::FormatType) const;
 
     void removeCustomFormat(UiStyle::FormatType);
-    QList<UiStyle::FormatType> availableFormats();
+    QList<UiStyle::FormatType> availableFormats() const;
 };
 
 
-class SessionSettings : public UiSettings
+class UISUPPORT_EXPORT SessionSettings : public UiSettings
 {
 public:
-    SessionSettings(const QString &sessionId, const QString &group = "Session");
+    SessionSettings(QString sessionId, QString group = "Session");
 
-    virtual void setValue(const QString &key, const QVariant &data);
-    virtual QVariant value(const QString &key, const QVariant &def = QVariant());
+    void setValue(const QString &key, const QVariant &data) override;
+    QVariant value(const QString &key, const QVariant &def = {}) const override;
 
     void removeKey(const QString &key);
     void removeSession();
@@ -66,15 +75,15 @@ public:
 
     int sessionAge();
     void setSessionAge(int age);
-    inline const QString sessionId() { return _sessionId; };
-    inline void setSessionId(const QString &sessionId) { _sessionId = sessionId; }
+    QString sessionId() const;
+    void setSessionId(QString sessionId);
 
 private:
     QString _sessionId;
 };
 
 
-class ShortcutSettings : public UiSettings
+class UISUPPORT_EXPORT ShortcutSettings : public UiSettings
 {
 public:
     ShortcutSettings();
@@ -82,11 +91,8 @@ public:
     //! Remove all stored shortcuts
     void clear();
 
-    QStringList savedShortcuts();
+    QStringList savedShortcuts() const;
 
     void saveShortcut(const QString &name, const QKeySequence &shortcut);
-    QKeySequence loadShortcut(const QString &name);
+    QKeySequence loadShortcut(const QString &name) const;
 };
-
-
-#endif