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.
