[poppler] 3 commits - poppler/Catalog.cc poppler/Catalog.h poppler/ViewerPreferences.cc

Pino Toscano pino at kemper.freedesktop.org
Tue Mar 29 01:00:32 PDT 2011


 poppler/Catalog.cc           |   24 +++++++++---------------
 poppler/Catalog.h            |    3 ++-
 poppler/ViewerPreferences.cc |    6 +-----
 3 files changed, 12 insertions(+), 21 deletions(-)

New commits:
commit 1dd88d0b6b7cbfda76e81902a351c89457a061a8
Author: Pino Toscano <pino at kde.org>
Date:   Tue Mar 29 09:58:10 2011 +0200

    read the ViewerPreferences dict once, and construct ViewerPreferences on demand
    
    this way it is possible to know whether the ViewerPreferences dictionary is present in the Catalog

diff --git a/poppler/Catalog.cc b/poppler/Catalog.cc
index 68bb8fc..cb41e92 100644
--- a/poppler/Catalog.cc
+++ b/poppler/Catalog.cc
@@ -76,7 +76,7 @@ Catalog::Catalog(XRef *xrefA) {
   destNameTree = NULL;
   embeddedFileNameTree = NULL;
   jsNameTree = NULL;
-  viewerPreferences = NULL;
+  viewerPrefs = NULL;
 
   pagesList = NULL;
   pagesRefList = NULL;
@@ -111,6 +111,9 @@ Catalog::Catalog(XRef *xrefA) {
   }
   optContentProps.free();
 
+  // get the ViewerPreferences dictionary
+  catDict.dictLookup("ViewerPreferences", &viewerPreferences);
+
   // perform form-related loading after all widgets have been loaded
   if (getForm())
     getForm()->postWidgetsLoad(this);
@@ -162,7 +165,7 @@ Catalog::~Catalog() {
   delete pageLabelInfo;
   delete form;
   delete optContent;
-  delete viewerPreferences;
+  delete viewerPrefs;
   metadata.free();
   structTreeRoot.free();
   outline.free();
@@ -966,22 +969,13 @@ Form *Catalog::getForm()
 
 ViewerPreferences *Catalog::getViewerPreferences()
 {
-  if (!viewerPreferences) {
-    Object catDict;
-    Dict *d = NULL;
-
-    xref->getCatalog(&catDict);
-    if (catDict.isDict()) {
-      d = catDict.getDict();
-    } else {
-      error(-1, "Catalog object is wrong type (%s)", catDict.getTypeName());
+  if (!viewerPrefs) {
+    if (viewerPreferences.isDict()) {
+      viewerPrefs = new ViewerPreferences(viewerPreferences.getDict());
     }
-    viewerPreferences = new ViewerPreferences(d);
-
-    catDict.free();
   }
 
-  return viewerPreferences;
+  return viewerPrefs;
 }
 
 Object *Catalog::getNames()
diff --git a/poppler/Catalog.h b/poppler/Catalog.h
index fb12850..94c6bdd 100644
--- a/poppler/Catalog.h
+++ b/poppler/Catalog.h
@@ -243,7 +243,7 @@ private:
   std::vector<PageAttrs *> *attrsList;
   std::vector<int> *kidsIdxList;
   Form *form;
-  ViewerPreferences *viewerPreferences;
+  ViewerPreferences *viewerPrefs;
   int numPages;			// number of pages
   int pagesSize;		// size of pages array
   Object dests;			// named destination dictionary
@@ -256,6 +256,7 @@ private:
   Object structTreeRoot;	// structure tree root dictionary
   Object outline;		// outline dictionary
   Object acroForm;		// AcroForm dictionary
+  Object viewerPreferences;     // ViewerPreference dictionary
   OCGs *optContent;		// Optional Content groups
   GBool ok;			// true if catalog is valid
   PageLabelInfo *pageLabelInfo; // info about page labels
commit f10b0b8c88a7df83ada09f32b6cb6fd930fcb748
Author: Pino Toscano <pino at kde.org>
Date:   Tue Mar 29 09:57:46 2011 +0200

    assume the prefDict is not null

diff --git a/poppler/ViewerPreferences.cc b/poppler/ViewerPreferences.cc
index 33e65b2..bf78db8 100644
--- a/poppler/ViewerPreferences.cc
+++ b/poppler/ViewerPreferences.cc
@@ -19,10 +19,6 @@ ViewerPreferences::ViewerPreferences(Dict *prefDict)
 {
   init();
 
-  if (!prefDict) {
-    return;
-  }
-
   Object obj;
 
   if (prefDict->lookup("HideToolbar", &obj)->isBool()) {
commit d4a5ea45057cad531a8979cf9861ac05cdd56613
Author: Pino Toscano <pino at kde.org>
Date:   Tue Mar 29 09:54:22 2011 +0200

    fix variable name for DisplayDocTitle

diff --git a/poppler/ViewerPreferences.cc b/poppler/ViewerPreferences.cc
index 1c38582..33e65b2 100644
--- a/poppler/ViewerPreferences.cc
+++ b/poppler/ViewerPreferences.cc
@@ -51,7 +51,7 @@ ViewerPreferences::ViewerPreferences(Dict *prefDict)
   obj.free();
 
   if (prefDict->lookup("DisplayDocTitle", &obj)->isBool()) {
-    centerWindow = obj.getBool();
+    displayDocTitle = obj.getBool();
   }
   obj.free();
 


More information about the poppler mailing list