From 46f93311afc9f1e2afc306f63cee0e4f462758e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Mon, 11 Mar 2013 22:19:17 +0100 Subject: Instance view, model, delegate. --- gui/instancemodel.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 gui/instancemodel.h (limited to 'gui/instancemodel.h') diff --git a/gui/instancemodel.h b/gui/instancemodel.h new file mode 100644 index 00000000..995c51ec --- /dev/null +++ b/gui/instancemodel.h @@ -0,0 +1,38 @@ +#pragma once + +#include +#include "kcategorizedsortfilterproxymodel.h" +#include "instancelist.h" +#include + +class InstanceModel : public QAbstractListModel +{ + Q_OBJECT +public: + enum AdditionalRoles + { + InstancePointerRole = 0x34B1CB48 ///< Return pointer to real instance + }; + explicit InstanceModel ( const InstanceList& instances, + QObject *parent = 0 ); + + QModelIndex index ( int row, int column = 0, + const QModelIndex& parent = QModelIndex() ) const; + int rowCount ( const QModelIndex& parent = QModelIndex() ) const; + QVariant data ( const QModelIndex& index, int role ) const; + Qt::ItemFlags flags ( const QModelIndex& index ) const; + +private: + const InstanceList* m_instances; + QIcon cachedIcon; +}; + +class InstanceProxyModel : public KCategorizedSortFilterProxyModel +{ +public: + explicit InstanceProxyModel ( QObject *parent = 0 ); + +protected: + virtual bool subSortLessThan ( const QModelIndex& left, const QModelIndex& right ) const; +}; + -- cgit v1.2.3