1
/**************************************************************************
2
* Copyright (C) 2009 Ben Cooksley <ben@eclipse.endoftheinternet.org> *
4
* This program is free software; you can redistribute it and/or *
5
* modify it under the terms of the GNU General Public License *
6
* as published by the Free Software Foundation; either version 2 *
7
* of the License, or (at your option) any later version. *
9
* This program is distributed in the hope that it will be useful, *
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12
* GNU General Public License for more details. *
14
* You should have received a copy of the GNU General Public License *
15
* along with this program; if not, write to the Free Software *
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
18
***************************************************************************/
20
#ifndef PREDICATEMODEL_H
21
#define PREDICATEMODEL_H
23
#include <QtCore/QAbstractItemModel>
25
#include <Solid/Predicate>
29
class PredicateModel : public QAbstractItemModel
34
explicit PredicateModel( PredicateItem * menuRoot, QObject *parent = 0 );
37
QVariant data( const QModelIndex &index, int role ) const;
38
Qt::ItemFlags flags( const QModelIndex &index ) const;
39
QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const;
40
QModelIndex parent( const QModelIndex &index ) const;
41
int rowCount( const QModelIndex &parent = QModelIndex() ) const;
42
int columnCount( const QModelIndex &parent = QModelIndex() ) const;
44
void setRootPredicate( PredicateItem * item );
45
void itemUpdated( const QModelIndex& item );
46
void childrenChanging( const QModelIndex& item, Solid::Predicate::Type oldType );
49
PredicateItem * rootItem() const;