Delete shortcut when deleting instances

Signed-off-by: Yihe Li <winmikedows@hotmail.com>
This commit is contained in:
Yihe Li
2025-06-01 08:13:10 +08:00
parent 0a89f5cfaa
commit d3f337d6ef
11 changed files with 168 additions and 67 deletions

View File

@@ -83,12 +83,12 @@ CreateShortcutDialog::CreateShortcutDialog(InstancePtr instance, QWidget* parent
QString applicationDir = FS::getApplicationsDir();
if (!desktopDir.isEmpty())
ui->saveTargetSelectionBox->addItem(tr("Desktop"), QVariant::fromValue(SaveTarget::Desktop));
ui->saveTargetSelectionBox->addItem(tr("Desktop"), QVariant::fromValue(ShortcutTarget::Desktop));
if (!applicationDir.isEmpty())
ui->saveTargetSelectionBox->addItem(tr("Applications"), QVariant::fromValue(SaveTarget::Applications));
ui->saveTargetSelectionBox->addItem(tr("Applications"), QVariant::fromValue(ShortcutTarget::Applications));
}
ui->saveTargetSelectionBox->addItem(tr("Other..."), QVariant::fromValue(SaveTarget::Other));
ui->saveTargetSelectionBox->addItem(tr("Other..."), QVariant::fromValue(ShortcutTarget::Other));
// Populate worlds
if (m_QuickJoinSupported) {
@@ -206,17 +206,17 @@ void CreateShortcutDialog::createShortcut()
}
}
auto target = ui->saveTargetSelectionBox->currentData().value<SaveTarget>();
auto target = ui->saveTargetSelectionBox->currentData().value<ShortcutTarget>();
auto name = ui->instNameTextBox->text();
if (name.isEmpty())
name = ui->instNameTextBox->placeholderText();
if (ui->overrideAccountCheckbox->isChecked())
extraArgs.append({ "--profile", ui->accountSelectionBox->currentData().toString() });
ShortcutUtils::Shortcut args{ m_instance.get(), name, targetString, this, extraArgs, InstIconKey };
if (target == SaveTarget::Desktop)
ShortcutUtils::Shortcut args{ m_instance.get(), name, targetString, this, extraArgs, InstIconKey, target };
if (target == ShortcutTarget::Desktop)
ShortcutUtils::createInstanceShortcutOnDesktop(args);
else if (target == SaveTarget::Applications)
else if (target == ShortcutTarget::Applications)
ShortcutUtils::createInstanceShortcutInApplications(args);
else
ShortcutUtils::createInstanceShortcutInOther(args);