mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
0cbb448740
These two structs describe options used during printing. They are passed through numerous classes as pointer. In this case, reference semantics are preferred, as references: - can never be null - can not change during their lifetime This not only helps the compiler, as it can optimize away null checks, but also your fellow coder. Moreover, it prevents unintentional creation of uninitialized references: one can't create an instance of a class without initializing a reference member. It does not prevent references from going dangling. However, pointers have the same disadvantage. Contains a few whitespace cleanups. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
49 lines
1,001 B
C++
49 lines
1,001 B
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef PRINTER_H
|
|
#define PRINTER_H
|
|
|
|
#include <QPrinter>
|
|
#include <QWebView>
|
|
#include <QRect>
|
|
#include <QPainter>
|
|
|
|
#include "printoptions.h"
|
|
#include "templateedit.h"
|
|
|
|
class Printer : public QObject {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
enum PrintMode {
|
|
PRINT,
|
|
PREVIEW
|
|
};
|
|
|
|
private:
|
|
QPaintDevice *paintDevice;
|
|
QWebView *webView;
|
|
const print_options &printOptions;
|
|
const template_options &templateOptions;
|
|
QSize pageSize;
|
|
PrintMode printMode;
|
|
int done;
|
|
int dpi;
|
|
void render(int Pages);
|
|
void flowRender();
|
|
void putProfileImage(QRect box, QRect viewPort, QPainter *painter, struct dive *dive, QPointer<ProfileWidget2> profile);
|
|
|
|
private slots:
|
|
void templateProgessUpdated(int value);
|
|
|
|
public:
|
|
Printer(QPaintDevice *paintDevice, const print_options &printOptions, const template_options &templateOptions, PrintMode printMode);
|
|
~Printer();
|
|
void print();
|
|
void previewOnePage();
|
|
QString exportHtml();
|
|
|
|
signals:
|
|
void progessUpdated(int value);
|
|
};
|
|
|
|
#endif //PRINTER_H
|