1/***************************************************************************
2 * Copyright 2009 Ben Cooksley <ben@eclipse.endoftheinternet.org> *
3 * *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
8 * *
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. *
13 * *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program; if not, write to the *
16 * Free Software Foundation, Inc., *
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA *
18 ***************************************************************************/
19
20#ifndef PREDICATEITEM_H
21#define PREDICATEITEM_H
22
23#include <Solid/Predicate>
24
25class QString;
26template<typename T> class QList;
27
28class PredicateItem
29{
30public:
31 PredicateItem( Solid::Predicate item, PredicateItem * itsParent );
32 ~PredicateItem();
33
34 PredicateItem * child( int index ) const;
35 PredicateItem * parent() const;
36 QList<PredicateItem*>& children() const;
37 Solid::Predicate predicate() const;
38 QString prettyName() const;
39 void setTypeByInt( int item );
40 void setComparisonByInt( int item );
41 void updateChildrenStatus();
42
43 Solid::Predicate::Type itemType;
44 Solid::DeviceInterface::Type ifaceType;
45 QString property;
46 QVariant value;
47 Solid::Predicate::ComparisonOperator compOperator;
48
49private:
50 class Private;
51 Private *const d;
52};
53
54Q_DECLARE_METATYPE( PredicateItem * )
55
56#endif
57