PowerMaster/include/dashboardFrame.h

99 lines
2.5 KiB
C++

#ifndef DASHBOARDFRAME_H
#define DASHBOARDFRAME_H
#include <QWidget>
#include "global.h"
QT_BEGIN_NAMESPACE
namespace Ui {
class dashboardFrame;
}
QT_END_NAMESPACE
class TransparentMask;
class MessageDialog;
class CustomTabBar;
class Dashboard;
class DashboardNamingDialog;
class PanelSelectionDialog;
class DateTimeWidget;
namespace dashboardFrame {
enum frameType
{
ft_main = 0,
ft_secondary
};
}
class DashboardFrame : public QWidget
{
Q_OBJECT
public:
DashboardFrame(const QString&, QWidget *parent = nullptr);
~DashboardFrame();
CustomTabBar* tabBar();
void setType(dashboardFrame::frameType);
void insertDashboard(int, Dashboard*);
void removeDashboard(const QString&, bool);
private:
void showTransparentMask();
void hideTransparentMask();
void addDashboard(const QString&);
void setCurrentDashboard(const QString&);
protected:
bool eventFilter(QObject*, QEvent*) override;
void dragEnterEvent(QDragEnterEvent* event) override;
//void dragMoveEvent(QDragMoveEvent* event) override;
void dragLeaveEvent(QDragLeaveEvent* event) override;
void dropEvent(QDropEvent* event) override;
public:
void showMessageDialog(MessageDialogType,const QString&,const QString&);
public slots:
void onSignal_showMask();
void onSignal_hideMask();
void onBtnClicked_addDashboard();
void onBtnClicked_addDataPanel();
void onBtnClicked_dashboardList();
void onBtnClicked_dashboardTab();
void onMenuAction_dashboardList();
void onSignal_subDialogClose();
void onSignal_renameDashboard();
void onSignal_removeDashboard();
void onSignal_dashboardNaming(const QString&, const QString&);
void onSignal_dashboardTabMoved(int, int); //拖动tab引发了位置变化
void onSignal_panelSelectResult(const QString&);
void onSignal_viewHistoricalData(QDateTime);
private:
Ui::dashboardFrame* ui;
QString m_strName;
dashboardFrame::frameType m_type;
QWidget* m_pParentWindow;
TransparentMask* m_pTransparentMask;
MessageDialog* m_pMessageDialog;
CustomTabBar* m_pDashboardTabBar;
QList<Dashboard*> m_listDashboard;
Dashboard* m_curActiveDashboard;
Dashboard* m_curOperationDashboard;
DashboardNamingDialog* m_pDashboardNamingDialog;
PanelSelectionDialog* m_pPanelSelectionDialog;
DateTimeWidget* m_pDateTimeWidget;
};
#endif