Instance view, model, delegate.

This commit is contained in:
Petr Mrázek
2013-03-11 22:19:17 +01:00
parent 36396f7c6a
commit 46f93311af
24 changed files with 3585 additions and 111 deletions

38
gui/instancemodel.h Normal file
View File

@@ -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;
};