[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), &currentPage, 
+      getRenderer()->sizeOfPage(/*page+*/1), &currentPage, 
       &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