From 33b511fef8f4740e9acd9788a7354b5266cd3125 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Sat, 31 May 2025 23:45:43 +0600 Subject: [PATCH] Remove the Machine menu (broken), also make sure buttons are not improperly enabled (#4) --- src/qt/qt_vmmanager_details.cpp | 19 +++++++++++++++++++ src/qt/qt_vmmanager_detailsection.cpp | 4 ++++ src/qt/qt_vmmanager_mainwindow.ui | 20 ++++---------------- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/src/qt/qt_vmmanager_details.cpp b/src/qt/qt_vmmanager_details.cpp index ee8beba30..64b6babec 100644 --- a/src/qt/qt_vmmanager_details.cpp +++ b/src/qt/qt_vmmanager_details.cpp @@ -114,19 +114,25 @@ VMManagerDetails::VMManagerDetails(QWidget *parent) : startPauseButton = new QToolButton(); startPauseButton->setIcon(QIcon(":/menuicons/qt/icons/run.ico")); startPauseButton->setAutoRaise(true); + startPauseButton->setEnabled(false); ui->toolButtonHolder->setStyleSheet(toolButtonStyleSheet); resetButton = new QToolButton(); resetButton->setIcon(QIcon(":/menuicons/qt/icons/hard_reset.ico")); + resetButton->setEnabled(false); stopButton = new QToolButton(); stopButton->setIcon(QIcon(":/menuicons/qt/icons/acpi_shutdown.ico")); + stopButton->setEnabled(false); configureButton = new QToolButton(); configureButton->setIcon(QIcon(":/menuicons/qt/icons/settings.ico")); + configureButton->setEnabled(false); ui->toolButtonHolder->layout()->addWidget(configureButton); ui->toolButtonHolder->layout()->addWidget(resetButton); ui->toolButtonHolder->layout()->addWidget(stopButton); ui->toolButtonHolder->layout()->addWidget(startPauseButton); + ui->notesTextEdit->setEnabled(false); + sysconfig = new VMManagerSystem(); } @@ -175,6 +181,8 @@ VMManagerDetails::updateData(VMManagerSystem *passed_sysconfig) { startPauseButton->setIcon(QIcon(":/menuicons/qt/icons/run.ico")); connect(startPauseButton, &QToolButton::clicked, sysconfig, &VMManagerSystem::startButtonPressed); } + startPauseButton->setEnabled(true); + configureButton->setEnabled(true); // Each detail section here has its own VMManagerDetailSection. // When a system is selected in the list view it is updated here, through this object: @@ -237,6 +245,9 @@ VMManagerDetails::updateData(VMManagerSystem *passed_sysconfig) { ui->screenshotNextTB->setEnabled(true); ui->screenshotPreviousTB->setEnabled(true); } +#ifdef Q_OS_WINDOWS + ui->screenshot->setStyleSheet(""); +#endif if(QFileInfo::exists(screenshots.last().filePath())) { screenshotIndex = screenshots.size() - 1; const QPixmap pic(screenshots.at(screenshotIndex).filePath()); @@ -253,6 +264,13 @@ VMManagerDetails::updateData(VMManagerSystem *passed_sysconfig) { ui->screenshot->setText(tr("No screenshot")); ui->screenshot->setEnabled(false); ui->screenshot->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); +#ifdef Q_OS_WINDOWS + if (!windows_is_light_theme()) { + ui->screenshot->setStyleSheet("QLabel { border: 1px solid gray }"); + } else { + ui->screenshot->setStyleSheet(""); + } +#endif } ui->systemLabel->setText(passed_sysconfig->displayName); @@ -260,6 +278,7 @@ VMManagerDetails::updateData(VMManagerSystem *passed_sysconfig) { tr("Not running") : QString("%1: PID %2").arg(tr("Running"), QString::number(sysconfig->process->processId()))); ui->notesTextEdit->setPlainText(passed_sysconfig->notes); + ui->notesTextEdit->setEnabled(true); disconnect(sysconfig->process, &QProcess::stateChanged, this, &VMManagerDetails::updateProcessStatus); connect(sysconfig->process, &QProcess::stateChanged, this, &VMManagerDetails::updateProcessStatus); diff --git a/src/qt/qt_vmmanager_detailsection.cpp b/src/qt/qt_vmmanager_detailsection.cpp index f6b77baf9..bd080e00c 100644 --- a/src/qt/qt_vmmanager_detailsection.cpp +++ b/src/qt/qt_vmmanager_detailsection.cpp @@ -72,6 +72,7 @@ VMManagerDetailSection(const QString §ionName) ui->collapseButtonHolder->layout()->addItem(hSpacer); // collapseButton->setContent(frame); // ui->sectionName->setVisible(false); + setVisible(false); } VMManagerDetailSection:: @@ -227,11 +228,14 @@ VMManagerDetailSection::setSections() } } collapseButton->setContent(ui->detailFrame); + if (sections.size()) + setVisible(true); } void VMManagerDetailSection::clear() { sections.clear(); + setVisible(false); } // QT for Linux and Windows doesn't have the same default margins as QT on MacOS. diff --git a/src/qt/qt_vmmanager_mainwindow.ui b/src/qt/qt_vmmanager_mainwindow.ui index b19610593..e3e0a242d 100644 --- a/src/qt/qt_vmmanager_mainwindow.ui +++ b/src/qt/qt_vmmanager_mainwindow.ui @@ -20,7 +20,7 @@ 0 0 900 - 24 + 21 @@ -30,17 +30,6 @@ - - - Machine - - - - - - - - File @@ -48,7 +37,6 @@ - @@ -66,7 +54,7 @@ - Qt::ToolButtonIconOnly + Qt::ToolButtonStyle::ToolButtonIconOnly TopToolBarArea @@ -167,7 +155,7 @@ &Settings... - QAction::NoRole + QAction::MenuRole::NoRole false @@ -193,7 +181,7 @@ Preferences - QAction::PreferencesRole + QAction::MenuRole::PreferencesRole