功能:实现桌面选择流程并接入 Moonlight 会话
变更详情:feat(kiosk-shell): 登录/桌面列表产品流程 + Moonlight 会话 + 看门狗进程组修复 - 登录页改为用户认证(本地演示认证,账号密码非空通过) - 新增桌面列表页:Windows/Moonlight 可连接,Ubuntu/麒麟待分配 - 新增 DesktopService 适配层(登录/桌面列表/连接票据,后续接 API) - 新增 MoonlightSession:QProcess 参数数组直启 moonlight-qt,退出回列表 - 状态机扩展 AUTHENTICATING / DESKTOP_LIST - 移除开机自动 RDP,收敛为 monitor -> kiosk-shell 单一自启链 - Monitor 按进程组结束整棵进程树,修复孤儿串流进程 - vdi-moonlight 启动器新增 vsync/frame-pacing/overlay 低延迟开关
This commit is contained in:
1 parent
f74d3ceadf
commit
61127fb714
25 files changed
+1982
-246
No files matched your search
@@ -1,8 +1,8 @@
|
||||
// 首配 / 登录页
|
||||
// 登录页
|
||||
//
|
||||
// 对应《VDI 云桌面软件开发方案》3.2 节:
|
||||
// 首配页(无配置时进入)——SN 绑定、WiFi 扫码、服务器地址
|
||||
// 状态条——网络 / 会话状态
|
||||
// 产品流程第一步:设备 SN/网络展示 + 用户认证。
|
||||
// 当前为本地演示认证(账号密码非空通过),由 DesktopService 承担;
|
||||
// 页面只负责输入采集与状态展示,不直接连接云桌面。
|
||||
|
||||
#ifndef KIOSK_SHELL_LOGIN_PAGE_H
|
||||
#define KIOSK_SHELL_LOGIN_PAGE_H
|
||||
@@ -13,8 +13,6 @@
|
||||
#include "config.h"
|
||||
|
||||
class QLineEdit;
|
||||
class QComboBox;
|
||||
class QCheckBox;
|
||||
class QLabel;
|
||||
class QPushButton;
|
||||
class QGridLayout;
|
||||
@@ -26,42 +24,38 @@ class LoginPage : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
using ConnectHandler = std::function<void(const TerminalConfig&)>;
|
||||
// 认证回调:由 MainWindow 接到 DesktopService
|
||||
using LoginHandler = std::function<void(const QString& username, const QString& password)>;
|
||||
|
||||
explicit LoginPage(const TerminalConfig& initial, QWidget* parent = nullptr);
|
||||
|
||||
void setConnectHandler(ConnectHandler handler);
|
||||
void setLoginHandler(LoginHandler handler);
|
||||
void setStatus(const QString& text, bool error = false);
|
||||
void setBusy(bool busy);
|
||||
|
||||
// 供外部回填
|
||||
TerminalConfig currentConfig() const;
|
||||
// 保留设备首配信息(SN/服务器地址),登录不再承载 Windows 直连参数
|
||||
TerminalConfig deviceConfig() const;
|
||||
|
||||
signals:
|
||||
void connectRequested(const vdi::TerminalConfig& cfg);
|
||||
void loginRequested(const QString& username, const QString& password);
|
||||
void quitRequested();
|
||||
|
||||
private slots:
|
||||
void onConnectClicked();
|
||||
void onLoginClicked();
|
||||
|
||||
private:
|
||||
TerminalConfig cfg_;
|
||||
ConnectHandler connectHandler_;
|
||||
LoginHandler loginHandler_;
|
||||
|
||||
QLineEdit* editServer_ = nullptr;
|
||||
QLineEdit* editUser_ = nullptr;
|
||||
QLineEdit* editPassword_ = nullptr;
|
||||
QComboBox* comboResolution_ = nullptr;
|
||||
QCheckBox* checkRemember_ = nullptr;
|
||||
QLabel* labelStatus_ = nullptr;
|
||||
QLabel* labelSn_ = nullptr;
|
||||
QLabel* labelNetwork_ = nullptr;
|
||||
QPushButton* buttonConnect_ = nullptr;
|
||||
QPushButton* buttonLogin_ = nullptr;
|
||||
QPushButton* buttonQuit_ = nullptr;
|
||||
};
|
||||
|
||||
} // namespace vdi
|
||||
|
||||
Q_DECLARE_METATYPE(vdi::TerminalConfig)
|
||||
|
||||
#endif // KIOSK_SHELL_LOGIN_PAGE_H
|
||||
Reference in new issue
Block a user