diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2014-05-24 07:12:03 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-05-24 07:12:03 -0700 |
commit | 3a2ceed33d5fcb706a1790fa80fad322dba33556 (patch) | |
tree | 611fb5f26a92cfa970d9d110cce6a50ee2e5e232 /qt-ui | |
parent | 18fa359b481893bf2ef71cfbb676efbd9601204b (diff) | |
download | subsurface-3a2ceed33d5fcb706a1790fa80fad322dba33556.tar.gz |
Add Subsurface XML export to Export dialog
Also be consistent about the default folder we use when opening the file
dialog.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/divelogexportdialog.cpp | 43 | ||||
-rw-r--r-- | qt-ui/divelogexportdialog.ui | 59 |
2 files changed, 78 insertions, 24 deletions
diff --git a/qt-ui/divelogexportdialog.cpp b/qt-ui/divelogexportdialog.cpp index cc59b2e6d..28f343257 100644 --- a/qt-ui/divelogexportdialog.cpp +++ b/qt-ui/divelogexportdialog.cpp @@ -3,7 +3,7 @@ #include <QShortcut> #include <QAbstractButton> #include <QDebug> -#include <QButtonGroup> +#include <QSettings> #include "mainwindow.h" #include "divelogexportdialog.h" @@ -37,6 +37,8 @@ void DiveLogExportDialog::showExplanation() ui->description->setText("Send the dive data to Divelogs.de website."); } else if (ui->exportWorldMap->isChecked()) { ui->description->setText("HTML export of the dive locations, visualized on a world map."); + } else if (ui->exportSubsurfaceXML->isChecked()) { + ui->description->setText("Subsurface native XML format."); } } @@ -47,29 +49,50 @@ void DiveLogExportDialog::on_exportGroup_buttonClicked(QAbstractButton *button) void DiveLogExportDialog::on_buttonBox_accepted() { - QFileInfo fi(system_default_filename()); QString filename; QString stylesheet; + QSettings settings; + QString lastDir = QDir::homePath(); + + settings.beginGroup("FileDialog"); + if (settings.contains("LastDir")) { + if (QDir::setCurrent(settings.value("LastDir").toString())) { + lastDir = settings.value("LastDir").toString(); + } + } + settings.endGroup(); if (ui->exportUDDF->isChecked()) { stylesheet = "uddf-export.xslt"; - filename = QFileDialog::getSaveFileName(this, tr("Export UDDF File as"), fi.absolutePath(), + filename = QFileDialog::getSaveFileName(this, tr("Export UDDF File as"), lastDir, tr("UDDF files (*.uddf *.UDDF)")); } else if (ui->exportCSV->isChecked()) { stylesheet = "xml2csv.xslt"; - filename = QFileDialog::getSaveFileName(this, tr("Export CSV File as"), fi.absolutePath(), + filename = QFileDialog::getSaveFileName(this, tr("Export CSV File as"), lastDir, tr("CSV files (*.csv *.CSV)")); } else if (ui->exportDivelogs->isChecked()) { DivelogsDeWebServices::instance()->prepareDivesForUpload(ui->exportSelected->isChecked()); - return; } else if (ui->exportWorldMap->isChecked()) { - filename = QFileDialog::getSaveFileName(this, tr("Export World Map"), fi.absolutePath(), + filename = QFileDialog::getSaveFileName(this, tr("Export World Map"), lastDir, tr("HTML files (*.html)")); if (!filename.isNull() && !filename.isEmpty()) export_worldmap_HTML(filename.toUtf8().data(), ui->exportSelected->isChecked()); - return; + } else if (ui->exportSubsurfaceXML->isChecked()) { + filename = QFileDialog::getSaveFileName(this, tr("Export Subsurface XML"), lastDir, + tr("XML files (*.xml *.ssrf)")); + if (!filename.isNull() && !filename.isEmpty()) { + QByteArray bt = QFile::encodeName(filename); + save_dives_logic(bt.data(), true); + } + } + if (!filename.isNull() && !filename.isEmpty()) { + // remember the last export path + QFileInfo fileInfo(filename); + settings.beginGroup("FileDialog"); + settings.setValue("LastDir", fileInfo.dir().path()); + settings.endGroup(); + // the non XSLT exports are called directly above, the XSLT based ons are called here + if (!stylesheet.isEmpty()) + export_dives_xslt(filename.toUtf8(), ui->exportSelected->isChecked(), stylesheet.toStdString().c_str()); } - - if (!filename.isNull() && !filename.isEmpty()) - export_dives_xslt(filename.toUtf8(), ui->exportSelected->isChecked(), stylesheet.toStdString().c_str()); } diff --git a/qt-ui/divelogexportdialog.ui b/qt-ui/divelogexportdialog.ui index c937308e1..cb84e083f 100644 --- a/qt-ui/divelogexportdialog.ui +++ b/qt-ui/divelogexportdialog.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>400</width> - <height>419</height> + <width>448</width> + <height>473</height> </rect> </property> <property name="windowTitle"> @@ -17,7 +17,7 @@ <property name="geometry"> <rect> <x>20</x> - <y>360</y> + <y>420</y> <width>341</width> <height>32</height> </rect> @@ -61,8 +61,8 @@ <rect> <x>20</x> <y>70</y> - <width>161</width> - <height>171</height> + <width>201</width> + <height>211</height> </rect> </property> <property name="title"> @@ -72,16 +72,22 @@ <property name="geometry"> <rect> <x>10</x> - <y>30</y> + <y>70</y> <width>110</width> <height>24</height> </rect> </property> + <property name="maximumSize"> + <size> + <width>110</width> + <height>16777215</height> + </size> + </property> <property name="text"> <string>UDDF</string> </property> <property name="checked"> - <bool>true</bool> + <bool>false</bool> </property> <attribute name="buttonGroup"> <string notr="true">exportGroup</string> @@ -91,7 +97,7 @@ <property name="geometry"> <rect> <x>10</x> - <y>60</y> + <y>100</y> <width>131</width> <height>24</height> </rect> @@ -107,7 +113,7 @@ <property name="geometry"> <rect> <x>10</x> - <y>90</y> + <y>130</y> <width>110</width> <height>24</height> </rect> @@ -123,8 +129,8 @@ <property name="geometry"> <rect> <x>10</x> - <y>120</y> - <width>110</width> + <y>160</y> + <width>171</width> <height>24</height> </rect> </property> @@ -135,11 +141,36 @@ <string notr="true">exportGroup</string> </attribute> </widget> + <widget class="QRadioButton" name="exportSubsurfaceXML"> + <property name="geometry"> + <rect> + <x>10</x> + <y>40</y> + <width>171</width> + <height>21</height> + </rect> + </property> + <property name="maximumSize"> + <size> + <width>171</width> + <height>16777215</height> + </size> + </property> + <property name="text"> + <string>Subsurface XML</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + <attribute name="buttonGroup"> + <string notr="true">exportGroup</string> + </attribute> + </widget> </widget> <widget class="QGroupBox" name="exportSelection"> <property name="geometry"> <rect> - <x>190</x> + <x>240</x> <y>70</y> <width>191</width> <height>141</height> @@ -185,7 +216,7 @@ <property name="geometry"> <rect> <x>60</x> - <y>240</y> + <y>280</y> <width>231</width> <height>16</height> </rect> @@ -198,7 +229,7 @@ <property name="geometry"> <rect> <x>30</x> - <y>260</y> + <y>310</y> <width>341</width> <height>91</height> </rect> |