GridFrame/diagramCavas/include/monitorDisplaySettingDlg.h

64 lines
1.7 KiB
C
Raw Normal View History

2026-03-23 11:11:55 +08:00
#ifndef MONITORDISPLAYSETTINGDLG_H
#define MONITORDISPLAYSETTINGDLG_H
/*******************监控图元设置界面**********************/
#include <QDialog>
//#include "global.h"
#include "common/frontend/monitor_item.h"
QT_BEGIN_NAMESPACE
namespace Ui { class monitorDisplaySettingDlg; }
QT_END_NAMESPACE
class MonitorPanel;
2026-05-18 19:12:28 +08:00
class TitleBar;
2026-05-22 16:08:15 +08:00
class QSizeGrip;
2026-03-23 11:11:55 +08:00
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;
2026-05-22 16:08:15 +08:00
protected:
void resizeEvent(QResizeEvent *);
2026-03-23 11:11:55 +08:00
private:
Ui::monitorDisplaySettingDlg *ui;
MonitorPanel* _parent;
MonitorItemTypeStruct _curType; //当前类型
MonitorItemStateStruct _curState; //当前状态
QColor _curColor;
QString _curMeta;
QString _curModel;
QMap<MonitorItemTypeStruct,QMap<MonitorItemStateStruct,MonitorItemDisplayInfo>> _tempSetting;
2026-05-18 19:12:28 +08:00
TitleBar* m_titleBar;
2026-05-22 16:08:15 +08:00
QSizeGrip* _pSizeGrip;
2026-03-23 11:11:55 +08:00
};
#endif