sneedmc/gui/instancemodel.h
2013-03-11 22:19:17 +01:00

39 lines
1020 B
C++

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