1 /* 2 SPDX-FileCopyrightText: 2018 Anton Anikin <anton@anikin.xyz> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #ifndef KDEVCLAZY_CHECKS_WIDGET_H 8 #define KDEVCLAZY_CHECKS_WIDGET_H 9 10 #include <QWidget> 11 #include <QHash> 12 13 class QTreeWidget; 14 class QTreeWidgetItem; 15 16 namespace Clazy 17 { 18 19 namespace Ui { class ChecksWidget; } 20 21 class ChecksDB; 22 23 class ChecksWidget : public QWidget 24 { 25 Q_OBJECT 26 27 Q_PROPERTY( 28 QString checks 29 READ checks 30 WRITE setChecks 31 NOTIFY checksChanged 32 USER true) 33 34 public: 35 explicit ChecksWidget(QWidget* parent = nullptr); 36 ~ChecksWidget() override; 37 38 public: 39 void setChecksDb(const QSharedPointer<const ChecksDB>& db); 40 QString checks() const; 41 42 void setChecks(const QString& checks); 43 44 void setEditable(bool editable); 45 46 Q_SIGNALS: 47 void checksChanged(const QString& checks); 48 49 private: 50 void updateChecks(); 51 void setState(QTreeWidgetItem* item, Qt::CheckState state, bool force = true); 52 void searchUpdated(const QString& searchString); 53 54 private: 55 QScopedPointer<Ui::ChecksWidget> m_ui; 56 57 QString m_checks; 58 QHash<QString, QTreeWidgetItem*> m_items; 59 bool m_isEditable = true; 60 }; 61 62 } 63 64 #endif 65