功能:接入桌面连接设置入口与管理菜单
This commit is contained in:
parent
1f926c5564
commit
d24fb91f8a
@ -24,6 +24,7 @@
|
||||
#include <freerdp/scancode.h>
|
||||
|
||||
#include "desktop_list_page.h"
|
||||
#include "desktop_settings_dialog.h"
|
||||
#include "login_page.h"
|
||||
|
||||
namespace vdi {
|
||||
@ -132,6 +133,7 @@ void MainWindow::setupUi() {
|
||||
stack_->addWidget(list);
|
||||
|
||||
connect(list, &DesktopListPage::desktopSelected, this, &MainWindow::onDesktopSelected);
|
||||
connect(list, &DesktopListPage::editRequested, this, &MainWindow::onEditDesktopRequested);
|
||||
connect(list, &DesktopListPage::logoutRequested, this, &MainWindow::onLogoutRequested);
|
||||
|
||||
// 会话视图
|
||||
@ -330,6 +332,28 @@ void MainWindow::onDesktopSelected(const QString& desktopId) {
|
||||
});
|
||||
}
|
||||
|
||||
void MainWindow::onEditDesktopRequested(const QString& desktopId) {
|
||||
// 桌面连接设置:编辑协议/地址/应用名/分辨率/帧率,保存后立即刷新列表。
|
||||
// 现场环境地址不同或走 VPN 隧道时,在这里改地址即可,无需改代码。
|
||||
DesktopSettingsDialog dialog(desktops_, desktopId, this);
|
||||
dialog.setStyleSheet(
|
||||
QStringLiteral("QWidget { background: #0f1420; color: #e6e9ef; }"
|
||||
"QLineEdit { background: #1a2233; border: 1px solid #2b3654; "
|
||||
"border-radius: 4px; padding: 8px; color: #e6e9ef; }"
|
||||
"QComboBox { background: #1a2233; border: 1px solid #2b3654; "
|
||||
"border-radius: 4px; padding: 8px; color: #e6e9ef; }"
|
||||
"QPushButton { background: #232d44; border: 1px solid #2b3654; "
|
||||
"border-radius: 6px; color: #e6e9ef; }"
|
||||
"QLabel { color: #e6e9ef; }"));
|
||||
if (dialog.exec() == QDialog::Accepted) {
|
||||
desktops_ = dialog.desktops();
|
||||
if (desktopListPage_) {
|
||||
desktopListPage_->setDesktops(desktops_);
|
||||
desktopListPage_->setStatus(QStringLiteral("连接配置已保存"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::onLogoutRequested() {
|
||||
stopSessions();
|
||||
desktopService_.logout();
|
||||
@ -546,12 +570,18 @@ void MainWindow::onMenuAction(int action) {
|
||||
break;
|
||||
default: {
|
||||
QMenu menu(this);
|
||||
QAction* settings = menu.addAction(QStringLiteral("桌面连接设置"));
|
||||
menu.addSeparator();
|
||||
QAction* reconnect = menu.addAction(QStringLiteral("重新连接当前桌面"));
|
||||
QAction* disconnect = menu.addAction(QStringLiteral("断开并返回桌面列表"));
|
||||
menu.addSeparator();
|
||||
QAction* quit = menu.addAction(QStringLiteral("退出终端"));
|
||||
QAction* chosen = menu.exec(QCursor::pos());
|
||||
if (chosen == reconnect) {
|
||||
if (chosen == settings) {
|
||||
if (fsm_.current() == State::kDesktopList || fsm_.current() == State::kConfig) {
|
||||
onEditDesktopRequested(QString());
|
||||
}
|
||||
} else if (chosen == reconnect) {
|
||||
onMenuAction(1);
|
||||
} else if (chosen == disconnect) {
|
||||
onMenuAction(2);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user