summaryrefslogtreecommitdiff
path: root/Build/source/libs/poppler/poppler-0.12.4/qt4/demos/pageview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/poppler/poppler-0.12.4/qt4/demos/pageview.cpp')
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt4/demos/pageview.cpp79
1 files changed, 79 insertions, 0 deletions
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt4/demos/pageview.cpp b/Build/source/libs/poppler/poppler-0.12.4/qt4/demos/pageview.cpp
new file mode 100644
index 00000000000..734dacb1ff0
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt4/demos/pageview.cpp
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2008-2009, Pino Toscano <pino@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "pageview.h"
+
+#include <poppler-qt4.h>
+
+#include <QtGui/QApplication>
+#include <QtGui/QDesktopWidget>
+#include <QtGui/QImage>
+#include <QtGui/QLabel>
+#include <QtGui/QPixmap>
+
+PageView::PageView(QWidget *parent)
+ : QScrollArea(parent)
+ , m_zoom(1.0)
+ , m_dpiX(QApplication::desktop()->physicalDpiX())
+ , m_dpiY(QApplication::desktop()->physicalDpiY())
+{
+ m_imageLabel = new QLabel(this);
+ m_imageLabel->resize(0, 0);
+ setWidget(m_imageLabel);
+}
+
+PageView::~PageView()
+{
+}
+
+void PageView::documentLoaded()
+{
+}
+
+void PageView::documentClosed()
+{
+ m_imageLabel->clear();
+ m_imageLabel->resize(0, 0);
+}
+
+void PageView::pageChanged(int page)
+{
+ Poppler::Page *popplerPage = document()->page(page);
+ const double resX = m_dpiX * m_zoom;
+ const double resY = m_dpiY * m_zoom;
+ QImage image = popplerPage->renderToImage(resX, resY);
+ if (!image.isNull()) {
+ m_imageLabel->resize(image.size());
+ m_imageLabel->setPixmap(QPixmap::fromImage(image));
+ } else {
+ m_imageLabel->resize(0, 0);
+ m_imageLabel->setPixmap(QPixmap());
+ }
+ delete popplerPage;
+}
+
+void PageView::slotZoomChanged(qreal value)
+{
+ m_zoom = value;
+ if (!document()) {
+ return;
+ }
+ reloadPage();
+}
+
+#include "pageview.moc"