summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLostDragonist <lost.dragonist@gmail.com>2018-11-10 16:24:45 -0600
committerLostDragonist <lost.dragonist@gmail.com>2018-11-10 16:24:45 -0600
commitaaa1523db9c7e93ca9b258a74f36c17e29e5fc5a (patch)
tree2e38f41a0a50166d86cc3dbc5baf4c2307f3bfc3
parenteffd05df06a8db24020d289e1734ba57e5488cb5 (diff)
Normalize path settings to prevent extra characters
-rw-r--r--src/settingsdialog.cpp41
-rw-r--r--src/settingsdialog.h11
2 files changed, 52 insertions, 0 deletions
diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp
index 8a983896..91ce0e25 100644
--- a/src/settingsdialog.cpp
+++ b/src/settingsdialog.cpp
@@ -358,3 +358,44 @@ void SettingsDialog::on_clearCacheButton_clicked()
NexusInterface::instance(m_PluginContainer)->clearCache();
}
+void SettingsDialog::normalizePath(QLineEdit *lineEdit)
+{
+ QString text = lineEdit->text();
+ QString new_text = text;
+ if (text.contains("%BASE_DIR%")) {
+ QString baseDir = ui->baseDirEdit->text();
+ new_text = new_text.replace("%BASE_DIR%", baseDir);
+ new_text = QDir(new_text).absolutePath();
+ new_text = new_text.replace(baseDir, "%BASE_DIR%");
+ } else {
+ new_text = QDir(new_text).absolutePath();
+ }
+ if (new_text.compare(text, Qt::CaseInsensitive)) {
+ lineEdit->setText(new_text);
+ }
+}
+
+void SettingsDialog::on_downloadDirEdit_editingFinished()
+{
+ normalizePath(ui->downloadDirEdit);
+}
+
+void SettingsDialog::on_modDirEdit_editingFinished()
+{
+ normalizePath(ui->modDirEdit);
+}
+
+void SettingsDialog::on_cacheDirEdit_editingFinished()
+{
+ normalizePath(ui->cacheDirEdit);
+}
+
+void SettingsDialog::on_profilesDirEdit_editingFinished()
+{
+ normalizePath(ui->profilesDirEdit);
+}
+
+void SettingsDialog::on_overwriteDirEdit_editingFinished()
+{
+ normalizePath(ui->overwriteDirEdit);
+}
diff --git a/src/settingsdialog.h b/src/settingsdialog.h
index 7df52ccd..3609c940 100644
--- a/src/settingsdialog.h
+++ b/src/settingsdialog.h
@@ -61,6 +61,7 @@ signals:
private:
void storeSettings(QListWidgetItem *pluginItem);
+ void normalizePath(QLineEdit *lineEdit);
public:
@@ -113,6 +114,16 @@ private slots:
void on_resetColorsBtn_clicked();
+ void on_downloadDirEdit_editingFinished();
+
+ void on_modDirEdit_editingFinished();
+
+ void on_cacheDirEdit_editingFinished();
+
+ void on_profilesDirEdit_editingFinished();
+
+ void on_overwriteDirEdit_editingFinished();
+
private:
Ui::SettingsDialog *ui;
PluginContainer *m_PluginContainer;