From 967c2ae653b54bfc61c3854294f7b1cbff76809b Mon Sep 17 00:00:00 2001 From: Thomas Tanner Date: Mon, 14 Dec 2015 22:25:57 +0000 Subject: Removes the SaveGame class from mainwindow. Using include what you use to add/remove #includes --- src/mainwindow.cpp | 122 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 83 insertions(+), 39 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a85a0fb3..8c292f08 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -20,7 +20,20 @@ along with Mod Organizer. If not, see . #include "mainwindow.h" #include "ui_mainwindow.h" +#include "directoryentry.h" +#include "directoryrefresher.h" +#include "executableinfo.h" +#include "executableslist.h" +#include "guessedvalue.h" +#include "imodinterface.h" +#include "iplugingame.h" +#include "iplugindiagnose.h" +#include "nexusinterface.h" +#include "organizercore.h" +#include "previewgenerator.h" #include "spawn.h" +#include "versioninfo.h" + #include "report.h" #include "modlist.h" #include "modlistsortproxy.h" @@ -31,7 +44,6 @@ along with Mod Organizer. If not, see . #include "editexecutablesdialog.h" #include "categories.h" #include "categoriesdialog.h" -#include "utility.h" #include "modinfodialog.h" #include "overwriteinfodialog.h" #include "activatemodsdialog.h" @@ -41,16 +53,13 @@ along with Mod Organizer. If not, see . #include "messagedialog.h" #include "installationmanager.h" #include "lockeddialog.h" -#include "syncoverwritedialog.h" #include "logbuffer.h" #include "downloadlistsortproxy.h" #include "motddialog.h" #include "filedialogmemory.h" -#include "questionboxmemory.h" #include "tutorialmanager.h" #include "modflagicondelegate.h" #include "genericicondelegate.h" -#include "credentialsdialog.h" #include "selectiondialog.h" #include "csvbuilder.h" #include "savetextasdialog.h" @@ -59,59 +68,84 @@ along with Mod Organizer. If not, see . #include "browserdialog.h" #include "aboutdialog.h" #include "safewritefile.h" -//? -//#include "isavegame.h" -//#include "savegameinfo.h" -//? +#include "savegameinfowidget.h" +#include "savegameinfowidgetgamebryo.h" +#include "scriptextender.h" #include "nxmaccessmanager.h" -#include -#include +#include "appconfig.h" #include -#include #include #include -#include #include -#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include + #include #include #include #include #include #include -#include #include -#include #include #include #include +#include #include #include -#include #include #include -#include -#include #include #include -#include -#include #include -#include -#include #include #include #include -#include +#include #include + + #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) #include #else #include #endif + #include #include @@ -119,22 +153,19 @@ along with Mod Organizer. If not, see . #include #include #include -#include #include #endif -#include #include -#include -#include -#include -#include +#include +#include #include #include -#include -#include -#include +#include +#include +#include +#include #ifdef TEST_MODELS #include "modeltest.h" @@ -3191,29 +3222,42 @@ void MainWindow::deleteSavegame_clicked() { QModelIndexList selectedIndexes = ui->savegameList->selectionModel()->selectedIndexes(); + //This feels wrong and should be part of savegame interface + QStringList extensions; + { + ScriptExtender *extender = m_OrganizerCore.managedGame()->feature(); + if (extender != nullptr) { + extensions += extender->saveGameAttachmentExtensions(); + } + } + QString savesMsgLabel; QStringList deleteFiles; int count = 0; - foreach (const QModelIndex &idx, selectedIndexes) { - QString name = idx.data().toString(); - SaveGame *save = new SaveGame(this, idx.data(Qt::UserRole).toString(), m_OrganizerCore.managedGame()); + for (const QModelIndex &idx : selectedIndexes) { + //QString name = idx.data().toString(); + QFileInfo fileName(idx.data(Qt::UserRole).toString()); if (count < 10) { - savesMsgLabel += "
  • " + QFileInfo(name).completeBaseName() + "
  • "; + savesMsgLabel += "
  • " + fileName.completeBaseName() + "
  • "; } ++count; - deleteFiles << save->saveFiles(); + deleteFiles << fileName.absoluteFilePath(); + for (QString const &ext : extensions) { + deleteFiles << fileName.absoluteDir().absoluteFilePath(fileName.completeBaseName() + "." + ext); + } } if (count > 10) { savesMsgLabel += "
  • ... " + tr("%1 more").arg(count - 10) + "
  • "; } - if (QMessageBox::question(this, tr("Confirm"), tr("Are you sure you want to remove the following %n save(s)?
      %1

    Removed saves will be sent to the Recycle Bin.", "", selectedIndexes.count()) - .arg(savesMsgLabel), + if (QMessageBox::question(this, tr("Confirm"), + tr("Are you sure you want to remove the following %n save(s)?
      %1

    Removed saves will be sent to the Recycle Bin.", "", selectedIndexes.count()) + .arg(savesMsgLabel), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { shellDelete(deleteFiles, true); // recycle bin delete. } -- cgit v1.3.1