sysmainwindowv2.h 2.47 KB
Newer Older
‘oliver.hui’'s avatar
‘oliver.hui’ committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
#ifndef SYSMAINWINDOWV2_H
#define SYSMAINWINDOWV2_H

#include <topcore/topclassabs.h>
#include "topquicktoolbarv2.h"

class TopQuickButtonV2;
class TopQuickToolBarV2;
class QWidgetAction;
class QToolButton;
class TopMessageController;
class QPropertyAnimation;

class SysMainWindowV2 : public TopClassAbs
{
    Q_OBJECT
public:
    explicit SysMainWindowV2(const QString &iModuleNameStr = QString(""),
                             const QVariantMap iUrlPars = QVariantMap(),
                             QWidget *iParent = 0);
    ~SysMainWindowV2();

signals:

public slots:
    // 打开模块
    void openModule(const QString &iUrl, const QVariant &iConfigVar = QVariant());

    // 加载标题栏数据
    void refreshToolBarFormDb();
    void loadToolBarItems(const QVariantList &iDataVarLst = QVariantList());

    void openModuleUpgrade();
    void showAboutDialog();
    void showPasswordModificationDialog(bool iPwdStrengthCheck = true);

private slots:
    void onQuickButtonClicked();
    void onQuickButtonCloseTrigged();
    void onQuickButtonFixTrigged(bool iFixedBol);
    void onStackedWidgetRemoved(int iIndex);
    void onStackedCurrentChanged(int iIndex);
    void onDesktopButtonClicked();
    void onUserChanged();
    void excuteResize();
    void openUrlByAction();
    void changeToolButtonStyle(Qt::ToolButtonStyle iBtnStyle, QSize iBtnSize, QSize iIconSize);
    void saveToolBarUserCfg();
    void toolBarSizeChanged(QSize iSize);
    void onNotification(const QString &iKeyStr, const QVariant &iDataVar, const QString &iUuid);

protected:
    void closeEvent(QCloseEvent *iEvent);

private:
    void connectQuickButton(TopQuickButtonV2 *iButton);

    QVariantList addFlagForDbData(const QVariantList &iSysModuleDataVarLst, const QString& iDbCfgStr);
    QSize sizeStr2QSize(const QString &iSizeStr);

    QList<TopClassAbs *> openedModule();
    QVariantMap getDataFromModule(TopClassAbs *module);
    QVariantMap getDataFromDb(const QString &iModuleNameStr);

    void openDefaultOpenedModules();

private:
    TopQuickToolBarV2 *mMainToolBar;
    QStackedWidget *mStackedWidget;
    QMap<TopQuickButtonV2*, QWidget*> mQuickButtonMap;
    QToolButton *mMenuButton;
    QToolButton *mDesktopButton;
    QLabel *mUserLabel;
    QWidget *mToolFrame;
    QVariantList mToolBarDataVarLst;
    TopClassAbs *mDesktopClass;
    QLabel *mMessageLabel = nullptr;
    QPropertyAnimation *mMessageAnimation = nullptr;
    TopMessageController *mMessageController = nullptr;
};

#endif // SYSMAINWINDOWV2_H