summaryrefslogtreecommitdiffhomepage
path: root/gui/options-dialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/options-dialog.cpp')
-rw-r--r--gui/options-dialog.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/gui/options-dialog.cpp b/gui/options-dialog.cpp
index 3b54ae9a..9dcb7879 100644
--- a/gui/options-dialog.cpp
+++ b/gui/options-dialog.cpp
@@ -11,6 +11,7 @@
#include <QPushButton>
#include <QLayout>
#include <QDialog>
+#include <QFileDialog>
static QString kopts_to_string(const key_opts& kopts)
{
@@ -72,6 +73,9 @@ OptionsDialog::OptionsDialog(std::function<void(bool)> pause_keybindings) :
tie_setting(main.center_method, ui.center_method);
+ tie_setting(main.tracklogging_enabled, ui.tracklogging_enabled);
+ tie_setting(main.tracklogging_filename, ui.tracklogging_filenameedit);
+
struct tmp
{
key_opts& opt;
@@ -102,6 +106,8 @@ OptionsDialog::OptionsDialog(std::function<void(bool)> pause_keybindings) :
connect(val.button, &QPushButton::pressed, this, [=]() -> void { bind_key(val.opt, val.label); });
}
}
+
+ connect(ui.tracklogging_fileselectbtn, SIGNAL(clicked()), this, SLOT(browse_datalogging_file()));
}
void OptionsDialog::bind_key(key_opts& kopts, QLabel* label)
@@ -163,3 +169,23 @@ void OptionsDialog::doCancel()
close();
}
+void OptionsDialog::browse_datalogging_file()
+{
+ QString filename = ui.tracklogging_filenameedit->text();
+ if (filename.isEmpty())
+ filename = QDir::currentPath();
+ /* Sometimes this function freezes the app before opening the dialog.
+ Might be related to https://forum.qt.io/topic/49209/qfiledialog-getopenfilename-hangs-in-windows-when-using-the-native-dialog/8
+ and be a known problem. Possible solution is to use the QFileDialog::DontUseNativeDialog flag.
+ Since the freeze is apparently random, I'm not sure it helped.
+ */
+ QString newfilename = QFileDialog::getSaveFileName(this, tr("Select Filename"), filename, tr("CSV File (*.csv)"), nullptr, QFileDialog::DontUseNativeDialog);
+ if (!newfilename.isEmpty())
+ ui.tracklogging_filenameedit->setText(newfilename);
+}
+
+void OptionsDialog::update_widgets_states(bool tracker_is_running)
+{
+ ui.tracklogging_enabled->setEnabled(!tracker_is_running);
+ ui.tracklogging_fileselectbtn->setEnabled(!tracker_is_running);
+} \ No newline at end of file