From 89ee58de38d46361dbdd5f9b5a2d1390cf325ab4 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Fri, 17 Apr 2020 13:49:26 +0200 Subject: Fix crash when game plugin does not provide any ini files. --- src/mainwindow.cpp | 10 ++++++++-- src/profile.cpp | 6 +++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 85d0fe39..b36a1df8 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1809,10 +1809,16 @@ QDir MainWindow::currentSavesDir() const if (m_OrganizerCore.currentProfile()->localSavesEnabled()) { savesDir.setPath(m_OrganizerCore.currentProfile()->savePath()); } else { + auto iniFiles = m_OrganizerCore.managedGame()->iniFiles(); + + if (iniFiles.isEmpty()) { + return m_OrganizerCore.managedGame()->savesDirectory(); + } + QString iniPath = m_OrganizerCore.currentProfile()->localSettingsEnabled() ? m_OrganizerCore.currentProfile()->absolutePath() : m_OrganizerCore.managedGame()->documentsDirectory().absolutePath(); - iniPath += "/" + m_OrganizerCore.managedGame()->iniFiles()[0]; + iniPath += "/" + iniFiles[0]; wchar_t path[MAX_PATH]; ::GetPrivateProfileStringW( @@ -4140,7 +4146,7 @@ void MainWindow::saveArchiveList() } archiveFile.commitIfDifferent(m_ArchiveListHash); } else { - log::warn("archive list not initialised"); + log::debug("archive list not initialised"); } } diff --git a/src/profile.cpp b/src/profile.cpp index 19c0d750..e96f6702 100644 --- a/src/profile.cpp +++ b/src/profile.cpp @@ -881,7 +881,11 @@ QString Profile::getDeleterFileName() const QString Profile::getIniFileName() const { - return m_Directory.absoluteFilePath(m_GamePlugin->iniFiles()[0]); + auto iniFiles = m_GamePlugin->iniFiles(); + if (iniFiles.isEmpty()) + return ""; + else + return m_Directory.absoluteFilePath(iniFiles[0]); } QString Profile::getProfileTweaks() const -- cgit v1.3.1