1 /*
2  * SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
3  *
4  * SPDX-License-Identifier: GPL-2.0-or-later
5  *
6  */
7 #ifndef _KCM_FCITX5_CONFIGTOOL_MAINWINDOW_H_
8 #define _KCM_FCITX5_CONFIGTOOL_MAINWINDOW_H_
9 
10 #include "addonselector.h"
11 #include "configwidget.h"
12 #include "dbusprovider.h"
13 #include "erroroverlay.h"
14 #include "impage.h"
15 #include "ui_mainwindow.h"
16 #include <QAbstractButton>
17 #include <QMainWindow>
18 
19 namespace fcitx {
20 namespace kcm {
21 
22 class MainWindow : public QMainWindow, public Ui::MainWindow {
23     Q_OBJECT
24 public:
25     explicit MainWindow(QWidget *parent = nullptr);
26 
27     void load();
28     void save();
29     void defaults();
30 Q_SIGNALS:
31     void changed(bool state);
32 
33 protected:
34     void keyPressEvent(QKeyEvent *event) override;
35 
36 private Q_SLOTS:
37     void clicked(QAbstractButton *button);
38     void commitData(QSessionManager &manager);
39 
40 private:
41     void handleChanged(bool state);
42     bool changed_ = false;
43     DBusProvider *dbus_;
44     ErrorOverlay *errorOverlay_;
45     IMPage *impage_;
46     AddonSelector *addonPage_;
47     ConfigWidget *configPage_;
48 };
49 } // namespace kcm
50 } // namespace fcitx
51 
52 #endif // _KCM_FCITX5_CONFIGTOOL_MAINWINDOW_H (2)_
53