DiagramDesigner/diagramCavas/include/monitorDisplaySettingDlg.h

58 lines
1.5 KiB
C++

#ifndef MONITORDISPLAYSETTINGDLG_H
#define MONITORDISPLAYSETTINGDLG_H
/*******************监控图元设置界面**********************/
#include <QDialog>
#include "global.h"
QT_BEGIN_NAMESPACE
namespace Ui { class monitorDisplaySettingDlg; }
QT_END_NAMESPACE
class MonitorPanel;
class MonitorDisplaySettingDlg : public QDialog
{
Q_OBJECT
public:
MonitorDisplaySettingDlg(QWidget *parent = nullptr);
~MonitorDisplaySettingDlg();
void initial();
void showDlg();
public slots:
void onSaveClicked();
void onCancelClicked();
void onIconSelectClicked();
void onCheckboxToggled(bool);
void onDeviceComboBoxChanged(const QString&);
void onStateComboBoxChanged(const QString&);
private:
void loadSetting(monitorItemTypeStruct type, monitorItemStateStruct state);
bool saveCurrentSettingsWithIcon();
void loadFirstStateSafely();
// 图片处理
void clearStateDisplay();
void updateIconDisplay(const QByteArray& svgData);
void clearIconDisplay();
bool validateSvgData(const QByteArray& svgData) const;
// 辅助方法
bool validateCurrentDeviceState() const;
private:
Ui::monitorDisplaySettingDlg *ui;
MonitorPanel* _parent;
monitorItemTypeStruct _curType; //当前类型
monitorItemStateStruct _curState; //当前状态
QColor _curColor;
QString _curMeta;
QString _curModel;
QMap<monitorItemTypeStruct,QMap<monitorItemStateStruct,monitorItemDisplayInfo>> _tempSetting;
};
#endif