diff options
| author | LostDragonist <lost.dragonist@gmail.com> | 2018-11-10 16:24:45 -0600 |
|---|---|---|
| committer | LostDragonist <lost.dragonist@gmail.com> | 2018-11-10 16:24:45 -0600 |
| commit | aaa1523db9c7e93ca9b258a74f36c17e29e5fc5a (patch) | |
| tree | 2e38f41a0a50166d86cc3dbc5baf4c2307f3bfc3 /src | |
| parent | effd05df06a8db24020d289e1734ba57e5488cb5 (diff) | |
Normalize path settings to prevent extra characters
Diffstat (limited to 'src')
| -rw-r--r-- | src/settingsdialog.cpp | 41 | ||||
| -rw-r--r-- | src/settingsdialog.h | 11 |
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;
|
