mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 14:40:28 +00:00
6a9c4cb9d7
While rendering a template with "0" dives per page value, try to fit as many dives per page but don't break a dive into 2 pages. Use a dynamically sized view port to fit the rendered area only, and don't render the full page. All the Template elements that shouldn't be broken should have the CSS class "dontbreak". Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
49 lines
980 B
C++
49 lines
980 B
C++
#ifndef PRINTER_H
|
|
#define PRINTER_H
|
|
|
|
#include <QPrinter>
|
|
#include <QWebView>
|
|
#include <QRect>
|
|
#include <QPainter>
|
|
|
|
#include "profile/profilewidget2.h"
|
|
#include "printoptions.h"
|
|
#include "templateedit.h"
|
|
|
|
class Printer : public QObject {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
enum PrintMode {
|
|
PRINT,
|
|
PREVIEW
|
|
};
|
|
|
|
private:
|
|
QPaintDevice *paintDevice;
|
|
QWebView *webView;
|
|
print_options *printOptions;
|
|
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, print_options *printOptions, template_options *templateOptions, PrintMode printMode);
|
|
~Printer();
|
|
void print();
|
|
void print_statistics();
|
|
void previewOnePage();
|
|
|
|
signals:
|
|
void progessUpdated(int value);
|
|
};
|
|
|
|
#endif //PRINTER_H
|