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/divelogexportdialog.cpp | |
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/divelogexportdialog.cpp')
-rw-r--r-- | qt-ui/divelogexportdialog.cpp | 43 |
1 files changed, 33 insertions, 10 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()); } |