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

0001 /*
0002     SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 
0006 */
0007 
0008 #pragma once
0009 
0010 #include "kdeloggingcategory.h"
0011 #include "libkdebugsettings_export.h"
0012 #include <QDialog>
0013 class QTabWidget;
0014 class KDEApplicationDebugSettingPage;
0015 class CustomDebugSettingsPage;
0016 class EnvironmentSettingsRulesPage;
0017 class CategoryWarning;
0018 class LoadToolButton;
0019 
0020 class LIBKDEBUGSETTINGS_EXPORT KDebugSettingsDialog : public QDialog
0021 {
0022     Q_OBJECT
0023 public:
0024     explicit KDebugSettingsDialog(QWidget *parent = nullptr);
0025     ~KDebugSettingsDialog() override;
0026 
0027 Q_SIGNALS:
0028     void updateLoadGroupMenu();
0029 
0030 private:
0031     LIBKDEBUGSETTINGS_NO_EXPORT void slotAccepted();
0032     LIBKDEBUGSETTINGS_NO_EXPORT void slotApply();
0033     LIBKDEBUGSETTINGS_NO_EXPORT void slotSaveAs();
0034     LIBKDEBUGSETTINGS_NO_EXPORT void slotLoad();
0035     LIBKDEBUGSETTINGS_NO_EXPORT void slotInsertCategories();
0036     LIBKDEBUGSETTINGS_NO_EXPORT void slotRestoreDefault();
0037 
0038     LIBKDEBUGSETTINGS_NO_EXPORT bool saveRules(const QString &path, bool forceSavingAllRules = false);
0039     LIBKDEBUGSETTINGS_NO_EXPORT bool saveInQtLogging();
0040     LIBKDEBUGSETTINGS_NO_EXPORT void saveConfig();
0041     LIBKDEBUGSETTINGS_NO_EXPORT void readConfig();
0042     LIBKDEBUGSETTINGS_NO_EXPORT void updateLoggingCategories();
0043     LIBKDEBUGSETTINGS_NO_EXPORT void slotLoadGroup(const QString &fullPath);
0044     LIBKDEBUGSETTINGS_NO_EXPORT void slotSaveAsGroup();
0045     LIBKDEBUGSETTINGS_NO_EXPORT void slotManageGroup();
0046     KdeLoggingCategory::List mCategoriesList;
0047     QTabWidget *const mTabWidget;
0048     KDEApplicationDebugSettingPage *const mKdeApplicationSettingsPage;
0049     CustomDebugSettingsPage *const mCustomSettingsPage;
0050     EnvironmentSettingsRulesPage *const mEnvironmentSettingsRulesPage;
0051     CategoryWarning *const mCategoryWarning;
0052     LoadToolButton *const mLoadToolButton;
0053 };