aboutsummaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/installer_fomod_plus/installer/FomodInstallerWindow.cpp10
-rw-r--r--libs/installer_fomod_plus/installer/ui/UIHelper.cpp5
2 files changed, 10 insertions, 5 deletions
diff --git a/libs/installer_fomod_plus/installer/FomodInstallerWindow.cpp b/libs/installer_fomod_plus/installer/FomodInstallerWindow.cpp
index e5f2e18..bd1c0bc 100644
--- a/libs/installer_fomod_plus/installer/FomodInstallerWindow.cpp
+++ b/libs/installer_fomod_plus/installer/FomodInstallerWindow.cpp
@@ -17,6 +17,7 @@
#include <QScrollBar>
#include <QSettings>
#include <QSizePolicy>
+#include <QStandardPaths>
#include <QSplitter>
#include <QVBoxLayout>
#include <utility>
@@ -93,8 +94,9 @@ void FomodInstallerWindow::closeEvent(QCloseEvent* event)
void FomodInstallerWindow::saveGeometryAndState() const
{
- const auto cwd = QDir::currentPath();
- QSettings settings(cwd + "/fomod-plus-settings.ini", QSettings::IniFormat);
+ const auto configDir = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
+ QDir().mkpath(configDir);
+ QSettings settings(configDir + "/fomod-plus-settings.ini", QSettings::IniFormat);
settings.setValue("windowGeometry", saveGeometry());
settings.setValue("centerSplitState", mCenterRow->saveState());
settings.setValue("leftSplitState", mLeftPane->saveState());
@@ -102,8 +104,8 @@ void FomodInstallerWindow::saveGeometryAndState() const
void FomodInstallerWindow::restoreGeometryAndState()
{
- const auto cwd = QDir::currentPath();
- const QSettings settings(cwd + "/fomod-plus-settings.ini", QSettings::IniFormat);
+ const auto configDir = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
+ const QSettings settings(configDir + "/fomod-plus-settings.ini", QSettings::IniFormat);
restoreGeometry(settings.value("windowGeometry").toByteArray());
mCenterRow->restoreState(settings.value("centerSplitState").toByteArray());
mLeftPane->restoreState(settings.value("leftSplitState").toByteArray());
diff --git a/libs/installer_fomod_plus/installer/ui/UIHelper.cpp b/libs/installer_fomod_plus/installer/ui/UIHelper.cpp
index 2312fd1..56aff85 100644
--- a/libs/installer_fomod_plus/installer/ui/UIHelper.cpp
+++ b/libs/installer_fomod_plus/installer/ui/UIHelper.cpp
@@ -61,7 +61,10 @@ QLabel* UIHelper::createHyperlink(const QString& url, QWidget* parent = nullptr)
QString UIHelper::getFullImagePath(const QString& fomodPath, const QString& imagePath)
{
- return QDir::tempPath() + "/" + fomodPath + "/" + imagePath;
+ // Fomod XMLs may use Windows backslashes in image paths (e.g. "fomod\MCM.png")
+ QString normalized = imagePath;
+ normalized.replace('\\', '/');
+ return QDir::tempPath() + "/" + fomodPath + "/" + normalized;
}
void UIHelper::setGlobalAlignment(QBoxLayout* layout, const Qt::Alignment alignment)