1.19.13 (unstable):

2011-10-17  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Print Standard: Avoid page break spaces in the middle of pages.

	* glom/print_layout/canvas_print_layout.[h|cc]: fill_with_data():
  Add an avoid_page_margins parameter, so we can choose to always move items
  past the margins on to the next page while setting their data.
	* glom/print_layout/print_layout_utils.[h|cc]: create_standard():
	Add an avoid_page_margins parameter, so we can choose to do this later instead
	when setting the data, to avoid big gaps that are later moved down into the 
	middle of the page.
	do_print_layout(): Add an avoid_page_margins parameter here too, passing 
	it to fill_with_data().
	* glom/mode_data/box_data_details.cc: print_layout(): Do not avoid page 
	margins when creating, because that will happen when expanding items.
	Avoid the page margins when setting the details.
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	on_menu_insert_create_standard(): Avoid page margins when creating.
	However, those gaps could be left in the middle of the page when printing,
	because some items may be expanded. We need a way to squash that space
	later when it is unecessary.

2011-10-15  Jasper Lievisse Adriaanse <jasperla@gnome.org>

	Remove glibc-specific function call.

	* tests/python/test_python_module.cc: Fix build on OpenBSD (and
	other non-glibc systems) by wrapping calls to __libc_freeres() in
	correct #ifdefs.
	Bug #660496

2011-10-14  Murray Cumming  <murrayc@murrayc.com>

	Fix DTD to fix make check.

	* glom/glom_document.dtd: Mention several attributes that were added 
	in the last year or so. The new examples/test/ uses them.

2011-10-14  Murray Cumming  <murrayc@murrayc.com>

	Tests: Fix cast error when using dlerror().

	* tests/python/test_load_python_library.cc: Noticed on OpenBSD in 
	bug #660495 (Jasper Lievisse Adriaanse). 
	I don't know why this worked on Linux.

2011-10-14  Murray Cumming  <murrayc@murrayc.com>

	Examples: Remove other uses of pygtk.

	* examples/example_lesson_planner.glom: Remove an old button script 
	from the XML though it was not used anymore in the UI.
	* examples/example_project_manager.glom: Contacts: Remove the Test
	button. It is in the small business example already instead.

2011-10-14  Murray Cumming  <murrayc@murrayc.com>

	Small Business Example: Port pygtk code to PyGObject+Introspection.

	* examples/example_smallbusiness.glom: This fixes this crash, which 
	apparently happens when trying to use pygtk when pygobject-3 is 
	already loaded:
	Warning: specified class size for type `PyGtkGenericCellRenderer' is 
	smaller than the parenttype's `GtkCellRenderer' class size

	Bug #661766 (André Klapper)

2011-10-14  Murray Cumming  <murrayc@murrayc.com>

	List: Actually show custom choices, instead of crashing.

	* glom/mode_data/datawidget/cellcreation.cc: create_cell(): Call
	set_choices_fixed() if appropriate.
	* glom/mode_data/datawidget/cellrenderer_dblist.cc: on_editing_started():
	Replace a g_assert with a warning to std::cerr, in case this happens 
	again, particularly now that we know when it can happen - if there is
	no text-column set.
	Bug #661764 (André Klapper)

2011-10-14  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Avoid grouping items at the tops of pages.

	* glom/print_layout/print_layout_utils.[h|cc]: move_fully_to_page():
	Change this to needs_move_fully_to_page(), so we can decide later how
	much to move the items.
	* glom/print_layout/canvas_print_layout.[h|cc]: move_items_below_item():
	Rename to move_items_down(), not taking an item, and ignoring the x
	dimension, moving everything down.
	Remember the highest item that needs moving down more, because it 
	is in a page margin, then move everything below it down by the same 
	offset. Keep doing that until no items are in margins, gradually adding 
	pages. This is a simple form of pagination, and not a particularly 
	efficient one.

2011-10-14  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Another expansion fixes.

	* glom/print_layout/print_layout_utils.[h|cc]: move_fully_to_page():
	Move generic CanvasItemMovables instead of just CanvasLayoutItems.
	* glom/print_layout/canvas_print_layout.cc: move_items_below_item():
	Likewise.

2011-10-14  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Increase page count correctly when expanding portals.

	* glom/print_layout/canvas_print_layout.cc: move_items_below_item():
	Correct an off-by-one error in the calculation of the number of pages
	needed.

2011-10-14  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Create standard: Use the multiline text formatting.

	* glom/print_layout/print_layout_utils.cc: create_standard():
	Make text fields multiline if they are multiline on the details 
	layout.

2011-10-14  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Small improvement.

	* glom/print_layout/canvas_print_layout.cc: move_items_below_item():
	Check that we don't move the item itself.

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Code improvement.

	* glom/print_layout/print_layout_utils.[h|cc]: Remove the hacky get_units()
	function.

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Create Standard: Move items to the next page when necessary.

	* glom/libglom/data_structure/layout/layoutitem.[h|cc]: Add 
	set_print_layout_position_y() for convenience.
	* glom/print_layout/print_layout_utils.cc: create_standard(): Use
	move_fully_to_page().

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Moved some code around.

	* glom/print_layout/canvas_print_layout.[h|cc]: Moved get_page_for_y() and 
	move_fully_to_page() to:
	* glom/print_layout/print_layout_utils.[h|cc]:

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	PrintLayout: Standard: Do not move to next page unnecessarily.

	* glom/print_layout/canvas_print_layout.cc: get_page_for_y(): Correct this
  calculation.

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	About dialog: Show the version number.

	* glom/application.cc: Use set_version().

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	Deleting tables: Remove all auto-increment rows.

	* glom/navigation/box_tables.cc: Remove the autoincrement rows for all 
	autoincrement fields.

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	Deleting tables: Remove the auto-increment too.

	* glom/libglom/db_utils.[h|cc]: Added remove_auto_increment().
	* glom/navigation/box_tables.cc: on_adddel_Delete(): Remove the primary key's
	autoincrement too.
	Bug #661653 

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	DbUtils: Add some parameter checks to the autoincrement methods.

	* glom/libglom/db_utils.cc: Otherwise we risk having an empty where clause,
	and doing unwanted things to the entire table.

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	DbUtils: Avoid some repeated code.

	* glom/libglom/db_utils.cc: Add a utility function for adding the where 
	clause for the auto-increments table.

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	Use Glib::ustring::compose() instead of concatenation for translatable strings.

	* glom/bakery/dialog_offersave.cc:
	* glom/import_csv/dialog_import_csv.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	* glom/mode_design/layout/combobox_relationship.cc:
	* glom/mode_design/layout/dialog_layout_details.cc:
	* glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.cc:
	* glom/navigation/box_tables.cc:
	* glom/utils_ui.cc: Let translators arrange built strings.

2011-10-13  Ben Konrath  <ben@bagu.org>

	Add example document to test field formatting.

	* examples/tests/example_field_formatting_test.glom: New file.

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	Print/Standard: Do print, not preview.

	* glom/mode_data/box_data_details.cc: This is now the same as when 
	printing a non-standard print layout.

2011-10-13  Murray Cumming  <murrayc@murrayc.com>

	Replace Gtk::Table with Gtk::Grid in the source code.

	* glom/mode_design/fields/dialog_fielddefinition.h: Use the table 
	(from the .glade file) via Gtk::Widget*.
	* ui/developer/window_print_layout_edit.glade: Replace the GtkTable
	with a GtkGrid.
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	Adapt.
	There are still GtkTables in the other .glade files, but this at least
	lets us build with gtkmm 3.3/3.4 even with --enable-warnings=fatal.

2011-10-12  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Avoid some code duplication.

	* glom/print_layout/print_layout_utils.[h|cc]: moved get_page_height()
	from CanvasPrintLayout to here. And actually get the margins.
	* glom/print_layout/canvas_print_layout.cc: get_page_y_start_and_end():
	Use it here.
	get_page_height(): Forward to the PrintLayoutUtils versions, passing 
	the extra parameters.

2011-10-12  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Move items to next page when expanding portals.

	* glom/print_layout/canvas_print_layout.[h|cc]: move_items_below_item():
	Use a new move_fully_to_page() method to make sure that items are never 
	in the margins if that is possible, when expanding related records 
	portals for real data.
	Also add extra pages when necessary.

2011-10-12  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Related Records: Move others down when expanding.

	* glom/print_layout/canvas_layout_item.[h|cc]: Added 
	move_items_below_item().
	* glom/print_layout/canvas_print_layout.[h|cc]: fill_with_data_portal():
	move other items lower when changing the size of the portal's table.

2011-10-12  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Related Records: Expand according to min/max rows count.

	* glom/print_layout/canvas_layout_item.[h|cc]: 
	Moved get_canvas_table_cell_child() here from CanvasPrintLayout.
	create_canvas_item_for_layout_item(): Move the table-child creation 
	code into add_portal_rows_if_necessary().
	* glom/print_layout/canvas_print_layout.[h|cc]: fill_with_data_portal():
	Add rows, up to the maximum, according to the number of database rows.
	* glom/print_layout/print_layout_utils.cc: create_standard():
	Set a simple default height for one row, but set a min of 1 and a max 
	of 100 so it will expand later.

2011-10-11  Murray Cumming  <murrayc@murrayc.com>

	Update the example files for the portal rows count change.

	* examples/example_film_manager.glom:
	* examples/example_music_collection.glom:
	* examples/example_project_manager.glom:
	* examples/example_smallbusiness.glom: Adapt to new document structure.

2011-10-11  Murray Cumming  <murrayc@murrayc.com>

	Related Records Portals: Change rows count to min and max counts.

	* glom/glom_document.dtd: Adapted.
	* glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: 
	set_rows_count(): Return a min and max, and change it from double to 
	gulong.
	* glom/libglom/document/document.cc: load_after(), save_before():
	Store it in the document. The old XML attribute was new in Glom 1.19
	anyway, so we can change it.

	* ui/developer/window_data_layout.glade: Add an extra SpinButton, 
	adjust the labels, and add explanatory tooltips.
	* glom/mode_design/layout/dialog_layout_details.[h|cc]: Adapted.

	* glom/mode_data/db_adddel/db_adddel.[h|cc]: set_height_rows():
	Take the min and max.
	construct_specified_column(): Increase the size if appropriate when 
	there are more database rows to show.
	* glom/mode_design/layout/dialog_layout_list_related.cc:
	* glom/print_layout/print_layout_utils.cc:
	* glom/libglom/db_utils.cc:
	* glom/mode_data/box_data_list_related.cc: Adapted.

2011-10-11  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Create Standard: Use the full page width.

	* glom/print_layout/print_layout_utils.cc: Instead of hard-coding the 
	width. However, the field title widths are still hard-coded.

2011-10-11  Murray Cumming  <murrayc@murrayc.com>

	Small fixes to Film Manager example.

	* examples/example_film_manager.glom: Remove the unused (and hiddent)
	Teams table.
	Contacts: Remove the unnecessary groups around the related records 
	portals in the notebook.

2011-10-11  Murray Cumming  <murrayc@murrayc.com>

	CanvasPrintLayout: Wipe empty rows when filling with data.

	* glom/print_layout/canvas_print_layout.cc: fill_with_data_portal():
	Otherwise, the field names appear on the printout, left over from 
	the default non-data preview.

2011-10-11  Murray Cumming  <murrayc@murrayc.com>

	TranslatableItem: Make get_title() virtual.

	* glom/libglom/data_structure/translatable_item.h: Make get_title()
	virtual, like get_title_or_name() already is, so we can make get_title()
	useful generically via the base class.
	* glom/libglom/data_structure/layout/layoutitem_field.[h|cc]:
	* glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]:
	* glom/libglom/data_structure/layout/report_parts/layoutitem_fields
	ummary.[h|cc]: Add get_title() overrides.
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/print_layout/print_layout_utils.cc: Use get_title() instead of 
	get_title_or_name(), to avoid showing names of intentionally title-less 
	groups and notebooks.

2011-10-11  Murray Cumming  <murrayc@murrayc.com>

	LayoutItem_Portal: Make get_title_or_name() useful.

	* glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]:
	Add an override for get_title_or_nam(), so that callers do not need to 
	special-case portals compared to other groups.
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_portal.cc:
	* glom/mode_data/flowtablewithfields.cc:
	* glom/print_layout/print_layout_utils.cc: Use get_title_or_name() 
	instead of more complicated code.

2011-10-11  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Standard: Handle related records portals too.

	* glom/print_layout/print_layout_utils.cc: create_standard():
	If the group is a portal, just add that portal item, setting appropriate
	sizes.

2011-10-11  Murray Cumming  <murrayc@murrayc.com>

	Simplify OptionEntry code.

	* glom/glom_create_from_example.cc:
	* glom/main.cc: Reuse one OptionEntry instance.

2011-10-10  Murray Cumming  <murrayc@murrayc.com>

	Cope with Gnome::Gda::DataModelIter::get_value_at() throwing.

	* glom/libglom/connectionpool_backends/postgres.cc: Add a catch/try
	around get_value_at(), because the latest version of libgdamm can 
	throw an exception there.

2011-10-10  Murray Cumming  <murrayc@murrayc.com>

	Use gdk_window_get_device_position() instead of gdk_window_get_pointer().

	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/buttonglom.cc:
	* glom/mode_data/datawidget/checkbutton.cc:
	* glom/mode_data/datawidget/combo.cc:
	* glom/mode_data/datawidget/combo_as_radio_buttons.cc:
	* glom/mode_data/datawidget/datawidget.cc:
	* glom/mode_data/datawidget/entry.cc:
	* glom/mode_data/datawidget/label.cc:
	* glom/mode_data/datawidget/textview.cc:
	* glom/mode_data/db_adddel/db_adddel.cc:
	* glom/mode_data/flowtablewithfields.cc:
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/notebooklabelglom.cc: A fairly simple search/replace.