/***************************************************************************
- * Copyright (C) 2005-07 by the Quassel IRC Team *
+ * Copyright (C) 2005-08 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
+ * (at your option) version 3. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#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(NickModel *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