#ifndef MONITORDISPLAYSETTINGDLG_H #define MONITORDISPLAYSETTINGDLG_H /*******************监控图元设置界面**********************/ #include //#include "global.h" #include "common/frontend/monitor_item.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> _tempSetting; }; #endif