summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/preferences/preferences_log.cpp
diff options
context:
space:
mode:
authorGravatar willemferguson <willemferguson@zoology.up.ac.za>2019-12-09 20:58:20 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-12-25 02:57:42 +0900
commitb6c3cdb20cbcb1654c83d555d278476f55d3d103 (patch)
tree67c566c81e286391f804660f7cd0017ada058902 /desktop-widgets/preferences/preferences_log.cpp
parentb24caa4e2db42d300e3806ca3d13ce72202a24d8 (diff)
downloadsubsurface-b6c3cdb20cbcb1654c83d555d278476f55d3d103.tar.gz
Preferences UI: add dive log tab
This adds a tab for dive log - related preferences. A suitable test programs is still required. Signed-off-by: willemferguson <willemferguson@zoology.up.ac.za> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'desktop-widgets/preferences/preferences_log.cpp')
-rw-r--r--desktop-widgets/preferences/preferences_log.cpp90
1 files changed, 90 insertions, 0 deletions
diff --git a/desktop-widgets/preferences/preferences_log.cpp b/desktop-widgets/preferences/preferences_log.cpp
new file mode 100644
index 000000000..9025945e3
--- /dev/null
+++ b/desktop-widgets/preferences/preferences_log.cpp
@@ -0,0 +1,90 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "preferences_log.h"
+#include "ui_preferences_log.h"
+#include "core/dive.h"
+#include "core/settings/qPrefLog.h"
+#include "core/settings/qPrefDisplay.h"
+#include "core/settings/qPrefCloudStorage.h"
+#include "core/settings/qPrefDiveComputer.h"
+
+#include <QFileDialog>
+#include <QProcess>
+#include <QMessageBox>
+
+PreferencesLog::PreferencesLog(): AbstractPreferencesWidget(tr(" Dive log"), QIcon(":preferences-log-icon"), 4 ), ui(new Ui::PreferencesLog())
+{
+ ui->setupUi(this);
+}
+
+PreferencesLog::~PreferencesLog()
+{
+ delete ui;
+}
+
+void PreferencesLog::on_chooseFile_clicked()
+{
+ QFileInfo fi(system_default_filename());
+ QString choosenFileName = QFileDialog::getOpenFileName(this, tr("Open default log file"), fi.absolutePath(), tr("Subsurface files") + " (*.ssrf *.xml)");
+
+ if (!choosenFileName.isEmpty())
+ ui->defaultfilename->setText(choosenFileName);
+}
+
+void PreferencesLog::on_btnUseDefaultFile_toggled(bool toggle)
+{
+ if (toggle) {
+ ui->defaultfilename->setText(system_default_filename());
+ ui->defaultfilename->setEnabled(false);
+ } else {
+ ui->defaultfilename->setEnabled(true);
+ }
+}
+
+void PreferencesLog::on_localDefaultFile_toggled(bool toggle)
+{
+ ui->defaultfilename->setEnabled(toggle);
+ ui->btnUseDefaultFile->setEnabled(toggle);
+ ui->chooseFile->setEnabled(toggle);
+}
+
+void PreferencesLog::refreshSettings()
+{
+ ui->defaultfilename->setText(qPrefLog::default_filename());
+ ui->noDefaultFile->setChecked(qPrefLog::default_file_behavior() == NO_DEFAULT_FILE);
+ ui->cloudDefaultFile->setChecked(qPrefLog::default_file_behavior() == CLOUD_DEFAULT_FILE);
+ ui->localDefaultFile->setChecked(qPrefLog::default_file_behavior() == LOCAL_DEFAULT_FILE);
+
+ ui->btnUseDefaultFile->setChecked(qPrefLog::use_default_file());
+
+ if (qPrefCloudStorage::cloud_verification_status() == qPrefCloudStorage::CS_VERIFIED) {
+ ui->cloudDefaultFile->setEnabled(true);
+ } else {
+ if (ui->cloudDefaultFile->isChecked())
+ ui->noDefaultFile->setChecked(true);
+ ui->cloudDefaultFile->setEnabled(false);
+ }
+
+ ui->defaultfilename->setEnabled(qPrefLog::default_file_behavior() == LOCAL_DEFAULT_FILE);
+ ui->btnUseDefaultFile->setEnabled(qPrefLog::default_file_behavior() == LOCAL_DEFAULT_FILE);
+ ui->chooseFile->setEnabled(qPrefLog::default_file_behavior() == LOCAL_DEFAULT_FILE);
+ ui->show_average_depth->setChecked(prefs.show_average_depth);
+ ui->displayinvalid->setChecked(qPrefDisplay::display_invalid_dives());
+ ui->extraEnvironmentalDefault->setChecked(prefs.extraEnvironmentalDefault);
+}
+
+void PreferencesLog::syncSettings()
+{
+ auto log = qPrefLog::instance();
+ log->set_default_filename(ui->defaultfilename->text());
+ log->set_use_default_file(ui->btnUseDefaultFile->isChecked());
+ if (ui->noDefaultFile->isChecked())
+ log->set_default_file_behavior(NO_DEFAULT_FILE);
+ else if (ui->localDefaultFile->isChecked())
+ log->set_default_file_behavior(LOCAL_DEFAULT_FILE);
+ else if (ui->cloudDefaultFile->isChecked())
+ log->set_default_file_behavior(CLOUD_DEFAULT_FILE);
+
+ qPrefLog::set_show_average_depth(ui->show_average_depth->isChecked());
+ qPrefDisplay::set_display_invalid_dives(ui->displayinvalid->isChecked());
+ qPrefLog::set_extraEnvironmentalDefault(ui->extraEnvironmentalDefault->isChecked());
+}