File indexing completed on 2024-05-12 05:35:50

0001 /*
0002     SPDX-FileCopyrightText: 2009 Ben Cooksley <ben@eclipse.endoftheinternet.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <Solid/Predicate>
0010 
0011 class QString;
0012 template<typename T>
0013 class QList;
0014 
0015 class PredicateItem
0016 {
0017 public:
0018     PredicateItem(Solid::Predicate item, PredicateItem *itsParent);
0019     ~PredicateItem();
0020 
0021     PredicateItem *child(int index) const;
0022     PredicateItem *parent() const;
0023     QList<PredicateItem *> &children() const;
0024     Solid::Predicate predicate() const;
0025     QString prettyName() const;
0026     void setTypeByInt(int item);
0027     void setComparisonByInt(int item);
0028     void updateChildrenStatus();
0029 
0030     Solid::Predicate::Type itemType;
0031     Solid::DeviceInterface::Type ifaceType;
0032     QString property;
0033     QVariant value;
0034     Solid::Predicate::ComparisonOperator compOperator;
0035 
0036 private:
0037     class Private;
0038     Private *const d;
0039 };
0040 
0041 Q_DECLARE_METATYPE(PredicateItem *)