Manager: Don't allow changing the system directory when machines are running

This commit is contained in:
Alexander Babikov
2026-01-08 14:36:24 +05:00
parent d7d2dffe7b
commit 304d843267
3 changed files with 10 additions and 3 deletions

View File

@@ -202,7 +202,8 @@ VMManagerMainWindow::vmmStateChanged(const VMManagerSystem *sysconfig) const
void
VMManagerMainWindow::preferencesTriggered()
{
const auto prefs = new VMManagerPreferences();
bool machinesRunning = (vmm->getActiveMachineCount() > 0);
const auto prefs = new VMManagerPreferences(this, machinesRunning);
if (prefs->exec() == QDialog::Accepted) {
emit preferencesUpdated();
updateLanguage();

View File

@@ -33,7 +33,7 @@ extern "C" {
}
VMManagerPreferences::
VMManagerPreferences(QWidget *parent)
VMManagerPreferences(QWidget *parent, bool machinesRunning)
: ui(new Ui::VMManagerPreferences)
{
ui->setupUi(this);
@@ -50,6 +50,12 @@ VMManagerPreferences::
ui->systemDirectory->setText(QDir::toNativeSeparators(QDir(vmm_path).path()));
}
if (machinesRunning) {
ui->systemDirectory->setEnabled(false);
ui->dirSelectButton->setEnabled(false);
ui->dirSelectButton->setToolTip(tr("To change the system directory, stop all running machines."));
}
ui->comboBoxLanguage->setItemData(0, 0);
for (int i = 1; i < ProgSettings::languages.length(); i++) {
ui->comboBoxLanguage->addItem(ProgSettings::languages[i].second, i);

View File

@@ -26,7 +26,7 @@ QT_END_NAMESPACE
class VMManagerPreferences final : public QDialog {
Q_OBJECT
public:
explicit VMManagerPreferences(QWidget *parent = nullptr);
explicit VMManagerPreferences(QWidget *parent = nullptr, bool machinesRunning = false);
~VMManagerPreferences() override;
private: