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

List:       kde-commits
Subject:    KDE/kdegraphics/kviewshell
From:       Wilfried Huss <Wilfried.Huss () gmx ! at>
Date:       2006-05-07 17:50:42
Message-ID: 1147024242.070244.5732.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 538384 by whuss:

port of commit 538376:

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

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


--- trunk/KDE/kdegraphics/kviewshell/plugins/dvi/kdvi_multipage.cpp #538383:538384
@@ -11,6 +11,7 @@
 #include "optionDialogSpecialWidget.h"
 #include "performanceMeasurement.h"
 #include "prefs.h"
+#include "renderedDviPagePixmap.h"
 
 #include <kaboutdata.h>
 #include <kaction.h>
@@ -415,10 +416,9 @@
 }
 
 
-void KDVIMultiPage::initializePageCache()
+RenderedDocumentPagePixmap* KDVIMultiPage::createDocumentPagePixmap(JobId id) const
 {
-#warning this method is no longer needed, I guess
-  //  pageCache = new DVIPageCache();
+  return new RenderedDviPagePixmap(id);
 }
 
 
--- trunk/KDE/kdegraphics/kviewshell/plugins/dvi/kdvi_multipage.h #538383:538384
@@ -4,6 +4,7 @@
 
 #include "dviRenderer.h"
 #include "kmultipage.h"
+#include "renderedDocumentPagePixmap.h"
 
 #include <QStringList>
 
@@ -37,11 +38,11 @@
 
   static KAboutData* createAboutData();
 
-private:
   virtual DocumentWidget* createDocumentWidget(PageView *parent, DocumentPageCache *cache);
 
-  virtual void initializePageCache();
+  virtual RenderedDocumentPagePixmap* createDocumentPagePixmap(JobId) const;
 
+private:
   /** Used to enable the export menu when a file is successfully
       loaded. */
   virtual void enableActions(bool);
--- trunk/KDE/kdegraphics/kviewshell/plugins/pdf/pdfMultipage.cpp #538383:538384
@@ -122,11 +122,6 @@
   return documentWidget;
 }
 
-void PdfMultiPage::initializePageCache()
-{
-#warning do we really need this method?
-  //  pageCache = new PdfPageCache();
-}
 
 void PdfMultiPage::addConfigDialogs(KConfigDialog* configDialog)
 {
@@ -136,4 +131,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"
--- trunk/KDE/kdegraphics/kviewshell/plugins/pdf/pdfMultipage.h #538383:538384
@@ -120,15 +120,15 @@
 
   virtual void addConfigDialogs(KConfigDialog* configDialog);
 
+  virtual DocumentWidget* createDocumentWidget(PageView *parent, DocumentPageCache *cache);
+
 protected:
   virtual void setFile(bool success);
   virtual void enableActions(bool);
 
-private:
-  virtual DocumentWidget* createDocumentWidget(PageView *parent, DocumentPageCache *cache);
+private slots:
+  void inverseSearch(const PageNumber& pageNumber, QPoint point, bool call);
 
-  virtual void initializePageCache();
-
  private:
   /** This member holds the renderer which is used by the demo implementation */
   PdfRenderer     pdfRenderer;
--- trunk/KDE/kdegraphics/kviewshell/shell/documentPageCache.cpp #538383:538384
@@ -14,6 +14,7 @@
 
 #include "documentPageCache.h"
 #include "documentRenderer.h"
+#include "kmultipage.h"
 #include "kvs_debug.h"
 #include "kvsprefs.h"
 #include "renderQueue.h"
@@ -56,13 +57,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);
 }
 
@@ -169,7 +172,7 @@
   QString key = id.key();
   if (!LRUCache[key])
   {
-    RenderedDocumentPagePixmap* previousPage = createDocumentPagePixmap(id);
+    RenderedDocumentPagePixmap* previousPage = multiPage->createDocumentPagePixmap(id);
     if (previousPage)
     {
       previousPage->resize(sizeOfPageInPixel(pageNumber));
@@ -294,7 +297,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) {
@@ -333,12 +336,6 @@
 }
 
 
-RenderedDocumentPagePixmap* DocumentPageCache::createDocumentPagePixmap(JobId id) const
-{
- return new RenderedDocumentPagePixmap(id);
-}
-
-
 void DocumentPageCache::clear()
 {
   LRUCache.clear();
--- trunk/KDE/kdegraphics/kviewshell/shell/documentPageCache.h #538383:538384
@@ -25,6 +25,7 @@
 #include <QPointer>
 
 class DocumentRenderer;
+class KMultiPage;
 class QPixmap;
 class RenderedDocumentPage;
 class RenderQueue;
@@ -52,7 +53,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;}
@@ -116,12 +117,7 @@
   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;
-
+  QPointer<KMultiPage> multiPage;
   QPointer<DocumentRenderer> renderer;
 
   void customEvent(QEvent*);
--- trunk/KDE/kdegraphics/kviewshell/shell/kmultipage.cpp #538383:538384
@@ -151,7 +151,12 @@
   return documentWidget;
 }
 
+RenderedDocumentPagePixmap* KMultiPage::createDocumentPagePixmap(JobId id) const
+{
+ return new RenderedDocumentPagePixmap(id);
+}
 
+
 void KMultiPage::print()
 {
   // Paranoid safety checks
--- trunk/KDE/kdegraphics/kviewshell/shell/kmultipage.h #538383:538384
@@ -230,6 +230,12 @@
      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
 
       This method is called by openFile() when a new file was loaded,
--- trunk/KDE/kdegraphics/kviewshell/shell/kviewpart.cpp #538383:538384
@@ -466,6 +466,9 @@
 
   pageView()->setMultiPage(multiPage);
 
+  // Initialize documentPageCache.
+  pageCache.setMultiPage(multiPage);
+
   // allow parts to have a GUI, too :-)
   // (will be merged automatically)
   insertChildClient( multiPage );
@@ -896,10 +899,6 @@
     // Setup shared data
     multiPage->setupObservers(dataModel);
 
-    // Initialize documentPageCache.
-    pageCache.setRenderer(multiPage->getRenderer());
-    _markList->clear();
-
     // 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