File indexing completed on 2024-04-21 05:46:23

0001 /*
0002     SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <KConfigDialog>
0010 
0011 class GeneralConfigurationWidget;
0012 class LogModeConfigurationWidget;
0013 class ConfigurationDialog : public KConfigDialog
0014 {
0015     Q_OBJECT
0016 
0017 public:
0018     explicit ConfigurationDialog(QWidget *parent);
0019 
0020     ~ConfigurationDialog() override;
0021 
0022     void showConfiguration();
0023 
0024 Q_SIGNALS:
0025     void configurationSaved();
0026 
0027 protected Q_SLOTS:
0028 
0029     void updateWidgets() override;
0030     void updateWidgetsDefault() override;
0031     void updateSettings() override;
0032     void updateButtons();
0033 
0034 private Q_SLOTS:
0035     void updateConfiguration();
0036 
0037 private:
0038     bool hasChanged() override;
0039     bool isDefault() override;
0040 
0041     void setupGeneralConfiguration();
0042 
0043     void setupLogModeConfigurations();
0044     GeneralConfigurationWidget *mGeneralConfiguration = nullptr;
0045 
0046     QList<LogModeConfigurationWidget *> mLogModeConfigurations;
0047 
0048     bool mChanged = false;
0049 };