11#include " window.h"
2- #include < QDebug>
32
43_Window *_window;
54
6- _Window::_Window (QWidget *parent) :
5+ _Window::_Window (QPrinter *printer, QWidget *parent) :
76 QWidget(parent),
87 masterLayout(new QGridLayout(this )),
98 tabs(new Tabs(this )),
109 root(new Root(this )),
11- preview(new Preview(this )),
10+ preview(new Preview(printer, this )),
1211 controls(new Controls(this ))
1312{
1413 /*
@@ -68,7 +67,7 @@ _Window::_Window(QWidget *parent) :
6867 masterLayout->addWidget (preview, 1 , 1 , 1 , 1 );
6968 masterLayout->addWidget (controls, 2 , 0 , 1 , 2 );
7069
71- preview->widgetHeight = masterLayout->itemAt (2 )->geometry ().height ();
70+ preview->widgetHeight = masterLayout->itemAt (1 )->geometry ().height ();
7271
7372 adjustSize ();
7473
@@ -78,22 +77,13 @@ _Window::_Window(QWidget *parent) :
7877 init_backend ();
7978}
8079
81- Window::Window ( QWidget *parent) :
82- QWidget( parent)
80+ CPrintDialog::CPrintDialog (QPrinter* printer, QWidget *parent) :
81+ QAbstractPrintDialog(printer, parent)
8382{
84- _window = new _Window (parent);
83+ _window = new _Window (printer, parent);
8584 _window->show ();
8685}
8786
88- void Window::resizeEvent (QResizeEvent *event) {
89- QWidget::resizeEvent (event);
90- // _window->tabs->resize(_window->container->itemAt(0)->geometry());
91- // _window->root->resize(_window->content->itemAt(0)->geometry());
92- // _window->controls->resize(_window->container->itemAt(2)->geometry());
93- // _window->preview->widgetHeight = _window->content->itemAt(1)->geometry().height();
94- // _window->preview->setZoom(_window->preview->currentZoomFactor);
95- }
96-
9787void _Window::tabBarIndexChanged (qint32 index) {
9888 root->rootObject ->setProperty (" index" , index);
9989}
@@ -185,114 +175,6 @@ void _Window::clearPrinters() {
185175// qDebug() << "generalObject Not Found";
186176}
187177
188- Tabs::Tabs (QWidget* parent) :
189- QWidget(parent),
190- tabs(new QQuickWidget(QUrl(" qrc:/app/Tabs.qml" ), this)) {
191-
192- tabs->setResizeMode (QQuickWidget::SizeRootObjectToView);
193- tabs->setSizePolicy (QSizePolicy::Expanding, QSizePolicy::Expanding);
194- rootObject = tabs->rootObject ();
195- }
196-
197- void Tabs::resize (const QRect& rect) {
198- QWidget::resize (rect.width (), rect.height ());
199- tabs->resize (rect.width (), rect.height ());
200- }
201-
202- Root::Root (QWidget* parent) :
203- QWidget(parent),
204- root(new QQuickWidget(QUrl(" qrc:/app/Root.qml" ), this)) {
205-
206- root->setResizeMode (QQuickWidget::SizeRootObjectToView);
207- root->setSizePolicy (QSizePolicy::Expanding, QSizePolicy::Expanding);
208- rootObject = root->rootObject ();
209- }
210-
211- void Root::resize (const QRect& rect) {
212- QWidget::resize (rect.width (), rect.height ());
213- root->resize (rect.width (), rect.height ());
214- }
215-
216- Preview::Preview (QWidget* parent) :
217- QWidget(parent),
218- printer(new QPrinter{}),
219- preview(new QPrintPreviewWidget(printer.get(), this))
220- {
221- printer->setPaperSize (QPrinter::Letter);
222- printer->setOrientation (QPrinter::Portrait);
223- printer->setFullPage (false );
224-
225- QObject::connect (preview,
226- SIGNAL (paintRequested (QPrinter*)),
227- this ,
228- SLOT (print (QPrinter*)));
229- }
230-
231- void Preview::print (QPrinter* printer) {
232- QPainter painter (printer);
233- painter.setRenderHints (QPainter::Antialiasing |
234- QPainter::TextAntialiasing |
235- QPainter::SmoothPixmapTransform);
236-
237- QFile f;
238- f.setFileName (" :/app/test.pdf" );
239- f.open (QIODevice::ReadOnly);
240- QByteArray pdf=f.readAll ();
241-
242- Poppler::Document *document = Poppler::Document::loadFromData (pdf);
243- if (!document)
244- qCritical (" File '%s' does not exist!" , qUtf8Printable (" :/app/test.pdf" ));
245- if (document->isLocked ())
246- qCritical (" File %s is locked!" , qUtf8Printable (" :/app/test.pdf" ));
247-
248- pageCount = document->numPages ();
249-
250- Poppler::Page *page = document->page (pageNumber);
251- if (page == nullptr )
252- qCritical (" File '%s' is empty?" , qUtf8Printable (" :/app/test.pdf" ));
253-
254- QImage image = page->renderToImage (72.0 , 72.0 , 0 , 0 , page->pageSize ().width (), page->pageSize ().height ());
255- if (image.isNull ())
256- qCritical (" Error!" );
257-
258- paperHeight = page->pageSize ().height ();
259- previewPainted = true ;
260-
261- painter.drawImage (0 , 0 , image, 0 , 0 , 0 , 0 , 0 );
262- painter.end ();
263- }
264-
265- void Preview::setZoom (qreal zoomFactor) {
266- if (previewPainted)
267- preview->setZoomFactor (zoomFactor * (widgetHeight / paperHeight));
268- preview->updatePreview ();
269- currentZoomFactor = zoomFactor;
270- }
271-
272- void Preview::showNextPage () {
273- pageNumber = pageNumber < (pageCount - 1 ) ? pageNumber + 1 : pageNumber;
274- preview->updatePreview ();
275- }
276-
277- void Preview::showPrevPage () {
278- pageNumber = pageNumber > 0 ? pageNumber - 1 : pageNumber;
279- preview->updatePreview ();
280- }
281-
282- Controls::Controls (QWidget* parent) :
283- QWidget(parent),
284- controls(new QQuickWidget(QUrl(" qrc:/app/Controls.qml" ), this)) {
285-
286- controls->setResizeMode (QQuickWidget::SizeRootObjectToView);
287- controls->setSizePolicy (QSizePolicy::Expanding, QSizePolicy::Expanding);
288- rootObject = controls->rootObject ();
289- }
290-
291- void Controls::resize (const QRect& rect) {
292- QWidget::resize (rect.width (), rect.height ());
293- controls->resize (rect.width (), rect.height ());
294- }
295-
296178void ui_add_job_hold_until (char *startJobOption) {}
297179
298180void ui_add_maximum_print_copies (char *_copies) {}
0 commit comments