File indexing completed on 2024-05-05 05:49:28

0001 /*
0002     SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
0003     SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
0004 
0005     SPDX-License-Identifier: GPL-3.0-or-later
0006 */
0007 
0008 #if !defined(CONFIGUREOPTIONSDIALOG_H)
0009 
0010 #define CONFIGUREOPTIONSDIALOG_H
0011 
0012 #include <KConfigDialog>
0013 
0014 class GeneralPageWidget;
0015 class FileSystemColorsPageWidget;
0016 class AdvancedPageWidget;
0017 class OperationStack;
0018 
0019 class ConfigureOptionsDialog : public KConfigDialog
0020 {
0021 public:
0022     ConfigureOptionsDialog(QWidget* parent, const OperationStack& ostack, const QString& name);
0023     ~ConfigureOptionsDialog();
0024 
0025 protected:
0026     void updateSettings() override;
0027     void updateWidgetsDefault() override;
0028     bool hasChanged() override;
0029     bool isDefault() override;
0030     void onComboDefaultFileSystemActivated(int) {
0031         settingsChangedSlot();
0032     }
0033     void onShredSourceActivated() {
0034         settingsChangedSlot();
0035     }
0036     void onComboBackendActivated(int);
0037 
0038     GeneralPageWidget& generalPageWidget() {
0039         Q_ASSERT(m_GeneralPageWidget);
0040         return *m_GeneralPageWidget;
0041     }
0042     FileSystemColorsPageWidget& fileSystemColorsPageWidget() {
0043         Q_ASSERT(m_FileSystemColorsPageWidget);
0044         return *m_FileSystemColorsPageWidget;
0045     }
0046     AdvancedPageWidget& advancedPageWidget() {
0047         Q_ASSERT(m_AdvancedPageWidget);
0048         return *m_AdvancedPageWidget;
0049     }
0050 
0051     const OperationStack& operationStack() const {
0052         return m_OperationStack;
0053     }
0054 
0055 private:
0056     GeneralPageWidget* m_GeneralPageWidget;
0057     FileSystemColorsPageWidget* m_FileSystemColorsPageWidget;
0058     AdvancedPageWidget* m_AdvancedPageWidget;
0059     const OperationStack& m_OperationStack;
0060 };
0061 
0062 #endif