[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