vdi-cloud/terminal/kiosk-shell/tests/preview_desktop_list.cpp

36 lines
1.6 KiB
C++

#include <QApplication>
#include <QDir>
#include <QPushButton>
#include <QSettings>
#include <QTimer>
#include "desktop_list_page.h"
int main(int argc, char** argv) {
QApplication app(argc, argv);
app.setOrganizationName("vdi-preview");
app.setApplicationName("desktop-selection");
const QStringList args = app.arguments();
if (args.size() < 5) return 2;
QSettings().setValue("appearance/light", args[4] == "light");
vdi::DesktopListPage page;
page.resize(args[2].toInt(), args[3].toInt());
page.setCurrentUser(QStringLiteral("云终端"));
if (!args.contains("empty")) {
std::vector<vdi::DesktopInfo> desktops;
for (const QString& os : {QStringLiteral("Windows"), QStringLiteral("Ubuntu"), QStringLiteral("麒麟")}) {
vdi::DesktopInfo d;
d.id = os; d.name = os + QStringLiteral(" 云桌面"); d.os = os;
d.state = vdi::DesktopState::kAvailable;
if (args.contains("states") && os == "Ubuntu") d.state = vdi::DesktopState::kPending;
if (args.contains("states") && os == QStringLiteral("麒麟")) d.state = vdi::DesktopState::kUnassigned;
desktops.push_back(d);
}
page.setDesktops(desktops);
}
if (args.contains("error")) page.setStatus(QStringLiteral("连接失败:管理平台暂不可用;正在自动重试,无需重启盒子"), true);
if (args.contains("busy")) { page.setBusy(true); page.setStatus(QStringLiteral("正在连接,请稍候…")); }
page.show();
QTimer::singleShot(150, [&] { app.exit(page.grab().save(args[1]) ? 0 : 1); });
return app.exec();
}