summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;