general performance boost (probably only noticable on bufferswitches to/from large...
[quassel.git] / src / uisupport / nickview.h
index 42e920a..807a4d4 100644 (file)
 #ifndef _NICKVIEW_H_
 #define _NICKVIEW_H_
 
+
 #include <QTreeView>
 
+#include "types.h"
+#include "bufferinfo.h"
+
+
 class NickModel;
+class LazySizeHint;
 class FilteredNickModel;
 class QSortFilterProxyModel;
 
 class NickView : public QTreeView {
   Q_OBJECT
 
-  public:
-    NickView(QWidget *parent = 0);
-    virtual ~NickView();
+public:
+  NickView(QWidget *parent = 0);
+  virtual ~NickView();
 
-  protected:
-    void rowsInserted(const QModelIndex &, int, int);
+protected:
+  virtual void rowsInserted(const QModelIndex &parent, int start, int end);
+  virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
+  virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end);
+  virtual QSize sizeHint() const;
 
-  public slots:
-     void setModel(QAbstractItemModel *model);
-
-//   private:
-//     QSortFilterProxyModel *filteredModel;
+public slots:
+  void setModel(QAbstractItemModel *model);
+  void init();
+  void showContextMenu(const QPoint & pos);
+  void startQuery(const QModelIndex & modelIndex);
+  
+private:
+  LazySizeHint *_sizeHint;
 
+  BufferInfo bufferInfoFromModelIndex(const QModelIndex & index);
+  QString nickFromModelIndex(const QModelIndex & index);
+  void executeCommand(const BufferInfo & bufferInfo, const QString & command);
+  
 };
 
+
 #endif