The context menu "hide events" in the bufferviews are now working.
[quassel.git] / src / client / buffersettings.cpp
index eda1137..c42cd81 100644 (file)
 
 #include "buffersettings.h"
 
-BufferSettings::BufferSettings(const QString &group) : ClientSettings(group) {
+BufferSettings::BufferSettings(BufferId bufferId)
+  : ClientSettings(QString("Buffer/%1").arg(bufferId.toInt()))
+{
+}
+
+BufferSettings::BufferSettings(const QString &idString)
+  : ClientSettings(QString("Buffer/%1").arg(idString))
+{
+}
 
+bool BufferSettings::hasFilter() {
+  return localValue("hasMessageTypeFilter", false).toBool();
 }
 
-void BufferSettings::setValue(const QString &key, const QVariant &data) {
-  setLocalValue(key, data);
+int BufferSettings::messageFilter() {
+  return localValue("MessageTypeFilter", 0).toInt();
 }
 
-QVariant BufferSettings::value(const QString &key, const QVariant &def) {
-  return localValue(key, def);
+void BufferSettings::filterMessage(Message::Type msgType, bool filter) {
+  if(!hasFilter())
+    setLocalValue("hasMessageTypeFilter", true);
+  if(filter)
+    setLocalValue("MessageTypeFilter", localValue("MessageTypeFilter", 0).toInt() | msgType);
+  else
+    setLocalValue("MessageTypeFilter", localValue("MessageTypeFilter", 0).toInt() & ~msgType);
 }