From 4ab33fdfbb23fdfed5327d402989fd53d79f5380 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 22 Aug 2015 19:02:25 +0200 Subject: main, ui: store config files in a predefined directory Settings files are now stored in Documents/opentrack-version. The transition path is to copy all .ini files into that directory, accessible through the "Profile" menu dropdown. Issue: #179 --- facetracknoir/new_file_dialog.h | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 facetracknoir/new_file_dialog.h (limited to 'facetracknoir/new_file_dialog.h') diff --git a/facetracknoir/new_file_dialog.h b/facetracknoir/new_file_dialog.h new file mode 100644 index 00000000..dc821592 --- /dev/null +++ b/facetracknoir/new_file_dialog.h @@ -0,0 +1,48 @@ +#pragma once + +#include "ui_new_config.h" +#include "opentrack/options.hpp" +#include +#include +#include +#include + +class new_file_dialog : public QDialog +{ + Q_OBJECT +public: + new_file_dialog(QWidget* parent = 0) : QDialog(parent), ok(false) + { + ui.setupUi(this); + connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(ok_clicked())); + connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(cancel_clicked())); + setFixedSize(size()); + } + bool is_ok(QString& name_) + { + name_ = name; + return ok; + } +private: + Ui::UI_new_config ui; + bool ok; + QString name; +private slots: + void cancel_clicked() { close(); } + void ok_clicked() + { + QString text = ui.lineEdit->text(); + text = text.replace('/', ""); + text = text.replace('\\', ""); + if (text == "" || QFile(options::group::ini_directory() + "/" + text).exists()) + { + QMessageBox::warning(this, + "File exists", "This file already exists. Pick another name.", + QMessageBox::Ok, QMessageBox::NoButton); + return; + } + ok = true; + close(); + name = text; + } +}; -- cgit v1.2.3 From c15a456ac6df79a001250fc5b877751db4a30875 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 22 Aug 2015 23:00:59 +0200 Subject: ui: append extension in the right place Otherwise, file can be overwritten accidentally --- facetracknoir/new_file_dialog.h | 2 ++ facetracknoir/ui.cpp | 5 +---- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'facetracknoir/new_file_dialog.h') diff --git a/facetracknoir/new_file_dialog.h b/facetracknoir/new_file_dialog.h index dc821592..d72b8741 100644 --- a/facetracknoir/new_file_dialog.h +++ b/facetracknoir/new_file_dialog.h @@ -34,6 +34,8 @@ private slots: QString text = ui.lineEdit->text(); text = text.replace('/', ""); text = text.replace('\\', ""); + if (text != "" && !text.endsWith(".ini")) + text += ".ini"; if (text == "" || QFile(options::group::ini_directory() + "/" + text).exists()) { QMessageBox::warning(this, diff --git a/facetracknoir/ui.cpp b/facetracknoir/ui.cpp index a204f36d..e22fee7a 100644 --- a/facetracknoir/ui.cpp +++ b/facetracknoir/ui.cpp @@ -109,10 +109,7 @@ bool MainWindow::get_new_config_name_from_dialog(QString& ret) { new_file_dialog dlg; dlg.exec(); - bool b = dlg.is_ok(ret); - if (b && !ret.endsWith(".ini")) - ret += ".ini"; - return b; + return dlg.is_ok(ret); } MainWindow::~MainWindow() -- cgit v1.2.3 From df9c024b596d74b02341387577fd0ea1d95d6c78 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Wed, 26 Aug 2015 08:39:59 +0200 Subject: ui: also bail on new config if its name is ".ini" --- facetracknoir/new_file_dialog.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'facetracknoir/new_file_dialog.h') diff --git a/facetracknoir/new_file_dialog.h b/facetracknoir/new_file_dialog.h index d72b8741..3a35cf71 100644 --- a/facetracknoir/new_file_dialog.h +++ b/facetracknoir/new_file_dialog.h @@ -36,7 +36,7 @@ private slots: text = text.replace('\\', ""); if (text != "" && !text.endsWith(".ini")) text += ".ini"; - if (text == "" || QFile(options::group::ini_directory() + "/" + text).exists()) + if (text == "" || text == ".ini" || QFile(options::group::ini_directory() + "/" + text).exists()) { QMessageBox::warning(this, "File exists", "This file already exists. Pick another name.", -- cgit v1.2.3