1.19.12:

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

	Really use the goocanvasmm RGBA properties.

	* glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
	* glom/mode_design/layout/layout_item_dialogs/dialog_line.cc: Use 
	Gtk::ColorButton::get_rgba() instead of get_color.
	* glom/mode_design/layout/dialog_layout_list_related.[h|cc]: Do not save 
	color details if they are not shown in the UI.
	 
2011-10-10  Murray Cumming  <murrayc@murrayc.com>

	Require the latest goocanvasmm.

	* configure.ac: Require goocanvasmm 1.90.6 because of the new RGBA properties.

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

	glom_create_from_example: --help: Add a hint about when self-hosting is used.

	* glom/glom_create_from_example.cc: Add some text to the --server-hostname 
	option.

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

	glom_create_from_example: Support central-hosting too.

	* glom/glom_create_from_example.cc: Allow a host name, port, and username to 
	be specified, and the password to be entered on stdin.
	* glom/libglom/db_utils.[h|cc]: Added get_unused_database_name():
	* glom/frame_glom.cc: Added a TODO that we should use it here too instead of 
	the similar code that is mixed up with the dialog code.
	* glom/libglom/connectionpool.h: Remove unused m_host member variable.

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

	Added the glom_create_from_example command-line utility.

	* Makefile_libglom.am:
	* glom/glom_create_from_example.cc: This command-line utility takes an
	example .glom file, outputs a new non-example .glom file and puts the 
	example data, if any, in the database.
	Right now, it assumes that you want self-hosting, so it creates the 
	database files locally.  
	This builds when libglom builds. It does not require the glom application.

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

	Added Utils::get_file_*_without_extension().
	
	* glom/application.[h|cc]: Moved get_file_uri_without_extension() to 
	* glom/libglom/utils.[h|cc]: And added get_file_path_without_extension().

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

	Fix make check with --enable-warnings=fatal.

	* glom/utility_widgets/eggspreadtablemm/test_spreadtablednd.cc:
	drop_possible handlers: Adapt to the new meanin of the return type.

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

	Fix the build with --enable-warnings=fatal.

	* glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.cc:
	Signal callbacks: Actually use drop_possible.

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

	Fields: Adapt choices fields when changing field names.

	* glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
	Added change_field_item_name().
	* glom/libglom/data_structure/layout/layoutgroup.cc: change_field_item_name():
	Change the formatting too, by calling the new method.
	* glom/libglom/document/document.cc: change_field_name(): Change the default 
	formatting of fields too.
	Bug #661075

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

	Print Layout: Really print additional pages.

	* glom/print_layout/printoperation_printlayout.cc: on_draw_page(): 
  Use Cairo::Context::translate() before calling Goocanvas::Canvas::render().
  Bug #660553 (Thanks to David King and Damon Chaplin)

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

	Document: Avoid writing some unnecessary XML nodes.

	* glom/libglom/document/document.cc: <formatting>: Do not write the 
  choices_related_show_all attribute if there are no choices.
	Do not write numeric formatting attributes if the field type is not numeric.
	* examples/example_film_manager.glom: Resaved.
	
2011-10-06  Murray Cumming  <murrayc@murrayc.com>

	Fix DTD validation.

	* glom/glom_document.dtd: Change the order of some sub-nodes. Apparently 
	we must specify a sequence, even though we do not really care.
	* glom/libglom/document/document.cc: load_before(), save_after(): do not 
	save some irrelevant details for calendard portals.
	Portals assume that no rows count means the default of 6, to make the files 
	less verbose.
	* examples/example_film_manager.glom:
	* examples/example_lesson_planner.glom:
	* examples/sqlite/test_sqlite_music/test_sqlite_music.glom: Resaved/Fixed.

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

	Examples: Details layout: Remove unnecessary "main" groups.

	* examples/example_lesson_planner.glom:
	* examples/example_music_collection.glom:
	* examples/example_project_manager.glom:
	* examples/example_smallbusiness.glom: Move overview and details to top,
	instead of in a top-level group.
	* examples/example_film_manager.glom: Remove unnecessary Details titles.
	These look silly when the first item is a group with its own title.

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

	Film Manager example: Scenes: Make the Props and Costume tabs work. 

	* examples/example_film_manager.glom: The relevant tables and relationships
	did not exist. Also remove all "main" top-level groups.

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

	TreeModelDb: fill_values_if_necessary(): Avoid a crash.

	* glom/mode_data/datawidget/treemodel_db.cc: Do not try to use a null
	GdaDataModel, which can happen if a SQL query fails.

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

	Document: get_data_layout_groups_default(): Simplify the default structure.

	* glom/libglom/document/document.cc: Do not create the useless "main" 
	top-level group for details layouts.

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

	Fix small bugs in commented-out debugging print statements.

	https://bugzilla.gnome.org/show_bug.cgi?id=661009

	* glom/libglom/db_utils.cc: Change field to layout_item. Move print
	statement to be after the assignment to
	field_used_in_relationship_to_one.

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

	Details: Do not enable drag-and-drop by default.

	* glom/utility_widgets/flowtable.cc: Turn of drag-and-drop by default in 
	the EggSpreadTableDnd
	* glom/mode_data/flowtablewithfields.[h|cc]: Added set_enable_drag_and_drop().
	* glom/mode_data/box_data_details.[h|cc]: Added set_enable_drag_and_drop(), 
	calling the FlowTableWithFields.
		
	* glom/application.[h|cc]: Rename the Show Layout Toolbar menu item to 
	Drag and Drop Layout, though that is a bad name and I would like a better one.
	* glom/frame_glom.[h|cc]:  show_layout_toolbar(): Rename to 
	set_enable_layout_drag_and_drop().
	* glom/mode_data/notebook_data.[h|cc]: Rename show_layout_toolbar() to 
  set_enable_layout_drag_and_drop() and make it enable dnd as well as showing 
  the toolpallette. The toolpalette is then a visual indication that 
  drag-and-drop is possible.
	* glom/mode_data/test_flowtablewithfields.cc: Add a sub-group and enable 
	drag and drop.
	
2011-10-06  Murray Cumming  <murrayc@murrayc.com>

	Update EggSpreadTable tests.

	* glom/utility_widgets/eggspreadtablemm/test_spreadtablednd.cc: Fix a crash.
	* glom/utility_widgets/test_flowtable.cc:
	* glom/utility_widgets/test_flowtable_dnd.cc: Adapt to the changed API.

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

	Update EggSpreadTable

	* glom/utility_widgets/eggspreadtable/: Update from libegg with Tristan's 
	changes.
	* glom/utility_widgets/eggspreadtablemm/: Adapt.

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

	Move do_print_layout() to PrintLayoutUtils.

	* glom/application.[h|cc]: Remove the new print_layout(PrintLayout) override.
	* glom/frame_glom.[h|cc]:
	* glom/mode_data/box_data_details.cc: Adapted, using 
  PrintLayoutUtils::do_print_layout() instead.

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

	PrintOperation_PrintLayout: Move to print_layout/:
	
	* Makefile_glom.am:  Mention the changed paths.
	* glom/frame_glom.cc: Adapted.

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

	PrintLayoutUtils: Move to print_layout/

	* Makefile_glom.am: Mention the changed paths.
	* glom/mode_data/box_data_details.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.cc: Adapted.

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

	Details: Print: Use a standard print layout instead of HTML.

	* glom/frame_glom.[h|cc]: Add a do_print_layout() that takes a PrintLayout
	instead of just a print layout name.
	* glom/application.[h|cc]: Add a  do_print_layout() that forwards to 
  Frame_Glom.
	* glom/mode_data/box_data_details.[h|cc]: print_layout(): Instead of 
	generating HTML and showing it in a browser, create a standard print layout 
	and offer it via a normal printing dialog. This is at least as good (not 
	very good yet) as our generated HTML, but simpler and more normal.
	Remove any code that used the old XML+XSLT=HTML way for details.
	
	We still use the generated HTML for the list view, as if it was just another
	report. Maybe we can improve that in future too.

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

	Print Layout: Move create_standard() into a utils file.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]: Move
	create_standard to 
	* glom/print_layout_utils.[h|cc] so we can use it elsewhere too.
	* Makefile_glom.am: Mentino the new file.

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

	Find: Get criteria even when a field is on the layout twice.

	* glom/mode_data/flowtablewithfields.cc: get_field_value(): 
	Look at all the widgets for this field, instead of just the first one, 
	and keep looking until we find a non-empty value.
	This is still rather arbitrary, but this method is only used for 
	find criteria, or should be.

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

	Find Mode: Do not show data in related records.

	* glom/mode_data/box_data_portal.[h|cc]: Add a virtual set_find_mode().
	* glom/mode_data/box_data_list_related.h: Add a set_find_mode() 
	override here which calls it on the DbAddDel.
	* glom/mode_data/db_adddel/db_adddel.h: Document the existing 
	set_find_mode() more.
	* glom/mode_data/flowtablewithfields.[h|cc]: Add set_find_mode(), which 
	calls it on all child portals and flowtables and calls it later when 
	creating them.
	* glom/mode_find/box_data_details_find.cc: Call set_find_mode() on the 
	FlowTable.
	This also affects the Find button next to ID fields.

2011-09-30  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Create Standard Layout: Support multiple pages.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	create_standard(): Support multiple pages, trying to keep out of the margins.
	* glom/print_layout/canvas_print_layout.cc: add_layout_group_children():
  Do not add canvas items that were not able to handle the layout item, such 
  as buttons. 

2011-09-30  Murray Cumming  <murrayc@murrayc.com>

	Fix the DTD.
	
	* glom/glom_document.dtd: Fix my typo to fix make check.

2011-09-30  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Allow multiple pages.

	* glom/libglom/data_structure/print_layout.[h|cc]: Add get/set_page_count().
	* glom/libglom/document/document.cc: load_after(), save_before():
	Store the page count in the document.
	* glom/glom_document.dtd: Mention the new attribute.
	
	* glom/print_layout/canvas_print_layout.[h|cc]: Add get/set_page_count()
	and get_page_bounds().
	update_page_bounds(): Move the margin creation into here, and create 
	margins for all pages.
	* glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
  Added update_grid_for_new_size().
	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]: Add 
	Add Page and Delete Page menu items, though we need to rearrange the menus
	more sensibly.

	* glom/printoperation_printlayout.cc: on_begin_print(), on_paginate():
  Set the number of pages.
  on_draw(): Render only the specified page's bounds from the GooCanvas.
  However, this is not working for any page but the first one.
  Some cairo transformation might be necessary.

2011-09-30  Murray Cumming  <murrayc@murrayc.com>>

	Instantiation test: warn if the widget is too big for small screens.

	* tests/test_glade_derived_instantiation.cc: Actually show the window
	(Is there a way to get the size without showing it) and warn if it is too 
	big, but do not fail yet.
	Note that this is very dependent on the theme in use, though maybe we 
	can set that at runtime for the test.

2011-09-30  Murray Cumming  <murrayc@murrayc.com>

	Field Formatting window: Make it slightly less tall.

	* ui/developer/dialog_layout_field_properties.glade: Arrange two radio 
	buttons horizontally instead of vertically. But this window is still too tall.
	See https://bugs.launchpad.net/ubuntu/+source/glom/+bug/863016

2011-09-29  Jasper Lievisse Adriaanse <jasperla@gnome.org>

	Remove glibc-specific function call.

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

2011-09-29  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Add experimental Create Standard feature.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	Add an Insert/Create Standard Layout menu item which creates a layout 
	similar to the details layout.

2011-09-29  Murray Cumming  <murrayc@murrayc.com>

	Dialog_Choose_ID: Work around a crash in GTK+.

	* glom/mode_data/datawidget/dialog_choose_id.cc: Remove the Box_Data_List 
	from the parent container (we added it earlier), to avoid a crash, though 
	it would be good to fix that properly and generically.
	Bug #660347

2011-09-29  Murray Cumming  <murrayc@murrayc.com>

	build_simple_where_expression(): Check input parameters.

	* glom/libglom/utils.cc: build_simple_where_expression(): Check for an 
	empty key field, which can happen during debugging.

2011-09-29  Murray Cumming  <murrayc@murrayc.com>

	Glade utils: Catch generic exceptions.

	* glom/glade_utils.h: Though this only happens when gtkmm has not been 
	initialized.

2011-09-28  Murray Cumming  <murrayc@murrayc.com>

	Related Records: Fix bug with a blank row when there is only one row. 

	* glom/libglom/connectionpool.[h|cc]: Added get_backend_supports_cursor().
	* glom/mode_data/datawidget/treemodel_db.cc: refresh_from_database():
	Call that method, so we can avoid using GdaDataAccessWrapper unless 
	necessary. That avoids an apparent bug with GdaDataAccessWrapper returned 
	a row of all-nulls if there is only one row. See libgda bug #660344 .
	This is probably a performance improvement anyway.

2011-09-27  Murray Cumming  <murrayc@murrayc.com>

	Require the latest gtkmm.

	* configure.ac: Require gtkmm 3.2.0 to keep things simple.

2011-09-27  Murray Cumming  <murrayc@murrayc.com>>

  libglom::LayoutItem_Portal: Added get_suitable_table_to_view_details().

	* glom/base_db.[h|cc]: Move the get_portal_navigation_relationship_automatic()
	and get_suitable_table_to_view_details() utility functions to: 
	* glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: Also
	move other privately-used utility functions here too, from Base_DB.
	* glom/mode_design/layout/dialog_layout_calendar_related.cc: update_ui():
	* glom/mode_design/layout/dialog_layout_list_related.cc: update_ui():
	* glom/mode_data/box_data_portal.cc: 
  get_has_suitable_record_to_view_details(), 
  get_has_suitable_record_to_view_details(): Adapted.

2011-09-27  Murray Cumming  <murrayc@murrayc.com>

	libglom::layout_field_should_have_navigation(): Return Relationship not bool.

	* glom/libglom/db_utils.[h|cc]: layout_field_should_have_navigation():
	Make field_used_in_relationship_to_one() be a Relationship so it can 
	be used for actual navigation.
	Also require that the LayoutItem_Field has full field information, instead 
	of updating it, so that it can be const.
	* glom/mode_data/datawidget/datawidget.cc: Constructor: Adapted.
	* glom/mode_data/box_data_details.cc: 
  on_flowtable_field_open_details_requested(): Use it here instead of the 
  copy/pasted code.

2011-09-27  Murray Cumming  <murrayc@murrayc.com>

	Add libglom::layout_field_should_have_navigation().

	* glom/mode_data/datawidget/datawidget.cc: Constructor: Moved decision code
	from here to here:
	* glom/libglom/db_utils.[h|cc]: Added layout_field_should_have_navigation().

2011-09-26  Murray Cumming  <murrayc@murrayc.com>

	Document: Use CSS3 formatting for colors, via Gdk::RGBA.

	* glom/mode_design/layout/dialog_layout_list_related.cc:
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
	* glom/mode_design/layout/layout_item_dialogs/dialog_line.cc:
	* glom/utility_widgets/canvas/canvas_line_movable.[h|cc]: Use Gdk::RGBA
	instead of Gdk::RGBA everywhere now that goocanvas(mm) supports it.

2011-09-26  Murray Cumming  <murrayc@murrayc.com>

	Related Records: Do not try to navigate to an empty record.

	* glom/mode_data/box_data_list_related.cc: on_adddel_user_requested_edit():
	Ignore clicks on the open button of the empty placeholder row, whose 
	primary key is null.

2011-09-22  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Add an Align menu.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]: Add 
	menu items for align top, bottom, left, and right. I don't much like the 
	copy/pasteness of the code, but it works.

2011-09-22  Murray Cumming  <murrayc@murrayc.com>

	Layout window: Correct the vertical order of Add buttons.

	* ui/developer/window_data_layout.glade: This has been mixed up since some 
	time recently, probably due to Glade changes.

2011-09-21  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Show contents of System Preferences in Fields.

	* glom/base_db.cc: get_field_value_in_database(): Only complain about 
	a missing key if the relationship needs one.
	* glom/libglom/document/document.cc:
	* glom/print_layout/canvas_layout_item.cc: set_db_data(): Show an 
	empty image if there is no pixbuf.
	* glom/print_layout/canvas_print_layout.[h|cc]: Added 
	fill_with_data_system_preferences() to show details from the system 
	preferences, if appropriate. This is possible because we do not need a 
	specific record to show values from the one record in System Preferences.
	add_canvas_layout_item(), on_context_menu_edit(): Call it.

2011-09-21  Murray Cumming  <murrayc@murrayc.com>

	Details: Avoid warning when using System Preferences fields.

	* glom/libglom/document/document.cc: get_field_used_in_relationship_to_one():
	Do not complain when the system preferences table is not found.

2011-09-21  Murray Cumming  <murrayc@murrayc.com>

	Avoid "m_backend is NULL" warning at startup.

	* glom/libglom/connectionpool.[h|cc]: Added get_instance_is_ready().
	* glom/application.cc: update_userlevel_ui(): Use it, because it might not 
	be ready, causing a (harmless) stderr warning.