X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fbuffertreemodel.h;h=70a961932c775a8eabe865a8dd0f33c0056ff0e2;hp=3f4e5974ccaf5881139884b6e2237682204f0682;hb=ef0e65458bf4e1cbc01399fe0e025a5b4fd327dc;hpb=012df68ce8a743a71bfe3beda529a21c02daddb6 diff --git a/src/client/buffertreemodel.h b/src/client/buffertreemodel.h index 3f4e5974..70a96193 100644 --- a/src/client/buffertreemodel.h +++ b/src/client/buffertreemodel.h @@ -26,6 +26,17 @@ #include "treemodel.h" #include "buffer.h" +#include + +#include + +class BufferInfo; + +#include "selectionmodelsynchronizer.h" +#include "modelpropertymapper.h" +class MappedSelectionModel; +class QAbstractItemView; + /***************************************** * Fancy Buffer Items *****************************************/ @@ -36,12 +47,13 @@ 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; @@ -59,6 +71,7 @@ public: NetworkTreeItem(const QString &, TreeItem *parent = 0); virtual uint id() const; + virtual Qt::ItemFlags flags() const; private: QString net; @@ -72,29 +85,32 @@ 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; - + inline SelectionModelSynchronizer *selectionModelSynchronizer() { return _selectionModelSynchronizer; } + inline ModelPropertyMapper *propertyMapper() { return _propertyMapper; } + + void synchronizeSelectionModel(MappedSelectionModel *selectionModel); + void synchronizeView(QAbstractItemView *view); + void mapProperty(int column, int role, QObject *target, const QByteArray &property); + 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: @@ -106,7 +122,9 @@ private: QStringList mimeTypes() const; QMimeData *mimeData(const QModelIndexList &) const; bool dropMimeData(const QMimeData *, Qt::DropAction, int, int, const QModelIndex &); - + + QPointer _selectionModelSynchronizer; + QPointer _propertyMapper; Buffer *currentBuffer; };