diff --git a/terminal/kiosk-shell/src/desktop_settings_dialog.h b/terminal/kiosk-shell/src/desktop_settings_dialog.h new file mode 100644 index 0000000..d85e77d --- /dev/null +++ b/terminal/kiosk-shell/src/desktop_settings_dialog.h @@ -0,0 +1,52 @@ +// 桌面连接设置对话框 +// +// 现场环境每套部署的桌面地址不同:选择一张桌面卡, +// 编辑协议(Moonlight/RDP)、地址(IP / 域名 / VPN 隧道地址)、 +// 应用名、分辨率和帧率,保存后立即生效。 +// 地址为空 = 待分配,卡片不可连接。 + +#ifndef KIOSK_SHELL_DESKTOP_SETTINGS_DIALOG_H +#define KIOSK_SHELL_DESKTOP_SETTINGS_DIALOG_H + +#include +#include + +#include "desktop_session.h" + +class QComboBox; +class QLineEdit; + +namespace vdi { + +class DesktopSettingsDialog : public QDialog { + Q_OBJECT + +public: + explicit DesktopSettingsDialog(std::vector desktops, + const QString& selectId = QString(), + QWidget* parent = nullptr); + + // 保存后的桌面列表(供调用方刷新) + std::vector desktops() const { return desktops_; } + +private slots: + void onDesktopChanged(int index); + void onAccepted(); + +private: + void loadCurrent(); + + std::vector desktops_; + + QComboBox* comboDesktop_ = nullptr; + QComboBox* comboProtocol_ = nullptr; + QLineEdit* editEndpoint_ = nullptr; + QLineEdit* editApp_ = nullptr; + QComboBox* comboResolution_ = nullptr; + QComboBox* comboFps_ = nullptr; + bool loading_ = false; +}; + +} // namespace vdi + +#endif // KIOSK_SHELL_DESKTOP_SETTINGS_DIALOG_H