[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/kviewshell-0.7/kviewshell
From:       Wilfried Huss <Wilfried.Huss () gmx ! at>
Date:       2006-05-07 17:38:41
Message-ID: 1147023521.588945.3743.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 538376 by whuss:

Reenable inverse search for the dvi-plugin, without the need to subclass the PageCache.
Inverse search for the pdf-plugin is still disabled.

 M  +7 -0      plugins/dvi/kdvi_multipage.cpp  
 M  +3 -0      plugins/dvi/kdvi_multipage.h  
 M  +17 -0     plugins/pdf/pdfMultipage.cpp  
 M  +3 -0      plugins/pdf/pdfMultipage.h  
 M  +7 -10     shell/documentPageCache.cpp  
 M  +4 -6      shell/documentPageCache.h  
 M  +7 -8      shell/kmultipage.cpp  
 M  +5 -6      shell/kmultipage.h  
 M  +3 -3      shell/kviewpart.cpp  


--- branches/work/kviewshell-0.7/kviewshell/plugins/dvi/kdvi_multipage.cpp #538375:538376
@@ -10,6 +10,7 @@
 #include "optionDialogSpecialWidget.h"
 #include "performanceMeasurement.h"
 #include "prefs.h"
+#include "renderedDviPagePixmap.h"
 
 #include <kaboutdata.h>
 #include <kaction.h>
@@ -406,6 +407,12 @@
 }
 
 
+RenderedDocumentPagePixmap* KDVIMultiPage::createDocumentPagePixmap(JobId id) const
+{
+  return new RenderedDviPagePixmap(id);
+}
+
+
 void KDVIMultiPage::showFindTextDialog()
 {
 #warning FIXME
--- branches/work/kviewshell-0.7/kviewshell/plugins/dvi/kdvi_multipage.h #538375:538376
@@ -4,6 +4,7 @@
 
 #include "dviRenderer.h"
 #include "kmultipage.h"
+#include "renderedDocumentPagePixmap.h"
 
 #include <qstringlist.h>
 
@@ -39,6 +40,8 @@
 
   virtual DocumentWidget* createDocumentWidget(PageView *parent, DocumentPageCache *cache);
 
+  virtual RenderedDocumentPagePixmap* createDocumentPagePixmap(JobId) const;
+
 private:
   /** Used to enable the export menu when a file is successfully
       loaded. */
--- branches/work/kviewshell-0.7/kviewshell/plugins/pdf/pdfMultipage.cpp #538375:538376
@@ -126,4 +126,21 @@
   //configDialog->setHelp("preferences", "pdf");
 }
 
+
+void PdfMultiPage::inverseSearch(const PageNumber& pageNumber, QPoint point, bool call)
+{
+// FIXME
+/*
+  Length x;
+  Length y;
+
+  x.setLength_in_inch((double)(point.x()) / getResolution());
+  y.setLength_in_inch((double)(point.y()) / getResolution());
+
+  PdfRenderer* pdfRenderer = static_cast<PdfRenderer*>((DocumentRenderer*)(renderer));
+  pdfRenderer->inverseSearch(pageNumber, x, y, call);
+*/
+}
+
+
 #include "pdfMultipage.moc"
--- branches/work/kviewshell-0.7/kviewshell/plugins/pdf/pdfMultipage.h #538375:538376
@@ -128,6 +128,9 @@
   virtual void setFile(bool success);
   virtual void enableActions(bool);
 
+private slots:
+  void inverseSearch(const PageNumber& pageNumber, QPoint point, bool call);
+
  private:
   /** This member holds the renderer which is used by the demo implementation */
   PdfRenderer     pdfRenderer;
--- branches/work/kviewshell-0.7/kviewshell/shell/documentPageCache.cpp #538375:538376
@@ -14,6 +14,7 @@
 
 #include "documentPageCache.h"
 #include "documentRenderer.h"
+#include "kmultipage.h"
 #include "kvs_debug.h"
 #include "kvsprefs.h"
 #include "renderedDocumentPagePixmap.h"
@@ -58,13 +59,15 @@
 }
 
 
-void DocumentPageCache::setRenderer(DocumentRenderer *_renderer)
+void DocumentPageCache::setMultiPage(KMultiPage* _multiPage)
 {
   // When we set a new renderer the old cache contents
   // will definitly not be needed anymore.
   clear();
   renderQueue->clear();
-  renderer = _renderer;
+
+  multiPage = _multiPage;
+  renderer = multiPage->getRenderer();
   renderThread->setRenderer(renderer);
 }
 
@@ -171,7 +174,7 @@
   QString key = id.key();
   if (LRUCache.find(key, false) == false)
   {
-    RenderedDocumentPagePixmap* previousPage = createDocumentPagePixmap(id);
+    RenderedDocumentPagePixmap* previousPage = multiPage->createDocumentPagePixmap(id);
     if (previousPage)
     {
       previousPage->resize(sizeOfPageInPixel(pageNumber));
@@ -296,7 +299,7 @@
 
   // The page was not found in the cache, so we have to make a new
   // page and add this to the cache.
-  page = createDocumentPagePixmap(id);
+  page = multiPage->createDocumentPagePixmap(id);
 
   // If that failed, issue an error message and quit.
   if (page == 0) {
@@ -336,12 +339,6 @@
 }
 
 
-RenderedDocumentPagePixmap* DocumentPageCache::createDocumentPagePixmap(JobId id) const
-{
- return new RenderedDocumentPagePixmap(id);
-}
-
-
 void DocumentPageCache::clear()
 {
   LRUCache.clear();
--- branches/work/kviewshell-0.7/kviewshell/shell/documentPageCache.h #538375:538376
@@ -24,6 +24,7 @@
 #include <qobject.h>
 
 class DocumentRenderer;
+class KMultiPage;
 class QPixmap;
 class RenderedDocumentPage;
 class RenderQueue;
@@ -51,7 +52,7 @@
       used any time (e.g., triggered by an internal timer event), and
       must not be deleted before either the DocumentRenderer is
       deleted, or another renderer has been set. */
-  void     setRenderer(DocumentRenderer *_renderer);
+  void setMultiPage(KMultiPage*);
 
   void     setResolution(double res);
   double   getResolution() const {return resolutionInDPI;}
@@ -115,12 +116,9 @@
   void setUseDocumentSpecifiedSize(bool);
 
  protected:
-  /** This function creates new RenderedDocumentPagePixmap objects.
-      If a multipage implementation needs additional functionality overwrite
-      this function to create objects of a suitable subclass of RenderedDocumentPagePixmap.
-  */
-  virtual RenderedDocumentPagePixmap* createDocumentPagePixmap(JobId) const;
 
+
+  QGuardedPtr<KMultiPage> multiPage;
   QGuardedPtr<DocumentRenderer> renderer;
 
   void customEvent(QCustomEvent*);
--- branches/work/kviewshell-0.7/kviewshell/shell/kmultipage.cpp #538375:538376
@@ -2,7 +2,6 @@
 #include <config.h>
 
 #include "dataModel.h"
-#include "documentPageCache.h"
 #include "documentWidget.h"
 #include "kmultipage.h"
 #include "kprintDialogPage_pageoptions.h"
@@ -152,6 +151,13 @@
   return documentWidget;
 }
 
+
+RenderedDocumentPagePixmap* KMultiPage::createDocumentPagePixmap(JobId id) const
+{
+ return new RenderedDocumentPagePixmap(id);
+}
+
+
 void KMultiPage::print()
 {
   // Paranoid safety checks
@@ -260,13 +266,6 @@
 }
 
 
-DocumentPageCache* KMultiPage::initializePageCache()
-{
-  DocumentPageCache* pageCache = new DocumentPageCache();
-  return pageCache;
-}
-
-
 bool KMultiPage::openFile()
 {
   if (renderer.isNull()) {
--- branches/work/kviewshell-0.7/kviewshell/shell/kmultipage.h #538375:538376
@@ -231,6 +231,11 @@
      place to connect to signals emitted by DocumentWidget. */
   virtual DocumentWidget* createDocumentWidget(PageView *parent, DocumentPageCache *cache);
 
+  /** This function creates new RenderedDocumentPagePixmap objects.
+      If a multipage implementation needs additional functionality overwrite
+      this function to create objects of a suitable subclass of RenderedDocumentPagePixmap.
+  */
+  virtual RenderedDocumentPagePixmap* createDocumentPagePixmap(JobId) const;
 
   /** Update GUI after loading or closing of a file
 
@@ -252,12 +257,6 @@
       disable menu items, etc. */
   virtual void setFile(bool success);
 
-  /** This function creates the page cache. If a multipage implementation needs
-     additional functionaly from the cache overwrite this function to create a
-     subclass of DocumentPageCache.
-     @warning This function is called by the constructor, never call it explicitly.
-  */
-  virtual DocumentPageCache* initializePageCache();
 
 protected:
   /* Used to enable/disable Actions of multiPage implementations.
--- branches/work/kviewshell-0.7/kviewshell/shell/kviewpart.cpp #538375:538376
@@ -432,6 +432,9 @@
 
   pageView()->setMultiPage(multiPage);
 
+  // Initialize documentPageCache.
+  pageCache.setMultiPage(multiPage);
+
   // allow parts to have a GUI, too :-)
   // (will be merged automatically)
   insertChildClient( multiPage );
@@ -851,9 +854,6 @@
     // Setup shared data
     multiPage->setupObservers(dataModel);
 
-    // Initialize documentPageCache.
-    pageCache.setRenderer(multiPage->getRenderer());
-
     // Clear the page view.
     pageView()->clear();
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic