mirror of
https://github.com/redstrate/Astra.git
synced 2025-04-20 11:47:46 +00:00
Add an option to delete files when removing a game install
Otherwise your game install folder ends up littered with junk, like mine!
This commit is contained in:
parent
c3acd8f44c
commit
0b00a49402
3 changed files with 17 additions and 4 deletions
|
@ -35,7 +35,7 @@ public:
|
|||
|
||||
int getProfileIndex(const QString &name);
|
||||
Q_INVOKABLE Profile *addProfile();
|
||||
Q_INVOKABLE void deleteProfile(Profile *profile);
|
||||
Q_INVOKABLE void deleteProfile(Profile *profile, bool deleteFiles);
|
||||
|
||||
[[nodiscard]] QList<Profile *> profiles() const;
|
||||
[[nodiscard]] int numProfiles() const;
|
||||
|
|
|
@ -51,12 +51,17 @@ Profile *ProfileManager::addProfile()
|
|||
return newProfile;
|
||||
}
|
||||
|
||||
void ProfileManager::deleteProfile(Profile *profile)
|
||||
void ProfileManager::deleteProfile(Profile *profile, const bool deleteFiles)
|
||||
{
|
||||
auto config = KSharedConfig::openStateConfig();
|
||||
config->deleteGroup(QStringLiteral("profile-%1").arg(profile->uuid()));
|
||||
config->sync();
|
||||
|
||||
// delete files if requested
|
||||
if (deleteFiles) {
|
||||
QDir(profile->config()->gamePath()).removeRecursively();
|
||||
}
|
||||
|
||||
const int row = static_cast<int>(m_profiles.indexOf(profile));
|
||||
beginRemoveRows(QModelIndex(), row, row);
|
||||
m_profiles.removeAll(profile);
|
||||
|
|
|
@ -327,8 +327,16 @@ FormCard.FormCardPage {
|
|||
standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel
|
||||
showCloseButton: false
|
||||
|
||||
QQC2.Switch {
|
||||
id: deleteFilesSwitch
|
||||
|
||||
checked: true
|
||||
|
||||
text: i18n("Delete Files")
|
||||
}
|
||||
|
||||
onAccepted: {
|
||||
LauncherCore.profileManager.deleteProfile(page.profile);
|
||||
LauncherCore.profileManager.deleteProfile(page.profile, deleteFilesSwitch.checked);
|
||||
page.Window.window.pageStack.layers.pop();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue