summaryrefslogtreecommitdiff
path: root/src/forcedloaddialogwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/forcedloaddialogwidget.cpp')
-rw-r--r--src/forcedloaddialogwidget.cpp33
1 files changed, 27 insertions, 6 deletions
diff --git a/src/forcedloaddialogwidget.cpp b/src/forcedloaddialogwidget.cpp
index 61805068..10069c35 100644
--- a/src/forcedloaddialogwidget.cpp
+++ b/src/forcedloaddialogwidget.cpp
@@ -5,9 +5,12 @@
#include "executableinfo.h"
-ForcedLoadDialogWidget::ForcedLoadDialogWidget(QWidget *parent) :
+using namespace MOBase;
+
+ForcedLoadDialogWidget::ForcedLoadDialogWidget(const IPluginGame *game, QWidget *parent) :
QWidget(parent),
- ui(new Ui::ForcedLoadDialogWidget)
+ ui(new Ui::ForcedLoadDialogWidget),
+ m_GamePlugin(game)
{
ui->setupUi(this);
}
@@ -68,20 +71,38 @@ void ForcedLoadDialogWidget::on_enabledBox_toggled()
void ForcedLoadDialogWidget::on_libraryPathBrowseButton_clicked()
{
- QDir gameDir("D:/Games/Steam Library/steamapps/common/Fallout 4");
+ QDir gameDir(m_GamePlugin->gameDirectory());
QString startPath = gameDir.absolutePath();
QString result = QFileDialog::getOpenFileName(nullptr, "Select a library...", startPath, "Dynamic link library (*.dll)", nullptr, QFileDialog::ReadOnly);
if (!result.isEmpty()) {
- ui->libraryPathEdit->setText(result);
+ QFileInfo fileInfo(result);
+ QString relativePath = gameDir.relativeFilePath(fileInfo.filePath());
+ QString filePath = fileInfo.filePath();
+ if (!relativePath.startsWith("..")) {
+ filePath = relativePath;
+ }
+
+ if (fileInfo.exists()) {
+ ui->libraryPathEdit->setText(filePath);
+ } else {
+ qCritical("%ls does not exist", filePath.toStdWString().c_str());
+ }
}
}
void ForcedLoadDialogWidget::on_processBrowseButton_clicked()
{
- QDir gameDir("D:/Games/Steam Library/steamapps/common/Fallout 4");
+ QDir gameDir(m_GamePlugin->gameDirectory());
QString startPath = gameDir.absolutePath();
QString result = QFileDialog::getOpenFileName(nullptr, "Select a process...", startPath, "Executable (*.exe)", nullptr, QFileDialog::ReadOnly);
if (!result.isEmpty()) {
- ui->processEdit->setText(QFile(result).fileName());
+ QFileInfo fileInfo(result);
+ QString fileName = fileInfo.fileName();
+
+ if (fileInfo.exists()) {
+ ui->processEdit->setText(fileName);
+ } else {
+ qCritical("%ls does not exist", fileInfo.filePath().toStdWString().c_str());
+ }
}
}