DiagramDesigner/diagramCavas/include/monitorDisplaySettingDlg.h

59 lines
1.5 KiB
C
Raw Normal View History

2025-12-01 20:29:36 +08:00
#ifndef MONITORDISPLAYSETTINGDLG_H
#define MONITORDISPLAYSETTINGDLG_H
/*******************监控图元设置界面**********************/
#include <QDialog>
2026-03-13 08:31:37 +08:00
//#include "global.h"
#include "common/frontend/monitor_item.h"
2025-12-01 20:29:36 +08:00
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);
2025-12-03 18:27:49 +08:00
void onDeviceComboBoxChanged(const QString&);
void onStateComboBoxChanged(const QString&);
2025-12-01 20:29:36 +08:00
private:
2026-03-13 08:31:37 +08:00
void loadSetting(MonitorItemTypeStruct type, MonitorItemStateStruct state);
2025-12-03 18:27:49 +08:00
bool saveCurrentSettingsWithIcon();
void loadFirstStateSafely();
2025-12-01 20:29:36 +08:00
2025-12-03 18:27:49 +08:00
// 图片处理
2025-12-01 20:29:36 +08:00
void clearStateDisplay();
2025-12-03 18:27:49 +08:00
void updateIconDisplay(const QByteArray& svgData);
void clearIconDisplay();
bool validateSvgData(const QByteArray& svgData) const;
// 辅助方法
bool validateCurrentDeviceState() const;
2025-12-01 20:29:36 +08:00
private:
Ui::monitorDisplaySettingDlg *ui;
MonitorPanel* _parent;
2026-03-13 08:31:37 +08:00
MonitorItemTypeStruct _curType; //当前类型
MonitorItemStateStruct _curState; //当前状态
2025-12-01 20:29:36 +08:00
QColor _curColor;
QString _curMeta;
QString _curModel;
2026-03-13 08:31:37 +08:00
QMap<MonitorItemTypeStruct,QMap<MonitorItemStateStruct,MonitorItemDisplayInfo>> _tempSetting;
2025-12-01 20:29:36 +08:00
};
#endif