功能:接入桌面连接设置入口与管理菜单
This commit is contained in:
parent
1f926c5564
commit
d24fb91f8a
@ -24,6 +24,7 @@
|
|||||||
#include <freerdp/scancode.h>
|
#include <freerdp/scancode.h>
|
||||||
|
|
||||||
#include "desktop_list_page.h"
|
#include "desktop_list_page.h"
|
||||||
|
#include "desktop_settings_dialog.h"
|
||||||
#include "login_page.h"
|
#include "login_page.h"
|
||||||
|
|
||||||
namespace vdi {
|
namespace vdi {
|
||||||
@ -132,6 +133,7 @@ void MainWindow::setupUi() {
|
|||||||
stack_->addWidget(list);
|
stack_->addWidget(list);
|
||||||
|
|
||||||
connect(list, &DesktopListPage::desktopSelected, this, &MainWindow::onDesktopSelected);
|
connect(list, &DesktopListPage::desktopSelected, this, &MainWindow::onDesktopSelected);
|
||||||
|
connect(list, &DesktopListPage::editRequested, this, &MainWindow::onEditDesktopRequested);
|
||||||
connect(list, &DesktopListPage::logoutRequested, this, &MainWindow::onLogoutRequested);
|
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() {
|
void MainWindow::onLogoutRequested() {
|
||||||
stopSessions();
|
stopSessions();
|
||||||
desktopService_.logout();
|
desktopService_.logout();
|
||||||
@ -546,12 +570,18 @@ void MainWindow::onMenuAction(int action) {
|
|||||||
break;
|
break;
|
||||||
default: {
|
default: {
|
||||||
QMenu menu(this);
|
QMenu menu(this);
|
||||||
|
QAction* settings = menu.addAction(QStringLiteral("桌面连接设置"));
|
||||||
|
menu.addSeparator();
|
||||||
QAction* reconnect = menu.addAction(QStringLiteral("重新连接当前桌面"));
|
QAction* reconnect = menu.addAction(QStringLiteral("重新连接当前桌面"));
|
||||||
QAction* disconnect = menu.addAction(QStringLiteral("断开并返回桌面列表"));
|
QAction* disconnect = menu.addAction(QStringLiteral("断开并返回桌面列表"));
|
||||||
menu.addSeparator();
|
menu.addSeparator();
|
||||||
QAction* quit = menu.addAction(QStringLiteral("退出终端"));
|
QAction* quit = menu.addAction(QStringLiteral("退出终端"));
|
||||||
QAction* chosen = menu.exec(QCursor::pos());
|
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);
|
onMenuAction(1);
|
||||||
} else if (chosen == disconnect) {
|
} else if (chosen == disconnect) {
|
||||||
onMenuAction(2);
|
onMenuAction(2);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user