[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdegraphics
From: Wilfried Huss <Wilfried.Huss () gmx ! at>
Date: 2004-11-16 17:01:33
Message-ID: 20041116170133.14A3616BA1 () office ! kde ! org
[Download RAW message or body]
CVS commit by whuss:
Move towards a sane API for KMultiPage.
M +4 -9 kdvi/kdvi_multipage.cpp 1.150
M +21 -1 kviewshell/kmultipage.cpp 1.28
M +12 -2 kviewshell/kmultipage.h 1.38
--- kdegraphics/kviewshell/kmultipage.cpp #1.27:1.28
@@ -626,2 +625,23 @@ double KMultiPage::setZoom(double zoom)
return zoom;
}
+
+
+void KMultiPage::setRenderer(DocumentRenderer* _renderer)
+{
+ renderer = _renderer;
+
+ // Initialize DocumentPageCache.
+ currentPage.setRenderer(renderer);
+
+ // Clear widget list.
+ widgetList.resize(0);
+
+ // Relay signals.
+ connect(renderer, SIGNAL(setStatusBarText(const QString&)),
+ this, SIGNAL(setStatusBarText(const QString&)));
+ connect(renderer, SIGNAL(documentSpecifiedPageSize(const pageSize&)),
+ this, SIGNAL(documentSpecifiedPageSize(const pageSize&)));
+
+ connect(renderer, SIGNAL(needsRepainting()),
+ this, SLOT(repaintAllVisibleWidgets()));
+}
--- kdegraphics/kviewshell/kmultipage.h #1.37:1.38
@@ -133,4 +133,12 @@ protected:
virtual void enableActions(bool) {};
+ /** Initializes all data structures that need to know the renderer.
+ This funktion must be called in the constructor of multipage
+ implementations. */
+ void setRenderer(DocumentRenderer*);
+
+ /** Returns a pointer to the renderer. */
+ DocumentRenderer* getRenderer() { return renderer; };
+
public slots:
/** Reloads the file form disk and redisplays. */
@@ -199,5 +207,4 @@ protected:
QPtrVector<QWidget> widgetList;
- DocumentRenderer* renderer;
DocumentPageCache currentPage;
@@ -210,4 +217,7 @@ protected:
private:
+ /** Is set by setRenderer. */
+ DocumentRenderer* renderer;
+
CenteringScrollview *_scrollView;
};
--- kdegraphics/kdvi/kdvi_multipage.cpp #1.149:1.150
@@ -100,12 +100,7 @@ KDVIMultiPage::KDVIMultiPage(QWidget *pa
// Points to the same object as renderer to avoid downcasting.
// FIXME: Remove when the API of the Renderer-class is finished.
- renderer = window;
window->setName("DVI renderer");
- currentPage.setRenderer(window);
+ setRenderer(window);
- widgetList.resize(0);
- connect(window, SIGNAL(setStatusBarText( const QString& ) ), this, SIGNAL( \
setStatusBarText( const QString& ) ) );
- connect(window, SIGNAL(documentSpecifiedPageSize(const pageSize&)), this, SIGNAL( \
documentSpecifiedPageSize(const pageSize&)) );
- connect(window, SIGNAL(needsRepainting()), this, \
SLOT(repaintAllVisibleWidgets())); docInfoAction = new KAction(i18n("Document \
&Info"), 0, window, SLOT(showInfo()), actionCollection(), "info_dvi");
@@ -795,9 +790,9 @@ DocumentWidget* KDVIMultiPage::createDoc
// TODO: handle different sizes per page.
DVIWidget* documentWidget = new DVIWidget(scrollView()->viewport(), scrollView(),
- renderer->sizeOfPage(/*page+*/1), ¤tPage,
+ getRenderer()->sizeOfPage(/*page+*/1), ¤tPage,
&userSelection, "singlePageWidget" );
// Handle source links
- connect(documentWidget, SIGNAL(SRCLink(const QString&,QMouseEvent *, \
DocumentWidget *)), renderer, + connect(documentWidget, SIGNAL(SRCLink(const \
QString&,QMouseEvent *, DocumentWidget *)), getRenderer(),
SLOT(handleSRCLink(const QString &,QMouseEvent *, DocumentWidget *)));
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic