[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdegraphics/kviewshell/shell
From: Wilfried Huss <Wilfried.Huss () gmx ! at>
Date: 2005-11-24 18:30:53
Message-ID: 1132857053.687095.15125.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 483004 by whuss:
Port of commit 482999
Allow the plugins to set the transition effect for each page.
M +26 -26 presentationwidget.cpp
M +2 -1 presentationwidget.h
M +17 -1 renderedDocumentPage.cpp
M +13 -0 renderedDocumentPage.h
--- trunk/KDE/kdegraphics/kviewshell/shell/presentationwidget.cpp #483003:483004
@@ -433,13 +433,35 @@
// opens the painter over the pixmap
QPainter pixmapPainter;
pixmapPainter.begin( &m_lastRenderedPixmap );
+
+ const KPDFPageTransition* transition = 0;
+
// generate welcome page
if ( m_frameIndex == -1 )
generateIntroPage( pixmapPainter );
// generate a normal pixmap with extended margin filling
if ( m_frameIndex >= 0 && m_frameIndex < m_cache->totalPages() )
{
- generateContentsPage( m_frameIndex, pixmapPainter );
+ PresentationFrame * frame = m_frames[m_frameIndex];
+
+ // translate painter and contents rect
+ QRect geom( frame->geometry );
+
+ SimplePageSize pageSize = m_cache->sizeOfPage(frame->page);
+ if (KVSPrefs::rotation() == KVSPrefs::EnumRotation::Landscape ||
+ KVSPrefs::rotation() == KVSPrefs::EnumRotation::Seascape)
+ {
+ pageSize = pageSize.rotate90();
+ }
+ double zoomWidth = pageSize.zoomForWidth(m_width, *this);
+ double zoomHeight = pageSize.zoomForHeight(m_height, *this);
+ double zoom = qMin(zoomWidth, zoomHeight);
+
+ m_cache->setResolution(QPaintDevice::x11AppDpiX()*zoom);
+ RenderedDocumentPagePixmap* pageData = m_cache->getPage(frame->page);
+
+ generateContentsPage(pageData, pixmapPainter);
+ transition = pageData->transition();
}
pixmapPainter.end();
@@ -450,10 +472,6 @@
#endif
// start transition on pages that have one
- //FIXME
- //const KPDFPageTransition * transition = m_frameIndex != -1 ?
- // m_frames[ m_frameIndex ]->page->getTransition() : 0;
- const KPDFPageTransition* transition = 0;
if ( transition )
initTransition( transition );
else {
@@ -523,26 +541,8 @@
}
}
-void PresentationWidget::generateContentsPage( int pageNum, QPainter & p )
+void PresentationWidget::generateContentsPage(RenderedDocumentPagePixmap* pageData, QPainter & p)
{
- PresentationFrame * frame = m_frames[ pageNum ];
-
- // translate painter and contents rect
- QRect geom( frame->geometry );
-
- SimplePageSize pageSize = m_cache->sizeOfPage(frame->page);
- if (KVSPrefs::rotation() == KVSPrefs::EnumRotation::Landscape ||
- KVSPrefs::rotation() == KVSPrefs::EnumRotation::Seascape)
- {
- pageSize = pageSize.rotate90();
- }
- double zoomWidth = pageSize.zoomForWidth(m_width, *this);
- double zoomHeight = pageSize.zoomForHeight(m_height, *this);
- double zoom = qMin(zoomWidth, zoomHeight);
-
- m_cache->setResolution(QPaintDevice::x11AppDpiX()*zoom);
- RenderedDocumentPagePixmap* pageData = m_cache->getPage(frame->page);
-
int pageWidth = pageData->width();
int pageHeight = pageData->height();
if (KVSPrefs::rotation() == KVSPrefs::EnumRotation::Landscape ||
@@ -558,13 +558,13 @@
if (!pageData)
{
- kdError(kvs::shell) << "Could not render page = " << frame->page << endl;
+ //kdError(kvs::shell) << "Could not render page = " << frame->page << endl;
p.fillRect(pageRect, Qt::red);
}
else
{
// Paint widget contents
- kdDebug(kvs::shell) << "draw page " << frame->page << " as presentation" << endl;
+ //kdDebug(kvs::shell) << "draw page " << frame->page << " as presentation" << endl;
p.drawPixmap(translate, pageData->pixmap(), pageRect);
}
--- trunk/KDE/kdegraphics/kviewshell/shell/presentationwidget.h #483003:483004
@@ -17,6 +17,7 @@
#include <QStringList>
#include <QVector>
+class RenderedDocumentPagePixmap;
class DocumentPageCache;
class PresentationFrame;
class QTimer;
@@ -62,7 +63,7 @@
void changePage( int newPage );
void generatePage();
void generateIntroPage( QPainter & p );
- void generateContentsPage( int page, QPainter & p );
+ void generateContentsPage(RenderedDocumentPagePixmap* pageData, QPainter & p);
void generateOverlay();
void initTransition( const KPDFPageTransition *transition );
const KPDFPageTransition defaultTransition() const;
--- trunk/KDE/kdegraphics/kviewshell/shell/renderedDocumentPage.cpp #483003:483004
@@ -8,6 +8,7 @@
#include <config.h>
+#include "pagetransition.h"
#include "renderedDocumentPage.h"
#include "hyperlink.h"
#include "kvs_debug.h"
@@ -18,6 +19,7 @@
RenderedDocumentPage::RenderedDocumentPage()
+ : _transition(0)
{
textBoxList.reserve(250);
pageNr = 0;
@@ -27,7 +29,9 @@
RenderedDocumentPage::~RenderedDocumentPage()
-{}
+{
+ delete _transition;
+}
void RenderedDocumentPage::setPageNumber(const PageNumber& pnr)
@@ -426,5 +430,17 @@
return selection;
}
+
+KPDFPageTransition* RenderedDocumentPage::transition()
+{
+ return _transition;
+}
+
+
+void RenderedDocumentPage::setTransition(KPDFPageTransition* pageTransition)
+{
+ _transition = pageTransition;
+}
+
#include "renderedDocumentPage.moc"
--- trunk/KDE/kdegraphics/kviewshell/shell/renderedDocumentPage.h #483003:483004
@@ -25,7 +25,9 @@
class TextBox;
class TextSelection;
+class KPDFPageTransition;
+
/** @short Represents a page in a document, contains the page's graphical
representation and resolution-dependent information.
@@ -238,6 +240,15 @@
*/
virtual void clear();
+ /** \brief Transition effect of the page
+
+ Returns the transition effect of the page. 0 if no transition is
+ specified for this page.
+ */
+ KPDFPageTransition* transition();
+
+ void setTransition(KPDFPageTransition* pageTransition);
+
private:
/** \brief Page number
@@ -246,6 +257,8 @@
*/
PageNumber pageNr;
+ KPDFPageTransition* _transition;
+
QString pageText;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic