File indexing completed on 2024-04-21 05:31:01

0001 /*
0002     SPDX-FileCopyrightText: 2021 Michail Vourlakos <mvourlakos@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef VIEWSDIALOG_H
0007 #define VIEWSDIALOG_H
0008 
0009 // local
0010 #include "../generic/genericdialog.h"
0011 #include "../settingsdialog/settingsdialog.h"
0012 
0013 // Qt
0014 #include <QDialog>
0015 #include <QObject>
0016 #include <QPushButton>
0017 
0018 namespace Ui {
0019 class ViewsDialog;
0020 }
0021 
0022 namespace Latte {
0023 namespace Settings {
0024 namespace Controller {
0025 class Layouts;
0026 }
0027 namespace Handler {
0028 class ViewsHandler;
0029 }
0030 }
0031 }
0032 
0033 namespace Latte {
0034 namespace Settings {
0035 namespace Dialog {
0036 
0037 class ViewsDialog : public GenericDialog
0038 {
0039     Q_OBJECT
0040 
0041 public:
0042     ViewsDialog(SettingsDialog *parent, Controller::Layouts *controller);
0043     ~ViewsDialog();
0044 
0045     Latte::Corona *corona() const;
0046 
0047     Ui::ViewsDialog *ui() const;
0048     Controller::Layouts *layoutsController() const;
0049 
0050 protected:
0051     void accept() override;
0052 
0053 private slots:
0054     void loadConfig();
0055     void saveConfig();
0056 
0057     void onOk();
0058     void onApply();
0059     void onCancel();
0060     void onReset();
0061 
0062     void updateApplyButtonsState();
0063 
0064 private:
0065     SettingsDialog *m_parentDlg{nullptr};
0066     Ui::ViewsDialog *m_ui;
0067     Controller::Layouts *m_layoutsController{nullptr};
0068 
0069     QPushButton *m_applyNowBtn{nullptr};
0070 
0071     Handler::ViewsHandler *m_handler;   
0072 
0073     //! properties
0074     QSize m_windowSize;
0075 
0076     //! storage
0077     KConfigGroup m_storage;
0078 };
0079 
0080 }
0081 }
0082 }
0083 
0084 #endif