[PATCH 5/5] Wire gui for diagnostic logs from dc configuration
Anton Lundin
glance at acc.umu.se
Wed May 27 12:19:13 PDT 2015
This copies peaces from the downloadfromdivecomputer dialog into the
configuredivecomputerdialog and connects them to be able to create a
logfile form the configuration of the divecomputer.
Signed-off-by: Anton Lundin <glance at acc.umu.se>
---
qt-ui/configuredivecomputerdialog.cpp | 25 +++++++++++++++++++++++++
qt-ui/configuredivecomputerdialog.h | 4 ++++
qt-ui/configuredivecomputerdialog.ui | 14 ++++++++++++++
3 files changed, 43 insertions(+)
diff --git a/qt-ui/configuredivecomputerdialog.cpp b/qt-ui/configuredivecomputerdialog.cpp
index 172a1a4..c1d36a1 100644
--- a/qt-ui/configuredivecomputerdialog.cpp
+++ b/qt-ui/configuredivecomputerdialog.cpp
@@ -124,6 +124,9 @@ ConfigureDiveComputerDialog::ConfigureDiveComputerDialog(QWidget *parent) : QDia
this, SLOT(deviceDetailsReceived(DeviceDetails *)));
connect(ui.retrieveDetails, SIGNAL(clicked()), this, SLOT(readSettings()));
connect(ui.resetButton, SIGNAL(clicked()), this, SLOT(resetSettings()));
+ ui.chooseLogFile->setEnabled(ui.logToFile->isChecked());
+ connect(ui.chooseLogFile, SIGNAL(clicked()), this, SLOT(pickLogFile()));
+ connect(ui.logToFile, SIGNAL(stateChanged(int)), this, SLOT(checkLogFile(int)));
memset(&device_data, 0, sizeof(device_data));
fill_computer_list();
@@ -1117,3 +1120,25 @@ void ConfigureDiveComputerDialog::on_DiveComputerList_currentRowChanged(int curr
dcType = DC_TYPE_UEMIS;
fill_device_list(dcType);
}
+
+void ConfigureDiveComputerDialog::checkLogFile(int state)
+{
+ ui.chooseLogFile->setEnabled(state == Qt::Checked);
+ device_data.libdc_log = (state == Qt::Checked);
+ if (state == Qt::Checked && logFile.isEmpty()) {
+ pickLogFile();
+ }
+}
+
+void ConfigureDiveComputerDialog::pickLogFile()
+{
+ QString filename = existing_filename ?: prefs.default_filename;
+ QFileInfo fi(filename);
+ filename = fi.absolutePath().append(QDir::separator()).append("subsurface.log");
+ logFile = QFileDialog::getSaveFileName(this, tr("Choose file for divecomputer download logfile"),
+ filename, tr("Log files (*.log)"));
+ if (!logFile.isEmpty()) {
+ free(logfile_name);
+ logfile_name = strdup(logFile.toUtf8().data());
+ }
+}
diff --git a/qt-ui/configuredivecomputerdialog.h b/qt-ui/configuredivecomputerdialog.h
index b2e4ff6..e41479f 100644
--- a/qt-ui/configuredivecomputerdialog.h
+++ b/qt-ui/configuredivecomputerdialog.h
@@ -58,6 +58,8 @@ public:
private
slots:
+ void checkLogFile(int state);
+ void pickLogFile();
void readSettings();
void resetSettings();
void configMessage(QString msg);
@@ -78,6 +80,8 @@ slots:
private:
Ui::ConfigureDiveComputerDialog ui;
+ QString logFile;
+
QStringList vendorList;
QHash<QString, QStringList> productList;
diff --git a/qt-ui/configuredivecomputerdialog.ui b/qt-ui/configuredivecomputerdialog.ui
index 99d0743..22450f2 100644
--- a/qt-ui/configuredivecomputerdialog.ui
+++ b/qt-ui/configuredivecomputerdialog.ui
@@ -129,6 +129,20 @@
</spacer>
</item>
<item>
+ <widget class="QCheckBox" name="logToFile">
+ <property name="text">
+ <string>Save libdivecomputer logfile</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="chooseLogFile">
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<widget class="QPushButton" name="cancel">
<property name="text">
<string>Cancel</string>
--
2.1.4
More information about the subsurface
mailing list