StyledWidgetsDemo Example

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

#include <DevMachines/QtitanBase>
#include <DevMachines/QtitanStyle>

class QMdiArea;
class QTextEdit;
class QActionGroup;
class StyleWindow;

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    MainWindow();
    virtual ~MainWindow();
protected:
    void createActions();
    void createMenuBar();
    void createToolBar();
    void createDockWindows();
protected:
    virtual void closeEvent(QCloseEvent* event);
protected:
    void readSettings();
    void writeSettings();
private Q_SLOTS:
    void showStyleWindow();
    void createStyleDialog();
    QTextEdit* createMdiChild();
    void styleChanged(QAction* action);
    void about();
    void darkModeActivated(bool darkMode);
    void showSettings();
    void showHelp();
private:
    void setStyleByName(const QString& name);
    QMenu* m_viewMenu;
    QMenu* m_styleMenu;
#ifdef QTN_CALCULATOR
    CalculatorWidget* m_calculator;
#endif

    // File
    QAction* m_actNew;
    QAction* m_actOpen;
    QAction* m_actClose;
    QAction* m_actSave;
    QAction* m_actSaveAs;
    QAction* m_actPrint;
    QAction* m_actPrintPreview;
    QAction* m_actExit;

    // Group help
    QAction* m_actHelp;

    QMdiArea* m_mdiArea;
    QDockWidget* m_styleDockWidget;
    QDockWidget* m_fileBrowserDockWidget;
    QDockWidget* m_treeViewDockWidget;
    QDockWidget* m_toolBoxDockWidget;
    QDockWidget* m_modulesDockWidget;
    QDockWidget* m_cardDockWidget;

    QString m_defaultStyle;
    QString m_styleName;
    StyleWindow* m_styleWindow;
};

class StyleWindow : public QMainWindow
{
public:
    StyleWindow(QWidget* parent);
    QSize sizeHint() const override;
private:
    QWidget* createPaletteForm();
    QWidget* createIconForm();
    QWidget* createPushButtonForm();
    QWidget* createCheckBoxForm();
    QWidget* createRadioButtonForm();
    QWidget* createToggleSwitchForm();
private:
    QTabWidget* m_forms;
};

#endif // MAINWINDOW_H