fixing crash on disconnect
[quassel.git] / src / client / buffersettings.h
index f4266a5..81667d2 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel IRC Team                         *
+ *   Copyright (C) 2005-09 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifndef _BUFFERSETTINGS_H_
-#define _BUFFERSETTINGS_H_
+#ifndef BUFFERSETTINGS_H
+#define BUFFERSETTINGS_H
 
 #include "clientsettings.h"
+#include "message.h"
+#include "types.h"
 
 class BufferSettings : public ClientSettings {
+public:
+  enum RedirectTarget {
+    DefaultBuffer = 0x01,
+    StatusBuffer  = 0x02,
+    CurrentBuffer = 0x04
+  };
 
-  public:
-    BufferSettings(const QString &group = "Buffer");
+  BufferSettings(const QString &idString = "__default__");
+  BufferSettings(BufferId bufferId);
 
-    void setValue(const QString &key, const QVariant &data);
-    QVariant value(const QString &key, const QVariant &def = QVariant());
+  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); }
 
+  // Message Filter (default and per view)
+  inline bool hasFilter() { return localValue("hasMessageTypeFilter", false).toBool(); }
+  inline int messageFilter() { return localValue("MessageTypeFilter", 0).toInt(); }
+  void setMessageFilter(int filter);
+  void filterMessage(Message::Type msgType, bool filter);
+  void removeFilter();
 
+  // user state icons for query buffers (default)
+  inline bool showUserStateIcons() { return localValue("ShowUserStateIcons", true).toBool(); }
+  inline void enableUserStateIcons(bool enabled) { setLocalValue("ShowUserStateIcons", enabled); }
+
+
+  // redirection settings (default)
+  inline int userNoticesTarget() { return localValue("UserNoticesTarget", DefaultBuffer).toInt(); }
+  inline void setUserNoticesTarget(int target) { setLocalValue("UserNoticesTarget", target); }
+  inline int serverNoticesTarget() { return localValue("ServerNoticesTarget", StatusBuffer).toInt(); }
+  inline void setServerNoticesTarget(int target) { setLocalValue("ServerNoticesTarget", target); }
+  inline int errorMsgsTarget() { return localValue("ErrorMsgsTarget", DefaultBuffer).toInt(); }
+  inline void setErrorMsgsTarget(int target) { setLocalValue("ErrorMsgsTarget", target); }
 };