Better time formatting by using an explicit format
[quassel.git] / src / uisupport / uisettings.h
index b4d653b..877b175 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel Project                          *
+ *   Copyright (C) 2005-2012 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_
+#ifndef UISETTINGS_H
+#define UISETTINGS_H
 
 #include "clientsettings.h"
+#include "uistyle.h"
 
-class UiSettings : public ClientSettings {
-
-  public:
+class UiSettings : public ClientSettings
+{
+public:
     UiSettings(const QString &group = "Ui");
 
-    void setValue(const QString &key, const QVariant &data);
-    QVariant value(const QString &key, const QVariant &def = QVariant());
+    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); }
+
+    inline void remove(const QString &key) { removeLocalKey(key); }
+};
+
 
+class UiStyleSettings : public UiSettings
+{
+public:
+    UiStyleSettings();
+    UiStyleSettings(const QString &subGroup);
 
+    void setCustomFormat(UiStyle::FormatType, QTextCharFormat);
+    QTextCharFormat customFormat(UiStyle::FormatType);
+
+    void removeCustomFormat(UiStyle::FormatType);
+    QList<UiStyle::FormatType> availableFormats();
 };
 
-/*
-class GuiProfile : public ClientSettings {
 
-  public:
-    GuiProfile();
+class SessionSettings : public UiSettings
+{
+public:
+    SessionSettings(const QString &sessionId, const QString &group = "Session");
+
+    virtual void setValue(const QString &key, const QVariant &data);
+    virtual QVariant value(const QString &key, const QVariant &def = QVariant());
 
-    static QStringList availableProfiles();
-    static GuiProfile *profile(QString name);
+    void removeKey(const QString &key);
+    void removeSession();
 
-    
+    void cleanup();
+    void sessionAging();
 
+    int sessionAge();
+    void setSessionAge(int age);
+    inline const QString sessionId() { return _sessionId; };
+    inline void setSessionId(const QString &sessionId) { _sessionId = sessionId; }
+
+private:
+    QString _sessionId;
 };
-*/
+
+
+class ShortcutSettings : public UiSettings
+{
+public:
+    ShortcutSettings();
+
+    //! Remove all stored shortcuts
+    void clear();
+
+    QStringList savedShortcuts();
+
+    void saveShortcut(const QString &name, const QKeySequence &shortcut);
+    QKeySequence loadShortcut(const QString &name);
+};
+
+
 #endif