poppler/Annot.cc        |   12 ++++++------
 qt4/src/poppler-form.cc |   26 ++++++++++++++++++++++----
 2 files changed, 28 insertions(+), 10 deletions(-)

New commits:
commit 5005b9c2738046dc7ddc62cf903499aa93cac204
Author: Pino Toscano <[email protected]>
Date:   Sun Feb 27 17:11:53 2011 +0100

    [qt4] fix caption of push button fields
    
    instead of asking the 'onStr' of the underlying form widget,
    take (if available) the 'MK' entry, i.e. the appearance characteristics 
dictionary,
    and use the normal caption of that

diff --git a/qt4/src/poppler-form.cc b/qt4/src/poppler-form.cc
index 6224b68..8353f91 100644
--- a/qt4/src/poppler-form.cc
+++ b/qt4/src/poppler-form.cc
@@ -188,11 +188,29 @@ FormFieldButton::ButtonType FormFieldButton::buttonType() 
const
 QString FormFieldButton::caption() const
 {
   FormWidgetButton* fwb = static_cast<FormWidgetButton*>(m_formData->fm);
-  // HACK push buttons seems to have a null GooString for the caption
+  QString ret;
   if (fwb->getButtonType() == formButtonPush)
-    return QString();
-
-  return fwb->getOnStr() ? QString::fromUtf8(fwb->getOnStr()) : QString();
+  {
+    Dict *dict = m_formData->fm->getObj()->getDict();
+    Object obj1;
+    if (dict->lookup("MK", &obj1)->isDict())
+    {
+      AnnotAppearanceCharacs appearCharacs(obj1.getDict());
+      if (appearCharacs.getNormalCaption())
+      {
+        ret = UnicodeParsedString(appearCharacs.getNormalCaption());
+      }
+    }
+    obj1.free();
+  }
+  else
+  {
+    if (const char *str = fwb->getOnStr())
+    {
+      ret = QString::fromUtf8(str);
+    }
+  }
+  return ret;
 }
 
 bool FormFieldButton::state() const
commit b8aa73d1e0a66e467161f10d11e4d0d66a3336cd
Author: Pino Toscano <[email protected]>
Date:   Sun Feb 27 16:24:22 2011 +0100

    annots: 'CA', 'RC' and 'AC' are strings, not names

diff --git a/poppler/Annot.cc b/poppler/Annot.cc
index 7c0ba8d..1475db3 100644
--- a/poppler/Annot.cc
+++ b/poppler/Annot.cc
@@ -790,22 +790,22 @@ AnnotAppearanceCharacs::AnnotAppearanceCharacs(Dict 
*dict) {
   }
   obj1.free();
 
-  if (dict->lookup("CA", &obj1)->isName()) {
-    normalCaption = new GooString(obj1.getName());
+  if (dict->lookup("CA", &obj1)->isString()) {
+    normalCaption = new GooString(obj1.getString());
   } else {
     normalCaption = NULL;
   }
   obj1.free();
 
-  if (dict->lookup("RC", &obj1)->isName()) {
-    rolloverCaption = new GooString(obj1.getName());
+  if (dict->lookup("RC", &obj1)->isString()) {
+    rolloverCaption = new GooString(obj1.getString());
   } else {
     rolloverCaption = NULL;
   }
   obj1.free();
 
-  if (dict->lookup("AC", &obj1)->isName()) {
-    alternateCaption = new GooString(obj1.getName());
+  if (dict->lookup("AC", &obj1)->isString()) {
+    alternateCaption = new GooString(obj1.getString());
   } else {
     alternateCaption = NULL;
   }
_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to