Make SessionSettings derive from UiSettings
[quassel.git] / src / uisupport / uisettings.h
index 704a1d5..d8560c0 100644 (file)
@@ -28,8 +28,9 @@ class UiSettings : public ClientSettings {
 public:
   UiSettings(const QString &group = "Ui");
 
-  inline void setValue(const QString &key, const QVariant &data) { setLocalValue(key, data); }
-  inline QVariant value(const QString &key, const QVariant &def = QVariant()) { return localValue(key, def); }
+  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); }
 };
 
@@ -49,4 +50,26 @@ public:
   QList<UiStyle::FormatType> availableFormats();
 };
 
+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());
+
+  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;
+};
+
 #endif