mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
export: move exportProfile() function to exportfuncs.cpp
The exportProfile function uses the UI and therefore was supposed to be declared in backend-shared/* but defined separately for desktop and mobile. Currently, only the desktop version exists. The goal however should be that there is no need of the UI for this function. In a first step, move the function to the common backend-shared/* code and conditionally compile for desktop. In upcoming commits, the function will be made independent of the UI. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
811c8a441e
commit
8f0e2245c2
3 changed files with 28 additions and 32 deletions
|
@ -1,7 +1,5 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
#include <QFileInfo>
|
#include "exportfuncs.h"
|
||||||
#include <QDir>
|
|
||||||
#include <QtConcurrent>
|
|
||||||
#include "core/membuffer.h"
|
#include "core/membuffer.h"
|
||||||
#include "core/dive.h"
|
#include "core/dive.h"
|
||||||
#include "core/divesite.h"
|
#include "core/divesite.h"
|
||||||
|
@ -17,7 +15,11 @@
|
||||||
#include "core/sample.h"
|
#include "core/sample.h"
|
||||||
#include "core/selection.h"
|
#include "core/selection.h"
|
||||||
#include "core/taxonomy.h"
|
#include "core/taxonomy.h"
|
||||||
#include "exportfuncs.h"
|
#include "core/sample.h"
|
||||||
|
#include "profile-widget/profilewidget2.h"
|
||||||
|
#include <QDir>
|
||||||
|
#include <QFileInfo>
|
||||||
|
#include <QtConcurrent>
|
||||||
|
|
||||||
// Default implementation of the export callback: do nothing / never cancel
|
// Default implementation of the export callback: do nothing / never cancel
|
||||||
void ExportCallback::setProgress(int)
|
void ExportCallback::setProgress(int)
|
||||||
|
@ -30,6 +32,28 @@ bool ExportCallback::canceled() const
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(SUBSURFACE_MOBILE)
|
#if !defined(SUBSURFACE_MOBILE)
|
||||||
|
|
||||||
|
#include "desktop-widgets/mainwindow.h" // Currently needed for profile printing. TODO: remove.
|
||||||
|
|
||||||
|
static void exportProfile(const struct dive *dive, const QString filename)
|
||||||
|
{
|
||||||
|
ProfileWidget2 *profile = MainWindow::instance()->graphics;
|
||||||
|
profile->setToolTipVisibile(false);
|
||||||
|
profile->setPrintMode(true);
|
||||||
|
double scale = profile->getFontPrintScale();
|
||||||
|
profile->setFontPrintScale(4 * scale);
|
||||||
|
profile->plotDive(dive, 0, false, true);
|
||||||
|
QImage image = QImage(profile->size() * 4, QImage::Format_RGB32);
|
||||||
|
QPainter paint;
|
||||||
|
paint.begin(&image);
|
||||||
|
profile->render(&paint);
|
||||||
|
image.save(filename);
|
||||||
|
profile->setToolTipVisibile(true);
|
||||||
|
profile->setFontPrintScale(scale);
|
||||||
|
profile->setPrintMode(false);
|
||||||
|
profile->plotDive(dive, 0, true); // TODO: Shouldn't this plot the current dive?
|
||||||
|
}
|
||||||
|
|
||||||
void exportProfile(QString filename, bool selected_only, ExportCallback &cb)
|
void exportProfile(QString filename, bool selected_only, ExportCallback &cb)
|
||||||
{
|
{
|
||||||
struct dive *dive;
|
struct dive *dive;
|
||||||
|
|
|
@ -22,13 +22,4 @@ QFuture<int> exportUsingStyleSheet(QString filename, bool doExport, int units, Q
|
||||||
// prepareDivesForUploadDiveLog
|
// prepareDivesForUploadDiveLog
|
||||||
// prepareDivesForUploadDiveShare
|
// prepareDivesForUploadDiveShare
|
||||||
|
|
||||||
// WARNING
|
|
||||||
// exportProfile uses the UI and are therefore different between
|
|
||||||
// Desktop (UI) and Mobile (QML)
|
|
||||||
// In order to solve this difference, the actual implementations
|
|
||||||
// are done in
|
|
||||||
// desktop-widgets/divelogexportdialog.cpp and
|
|
||||||
// mobile-widgets/qmlmanager.cpp
|
|
||||||
void exportProfile(const struct dive *dive, const QString filename);
|
|
||||||
|
|
||||||
#endif // EXPORT_FUNCS_H
|
#endif // EXPORT_FUNCS_H
|
||||||
|
|
|
@ -253,22 +253,3 @@ void DiveLogExportDialog::on_buttonBox_accepted()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void exportProfile(const struct dive *dive, const QString filename)
|
|
||||||
{
|
|
||||||
ProfileWidget2 *profile = MainWindow::instance()->graphics;
|
|
||||||
profile->setToolTipVisibile(false);
|
|
||||||
profile->setPrintMode(true);
|
|
||||||
double scale = profile->getFontPrintScale();
|
|
||||||
profile->setFontPrintScale(4 * scale);
|
|
||||||
profile->plotDive(dive, 0, false, true);
|
|
||||||
QImage image = QImage(profile->size() * 4, QImage::Format_RGB32);
|
|
||||||
QPainter paint;
|
|
||||||
paint.begin(&image);
|
|
||||||
profile->render(&paint);
|
|
||||||
image.save(filename);
|
|
||||||
profile->setToolTipVisibile(true);
|
|
||||||
profile->setFontPrintScale(scale);
|
|
||||||
profile->setPrintMode(false);
|
|
||||||
profile->plotDive(dive, 0); // TODO: Shouldn't this plot the current dive?
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue