diff options
author | Robert C. Helling <helling@atdotde.de> | 2019-02-02 14:41:53 +0100 |
---|---|---|
committer | Robert C. Helling <helling@atdotde.de> | 2019-02-07 16:06:43 +0100 |
commit | fe4a230245dc204a74ddffd16562976e7ffaa625 (patch) | |
tree | cee018920922181649053c26082e05f0a8ff2941 /desktop-widgets/divelogexportdialog.cpp | |
parent | c9d8b4f605d55b99ec41ec1eaa008118889261c3 (diff) | |
download | subsurface-fe4a230245dc204a74ddffd16562976e7ffaa625.tar.gz |
Export profile image
With Facebook support gone, we should offer a way to export
the profile image. This has been part of the TeX support
but this makes it explicit.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Diffstat (limited to 'desktop-widgets/divelogexportdialog.cpp')
-rw-r--r-- | desktop-widgets/divelogexportdialog.cpp | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/desktop-widgets/divelogexportdialog.cpp b/desktop-widgets/divelogexportdialog.cpp index 15dd7d99f..37fb8cee4 100644 --- a/desktop-widgets/divelogexportdialog.cpp +++ b/desktop-widgets/divelogexportdialog.cpp @@ -169,6 +169,10 @@ void DiveLogExportDialog::on_buttonBox_accepted() filename = QFileDialog::getSaveFileName(this, tr("Export to TeX file"), lastDir, tr("TeX files") + " (*.tex)"); if (!filename.isNull() && !filename.isEmpty()) export_TeX(qPrintable(filename), ui->exportSelected->isChecked(), ui->exportTeX->isChecked()); + } else if (ui->exportProfile->isChecked()) { + filename = QFileDialog::getSaveFileName(this, tr("Save image depths"), lastDir); + if (!filename.isNull() && !filename.isEmpty()) + exportProfile(qPrintable(filename), ui->exportSelected->isChecked()); } break; case 1: @@ -229,6 +233,34 @@ void DiveLogExportDialog::export_depths(const char *filename, const bool selecte free_buffer(&buf); } +void DiveLogExportDialog::exportProfile(const QString filename, const bool selected_only) +{ + struct dive *dive; + int i; + int count = 0; + QFileInfo fi(filename); + + for_each_dive (i, dive) { + if (selected_only && !dive->selected) + continue; + if (count) + saveProfile(dive, fi.completeBaseName().append(QString("-%1.").arg(count)).append(fi.suffix())); + else + saveProfile(dive, filename); + ++count; + } +} + +void DiveLogExportDialog::saveProfile(const struct dive *dive, const QString filename) +{ + ProfileWidget2 *profile = MainWindow::instance()->graphics; + profile->plotDive(dive, true); + profile->setToolTipVisibile(false); + QPixmap pix = profile->grab(); + profile->setToolTipVisibile(true); + pix.save(filename); +} + void DiveLogExportDialog::export_TeX(const char *filename, const bool selected_only, bool plain) { FILE *f; @@ -286,14 +318,7 @@ void DiveLogExportDialog::export_TeX(const char *filename, const bool selected_o if (selected_only && !dive->selected) continue; - ProfileWidget2 *profile = MainWindow::instance()->graphics; - profile->plotDive(dive, true); - profile->setToolTipVisibile(false); - QPixmap pix = QPixmap::grabWidget(profile); - profile->setToolTipVisibile(true); - pix.save(texdir.filePath(QString("profile%1.png").arg(dive->number))); - - + saveProfile(dive, texdir.filePath(QString("profile%1.png").arg(dive->number))); struct tm tm; utc_mkdate(dive->when, &tm); |