From 1bdf1419ea8eefebc9d7c9c154100a591e1fffdd Mon Sep 17 00:00:00 2001 From: Andreas Butti Date: Fri, 7 Dec 2018 15:45:23 +0100 Subject: [PATCH] Readme updated, PDF Page interface --- README.md | 9 ------ .../backgroundSelect/PdfElementView.cpp | 8 +++-- .../dialog/backgroundSelect/PdfElementView.h | 6 ++-- src/pdf/base/XojPdfPage.cpp | 11 +++++++ src/pdf/base/XojPdfPage.h | 32 +++++++++++++++++++ .../popplerdirect/poppler/XojPopplerPage.h | 4 ++- src/util/XournalTypeList.h | 5 +++ 7 files changed, 59 insertions(+), 16 deletions(-) create mode 100644 src/pdf/base/XojPdfPage.cpp create mode 100644 src/pdf/base/XojPdfPage.h diff --git a/README.md b/README.md index 1b8a50d5..66627c0a 100644 --- a/README.md +++ b/README.md @@ -98,12 +98,6 @@ To install all needed files execute: ```bash make install ``` - -If you want to install desktop file and thumbnailer execute: -```bash -make desktop-install -``` - ## Code documentation The code documentation is generated using Doxygen. @@ -120,9 +114,6 @@ The documentation can be found in `doc/html` and `doc/latex`. Conveniently displ documentation with `python3 -m http.server 8000` and visit the shown URL to view the documentation. -The website https://cypax.net/tutorials/doxygen/ provides a good introduction to Doxygen -and how to document code with it. - ## Fileformat The fileformat *.xopp is an XML which is .gz compressed. PDFs are not embedded into the file, so if the PDF is deleted, the background is lost. diff --git a/src/gui/dialog/backgroundSelect/PdfElementView.cpp b/src/gui/dialog/backgroundSelect/PdfElementView.cpp index 273b68d2..37933388 100644 --- a/src/gui/dialog/backgroundSelect/PdfElementView.cpp +++ b/src/gui/dialog/backgroundSelect/PdfElementView.cpp @@ -2,11 +2,13 @@ #include "PdfPagesDialog.h" -#include "pdf/popplerdirect/poppler/XojPopplerPage.h" +#include "pdf/base/XojPdfPage.h" -PdfElementView::PdfElementView(int id, XojPopplerPage* page, PdfPagesDialog* dlg) -: BaseElementView(id, dlg), page(page), used(false) +PdfElementView::PdfElementView(int id, XojPdfPage* page, PdfPagesDialog* dlg) + : BaseElementView(id, dlg), + page(page), + used(false) { XOJ_INIT_TYPE(PdfElementView); } diff --git a/src/gui/dialog/backgroundSelect/PdfElementView.h b/src/gui/dialog/backgroundSelect/PdfElementView.h index 0c5ff1f2..4621af5a 100644 --- a/src/gui/dialog/backgroundSelect/PdfElementView.h +++ b/src/gui/dialog/backgroundSelect/PdfElementView.h @@ -15,13 +15,13 @@ #include -class XojPopplerPage; +class XojPdfPage; class PdfPagesDialog; class PdfElementView : public BaseElementView { public: - PdfElementView(int id, XojPopplerPage* page, PdfPagesDialog* dlg); + PdfElementView(int id, XojPdfPage* page, PdfPagesDialog* dlg); ~PdfElementView(); protected: @@ -49,7 +49,7 @@ public: private: XOJ_TYPE_ATTRIB; - XojPopplerPage* page; + XojPdfPage* page; /** * This page is already used as background diff --git a/src/pdf/base/XojPdfPage.cpp b/src/pdf/base/XojPdfPage.cpp new file mode 100644 index 00000000..9111aa34 --- /dev/null +++ b/src/pdf/base/XojPdfPage.cpp @@ -0,0 +1,11 @@ +#include "XojPdfPage.h" + +XojPdfPage::XojPdfPage() +{ + XOJ_INIT_TYPE(XojPdfPage); +} + +XojPdfPage::~XojPdfPage() +{ + XOJ_RELEASE_TYPE(XojPdfPage); +} diff --git a/src/pdf/base/XojPdfPage.h b/src/pdf/base/XojPdfPage.h new file mode 100644 index 00000000..23c5d984 --- /dev/null +++ b/src/pdf/base/XojPdfPage.h @@ -0,0 +1,32 @@ +/* + * Xournal++ + * + * PDF Page Abstraction Interface + * + * @author Xournal++ Team + * https://github.com/xournalpp/xournalpp + * + * @license GNU GPLv2 or later + */ + +#pragma once + +#include + +#include + +class XojPdfPage +{ +public: + XojPdfPage(); + virtual ~XojPdfPage(); + +public: + virtual double getWidth() = 0; + virtual double getHeight() = 0; + + virtual void render(cairo_t* cr, bool forPrinting = false) = 0; + +private: + XOJ_TYPE_ATTRIB; +}; diff --git a/src/pdf/popplerdirect/poppler/XojPopplerPage.h b/src/pdf/popplerdirect/poppler/XojPopplerPage.h index 91542826..e91ea8d1 100644 --- a/src/pdf/popplerdirect/poppler/XojPopplerPage.h +++ b/src/pdf/popplerdirect/poppler/XojPopplerPage.h @@ -17,7 +17,9 @@ #include #include #include + #include "pdf/popplerdirect/workaround/workaround.h" +#include "pdf/base/XojPdfPage.h" #include #include @@ -29,7 +31,7 @@ class TextPage; class Annots; class XojPopplerImage; -class XojPopplerPage +class XojPopplerPage : public XojPdfPage { private: XojPopplerPage(PDFDoc* doc, GMutex* docMutex, CairoOutputDev* outputDev, Page* page, int index); diff --git a/src/util/XournalTypeList.h b/src/util/XournalTypeList.h index a0f95abf..0531b1ff 100644 --- a/src/util/XournalTypeList.h +++ b/src/util/XournalTypeList.h @@ -245,3 +245,8 @@ XOJ_DECLARE_TYPE(DottedBackgroundPainter, 233); XOJ_DECLARE_TYPE(BaseBackgroundPainter, 234); XOJ_DECLARE_TYPE(BackgroundConfig, 235); XOJ_DECLARE_TYPE(RotateUndoAction, 236); +XOJ_DECLARE_TYPE(XojPdfPage, 237); + + + +