Some small stuff, like adding semicolons to Qt macro defs in order to not
[quassel.git] / src / qtgui / bufferviewfilter.h
index 8bce143..93478c7 100644 (file)
@@ -22,6 +22,7 @@
 #define _BUFFERVIEWFILTER_H_
 
 #include <QFlags>
+#include <QDropEvent>
 #include <QSortFilterProxyModel>
 #include "buffer.h"
 #include "buffertreemodel.h"
@@ -40,28 +41,37 @@ public:
     AllNets = 0x08,
     NoChannels = 0x10,
     NoQueries = 0x20,
-    NoServers = 0x40
+    NoServers = 0x40,
+    FullCustom = 0x80
   };
-  Q_DECLARE_FLAGS(Modes, Mode)
+  Q_DECLARE_FLAGS(Modes, Mode);
 
-  BufferViewFilter(QAbstractItemModel *model, Modes mode, QStringList nets, QObject *parent = 0);
+  BufferViewFilter(QAbstractItemModel *model, const Modes &mode, const QStringList &nets);
   
 public slots:
   void invalidateMe();
   void changeCurrent(const QModelIndex &, const QModelIndex &);
   void doubleClickReceived(const QModelIndex &);
-  void select(const QModelIndex &, QItemSelectionModel::SelectionFlags);
+  void select(const QModelIndex &);
+  void dropEvent(QDropEvent *);
+  void removeBuffer(const QModelIndex &);
+
   
 signals:
   void currentChanged(const QModelIndex &, const QModelIndex &);
   void doubleClicked(const QModelIndex &);
-  void updateSelection(const QModelIndex &, QItemSelectionModel::SelectionFlags);
+  void selectionChanged(const QModelIndex &);
   
 private:
+  bool filterAcceptBuffer(const QModelIndex &) const;
+  bool filterAcceptNetwork(const QModelIndex &) const;
   bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
-
+  bool lessThan(const QModelIndex &, const QModelIndex &);
+  void addBuffer(const uint &);
+  
   Modes mode;
   QStringList networks;
+  QList<uint> customBuffers;
 };
 Q_DECLARE_OPERATORS_FOR_FLAGS(BufferViewFilter::Modes)