diff --git a/CHANGELOG.md b/CHANGELOG.md index b36250f88..1d21fbf79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ - Desktop: make sure cloud storage email addresses are lower case only - Desktop: Fix editing of dive-time [#1975] - Export option for profile picture +- Desktop: Add export option for profile picture [#1962] - Export: fix picture thumbnails [#1963] - Desktop: remove support for the "Share on Facebook" feature. Rationale: It is fairly easy to share images on Facebook, thus it was decided diff --git a/desktop-widgets/divecomponentselection.ui b/desktop-widgets/divecomponentselection.ui index ba58c546b..05e989174 100644 --- a/desktop-widgets/divecomponentselection.ui +++ b/desktop-widgets/divecomponentselection.ui @@ -49,7 +49,7 @@ - Which components would you like to copy + Which components would you like to copy? @@ -67,34 +67,6 @@ 0 - - - - Dive site - - - - - - - Suit - - - - - - - Visibility - - - - - - - Notes - - - @@ -109,6 +81,20 @@ + + + + Dive site + + + + + + + Visibility + + + @@ -116,6 +102,20 @@ + + + + Buddy + + + + + + + Notes + + + @@ -123,10 +123,10 @@ - - + + - Buddy + Suit @@ -140,6 +140,19 @@ + + + + You can paste these to another dive or as text to another application. + + + Qt::PlainText + + + true + + + diff --git a/desktop-widgets/divelogexportdialog.cpp b/desktop-widgets/divelogexportdialog.cpp index e22aff433..d3a7106e6 100644 --- a/desktop-widgets/divelogexportdialog.cpp +++ b/desktop-widgets/divelogexportdialog.cpp @@ -94,6 +94,8 @@ void DiveLogExportDialog::showExplanation() ui->description->setText(tr("Write depths of images to file.")); } else if (ui->exportTeX->isChecked()) { ui->description->setText(tr("Write dive as TeX macros to file.")); + } else if (ui->exportProfile->isChecked()) { + ui->description->setText(tr("Write the profile image as PNG file.")); } } @@ -168,7 +170,7 @@ void DiveLogExportDialog::on_buttonBox_accepted() if (!filename.isNull() && !filename.isEmpty()) export_TeX(qPrintable(filename), ui->exportSelected->isChecked()); } else if (ui->exportProfile->isChecked()) { - filename = QFileDialog::getSaveFileName(this, tr("Save image depths"), lastDir); + filename = QFileDialog::getSaveFileName(this, tr("Save profile image"), lastDir); if (!filename.isNull() && !filename.isEmpty()) exportProfile(qPrintable(filename), ui->exportSelected->isChecked()); } @@ -231,18 +233,20 @@ void DiveLogExportDialog::export_depths(const char *filename, const bool selecte free_buffer(&buf); } -void DiveLogExportDialog::exportProfile(const QString filename, const bool selected_only) +void DiveLogExportDialog::exportProfile(QString filename, const bool selected_only) { struct dive *dive; int i; int count = 0; + if (!filename.endsWith(".png", Qt::CaseInsensitive)) + filename = filename.append(".png"); 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())); + saveProfile(dive, fi.path() + QDir::separator() + fi.completeBaseName().append(QString("-%1.").arg(count)) + fi.suffix()); else saveProfile(dive, filename); ++count; diff --git a/desktop-widgets/divelogexportdialog.h b/desktop-widgets/divelogexportdialog.h index cd1c56112..fe403b11a 100644 --- a/desktop-widgets/divelogexportdialog.h +++ b/desktop-widgets/divelogexportdialog.h @@ -34,7 +34,7 @@ private: void exportHtmlInit(const QString &filename); void export_depths(const char *filename, const bool selected_only); void export_TeX(const char *filename, const bool selected_only); - void exportProfile(const QString filename, const bool selected_only); + void exportProfile(QString filename, const bool selected_only); void saveProfile(const struct dive *dive, const QString filename); }; diff --git a/desktop-widgets/divelogexportdialog.ui b/desktop-widgets/divelogexportdialog.ui index eb51074d2..29a784fde 100644 --- a/desktop-widgets/divelogexportdialog.ui +++ b/desktop-widgets/divelogexportdialog.ui @@ -184,7 +184,7 @@ - dive profile + Dive profile exportGroup