File indexing completed on 2024-05-05 04:39:18
0001 /* 0002 SPDX-FileCopyrightText: 2018 Anton Anikin <anton@anikin.xyz> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KDEVCLAZY_CHECKS_WIDGET_H 0008 #define KDEVCLAZY_CHECKS_WIDGET_H 0009 0010 #include <QWidget> 0011 #include <QHash> 0012 0013 class QTreeWidget; 0014 class QTreeWidgetItem; 0015 0016 namespace Clazy 0017 { 0018 0019 namespace Ui { class ChecksWidget; } 0020 0021 class ChecksDB; 0022 0023 class ChecksWidget : public QWidget 0024 { 0025 Q_OBJECT 0026 0027 Q_PROPERTY( 0028 QString checks 0029 READ checks 0030 WRITE setChecks 0031 NOTIFY checksChanged 0032 USER true) 0033 0034 public: 0035 explicit ChecksWidget(QWidget* parent = nullptr); 0036 ~ChecksWidget() override; 0037 0038 public: 0039 void setChecksDb(const QSharedPointer<const ChecksDB>& db); 0040 QString checks() const; 0041 0042 void setChecks(const QString& checks); 0043 0044 void setEditable(bool editable); 0045 0046 Q_SIGNALS: 0047 void checksChanged(const QString& checks); 0048 0049 private: 0050 void updateChecks(); 0051 void setState(QTreeWidgetItem* item, Qt::CheckState state, bool force = true); 0052 void searchUpdated(const QString& searchString); 0053 0054 private: 0055 QScopedPointer<Ui::ChecksWidget> m_ui; 0056 0057 QString m_checks; 0058 QHash<QString, QTreeWidgetItem*> m_items; 0059 bool m_isEditable = true; 0060 }; 0061 0062 } 0063 0064 #endif