File indexing completed on 2024-12-01 13:34:29
0001 #ifndef CONDITIONS_LIST_BASE_H 0002 #define CONDITIONS_LIST_BASE_H 0003 /* SPDX-FileCopyrightText: 2009 Michael Jansen <kde@michael-jansen.biz> 0004 SPDX-FileCopyrightText: 1999-2001 Lubos Lunak <l.lunak@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.0-only 0007 */ 0008 0009 #include "conditions/condition.h" 0010 0011 #include <QList> 0012 0013 class KConfigGroup; 0014 0015 namespace KHotKeys 0016 { 0017 class ConditionsVisitor; 0018 0019 /** 0020 * @author Michael Jansen <kde@michael-jansen.biz> 0021 */ 0022 class Q_DECL_EXPORT Condition_list_base : public Condition, private QList<Condition *> 0023 { 0024 typedef Condition base; 0025 0026 public: 0027 Condition_list_base(Condition_list_base *parent = nullptr); 0028 0029 Condition_list_base(const QList<Condition *> &children_P, Condition_list_base *parent_P); 0030 0031 Condition_list_base(KConfigGroup &cfg_P, Condition_list_base *parent_P); 0032 0033 ~Condition_list_base() override; 0034 0035 void cfg_write(KConfigGroup &cfg_P) const override; 0036 virtual bool accepts_children() const; 0037 0038 typedef QList<Condition *>::iterator Iterator; 0039 typedef QList<Condition *>::const_iterator ConstIterator; 0040 0041 void append(Condition *); 0042 0043 Iterator begin(); 0044 ConstIterator begin() const; 0045 0046 Iterator end(); 0047 ConstIterator end() const; 0048 0049 Condition *first(); 0050 Condition const *first() const; 0051 0052 int count() const; 0053 0054 bool isEmpty() const; 0055 0056 void clear(); 0057 0058 void visit(ConditionsVisitor *visitor) override; 0059 0060 protected: 0061 int removeAll(Condition *const &); 0062 0063 friend class Condition; 0064 }; 0065 0066 } // namespace KHotKeys 0067 0068 #endif /* #ifndef CONDITIONS_LIST_BASE_H */