From 46f93311afc9f1e2afc306f63cee0e4f462758e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= <peterix@gmail.com>
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 <QAbstractListModel>
+#include "kcategorizedsortfilterproxymodel.h"
+#include "instancelist.h"
+#include <QIcon>
+
+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