File indexing completed on 2024-05-12 05:52:36

0001 /*
0002     SPDX-FileCopyrightText: 2023-2024 Laurent Montel <montel.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 #include "libkdebugsettings_private_export.h"
0009 #include "loggingcategory.h"
0010 #include <QTreeView>
0011 
0012 class KDEApplicationLoggingCategoryModel;
0013 class KDEApplicationLoggingCategoryProxyModel;
0014 class LIBKDEBUGSETTINGS_EXPORT_TEST_EXPORT KDEApplicationTreeView : public QTreeView
0015 {
0016     Q_OBJECT
0017 public:
0018     explicit KDEApplicationTreeView(QWidget *parent = nullptr);
0019     ~KDEApplicationTreeView() override;
0020 
0021     void setLoggingCategoryModel(KDEApplicationLoggingCategoryModel *newLoggingCategoryModel);
0022 
0023     void setFilterRuleStr(const QString &str);
0024 
0025     void selectAllDebugCategories();
0026     void deSelectAllDebugCategories();
0027     void deSelectAllMessagesCategories();
0028     void restoreToDefault();
0029 
0030     void insertCategories(const LoggingCategory::List &list);
0031 
0032     [[nodiscard]] LoggingCategory::List rules(bool forceSavingAllRules) const;
0033 
0034 private:
0035     KDEApplicationLoggingCategoryModel *mKdeApplicationLoggingCategoryModel = nullptr;
0036     KDEApplicationLoggingCategoryProxyModel *const mKdeApplicationLoggingCategoryProxyModel;
0037 };