X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fbufferviewfilter.h;h=07fec1bf9ada37493e3ccd79202c695424d93ced;hb=5d321588ac2c292e217e2f77a3016912f29f1b6f;hp=5e874f2eafcb01af2d8dc7e85d51f727d0fcf345;hpb=e733408e4759473bf38831f498f48a0f2f5e6dc7;p=quassel.git diff --git a/src/uisupport/bufferviewfilter.h b/src/uisupport/bufferviewfilter.h index 5e874f2e..07fec1bf 100644 --- a/src/uisupport/bufferviewfilter.h +++ b/src/uisupport/bufferviewfilter.h @@ -18,15 +18,17 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _BUFFERVIEWFILTER_H_ -#define _BUFFERVIEWFILTER_H_ +#ifndef BUFFERVIEWFILTER_H_ +#define BUFFERVIEWFILTER_H_ -#include #include -#include +#include +#include #include -// #include "buffer.h" +#include + #include "types.h" +#include "bufferviewconfig.h" /***************************************** * Buffer View Filter @@ -47,33 +49,36 @@ public: }; Q_DECLARE_FLAGS(Modes, Mode); - BufferViewFilter(QAbstractItemModel *model, const Modes &mode, const QList &nets); + BufferViewFilter(QAbstractItemModel *model, BufferViewConfig *config = 0); virtual Qt::ItemFlags flags(const QModelIndex &index) const; virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); QVariant data(const QModelIndex &index, int role) const; QVariant foreground(const QModelIndex &index) const; - + + void setConfig(BufferViewConfig *config); + inline BufferViewConfig *config() const { return _config; } + public slots: void removeBuffer(const QModelIndex &); - void invalidateFilter_(); + void source_rowsInserted(const QModelIndex &parent, int start, int end); protected: bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const; - bool lessThan(const QModelIndex &, const QModelIndex &) const; - + bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const; + bool bufferLessThan(const QModelIndex &source_left, const QModelIndex &source_right) const; + bool networkLessThan(const QModelIndex &source_left, const QModelIndex &source_right) const; + private: - Modes mode; - QSet networks; - QSet buffers; + QPointer _config; bool filterAcceptBuffer(const QModelIndex &) const; bool filterAcceptNetwork(const QModelIndex &) const; void addBuffer(const BufferId &); - }; Q_DECLARE_OPERATORS_FOR_FLAGS(BufferViewFilter::Modes) -#endif +bool bufferIdLessThan(const BufferId &, const BufferId &); +#endif // BUFFERVIEWFILTER_H_