aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/divelogexportdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/divelogexportdialog.cpp')
-rw-r--r--qt-ui/divelogexportdialog.cpp240
1 files changed, 0 insertions, 240 deletions
diff --git a/qt-ui/divelogexportdialog.cpp b/qt-ui/divelogexportdialog.cpp
deleted file mode 100644
index 7a406b982..000000000
--- a/qt-ui/divelogexportdialog.cpp
+++ /dev/null
@@ -1,240 +0,0 @@
-#include <QFileDialog>
-#include <QShortcut>
-#include <QSettings>
-#include <QtConcurrent>
-
-#include "divelogexportdialog.h"
-#include "divelogexportlogic.h"
-#include "diveshareexportdialog.h"
-#include "ui_divelogexportdialog.h"
-#include "subsurfacewebservices.h"
-#include "worldmap-save.h"
-#include "save-html.h"
-#include "mainwindow.h"
-
-#define GET_UNIT(name, field, f, t) \
- v = settings.value(QString(name)); \
- if (v.isValid()) \
- field = (v.toInt() == 0) ? (t) : (f); \
- else \
- field = default_prefs.units.field
-
-DiveLogExportDialog::DiveLogExportDialog(QWidget *parent) : QDialog(parent),
- ui(new Ui::DiveLogExportDialog)
-{
- ui->setupUi(this);
- showExplanation();
- QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
- connect(quit, SIGNAL(activated()), MainWindow::instance(), SLOT(close()));
- QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
- connect(close, SIGNAL(activated()), this, SLOT(close()));
-
- /* the names are not the actual values exported to the json files,The font-family property should hold several
- font names as a "fallback" system, to ensure maximum compatibility between browsers/operating systems */
- ui->fontSelection->addItem("Arial", "Arial, Helvetica, sans-serif");
- ui->fontSelection->addItem("Impact", "Impact, Charcoal, sans-serif");
- ui->fontSelection->addItem("Georgia", "Georgia, serif");
- ui->fontSelection->addItem("Courier", "Courier, monospace");
- ui->fontSelection->addItem("Verdana", "Verdana, Geneva, sans-serif");
-
- QSettings settings;
- settings.beginGroup("HTML");
- if (settings.contains("fontSelection")) {
- ui->fontSelection->setCurrentIndex(settings.value("fontSelection").toInt());
- }
- if (settings.contains("fontSizeSelection")) {
- ui->fontSizeSelection->setCurrentIndex(settings.value("fontSizeSelection").toInt());
- }
- if (settings.contains("themeSelection")) {
- ui->themeSelection->setCurrentIndex(settings.value("themeSelection").toInt());
- }
- if (settings.contains("subsurfaceNumbers")) {
- ui->exportSubsurfaceNumber->setChecked(settings.value("subsurfaceNumbers").toBool());
- }
- if (settings.contains("yearlyStatistics")) {
- ui->exportStatistics->setChecked(settings.value("yearlyStatistics").toBool());
- }
- if (settings.contains("listOnly")) {
- ui->exportListOnly->setChecked(settings.value("listOnly").toBool());
- }
- if (settings.contains("exportPhotos")) {
- ui->exportPhotos->setChecked(settings.value("exportPhotos").toBool());
- }
- settings.endGroup();
-}
-
-DiveLogExportDialog::~DiveLogExportDialog()
-{
- delete ui;
-}
-
-void DiveLogExportDialog::showExplanation()
-{
- if (ui->exportUDDF->isChecked()) {
- ui->description->setText(tr("Generic format that is used for data exchange between a variety of diving related programs."));
- } else if (ui->exportCSV->isChecked()) {
- ui->description->setText(tr("Comma separated values describing the dive profile."));
- } else if (ui->exportCSVDetails->isChecked()) {
- ui->description->setText(tr("Comma separated values of the dive information. This includes most of the dive details but no profile information."));
- } else if (ui->exportDivelogs->isChecked()) {
- ui->description->setText(tr("Send the dive data to divelogs.de website."));
- } else if (ui->exportDiveshare->isChecked()) {
- ui->description->setText(tr("Send the dive data to dive-share.appspot.com website"));
- } else if (ui->exportWorldMap->isChecked()) {
- ui->description->setText(tr("HTML export of the dive locations, visualized on a world map."));
- } else if (ui->exportSubsurfaceXML->isChecked()) {
- ui->description->setText(tr("Subsurface native XML format."));
- } else if (ui->exportImageDepths->isChecked()) {
- ui->description->setText(tr("Write depths of images to file."));
- }
-}
-
-void DiveLogExportDialog::exportHtmlInit(const QString &filename)
-{
- struct htmlExportSetting hes;
- hes.themeFile = (ui->themeSelection->currentText() == tr("Light")) ? "light.css" : "sand.css";
- hes.exportPhotos = ui->exportPhotos->isChecked();
- hes.selectedOnly = ui->exportSelectedDives->isChecked();
- hes.listOnly = ui->exportListOnly->isChecked();
- hes.fontFamily = ui->fontSelection->itemData(ui->fontSelection->currentIndex()).toString();
- hes.fontSize = ui->fontSizeSelection->currentText();
- hes.themeSelection = ui->themeSelection->currentIndex();
- hes.subsurfaceNumbers = ui->exportSubsurfaceNumber->isChecked();
- hes.yearlyStatistics = ui->exportStatistics->isChecked();
-
- exportHtmlInitLogic(filename, hes);
-}
-
-void DiveLogExportDialog::exportHTMLsettings(const QString &filename)
-{
- QSettings settings;
- settings.beginGroup("HTML");
- settings.setValue("fontSelection", ui->fontSelection->currentIndex());
- settings.setValue("fontSizeSelection", ui->fontSizeSelection->currentIndex());
- settings.setValue("themeSelection", ui->themeSelection->currentIndex());
- settings.setValue("subsurfaceNumbers", ui->exportSubsurfaceNumber->isChecked());
- settings.setValue("yearlyStatistics", ui->exportStatistics->isChecked());
- settings.setValue("listOnly", ui->exportListOnly->isChecked());
- settings.setValue("exportPhotos", ui->exportPhotos->isChecked());
- settings.endGroup();
-
-}
-
-
-void DiveLogExportDialog::on_exportGroup_buttonClicked(QAbstractButton *button)
-{
- showExplanation();
-}
-
-void DiveLogExportDialog::on_buttonBox_accepted()
-{
- 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();
-
- switch (ui->tabWidget->currentIndex()) {
- case 0:
- if (ui->exportUDDF->isChecked()) {
- stylesheet = "uddf-export.xslt";
- 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"), lastDir,
- tr("CSV files (*.csv *.CSV)"));
- } else if (ui->exportCSVDetails->isChecked()) {
- stylesheet = "xml2manualcsv.xslt";
- 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());
- } else if (ui->exportDiveshare->isChecked()) {
- DiveShareExportDialog::instance()->prepareDivesForUpload(ui->exportSelected->isChecked());
- } else if (ui->exportWorldMap->isChecked()) {
- 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());
- } else if (ui->exportSubsurfaceXML->isChecked()) {
- filename = QFileDialog::getSaveFileName(this, tr("Export Subsurface XML"), lastDir,
- tr("XML files (*.xml *.ssrf)"));
- if (!filename.isNull() && !filename.isEmpty()) {
- if (!filename.contains('.'))
- filename.append(".ssrf");
- QByteArray bt = QFile::encodeName(filename);
- save_dives_logic(bt.data(), ui->exportSelected->isChecked());
- }
- } else if (ui->exportImageDepths->isChecked()) {
- filename = QFileDialog::getSaveFileName(this, tr("Save image depths"), lastDir);
- if (!filename.isNull() && !filename.isEmpty())
- export_depths(filename.toUtf8().data(), ui->exportSelected->isChecked());
- }
- break;
- case 1:
- filename = QFileDialog::getSaveFileName(this, tr("Export HTML files as"), lastDir,
- tr("HTML files (*.html)"));
- if (!filename.isNull() && !filename.isEmpty())
- exportHtmlInit(filename);
- break;
- }
-
- 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()) {
- future = QtConcurrent::run(export_dives_xslt, filename.toUtf8(), ui->exportSelected->isChecked(), ui->CSVUnits_2->currentIndex(), stylesheet.toUtf8());
- MainWindow::instance()->getNotificationWidget()->showNotification(tr("Please wait, exporting..."), KMessageWidget::Information);
- MainWindow::instance()->getNotificationWidget()->setFuture(future);
- }
- }
-}
-
-void DiveLogExportDialog::export_depths(const char *filename, const bool selected_only)
-{
- FILE *f;
- struct dive *dive;
- depth_t depth;
- int i;
- const char *unit = NULL;
-
- struct membuffer buf = { 0 };
-
- for_each_dive (i, dive) {
- if (selected_only && !dive->selected)
- continue;
-
- FOR_EACH_PICTURE (dive) {
- int n = dive->dc.samples;
- struct sample *s = dive->dc.sample;
- depth.mm = 0;
- while (--n >= 0 && (int32_t)s->time.seconds <= picture->offset.seconds) {
- depth.mm = s->depth.mm;
- s++;
- }
- put_format(&buf, "%s\t%.1f", picture->filename, get_depth_units(depth.mm, NULL, &unit));
- put_format(&buf, "%s\n", unit);
- }
- }
-
- f = subsurface_fopen(filename, "w+");
- if (!f) {
- report_error(tr("Can't open file %s").toUtf8().data(), filename);
- } else {
- flush_buffer(&buf, f); /*check for writing errors? */
- fclose(f);
- }
- free_buffer(&buf);
-}