Re: [poppler] Poppler 0.7.1 (0.8 Beta 2) released

2008-02-27 Thread Patrick Spendrin
Vincent Torri schrieb:
> 
> On Wed, 27 Feb 2008, Albert Astals Cid wrote:
> 
>> Available from
>> http://poppler.freedesktop.org/poppler-0.7.1.tar.gz
>>
>> Testing, patches and bug reports welcome.
> 
> It works on Win XP (compiled with MinGW / MSYS)
works on Win XP with cmake based build system too.
Tested with mingw and MS Visual Studio 2005 Express Edition.
> 
> Vincent Torri
Patrick Spendrin


-- 
web: http://windows.kde.org
mailing list:[EMAIL PROTECTED]
irc: #kde-windows (irc.freenode.net)
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler


[poppler] poppler/Makefile.am

2008-02-27 Thread Albert Astals Cid
 poppler/Makefile.am |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit ff938c431799d49325c0f46f1e6cbe1033993a83
Author: Albert Astals Cid <[EMAIL PROTECTED]>
Date:   Wed Feb 27 23:12:53 2008 +0100

do not forget to distribute GlobalParamsWin.cc next time

diff --git a/poppler/Makefile.am b/poppler/Makefile.am
index 77f4f27..d98466b 100644
--- a/poppler/Makefile.am
+++ b/poppler/Makefile.am
@@ -236,4 +236,5 @@ libpoppler_la_SOURCES = \
Sound.cc\
XpdfPluginAPI.cc
 
-EXTRA_DIST = gen-unicode-tables.py
+EXTRA_DIST = gen-unicode-tables.py \
+ GlobalParamsWin.cc
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler


[poppler] glib/demo

2008-02-27 Thread Albert Astals Cid
 glib/demo/images.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 277382b8186d137a9f2a62bc2d22e9f0cda7d923
Author: Albert Astals Cid <[EMAIL PROTECTED]>
Date:   Wed Feb 27 22:56:33 2008 +0100

fix typo

diff --git a/glib/demo/images.c b/glib/demo/images.c
index 8c10561..a389728 100644
--- a/glib/demo/images.c
+++ b/glib/demo/images.c
@@ -248,7 +248,7 @@ pgd_images_create_widget (PopplerDocument *document)
gtk_widget_show (label);
g_free (str);
 
-   button = gtk_button_new_with_label ("Get Imagess");
+   button = gtk_button_new_with_label ("Get Images");
g_signal_connect (G_OBJECT (button), "clicked",
  G_CALLBACK (pgd_images_get_images),
  (gpointer)demo);
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler


[poppler] 3 commits - qt4/src

2008-02-27 Thread Pino Toscano
 qt4/src/poppler-optcontent-private.h |   17 +++--
 qt4/src/poppler-optcontent.cc|   44 ---
 2 files changed, 50 insertions(+), 11 deletions(-)

New commits:
commit 5b2f8f21fca63508570a0c77c6f7221a322e6e57
Merge: 7e65118... 4254f12...
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 22:10:12 2008 +0100

Merge branch 'master' of ssh://[EMAIL PROTECTED]/git/poppler/poppler

commit 7e651186f483976f9833de245b6c7add38e77a16
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 22:03:17 2008 +0100

Properly enable/disable the contents when their parents are changed.

Now, the children maintain the "checked state" they had, when their parent 
is unchecked;
but, they are really disabled, both in the possibility to be checked and in 
the drawing of their associated content [applying the same to their children, 
and so on].

diff --git a/qt4/src/poppler-optcontent-private.h 
b/qt4/src/poppler-optcontent-private.h
index 351e5e5..3a995f0 100644
--- a/qt4/src/poppler-optcontent-private.h
+++ b/qt4/src/poppler-optcontent-private.h
@@ -58,7 +58,7 @@ namespace Poppler
 ~OptContentItem();
 
 QString name() const { return m_name; }
-ItemState state() const { return m_state; }
+ItemState state() const { return m_stateBackup; }
 bool setState(ItemState state, QSet &changedItems);
 
 QList childList() { return m_children; }
@@ -70,13 +70,19 @@ namespace Poppler
 
 void appendRBGroup( RadioButtonGroup *rbgroup );
 
+bool isEnabled() const { return m_enabled; }
+
+QSet recurseListChildren(bool includeMe = false) const;
+
 private:
 OptionalContentGroup *m_group;
 QString m_name;
 ItemState m_state; // true for ON, false for OFF
+ItemState m_stateBackup;
 QList m_children;
 OptContentItem *m_parent;
 QList m_rbGroups;
+bool m_enabled;
   };
 
   class OptContentModelPrivate
diff --git a/qt4/src/poppler-optcontent.cc b/qt4/src/poppler-optcontent.cc
index 1a10c17..9f5894f 100644
--- a/qt4/src/poppler-optcontent.cc
+++ b/qt4/src/poppler-optcontent.cc
@@ -78,6 +78,8 @@ namespace Poppler
 } else {
   m_state = OptContentItem::Off;
 }
+m_stateBackup = m_state;
+m_enabled = true;
   }
 
   OptContentItem::OptContentItem( const QString &label )
@@ -86,10 +88,12 @@ namespace Poppler
 m_name = label;
 m_group = 0;
 m_state = OptContentItem::HeadingOnly;
+m_stateBackup = m_state;
+m_enabled = true;
   }
 
   OptContentItem::OptContentItem() :
-m_parent( 0 )
+m_parent( 0 ), m_enabled(true)
   {
   }
 
@@ -106,7 +110,15 @@ namespace Poppler
   bool OptContentItem::setState(ItemState state, QSet 
&changedItems)
   {
 m_state = state;
+m_stateBackup = m_state;
 changedItems.insert(this);
+QSet empty;
+Q_FOREACH (OptContentItem *child, m_children) {
+  ItemState oldState = child->m_stateBackup;
+  child->setState(state == OptContentItem::On ? child->m_stateBackup : 
OptContentItem::Off, empty);
+  child->m_enabled = state == OptContentItem::On;
+  child->m_stateBackup = oldState;
+}
 if (!m_group) {
   return false;
 }
@@ -128,6 +140,18 @@ namespace Poppler
 child->setParent( this );
   }
 
+  QSet OptContentItem::recurseListChildren(bool includeMe) 
const
+  {
+QSet ret;
+if (includeMe) {
+  ret.insert(const_cast(this));
+}
+Q_FOREACH (OptContentItem *child, m_children) {
+  ret += child->recurseListChildren(true);
+}
+return ret;
+  }
+
   OptContentModelPrivate::OptContentModelPrivate( OptContentModel *qq, OCGs 
*optContent )
 : q(qq)
   {
@@ -330,6 +354,7 @@ namespace Poppler
   if (node->state() != OptContentItem::On) {
 QSet changedItems;
 node->setState(OptContentItem::On, changedItems);
+changedItems += node->recurseListChildren(false);
 QModelIndexList indexes;
 Q_FOREACH (OptContentItem *item, changedItems) {
   indexes.append(d->indexFromItem(item, 0));
@@ -344,6 +369,7 @@ namespace Poppler
   if (node->state() != OptContentItem::Off) {
 QSet changedItems;
 node->setState(OptContentItem::Off, changedItems);
+changedItems += node->recurseListChildren(false);
 QModelIndexList indexes;
 Q_FOREACH (OptContentItem *item, changedItems) {
   indexes.append(d->indexFromItem(item, 0));
@@ -364,11 +390,12 @@ namespace Poppler
 
   Qt::ItemFlags OptContentModel::flags ( const QModelIndex & index ) const
   {
-if (index.column() == 0) {
-  return QAbstractItemModel::flags(index) | Qt::ItemIsSelectable | 
Qt::ItemIsUserCheckable | Qt::ItemIsEnabled;
-} else {
-  return QAbstractItemModel::flags(index);
+OptContentItem *node = d->nodeFromIndex(index);
+Qt::ItemFlags itemFlags = Qt::ItemIsSelectable | Qt::ItemIsUserCheckable;
+if (node->isEnabled()) {
+  itemFlags |= Qt

Re: [poppler] Poppler 0.7.1 (0.8 Beta 2) released

2008-02-27 Thread Vincent Torri


On Wed, 27 Feb 2008, Albert Astals Cid wrote:

> Available from
> http://poppler.freedesktop.org/poppler-0.7.1.tar.gz
>
> Testing, patches and bug reports welcome.

It works on Win XP (compiled with MinGW / MSYS)

Vincent Torri
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler


[poppler] Poppler 0.7.1 (0.8 Beta 2) released

2008-02-27 Thread Albert Astals Cid
Available from
http://poppler.freedesktop.org/poppler-0.7.1.tar.gz

This is the second release of what will be the 0.8 stable series. We will be 
having a roughly weekly release schedule until we hit 0.8 stable version.

Major Changes:
 * Really distribute CMake files as optional build tool
 * Initial Optional Content support in core and in the Qt4 frontend

Minor Changes:
 * Allow grouped checkboxes to be selected individually
 * Qt4 demo program improvements
 * Keep cairo and cairo_shape consistent
 * Safety checks on Splash renderer so that it does not draw outside the 
allocated bitmap
 * Do not try to display bitmaps of invalid size
 * Fix building with exceptions
 * Improvements for building with MSVC and CMake

Testing, patches and bug reports welcome.

Albert


signature.asc
Description: This is a digitally signed message part.
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler


[poppler] Changes to 'refs/tags/poppler-0.7.1'

2008-02-27 Thread Albert Astals Cid
Tag 'poppler-0.7.1' created by Albert Astals Cid <[EMAIL PROTECTED]> at 
2008-02-27 19:45 -0800

Poppler 0.7.1

Changes since poppler-0.7.0-53:
---
 0 files changed
---
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler


[poppler] 4 commits - CMakeLists.txt configure.ac msvc/config.h NEWS qt4/demos qt4/src qt4/tests

2008-02-27 Thread Albert Astals Cid
 CMakeLists.txt|2 +-
 NEWS  |   15 +++
 configure.ac  |2 +-
 msvc/config.h |6 +++---
 qt4/demos/Makefile.am |3 +++
 qt4/src/Doxyfile  |2 +-
 qt4/src/Makefile.am   |5 -
 qt4/tests/Makefile.am |3 +++
 8 files changed, 31 insertions(+), 7 deletions(-)

New commits:
commit 4254f1237ebed09b8e1c85f935a20bde3d8f36ff
Merge: ed6c0c2... 0569ae7...
Author: Albert Astals Cid <[EMAIL PROTECTED]>
Date:   Wed Feb 27 20:44:27 2008 +0100

Merge branch 'master' of ssh://[EMAIL PROTECTED]/git/poppler/poppler

commit ed6c0c260837a0025279765ef7778b83d6ee2209
Author: Albert Astals Cid <[EMAIL PROTECTED]>
Date:   Wed Feb 27 20:43:45 2008 +0100

fix build and distcheck with autools

diff --git a/qt4/demos/Makefile.am b/qt4/demos/Makefile.am
index 6e22288..805f8a1 100644
--- a/qt4/demos/Makefile.am
+++ b/qt4/demos/Makefile.am
@@ -60,3 +60,6 @@ toc.$(OBJEXT): toc.moc
 viewer.$(OBJEXT): viewer.moc
 
 poppler_qt4viewer_LDADD = $(LDADDS)
+
+clean-generic:
+   rm *.moc
\ No newline at end of file
diff --git a/qt4/src/Makefile.am b/qt4/src/Makefile.am
index 10310a1..444882f 100644
--- a/qt4/src/Makefile.am
+++ b/qt4/src/Makefile.am
@@ -65,4 +65,7 @@ libpoppler_qt4_la_LDFLAGS = -version-info 2:0:0
 .h.moc:
moc -i $< -o $@
 
-poppler-optcontent.$(OBJEXT): poppler-optcontent.moc
+poppler-optcontent.lo: poppler-optcontent.moc
+
+clean-generic:
+   rm *.moc
diff --git a/qt4/tests/Makefile.am b/qt4/tests/Makefile.am
index 3ad4aac..5072fcf 100644
--- a/qt4/tests/Makefile.am
+++ b/qt4/tests/Makefile.am
@@ -55,6 +55,9 @@ stress_poppler_dir_SOURCES =  \
 
 stress_poppler_dir_LDADD = $(LDADDS)
 
+clean-generic:
+   rm *.moc
+
 if BUILD_POPPLER_QT4
 TESTS = \
check_attachments   \
commit 344d55539b1b6bcabec609fd828db372a07491b4
Author: Albert Astals Cid <[EMAIL PROTECTED]>
Date:   Wed Feb 27 20:43:13 2008 +0100

fill the NEWS for 0.7.1

diff --git a/NEWS b/NEWS
index 90f6b96..486d039 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,18 @@
+Release 0.7.1 (0.8 Beta 2)
+
+   Major Changes:
+* Really distribute CMake files as optional build tool
+* Initial Optional Content support in core and in the Qt4 frontend
+
+   Minor Changes:
+* Allow grouped checkboxes to be selected individually
+* Qt4 demo program improvements
+* Keep cairo and cairo_shape consistent
+* Safety checks on Splash renderer so that it does not draw outside 
the allocated bitmap
+* Do not try to display bitmaps of invalid size
+* Fix building with exceptions
+* Improvements for building with MSVC and CMake
+
 Release 0.7.0 (0.8 Beta 1)
 
* Saving support
commit 1c47633ba782021978fa34d41a4ab0badf3af9d3
Author: Albert Astals Cid <[EMAIL PROTECTED]>
Date:   Wed Feb 27 20:42:55 2008 +0100

Increase version number to 0.7.1

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b97b595..0aff96d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,7 +11,7 @@ find_package(PkgConfig)
 include(MacroEnsureVersion)
 include(MacroBoolTo01)
 
-set(POPPLER_VERSION "0.7.0")
+set(POPPLER_VERSION "0.7.1")
 
 # command line switches
 option(ENABLE_XPDF_HEADERS "Install unsupported xpdf headers." OFF)
diff --git a/configure.ac b/configure.ac
index b34cd45..b871c92 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ(2.59)
-AC_INIT(poppler, 0.7.0)
+AC_INIT(poppler, 0.7.1)
 AM_INIT_AUTOMAKE([foreign])
 AM_CONFIG_HEADER(config.h)
 AM_CONFIG_HEADER(poppler/poppler-config.h)
diff --git a/msvc/config.h b/msvc/config.h
index 2ef6087..7451df6 100644
--- a/msvc/config.h
+++ b/msvc/config.h
@@ -32,13 +32,13 @@
 #define PACKAGE_NAME "poppler"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "poppler 0.7"
+#define PACKAGE_STRING "poppler 0.7.1"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "poppler"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.7"
+#define PACKAGE_VERSION "0.7.1"
 
 /* Poppler data dir */
 #define POPPLER_DATADIR "/usr/local/share/poppler"
@@ -53,7 +53,7 @@
 /* #undef USE_EXCEPTIONS */
 
 /* Version number of package */
-#define VERSION "0.7"
+#define VERSION "0.7.1"
 
 #define snprintf _snprintf
 #define unlink _unlink
diff --git a/qt4/src/Doxyfile b/qt4/src/Doxyfile
index d6e00c6..07cb570 100644
--- a/qt4/src/Doxyfile
+++ b/qt4/src/Doxyfile
@@ -31,7 +31,7 @@ PROJECT_NAME   = "Poppler Qt4 "
 # This could be handy for archiving the generated documentation or 
 # if some version control system is used.
 
-PROJECT_NUMBER = 0.7.0
+PROJECT_NUMBER = 0.7.1
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
 # base path where the generated documentation will be put. 
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/lis

[poppler] 2 commits - qt4/src

2008-02-27 Thread Brad Hards
 qt4/src/poppler-optcontent.cc |7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

New commits:
commit 0569ae76b6af1723b4606af189242a23199f387d
Merge: f395531... d8eba8c...
Author: Brad Hards <[EMAIL PROTECTED]>
Date:   Thu Feb 28 06:26:09 2008 +1100

Merge branch 'master' of ssh://[EMAIL PROTECTED]/git/poppler/poppler

commit f395531a3e8f71a46b3c942f8f437ade1d9fdb57
Author: Brad Hards <[EMAIL PROTECTED]>
Date:   Wed Feb 27 22:22:51 2008 +1100

Minor cleanup.

diff --git a/qt4/src/poppler-optcontent.cc b/qt4/src/poppler-optcontent.cc
index 10a571d..f6e61c1 100644
--- a/qt4/src/poppler-optcontent.cc
+++ b/qt4/src/poppler-optcontent.cc
@@ -82,9 +82,9 @@ namespace Poppler
 m_state = OptContentItem::HeadingOnly;
   }
 
-  OptContentItem::OptContentItem()
+  OptContentItem::OptContentItem() :
+m_parent( 0 )
   {
-m_parent = 0;
   }
 
   OptContentItem::~OptContentItem()
@@ -145,6 +145,7 @@ namespace Poppler
   parseOrderArray( m_rootNode, optContent->getOrderArray() );
 }
 
+parseRBGroupsArray( optContent->getRBGroupsArray() );
   }
 
   OptContentModelPrivate::~OptContentModelPrivate()
@@ -212,8 +213,6 @@ namespace Poppler
 : QAbstractItemModel(parent)
   {
 d = new OptContentModelPrivate( this, optContent );
-
-d->parseRBGroupsArray( optContent->getRBGroupsArray() );
   }
 
   OptContentModel::~OptContentModel()
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler


[poppler] 3 commits - qt4/src

2008-02-27 Thread Pino Toscano
 qt4/src/poppler-optcontent-private.h |2 ++
 qt4/src/poppler-optcontent.cc|8 
 qt4/src/poppler-optcontent.h |   14 --
 3 files changed, 14 insertions(+), 10 deletions(-)

New commits:
commit d8eba8c10834116b4f0f295375805172f5216993
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 19:07:46 2008 +0100

export the OptContentModel

diff --git a/qt4/src/poppler-optcontent.h b/qt4/src/poppler-optcontent.h
index 36f3056..2b0c5ec 100644
--- a/qt4/src/poppler-optcontent.h
+++ b/qt4/src/poppler-optcontent.h
@@ -22,6 +22,8 @@
 
 #include 
 
+#include "poppler-export.h"
+
 class OCGs;
 
 namespace Poppler
@@ -29,7 +31,7 @@ namespace Poppler
   class Document;
   class OptContentModelPrivate;
 
-  class OptContentModel : public QAbstractItemModel
+  class POPPLER_QT4_EXPORT OptContentModel : public QAbstractItemModel
   {
 friend class Document;
 
commit 0445e64a4124af7c1b84673f237022e133eb8542
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 19:04:03 2008 +0100

make only the Document able to create OptContentsModel's

diff --git a/qt4/src/poppler-optcontent.h b/qt4/src/poppler-optcontent.h
index e644ac6..36f3056 100644
--- a/qt4/src/poppler-optcontent.h
+++ b/qt4/src/poppler-optcontent.h
@@ -26,14 +26,16 @@ class OCGs;
 
 namespace Poppler
 {
+  class Document;
   class OptContentModelPrivate;
 
   class OptContentModel : public QAbstractItemModel
   {
+friend class Document;
+
 Q_OBJECT
 
 public:
-OptContentModel( OCGs *optContent, QObject *parent = 0);
 virtual ~OptContentModel();
 
 QModelIndex index(int row, int column, const QModelIndex &parent) const;
@@ -50,6 +52,8 @@ namespace Poppler
 virtual QVariant headerData( int section, Qt::Orientation orientation, int 
role = Qt::DisplayRole ) const;
 
 private:
+OptContentModel( OCGs *optContent, QObject *parent = 0);
+
 friend class OptContentModelPrivate;
 OptContentModelPrivate *d;
   };
commit c965437b67a4f97ee8365a217bd10406fba3767a
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 18:58:31 2008 +0100

setRootNode() is private (and unused) API

diff --git a/qt4/src/poppler-optcontent-private.h 
b/qt4/src/poppler-optcontent-private.h
index 8261839..7471a42 100644
--- a/qt4/src/poppler-optcontent-private.h
+++ b/qt4/src/poppler-optcontent-private.h
@@ -29,6 +29,7 @@ class OptionalContentGroup;
 
 namespace Poppler
 {
+  class OptContentItem;
 
   class RadioButtonGroup
   {
@@ -91,6 +92,7 @@ namespace Poppler
\return the matching optional content item, or null if the reference 
wasn't found
 */
 OptContentItem *itemFromRef( const QString &ref ) const;
+void setRootNode(OptContentItem *node);
 
 OptContentModel *q;
 
diff --git a/qt4/src/poppler-optcontent.cc b/qt4/src/poppler-optcontent.cc
index 68a44a6..4f3e6d9 100644
--- a/qt4/src/poppler-optcontent.cc
+++ b/qt4/src/poppler-optcontent.cc
@@ -227,11 +227,11 @@ namespace Poppler
 delete d;
   }
 
-  void OptContentModel::setRootNode( OptContentItem *node )
+  void OptContentModelPrivate::setRootNode(OptContentItem *node)
   {
-delete d->m_rootNode;
-d->m_rootNode = node;
-reset();
+delete m_rootNode;
+m_rootNode = node;
+q->reset();
   }
 
   QModelIndex OptContentModel::index(int row, int column, const QModelIndex 
&parent) const
diff --git a/qt4/src/poppler-optcontent.h b/qt4/src/poppler-optcontent.h
index 325a8e4..e644ac6 100644
--- a/qt4/src/poppler-optcontent.h
+++ b/qt4/src/poppler-optcontent.h
@@ -26,8 +26,6 @@ class OCGs;
 
 namespace Poppler
 {
-  class OptContentItem;
-  class OptContentModel;
   class OptContentModelPrivate;
 
   class OptContentModel : public QAbstractItemModel
@@ -38,8 +36,6 @@ namespace Poppler
 OptContentModel( OCGs *optContent, QObject *parent = 0);
 virtual ~OptContentModel();
 
-void setRootNode(OptContentItem *node);
-
 QModelIndex index(int row, int column, const QModelIndex &parent) const;
 QModelIndex parent(const QModelIndex &child) const;
 
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler


[poppler] 2 commits - qt4/src qt4/tests

2008-02-27 Thread Pino Toscano
 qt4/src/poppler-optcontent.cc  |   11 ++
 qt4/tests/check_optcontent.cpp |   66 ++---
 2 files changed, 27 insertions(+), 50 deletions(-)

New commits:
commit e293bfc384e2dfc4ef04582053ce18d8c0bcb7b3
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 18:50:35 2008 +0100

small cleanup

diff --git a/qt4/src/poppler-optcontent.cc b/qt4/src/poppler-optcontent.cc
index 85aaaf6..68a44a6 100644
--- a/qt4/src/poppler-optcontent.cc
+++ b/qt4/src/poppler-optcontent.cc
@@ -170,7 +170,7 @@ namespace Poppler
Object item;
orderArray->getNF(i, &item);
if (item.isRef() ) {
- OptContentItem *ocItem = m_optContentItems[ 
QString("%1").arg(item.getRefNum()) ];
+  OptContentItem *ocItem = 
m_optContentItems.value(QString::number(item.getRefNum()), 0);
  if (ocItem) {
addChild( parentNode, ocItem );
lastItem = ocItem;
@@ -305,9 +305,9 @@ namespace Poppler
 break;
   case Qt::CheckStateRole:
 if (node->state() == OptContentItem::On) {
-  return qVariantFromValue(Qt::Checked);
+  return Qt::Checked;
 } else if (node->state() == OptContentItem::Off) {
-  return qVariantFromValue(Qt::Unchecked);
+  return Qt::Unchecked;
 }
 break;
 }
@@ -383,10 +383,7 @@ namespace Poppler
 
   OptContentItem* OptContentModelPrivate::itemFromRef( const QString &ref ) 
const
   {
-if ( !m_optContentItems.contains( ref ) ) {
-  return 0;
-}
-return m_optContentItems[ ref ];
+return m_optContentItems.value(ref, 0);
   }
 
   OptContentItem* OptContentModelPrivate::nodeFromIndex(const QModelIndex 
&index, bool canBeNull) const
commit f11aa0008585e845ce509172d76f72f941be497d
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 18:44:09 2008 +0100

adapt the tests to the new layout of the contents model

diff --git a/qt4/tests/check_optcontent.cpp b/qt4/tests/check_optcontent.cpp
index 045ec18..247c67b 100644
--- a/qt4/tests/check_optcontent.cpp
+++ b/qt4/tests/check_optcontent.cpp
@@ -28,12 +28,10 @@ void TestOptionalContent::checkVisPolicy()
 QModelIndex index;
 index = optContent->index( 0, 0, QModelIndex() );
 QCOMPARE( optContent->data( index, Qt::DisplayRole ).toString(), QString( 
"A" ) );
-index = optContent->index( 0, 1, QModelIndex() );
-QCOMPARE( optContent->data( index, Qt::DisplayRole ).toBool(), true );
+QCOMPARE( static_cast( optContent->data( index, 
Qt::CheckStateRole ).toInt() ), Qt::Checked );
 index = optContent->index( 1, 0, QModelIndex() );
 QCOMPARE( optContent->data( index, Qt::DisplayRole ).toString(), QString( 
"B" ) );
-index = optContent->index( 1, 1, QModelIndex() );
-QCOMPARE( optContent->data( index, Qt::DisplayRole ).toBool(), true );
+QCOMPARE( static_cast( optContent->data( index, 
Qt::CheckStateRole ).toInt() ), Qt::Checked );
 
 delete doc;
 }
@@ -51,29 +49,24 @@ void TestOptionalContent::checkNestedLayers()
 
 index = optContent->index( 0, 0, QModelIndex() );
 QCOMPARE( optContent->data( index, Qt::DisplayRole ).toString(), QString( 
"Black Text and Green Snow" ) );
-index = optContent->index( 0, 1, QModelIndex() );
-QCOMPARE( optContent->data( index, Qt::DisplayRole ).toBool(), false );
+QCOMPARE( static_cast( optContent->data( index, 
Qt::CheckStateRole ).toInt() ), Qt::Unchecked );
 
 index = optContent->index( 1, 0, QModelIndex() );
 QCOMPARE( optContent->data( index, Qt::DisplayRole ).toString(), QString( 
"Mountains and Image" ) );
-index = optContent->index( 1, 1, QModelIndex() );
-QCOMPARE( optContent->data( index, Qt::DisplayRole ).toBool(), true );
+QCOMPARE( static_cast( optContent->data( index, 
Qt::CheckStateRole ).toInt() ), Qt::Checked );
 
 // This is a sub-item of "Mountains and Image"
 QModelIndex subindex = optContent->index( 0, 0, index );
 QCOMPARE( optContent->data( subindex, Qt::DisplayRole ).toString(), 
QString( "Image" ) );
-subindex = optContent->index( 0, 1, index );
-QCOMPARE( optContent->data( subindex, Qt::DisplayRole ).toBool(), true );
+QCOMPARE( static_cast( optContent->data( index, 
Qt::CheckStateRole ).toInt() ), Qt::Checked );
 
 index = optContent->index( 2, 0, QModelIndex() );
 QCOMPARE( optContent->data( index, Qt::DisplayRole ).toString(), QString( 
"Starburst" ) );
-index = optContent->index( 2, 1, QModelIndex() );
-QCOMPARE( optContent->data( index, Qt::DisplayRole ).toBool(), true );
+QCOMPARE( static_cast( optContent->data( index, 
Qt::CheckStateRole ).toInt() ), Qt::Checked );
 
 index = optContent->index( 3, 0, QModelIndex() );
 QCOMPARE( optContent->data( index, Qt::DisplayRole ).toString(), QString( 
"Watermark" ) );
-index = optContent->index( 3, 1, QModelIndex() );
-QCOMPARE( optContent->data( index, Qt::DisplayRole ).toBool(), false );
+QCOMPARE( static_cast( optContent->data( index, 

[poppler] poppler/Gfx.cc poppler/OptionalContent.cc

2008-02-27 Thread Pino Toscano
 poppler/Gfx.cc |2 ++
 poppler/OptionalContent.cc |2 ++
 2 files changed, 4 insertions(+)

New commits:
commit 4a324484b5c77ddc348746e7bcf6051ade28e389
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 18:04:52 2008 +0100

free some objects (thus leak less)

diff --git a/poppler/Gfx.cc b/poppler/Gfx.cc
index e8d0b1c..0618ab0 100644
--- a/poppler/Gfx.cc
+++ b/poppler/Gfx.cc
@@ -3460,6 +3460,8 @@ void Gfx::opXObject(Object args[], int numArgs) {
 // No OC entry - so we proceed as normal
   } else if (obj2.isRef()) {
 if ( ! catalog->getOptContentConfig()->optContentIsVisible( &obj2 ) ) {
+  obj2.free();
+  obj1.free();
   return;
 }
   } else {
diff --git a/poppler/OptionalContent.cc b/poppler/OptionalContent.cc
index 600c52b..b081add 100644
--- a/poppler/OptionalContent.cc
+++ b/poppler/OptionalContent.cc
@@ -174,6 +174,7 @@ bool OCGs::optContentIsVisible( Object *dictRef )
   dictRef->fetch( m_xref, &dictObj );
   if ( ! dictObj.isDict() ) {
 printf( "Unexpected oc reference target: %i\n", dictObj.getType() );
+dictObj.free();
 return result;
   }
   dict = dictObj.getDict();
@@ -216,6 +217,7 @@ bool OCGs::optContentIsVisible( Object *dictRef )
 }
   } 
   dictType.free();
+  dictObj.free();
   // printf("visibility: %s\n", result? "on" : "off");
   return result;
 }
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler


[poppler] 9 commits - qt4/src

2008-02-27 Thread Pino Toscano
 qt4/src/.gitignore   |2 
 qt4/src/Makefile.am  |   13 ++-
 qt4/src/poppler-optcontent-private.h |7 +
 qt4/src/poppler-optcontent.cc|  140 ++-
 qt4/src/poppler-optcontent.h |2 
 5 files changed, 104 insertions(+), 60 deletions(-)

New commits:
commit 0f4e7791ab6884072a1aee56e9cec212d8cea263
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 15:58:21 2008 +0100

ignore any generated .moc here

diff --git a/qt4/src/.gitignore b/qt4/src/.gitignore
index 53c9077..3d124dd 100644
--- a/qt4/src/.gitignore
+++ b/qt4/src/.gitignore
@@ -6,4 +6,4 @@ Makefile
 Makefile.in
 APIDOCS-html
 APIDOCS-latex
-moc_poppler-optcontent.cpp
+*.moc
commit 136ae44f155b17d9e8b041b67f75531d8544337c
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 15:56:09 2008 +0100

keep track of the items changed when toggling an item, so we can update 
them properly

diff --git a/qt4/src/poppler-optcontent-private.h 
b/qt4/src/poppler-optcontent-private.h
index f4a4a08..8261839 100644
--- a/qt4/src/poppler-optcontent-private.h
+++ b/qt4/src/poppler-optcontent-private.h
@@ -35,7 +35,7 @@ namespace Poppler
   public:
 RadioButtonGroup( OptContentModelPrivate *ocModel, Array *rbarray);
 ~RadioButtonGroup();
-void setItemOn( OptContentItem *itemToSetOn );
+QSet setItemOn( OptContentItem *itemToSetOn );
 
   private:
 QList itemsInGroup;
@@ -53,7 +53,7 @@ namespace Poppler
 
 QString name() const { return m_name; }
 ItemState state() const { return m_state; }
-bool setState( ItemState state );
+bool setState(ItemState state, QSet &changedItems);
 
 QList childList() { return m_children; }
 
diff --git a/qt4/src/poppler-optcontent.cc b/qt4/src/poppler-optcontent.cc
index 905fd62..85aaaf6 100644
--- a/qt4/src/poppler-optcontent.cc
+++ b/qt4/src/poppler-optcontent.cc
@@ -25,6 +25,7 @@
 #include "poppler-private.h"
 
 #include 
+#include 
 
 namespace Poppler
 {
@@ -50,14 +51,18 @@ namespace Poppler
   {
   }
 
-  void RadioButtonGroup::setItemOn( OptContentItem *itemToSetOn )
+  QSet RadioButtonGroup::setItemOn( OptContentItem 
*itemToSetOn )
   {
+QSet changedItems;
 for (int i = 0; i < itemsInGroup.size(); ++i) {
   OptContentItem *thisItem = itemsInGroup.at(i);
   if (thisItem != itemToSetOn) {
-   thisItem->setState( OptContentItem::Off );
+QSet newChangedItems;
+thisItem->setState(OptContentItem::Off, newChangedItems);
+changedItems += newChangedItems;
   }
 }
+return changedItems;
   }
 
 
@@ -97,9 +102,10 @@ namespace Poppler
   }
 
 
-  bool OptContentItem::setState( ItemState state )
+  bool OptContentItem::setState(ItemState state, QSet 
&changedItems)
   {
 m_state = state;
+changedItems.insert(this);
 if (!m_group) {
   return false;
 }
@@ -107,7 +113,7 @@ namespace Poppler
   m_group->setState( OptionalContentGroup::On );
   for (int i = 0; i < m_rbGroups.size(); ++i) {
RadioButtonGroup *rbgroup = m_rbGroups.at(i);
-   rbgroup->setItemOn( this );
+changedItems += rbgroup->setItemOn( this );
   }
 } else if ( state == OptContentItem::Off ) {
   m_group->setState( OptionalContentGroup::Off );
@@ -322,14 +328,30 @@ namespace Poppler
 const bool newvalue = value.toBool();
 if (newvalue) {
   if (node->state() != OptContentItem::On) {
-node->setState(OptContentItem::On);
-emit dataChanged(index, index);
+QSet changedItems;
+node->setState(OptContentItem::On, changedItems);
+QModelIndexList indexes;
+Q_FOREACH (OptContentItem *item, changedItems) {
+  indexes.append(d->indexFromItem(item, 0));
+}
+qStableSort(indexes);
+Q_FOREACH (const QModelIndex &changedIndex, indexes) {
+  emit dataChanged(changedIndex, changedIndex);
+}
 return true;
   }
 } else {
   if (node->state() != OptContentItem::Off) {
-node->setState(OptContentItem::Off);
-emit dataChanged(index, index);
+QSet changedItems;
+node->setState(OptContentItem::Off, changedItems);
+QModelIndexList indexes;
+Q_FOREACH (OptContentItem *item, changedItems) {
+  indexes.append(d->indexFromItem(item, 0));
+}
+qStableSort(indexes);
+Q_FOREACH (const QModelIndex &changedIndex, indexes) {
+  emit dataChanged(changedIndex, changedIndex);
+}
 return true;
   }
 }
commit b73e2afef7e5e1b68d82a10c94bca3c201c5f8b3
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 15:52:06 2008 +0100

fix indexFromItem once again, and make parent() call it with the right node

diff --git a/qt4/src/poppler-optcontent-private.h 
b/qt4/src/poppler-optcontent-private.h
ind

[poppler] 2 commits - qt4/demos

2008-02-27 Thread Pino Toscano
 qt4/demos/documentobserver.cpp |5 +
 qt4/demos/documentobserver.h   |1 +
 qt4/demos/optcontent.cpp   |8 
 qt4/demos/optcontent.h |3 +++
 4 files changed, 17 insertions(+)

New commits:
commit 0a19486cb4de57c0c987cc4ce2434a96bbd18338
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 12:15:44 2008 +0100

refresh the current page when the data of the content model change

diff --git a/qt4/demos/optcontent.cpp b/qt4/demos/optcontent.cpp
index 2f8bebe..e2bc3ae 100644
--- a/qt4/demos/optcontent.cpp
+++ b/qt4/demos/optcontent.cpp
@@ -44,12 +44,20 @@ void OptContentDock::fillInfo()
 }
 
 m_view->setModel(document()->optionalContentModel());
+connect(m_view->model(), SIGNAL(dataChanged(QModelIndex, QModelIndex)), 
this, SLOT(reloadImage()));
+m_view->expandToDepth(1);
 }
 
 void OptContentDock::documentClosed()
 {
+disconnect(m_view->model(), SIGNAL(dataChanged(QModelIndex, QModelIndex)), 
this, SLOT(reloadImage()));
 m_view->setModel(0);
 AbstractInfoDock::documentClosed();
 }
 
+void OptContentDock::reloadImage()
+{
+reloadPage();
+}
+
 #include "optcontent.moc"
diff --git a/qt4/demos/optcontent.h b/qt4/demos/optcontent.h
index 6189601..3260f29 100644
--- a/qt4/demos/optcontent.h
+++ b/qt4/demos/optcontent.h
@@ -36,6 +36,9 @@ public:
 protected:
 /*virtual*/ void fillInfo();
 
+private Q_SLOTS:
+void reloadImage();
+
 private:
 QTreeView *m_view;
 };
commit 09b7cc2efb7d21fa4dabd23d2d2de877cc7d86ee
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 12:15:18 2008 +0100

optional method to reload the current page

diff --git a/qt4/demos/documentobserver.cpp b/qt4/demos/documentobserver.cpp
index 611ba79..e5c283d 100644
--- a/qt4/demos/documentobserver.cpp
+++ b/qt4/demos/documentobserver.cpp
@@ -43,3 +43,8 @@ int DocumentObserver::page() const
 {
 return m_viewer->page();
 }
+
+void DocumentObserver::reloadPage()
+{
+m_viewer->setPage(m_viewer->page());
+}
diff --git a/qt4/demos/documentobserver.h b/qt4/demos/documentobserver.h
index c6e287b..38fe204 100644
--- a/qt4/demos/documentobserver.h
+++ b/qt4/demos/documentobserver.h
@@ -41,6 +41,7 @@ protected:
 Poppler::Document* document() const;
 void setPage(int page);
 int page() const;
+void reloadPage();
 
 private:
 PdfViewer *m_viewer;
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler


[poppler] qt4/demos

2008-02-27 Thread Pino Toscano
 qt4/demos/CMakeLists.txt |1 
 qt4/demos/Makefile.am|3 ++
 qt4/demos/optcontent.cpp |   55 +++
 qt4/demos/optcontent.h   |   43 
 qt4/demos/viewer.cpp |7 +
 5 files changed, 109 insertions(+)

New commits:
commit 39fe905be8f2ae79d9c26cd87547f3ea2608411e
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 12:00:29 2008 +0100

Add a dock for showing the optional content tree.

diff --git a/qt4/demos/CMakeLists.txt b/qt4/demos/CMakeLists.txt
index 4fe984f..3401337 100644
--- a/qt4/demos/CMakeLists.txt
+++ b/qt4/demos/CMakeLists.txt
@@ -17,6 +17,7 @@ set(poppler_qt4viewer_SRCS
   main_viewer.cpp
   metadata.cpp
   navigationtoolbar.cpp
+  optcontent.cpp
   pageview.cpp
   permissions.cpp
   toc.cpp
diff --git a/qt4/demos/Makefile.am b/qt4/demos/Makefile.am
index 7014300..6e22288 100644
--- a/qt4/demos/Makefile.am
+++ b/qt4/demos/Makefile.am
@@ -36,6 +36,8 @@ poppler_qt4viewer_SOURCES =   \
metadata.h  \
navigationtoolbar.cpp   \
navigationtoolbar.h \
+   optcontent.cpp  \
+   optcontent.h\
pageview.cpp\
pageview.h  \
permissions.cpp \
@@ -51,6 +53,7 @@ fonts.$(OBJEXT): fonts.moc
 info.$(OBJEXT): info.moc
 metadata.$(OBJEXT): metadata.moc
 navigationtoolbar.$(OBJEXT): navigationtoolbar.moc
+optcontent.$(OBJEXT): optcontent.moc
 pageview.$(OBJEXT): pageview.moc
 permissions.$(OBJEXT): permissions.moc
 toc.$(OBJEXT): toc.moc
diff --git a/qt4/demos/optcontent.cpp b/qt4/demos/optcontent.cpp
new file mode 100644
index 000..2f8bebe
--- /dev/null
+++ b/qt4/demos/optcontent.cpp
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2008, Pino Toscano <[EMAIL PROTECTED]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, 
USA.
+ */
+
+#include "optcontent.h"
+
+#include 
+
+#include 
+
+OptContentDock::OptContentDock(QWidget *parent)
+: AbstractInfoDock(parent)
+{
+m_view = new QTreeView(this);
+setWidget(m_view);
+setWindowTitle(tr("Optional content"));
+#if QT_VERSION >= 0x040200
+m_view->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
+#endif
+}
+
+OptContentDock::~OptContentDock()
+{
+}
+
+void OptContentDock::fillInfo()
+{
+if (!document()->hasOptionalContent()) {
+return;
+}
+
+m_view->setModel(document()->optionalContentModel());
+}
+
+void OptContentDock::documentClosed()
+{
+m_view->setModel(0);
+AbstractInfoDock::documentClosed();
+}
+
+#include "optcontent.moc"
diff --git a/qt4/demos/optcontent.h b/qt4/demos/optcontent.h
new file mode 100644
index 000..6189601
--- /dev/null
+++ b/qt4/demos/optcontent.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2008, Pino Toscano <[EMAIL PROTECTED]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, 
USA.
+ */
+
+#ifndef OPTCONTENT_H
+#define OPTCONTENT_H
+
+#include "abstractinfodock.h"
+
+class QTreeView;
+
+class OptContentDock : public AbstractInfoDock
+{
+Q_OBJECT
+
+public:
+OptContentDock(QWidget *parent = 0);
+~OptContentDock();
+
+/*virtual*/ void documentClosed();
+
+protected:
+/*virtual*/ void fillInfo();
+
+private:
+QTreeView *m_view;
+};
+
+#endif
diff --git a/qt4/demos/viewer.cpp b/qt4/demos/viewer.cpp
index 7d55e0d..6fb9495 100644
--- a/qt4/demos/viewer.cpp
+++ b/qt4/demos/viewer.cpp
@@ -23,6 +23,7 @@
 #include "info.h"
 #include "metadata.h"
 #include "navigationtoolbar.h"
+#include "optcontent.h"
 #include

[poppler] 4 commits - qt4/src

2008-02-27 Thread Pino Toscano
 qt4/src/poppler-document.cc  |4 +-
 qt4/src/poppler-optcontent-private.h |   55 +--
 qt4/src/poppler-optcontent.cc|   33 ++---
 qt4/src/poppler-optcontent.h |   50 ---
 qt4/src/poppler-private.h|6 +--
 5 files changed, 75 insertions(+), 73 deletions(-)

New commits:
commit f17dd5539501a996479b903ac9b8aceb3c4cfafe
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 11:53:32 2008 +0100

cleanup

diff --git a/qt4/src/poppler-optcontent-private.h 
b/qt4/src/poppler-optcontent-private.h
index 705220e..2462f2a 100644
--- a/qt4/src/poppler-optcontent-private.h
+++ b/qt4/src/poppler-optcontent-private.h
@@ -24,7 +24,8 @@
 
 #include 
 
-#include "goo/GooList.h"
+class Array;
+class OptionalContentGroup;
 
 namespace Poppler
 {
diff --git a/qt4/src/poppler-optcontent.h b/qt4/src/poppler-optcontent.h
index 833059c..81dd412 100644
--- a/qt4/src/poppler-optcontent.h
+++ b/qt4/src/poppler-optcontent.h
@@ -21,11 +21,8 @@
 #define POPPLER_OPTCONTENT_H
 
 #include 
-#include 
 
-class OptionalContentGroup;
 class OCGs;
-class Array;
 
 namespace Poppler
 {
@@ -55,6 +52,7 @@ namespace Poppler
 Qt::ItemFlags flags ( const QModelIndex & index ) const;
 
 private:
+friend class OptContentModelPrivate;
 OptContentModelPrivate *d;
   };
 }
commit f3cc894559f10dbd4277fa9f30de9931ed69dfd4
Author: Pino Toscano <[EMAIL PROTECTED]>
Date:   Wed Feb 27 11:43:34 2008 +0100

OptContentModel::itemFromRef() and OptContentItem are private API.

Hide them in the implementation.

diff --git a/qt4/src/poppler-optcontent-private.h 
b/qt4/src/poppler-optcontent-private.h
index 1cdafa6..705220e 100644
--- a/qt4/src/poppler-optcontent-private.h
+++ b/qt4/src/poppler-optcontent-private.h
@@ -22,6 +22,8 @@
 
 #include "poppler-optcontent.h"
 
+#include 
+
 #include "goo/GooList.h"
 
 namespace Poppler
@@ -38,6 +40,38 @@ namespace Poppler
 QList itemsInGroup;
   };
 
+  class OptContentItem
+  {
+public:
+enum ItemState { On, Off, HeadingOnly };
+
+OptContentItem( OptionalContentGroup *group );
+OptContentItem( const QString &label );
+OptContentItem();
+~OptContentItem();
+
+QString name() const { return m_name; }
+ItemState state() const { return m_state; }
+bool setState( ItemState state );
+
+QList childList() { return m_children; }
+
+void setParent( OptContentItem* parent) { m_parent = parent; }
+OptContentItem* parent() { return m_parent; }
+
+void addChild( OptContentItem *child );
+
+void appendRBGroup( RadioButtonGroup *rbgroup );
+
+private:
+OptionalContentGroup *m_group;
+QString m_name;
+ItemState m_state; // true for ON, false for OFF
+QList m_children;
+OptContentItem *m_parent;
+QList m_rbGroups;
+  };
+
   class OptContentModelPrivate
   {
 public:
@@ -47,6 +81,15 @@ namespace Poppler
 void parseRBGroupsArray( Array *rBGroupArray );
 OptContentItem *nodeFromIndex( const QModelIndex &index ) const;
 
+/**
+   Get the OptContentItem corresponding to a given reference value.
+
+   \param ref the reference number (e.g. from Object.getRefNum()) to look 
up
+
+   \return the matching optional content item, or null if the reference 
wasn't found
+*/
+OptContentItem *itemFromRef( const QString &ref ) const;
+
 OptContentModel *q;
 
 QMap m_optContentItems;
diff --git a/qt4/src/poppler-optcontent.cc b/qt4/src/poppler-optcontent.cc
index 79b96f4..10a571d 100644
--- a/qt4/src/poppler-optcontent.cc
+++ b/qt4/src/poppler-optcontent.cc
@@ -37,7 +37,7 @@ namespace Poppler
   if ( ! ref.isRef() ) {
qDebug() << "expected ref, but got:" << ref.getType();
   }
-  OptContentItem *item = ocModel->q->itemFromRef( 
QString::number(ref.getRefNum() ) );
+  OptContentItem *item = ocModel->itemFromRef( 
QString::number(ref.getRefNum() ) );
   itemsInGroup.append( item );
 }
 for (int i = 0; i < itemsInGroup.size(); ++i) {
@@ -345,12 +345,12 @@ namespace Poppler
 parent->addChild( child );
   }
 
-  OptContentItem* OptContentModel::itemFromRef( const QString &ref ) const
+  OptContentItem* OptContentModelPrivate::itemFromRef( const QString &ref ) 
const
   {
-if ( ! d->m_optContentItems.contains( ref ) ) {
+if ( !m_optContentItems.contains( ref ) ) {
   return 0;
 }
-return d->m_optContentItems[ ref ];
+return m_optContentItems[ ref ];
   }
 
   OptContentItem* OptContentModelPrivate::nodeFromIndex( const QModelIndex 
&index ) const
diff --git a/qt4/src/poppler-optcontent.h b/qt4/src/poppler-optcontent.h
index 03f1252..833059c 100644
--- a/qt4/src/poppler-optcontent.h
+++ b/qt4/src/poppler-optcontent.h
@@ -32,39 +32,6 @@ namespace Poppler
   class OptContentItem;
   class OptContentModel;
   class OptContentModelPrivate;
-  class RadioButtonGroup;
-
-  class OptContentItem
-  {
-public:
-enum ItemStat

[poppler] qt4/src

2008-02-27 Thread Brad Hards
 qt4/src/CMakeLists.txt |1 +
 1 file changed, 1 insertion(+)

New commits:
commit 48557da71adb0fe6bd4da2fb32433796a96c3576
Author: Brad Hards <[EMAIL PROTECTED]>
Date:   Wed Feb 27 19:39:18 2008 +1100

We need to install the optional content header.

diff --git a/qt4/src/CMakeLists.txt b/qt4/src/CMakeLists.txt
index a57cb1c..4099ab9 100644
--- a/qt4/src/CMakeLists.txt
+++ b/qt4/src/CMakeLists.txt
@@ -45,6 +45,7 @@ install(FILES
   poppler-link.h
   poppler-annotation.h
   poppler-form.h
+  poppler-optcontent.h
   poppler-export.h
   ${CMAKE_SOURCE_DIR}/qt/poppler-page-transition.h
   DESTINATION include/poppler/qt4)
___
poppler mailing list
poppler@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler