X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fclient%2Fbuffertreemodel.h;h=f300d98626c6cf47a3bfbc71ae0fbeeedb0563e6;hb=85cc2479ab9bd85b33f4d8494b1eeeb46a6a1049;hp=91fe43d5e0e96b6907eff83cd759f0f2c8b9d410;hpb=4bdda41a706b963c0163d38764acb3ffea52f256;p=quassel.git diff --git a/src/client/buffertreemodel.h b/src/client/buffertreemodel.h index 91fe43d5..f300d986 100644 --- a/src/client/buffertreemodel.h +++ b/src/client/buffertreemodel.h @@ -26,6 +26,12 @@ #include "treemodel.h" #include "buffer.h" +#include + +class BufferInfo; +class SelectionModelSynchronizer; + + /***************************************** * Fancy Buffer Items *****************************************/ @@ -34,11 +40,15 @@ class BufferTreeItem : public TreeItem { public: BufferTreeItem(Buffer *, TreeItem *parent = 0); + + virtual uint id() const; QVariant data(int column, int role) const; + virtual Qt::ItemFlags flags() const; + Buffer *buffer() const { return buf; } void setActivity(const Buffer::ActivityLevel &); -protected: +private: QString text(int column) const; QColor foreground(int column) const; @@ -46,6 +56,22 @@ protected: Buffer::ActivityLevel activity; }; +/***************************************** + * Network Items + *****************************************/ +class NetworkTreeItem : public TreeItem { + Q_OBJECT + +public: + NetworkTreeItem(const QString &, TreeItem *parent = 0); + + virtual uint id() const; + virtual Qt::ItemFlags flags() const; + +private: + QString net; + +}; /***************************************** * BufferTreeModel @@ -54,32 +80,27 @@ class BufferTreeModel : public TreeModel { Q_OBJECT public: - enum myRoles { + enum myRoles { BufferTypeRole = Qt::UserRole, BufferActiveRole, BufferNameRole, - BufferIdRole + BufferUidRole }; BufferTreeModel(QObject *parent = 0); static QList defaultHeader(); - virtual Qt::ItemFlags flags(const QModelIndex &index) const; - -// void clearActivity(Buffer *buffer); - void clear(); // EgS: check this - + inline SelectionModelSynchronizer *selectionModelSynchronizer() { return _selectionModelSynchronizer; } + public slots: - void bufferUpdated(Buffer *); - void changeCurrent(const QModelIndex &, const QModelIndex &); + void bufferUpdated(Buffer *); + void setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command); void selectBuffer(Buffer *buffer); - void doubleClickReceived(const QModelIndex &); void bufferActivity(Buffer::ActivityLevel, Buffer *buffer); signals: void bufferSelected(Buffer *); void invalidateFilter(); - void fakeUserInput(BufferId, QString); void selectionChanged(const QModelIndex &); private: @@ -91,9 +112,8 @@ private: QStringList mimeTypes() const; QMimeData *mimeData(const QModelIndexList &) const; bool dropMimeData(const QMimeData *, Qt::DropAction, int, int, const QModelIndex &); - - QHash networkItem; - QHash bufferItem; + + SelectionModelSynchronizer *_selectionModelSynchronizer; Buffer *currentBuffer; };