src: Yearly copyright bump
[quassel.git] / src / uisupport / uisettings.h
index 1476f90..2453758 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-07 by the Quassel IRC Team                         *
+ *   Copyright (C) 2005-2019 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   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 UISUPPORT_EXPORT UiSettings : public ClientSettings
+{
+public:
+    UiSettings(QString group = "Ui");
 
-class UiSettings : public ClientSettings {
+    virtual void setValue(const QString& key, const QVariant& data);
+    virtual QVariant value(const QString& key, const QVariant& def = {}) const;
 
-  public:
-    UiSettings(const QString &group = "UI");
+    /**
+     * 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;
 
-    void setValue(const QString &key, const QVariant &data);
-    QVariant value(const QString &key, const QVariant &def = QVariant());
+    void remove(const QString& key);
+};
 
+class UISUPPORT_EXPORT UiStyleSettings : public UiSettings
+{
+public:
+    UiStyleSettings();
+    UiStyleSettings(const QString& subGroup);
 
+    void setCustomFormat(UiStyle::FormatType, const QTextCharFormat& format);
+    QTextCharFormat customFormat(UiStyle::FormatType) const;
+
+    void removeCustomFormat(UiStyle::FormatType);
+    QList<UiStyle::FormatType> availableFormats() const;
 };
 
-/*
-class GuiProfile : public ClientSettings {
+class UISUPPORT_EXPORT SessionSettings : public UiSettings
+{
+public:
+    SessionSettings(QString sessionId, QString group = "Session");
+
+    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();
+
+    void cleanup();
+    void sessionAging();
+
+    int sessionAge();
+    void setSessionAge(int age);
+    QString sessionId() const;
+    void setSessionId(QString sessionId);
+
+private:
+    QString _sessionId;
+};
 
-  public:
-    GuiProfile();
+class UISUPPORT_EXPORT ShortcutSettings : public UiSettings
+{
+public:
+    ShortcutSettings();
 
-    static QStringList availableProfiles();
-    static GuiProfile *profile(QString name);
+    //! Remove all stored shortcuts
+    void clear();
 
-    
+    QStringList savedShortcuts() const;
 
+    void saveShortcut(const QString& name, const QKeySequence& shortcut);
+    QKeySequence loadShortcut(const QString& name) const;
 };
-*/
-#endif