2005-07-15  Martin Kretzschmar  <martink@gnome.org>

	* test/gtk-cairo-test.cc: update for 2005-06-27 change to actually
	display something again.

2005-07-10  Brad Hards  <bradh@frogmouth.net>

	* poppler/ArthurOutputDev.cc: General cleanup - removing
	dead code, and some minor tweaks. No new features.

2005-07-08  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_set_selection_alpha): Add
	this function to initialize the alpha channel when using the
	splash backend.

	* poppler/TextOutputDev.cc (visitLine): Add missing scaling of
	intra-line selection edges.

2005-07-07  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_prepare_output_dev): Account
	for page rotation when creating the cairo surface.

2005-07-06  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_copy_to_pixbuf): Add out of
	bounds checking (from Marco).

2005-07-07  Brad Hards  <bradh@frogmouth.net>

	* qt4/src/poppler-document.cc: 
	* qt4/src/poppler-qt4.h: Add pageLayout() function for Qt4
	bindings

	* qt4/tests/check_pagelayout_single.cpp:
	* qt4/tests/check_pagelayout_none.cpp:
	* Makefile.am: Add unit tests for pageLayout()

	* glib/poppler-document.cc (convert_page_mode): Update to
	reflect the Catalog API change. I'm not that good at glib,
	so this has a non-zero chance of being pure crackrock.

	* poppler/Catalog.cc:
	* poppler/Catalog.h: update page mode options to PDF 1.6

	* qt4/src/poppler-qt4.h:
	* qt4/src/poppler-document.cc: add Qt4 bindings for additional 
	pageMode() value created by change above

	* qt4/src/poppler-qt4.h: minor updates to API docs.
	
	* qt4/tests/Makefile.am:
	* qt4/tests/check_pagemode_*.cpp: unit tests for Qt4 pageMode() call
	and associated enum. This is the initial checkin for these files

2005-07-06  Albert Astals Cid  <aacid@kde.org>

	* poppler/PDFDoc.[cc|h]: Add checkFooter to check document ends with
	%%EOF
	* poppler/GfxFont.[cc|h]: Extract family, stretch and weight from the
	font descriptor

2005-07-06  Brad Hards  <bradh@frogmouth.net>

	* qt4/tests/Makefile.am:
	* qt4/tests/check_linearised.cpp: Added unit test for linearised
	property

	* qt4/tests/poppler-fonts.cpp (main): update to reflect API change,
	and also to show "[none]" if the font is nameless.

	* qt4/src/poppler-document.cc (Poppler): 
	* qt4/src/poppler-qt4.h: remove the unicode translation bool,
	it is really an internal thing.

2005-07-05  Albert Astals Cid  <aacid@kde.org>

	* qt4/src/poppler-document.cc (Poppler): 
	* qt4/src/poppler-qt4.h: Don't crash with files that have fonts with
	no name, for example the one found at
	http://bugs.kde.org/show_bug.cgi?id=101520.

2005-07-05  Brad Hards  <bradh@frogmouth.net>

	* qt4/tests/check_author.cpp:
	* qt4/tests/check_permissions.cpp:
	* Makefile.am:
	* .cvsignore: add a couple more test cases
	
	* qt4/src/poppler-document.cc (Poppler): 
	* qt4/src/poppler-qt4.h: Add Qt4 bindings for the 
	additional user permission properties.

	* poppler/XRef.h:
	* poppler/Xref.cc:
	* poppler/PDFDoc.h: Add some more user permissions properties -
	high resolution printing, document assembly, extraction for
	accessibility and form completion.

2005-07-04  Brad Hards  <bradh@frogmouth.net>

	* qt4/src/poppler-page.cc: fix typo bug that
	prevented correct detection of upside down pages

	* qt4/tests/check-orientation.cpp: fix path to
	point to test module.
	
	* qt4/.cvsignore: update to reflect new files
	
	* qt4/tests/Makefile.am:
	* qt4/tests/poppler-fonts.cpp: initial import of a simple font
	metadata listing application.
	
	* qt4/src/poppler-qt4.h:
	* qt4/src/poppler-document.cc complete Qt4 font metadata handling
	
	* qt4/src/poppler-qt4.h:
	* qt4/src/poppler-page.cc: change the render API to make it more
	Qt-like.

	* qt4/tests/test-poppler-qt4.cpp:
	* qt4/tests/stress-poppler-qt4.cpp: update to reflect changes
	to render API
	
	* poppler/FontInfo.h/cc: make FontInfo::type() return a enum
	instead of a GooString. As discussed on mailing list, if you
	want a string representation, you get to make one at the bindings
	layer (ie typeName() didn't make the grade in the final patch)

	* qt4/tests/poppler-fonts.cpp (main): change order in test
	code to reflect actual testcase file

2005-07-01  Kristian Høgsberg  <krh@redhat.com>

	* poppler/TextOutputDev.cc: Make selection also work when dragging
	backwards in the text flow.  Currently this is a big pile of
	if-statements, and there is certainly room for improvement.

2005-06-30  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.h: * glib/poppler-page.cc
	(poppler_page_copy_to_pixbuf): Fix splash compilation (patch from
	Marco).
	(poppler_page_render_to_pixbuf): Drop dest_x and dest_y
	coordinates from this function.  This functionality can be
	achieved using a sub-GdkPixbuf.

	* glib/test-poppler-glib.c (main): Update test case.

2005-06-29  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-private.h: Move TextOutputDev.h include here from
	poppler-page.cc

2005-06-29  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac:
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler-private.h:
	* poppler/CairoOutputDev.cc:
	* poppler/CairoOutputDev.h:
	* poppler/Page.cc:
	* poppler/Page.h:
	* poppler/TextOutputDev.cc:
	* poppler/TextOutputDev.h: Add support for rendering real
	selection (based on text flow).

2005-06-28  Albert Astals Cid  <aacid@kde.org>
	
	* poppler/FontInfo.[cc,h]: Add FontInfo::getType()
	
2005-06-28  Albert Astals Cid  <aacid@kde.org>
	
	* poppler/ArthurOutputDev.cc: use transformation matrix for image
	rendering

2005-06-28  Brad Hards  <bradh@frogmouth.net>

	* .cvsignore:
	* qt4/.cvsignore:
	* qt4/src/.cvsignore:
	* qt4/tests/.cvsignore: update to reflect the Qt4 bindings.

2005-06-28  Brad Hards  <bradh@frogmouth.net>

	* qt4/:
	* Makefile.am:
	* configure.ac:
	* poppler-qt4.pc.in: Initial import of Qt4 bindings, based
	on the Qt3 bindings. API is still in flux.

	* poppler/AuthurOutputDev.[cc,h]:
	* poppler/Makefile.am: Initial import of Qt4 backend renderer. 
	Incomplete at this stage.

2005-06-27  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc:
	* poppler/CairoOutputDev.h: Change CairoOutputDev to render to a
	given surface and let the user create that surface.
	
	* glib/poppler-document.cc:
	* glib/poppler-page.cc:
	* glib/poppler-private.h: Create the cairo image surface here
	instead and pass it to the CairoOutputDev for rendering.
	
	* poppler/CairoOutputDevImage.cc:
	* poppler/CairoOutputDevImage.h:
	* poppler/CairoOutputDevX.cc:
	* poppler/CairoOutputDevX.h:
	* poppler/Makefile.am: Remove specialized cairo output devices.

2005-06-26  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc:
	* poppler/CairoOutputDev.h: Switch back to using drawChar() for
	text, but utilize the beginString() and endString() hooks so we
	can use cairo_show_glyphs() efficiently.

2005-06-26  Albert Astals Cid <aacid@kde.org>
	* qt/poppler-page.cc:
	* qt/poppler-page.h: Add PageTransition class and 
	PageTransition* Page::getTransition() const; to the qt frontend.

2005-06-26  Martin Kretzschmar  <martink@gnome.org>

	* glib/.cvsignore: add poppler-enums.[ch].

	* configure.ac: require glib 2.4+ for g_value_take_string and
	G_DEFINE_TYPE.

2005-06-25  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/Error.h: Maybe fix build on Solaris.

2005-06-20  Kristian Høgsberg  <krh@redhat.com>

	* NEWS:
	* configure.ac: Bump version to 0.3.3 and sum up changes since
	last release.

	* glib/poppler-page.cc (poppler_page_find_text): Initialize xMin
	and yMin to avoid referencing unintialized memory (#3582).

2005-06-20  Martin Kretzschmar  <martink@gnome.org>

	* glib/poppler-document.cc (info_dict_get_string): convert
	from PDFDocEncoding to UTF-8.

2005-06-20  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler.h: Clean up glib rotation implementation and add a
	getter for rotation.  Patch from Marco.

2005-06-20  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc:
	* poppler/FontInfo.cc: Fixes from Marco to handle fonts without
	name (typically type 3 fonts) and fix an iterator bug.

2005-06-20  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_get_link_mapping): Adjust
	link coordinates so they're relative to bounding box lower left
	corner (#3396).

2005-06-17  Kristian Høgsberg  <krh@redhat.com>

	* autogen.sh: Patch from Emil Soleyman-Zomalan to enable checks
	for automake >= 1.7 (#3554).

2005-06-15  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc:
	* glib/poppler-document.h: Patch from Marco to get initial status
	(open or closed) for bookmark subtrees.

2005-06-13  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc:
	* glib/poppler-document.h:
	* glib/poppler-private.h:
	* glib/poppler.h:
	* glib/test-poppler-glib.c:
	* poppler/Makefile.am: Patch from Marco to extract font info from
	document.

2005-06-08  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc: Remember to delete tmpFileName.
	Patch from Nikolai Weibull (#3491).

2005-06-07  Kristian Høgsberg  <krh@redhat.com>

	* qt/test-poppler-qt.cpp: Add stdlib.h include for exit().

2005-06-02  Kristian Høgsberg  <krh@redhat.com>

	* poppler/TextOutputDev.h:
	* qt/poppler-qt.h: Patch from Stanislav Brabec <sbrabec@suse.cz>
	to fix gcc 4.0.1 warnings on undeclared friend classes.
	
	* test/gtk-splash-test.cc: Fix from Martin Kretzschmar
	<martink@gnome.org> to compile with OPI enabled (#2911).

2005-06-02  Kristian Høgsberg  <krh@redhat.com>

	Patch from Stanislav Brabec <sbrabec@suse.cz>:

	* configure.ac:
	* poppler-cairo.pc.in:
	* poppler-glib.pc.in:
	* poppler-qt.pc.in:
	* poppler-splash.pc.in: Misc fixes to pkg-config files.

2005-06-01  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/Error.cc:
	* poppler/Error.h: Make error handling function setable through
	setErrorFunction.

	Based on a patch by Albert Astals Cid.

2005-05-29  Kristian Høgsberg  <krh@redhat.com>

	* glib/*: Add more meta data properties to poppler document.
	Patch by Emil Soleyman-Zomalan (#3359).

2005-05-26  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc (clip): Remove snapToGrid so clip()
	prototype matches what Gfx actually calls (fixes clipping).
	
	* poppler/CairoOutputDev.cc: Update fill color, stroke color, fill
	opacity and stroke opacity from GfxState on restore, since they
	aren't handled by cairo_restore() (#3362).

	* poppler/CairoOutputDev.cc: Comment out tolerance setting until
	we figure out how cairo settings relate to pdf settings.

	* poppler/CairoOutputDev.cc: Support fill and stroke opacity.
	
	* poppler/GfxState.cc: 
	* poppler/GfxState.h: Add GfxColorSpace::getRGBLine here and
	implement in subclasses.

	* poppler/CairoOutputDev.cc (drawImage): Use getRGBLine here.

Mon May 23 00:22:41 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-document.h: Add a permissions flag to the glib
	bindings.

2005-05-21  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc (poppler_ps_file_new): Fix off-by-one
	error spotted by Jürg Billeter.

2005-05-20  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc: Account for different row vs. column
	vector conventions between cairo and poppler.

	* poppler/CairoFontEngine.cc: Only get the code to gid map if
	we're using freetype 2.1.7 or older (#3340).

2005-05-19  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc: Only cast to Gfx8BitFont when we
	know for sure we have a truetype font.
	GfxCIDFont::getCIDToGIDLen() can return 0 in which case codeToGID
	will be NULL, and we end up casting it to a Gfx8BitFont (#3265).

2005-05-18  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Require cairo 0.5.0, bump release to 0.3.2.

	* NEWS: Sum up latest changes.

	* glib/poppler-document.cc (poppler_ps_file_new): Take a page
	range here instead of just number of pages.
	
2005-05-17  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDevX.cc: 
	* test/gtk-cairo-test.cc: Chase the cairo xlib constructor again.

2005-05-16  Kristian Høgsberg  <krh@redhat.com>

	Patch from Christian Persch (#3300):
	
	* configure.ac: Check for glib-mkenums.

	* glib/Makefile.am (poppler-enums.h): Generate glib enums at
	compile time.

	* glib/poppler-enums.c:
	* glib/poppler-enums.h: Removed.

2005-05-16  Kristian Høgsberg  <krh@redhat.com>
	
	* test/gtk-cairo-test.cc: Update this test case also.

	* poppler/CairoOutputDevX.cc: Track changes to cairo Xlib surface
	constructors.

	* poppler/CairoFontEngine.cc (cairo_font_face_destroy): Make this
	static.

Thu May 12 23:10:45 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler.gidl: add metadata file.

2005-05-12  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc: 
	* poppler/CairoOutputDevX.cc: 
	* poppler/CairoOutputDevImage.cc: 
	* test/gtk-cairo-test.cc: Update to latest cairo changes, patch
	from Jens Taprogge (#3281)

2005-05-11  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler.cc (poppler_get_backend, poppler_get_version): Add
	these functions so it's easy to tell if poppler is using cairo or
	splash and what version.

	* glib/test-poppler-glib.c (main): Print out version and backend.

2005-05-06  Kristian Høgsberg  <krh@redhat.com>

	* glib/Makefile.am (libpoppler_glib_la_LIBADD): Link poppler-glib
	against poppler.

	* qt/Makefile.am (libpoppler_qt_la_LIBADD): Ditto for qt.

	* poppler-glib.pc (Libs): Drop -lpoppler from link.

	* poppler-qt.pc (Libs): Ditto for qt.

	* configure.ac: Test for both libqt-mt.la and libqt-mt.so in that
	order.

2005-05-04  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc (CairoOutputDev::drawImageMask,
	CairoOutputDev::drawImage): Track cairo cvs API changes; use
	cairo_mask() and cairo_paint() for drawing image masks and images.

2005-05-04  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc: Fix matrix convention confusion.

2005-05-04  Kristian Høgsberg  <krh@redhat.com>

	Patches from Albert Astals Cid:
	
	* qt/poppler-page.cc (getText): Use QString::fromUtf8() instead of
	implicit latin1 cast constructor.
	
	* qt/test-poppler-qt.cpp (main): Use a QLabel for showing text
	instead of qDebug.

Wed May  4 02:31:05 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-document.cc:
	* glib/poppler-document.h:
	* glib/poppler-enums.c: (poppler_permissions_get_type):
	* glib/poppler-enums.h:
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler.h:

	Register a bunch of boxed types to test introspection, and for
	LBs.  Also, remove unused 'popper_document_save()' (-:

2005-05-01  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc:
	* poppler/CairoFontEngine.h:
	* poppler/CairoOutputDev.cc: Back out workaround for cairo 0.4.0
	font API and port to new cairo head.

2005-05-01  Jeff Muizelaar  <jeff@infidigm.net>

	* splash/SplashFTFont.cc (SplashFTFont::getGlyphPath):
	Use FT_LOAD_NO_BITMAP to make sure we get outlines loaded instead
	of bitmaps for use in FT_Outline_Decompose.

	Patch from Albert Astals Cid.

2005-05-01  Jeff Muizelaar  <jeff@infidigm.net>

	* goo/gmem.c: (gmalloc), (grealloc), (gfree):
	* goo/gmem.h: make memory functions use size_t instead of int.
	
	Patch from Takashi Iwai through Albert Astals Cid.

2005-04-30  Jeff Muizelaar  <jeff@infidigm.net>

	* qt/poppler-document.cc (Document::unlock) :
	* qt/poppler-qt.h (Document::unlock):
	Add const to the password argument.

	Patch from Albert Astals Cid.

2005-04-30  Jeff Muizelaar  <jeff@infidigm.net>

	* fofi/FoFiType1.cc (FoFiType1::parse):
	Don't assume Encoding array of Type1 fonts end in "foo def".
	http://partners.adobe.com/public/developer/en/font/T1_SPEC.PDF says
	"This sequence of assignments must be followed by an instance of the
	token def or readonly; such a token may not occur within the sequence
	of assignments." so it must end with "readonly" "def" "readonly def"
	(That is what most fonts are using and this is why it was not
	crashing)

	Patch from Albert Astals Cid.

Fri Apr 29 14:54:44 2005  Jonathan Blandford  <jrb@redhat.com>

	* goo/GooTimer.h: New class to do simple timing checks.

	* glib/poppler-document.c: Patch from Martin Kretzschmar to really
	set the PDF version correct.  Third time's the charm.

2005-04-29  Kristian Høgsberg  <krh@bitplanet.net>

	* configure.ac: Bump release to 0.3.1.

	* NEWS: Write up news for 0.3.1 release.

2005-04-28  Kristian Høgsberg  <krh@redhat.com>

	Patch from Martin Kretzschmar:

	* poppler/GlobalParams.cc: use UTF-8 as the default text encoding.
	Fixes Bug 2934.

2005-04-27  Jeff Muizelaar  <jeff@infidigm.net>

	* configure.ac:
	* poppler/FlateStream.cc:
	* poppler/FlateStream.h:
	* poppler/Makefile.am:
	* poppler/Stream.cc:
	* poppler/Stream.h: Add a reimplementation of FlateStream using
	zlib.

2005-04-27  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Catalog.cc (NameTree::lookup): Fix bsearch return value
	NULL check.  Found by Albert Astals Cid.

Tue Apr 26 13:13:42 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/test-poppler-glib.c (main): add a quick dump-to-text test.

2005-04-24  Kristian Høgsberg  <krh@redhat.com>

	* qt/Makefile.am (libpoppler_qt_la_SOURCES): Add poppler-private.h
	to SOURCES.

2005-04-23  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc: Use the right fileName for loading
	CID fonts (#3114).

2005-04-22  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Actually commit version number bump.

2005-04-22  Martin Kretzschmar  <martink@gnome.org>

	* poppler/CairoFontEngine.cc: declare matrix variable before the
	first goto. Fixes build with gcc 3.3.

Fri Apr 22 00:01:40 2005  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc: Hack around semi-broken cairo-0.4.0
	font API to fix the problem where some glyphs would show up at the
	wrong sizes.  We now create an FT_Face for each size and font
	combination we encounter, since an FT_Face can't be shared between
	several cairo_font_t.

Thu Apr 21 15:43:52 2005  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Outline.cc: 
	* poppler/Outline.h: Implement the documented behaviour for
	Outline::getItems() and OutlineItem::getKids() and make
	documentation more precise (Patch from Marco).

Thu Apr 21 02:25:20 2005  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc (CairoFont::getFont): Cache
	cairo_font_t's for a given CairoFont.  With this patch cairo will
	recognize glyphs coming from the same font as such and the glyph
	cache will actually work.

	* glib/poppler-document.cc (poppler_document_new_from_file): Add
	output device (cairo or splash) to PopplerDocument and initialize
	it in the constructor.

	* glib/poppler-page.cc (splash_render_to_pixbuf,
	cairo_render_to_pixbuf): Use output device from associated poppler
	document instead of creating a new one.

	* poppler-glib.pc.in (Requires): Add Requires: field.

	* poppler/Page.cc (loadThumb): Remove unecessary and buggy call to
	Stream::addFilters(), reported by Ryan Lortie (#3046).

2005-04-13  Jeff Muizelaar  <jrmuizel@nit.ca>

	* qt/poppler-page.cc (Page::getText):
	* qt/poppler-qt.h: add a getText method for getting
	the text on a page

	* qt/test-poppler-qt.c (PDFDisplay::PDFDisplay): 
	add the option to display the text on a page

	Patch from Albert Astals Cid.

Tue Apr 19 17:21:19 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-document.cc (poppler_document_get_property): Use
	%.2g instead.

Tue Apr 19 17:11:52 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-document.cc (poppler_document_get_property): Use %g
	instead of %f to avoid versioning like PDF-1.50000

Tue Apr 19 15:43:35 2005  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-action.cc (_poppler_action_new): Handle NULL links
	gracefully (fix from Jeff).

Tue Apr 19 00:20:08 2005  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Catalog.cc: Fix from Marco to make sure we always
	initialize Catalog::pageLabelInfo.

Sat Apr 16 14:53:15 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/Makefile.am: Create poppler-enums.[ch]

	* glib/poppler.h:
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler-action.h: Try to clean up the headers a bit

	* glib/poppler-document.cc:
	* glib/poppler-document.h: Add support for document data.
	Implemented as a lot of GObject properties. 

	* glib/poppler-enums.c:
	* glib/poppler-enums.h: New autogenerated files.

	* glib/test-poppler-glib.c: Test the new document metadata.  Seems
	to work nicely, other than the PDF string and View Prefs.

	* poppler/Catalog.cc:
	* poppler/Catalog.h: Extend to support PageLayout.

2005-04-14  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler-private.h:
	* glib/poppler.h: Patch from Marco Pesenti Gritti to set page
	orientaton.

2005-04-13  Jeff Muizelaar  <jrmuizel@nit.ca>

	* poppler/CairoOutputDevImage.cc (getBitmap): remove unused
	SplashBitmap. Patch from Albert Astals Cid.

2005-04-12  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Add fontconfig to PKG_CHECK_MODULES for the cairo
	backend too, since we shouldn't depend on cairo.pc to pull that in
	for us.

	* poppler/Makefile.am (INCLUDES): Add $(splash_includes) to
	INCLUDES to make sure the fontconfig include path is added when
	using the splash backend.

2005-04-09  Jeff Muizelaar  <jrmuizel@nit.ca>

	* poppler-qt.h:
	* poppler-document.cc (okToPrint, okToChange, okToCopy):
	Patch from Albert Astals Cid adding more metadata exports

2005-04-08  Kristian Høgsberg  <krh@redhat.com>

	* poppler-qt.pc.in (Libs): Add -lpoppler to Libs.

2005-04-07  Jeff Muizelaar  <jrmuizel@nit.ca>

	* configure.ac: redo the qt tests from Albert Astals Cid

2005-04-07  Jeff Muizelaar  <jrmuizel@nit.ca>

	* qt/poppler-document.cc:
	* qt/poppler-page.cc:
	* qt/poppler-qt.h:
	Patch from Albert Astals Cid adding consts and exporting some more
	metadata.

2005-04-07  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc: 
	* glib/poppler-document.h:
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler-private.h: Print to PS support from Marco Pesenti
	Gritti.

Thu Apr  7 12:25:39 2005  Jonathan Blandford  <jrb@redhat.com>

	* configure.ac: check for qt, not glib, when enabling the qt
	subdir

2005-04-06  Jeff Muizelaar  <jrmuizel@nit.ca>

	* .cvsignore, glib/.cvsignore, qt/.cvsignore:
	Add more things to .cvsignore.
	Patch from Martin Kretzschmar.

2005-04-06  Jeff Muizelaar  <jrmuizel@nit.ca>

	* poppler-page.cc (Page::Page, Page::~Page):
	Construct and deconstruct the PageData object.
	Patch from Albert Astals Cid.

2005-04-06  Jeff Muizelaar  <jrmuizel@nit.ca>

	* Makefile.am, configure.ac: Add configuration for qt wrapper.
	
	* poppler-qt.pc.in:
	* qt/Makefile.am:
	* qt/poppler-document.cc:
	* qt/poppler-page.cc:
	* qt/poppler-private.h:
	* qt/poppler-qt.h:
	* qt/test-poppler-qt.cpp:
	New files.

2005-04-05  Kristian Høgsberg  <krh@redhat.com>

	* NEWS: Attempt to sum up changes since 0.1.2.

	* configure.ac: Bump release to 0.2.0, add AC_DEFINEs for cairo
	and splash availability.

	* poppler/CairoFontEngine.cc: Disable hinting.

	* glib/poppler-page.cc (poppler_page_render_to_pixbuf): Choose
	either splash or cairo rendering, based on configure choice.
	(cairo_render_to_pixbuf): New function to render using the cairo
	backend.
	(splash_render_to_pixbuf): Split out the splash code to this
	function.

2005-04-04  Kristian Høgsberg  <krh@redhat.com>

	* ChangeLog: Add this entry to test commit mailer script.
	
	* TODO: Add reminder about using PDF font descriptors with
	fontconfig.

	* configure.ac: Add checks for mkstemp() and mkstemps().

	* glib/poppler-page.cc (poppler_page_find_text): Reverse
	y-coordinates so we return PDF style coordinates.

	From Maro Pesenti Gritti <mpgritti@gmail.com>:
	
	* configure.ac, poppler/Makefile.am: Check for fontconfig when
	we're building the splash backend.

	* glib/poppler-page.cc (poppler_page_get_text): New function to
	select text on page.

2005-04-04  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_find_text): Reverse list of
	matches so we get them in the right order.

2005-04-03  Martin Kretzschmar  <martink@gnome.org>

	* poppler/DCTStream.h: Wrap #include <jpeglib.h> in extern "C"
	Fixes build with unpatched libjpeg.

2005-04-02  Jeff Muizelaar  <jrmuizel@nit.ca>

	* poppler/Page.h:
	* poppler/Page.cc (Page::Page):
	Some initial infrastructure for supporting transitions.

2005-03-31  Kristian Høgsberg  <krh@redhat.com>
	
	* glib/poppler-page.cc (poppler_page_render_to_pixbuf): Clip
	output to destination pixbuf and fix RGB order.

2005-03-31  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_find_text): New function to
	seach a page for occurrences of a given text string.

	* glib/poppler-page.cc: Add g_return_if_fail() checks to a couple
	of functions.
	
Thu Mar 31 00:26:20 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-page.cc:
	* glib/poppler-page.h (poppler_page_get_link_mapping,
	poppler_page_free_link_mapping): New functions to get a mapping of
	links to locations on the current document.

2005-03-30  Jeff Muizelaar <jrmuizel@nit.ca>

	* poppler/DCTStream.h: change x to unsigned int to eliminate
	comparision warning

2005-03-30  Jeff Muizelaar <jrmuizel@nit.ca>

	* poppler/Catalog.cc: delete pageLabelInfo on deconstruction

Tue Mar 29 23:07:17 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-page.h: Reformat.

Tue Mar 29 22:49:15 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-action.[ch]: New item to encapsulate links.
	* glib/poppler-document.[ch] (poppler_index_iter_get_action): New
	function to get the action.  Also, fix some warnings.
	* glib/poppler-private.h (_poppler_action_new): New function.
	* glib/test-poppler-glib.c: Fix warnings.

Tue Mar 29 02:36:00 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-document.[ch] (PopplerIndexIter): Add an iter to
	extract the index from the doc.  Includes a bad hack, for now.

Mon Mar 28 22:02:07 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-page.cc:
	* glib/poppler-page.h (poppler_page_get_thumbnail_size): New
	function. 
	* poppler-glib.pc.in: add -lpoppler-glib to the libs line.

2005-03-28  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Page.cc (loadThumb): Backend agnostic method for
	extracting an embedded thumbnail iamge.

	* poppler/Dict.cc (lookupInt): New convenience method.

	* glib/poppler-page.cc (poppler_page_get_thumbnail): New glib
	function for getting the embedded thumbnail image for a page.

2005-03-25  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Check for fontconfig for glib bindings.

2005-03-24  Kristian Høgsberg  <krh@redhat.com>

	* glib/Makefile.am: Use POPPLER_GLIB_CFLAGS and POPPLER_GLIB_LIBS
	instead of GTK_TEST_*.  Reported by Adam Jackson <ajax@nwnk.net>.

2005-03-23  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Catalog.cc (indexToLabel, labelToIndex): Add stricter
	checking of incoming labels and indices.

	* glib/test-poppler-glib.c (main): Change test program to take the
	page label from the command line.

	* glib/poppler-page.cc:
	* glib/poppler-page.h: Add poppler_page_get_index() and rename
	popper_page_get_dimension() to popper_page_get_size()

2005-03-22  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc: Implement poppler_document_save().
	
	* glib/poppler-document.h: Add prototype and format headers
	properly.

2005-03-22  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Fix --disable-popper typo reported by Albert.
	Require exactly cairo 0.4 since CVS cairo has API changes.

2005-03-22  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Array.cc:
	* poppler/Array.h: Add getString() convenience method.
	
	* poppler/Catalog.cc:
	* poppler/Catalog.h: Optimize lookup of named destinations.

2005-03-21  Kristian Høgsberg  <krh@redhat.com>
	
	* NEWS, TODO: Update these.

2005-03-21  Kristian Høgsberg  <krh@redhat.com>

	From Albert Astals Cid <tsdgeos@yahoo.es>:
	
	* poppler/Catalog.cc, poppler/Catalog.h: Parse PageMode setting
	from the Catalog dict and expose it through getPageMode() method.

2005-03-21  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc:
	* glib/poppler-document.h: Expose the document title as a GObject
	property.
	
	* glib/poppler-page.cc: Expose the page label as a GObject
	property.
	
	* glib/poppler-private.h: Add the page index to PopplerPage.
	
	* glib/test-poppler-glib.c: Print out page label and document
	title.
	
	* poppler/Catalog.cc:
	* poppler/Catalog.h: Add page label accessors.
	
	* poppler/PageLabelInfo.cc:
	* poppler/PageLabelInfo.h: New files.

	* poppler/Makefile.am: Add new files to sources.
	
2005-03-20  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc:
	* glib/poppler-page.h:
	* glib/poppler.cc:
	* poppler/Array.cc:
	* poppler/Array.h:
	* poppler/Catalog.cc: Fix up filenames in #include statements and
	comments.

2005-03-19  Kristian Høgsberg  <krh@redhat.com>

	Land the first bits of the glib wrapper.

	* Makefile.am:
	* configure.ac: Add new glib subdirectory and configure options
	for glib wrapper.
	
	* glib/Makefile.am:
	* glib/poppler-document.cc:
	* glib/poppler-document.h:
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler-private.h:
	* glib/poppler.cc:
	* glib/poppler.h:
	* glib/test-poppler-glib.c:
	* poppler-glib.pc.in: New files.

2005-03-16  Jeff Muizelaar  <jrmuizel@nit.ca>

	From Dan Sheridan <dan.sheridan@postman.org.uk>

	* poppler/XRef.cc (XRef::checkEncrypted):
	The key length should be 5 for revision 2 documents.
	
2005-03-11  Kristian Høgsberg  <krh@redhat.com>

	From  Jeff Muizelaar  <jrmuizel@nit.ca>:
	
	* poppler/CairoOutputDev.cc (CairoOutputDev::drawImageMask): Use
	getLine instead of getPixel.
	
	* configure.ac: Add checks for libjpeg.

	* DCTStream.cc, DCTStream.h, Stream.cc, Stream.h, Makefile.am:
	Conditionally use libjpeg instead of xpdf jpeg decoder.
	
2005-03-10  Kristian Høgsberg  <krh@redhat.com>

	From Jeff Muizelaar <jrmuizel@nit.ca>:

	* poppler/CairoFontEngine.cc (CairoFontEngine::getFont):
	Don't print "Type 3 font!" message.

	* poppler/CairoOutputDev.cc (CairoOutputDev::drawImageMask):
	Enable image mask drawing and do it properly, albeit slowly.

	* poppler/CairoOutputDev.h
	(CairoOutputDev::interpretType3Chars): Return true so that 
	Gfx.cc turns type3 characters into calls to drawImageMask
	
2005-03-09  Kristian Høgsberg  <krh@redhat.com>

	* NEWS: Describe 0.1.2 (and 0.1.1) release.

	* configure.ac: Bump poppler version to 0.1.2

2005-03-09  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Bump cairo requirement to 0.4.

2005-03-04  Kristian Høgsberg  <krh@redhat.com>

	Patch from Jeff Muizelaar <jrmuizel@nit.ca>.  Changed to allocate
	glyphs using gmalloc.

	* poppler/CairoOutputDev.cc (CairoOutputDev::drawString):
	Implement drawString instead of drawChar. This change should
	make clipping to a text path work and has a performance
	improvement. Currently the code is a little ugly because we
	can't concat matrices to cairo without losing our current font.

	* poppler/CairoOutputDev.h (CairoOutputDev::useDrawChar):
	Tell Gfx.cc that it should use drawString instead of drawChar.

2005-03-04  Kristian Høgsberg  <krh@redhat.com>

	* test/gtk-cairo-test.cc (view_load): 
	* test/gtk-splash-test.cc (view_load): Fix missing return
	statement, and remove unused variables.

	* configure.ac: Add configure option to enable the default KDE
	flags as described by Albert Astals Cid <tsdgeos@yahoo.es>.

	* TODO: Update with Jeff's items.

	* .cvsignore:
	* */.cvsignore: Add these to silence CVS.
	
	* configure.ac: Implement same check for gtk+-2.0 tests as for
	cairo.

2005-03-04  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Only fail hard in check for cairo if the user
	specified --enable-cairo-output (from Brad Hards
	<bradh@frogmouth.net>).  Print summary of configure results at the
	end of configure script.

	* poppler/poppler-config.h: Remove this file (noticed by Brad
	Hards <bradh@frogmouth.net>).

2005-03-03  Kristian Høgsberg  <krh@redhat.com>

	Patch from Jeff Muizelaar <jrmuizel@nit.ca>:

	* poppler/CairoOutputDev.cc (CairoOutputDev::drawImage,
	CairoOutputDev::drawImageMask): destroy the image surface and
	free the image buffer.
	
2005-03-03  Kristian Høgsberg  <krh@redhat.com>

	* autogen.sh: Add -i to autoreconf invocation.

	* autogen.sh: Add to CVS.

2005-03-01  Kristian Høgsberg  <krh@redhat.com>

	* poppler/*.h: Take config.h out of header files.

	* configure.ac: Bump release to 0.1.1 to build a tar ball that
	works with CVS evince.

	* poppler.pc.in (Cflags): Change include dir to be poppler.

	* poppler/Makefile.am (poppler_include_HEADERS): Add splash and
	cairo headers.

2005-02-27  Kristian Høgsberg  <krh@redhat.com>

	* test/gtk-cairo-test.cc: Add cairo test case.

	* configure.ac, poppler/Makefile.am, poppler/Cairo*: Add Alex
	Larsons cairo output device.
	
	* configure.ac, Makefile.am: Make splash backend conditional. 
	
	* test/*: Add optional GdkRGB based test program (taken from
	evince).
	
	* goo/*: rename files and functions to GooHash, GooString etc. to
	avoid nasty glib clash.
	
	* poppler.pc.in: New file.

	* configure.ac: Combining bits from evince configure.ac and
	removing checks only required by the xpdf applications.

	* everything: Created poppler as a fork of xpdf.
