39 lines
1020 B
C++
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;
|
|
};
|
|
|