1.20.10:

2012-03-05  Murray Cumming  <murrayc@murrayc.com>

	Utils::get_find_where_clause_quick(): Handle an empty value properly.

	* glom/libglom/utils.cc: get_find_where_clause_quick():
	Handle an empty quick_search value properly, returning an empty
	where clause.

2012-03-03  Ben Konrath  <ben@bagu.org>

	Remove empty group in the Lesson Planner example file.

	The empty group was at the bottome of the Rooms table details view.

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

	* examples/example_lesson_planner.glom:

2012-03-01  Murray Cumming  <murrayc@murrayc.com>

	Add a unistd.h include to fix the mingw MS Windows build.

	* glom/glom_create_from_example.cc: include unistd.h for getpass().
	Bug #671120 (alien)

2012-03-01  Murray Cumming  <murrayc@murrayc.com>

	More windows build fixes.

	* glom/libglom/connectionpool_backends/postgres.cc: Add an include and change
	the ifdefed code slightly to fix the mingw build on Windows.
	Bug #670903 (alien)

2012-03-01  Murray Cumming  <murrayc@murrayc.com>

	Add a fcntl.h include.

	* glom/libglom/utils.cc: Include fcntl.h to fix the mingw build
	on Windows.
	Bug #670903 (alien)

1.20.9:

2012-02-13  Murray Cumming  <murrayc@murrayc.com>

	Users: Warn if we cannot get the list of users.

	* glom/libglom/privs.[h|cc]: get_database_users(): Add documentation
	about the case that the result is empty.
	* glom/mode_design/users/dialog_users_list.cc: on_button_user_add():
	If the users list is empty then warn that something is probably wrong
	with the permissions. I would like to warn much earlier if the user is
	not a superuser, but I do not know how.
	Bug #669178 (alien)

2012-02-09  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Print Preview: Avoid warnings when there are no records yet.

	* glom/print_layout/canvas_print_layout.cc: fill_with_data(): Do nothing,
	and hint on stdout, if there are no records yet. This avoids several 
	real warnings later.

2012-02-08  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Avoid sometimes over-scaled images.

	* glom/print_layout/canvas_layout_item.[h|cc]: Remove the constructor and
	create() that take a LayoutItem, because we should put the CanvasItem in a 
	canvas (even indirectly) before creating the child item, to avoid this
	goocanvas bug: https://bugzilla.gnome.org/show_bug.cgi?id=657592#c16
	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	* glom/print_layout/canvas_print_layout.[h|cc]:
	Add and use create_canvas_layout_item_and_add() methods which put the new 
	canvas item in the canvas before creating its child items based on the 
	LayoutItem.
	
	This fixes bug #668901 (alien)

1.20.8:

2012-02-05  Murray Cumming  <murrayc@murrayc.com>

	Button scripts and Field Calculations: Test button: Check for pygtk2.

	* glom/mode_data/box_data.cc: :execute_button_script(): Move the 
	warning UI into 
	* glom/utils_ui.[h|cc]: a new script_check_for_pygtk2_with_warning()
	method.
	* glom/mode_design/fields/dialog_fieldcalculation.cc: on_button_test():
	* glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.cc:
	on_button_test_script(): Use the new function here.

2012-02-03  Murray Cumming  <murrayc@murrayc.com>

	Button scripts: Check and warn about pygtk2 instead of crashing.

	* glom/libglom/utils.[h|cc]: Add script_check_for_pygtk().
	* Makefile_tests.am:
	* tests/test_script_check_for_problems.cc: Add a test for the check
	function.
	* glom/mode_data/box_data.cc: execute_button_script(): Show a 
	warning dialog, and do not run the script, if it seems to use pygtk.
	This should help with but #669196 (alien) and ##661766 (Andre Klapper) .

2012-02-03  Murray Cumming  <murrayc@murrayc.com>

	ReportBuilder: Add error checking.

	* glom/libglom/report_builder.[h|cc]: Return bool
	from the private methods and check those results.

2012-02-03  Murray Cumming  <murrayc@murrayc.com>

	Reports: Make summary fields work again.

	* glom/libglom/report_builder.cc: report_build_summary():
	Remove any sort clause (ORDER BY) from the FoundSet because that makes 
	no sense for a single row with summary fields. It looks like recent versions
	of PostgreSQL have become more strict about this, producing this error, for
	instance:
	column "invoices.invoice_id" must appear in the GROUP BY clause or be used in an aggregate function
	* Makefile_tests.am:
	* tests/test_selfhosting_new_then_report_summary.cc: Add a test for this.
	This fixes bug #669281 (alien)

2012-02-03  Murray Cumming  <murrayc@murrayc.com>

	Document: Really load the table privileges.

	* glom/libglom/db_utils.[h|cc]: add_group(): Take a bool superuser
	parameter.
	add_groups_from_document(): Use add_group() instead of executing
	the ADD GROUP query directly, to make sure that we also start 
	with some sane table privileges defaults, in case nothing else 
	sets the privielges.
	* glom/libglom/document/document.cc: load_after(): Fix a typo
	so that the group privileges are really loaded (and then
	saved again instead of being lost).
	* examples/example_film_manager.glom:
	* examples/example_smallbusiness.glom: Save these with 
	useful group privileges, so the groups will be allowed to
	see tables.
	* tests/test_document_load.cc: Test the loading of the group
	privileges.
	Previously the examples were created with groups that could not
	even view the tables, which meant that they could not even 
	find out about their existence.
	This deals with the problem found here:
	https://bugzilla.gnome.org/show_bug.cgi?id=669043#c2
	But I would like to show the existence (and structure) of tables
	even if their data cannot be viewed, so there is more work to do.

2012-02-03  Murray Cumming  <murrayc@murrayc.com>

	Add some runtime warnings.

	* glom/libglom/db_utils.cc: get_table_names_from_database():
	Slightly improved error checking. 
	* glom/libglom/privs.cc: set_table_privileges():
	Warn if a GRANT fails.

2012-02-02  Murray Cumming  <murrayc@murrayc.com>

	Share on Network: Add reassuring message when user removal fails.

	* glom/frame_glom.cc: Add a stdout message saying the the 
	default user has been disabled, because the existing message
	about the failure to remove the user looks at first like
	a security problem.
	I still do not know why removal fails, even though we do
	change the ownership of the database.

2012-02-02  Murray Cumming  <murrayc@murrayc.com>

	test_selfhosting_new_empty_then_users: Test user removal.

	* glom/base_db.[h|cc]: Move remove_user() and 
	remove_user_from_group() to
	* glom/libglom/db_utils.[h|cc].
	* glom/frame_glom.cc:
	* glom/mode_design/users/dialog_users_list.cc: Adapted.
	* tests/test_selfhosting_new_empty_then_users.cc: Test these
	functions.

2012-02-02  Murray Cumming  <murrayc@murrayc.com>

	Really prevent changing to developer mode for non-developers.

	* glom/frame_glom.cc: on_menu_developer_developer(): Actually use the
	result of Privs::get_user_is_in_group().
	* tests/test_selfhosting_new_from_example_operator.cc: Test this
	same function here, though this test currently fails anyway.
	This fixes bug #669043 (alien) 

2012-02-01  Murray Cumming  <murrayc@murrayc.com>

	Allow user and group names to have spaces and other special characters.

	* glom/libglom/privs.cc: get_table_privileges(): Instead of parsing the
	relacl.pg_class field, use the PostgreSQL has_table_privilege() 
	function, though it needs some strange quoting (see comments).
	This code is much simpler now. 
	* tests/test_selfhosting_new_empty_then_users.cc: Add various other
	table, group, and user names, to excercise the code.
	This now passes.

2012-02-01  Murray Cumming  <murrayc@murrayc.com>

	test_selfhosting_new_empty_then_users: Show the problem with spaces.

	* tests/test_selfhosting_new_empty_then_users.cc: 
	Privs::get_table_privileges() must parse a strange format. This test
	shows that it fails if the group name contains spaces.

2012-02-01  Murray Cumming  <murrayc@murrayc.com>

	Limit user and group name lengths.

	* glom/libglom/privs.[h|cc]: Add a MAX_ROLE_SIZE enum constants.
	I cannot find any PostgreSQL documentation of this 63 character limit.
	* glom/mode_design/users/dialog_new_group.cc:
	* glom/mode_design/users/dialog_user.cc: Use it to set maximum characters
	for the entry boxes.
	* tests/test_selfhosting_new_empty_then_users.cc: Show that the problem
	found so far was caused by too-long names, not spaces.
	I still need to check parsing of table permissions.

2012-02-01  Murray Cumming  <murrayc@murrayc.com>

	test_selfhosting_new_empty_then_users: Test user adding with all group names.

	* tests/test_selfhosting_new_empty_then_users.cc: Use for loops to 
	simplify the code and to make sure that we test adding of users with 
	all the group types.
	This shows a problem:
	  Privs::get_database_groups() does not contain the expected user:
	  group: somegroup with space characters1
	  user: someuser with space characters1for_somegroup with space characters1

2012-02-01  Murray Cumming  <murrayc@murrayc.com>

	test_selfhosting_new_empty_then_users: Improvements.

	* tests/test_selfhosting_new_empty_then_users.cc:
	Add tables that will be affected.
	Test strange characters in group and user names.

2012-02-01  Murray Cumming  <murrayc@murrayc.com>

	Add test_selfhosting_new_empty_then_users

	* glom/mode_design/users/dialog_groups_list.cc: on_button_group_new():
	Move the group creation code to:
	* glom/libglom/db_utils.[h|cc]:

	* glom/libglom/privs.[h|cc]: set_table_privileges():
	Return a bool to report failures.
	* Makefile_tests.am:
	* tests/test_selfhosting_new_empty_then_users.cc: Add this test to 
	test simple creation of a group and a user.

2012-02-01  Murray Cumming  <murrayc@murrayc.com>

	Fix the build.

	* glom/mode_design/users/dialog_new_group.cc:
	* glom/mode_design/users/dialog_user.cc: Add includes to fix the build.

2012-02-01  Murray Cumming  <murrayc@murrayc.com>

	Limit user and group name lengths.

	* glom/libglom/privs.[h|cc]: Add a MAX_ROLE_SIZE enum constants.
	I cannot find any PostgreSQL documentation of this 63 character limit.
	* glom/mode_design/users/dialog_new_group.cc:
	* glom/mode_design/users/dialog_user.cc: Use it to set maximum characters
	for the entry boxes.
	* tests/test_selfhosting_new_empty_then_users.cc: Show that the problem
	found so far was caused by too-long names, not spaces.
	I still need to check parsing of table permissions.

2012-01-30  Murray Cumming  <murrayc@murrayc.com>

	test_selfhosting_new_empty: Simplify the cleanup code.

	* tests/test_selfhosting_new_empty.cc: Call cleanup if test() returns 
	false, like we in the other tests, to avoid calling it in too many
	places.

2012-01-30  Murray Cumming  <murrayc@murrayc.com>

	Require the latest goocanvas because it has fixes that PrintLayout needs.

	* configure.ac: Require goocanvas 2.0.1.

2012-01-29  Murray Cumming  <murrayc@murrayc.com>

	Database Preferences: Really store the organization name in the database.

	* glom/libglom/db_utils.cc: set_database_preferences(): Also UPDATE
	the organization name.

	This fixes bug #668836 (alien)

2012-01-29  Murray Cumming  <murrayc@murrayc.com>

	Field Formatting: Related Choices: Default to showing the primary key.

	* glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
	on_combo_choices_relationship_changed(): By default, automatically
	choose the related table's primary key as the field to show in the
	choices. Other fields should then be shown (or looked up) based on the
	chosen ID.
	This avoids the confusion noticed here: https://bugzilla.gnome.org/show_bug.cgi?id=668759#c21

2012-01-29  Murray Cumming  <murrayc@murrayc.com>

	CellRendererDbList: Do not crash if one of the fields is hidden.

	* glom/mode_data/datawidget/cellrenderer_dblist.cc:
	repack_cells_related(): Do not crash if create_cell() returns 0,
	and add a comment explaining that that is OK.
	* glom/mode_data/datawidget/cellcreation.cc: Add explanatory comments.

	This fixes the second crash mentioned in #668759 (alien).

2012-01-29  Murray Cumming  <murrayc@murrayc.com>

	Choices: Allow the field to be be other than the primary key.

	* glom/mode_data/datawidget/treemodel_db.h: Make most methods and
	members private again, documentation what they *key methods and members
	really mean.
	* glom/mode_data/datawidget/treemodel_db_withextratext.[h|cc]: Add
	m_column_index_first and m_item_first members.
	Constructor: Set these by looking for the first LayoutItem_Field, 
	because that is what we will want to show in the first cell of 
	a combobox, which is where this model is used.
	Use these instead of the *key members, which were actually the primary
	key. We had previously assumed that the first field would always be
	the primary key, but we should not enforce that.
	This fixes crashing bug #668759 (alien).

2012-01-28  Murray Cumming  <murrayc@murrayc.com>

	ComboChoicesWithTreeModel: Make sure the model always has the primary key.

	* glom/libglom/data_structure/layout/layoutitem_field.h:
	predicate_LayoutItem_Field_IsSameField: Let this be used with containers of
	LayoutItems as well as just LayoutItem_Fields.
	* glom/libglom/utils.[h|cc]: Add get_layout_items_plus_primary_key().
	* glom/mode_data/box_data_list.cc: create_layout(): Simplify code by using 
	get_layout_items_plus_primary_key().
	* glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
	set_choices_related(): Use get_layout_items_plus_primary_key() so the 
	model has the primary key, avoiding a warning and a later crash.

2012-01-27  Murray Cumming  <murrayc@murrayc.com>

	Test creation from examples in non-English locales.

	* Makefile_tests.am:
	* tests/test_selfhosting_new_from_example_in_locales.sh:
	Run the test_selfhosting_new_from_example example in various
	locales, to make sure that the libgda problem (see bug #668346),
	or something like it, does not come back.
	* tests/test_selfhosting_new_from_example.cc: Call setlocale().

1.20.7:

2012-01-25  Murray Cumming  <murrayc@murrayc.com>

	Depend on libgda 5.0.3 because we need the GdaNumeric corrections.

	* configure.ac: This avoids errors when creating from examples, when
	using a non-English locale. 
	This fixes bug #668346 (Janne)

2012-01-18  Murray Cumming  <murrayc@murrayc.com>

	Default to en rather than en_US for the original locale.

	* glom/application.cc: get_original_locale(): Default to en rather than en_US.
	* examples/*.glom: Change the original locale from en_US to en.

1.20.6:

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

	List view: Do not show columns twice.

	* glom/libglom/data_structure/layout/layoutgroup.[h|cc]: 
	Revert the recent change to get_items_recursive() so that it only returns
	no-groups items, as its documentation says.
	Add get_items_recursive_with_groups().
	* tests/test_document_load.cc: Use the new method.

	This problem was caused by commit e51bf19e8a595dbc4e34c390ae2194293deb0236

2012-01-09  Murray Cumming  <murrayc@murrayc.com>

	examples: Remove translations for useless locale.

	* examples/example_lesson_planner.glom:
	* examples/example_project_manager.glom:
	* examples/example_smallbusiness.glom:
	* ldtp/database-templates/PostgresCentral/Test.glom:
	* ldtp/database-templates/SQLite/Test.glom: For some reason
	these had translations for de_BE, de_AT, en_GB, and en_US.

1.20.5:

2012-01-09  Murray Cumming  <murrayc@murrayc.com>

	Translations: Prefer non-country-specific locales, such as de.

	* examples/example_film_manager.glom:
	* examples/example_lesson_planner.glom:
	* examples/example_music_collection.glom:
	* examples/example_project_manager.glom:
	* examples/example_smallbusiness.glom:
	* examples/sqlite/test_sqlite_music/test_sqlite_music.glom:
	* ldtp/database-templates/PostgresCentral/Test.glom:
	* ldtp/database-templates/SQLite/Test.glom:
	* tests/test_document_load_translations.cc:
	* tests/translations_po/test_document_export_po.cc:
	* tests/translations_po/test_document_import_po.cc:
	Replace de_DE with de.

2012-01-09  Murray Cumming  <murrayc@murrayc.com>

	Translations: Offer non-country-specific language locales too.

	* Makefile_tests.am:
	* glom/libglom/utils.cc: locale_language_id(): Parse language-only
	locale IDs too.
	* glom/mode_design/iso_codes.cc: get_locale_name(): Create non-country
	locale IDs too, though they are not in the iso-codes XML file.
	* glom/mode_design/translation/window_translations.cc: Show, for instance
	German (de) as well as the existing German (Germany), German (Austria),
	etc.

2012-01-09  Murray Cumming  <murrayc@murrayc.com>

	Command-line utilities: Initialize gettext and the locale.

	* glom/glom_create_from_example.cc:
	* glom/glom_test_connection.cc: This should make the translations be used.

2012-01-07  Murray Cumming  <murrayc@murrayc.com>

	test_document_load: Fix a typo.

	* tests/test_document_load.cc: Check the correct variable.

2012-01-05  Murray Cumming  <murrayc@murrayc.com>

	DTD: formatting: Mention choices_restricted to fix make check.

	* glom/glom_document.dtd: Note that this is not a new part of the
	file format. We just never used it in an example before.

2012-01-04  Murray Cumming  <murrayc@murrayc.com>

	Details： Make restricted choices work.

	* glom/mode_data/datawidget/combochoiceswithtreemode.[h|cc]:
	on_cell_data(): Move some code into set_cell_for_field_value().
	* glom/mode_data/datawidget/combo.[h|cc]: on_fixed_cell_data():
	Connect a cell_data slot that uses set_cell_for_field_value(), 
	instead of trying to associate a Gnome::Gda::Value with a cell's text 
	property. 

	Without this, the choice combobox's rows were empty when the field's
	value should be restricted to the available custom (fixed) choices.

1.20.4:

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

	Cut menu: Prevent cutting from non-editable GtkTextViews.

	* glom/bakery/app_withdoc_gtk.cc: on_menu_edit_cut_activate():
	Pass the extra parameter to cut_clipboard(). 

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

	Details: Really make non-editable multiline text fields non-editable.
  
	* glom/mode_data/datawidget/textview.[h|cc]: Override set_read_only(),
	so that multiline text fields are really non-editable when the formatting
	specifies that.

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

	App_WithDoc_Gtk: Simple clipboard menu handlers: Handle GtkTextView

	* glom/bakery/app_withdoc_gtk.cc: Add code to handle cut/copy/paste
	when GtkTextView is focused. This is tedious - see bug #667008 .

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

	App_WithDoc_Gtk: Improve simple clipboard handlers.

	* glom/bakery/app_withdoc_gtk.cc: Do not use C code. And therefore do
	not use Glib::wrap() strangely.

2011-12-27  David King  <davidk@openismus.com>

	Add simple clipboard handlers to App_WithDoc_Gtk

	* glom/bakery/app_withdoc_gtk.[cc|h]: Add simple clipboard handlers to
	fix bug 518315.

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

	Choices: Make sure related choices are sorted.

	* glom/mode_data/datawidget/combochoiceswithtreemodel.cc: 
	set_choices_related(): Add a sort clause, though it would be best if
	the developer could specify this.
	Note that Utils::get_choice_values(), used for other choices, already 
	does this, and we should reduce the code duplication.

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

	Document_XML: Remove an unimplemented method.

	* glom/libglom/document/bakery/document_xml.h:
	add_indenting_white_space() was never implemented or 
	used.

1.20.3:

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

	Dialog_ChooseID: Really show the quick find feature.

	* ui/operator/dialog_find_id.glade: Correct some widget names.
	We were removing a widget too high in the hierarchy, so we did not 
	show the quick find. This was presumably broken by some conversion
	to a new version of Glade at some point.

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

	List: Really store data when the primary key is not auto-incremented.

	* glom/mode_data/db_adddel/db_adddel.cc: user_added(): Do not use 
	get_value_key_selected() to get the entered field data, because that 
	is only useful after the key has been entered. Instead get the 
	entered data from the cell where it was entered.

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

	Add the glom_test_connection command-line tool.

	* Makefile_libglom.am:
	* glom/glom_test_connection.cc: This is useful for sanity checking 
	of the configuration of central PostgreSQL servers.

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

	Film Manager example: Use English for Day/Night choices.

	* examples/example_film_manager.glom: Use English for the custom choice 
	values. We need to allow these to be translated. See bug #666343

1.20.2:

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

	Correct parsing of example data.

	* glom/libglom/data_structure/field.[h|cc]: to_file_format(),
	from_file_format() documentation: Mention that this uses CSV format.
	from_file_format(): Unescape double quotes, because we escape quotes
	as that in to_file_format().
	This avoids reading them as double quotes when opening an example file.
	This will also correct the interpretation of text default values.
	* Makefile_tests.am:
	* tests/test_field_file_format.cc: Add a test of this for text and image
	data, checking that what we write is what we read.

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

	test_selfhosting_new_then_image: Move some code to test_utils.

	* Makefile_tests.am:
	* tests/test_selfhosting_new_then_image.cc: Move the test image-loading
	code to:
	* tests/test_utils.[h|cc]: get_value_for_image().

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

	Small fix to repository_analyzer_begin_scan example script.

	* examples/example_scripts/repository_analyzer_begin_scan.py:
	Remove the global variables, used for debugging, because recent versions of 
	Python do not seem to treat them as global when this script is used as 
	a Button script in python. So it says they are undefined. They are, after 
	all, inside the function that glom defines.
	Although they would still work in this standalone script, it is nice to 
	have no difference between this file and the one used in this .glom file:
	https://gitorious.org/debian_repository_analyzer/debian_repository_analyzer

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

	Combo_TextGlade: Work around GtkComboBoxText bug #612396.

	* glom/utility_widgets/combo_textglade.cc: Without setting 
	entry-text-column, which GtkBuilder understandably does not do,
	and which GtkComboBoxText does not do in this case, the widget just
	does not work.
	This fixes the Users/Groups dialogs and the Script Library dialog.

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

	test_fake_connection: Avoid unnecessary warnings about metadata.

	* glom/libglom/connectionpool.cc: Avoid printing exceptions to stderr
	about failed attempts to get types and tables metadata, because 
	this is not used by fake connections, for instance by java-libglom.
	There will be a warning later if it is really used.
	* glom/libglom/db_utils.cc: Add some comments.

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

	Use EXIT_* instead of 0 and -1.

	* glom/test_pyembed.cc:
	* glom/test_pyembed_singleline.cc:
	* tests/glade_toplevels_instantiation.cc:
	* tests/test_parsing_time.cc: Use EXIT_SUCCESS and EXIT_FAILURE.

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

	test_selfhosting_new_then_change_columns: Add a column too.

	* tests/test_selfhosting_new_then_change_columns.cc:

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

	Added a test of field choices.

	* Makefile_tests.am: 
	* tests/test_selfhosting_new_then_choices.cc:
	Test Utils::get_choice_values_all().

2011-12-04  Murray Cumming  <murrayc@murray.com>

	Document DTD: adapt to the format we actually use.

	* examples/example_film_manager.glom: Resave this.
	* glom/glom_document.dtd: Change the sequence of child nodes for 
	tables and print_layouts to match what we really write.
	We do not really care about this but the DTD format forces us to 
	use a sequence.

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

	test_document_load: Check reports too.

	* tests/test_document_load.cc: Check some report names.

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

	test_document_load: Check a table title and its singular title.

	* tests/test_document_load.cc: Also test 
	get_data_layout_groups_have_any_fields().

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

	tests/test_document_load_and_change: Change a relationship name.

	* Makefile_tests.am: Use the test_utils.
	* tests/test_document_load_and_change.cc: Also rename a relationship
	and check that a layout item uses the new relationship name.

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

	Tests: Add a shared get_field_on_layout() function.

	* tests/test_document_load.cc: Move get_field_on_layout() to 
	* Makefile_tests.am:
	* tests/test_utils.[h|cc]: here.


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

	DbUtils::recreate_database_from_document(): Set table privileges too.

	* glom/libglom/db_utils.cc: recreate_database_from_document():
  Also call set_table_privileges_groups_from_document().

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

	DbUtils::recreate_database_from_document(): Create groups too.

	* glom/libglom/db_utils.[h|cc]: recreate_database_from_document():
	Also call add_groups_from_document().

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

	test_document_load: Test some navigation utility functions.

	* glom/libglom/data_structure/layout/layoutgroup.cc: get_items_recursive():
	Return the child groups as well as their items.
	* tests/test_document_load.cc:
	Test DbUtils::layout_field_should_have_navigation() and 
	LayoutItem_Portal::get_suitable_table_to_view_details().
	
2011-12-02  Murray Cumming  <murrayc@murrayc.com>

	test_selfhosting_new_empty(): Also test DbUtils::get_unused_database_name().

	* glom/libglom/db_utils.cc: get_unused_database_name(): Remove debug output.
	* tests/test_selfhosting_new_empty.cc: Excercise DbUtils::get_unused_database_name(),
	though we do not test it yet when the first choice already exists.

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

	test_selfhosting_new_empty(): Correct and expand.

	* tests/test_selfhosting_new_empty.cc: Fix a CENTRAL->SELF typo. This 
	probably only appeared to work before because no database cluster was really 
	being initialized. Also actually create a database in the database cluster 
	and set its system preferences table's record.

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

	test_document_load_and_change: Test renaming and removing of tables.

	* tests/test_document_load_and_change.cc: This also checks that relationships
	are update when a table is renamed.

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

	test_document_load_and_change: Test print layout removal.

	* tests/test_document_load_and_change.cc:

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

	Updated the Document DTD.

	* glom/glom_document.dtd: This fixes make check with the new save of 
	examples/example_film_manager.glom.

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

	self-hosting tests: Avoid some noisy stdout messages.

	* tests/test_selfhosting_utils.cc: Do not show PostgreSQL startup, etc,
	progress messages.

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

	test_load_and_change(): Test removal of a relationship.

	* tests/test_document_load_and_change.cc: Test Document::remove_relationship().

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

	test_document_load: Test field formatting.

	* tests/test_document_load.cc: Also use a different example, to
	widen the range of examples that we test.

1.20.1:

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

	test_document_change: Test a little more API.

	* tests/test_document_change.cc: Add a table and test some API that uses it.
	We could do much more here.

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

	test_document_load_and_change: Test Document::remove_field() too.

	* tests/test_document_load_and_change.cc: Exercise a little more of the API.

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

	LayoutGroup: Add a more useful remove_field().

	* glom/libglom/data_structure/layout/layoutgroup.[h|cc]:
	Add a remove_field(parent_table_name, table_name, field_name) method overload,
	deprecating the existing method overloads.
	* glom/libglom/document/document.cc: Adapt.
	* tests/test_document_load_and_change.cc: Test a different example,
	so we can check for a related field on a layout.

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

	LayoutGroup: Deprecate the old has_field() method and do not use it.

	* glom/libglom/data_structure/layout/layoutgroup.h:
	* glom/libglom/document/document.cc:
	* tests/test_document_load.cc: Adapt.

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

	test_document_load: Check that a field is on a layout.

	* glom/libglom/data_structure/layout/layoutgroup.[h|cc]:
	Added has_field() that can find a related field.
	* tests/test_document_load.cc: Check that an expected field is found on
	the layout.

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

	Add a test for changing of a field name. 

	* tests/Makefile.am:
	* tests/test_document_load_and_change.cc: Change a field name and 
	make sure that it has updated throughout the document.
	However, we still need to check lookups and related fields.

2011-11-28  Murray Cumming  <murrayc@murray.com>

	Field::set_field_info(): Avoid unnecessary checks (and warnings).

	* glom/libglom/data_structure/field.cc: If the type is not yet set,
	don't bother checking that everything else uses that type.
	This avoids a stderr warning about invalid types being used.

2011-11-28  Murray Cumming  <murrayc@murrayc.comb>

	Field::set_field_info(): Slight code improvement.

	* glom/libglom/data_structure/field.cc: Move some duplicated code into
	a static helper function.

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

	Added an extra test for the Document class.

	* tests/test_document_change.cc: The beginnings of another test,
	to check that what we set is what we later get.

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

	SQLite: Avoid a warning about int types for summary fields.

	* glom/libglom/data_structure/glomconversions.cc:
	get_text_for_gda_value(): An int is normal for aggregate fields for
	SQLite.
	convert_value(): Make sure that we do a locale-independent conversion,
	otherwise the above fix will cause us to, for instance, have a 
	comma in large numbers.

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

	gcov: Add a legend key to the lcov html.

	* Makefile.am: Pass --legend to genhtml. 

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

	Correct a query from UPDATE to SELECT.

	* glom/libglom/report_builder.cc: Correc the query to get system preferences 
	values. This was apparently not tested yet.

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

	Avoid an uninteresting stdcerr warning.

	* glom/libglom/connectionpool.cc: It is OK to not know 
	the document sometimes.

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

	gcov: Use lcov instead of my hacky bash script.

	* configure.ac: Check for lcov and genhtml.
	* Makefile.am: This generates a nice HTML report.

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

	gcov: Use AC_PATH_PROG().

	* configure.ac: Check for the path to gcov.
	* Makefile.am: Use it.

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

	Added a "make gcov" target to get some test coverage statistics.

	* configure.ac: Add an --enable-gcov option which add gcc/g++ flags.
	* Makefile_glom.am:
	* Makefile_libglom.am:
	* Makefile.am: Add some cargo-culted and hacked-together bash scripted
	rules that generate the .gcov files and parse them to give some 
	percentages on stdout.

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

	libglom: Added DbUtils::set_fake_connection().

	* glom/libglom/db_utils.[h|cc]: Added DbUtils::set_fake_connection()
  because ConnectionPool is not public API.
	* tests/test_fake_connection.cc: Use this function instead of using 
	ConnectionPool's API.

1.20.0 (stable):

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

	Details View: Left-align numbers when using automatic alignment.

	* glom/libglom/data_structure/layout/layoutitem_field.[h|cc]:
	* glom/libglom/data_structure/layout/layoutitem_withformatting.[h|cc]:
	get_formatting_used_horizontal_alignment(): Add a for_details_view() 
	and return left-alignment for auto-alignment on a details view.
	* glom/mode_data/datawidget/entry.cc:
	* glom/utility_widgets/layoutwidgetbase.cc: Pass true to get that 
	effect.

	Right-aligned numbers on the detailed view just look sillier now that
	the entry widgets are full width, and when there are no other numbers
	above or below them. Note that we probably did not purposefully 
	change it show numbers with full width, but I would still want this
	alignment change.

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

	Recognize GdaBlob as suitable for Image field types.

	* glom/libglom/data_structure/field.cc: Add to the map, to avoid 
	a warning.

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

	Fix the build with latest GTK+ with --enable-warnings=fatal

	* glom/utility_widgets/eggspreadtable/eggspreadtablednd.c
	(set_drag_icon): Update from libegg to fix the build with deprecated GTK+ 
	API disabled.

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

	Details: Move the checkbutton titles to the left.

	* glom/mode_data/datawidget/checkbutton.h: Contructor:
	Allow the title to be empty.
	* glom/mode_data/datawidget/datawidget.cc: Give the checkbutton a title 
	at the left, like other widgets. This looks consistent.

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

	Update an example screenshot.

	* docs/website/screenshots/glom_example_lessonplanner.png: Update this 
	now that the calendar portal works again.
	* docs/website/screenshots/glom_select_field.png: Remove this because 
	it is not used.

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

	date test: Set LANGUAGE too, which seems to be necessary on Ubuntu.

	* tests/test_glom_date_in_locales.sh: Also add some locales that 
	are available on Ubuntu.

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

	main: Break the date check into two possible error messages.

	* glom/main.cc: This simplifies debugging a bit.

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

	Enable the test for dates in various locales.

	* Makefile_tests.am:
	* tests/test_glom_date_in_locales.sh: I don't like requiring 
	installation of these locales during make check, but I see no other
	way to stop the fixes from being lost by careless translators, at 
	least of the major languages.

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

	List view: Stop unnecessary saving of column widths.

	* glom/mode_data/db_adddel/db_adddel.[h|cc]: Do not handle changes 
	of the GtkTreeView column width, because it happens during normal
	size allocation as well as when the user resizes columns.
	It is not essential anyway.

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

	Make the Calendar portal work again.

	* glom/mode_data/box_data_calendar_related.[h|cc]: Override
	create_layout() as a place to call our get_fields_to_show(), like
	Box_Data_List_Related does. Then fill_from_database() can succeed.
	Bug #663310

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

	Fake connection test: Test for a substring in the generated query.

	* tests/test_fake_connection.cc: This also fixes the build with
	-Werror.

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

	Use the new Gnome::Gda::Numeric API.

	* glom/libglom/data_structure/glomconversions.cc:
	* glom/libglom/python_embed/pygdavalue_conversions.cc:
	* tests/python/test_python_execute_func_date.cc: GdaNumeric now has 
	a real API so we can make our code simpler.

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

	List view and Related Records: Disable buttons when appropriate.

	* glom/mode_data/db_adddel/db_adddel.[h|cc]: Handle the 
	Gtk::TreeView::Selection::signal_changed() signal and call a 
	new virtual on_selection_changed() method.
	* glom/mode_data/db_adddel/db_adddel_withbuttons.[h|cc]:
	Disable the Edit/Open and Delete buttons when there is no selection.
	Bug #663812 (André Klapper)

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

	Correct an error in the previous commit.

	* glom/libglom/connectionpool.cc: Remove a nonsense line of code that
	stopped connections from working.

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

	Added ConnectionPool::set_fake_connection().

	* glom/libglom/connectionpool_backends/backend.h: connect():
	* glom/libglom/connectionpool_backends/postgres.[h|cc]: connect(),
	attempt_connect():
	* glom/libglom/connectionpool_backends/postgres_central.[h|cc]: connect():
	* glom/libglom/connectionpool_backends/postgres_self.[h|cc]: connect():
	* glom/libglom/connectionpool_backends/sqlite.[h|cc]: connect():
	Add a bool fake_connection parameter and use Gnome::Gda::create_with_string()
	instead of open_with_string() if it is true.
	* glom/libglom/connectionpool.[h|cc]: Add set_fake_connection() to set 
	that bool and other things needed to make it work.	

	* Makefile_tests.am:
	* tests/test_fake_connection.cc: Added a test that uses this for the 
	intended purpose of getting a suitable SQL query string without an open 
	connection.
	However, it does not currently work as expected due to:
	http://mail.gnome.org/archives/gnome-db-list/2011-November/msg00007.html

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

	Escape database connection details properly.

	* glom/libglom/db_utils.[h|cc]: Added gda_cnc_string_encode() for use 
	with GdaConnection's cnc_string and auth_string, for instance to 
	escape the database directory, name, username, and password.
	* glom/libglom/connectionpool_backends/postgres.cc:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/connectionpool_backends/sqlite.cc: Properly escape the 
	cnc_string and auth_string key values.

	* tests/test_selfhosting_utils.cc: test_create_and_selfhost_from_example(),
	test_create_and_selfhost_from_uri(): Add an optional subdirectory parameter
	that we can use to force weird parts into the path.
	* Makefile_tests.am:
	* tests/test_selfhosting_new_from_example_strangepath.cc: Add a 
	test case that uses a path with some weird characters. This now works
	thanks to the above changes.

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

	Use Glib::shell_quote() when spawning tar.

	* glom/libglom/document/document.cc: Use Glib::shell_quote()
	when spawning tar, instead of manually adding quotes.

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

	PostgreSQL backend: Use g_shell_quote().

	* glom/libglom/connectionpool_backends/postgres.[h|cc]:
	get_path_to_postgres_executable(): Return the already-quoted path
	to avoid the need for manual quoting by the caller.
	However, make this optional (but the default) so that the check in 
	* main.cc: can still work.
	* glom/libglom/connectionpool_backends/postgres_self.cc: Use 
	Glib::shell_quote() instead of manually adding quote characters.
	Hopefully this also escapes special characters, though we should try to 
	test this somehow.

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

	Avoid some repetition of some CREATE GROUP and ALTER GROUP queries.

	* glom/libglom/db_utils.[h|cc]: Added build_query_create_group() and 
	build_query_add_user_to_group() to avoid repeating the code.
	* glom/base_db.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_users_list.cc: Use them.

1.19.19:

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

	Use escape_sql_id() for privileges SQL queries.

	* glom/base_db.cc:
	* glom/libglom/db_utils.cc:
	* glom/libglom/privs.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_users_list.cc: Use 
	DbUtils::escape_sql_id() instead of manually adding quotes with 
	no escaping. This seems to be the right thing to do for these 
	queries.

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

	More use of escape_sql_id().

	* glom/base_db.cc:
	* glom/libglom/db_utils.cc:
	* glom/libglom/privs.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_users_list.cc: Use 
	escape_sql_id() instead of manually adding quotes with no 
	escaping. However, I have not yet done this for group and 
	user names.

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

	libglom: Remove LayoutItem_Field::get_sql_name().

	* glom/libglom/utils.cc: build_sql_select_add_fields_to_get():
	Use SqlBuilder::add_field_id() instead of 
	LayoutItemField::get_sql_name().
	* glom/libglom/data_structure/layout/layoutitem_field.[h|cc]:
	Remove the now unused get_sql_name() method.

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

	libglom: Use escape_sql_id() for column add/crop/change.

	* glom/libglom/connectionpool.cc: add_column(), drop_column(),
	
	* glom/libglom/connectionpool_backends/backend.[h|cc]:
	* glom/libglom/connectionpool_backends/postgres.cc
	* glom/libglom/connectionpool_backends/sqlite.[h|cc]:
	add_column(), drop_column(): Return a bool to indicate failure.
	change_columns(): Report false return values from these.

	* Makefile_tests.am
	* tests/test_selfhosting_new_then_change_columns.cc: Add a simple
	test, though we do not yet test that the expected change really
	happened.

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

	libglom: Add escape_sql_id() and use it for table add/drop/rename.

	* glom/libglom/db_utils.[h|cc]: Add escape_sql_id(), using 
	gda_connection_quote_sql_identifier().
	create_table(), rename_table(), drop_table(): Use it instead of 
	manually adding quotes with no escaping.
	* tests/test_selfhosting_new_then_alter_table.cc: Mention that 
	the commented-out test still fails because of libgda bug #663608 .

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

	libglom: Add DbUtils::rename_table() and drop_table() and test them.

	* glom/navigation/box_tables.c: Move query-building code to 
	* glom/libglom/db_utils.[h|cc]: rename_table() and drop_table().
	* Makefile_tests.am
	* tests/test_selfhosting_new_then_alter_table.cc: Add a test of these
	functions, and of table creation. This shows that we need to escape 
	SQL identifiers to allow characters such as " in table names.

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

	Require the latest libgdamm.

	* configure.ac: We use a new Gnome::Gda::Connection::statement_to_sql()
	method overload.

1.19.18:

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

	Add a test of backup and restore.

	* glom/application.cc: on_menu_developer_export_backup(),
	do_restore_backup(): Move code into 
	* glom/libglom/document/document.[h|cc]: save_backup() and 
	restore_backup_file() so it is easier to test.

	* tests/test_selfhosting_new_from_example.cc: Move some testing into:
	* tests/test_selfhosting_utils.[h|cc]: test_example_musiccollection_data()
	to avoid repeating code.
	
	* Makefile_tests.am: Added a new test:
	* tests/test_selfhosting_new_then_backup_restore.cc: Test the new 
	Document functions, though the data check currently fails and is commented 
	out. I think it is just a problem in the test because the data is there
	when using the UI.
	
2011-11-07  Murray Cumming  <murrayc@murrayc.com>

	Rename a test utility function.

	* tests/test_selfhosting_utils.[h|cc]: Rename 
  test_create_and_selfhost() to test_create_and_selfhost_from_example().
	* tests/test_selfhosting_new_from_example.cc:
	* tests/test_selfhosting_new_then_get_privs.cc:
	* tests/test_selfhosting_new_then_image.cc:
	* tests/test_selfhosting_new_then_report.cc:
	* tests/test_selfhosting_sqlinjection.cc: Adapated.

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

	Require libgda 5.0.2

	* configure.ac: Require the lastest libgda to avoid several bugs 
	at runtime - See the comments in configure.ac.

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

	Creating from examples: Do not create users and groups with SQLite.

	* glom/libglom/db_utils.cc: add_groups_from_document(),
	set_table_privileges_groups_from_document(): Do nothing if the database 
	backed doesn't support this feature, to avoid errors when using SQLite.

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

	Handle GdaBlob in query results instead of just GdaBinary.

	* glom/libglom/data_structure/field.cc: to_file_format():
	The Value might have a GdaBlob that needs to be read first, to get the 
	GdaBinary. This can happen with SQLite.
	* glom/libglom/python_embed/pygdavalue_conversions.cc:
	glom_pygda_value_as_boost_pyobject(): Handle GdaBlob too, though neither 
	this or the GdaBinary case use the data length, so this code is doomed 
	if it is ever used. I need to find out if Python can really represent 
	binary data, or if this should just not be handled here.
	* glom/utility_widgets/imageglom.cc: get_binary(): Handle GdaBlob 
	too in the original data.
	* tests/test_selfhosting_new_then_image.cc: Handle GdaBlob in the 
	data that is read back, for SQLite. Uncomment the SQLite test, fixing 
	make check with the latest libgda.

1.19.17:

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

	Handle gdouble results from python functions.
    
        * glom/libglom/data_structure/field.cc: Add a mapping
        instead of ignoring doubles.
        This avoids a stderr warning and probably makes calculations
        work.

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

	Fix some warnings about invalid field types with choices.

	* glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
	set_choices_related(): Set full field details on the 
	layout_choice_extra fields, to avoid invalid field types,
	and stderr warnings about them.

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

	Updated examples screenshots.

	* docs/website/screenshots/glom_example_filmmanager.png:
	* docs/website/screenshots/glom_example_musiccollection.png:
	* docs/website/screenshots/glom_example_projectmanager.png:
	* docs/website/screenshots/glom_example_smallbusiness.png:
	* docs/website/screenshots/small_glom_data_details.png: Updated.
	* examples/example_film_manager.glom:
	* examples/example_music_collection.glom:
	* examples/example_project_manager.glom: Saved some changes that 
	I made to match the details.

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

	Update screenshots for the website.

	* docs/website/screenshots/*.png: Updated these screenshots, 
	partly by copying some from user_guide/C/figures/.
	They are used here:
	http://www.glom.org/wiki/index.php?title=Screenshots
	after uploading with "make post-html"

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

	FlowTable: In developer mode, draw some lines.

	* glom/utility_widgets/flowtable.[h|cc]: on_draw(): Draw some dashed lines
	a little like the lines drawn in on_expose_event() in Glom 1.18.
	This is not very good, but it was not very good before, but I still think
	we need something to show the boundaries.

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

	Small Business example: Add a little more data so the report is useful.

	* examples/example_smallbusiness.glom: Contacts: Add towns and countries.

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

	Do not blank the data when showing the field definitions dialog.

	* glom/frame_glom.cc: do_menu_developer_fields(): Only blank the data 
	view if using SQLite, which requires it, because it looks like a bug to 
	the user.

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

	Fix make check.

	* examples/example_smallbusiness.glom: Resaved with correctly-formatted 
	image data now that libgda works again.
	* tests/test_selfhosting_new_then_image.cc: Comment out the SQLite test
	because it fails and we do not care so much about that. Still, I will
	investigate it.

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

	Add and use utility functions for creating temporary files.

	* glom/libglom/utils.[h|cc]: Added get_temp_file_uri(), 
	get_temp_file_path(), get_temp_directory_uri() and 
	get_temp_directory_path(), using the correct awkward code that 
	avoids overwriting existing files.
	* glom/application.cc:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/report_builder.cc:
	* glom/utility_widgets/imageglom.cc:
	* tests/import/utils.cc:
	* tests/test_document_autosave.cc:
	* tests/test_selfhosting_new_empty.cc:
	* tests/test_selfhosting_utils.cc: Use these functions instead 
	of repeating the same stuff badly.
	* Makefile_tests.am: Link to libglom so the import tests can use 
	the new utility functions.

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

	Make connections to central PostgreSQL servers work again.

	* glom/libglom/connectionpool_backends/postgres_central.cc: Do not 
	forget a previously-successful connection-but-not-to-the-database.

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

	Added test for Glom::Priv getting of group and user names.

	* tests/test_selfhosting_new_then_get_privs.cc: Added a test of some
	Glom::Privs functions.
	* Makefile_tests.am: Mention the new test.

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

	libglom: Remove an unused Utils::sqlbuilder_get_full_query() overload.

	* glom/libglom/utils.[h|cc]: Nothing uses the version that takes 
	a string and parameters.

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

	libglom: Utils::sqlbuilder_get_full_query(): Improve the result.

	* glom/libglom/utils.cc: Use the GdaConnection's statement_to_sql() 
	instead of just GdaStatement's to_sql() so we a) have correct quoting,
	and b) use the server's specific SQL dialect.

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

	Image fields test: Load data from a file and check setting and getting.

	* tests/test_image.glom: Added an image file to set and get in the 
	database.
	* Makefile_tests.am: Distribute the image file.
	* tests/test_selfhosting_new_then_image.cc: Load the data from the 
	file, set it in the database, and check that the data read back is 
	the same.
	Correct the type check. However, the data equality test still fails
	because of libgda bug #662922 .

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

	libglom: Added build_sql_update_with_where_clause().

	* glom/libglom/utils.[h|cc]: Added build_sql_update_with_where_clause().
	* glom/base_db.cc: set_field_value_in_database(): use it here instead 
	of manually creating a SqlBuilder.

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

	Add a test for Image fields.

	* Makefile_tests.am:
	* tests/test_selfhosting_new_then_image.cc: Add a test to read an image field
	value, though this currently fails.
	I will later add a write-then-read test.

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

	Add a test for Image fields.

	* Makefile_tests.am:
	* tests/test_selfhosting_new_then_image.cc: Add a test to read an image field
	value, though this currently fails.
	I will later add a write-then-read test.

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

	Fix make check by correcting the DTD.

	* glom/glom_document.dtd: Corrections relating to the print layout definitions.

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

	Small Business Example: Make the report example more like the one in screenshots.

	* examples/example_smallbusiness.glom:

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

	More fixes for the Frame label issue.

	* glom/mode_data/box_data_list_related.cc: Only set or unset the Gtk::Frame 
	label if it is or isn't there already, to avoid a warning.
	* glom/mode_data/box_data_portal.[h|cc]: Remove the unused implementation 
	of one init_db_details() method, making it pure virtual instead.

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

	Notebook: Avoid truncating related records buttons.

	* glom/mode_data/box_data_list_related.cc: Use
	Gtk::Frame::unset_label() instead of just hiding the frame's label,
	because that apparently leads to an incorrect allocation, causing the 
	buttons to be cut in half horizontally at the bottom.
	This is caused by a regression in GTK+ 3: See bug #662915

1.19.16:

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

	Depend on libgda 5.0.0.

	* configure.ac: This version of libgda has fixes for:
	Bug #661655 - data doesn't display when a field is renamed to string with a hyphen.
	and
	Bug #661073 - SQL Errors when a relationship name has capital letters.

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

	Remove GtkHandleBox from the .glade file too.
	
	* ui/developer/window_print_layout_edit.glade:
	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	Use a GtkBox instead of a GtkHandleBox.

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

	Add and move #includes for the latest glibmm. 

	* glom/import_csv/csv_parser.cc:
	* glom/import_csv/dialog_import_csv_progress.cc:
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/privs.cc:
	* glom/libglom/spawn_with_feedback.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/db_adddel/db_adddel.cc:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	* glom/utility_widgets/dialog_image_load_progress.cc:
	* glom/utility_widgets/dialog_image_save_progress.cc:
	* glom/utils_ui.cc:
	* tests/import/utils.cc: Add individual glibmm includes now that 
	gmmproc does not include glibmm.h from headers.
	Always include glibmm/thread.h first to avoid deprecation warnings.

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

	Adapt to the latest goocanvasmm API.

	* glom/main.cc: Pass no arguments to init(), though I think I will 
	add the method overload back to goocanvasmm to avoid annoying people 
	too much.

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

	Avoid deprecated Gtk::HandleBox with latest gtkmm.

	* glom/utility_widgets/sidebar.[h|cc]: Removed, because Gtk::HandleBox
	is deprecated.
	* Makefile_glom.am: Remove mention of this file.
	* glom/utility_widgets/layouttoolbar.[h|cc]: Derive directly from 
	Gtk::ToolPalette instead.
	* glom/mode_design/print_layouts/print_layout_toolbar.[h|cc]: Adapt.

	* glom/mode_design/print_layouts/window_print_layout_edit.h: The glade 
	file still has a GtkHandleBox which we should remove, but in the
	meantime just use it via Gtk::Box.

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

	Change #includes for the latest glibmm.

	Add individual includes instead of general giomm.h, glibmm.h or gtkmm.h 
	includes.
	Among other things, this might let us avoid the annoying warning about 
	deprecated GThread functions.

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

	Main window: Use a smaller default size.

	* ui/operator/window_main.glade: Request a small enough size to fit small 
	screens. This will then not warn during test_glade_derived_instantiation.cc.
	However, more space may be requested later.

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

	Remove the unnused PlaceholderGlom class.

	* glom/mode_data/placeholder-glom.[h|cc]: Remove these files.
	* Makefile_glom.am: Remove mentions of these files.
	* glom/mode_data/flowtable_withfields.cc: Remove uses of PlaceholderGlom.

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

	Do not include gtkmm.h, glibmm.h, giomm.h, or similar in headers.

	* Many files: Use more specific includes.

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

	Progress InfoBar: Block user input during progress.

	* glom/application.cc: set_progress_message(): Set the main UI elements to 
	insensitive(), because all our current uses of the progess message should 
	block user input, like a modal dialog.
	* ui/operator/window_main.glade: Move the InfoBar out of the frame, because 
	it should not have the border, and so we can make the frame insensitive 
	without making the InfoBar insensitive. This required adding an extra 
	intermediate GtkBox, because otherwise there is no way to add the menubar
	at the top, before the InfoBar.
	This .glade file needed some hand-editing to remove bad <packing> tags that
	glade (from git master) added.

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

	ShowProgressMessage: Move to its own source files.

	* Makefile_glom.am:
	* glom/application.[h|cc]: Move the ShowProgressMessage class to separate 
	.h/.cc files because I generally prefer one .h/.cc per class.

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

	ShowProgressMessage: Minor Cleanup.

	* glom/application.[h|cc]: Move implementation into .cc file. Correct the code
	style. Make the constructor explicit.

2011-10-24  David King  <davidk@openismus.com>

  Replace progress dialog with infobar.

  Bug #661051

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

	Avoid calling g_thread_init() if possible.

	* configure.ac: Add a comment about not linking to gthread-2.0 in future.
	* glom/libglom/init.cc:
	* tests/import/test_parsing.cc:
	* tests/import/test_signals.cc: Avoid calls to deprecated Glib::thread_init()
	if glib is new enough.
	This is a step to making Glom build against glibmm from git master with
	--enable-warnings=fatal.

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

	libglom: Restore the Util::build_sql_select_count_row() API. 

	* glom/libglom/db_utils.cc: move it back to:
	* glom/libglom/utils.[h|cc]: because it is needed by java-libglom.

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

	Self-hosting tests: Test with sqlite too.

	* tests/test_selfhosting_utils.[h|cc]: test_create_and_selfhost():
	Add a hosting_mode parameter so we can test sqlite too.
	Correct some return values and check that the directory really exists after
	it should have been created.
	* tests/test_selfhosting_new_empty.cc:
	* tests/test_selfhosting_new_from_example.cc:
	* tests/test_selfhosting_new_then_report.cc:
	* tests/test_selfhosting_sqlinjection.cc: Restructure so all tests are run 
	twice - once for each backend.
	
2011-10-20  Murray Cumming  <murrayc@murrayc.com>

	SQLite: Avoid reporting failure when recreating databases.

	* glom/libglom/db_utils.[h|cc]: recreate_database_from_document(): Do not 
	call add_standard_tables() and add_standard_groups() because create_database()
	(which we call) has already done this.
	query_execute_string(): Only -1 is an error, though that is odd.
	See libgda bug #662279 .

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

	Replaced Utils::build_sql_select_count_row() with DbUtils::count_rows_returned_by().

	* glom/libglom/utils.cc:
	* glom/base_db.[h|cc]: Moved count_rows_returned_by() to 
 	* glom/libglom/db_utils.[h|cc]: and also moved 
  Utils::build_sql_select_count_row() making it static (not API).
	* glom/frame_glom.cc:
	* glom/mode_data/datawidget/treemodel_db.cc: Adapted.

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

	SQL Injection Test: Try to avoid quoting by giving a wrong field type.

	* tests/test_selfhosting_sqlinjection.cc: Try to avoid quoting by
	saying that a text field is a number but still providing a text value.

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

	SQL Injection Test: Try to use (evil and unquoted) text for a number. 

	* tests/test_selfhosting_sqlinjection.cc: This seems to be safe already.

1.19.15:

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

	Don't unconditionally link with libdl to fix regress tests on
	systems which don't need to link with -ldl for dlopen() etc.

	* configure.ac:
	* Makefile_tests.am: Check for -libdl.

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

	SQL Injection Test: Try both kinds of quote characters.

	* tests/test_selfhosting_sqlinjection.cc: Instead of assuming that we know
	what libgda uses.

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

	Self-hosting: Attempt to avoid failed shutdowns.

	* glom/libglom/connectionpool.cc: invalidate_connection(): Actually call
	Gda::Connection::close() instead of relying on the Connection destructor to
	do that, because maybe it is not closing it if maybe Connection::is_opened()
	is not working correctly.
	cleanup(): invalidate the connection before shutting down the server,
	not after, in case an open connection is stopping the server from closing down. 
	* glom/libglom/connectionpool_backends/postgres_self.[h|cc]:
	connect(): Remember the connection details so we can use them later to show
	debug output.
	Added show_active_connections() to try to get a clue about what is wrong
	when the shutdown fails, using those connection details.
	cleanup(): Call it when the shutdown fails.

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

	Fix make check.

	* tests/test_selfhosting_new_from_example.cc: Add some missing !.

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

	Do not pygoject_init() the wrong version.

	* glom/libglom/init.cc: Specify pygobject 3 instead of 2 when calling
	pygobject_init(). They are parallel-installable and incompatible and it is 
	3 that we depend on. This recently started failing during "make check", 
	which it should.

1.19.14:

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

	Add a simple SQL injection test.

	* tests/test_selfhosting_sqlinjection.cc: Attempt to do bad things 
	that would be possible if our SQL values were not escaped properly
	in the SQL. (libgda takes care of this.)
	* Makefile_tests.am: Mention the new test.

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

	Self hosting test: Check that other tables exist.

	* glom/libglom/document/document.[h|cc]: Added get_field_primary_key(),
	for use by:
	* tests/test_selfhosting_utils.[h|cc]: Added test_table_exists().
	* tests/test_selfhosting_new_from_example.cc: Add quick checks that 
	some other tables exist.

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

	Test some query functions.

	* tests/test_selfhosting_utils.[h|cc]: Added test_model_expected_size().
	* tests/test_selfhosting_new_from_example.cc: Test the quick find and 
	the count query.

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

	Avoid a compiler warning.

	* glom/libglom/data_structure/glomconversions.cc: format_time():
	Return a result from the catch block.

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

	Avoid some copy/pasting of code.

	* glom/mode_design/print_layouts/print_layout_toolbar_button.cc:
	* glom/utility_widgets/layouttoolbar.cc:
	* glom/utility_widgets/layouttoolbarbutton.cc: Moved get_icon_path() to:
	* glom/utils_ui.[h|cc]

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

	Test report contents.

	* glom/libglom/xsl_utils.[h|cc]: transform(): Return the contents, 
	not a filepath.
	* glom/libglom/report_builder.[h|cc]: report_build(): return the 
	contents, not the path. Add report_build_and_save() to get a temporary
	filepath.
	* glom/mode_data/box_data_manyrecords.cc:
	* glom/frame_glom.cc: Adapted.
	* tests/test_selfhosting_new_then_report.cc: Check that some expected 
	text is in the generated HTML.

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

	Test report building.

	* tests/test_selfhosting_new_from_example.cc: Move most code into 
	utility functions in:
	* tests/test_selfhosting_utils.[h|cc]:
	* tests/test_selfhosting_new_then_report.cc: Add a new test that also 
	generates a HTML report.
	* Makefile_tests: Mention the new files.

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

	Film Manager example: Change default table.

	* examples/example_film_manager.glom: Make the Scenes table appear first so
	people get a better idea of what this is about - managing production of a
	single film, not managing a collection of films.

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

	Add a test for the locale problem and for a missing translated date format.

	* tests/test_glom_date_in_locales.sh: A new test that sets LANG and then tries
	to start glom with it's date-checking option, to see if any fail.
	However, this is not run during "make check", or even distributed, because
	it depends on you having the locales installed and configured.

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

	Add try/catch around all uses of std::locale("").

	* glom/libglom/data_structure/glomconversions.cc: Add try/catch with a warning
	whenever we use std::locale(""), which means the current locale, because that 
	can throw an exception if the locale is not properly configure.
	* glom/main.cc: Mention that a non-installed or not-properly-configured 
	locale could be the cause of the problem.
	
	However, I would like to know exactly what it means for a locale to be 
	properly configured.

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

	Command line: Correct some exit results.

	* glom/main.cc: Use EXIT_FAILURE and EXIT_SUCCESS instead of 0 and -1,
	and use the correct ones.

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

	libglom: FieldFomatting: Correct some parameter names.
	
	* glom/libglom/data_structure/layout/fieldformatting.h: get_choices_related()
	Rename relationship_name to relatioship. It was already correct in the .cc
	file.

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

	Correct the pkg-config file.

	* glom/libglom/glom.pc.in: Depend on libgdamm-5.0, not ligdamm-4.0.
	And depend on libxslt, because we just moved the xslt stuff into libglom.

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

	Move ReportBuilder to libglom, to make testing easier.

	* glom/report_builder.[h|cc]:
	* glom/xsl_utils.[h|cc]: Moved to:
	* glom/libglom/report_builder.[h|cc]:
	* glom/libglom/xsl_utils.[h|cc]:
	* Makefile_glom.am, Makefile_libglom.am: Adapted, also adding a 
	-D define for libglom to access the xslt file, though I am not happy
	about a library needing a file to be installed.

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

	ReportBuilder: Do not depend on Base_DB unnecessarily.

	* glom/report_builder.[h|cc]: Just add get/set_document() instead.

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

	Move report building code around.

	* glom/report_builder.[h|cc]: report_build(): Return the filepath,
	instead of opening it in the browser.
	* glom/xsl_utils[h|cc]: transform_and_open(): Rename to transform(), 
	returning the filepath. Also correct some ustring filepath to std::string.
	* glom/utils_ui[h|cc]: Added show_report_in_browser().
	* glom/frame_glom.cc: on_menu_report_selected():
	* glom/mode_data/box_data_manyrecords.cc: print_layout: Adapted.

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

	Move some XSLT-processing code around.

	* glom/mode_data/box_data.h: Remove declaration of non-implemented 
	and unused xslt_process() method.
	* glom/xsl_utils.[h|cc]: Move xslt_process() in to the .cc file as a 
	static function.

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

	Move some Report code around.

	* glom/mode_data/box_data_manyrecords.cc: print_layout():
	Move the report creation to ReportBuilder.
	* glom/report_builder.[h|cc]: Added create_standard_list_report().
	* glom/xsl_utils.cc: Do not output all the XSL and HTML to std::cout,
	but do output the temporary file name of the generated HTML file.

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

	XSLT file: Minor fixes.

	* xslt/print_report_to_html.xsl: Change xsl::version to version, which
	is apparently more correct. Specify the encoding as UTF-8.

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

	Tests: Add general XML validity of XSLT files.

	* tests/test_xslt_file_validation.sh: New test, based on the other ones.
	* Makefile_tests.am: Mention the new test.

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

	Remove an unused XSL file.

	* xslt/print_details_to_html.xsl: Remove this because it is no longer
	used.
	* Makefile.am: Remove mention of it.

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

	Examples: Remove all column_width attributes now that defaults are good.

	* examples/example_film_manager.glom:
	* examples/example_lesson_planner.glom:
	* examples/example_music_collection.glom:
	* examples/example_project_manager.glom:
	* examples/example_smallbusiness.glom:
	* examples/sqlite/test_sqlite_music/test_sqlite_music.glom:
	* examples/tests/example_field_formatting_test.glom:
	* ldtp/database-templates/PostgresCentral/Test.glom:
	* ldtp/database-templates/SQLite/Test.glom: A simple regexxer replace.
	
2011-10-17  Murray Cumming  <murrayc@murrayc.com>

	List View: Correct the default column widths.

	* glom/utils_ui.[h|cc]: get_suitable_field_width_for_widget(): Added a
	for_treeview parameter and adjust the width accordingly.
	* glom/mode_data/db_adddel/db_adddel.cc: treeview_append_colum():
	Replace the overly-generic division-by-3 hack with the new parameter, and 
	add some hard-coded extra space.
	
2011-10-17  Murray Cumming  <murrayc@murrayc.com>

	Details: Avoid an outdent after group titles

	* glom/mode_data/flowtablewithfields.cc: add_layout_group(): Work around 
	* the GtkFrame bug #644199

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.

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.

1.19.11:

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

	Require latest libgdamm, for the Value::operator=() fix.

	* configure.ac: This avoids a blank details view when changing to developer
	mode.

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

	Details: Avoid an empty layout when changing to developer mode.

	* glom/mode_data/box_data_details.cc: on_userlevel_changed(): Recreate 
	and refill the layout, instead of just recreating it.

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

	Some checks for GValues with invalid types.

	* glom/libglom/data_structure/glomconversions.cc: value_is_empty():
	Also check for a 0 GType, which now (in libgda-5.0) means invalid, not
	SQL-null.
	* glom/mode_data/box_data_details.cc:
	set_found_set_from_primary_key_value(): Use value_is_empty() instead of
	checking for a null value.

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

	Print Layout: Layout: Fix alignment/expansion of the line options.

	* ui/developer/window_data_layout.glade: Remove some horizontal expand=true.

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

	Print Layout: Related Records: Do not show editing formatting options.

	* glom/mode_design/layout/dialog_layout.[h|cc]: Add m_editable_layout, 
	defaulting to true.
	* glom/mode_design/layout/dialog_layout_details.cc: on_button_formatting():
	Use m_editable_layout to avoid showing some formatting options.
	* glom/mode_design/layout/dialog_layout_list_related.cc: set_document():
	Set m_editable_layout to false for print layout.

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

	Print Layout: Use foreground colors from the text/field formatting.

	* glom/print_layout/canvas_layout_item.cc: apply_formatting():
	Correctly use the foreground color, though the background color is not 
	used yet.

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

	Print Layout: Use the correct numeric formatting.

	* glom/print_layout/canvas_print_layout.cc: set_canvas_item_field_value():
	For instance, use the default field formatting. Otherwise numbers tend 
	to have thousands separators and no decimal places by default.

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

	Images: Avoid a warning when choosing.
    
	* glom/utility_widgets/imageglom.cc: on_menupopup_activate_select_file():
	Avoid a warning about reinitializing a GValue when choosing an image file.

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

	Remove the Add Related Table feature.

	* glom/application.cc: init_menus():
	* glom/frame_glom.[h|cc]: on_menu_Tables_AddRelatedTable(): Remove the 
	Tables/Add Related Table menu item (and feature) because, though it is 
	useful, it requires explanation and is probably confusing to new users.
	
	Of course you can still add tables and then a relationship to them manually.

1.19.10:

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

	UsesRelationship: Added get_relationship_display_name().

	* glom/mode_design/layout/dialog_layout_calendar_related.cc: update_ui():
	* glom/mode_design/layout/dialog_layout_list_related.cc: update_ui():
	Move some code into
	* glom/libglom/data_structure/layout/usesrelationship.[h|cc]:
	get_relationship_display_name() to avoid repetition.

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

	Related Records: Correct automatic navigation to related relationships.

	* glom/base_db.[h|cc]: get_portal_navigation_relationship_automatic():
	Remove the unused (well, should have been unused) navigation_main output
	parameter.
	Document the method so we know what the parameters and result really mean.
	In particular, a empty result means that the portal's regular relationship
	should just be used.
	* glom/mode_data/box_data_portal.[h|cc]: get_suitable_table_to_view_details():
	Document its parameters so we know what table the relationship belongs to, 
	if any relationship is even needed.
	Use get_navigation_relationship_specific() if specified and correct the 
	logic so that the correct table is always used.
	get_suitable_record_to_view_details(): Document this too.
	* glom/mode_design/layout/dialog_layout_calendar_related.cc: update_ui():
	* glom/mode_design/layout/dialog_layout_list_related.cc: update_ui():
	Adapted.

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

	ComboGlom::set_value(): Do not cause a change to be signalled.

	* glom/mode_data/datawidget/combo.[h|cc]: Prevent unsuitable signal 
	emissions when setting the value programatically.

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

	Do not create XML documents containing form feeds.

	* glom/libglom/utils.[h|cc]: Added string_clean_for_xml(), though it is 
	currently inefficient and copies the whole string even when not changing it.
	* glom/libglom/document/document.cc: set_child_text_node(), 
	set_node_text_child_as_value(), save_before(): Always use that utility 
	method before giving the child text string to libxml, because libxml will 
	just write it out to the file, creating an invalid XML file that it can't
	read back in.

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

	Related records portals: Allow navigation via read-only relationships.

	* glom/mode_data/box_data_list_related.cc: on_adddel_user_requested_edit():
	Remove the check for a non-editable relationship, because that is about 
	editing, but this is about opening, and we already have the navigation=None
	option.

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

	Script Library: Prevent a crash when opening the dialog.

	* ui/developer/dialog_script_library.glade: Change the GtkComboBox to a 
	GtkComboBoxText as intended, to prevent a crash when it has no model.
	* glom/utility_widgets/combo_textglade.[h|cc]: Add a check that there is a 
	model.

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

	DataWidget: Do not expand the Open and Find buttons.

	* glom/mode_data/datawidget/datawidget.cc: Use Gtk::PACK_SHRINK.

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

	Print Layout: Do not show the formatting context menu items when it is useless.

	* glom/print_layout/canvas_print_layout.cc: on_item_show_context_menu():
	Disable the formatting context menu item when appropriate.

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

	Use pygobject-3.0

	* configure.ac: Instead of pygobject-2.0. Because everything else (such as 
	the gi.repository.Gda seems to use it, and initializing pygobject-2.0 breaks 
	that.

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

	Remove the Mameo UI.

	* Makefile.am:
	* Makefile_glom.am:
	* configure.ac:
	* glom/*.[h|cc]: Remove the --enable-maemo option and the ifdefs in the code.
	Unforunately, the platform is dead so that Hildon API will never be available 
	to us in the real world.

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

	startup: Check that the gi.repository python module is available.

	* glom/main.cc: Actually call check_gir_is_available_with_warning() and do 
	that before checking for Gda inside it.

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

	Glade files: Alignment corrections.

	* ui/developer/box_formatting.glade:
	* ui/developer/dialog_choose_field.glade:
	* ui/developer/window_groups.glade:
	* ui/operator/dialog_import_csv.glade: Use fill=true 
	for the packing of labels in GtkTable, so their 
	alignment is actually used. For instance, this makes 
	labels line up to the left or right.
	* ui/developer/dialog_user.glade: Also use a : at the 
	end of labels, as in other dialogs.

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

	Fix expansions in glade files.

	* ui/developer/*.glade:
	* ui/operator/*.glade: expand/fill corrections and some alignment corrections.

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

	Field Definition window: Fix vertical packing.

	* ui/developer/window_field_definition_edit.glade: Some GtkTable children 
	had vertical expand=true.

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

	Replace deprecated Gtk::HBox and Gtk:VBox with Gtk::Box.

	* glom/*.[h|cc]: HBox and VBox are deprecated.
	However, these are still used in the .glade files.

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

	Update EggSpreadTableDnd from libegg. 

	* glom/utility_widgets/eggspreadtable/eggspreadtablednd.[h|c]:
	Updated from libegg.
	* glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.[h|cc]:
	Wrap the new API to add and remove widgets. Note the extra reference() in 
	remove_child(), like Gtk::Container::remove().
	* glom/utility_widgets/eggspreadtablemm/test_spreadtablednd.cc: Adapt.
	* glom/utility_widgets/flowtable.[h|cc]: Adapt and make several corrections, 
	for instance to really find our intermediate hbox parents.
	However, there is still a warning (from our code) about trying to remove a 
	hbox that has no parent. 
	* glom/mode_data/flowtablewithfields.[h|cc]: Remove the add_before parameters,
	always adding at the end, because we do not need the ability to insert 
  anywhere else, and doing so required examining the children, but 
  EggSpreadTableDnd adds internal children that we don't want to care about.

2011-08-31  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Allow the user to choose row and column line widths and color.

	* glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: Added 
	get/set_print_layout_row_line_width(), 
  get/set_print_layout_column_line_width(), and 
  get/set_print_layout_line_color().
	* glom/libglom/document/document.cc: load_after(), save_before(): Store the 
	new details in the document.
	* ui/developer/window_data_layout.glade: Added an optional extra section 
	with line details for print layouts.
	* glom/mode_design/layout/dialog_layout_list_related.[h|cc]: Use the new
	widgets, hiding them for non-print-layout uses.
	* glom/mode_design/layout/dialog_layout_details.[h|cc]: Hide the new widgets 
	by default.
	* glom/utility_widgets/canvas/canvas_table_movable.[h|cc]: 
  Added set_line_details().
	* glom/print_layout/canvas_layout_item.cc:
  create_canvas_item_for_layout_item(): Call set_line_details().

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

	Disable the canvas test.

	* Makefile_tests.am: Because it doubles the build time.

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

	Print Layout: Line editing: Allow decimal places.

	* ui/developer/dialog_line.glade: Add an outer border, to match the other 
  dialogs. Let the SpinButton show (and allow) 3 decimal places.

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

	Print Layout: Slight improvement to image scaling.

	* glom/utility_widgets/canvas/canvas_image_movable.cc: scale_to_size():
	Use the correct size in pixels to scale the image.
	However, it is still overscaled and cropped due to goocanvas bug #657592 .

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

	Print Layout: Allow editing of line width and color.

	* Makefile.am:
	* Makefile_glom.am:
	* ui/developer/dialog_line.glade:
	* glom/mode_design/layout/layout_item_dialogs/dialog_line.[h|cc]:
	Added a new dialog for editing line details, such as width and color.
	* tests/test_glade_derived_instantiation.cc: Test new new dialog.

	* glom/libglom/data_structure/layout/layoutitem_line.[h|cc]: Added 
	get/set_line_width() and get/set_line_color().
	* glom/libglom/document/document.cc: load_after(), save_before(): Store
	these new details in the document.
	* glom/print_layout/canvas_layout_item.cc:
	* glom/print_layout/canvas_print_layout.[h|cc]: Allow editing by showing 
	this new dialog.

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

	Load whole glade files, to get secondary objects without listing them.

	* glom/glade_utils.h: helper_get_glade_widget_derived_with_warning():
  Add a bool so we can choose to load the whole .glade file.
  get_glade_widget_derived_with_warning(): Load the whole file.
  Add get_child_glade_child_widget_derived_with_warning(), which does not load 
  the whole file.
  * glom/frame_glom.cc:
  * glom/mode_design/fields/dialog_fielddefinition.cc:
  * glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.cc:
  * glom/mode_design/layout/layout_item_dialogs/dialog_formatting.cc:
  * glom/mode_design/print_layouts/dialog_text_formatting.cc: Use this to load 
  boxes when we do not want the whole window that they are in.

  This was the main reason for splitting the .glade files up - to work 
  around GtkBuilder's inability to automatically load secondary objects.

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

	Remove unused .glade file.

	* ui/developer/dialog_layoutitem_properties.glade:
	* Makefile.am: This glade file is not used by any code.

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

	Print Layout: Related records portals: Use the normal outline stroke.

	* glom/utility_widgets/canvas/canvas_group_resizable.[h|cc]: Add 
	a static get_outline_stroke() method.
	* glom/print_layout/canvas_layout_item.cc:
	create_canvas_item_for_layout_item(): Use it here.

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

	Print Layouts: Default to 12-point text instead of 9.

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	Use a grid size, and item sizes, suitable for 12 point text.
	create_empty_item(): Make sure we stop LayoutItem_Field items from 
	using default formatting, which is not for print layouts.
	Set a default font size for anything that has text formatting.
	* glom/mode_design/relationships_overview/canvas_group_dbtable.cc:
	Constructor: Use 12 points instead of 10 points, though this should 
	be configurable anyway.

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

	Print Layout: Make item sizes match the grid size by default.

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	create_empty_item(): Base the default item sizes on the grid gap,
	so they are more useful.

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

	Allow deletion of multiple selected items via the context menu.

	* glom/print_layout/canvas_print_layout.[h|cc]: on_context_menu_delete():
	If the deleted item was selected, delete all selected items.

2011-08-23  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Related records: Corrections for column sizes.

	* glom/print_layout/canvas_layout_item.cc: create_canvas_item_for_layout_item():
	Related records table: Use an extra GooCanvasRect to make sure that the 
	cell size is really what we want, avoiding GooCanvasText's and GooCanvasTable's 
  attempts to be cleverer than we want.
  Also, make sure that the last column is expanded, regardless of any size 
  specified, if all the other columnd had specified sizes.

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

	Print Layout: Related Records: Set the row height.

	* glom/print_layout/canvas_layout_item.cc: We can do this now that the 
	goocanvas bug has been fixed, though configure should check for it when the
	tarball version exists.

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

	Print Layout / Relationships Overview: Avoid errors with & in the text.

	* glom/utility_widgets/canvas/canvas_text_movable.cc: reconstruct_markup:
  Escape the text before using it to build markup. Otherwise pango will complain
  (correctly) about & in the text.

2011-08-15  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Do not show navigation options for related records portals.

	* glom/mode_design/layout/dialog_layout_list_related.[h|cc]:
  set_document(): Add a new bool parametrer that can hide the navigation 
  widgets because they are useless in a print layout.
	* glom/print_layout/canvas_print_layout.cc: offer_related_records():
  Use the new bool parameter.
	* ui/developer/window_data_layout.glade: Correct some packing options so 
  the right parts expand, without empty space.

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

	Print Layout: Snap to rules even when the grid is not shown.

	* glom/utility_widgets/canvas/canvas_group_grid.cc: Don't make snapping 
	to rules dependent on whether the grid is showing.

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

	Print Layout: Work around some weirdness in portal tables.

	* glom/print_layout/canvas_layout_item.cc:
	create_canvas_item_for_layout_item() Do not set the height of 
	items in tables, because that leads to them disappearing when the 
	table is moved in certain ways. I am still investigating why.
	We probably really do want to set the height.

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

	Print Layout: Only show grid lines on mouseover.

	* glom/utility_widgets/canvas/canvas_table_movable.[h|cc]:
	Add set_lines_visibility().
	* glom/utility_widgets/canvas/canvas_group_resizable.cc:
	position_line_manipulators(): If the child is a table then 
	also show the grid lines.

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

	Print Layout: Make the manipulators the same width as the outlines.

	* glom/utility_widgets/canvas/canvas_group_resizable.cc: Change 
	MANIPULATOR_STROKE_WIDTH to be the same as OUTLINE_STROKE_WIDTH, 
	which is thinner.
	create_outline_line(): Prevent dragging of the outline, in case it 
	ever gets high enough in the z order to be dragged.
	create_rect_manipulators(), position_line_manipulators(),
	create_outline_line(): Always raise the manipulators to the very top,
	so they are always visible and draggable. Trying to be more precise 
	with raise() can apparently move them lower than other items that we 
	do not mention.

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

	Print Layout: Do not show the rules when they should not be visible.

	* glom/print_layout/canvas_print_layout.cc: set_print_layout():
	Show the grid and rules as per the PrintLayout.

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

	Print Layout: Prevent rule line dragging if rules are not shown.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	on_menu_view_show_rules(): If rules are not shown, unset the GimpRulers 
	as drag sources.
	on_canvas_drag_motion(), on_canvas_drag_data_received(): Prevent 
	showing the temp rule or dropping a real rule too.
	Also remove the unused (though set) m_dragging_temp_rule variable.

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

	Print Layout: Add a Print Preview menu item.

	* glom/frame_glom.[h|cc]: on_menu_print_layout_selected(): 
	Move this into a do_print_layout() method, with optional preview 
	and transient-for window.
	* glom/application.[h|cc]: Added do_print_layout() so we can do this 
	from other parts of the code.
	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	Add a Print Preview menu item that calls the method on the 
	application, though transient to this window.
	It shows data from the currently-selected record, even though that 
	might not be very visible to the user.

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

	Print Layout: Make text formatting work for field items.

	* glom/print_layout/canvas_print_layout.cc: on_context_menu_edit(), 
	on_dialog_format_hide(): Never use default formatting for fields, 
	because that formatting is for regular layouts, and we do not 
	even let the user toggle whether to use it.

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

	Print Layout: Don't move fields to 0,0 when choosing the field.

	* glom/mode_design/layout/dialog_choose_field.cc: get_field():
	Preserve the extra details of the start field, such as formatting 
	and print layout position.

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

	Print Layout: Actually allow the user to change the text formatting.

	* glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
	When used for a print layout, enable the hidden checkboxes, because 
	other code checks for them.
	* glom/print_layout/canvas_print_layout.cc: on_context_menu_formatting():
	Make the dialog transient for the parent window.
	Also, do not show numeric formatting for text items.

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

	Print Layout: Correct drag positions when scrolled.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	Correct the rule position indicators, the rule drag positions, and 
	item drag positions, when the viewport is scrolled.
	canvas_convert_from_drag_pixels(): Add a bool adjust_for_scrolling 
	option, because the motion-notify-event signal already takes the 
	scroll offset into account, but the drag-motion signal does not.
	That does not seem to be documented.

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

	Print Layout: Make items transparent.

	* glom/utility_widgets/canvas/canvas_group_resizable.cc:
	create_rect_manipulators(): Make items transparent instead of white.

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

	Print Layout: Allow rules to be moved.

	* glom/utility_widgets/canvas/canvas_line_movable.[h|cc]: Added 
	set_hover_color() and make sure that color is used when the mouse is 
	over the line.
	* glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
	Use CanvasLineMovable instead of PolyLine for rules, so it can 
	be moved. Make it appear red when hovering over it. Store the 
	lines instead of just the positions, so we can get the latest positions 
	later. This is rather inefficient, but it works.

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

	Print Layout: Save the rules and the various show/hides.

	* glom/glom_document.dtd: Add the new nodes and attributes.
	* glom/libglom/document/document.cc: load_after(), save_before():
	Load and save these in the document.
	
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	set_print_layout(): Set the menu actions from the PrintLayout
	so, for instance, the grid is shown if it was shown last time.
	* glom/print_layout/canvas_print_layout.cc:
	set_print_layout(): Load and save the rules too.
	* glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
	Added remove_rules() and get_horizontal/vertical_rules().
	* glom/utility_widgets/canvas/canvas_editable.[h|cc]:
	Added remove_rules() and get_horizontal/vertical_rules(), 
	calling the same methods in the grid.
	* glom/libglom/data_structure/print_layout.[h|cc]: 
	Added get/set_grid/rules/outlines() and 
	get_horizontal/vertical_rules().

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

	Print Layout: Allow dragging of rules from the rulers.

	* glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
	Added show_temp_rule().
	* glom/utility_widgets/canvas/canvas_editable.[h|cc]:
	Added show_temp_rule(), calling the one in the grid.
	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	Constructor: Add a special target to the canvas (drag destination).
	Handle button-press on the rulers to identify the orientation.
	on_canvas_drag_motion(): Handle the new target, showing the temporary 
	rule line.
	on_canvas_drag_data_received(): Handle the new target, adding a real 
	rule line.
	on_canvas_drag_leave(): clean up.

	The rule lines are not saved to the document yet.

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

	Print Layout: Actually show rules, if there are some.

	* glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
	create_lines(): Split this into two methods, and make sure that 
	the z order is correct, so that we can really show the grid and 
	rules independently, without needing to recreate both at the 
	same time.
	Added set_rules_visiblity() to do so.
	add_horizontal_rule(), add_vertical_rule(): Actually create 
	the rules.
	* glom/utility_widgets/canvas/canvas_editable.[h|cc]:
	Added set_rules_visibility() which just calls the same method 
	in the grid.
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	on_action_menu_view_showrules(): Call it.

	Of course, there is no way to add a rule yet.

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

	Print Layout: Make the window bigger by default.

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

	Print Layout: Make ruler markers follow moved items.

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	on_selected_item_moved(): Show the top-left position of the group of 
	items, though maybe we should show just the moved item instead.
	Inkscape does not do this at all (it just shows the cursor position),
	so some other example would be nice.

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

	Print Layout: Make ruler markers follow the cursor.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	Handle motion-notify-event so the rules track the cursor position.
	This is not very useful, but it feels nice, and is what other apps do.

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

	Application: Remove unused member variable.

	* glom/application.[h|cc]: Remove m_pBoxSidebar.

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

	Update the GimpRuler source copy.

	* glom/utility_widgets/gimpruler/gimpruler.[h|cc]:
	Updated from gimp's repository, from the gtk3-port branch.

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

	Relationships Overview: Make snap to grid work.

	* glom/utility_widgets/canvas/canvas_editable.[h|cc]:
	Add associate_with_grid().
	* glom/mode_design/relationships_overview/dialog_relationships_over
	view.cc: draw_tables(): Use it so that the items' snap_position() 
	methods have a grid to snap to.
	The whole grid association/add idea is generally hacky, but this makes it 
	work.

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

	Print Layout: Deselect all items when clicking on the background.

	* glom/print_layout/canvas_print_layout.[h|cc]: 
	set_page_setup(): Handle button-press-event signals on the background,
	deselecting any selected items.
	create_margin_line(): Do the same if the user manages to click on a 
	line instead.

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

	Relationships Overview: Correct the packing in the dialog.

	* ui/developer/dialog_relationships_overview.glade:
	Let the scrolledwindow expand. This was really silly and must have 
	happened during some edit with a bad version of Glade.

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

	Print Layout: Select All: Added ctrl-A keyboard shortcut.

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	init_menus(): Because it is not part of the stock item, for some reason.

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

	Print Layout: Add Select All and Unselect All menu items.

	* glom/print_layout/canvas_print_layout.[h|cc]: Added select_all(bool)
	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	init_menus(): Edit menu: Add Select All and Unselect All menu items,
	which call that method.

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

	Print Layout: Add a Show Outlines menu item

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]
	View menu: Add Show Outlines, with a handler, to show the extents of 
	the items.
	* glom/utility_widgets/canvas/canvas_group_resizable.[h|cc]:
	Added a new group with lines, in a thinner fainter gray, to indicate 
	the outline. Added set_outline_visible() to show it.
	Move it whenever the child item moves, like the manipulator lines.
	* glom/print_layout/canvas_print_layout.[h|cc]:
	Added set_outlines_visibility() to call this on all items.
	Store the value as a bool so we can use it again in 
	add_canvas_layout_item().

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

	Print Layout: Allow moving of multiple items via x and y numbers.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	on_canvas_selection_changed(): Move the calculation of the group
	dimensions into get_dimensions_of_multiple_selected_items().
	on_spinbutton_x(), on_spinbutton_y(): Use the new method to get the 
	old dimensions, so we can calculate the offset and then apply it to 
	all items, moving them together.

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

	Print Layout: Snap to grid when dragging items from the toolbar.

	* glom/utility_widgets/canvas/canvas_group_resizable.h:
	snap_position(): Make this public.
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	on_canvas_drag_motion(), on_canvas_drag_data_received():
	Snap the position to the grid (or rules), like we do when dragging 
	an existing item.

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

	Print Layout: Improve the grid appearance.

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	on_menu_view_show_grid(): Use a smaller grid gap, which seems more useful.
	* glom/utility_widgets/canvas/canvas_group_grid.cc:
	create_rule_line(): Make the lines thinner and light blue instead of 
	gray.

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

	CanvasGroupGrid: Simplify rule creation.

	* glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
	create_grid_or_rule_line(): Rename to create_rule_line(), removing 
	the bool, because that is what it is used for.

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

	Canvas_PrintLayout: Move all selected items when dragging.

	* glom/utility_widgets/canvas/canvas_item_movable.[h|cc]:
	signal_moved(): Send the item (for convenience, to avoid dodgy use of
	sigc::bind() with RefPtr<>s) and the offset of just the current part 
	of the move.
	* glom/utility_widgets/canvas/canvas_group_resizable.[h|cc]:
	* glom/mode_design/relationships_overview/dialog_relationships_over
	view.[h|cc]: Adapt.
	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	on_selected_item_moved(): Move all the other selected items by the 
	same amount.

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

	Canvas_PrintLayout: Selecting unselects others. Allow shift-clicking.

	* glom/utility_widgets/canvas/canvas_item_movable.[h|cc]:
	signal_selected(): Also send the item (this), to avoid the need for 
	awkward (due to keeping a reference) sigc::bind()ing of RefPtr<>s.
	Send a bool group_select parameter too, so we know if the button 
	press (corresponding to the button release) was with the shift key 
	held down.
	* glom/utility_widgets/canvas/canvas_editable.[h|cc]:
	on_item_selected(): Deselect other already-selected items if 
	the select was not with shift held down.

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

	CanvasItemMovable: set_selected(): Do not emit the signal here.

	* glom/utility_widgets/canvas/canvas_item_movable.cc:
	set_selected(): Do not emit signal_selected here, because it should 
	only be emitted when the user causes it.
	on_button_release_event(), on_motion_notify_event():
	Emit the signal if necessary.

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

	Canvas_PrintLayout: Edit menu: Support multiple items.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	on_canvas_selection_changed(): Store all the seleced items in a 
	vector instead of just one.
	on_menu_edit_copy(): Clone all the selected items in a vector, 
	instead of just one.
	on_menu_edit_paste(): Paste all the items, instead of just one.
	on_menu_edit_delete(): Delete all the items, instead of just one.
	on_spinbutton_*(): Adapt. These still assume that the SpinButtons 
	are only editable when only one item is selected.

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

	Canvas_PrintLayout: Update position numbers when moving items.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	on_canvas_selection_changed(): Connect to the item's signal_moved,
	so we can update the spinbuttons during the move.
	on_spinbutton_*(): Ignore the spinbutton signals while we are setting
	them programatically, to avoid an endless loop.
	* glom/utility_widgets/canvas/canvas_item_movable.cc:
	set_selected(): Emit the signal here if it has changed, rather than 
	always doing it after the call.
	on_motion_notify_event(): Mark the item as selected whenever it is 
	moved, therefore emitting the signal.

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

	Canvas_PrintLayout: Fix typo to pass the item by reference.

	* glom/print_layout/canvas_print_layout.[h|cc]:
	add_canvas_layout_item(): Add a missing & to the parameter.

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

	Print Layout: Implement cut/copy/paste/delete.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	Implement the edit menu, enabling/disabling the menu items based on 
	whether something has been selected or previously copied.
	* glom/utility_widgets/canvas/canvas_editable.[h|cc]: Added 
	get_selected_items() here, making it virtual. The override in 
	Canvas_PrintLayout is the only real implementation so far.
	Added remove_item().
	remove_all_items(): Emit signal_selection_changed if something 
	was selected.
	* glom/print_layout/canvas_print_layout.[h|cc]:
	Added remove_canvas_layout_item().
	Removed update_layout_position_from_canvas(), putting it in 
	Canvas_LayoutItem instead.
	* glom/print_layout/canvas_layout_item.[h|cc]:
	Added update_layout_position_from_canvas().

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

	CanvasPrintLayout: Remove unused method overload.

	* glom/print_layout/canvas_print_layout.[h|cc]: get_selected_items():
	The const overload is not used so remove it.

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

	Print Layout: Cache the selected item.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	Store the selected item, when it changes, instead of repeatedly 
	requesting it, which requires iteration.

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

	Print Layout: Allow editing of positions and size numerically,

	* ui/developer/window_print_layout_edit.glade: Add a row of SpinButtons
	at the bottom to show the position and dimensins of the selected item,
	also letting the user change them by changing the numbers.
	* glom/utility_widgets/canvas/canvas_item_movable.[h|cc]:
	Added signal_selected().
	* glom/utility_widgets/canvas/canvas_editable.[h|cc]:
	Added signal_selection_changed().
	* glom/print_layout/canvas_print_layout.[h|cc]: 
	Added get_selected_items().
	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	Constructor: Get the SpinButton widgets from Gtk::Builder, and set their 
	values when an item is selected. Also change the item when the values in 
	the SpinButtons change.

2011-08-05  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Allow the user to select items with a click.

	* glom/utility_widgets/canvas/canvas_item_movable.[h|cc]: 
	Added get/set_selected() and a virtual show_selected() which it calls.
	on_button_release_event(): set the item as 
	- selected if it unselected and the clicked without a move.
	- unselected if it was selected and clicked without a move.
	- selected if it was moved.
	This is roughly like Inkscape's behaviour.
	* glom/utility_widgets/canvas/canvas_group_resizable.[h|cc]:
	Split the manipulator group into two groups (edges and corners), 
	so we can (re)use the edges to show selection.
	Implement show_selected() to show/hide the edges.
	set_manipulator_visibility(): Make sure that we don't hide the 
	edges that are visible to show selection.

	This doesn't actuall do anything useful yet, but it will let us 
	do things to the selected item(s), such as editing their position via 
	coordinate numbers, moving them together, or copy/paste/cut/deleting 
	them via the menus.

2011-08-05  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Avoid warnings about -1 width.

	* glom/utility_widgets/canvas/canvas_group_movable.cc: get_width_height(),
	* glom/utility_widgets/canvas/canvas_group_resizable.cc: get_width_heigh():
	Do not return -1, which groups default to, to mean some default size.
	This was not really used anyway, and was rejected when applied to non-group 
	goocanvas items.

2011-08-05  Murray Cumming  <murrayc@murrayc.com>

	Developer menu: Move the Developer item after Operator.

	* glom/application.cc: When the user changes this, he generally changes 
	from operator to developer, so this feels more natural.

2011-08-05  Murray Cumming  <murrayc@murrayc.com>

	Print Layout Window: default to 100% size

	* glom/mode_design/print_layouts/window_print_layout_edit.cc: init_menu():
	Default to 100% instead of fit-to-width, because this seems to give a 
	better idea that it is a page, by being more like applications such as 
	OpenOffice/LibreOffice write.

2011-08-05  Murray Cumming  <murrayc@murrayc.com>

	Print Layout Window: Make the top widgets more compact.

	* ui/developer/window_print_layout_edit.glade:
	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	Make the table title/name a simple bold label with no Table: label,
	as now in the main window. Make the other labels non-bold.
	Make sure that we really show the table title with the name in brackets,
	by removing an unused (but checked) widget pointer.

2011-08-05  Murray Cumming  <murrayc@murrayc.com>

	Print Layout: Correct drag position even when the layout is scrolled.

	* glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
	Add and use canvas_convert_from_drag_pixels() to avoid the offset when 
	dragging an item from the toolpalette to the canvas when the canvas is 
	scrolled down.

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

	Print Layouts: Make corner and edges snap to the grid too.

	* glom/utility_widgets/canvas/canvas_group_resizable.[h|cc]:
	Add a set_grid() override(), as in CanvasGroupMovable, so that the 
	manipulator items also know about it, even though the manipulators 
	were created earlier, in the constructor.

	Previously snapping to the grid only worked while moving whole items.

1.19.9:

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

	Design: Related Records: Allow the developer to specify how many rows to show.

	* glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: Add 
	set/get_rows_count() to specify how many rows to show.
	* glom/libglom/document/document.cc: Load and save that rows count.
	* ui/developer/window_data_layout.glade: Add a SpinButton to specify the 
	number of rows to show in related records portals.
	* glom/mode_design/layout/dialog_layout_details.[h|cc]: Get that widget, 
	but hide it in this base class.
	* glom/mode_design/layout/dialog_layout_list_related.[h|cc]:
	Constructor: Show and setup the spinbutton.
	set_document(): Set the spinbuttons's contents.
	save_to_document(): Save it back to the portal layout item.
	* glom/mode_data/box_data_list_related.cc: create_layout():
	Use DbAddDel::set_height_rows() to try to show the correct number of rows.
	
2011-07-20  Murray Cumming  <murrayc@murrayc.com>

	ImageGlom: Ignore warning about invalid GdaBinary GValue.

	* glom/utility_widgets/imageglom.[h|cc]: Add and use get_binary() method, 
	to avoid trying to get a GdaBinary from a null (type) Gnome::Gda::Value.

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

	ImageGlom: Add commented-out code to load PDFs from memory.

	* glom/utility_widgets/imageglom.cc: This needs new API in bug #654832

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

	ImageGlom: Save temp files as read-only to avoid unexpected data loss.

	* glom/utility_widgets/imageglom.cc: save_temp_file(): Set the file 
	permissions.

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

	Avoid autoconf warning about datarootdir.

	* glom/libglom/glom.pc.in: Set datarootdir to avoid this warning:
	config.status: WARNING:  'glom/libglom/glom.pc.in' seems to ignore the --datarootdir setting
  as suggested here:
  http://www.gnu.org/software/hello/manual/autoconf/Changed-Directory-Variables.html

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

	ImageGlom: Do not try to get a thumbnail for non-image, non-evince types.
	
	* glom/utility_widgets/imageglom.cc: Just use g_content_type_get_icon(),
	to avoid saving temporary files of huge content, such as video, when just 
	navigating through rows.

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

	ImageGlom: Remove unused member variable.

	* glom/utility_widgets/imageglom.[h|cc]: Also add a comment that 
	gnome_desktop_thumbnail_factory_new() didn't work either when I tried it.

1.19.8:

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

	ImageGlom: Set an appropriate default file filter.

	* glom/utility_widgets/imageglom.cc: evince-view sets its own default, 
	but that's not ideal for us.

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

	ImageGlom: Use G_FILE_ATTRIBUTE_STANDARD_ICON

	* glom/utility_widgets/imageglom.cc: If G_FILE_ATTRIBUTE_THUMBNAIL_PATH 
	doesn't work, use the standard icon. This does seem to work. 

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

	ImageGlom: Try to use G_FILE_ATTRIBUTE_THUMBNAIL_PATH for other file types.

	* glom/utility_widgets/imageglom.[h|cc]: show_image_data():
	Get the mime_types supported by GdkPixbuf and only try to use it if we have 
	a suitable mime type. Otherwise try to get a thumbnail from GFileInfo.
	That doesn't work now, probably because we should do that async.
 
2011-07-14  Murray Cumming  <murrayc@murrayc.com>

	ImageGlom: Remove some unnecessary code.

	* glom/utility_widgets/imageglom.cc: get_value(): Don't use the pixbuf just 
	to get the value.

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

	ImageGlom: Another scaling fix.

	* glom/utility_widgets/imageglom.cc: get_scaled_image(): Don't return 
	an empty pixbuf just because the pixbuf doesn't not need to change.

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

	ImageGlom: Remove limits so we always scale, and use on_size_allocate().

	* glom/utility_widgets/imageglom.[h|cc]: Use on_size_allocate() instead of 
	on_draw(), which is slightly wiser.
	Remove the hard-coded checks for minumum and maximum sizes, because 
	we get an initial allocation of 1, and because the max was arbitrarily small.
	* glom/utils_ui.cc: Fix this for images that are both 
	too wide and too high.
	
	This works now, but we still need to make the window get smaller when 
	the GtkImage requests less space.


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

	ImageGlom: Remove hard-coded mentions of PNG file formats.

	* glom/utility_widgets/imageglom.cc: Open With: Use the actual (sniffed)
	mime type.
	Clipboard: Try to use the actual mime type, though this does not seem to 
	work for any mime type now.

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

	ImageGlom: Show the missing image icon again.

	* glom/utility_widgets/imageglom.cc: set_value(): Clear the data, not the 
	pixbuf.
	show_image_data(): Check for empty data and show the missing icon if so.

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

	ImageGlom: Make the context-menu work with the EvView.

	* glom/utility_widgets/imageglom.cc: Connect to the widget's own signal.

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

	ImageGlom: Loading/Saving: Add more FileChooser filters.

	* glom/utility_widgets/imageglom.cc: set_file_filter_images():
	Use ev_document_factory_add_filters().

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

	Image fields: Support PDF (and other types supported by evince)

	* configure.ac: Depend on evince-view-3.0, which is a library installed by 
	evince. It is packaged separately from evince by distros.
	* glom/main.cc: Call ev_init().
	* glom/utility_widgets/dialog_image_load_progress.[h|cc]: Remove 
	get_pixbuf() and do not use Gdk::PixbufLoader here.
	* glom/utility_widgets/imageglom.[h|cc]: Create the pixbuf here, from 
	the data from the dialog.
	Add an EvView, and use that instead of the Gtk::Image when the mime type is 
	supported by EvView. We use g_content_type_guess() to sniff the mime type 
	from the actual data, but this will probably not always work. We should 
	store the mime type (and the filename) too.
	
	The context menu doesn't work with the EvView yet.

1.19.7:

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

	ImageGlom: Saving is now mostly async.

	* glom/utility_widgets/dialog_image_save_progress.[h|cc]: Doing the actual 
	writing in callbacks, like in the loader.
	* glom/utility_widgets/imageglom.cc: Show the dialog, so we can use the 
	idle callbacks, and give user feedback.

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

	ImageGlom: Allow the user to choose any file.

	* glom/utility_widgets/imageglom.cc: However, we are still restricted to 
	what GdkPixbuf can load.

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

	ImageGlom: Do not transform to PNG output when saving.

	* glom/utility_widgets/dialog_image_save_progress.[h|cc]: Replace set_pixbuf() 
	with set_image_data().
	save(): Save the original data, instead of saving the data from the pixbuf.
	* glom/utility_widgets/imageglom.cc: Adapt.
	This means, for instance, that if the user loads the a JPG in then they will 
	get exactly the same JPG out.

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

	Some minor signed type corrections.

	* glom/libglom/connectionpool_backends/postgres.cc:
	* glom/xsl_utils.cc: Gio::FileOutputStream::write() returns a gssize, not a 
	gsize.

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

	ImageGlom: Size request corrections.

	* glom/utility_widgets/imageglom.cc: init(): Remove the set_size_request() 
	call which does not seem necessary.
	Do not call set_image(original) after scale(), because scale() does that, 
	setting the scaled image.
	This avoids the GtkImage being huge, because GtkImage re-requests the 
	bigger size again when the original is put in it.
	This is still not ideal. It would be nicer if we could just say "do not 
	make the window bigger than the screen, or do not make this make the 
	window bigger."

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

	ImageGlom: Use AppInfo instead of gtk_show_uri() for Open.

	* glom/utility_widgets/imageglom.cc: For the case that we have no AppInfo
	(not Open With), use the static AppInfo method, for consistency.
	This might work on Win32 too.

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

	Image fields: Add Open, Open With, and Save context menu items.

	* glom/utility_widgets/dialog_image_save_progress.[h|cc]:
	* ui/operator/dialog_image_save_progress.glade:
	Added a progress dialog to do image saving, though it does not yet do 
	async saving so the dialog is never shown.
	* Makefile.am:
	* Makefile_glom.am:
	* po/POTFILES.in: Mention the new files.
  * glom/utility_widgets/imageglom.[h|cc]: Add the new context menu items,
  using a temporary file for the Open and Open With features.
  Open With uses AppChooserDialog to offer a choice to the user.
  Bug #630057

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

	Rename Dialog_Image_Progress to DialogImageLoadProgress

	* glom/utility_widgets/dialog_image_progress.[h|cc]:
	Rename to 
	* glom/utility_widgets/dialog_image_load_progress.[h|cc]:
	* tests/test_glade_derived_instantiation.cc:
	* ui/operator/dialog_image_progress.glade: Rename to
	* ui/operator/dialog_image_load_progress.glade:
	* glom/utility_widgets/imageglom.h:
	* Makefile.am:
	* Makefile_glom.am:
	* po/POTFILES.in: Adapt.
	
	I can then add a new dialog for saving.

2011-07-11  Ben Konrath  <ben@bagu.org>

	Add PACKAGE_TARNAME variable to pkg-config file.

	This is needed for the @docdir@ expansion used in the exampledir
	variable.

	* glom/libglom/glom.pc.in:

2011-07-11  Ben Konrath  <ben@bagu.org>

	Add exampledir variable to pkg-config file.

	* glom/libglom/glom.pc.in:
	Bug #654384

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

	Add translator comments.

	* glom/libglom/data_structure/field.cc:
	* glom/libglom/data_structure/layout/*.c:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_manyrecords.cc:
	* glom/mode_data/notebook_data.cc:
	* ui/developer/dialog_script_library.glade: Add translator comments.
	Bug #638996 (Joe Hansen)

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

	Related Records: Show enough records.

	* glom/mode_data/db_adddel/db_adddel.[h|cc]: Added set_height_rows(), so 
	we can set the minimum size based on the number of rows, though this 
	currently hard-codes a size for the non-rows part of the GtkTreeView, such 
	as the column headers.
	* glom/mode_data/box_data_portal.cc:
	* glom/mode_data/box_data_list_related.cc: Constructors: Remove unnecessary 
	calls to set_size_request().
	Call set_height_rows() instead.

  The related records Gtk::TreeViews probably became too small since the port to 
  gtkmm3. We now need to use Gtk::ScrolledArea::set_min_content_height().
  
  However, the number of rows should probably be something for the layout to 
  specify per portal.
	
2011-07-08  Murray Cumming  <murrayc@murrayc.com>

	Minor int->guint change.

	* glom/mode_data/db_adddel/db_adddel.[h|cc]: get_fixed_cell_height(): 
	Return a guint instead of an int.

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

	Details: Do not navigate past the last row.

	* glom/mode_data/datawidget/treemodel_db.[h|cc]: get_last_row(): 
	Document that this never returns the placeholder row, and make sure that it 
	does not. There was a typo that --ed the wrong variable.
	* glom/mode_data/db_adddel/db_adddel.[h|cc]: get_last_row(): 
	Document that this never returns the placeholder row.
	get_is_placeholder_row(): Remove an illogical call to is_last_row().
	get_count(): Remove an illogical check to see whether the last row is the 
	placeholder row.
	* glom/utility_widgets/adddel/adddel.h: get_last_row(): Document that this 
  similarly-APIed widget has different behaviour.
  
  This stops the user from being taken to an empty record when clicking Last, 
  or when clicking Next to the end.
  Bug #526115 comment #25 (Michael Hasselmann)

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

	DbAddDel: Remove unnecessary virtual keywords. 

	* glom/mode_data/db_adddel/db_adddel.h: These methods are not meant to 
	be overridden by anything.

1.19.6:

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

	About Box: Add a logo.

	* glom/application.cc: Use set_logo() though this only appears in the title 
	bar for some reason.

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

	Really fix the About Box.

	* glom/application.cc: Add the Help menu itself, and use set_program_name() 
	instead of set_name().

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

	Improve the About box.

	* glom/application.[h|cc]:
	* glom/bakery/app.[h|cc]:
	* glom/bakery/app_withdoc_gtk.[h|cc]: Move the help menu out of the 
	Bakery class, doing it all in our derived Application class, to give us 
	more control over the GtkAboutDialog. We do not need the abstraction any 
	more.
	This restores the application description, which was probably lost when 
	converting to AboutDialog.
	
2011-07-06  Murray Cumming  <murrayc@murrayc.com>

	Split up the developer .glade files into separate files.

	* ui/developer/:
	* glom/glade_utils.h: get_glade_widget_derived_with_warning(): Guess the 
	filename based on the requested ID, for developer UI as we already did 
	for operator UI.
  This makes it possible to edit these in recent versions of Glade, without 
  Glade silently renaming IDs to make them unique across the whole file.
  * po/POTFILES.in:
  * Makefile.am: Mention the new files.

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

	Enable silent build rules by default.

	* configure.ac: This is still only used if the automake version is recent 
	enough.

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

	ListView: Make the rows high enough.

	* glom/mode_data/db_adddel/db_adddel.cc: get_fixed_cell_height():
	Add the GtkTreeView vertical-separator style property to the height, 
	which might be the right thing to do, and which works here at least.

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

	Find: Make searching case-insensitive again.

	* glom/libglom/connectionpool_backends/postgres.cc:
	get_string_find_operator(): Use ILIKE, though this requires the lastest 
	libgdamm from git master.
	Find has been case-sensitive since around glom 1.16, since we started 
	using SqlBuilder.

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

	Backends: Slight reorganization.

	* glom/libglom/connectionpool_backends/backend.h:
	* glom/libglom/connectionpool_backends/postgres.[h|cc]:
	* glom/libglom/connectionpool_backends/sqlite.[h|cc]: Move method 
  implementations into the .cc files.

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

	Field::sql_find(): Do not quote the string.

	* glom/libglom/data_structure/field.cc: SqlBuilder already takes 
	care of quoting so this just changed the actual value.
	This makes Quick Find work again.

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

	Find: Use backend-specific LIKE or ILIKE operator instead of =.

	* glom/libglom/connectionpool.[h|cc]:
	* glom/libglom/connectionpool_backends/backend.h:
	* glom/libglom/connectionpool_backends/postgres.h:
	* glom/libglom/connectionpool_backends/sqlite.h:
	get_string_find_operator(): Return the Gnome::Gda operator enum 
	instead of the operator as a string.
	* glom/libglom/data_structure/field.[h|cc]: sql_find_operator():
	Likewise, return the Gnome::Gda operator enum.
	* glom/libglom/utils.cc: get_find_where_clause_quick():
	* glom/mode_data/box_data.cc: get_find_where_clause():
	Use Field::sql_find_operator() and Field::sql_find(), as per 
	the TODO comments.

	This was code that I forgot to change properly when porting to 
	use Gnome::Gda::SqlBuilder, so this has been broken since 
	Glom 1.16.
	Find still does not work.

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

	Frame: Rename a signal handler.

	* glom/frame_glom.[h|cc]: Rename on_menu_Mode_Toggle() to 
	on_menu_Edit_Find() because that is what it is now.
	* glom/application.cc: Adapted.

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

	Main window: Moved the Records/Found widgets to the top-right.
	
	* ui/operator/window_main.glade: Remove the footer row of widgets.
	* glom/frame_glom.[h|cc]: Instead build them manually and add them (in a box) 
	to the notebook at the right-hand side next to the tabs.

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

	Split the operator .glade files up into one file per top-level ID.

	* ui/operator/: Split the .glade files up, giving them the same names 
	as the top-level (or almost top-level) IDs that the code looks for.
	* glom/glade_utils.h: get_glade_widget_derived_with_warning(): Guess the 
	filename based on the requested ID.

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

	Move .glade files into subdirectories under ui/

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

	Move .glade files into a ui/ directory.

	* glom/glom.glade:
	* glom/glom_developer.glade: Moved to 
	* ui/
	This will be useful when they are split up more.

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

	Main window: Show the table title in find mode too.

	* glom/frame_glom.[h|cc]: Use an extra label for the 
	find mode.

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

	Do not hide table-specific menu items in Operator mode.

	* glom/application.cc: update_table_sensitive_ui().

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

	Main Window: Combine the top two rows of widgets.

	* glom/utility_widgets/notebook_noframe.[h|cc]: Add 
	set_action_widget(), as in the GtkNotebook API.
	* glom/glom.glade:
	* glom/frame_glom.[h|cc]: Remove the top HBox, instead 
	putting the table name label in the notebook widget, 
	at the left of the tabs.

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

	Remove the User Level menu and the User Level label.

	* glom/glom.glade: Main window: Remove the User Level label.
	* glom/application.[h|cc]:
	* glom/frame_glom.[h|cc]: Remove the User Level menu, moving 
	its two radio menu items to the top of the Developer menu.
	init_menus(), update_table_sensitive_ui(): Make sure that all
	developer items are deactivated in operator mode, now that 
	we don't just deactivate the whole developer menu.

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

	Main window: Simplify widgets at top.

	* glom/glom.glade:
	* glom/frame_glom.[h|cc]: Remove the Table: label. Make the 
	table name normal sized, but still bold. Remove the mode 
	labels, because there are only two modes now, and it should 
	be obvious when you are in the middle of entering find criteria.

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

	glom.glade: Resave with glade.

	* glom/glom.glade: Resave with glade 3.10, which changes 
	object IDs to be unique across the whole file.
	Chose human-readable IDs instead of number suffixes.
	* glom/navigation/box_tables.cc:
	* glom/frame_glom.cc: Adapted the code.
	This is rather tedious and just makes code less readable.

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

	glom.glade: Reorder top-levels alphabetically.

	* glom/glom.glade: Glade now does this when saving,
	so this will make it easier to see what else Glade 
	has changed.

1.19.5:

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

	Require the latest libgdamm, for the GdaNull changes.

	* configure.ac: Require libgdamm 4.99.3

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

  Fix the tests after the libgdamm Null Value change.
  
	* tests/python/test_python_execute_script.cc:
  Do not try to instantiate a static Value instance because the constructor 
  now needs the GType system to be initialized.

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

	Details: Make Primary Key ID values visible again.

	* glom/mode_data/datawidget/entry.cc: Use unset_color() instead of 
	override_color(RGBA());

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

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

	* glom/mode_data/box_data_details.[h|cc]:
	* glom/mode_data/db_adddel/db_adddel_withbuttons.[h|cc]:
	* glom/mode_design/layout/layout_item_dialogs/dialog_formatting.cc:
	* glom/utility_widgets/adddel/adddel_withbuttons.[h|cc]:
	Fix the build with --enable-warnings=fatal with gtkmm 3.1, by
	replacing Gtk::HButtonBox with ButtonBox and replacing get_vbox() with
	get_content_area().

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

	Fix compiler warnings.

	* glom/mode_data/db_adddel/db_adddel.cc:
	* glom/mode_design/layout/dialog_layout_details.cc:
	* glom/report_builder.cc:
	* glom/utility_widgets/eggspreadtable/eggspreadtablednd.c
	(get_index_at_position):
	* tests/test_parsing_time.cc: Remove unused variables noticed by g++ 4.6.

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

	Require latest libepc.

	Because it uses avahi-ui-gtk3, which uses GTK+3.
	Otherwise we would be indirectl using both GTK+ 2 and GTK+ 3.

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

	Egg::SpreadTable: Add a test.

	* Makefile_tests.am:
	* glom/utility_widgets/eggspreadtablemm/test_preadtablemm.[h|cc]:
	Add a test based on the C test. It seems to work fine.

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

	Egg::SpreadTable: Derive from (and implement) Orientable.

	* glom/utility_widgets/eggspreadtablemm/eggspreadtablemm.[h|cc]:
	Use Orientable.

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

	Fix the make check build.

	* Makefile_glom.am: Create a variable for the eggspreadtable file list.
	* Makefile_tests.am: Use that variable here, so we link against the new
	files.

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

	EggSpreadTableDnd: Wrap the wiget_drop_possible signal.

	* glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.[h|cc]:
	* glom/utility_widgets/eggspreadtablemm/private/eggspreadtabledndmm
	_p.h: This is unpleasant without gmmproc.

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

	Egg::SpreadTableDnd: Fix typos.

    * glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.cc:
    Use the correct GTypes.

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

	Use EggSpreadTableDnd.

	* glom/utility_widgets/eggspreadtable/eggmarshalers.[h|c}
	* glom/utility_widgets/eggspreadtable/eggplaceholder.[h|c]
	* glom/utility_widgets/eggspreadtable/eggspreadtablednd.[h|c]:
  Added these files, copied from libegg.
	* glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.[h|cc]:
	* glom/utility_widgets/eggspreadtablemm/private/eggspreadtabledndmm
	_p.h:
	Created a hand-written C++ wrapper for EggSpreadTableDnd.
	* glom/Makefile_glom.am: Mention the new files.
	* glom/utility_widgets/flowtable.h: Use SpreadTableDnd instead of
	SpreadTable, though we do not use the drag-and-drop functionality yet.

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

	Correct the sizing of the ... date button.

	* glom/mode_data/datawidget/datawidget.cc: There is a button next to
	all date fields, for selecting the date. Make sure that it does not expand.
	Of course, a real date selection widget would be nicer.

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

	Update the EggSpreadTable code.

	* glom/utility_widgets/eggspreadtable/eggspreadtable.[h|cc]: Update this
	code from libegg/libegg/spreadtable/

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

	Fix distcheck.

	* Makefile.am: Distribute the .db file for the sqlite example.
	This fixes the discheck, because we use it in a test.
	* glom/libglom/connectionpool_backends/sqlite.cc: connect(): Give clues
	on stderr if the file is missing.
	* glom/libglom/utils.[h|cc]: Add a file_exists(Gio::File) override for use
	by those checks.

1.19.4:

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

	Fix a test.

	* tests/python/test_python_execute_func_bad_syntax.cc:
	Allow the result to be a null Gda::Value, because that is acceptable for a
	python script with invalid syntax.

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

	Port the debian repository analyzer script example to GTK+ 3.

	* examples/example_scripts/repository_analyzer_begin_scan.py:
	Use PyGObject+Introspection instead of pygtk, and adapt for a minidom API
	change.
	This is also here:
	https://gitorious.org/debian_repository_analyzer

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

	Fix use of bool python return types.

	* glom/libglom/python_embed/pygdavalue_conversions.cc:
	glom_pygda_value_from_pyobject(): Use the C Py*_Check() functions because
	boost::python::extract<>::check() does not really check for the exact type
	and has no way to do that. Previously we were interpreting bools as ints.
	Note also that the order fo the Py*_Check() checks is important, because
	python considers bool to be derived from int.
	* tests/python/test_python_execute_func_with_record.cc: Uncomment the checks
	for the return type and value now that it works.

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

	Initialize pygobject, to fix the use of the PyRecord API.

	* configure.ac: Require the latest pygobject with gi.repository support.
	* glom/libglom/init.cc: Include pygobject.h so we can call pygobject_init()
	here.
	* glom/libglom/python_embed/py_glom_record.cc: Define NO_IMPORT_PYGOBJECT
	so we can still include pygobject.h again here. pygobject.h uses a nasty
	variable declared in the header.
	* tests/python/test_python_execute_func_with_record.cc: Fix the python
	example code.
	However, this shows a problem with getting bool results from python,
	apparently because boost::python::extract<>::check() checks that the type
	is compatible rather than checking that it's the exact type.

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

	Added a python function test that uses an actual database connection.

  * Makefile_tests.am: Mention the new test.
	* tests/python/test_python_execute_func_with_record.cc: This shows
	a crash in Glom::PyGlomRecord::get_connection().

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

	Moved the python tests to a sub-directory.

	* tests/test_load_python_library.cc:
	* tests/test_python_execute_func.cc:
	* tests/test_python_execute_func_bad_syntax.cc:
	* tests/test_python_execute_func_change_result_type.cc:
	* tests/test_python_execute_func_date.cc:
	* tests/test_python_execute_script.cc:
	* tests/test_python_module.cc: Moved to tests/python/
	* Makefile_tests.am: Adapted.

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

	Remove more small traces of pygda.

	* glom/libglom/python_embed/py_glom_record.cc:
	* glom/python_embed/glom_python.cc:
	* glom/python_embed/python_module/py_glom_module.cc: Some last minor renames
	from pygda to gi.repository.Gda.

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

	Python: Use gi.repository.Gda instead of Gda.

	* configure.ac: Do not require pygda at build time, though we check for it
	at program startup. There is probably no similar way to check at configure
	time, and it's debatable that it's appropriate anyway. The pygda check
	was probably here before in order to use a pygda .h file that we no longer
	use.
	* glom/main.cc: Add and call check_gir_is_available_with_warning() to check
	that gi.repository (gobject intropsection) in general is available.
	* glom/python_embed/glom_python.[h|cc]:
	* tests/test_python_module.[h|cc]: Add gir_python_module_is_available() for
	use by main.cc.
	gda_python_module_is_available(), glom_python_call(): Use the new python
	module instead of the old Gda module.

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

	Write Python tracebacks to stderr.

	* glom/application.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_design/dialog_database_preferences.cc:
	* tests/test_python_execute_script.cc: Output python errors to stderr as a
	clue when things go wrong.

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

	Fix an error found by the gtkmm change to use operator const void*.

	* glom/utility_widgets/adddel/adddel.cc: There is no
	TreeNodeChildren::operator[](TreeIter). The compiler was casting the TreeIter
	to bool and then to (int)0.

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

	Require the latest mm-common and dist the mm-common scripts.

	* configure.ac: Add a MM_CONFIG_DOCTOOL_DIR() call so that the scripts will
	be distributed with the tarball, avoiding a runtime dependency on mm-common.

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

	Adapt to the recent gtksourceviewmm API change.

	* configure.ac: Require the latest gtksourceviewmm.
	* glom/mode_design/dialog_database_preferences.[h|cc]:
	* glom/mode_design/fields/dialog_fieldcalculation.[h|cc]:
	* glom/mode_design/fields/dialog_fielddefinition.h:
	* glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.[h|cc]:
	:
	* glom/mode_design/script_library/dialog_script_library.[h|cc]: Use
	Gsv::* instead of Gsv::Source*.

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

	Update the document DTD.

	* glom/glom_document.dtd: Mention some the new attribute and element
	for the choices, to fix the DTD test during make check.

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

	A simpler way to avoid the PyDateTime_Check() crash.

	* glom/libglom/init.cc: libglom_init(): Remove the g_assert because this
	can fail: See bug #644702.
	* glom/libglom/python_embed/pygdavalue_conversions.cc:
	glom_pygda_value_as_boost_pyobject(): Check that the local re-import
	(hopefully cached by Python) succeeded, to avoid a crash in PyDateTime_Check().

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

	Reverted the previous commit to prevent a crash if PyDateTime_IMPORT fails.

	* glom/libglom/init.[h|cc]: Added libglom_pydatetime_import() and
	libglom_pydatetime_imported(). Remove the g_assert() when it fails.
	* glom/libglom/python_embed/pygdavalue_conversions.cc: Use the new
	utility function instead of repeating our reimplementation here.

	There will now just be an error message on stderr. We must fix this properly
	but in the meantime it is better than requiring the use of a separate glom
	branch just for OnlineGlom.
	See https://bugzilla.gnome.org/show_bug.cgi?id=644702

	This commit was reverted because we really must repeat the implementation
	everywhere, because the PyDateTime variable is declared in Python's datetime.h
	header, and the macros then try to use that local instance. The copy in
	init.cc is not available to callers.
	And we cannot include datetime.h from init.h because it is full of other
	problems that cause compiler warnings.

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

	Depend on libgdamm-5.0 instead of libgdamm-4.0.

	* configure.ac: This change avoids an indirect dependency on GTK+ 2,
	needed by the libgda 4 tarball build.

2011-03-18  Murray Cumming  <murrayc@murrayc.com>

	libglom: Added utils::build_sql_select_count_rows().

	* glom/base_db.[h|cc]: Make count_rows_returned_by() take a const SqlBuilder.
	* glom/libglom/utils.[h|cc]: Move some of count_rows_returned_by() into a
	build_sql_select_count_rows() method, for the convenience of UIs such as
	OnlineGlom.
	Bug #645110 (Ben Konrath)

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

	Do not crash if PyDateTime_IMPORT fails.

	* glom/libglom/init.[h|cc]: Added libglom_pydatetime_import() and
	libglom_pydatetime_imported(). Remove the g_assert() when it fails.
	* glom/libglom/python_embed/pygdavalue_conversions.cc: Use the new
	utility function instead of repeating our reimplementation here.

	There will now just be an error message on stderr. We must fix this properly
	but in the meantime it is better than requiring the use of a separate glom
	branch just for OnlineGlom.
	See https://bugzilla.gnome.org/show_bug.cgi?id=644702

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

	Project Manager example: Resave.

	* examples/example_project_manager.glom: Edit the Teams list layout, so
	that it actually has a layout in the file, and so that the fields order
	makes more sense.
	See http://gitorious.org/online-glom/gwt-glom/commit/1c860b7ad64f55809ecf7e6b340272800d586d35

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

	Fix the build.

	* glom/libglom/init.cc: Add an include so we can use std::cerr.

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

	libglom_init(): Show the python exception when PyDateTime_IMPORT fails.

	* glom/libglom/init.cc: The linker seems to behave differently when this
	code is run from inside a JVM in OnlineGlom. This gives us a clue.

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

	Fix crashes when using choices with fixed lists.

	* glom/mode_data/datawidget/combochoiceswithtreemodel.[h|cc]:
	create_model_non_db(): Instead of creating just a text-based treemodel,
	create a Value-based one with an extra text column at the end. That is what
	the related-records model has, though it uses a custom TreeModel.
	The text column is needed for GtkComboBox when it has has-entry=true:
	(See https://bugzilla.gnome.org/show_bug.cgi?id=631167 )
	Add get_fixed_model_text_column() so that other code knows which column that
	is.
	* glom/mode_data/datawidget/cellrenderer_dblist.cc: set_choices_fixed(),
	repack_cells_fixed():
	* glom/mode_data/datawidget/combo.cc:	set_choices_fixed():
	Adapt to use the special column instead of assuming that column 0 is a text
	column.
	Previously Glom::Combo::set_value() crashed because we tried to get a
	Value<Gnome::Gda::Value> where there was a Value<ustring>.

2011-03-08  Murray Cumming  <murrayc@murrayc.com>

	Remove some unnecessary padding/borders around the main window.

	* glom/box_withbuttons.cc: Remove the border, because it is not useful.
	It would be for the parent widget to decide that.
	* glom/mode_data/flowtablewithfields.[h|cc]: add_group(): Add a with_indent
	optional parameter.
	* glom/mode_data/box_data_details.cc: create_layout(): Have no indent on
	top-level groups.

2011-03-08  Murray Cumming  <murrayc@murrayc.com>

	Use a custom Notebook-like widget instead of Gtk::Notebook.

	* glom/utility_widgets/notebook_noframe.[h|cc]: A new class with an API that
	is as much like the Gtk::Notebook API as we need it to be.
	Unlike GtkNotebook, this has no frame around the "page" at the bottom.
	That was wasting space because the extra division was unnecessary when it
	fills almost the whole window anyway.
	* Makefile_glom.am: Mention the new files.
	* glom/mode_data/notebook_data.cc: Derive from the new class instead of
	Gtk::Notebook.

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

	Fix the CSV import test.

	* tests/import/test_parsing.cc: Correct the number of expected tokens.
	This was previously just the number that was (incorrectly) parsed before.

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

	CSV Import: Fix quoted-newline detection, so we don't drop rows.

	* glom/import_csv/csv_parser.[h|cc]: on_idle_parse(): Make in_quotes a
	member variable, initialized in clear(), so we remember it across calls to
	on_idle_parse(), instead of thinking that we are in quotes just because we
	are parsing arbitrary chunks of bytes that look that way individually.

	This fixes bug #637529 (Darmon Xavier), so all rows should be imported
	instead of dropping some in the middle.

2011-02-26  Murray Cumming  <murrayc@murrayc-x61>

	Dialog_Import_CSV_Progress: Try to really show progress.

	* glom/import_csv/dialog_import_csv_progress.cc: Try to call
	Main::events_pending() and iterate() to really show the text in the progress
	bar, though it does not seem to work.

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

	Correct a (translatable) string.

	* glom/glom.glade: Correct an English string. A comma is not a full stop.

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

	Avoid GTK+ warning when clicking on the list button.

	* glom/mode_data/db_adddel/db_adddel.[h|cc]: on_cell_button_clicked():
	Delay the response to the click, to an idle handler, to avoid confusing
	GtkTreeView, which was showing a warning with GTK+ 3 about a NULL GtkAdjustment.

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

	Use the new Gtk::ComboBox CellArea API to align columns properly.

	* glom/mode_data/datawidget/combo.cc: Get the CellAreaBox and use its
	more-useful pack() method instead of the standard one, so that the columns
	really align.

1.19.3:

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

	Require the correct gtksourceviewmm version.

	* configure.ac: Use the gtksourceviewmm version with the API changes to use
	vector.

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

	Adapt to libgdamm API changes.

	* glom/libglom/connectionpool.cc:
	* glom/libglom/db_utils.cc: libgdamm now uses std::vector instead of
	*Handle, like gtkmm.

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

	Adapt to the gtkmm 3 change to using vectors.

	* glom/mode_data/datawidget/cellrenderer_dblist.cc:
	* glom/mode_data/db_adddel/db_adddel.cc:
	* glom/mode_design/layout/dialog_choose_field.cc:
	* glom/mode_design/print_layouts/print_layout_toolbar_button.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/layouttoolbarbutton.cc: Use std::vector instead of
	std::list.
	* glom/dialog_existing_or_new.cc: This one even used the intermediate type
	directly, showing how necessary this API change was.

2011-01-18  Murray Cumming  <murrayc@murrayc.com>

	Disable more deprecated API.

	* configure.ac: Add PANGO, PANGOMM, and CAIRO to the list.

2011-01-15  Murray Cumming  <murrayc@murrayc.com>

	Require the appropriate gtksourceviewmm version.

	* configure.ac: Use the latest gtksourceviewmm release. Older versions would
	not build with the newer versions of gtkmm 3, so this is a hint.

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

	Require the appropriate goocanvasmm version.

	* configure.ac: Use the latest goocanvasmm release. The code has already
	been ported.

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

	get_current_locale(): Handle more complex setlocale(NULL) results.

	* glom/libglom/utils.cc: locale_simplify(): On Ubuntu Natty,
	setlocale() has started returning a more complex string. Parse it, or the
	older simpler syntax.

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

	tests: Link to all necessary libraries.

	* Makefile_libglom.am: Define libglom_all_libs to avoid duplication.
	* Makefile_glom.am: Use libglom_all_libs instead of repeating.
	* Makefile_tests.am: Use libglom_all_libs to explicitly link against the
	dependencies of libglom. This seems to have been automatic with the linker in
	previous versions of Ubuntu, but not with Ubuntu Natty.

2011-01-05  Murray Cumming  <murrayc@murrayc.com>

	Use Gdk::Cursor via RefPtr.

	* glom/bakery/busy_cursor.[h|cc]:
	* glom/utility_widgets/canvas/canvas_item_movable.[h|cc]:
	gtkmm 3 now requires Gdk::Cursor to be used via RefPtr.

2011-01-05  Murray Cumming  <murrayc@murrayc.com>

	Replace a used of (removed from GTK+) gdk_spawn_*() API.

	* glom/application.cc: This partially fixes the build.

2010-12-16  Murray Cumming  <murrayc@murrayc.com>

	More dealing with cppcheck errors.

	* glom/libglom/data_structure/layout/layoutitem.cc: operator=(): Check for
	src=this.
	* glom/base_db.cc:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/libglom/connectionpool_backends/postgres_central.cc:
	* glom/libglom/data_structure/foundset.cc:
	* glom/libglom/data_structure/foundset.h:
	* glom/libglom/document/bakery/document_xml.cc:
	* glom/libglom/document/bakery/document_xml.h:
	* glom/libglom/document/document.cc:
	* glom/utility_widgets/adddel/adddel.cc:
	* tests/import/test_parsing.cc:
	* tests/import/test_signals.cc: Removed unused methods and unused variables.

2010-12-16  Murray Cumming  <murrayc@murrayc.com>

	Remove unused methods.

	* glom/libglom/data_structure/glomconversions.cc:
	* glom/libglom/document/bakery/document.cc:
	* glom/libglom/document/bakery/document.h:
	* glom/libglom/document/bakery/document_xml.cc:
	* glom/libglom/document/bakery/document_xml.h:
	* glom/libglom/document/document.cc:
	* glom/libglom/document/document.h:
	* glom/utility_widgets/canvas/test_canvas_editable.cc:
	Remove unused methods, found by cppcheck. Some other methods that cppcheck
	mentions seem to be virtual methods that are used.

2010-12-16  Murray Cumming  <murrayc@murrayc.com>

	Remove unnecessary checks before use of delete.

	* glom/application.cc:
	* glom/bakery/app_withdoc.cc:
	* glom/bakery/app_withdoc_gtk.cc:
	* glom/frame_glom.cc:
	* glom/libglom/connectionpool.cc:
	* glom/libglom/data_structure/layout/layoutitem.cc:
	* glom/libglom/sharedptr.h:
	* glom/libglom/test_avahi_publisher.cc:
	* glom/mode_data/box_data_portal.cc:
	* glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
	* glom/mode_data/flowtablewithfields.cc:
	* glom/mode_data/notebook_data.cc: C++ doesn't mind if we call delete on a
	null pointer. Found by cppcheck.

2010-12-15  Ben Konrath  <ben@bagu.org>

	Add Eclipse 3.6 / CDT 7.0 configuration files.

	* .cproject: New file generated by Eclipse.
	* .project: New file generated by Eclipse.

2010-12-16  Murray Cumming  <murrayc@murrayc.com>

	Fix make check when using --enable-glom-ui=no.

	* Makefile_tests.am: Correct the LDADD flags for the selfhosting tests, so
	that make check still works when using --enable-glom-ui=no.

2010-12-14  Murray Cumming  <murrayc@murrayc.com>

	Build: Reduce some duplication.

	* Makefile.am:
	* Makefile_glom.am:
	* Makefile_libglom.am:
	* Makefile_tests.am: Use AM_CPPFLAGS and AM_CFLAGS just to hold the
	(optional) warning flags, as we did previously.

2010-12-14  Murray Cumming  <murrayc@murrayc.com>

	Build: Avoid use of non-UI cflags/libs where not necessary.

	* Makefile.am: Do not use AM_CPPFLAGS, AM_CFLAGS or AM_CXXFLAGS.
	* Makefile_glom.am:
	* Makefile_libglom.am:
	* Makefile_tests.am: Instead use individual variables for each target,
	making sure that we use only the necessary flags.
	libglom may have been linking to some unnecessary UI libraries before.
	* glom/import_csv/csv_parser.h: Avoid unnecessary UI includes.
	* tests/import/test_parsing.cc:
	* tests/import/test_signals.cc: Avoid including gtkmm.h.

	As a side-effect, the build is now longer, because some files are now
	compiled again separately for the tests, presumably because they now need
	to be built with different compiler flags. But that is a better test.

2010-12-13  Murray Cumming  <murrayc@murrayc.com>

	Correct my previous commit.

	* configure.ac: Correct the no/yes test for --enable-glom-ui and add a comma
	so it actually works.
	* Makefile_tests.am: Restore the source file lists for the python tests.

2010-12-13  Murray Cumming  <murrayc@murrayc.com>

	Allow libglom to be built without building the Glom UI code too.

	* configure.ac: Added an --enable-glom-ui option, defaulting to yes.
	When using --enable-glom-ui=no then only libglom will be built. This is
	useful for deployment of libglom to servers where the UI dependencies are not
	wanted.
	We still use GLOM_LIBS and GLOM_FLAGS even in libglom, instead of using
	LIBGLOM_LIBS and LIBGLOM_CFLAGS anywhere, but this does reduce duplication
	of the flags in glom's UI build.
	* Makefile.am: Do not include Makefile_glom.am if the UI should not be built.
	* Makefile_glom.am: Move the bin_programs definition to here.
	* Makefile_libglom.am: Move the LTLIBRARIES definitions to here.
	* Makefile_tests.am: Attempt, unsuccessfully, to build and run UI-dependent
	tests only when the UI was built, when running make check.

2010-12-13  Murray Cumming  <murrayc@murrayc.com>

  Fix the build with latest gtkmm.

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	Use Widget::render_icon_pixbuf() instead of the old render_icon() method.

2010-12-08  Murray Cumming  <murrayc@murrayc.com>

	Partial port to recent gtkmm API changes from git master.

	* glom/mode_data/datawidget/datawidget.cc: signal_style_changed was removed
	though it might come back later.
	* glom/mode_data/datawidget/entry.cc: Use override_color() instead of
	modify_text().
	* glom/mode_data/placeholder-glom.cc: Use set_source_rgba() instead of
	set_source_color(). Use get_style_context() instead of get_style().

2010-12-03  Murray Cumming  <murrayc@murrayc.com>

	Fix the build with latest gtksourceviewmm from git master.

	* glom/main.cc:
	* glom/mode_design/dialog_database_preferences.cc:
	* glom/mode_design/dialog_database_preferences.h:
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.h:
	* glom/mode_design/fields/dialog_fielddefinition.h:
	* glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.c
	c:
	* glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.h
	:
	* glom/mode_design/script_library/dialog_script_library.cc:
	* glom/mode_design/script_library/dialog_script_library.h:
	* tests/glade_toplevels_instantiation.cc:
	* tests/test_glade_derived_instantiation.cc: Change the gtksourceview
	namespace to Gsv.

2010-12-03  Murray Cumming  <murrayc@murrayc.com>

	Fix the build with latest gtkmm from git master.

	* glom/mode_design/dialog_add_related_table.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/script_library/dialog_script_library.cc:
	* glom/mode_design/users/dialog_choose_user.cc:
	* glom/mode_design/users/dialog_users_list.cc: Adapt to the ComoboBoxText
	append_text() -> append() change.

2010-11-29  Murray Cumming  <murrayc@murrayc.com>

	Replaced GtkRuler with GimpRuler because GtkRuler was removed from GTK 3.

	* glom/utility_widgets/gimpruler/: Added several source files from
	gimp, with small changes to make it build for us, to provide the GimpRuler
	widget.
	* COPYING: Switch to GPL version 3 (instead of 2), because the GIMP source
	code uses it.
	* Makefile_glom.am:
	* glom/glom_developer.glade:
	* glom/mode_design/print_layouts/window_print_layout_edit.[cc|cc]: Use
	GimpRuler instead of GtkRuler, creating and adding them in code instead of
	in the .glade file, to avoid Glade needing to know about that widget.

1.19.2:

2010-11-23  Murray Cumming  <murrayc@murrayc.com>

	Fix the tests build during distcheck

	* Makefile_glom.am: Correct eggspreadtablemm.c to eggspreadtablemm.cc.
	* Makefile.am:
	* Makefile_tests.am: Distribute the albums.csv test file and put the
	path to its directory in a define.
	* tests/import/test_parsing.cc: Use the define here, instead of using
	get_current_directory, which is not enough when builddir!=srcdir.

2010-11-17  Javier Jardón  <jjardon@gnome.org>

	Use upstream gettext instead Glib one

	* configure.ac: Do not use AM_GLIB_GNU_GETTEXT() because it is no longer
	maintained/recommended.
	This fixes bug #631367

2010-11-17  Murray Cumming  <murrayc@murrayc.com>

	Import tests: Uncomment some tests and make them test what we really want.

	* tests/import/test_parsing.cc: Check that we do _not_ require ending newlines
	and check that we do _not_ require quotes around items.

2010-11-15  Murray Cumming  <murrayc@murrayc.com>

	Import tests: Disable more tests that do not seem useful.

	* tests/import/test_parsing.cc: Comment out the non-comma separators test and
	the ignoring-space-between-quoted-text test, because they don't seem to
	correspond to any specification.

2010-11-15  Murray Cumming  <murrayc@murrayc.com>

	Import tests: Disable tests that check for incorrect or useless behaviour.

	* tests/import/test_parsing.cc: Comment out the test to ensure that we
	- Ignore rows with no ending newline.
	- Ignore field values that are not quoted.
	because we should not do that.
	Also add comments explaining the regular expressions.

2010-11-14  Murray Cumming  <murrayc@murrayc.com>

	Re-enable the import tests and partially deal with their race condition.

	* Makefile_tests.am: Re-enable the import tests.
	* glom/import_csv/csv_parser.[h|cc]: Add ensure_idle_handler_connection(),
	moving the idle signal handler connection there. Also call it from the
	beginning and end of on_file_read(), in case it has been disconnected
	too early.
	Use a priority less than PRIORITY_DEFAULT_IDLE, so that IO is likely to
	happen more often than the idle callback.

2010-11-12  Murray Cumming  <murrayc@murrayc.com>

	Import tests: Slight code-style change.

	* tests/import/utils.[h|cc]: Remove the MainLoop typedef because it just
	obscures things.

2010-11-12  Murray Cumming  <murrayc@murrayc.com>

	CSV Import: Actually preview and import the field values.

	* glom/import_csv/csv_parser.cc: advance_field(): Remove an excess continue,
	so that we actually add the character to the field's text. This error
	was probably introduced while removing the non-exceptions ifdefs.
	This fixed bug #625693 (maximiliano).

	We really must fix those import unit tests so that something like this does
	not happen again.

2010-11-11  Murray Cumming  <murrayc@murrayc.com>

	List view: Make the retry option actually work afer entering invalid data.

	* glom/mode_data/db_adddel/db_adddel.[h|cc]: on_treeview_cell_edited():
	If the user chooses to retry the edit, remember what he entered, and restart
	the editing (in an idle handler, to avoid confusing the treeview), with
	that text.
	This fixes bug #167818

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

	Update EggSpreadTable from libegg.

	* glom/utility_widgets/eggspreadtable/eggspreadtable.c: Copy from
	libegg/libegg/spreadtable/ again, to use Tristan's corrections for the
	forall() vfunc.

2010-11-08  Murray Cumming  <murrayc@murrayc.com>

	Call xmlCleanupParser() because libxml++ does not anywmore.

	* glom/main.cc: main(): Call xmlCleanupParser() to clean up libxml to help
	valgrind.

2010-11-08  Murray Cumming  <murrayc@murrayc.com>>

	FlowTableWithFields: Fix some widget expansion behaviour.

	* glom/mode_data/datawidget/label.cc: Call Gtk::Label::set_line_wrap() to
	prevent the label from sometimes making the window insanely wide by demainding
	too much width for itself.
	* glom/mode_data/flowtablewithfields.cc: add_field_at_position(): Tell
	the field's widget to expand, so it uses more space if the user expands the
	window, instead of just expanding the gap between columns.
	Note that the old non-EggSpreadTable code only expanded the right-most column,
	so exanding both is a real improvement.

2010-11-08  Murray Cumming  <murrayc@murrayc.com>

	EggSpreadTable: forall(): Avoid use of invalid GList items.

	* glom/utility_widgets/eggspreadtable/eggspreadtable.c
	(egg_spread_table_forall):
	Use (and later free) a copy of the list, because the callback could call
	egg_spread_table_remove() which would change the list, causing us to use a
	list->next that is no longer valid. This fixes a problem found by valgrind.
	I don't know why other Gtk containers don't need to do this, though their
	code seems to do the same thing.

2010-11-08  Murray Cumming  <murrayc@murrayc.com>

	Added test_flowtablewithfields.

	* Makefile_tests.am:
	* glom/mode_data/test_flowtablewithfields.cc: Added the beginnings of a test
	of FlowTableWithFields.

2010-11-05  Murray Cumming  <murrayc@murrayc.com>

	Use EggSpreadTable instead of GtkSpreadTable (not added to GTK+).

	* glom/utility_widgets/eggspreadtable/eggspreadtable.[h|cc]:
	* glom/utility_widgets/eggspreadtable/testspreadtable.c
	* glom/utility_widgets/eggspreadtablemm/eggspreadtablemm.[h|cc]:
	* glom/utility_widgets/eggspreadtablemm/private/eggspreadtablemm_p.
	h: New files.
	* glom/Makefile_glom.am
	* glom/Makefile_tests.am: Mention the new files.
	* glom/utility_widgets/flowtable.[h|cc]: Use Egg::SpreadTable instead of
	Gtk::SpreadTable.

2010-11-04  Murray Cumming  <murrayc@murrayc.com>

	Remove the gconfmm dependency, because we don't use it.

	* configure.ac: Do not check for gconfmm.
	* glom/bakery/app_withdoc.cc: Do not include gconfmm.h.

1.19.1:

2010-10-27  Murray Cumming  <murrayc@murrayc.com>

	Fix the build with latest gtkmm 2.91.2

	* glom/mode_design/dialog_add_related_table.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/script_library/dialog_script_library.cc:
	* glom/mode_design/users/dialog_users_list.cc: Use ComboBoxText::remove_all()
	instead of clear_items().

2010-10-19  Murray Cumming  <murrayc@murrayc.com>

	libglom: Change the ABI to 1.20, to avoid clashing with 1.16.

	* configure.ac:
	* glom/libglom/init.h:
	* glom/python_embed/python_module/py_glom_module.cc:
	* tests/test_load_python_library.cc: Change it everywhere, also correcting
	the python library name, which should have _ instead of . That was broken
	recently.

2010-10-19  Murray Cumming  <murrayc@murrayc.com>

	distcheck: Remove check for NEWS update.

	* configure.ac: AM_INIT_AUTOMAKE(): Remove check-news because it is not
	clever enough and because it prevents checking that distcheck works.

2010-10-19  Murray Cumming  <murrayc@murrayc.com>

	Choices Combo: Fix a warning.

	* glom/mode_data/datawidget/combo.cc: set_choices_fixed(),
	set_choices_related(): Do not try to re-pack the existing cell.

2010-10-19  Murray Cumming  <murrayc@murrayc.com>

	Choices Combo: Fix a segfault.

	* glom/mode_data/datawidget/combo.cc: set_choices_fixed(),
	set_choices_related(): Handle the has-entry case better, not calling clear(),
	because that breaks GtkComboBox, which then tries to use a removed
	GtkCellRenderer.

2010-10-18  Murray Cumming  <murrayc@murrayc.com>

	Details: Let the combo drop-down be wide enough.

	* glom/mode_data/datawidget/combo.cc: Constructor: Use the new
  set_popup_fixed_width() method.

2010-10-18  Murray Cumming  <murrayc@murrayc.com>>

	Tests: Fix a typo to fix make check.

	* tests/test_load_python_library.cc: Fix a typo to properly load the
  correct library name.

2010-10-18  Murray Cumming  <murrayc@murrayc.com>

	Fix the build with the latest gtkmm.

  * Makefile_glom.am:
  * po/POTFILES.in:
	* glom/mode_data/datawidget/comboentry.[h|cc]: Removed this.
  * glom/mode_data/datawidget/combo.cc: Add a has_entry parameter to the
  constructor and handle that in set_choices_related().

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

	Build fixes after recent commits.

	* glom/libglom/db_utils.cc:
	* glom/libglom/utils.cc:
	* glom/mode_data/datawidget/cellrenderer_dblist.cc: Adde back some
  includes of iostream and fix a size type.

2010-10-11  David King  <davidk@openismus.com>

	Change some uses of long to more appropriate types

	* glom/libglom/python_embed/py_glom_record.[cc|h]:
	* glom/libglom/python_embed/py_glom_related.[cc|h]:
	* glom/libglom/python_embed/py_glom_relatedrecord.[cc|h]:
	* glom/libglom/utils.cc:
	* glom/utility_widgets/db_addel/glom_db_treemodel.cc:
	* glom/utils_ui.cc: Use other types than long where appropriate.

2010-10-11  David King  <davidk@openismus.com>

	Use array notation where appropriate

	* glom/dialog_connection.[cc|h]:
	* glom/dialog_existing_or_new.[cc|h]:
	* glom/dialog_invalid_data.[cc|h]:
	* glom/libglom/connectionpool_backends/postgres.cc:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/connectionpool_backends/sqlite.cc:
	* glom/utils_ui.cc: Use array notation when initializing constant
	character arrays.

2010-10-11  David King  <davidk@openismus.com>

	Use unsigned integers where appropriate

	* glom/libglom/connectionpool_backends/postgres.[cc|h]:
	* glom/libglom/connectionpool_backends/postgres_central.[cc|h]:
	* glom/libglom/connectionpool_backends/postgres_self.[cc|h]:
	* glom/libglom/data_structure/glomconversions.[cc|h]:
	* glom/libglom/document/document.[cc|h]: Use unsigned integers where
	the variable cannot be negative.

2010-10-08  David King  <davidk@openismus.com>

	Remove some unnecessary includes

	* glom/bakery/app.h:
	* glom/base_db_table.h:
	* glom/base_db_table_data.h:
	* glom/box_db_table.h:
	* glom/libglom/sharedptr.h:
	* glom/mode_design/fields/combo_fieldtype.h:
	* glom/mode_design/relationships_overview/
	  dialog_relationships_overview.cc: Remove some unnecessary includes.

	* glom/bakery/app_withdoc_gtk.cc:
	* glom/base_db_table_data.cc:
	* glom/glom_privs.cc:
	* glom/import_csv/csv_parser.cc:
	* glom/import_csv/dialog_import_csv.cc:
	* glom/import_csv/dialog_import_csv_progress.cc:
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool_backends/postgres.cc:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/connectionpool_backends/sqlite.cc:
	* glom/libglom/data_structure/field.cc:
	* glom/libglom/document/bakery/document.cc:
	* glom/libglom/document/bakery/document_xml.cc:
	* glom/libglom/document/document.cc:
	* glom/libglom/python_embed/py_glom_record.cc:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_design/dialog_database_preferences.cc:
	* glom/mode_design/iso_codes.cc:
	* glom/mode_design/layout/combobox_fields.cc:
	* glom/mode_design/layout/dialog_layout_calendar_related.cc:
	* glom/mode_design/layout/dialog_layout_list_related.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/translation/combobox_locale.cc:
	* glom/mode_design/translation/dialog_identify_original.cc:
	* glom/navigation/box_tables.cc:
	* glom/print_layout/canvas_layout_item.cc:
	* glom/python_embed/glom_python.cc:
	* glom/utility_widgets/flowtable_dnd.cc:
	* glom/utility_widgets/layoutwidgetmenu.cc:
	* glom/utility_widgets/notebooklabelglom.cc: Add iostream include.

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

	FlowTable: More fixes for child HBox memory management.

	* glom/utility_widgets/flowtable.cc: Added checks and corrections, though
  there is still an odd warning about a refcount.

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

	FlowTable: Fix child HBox memory management.

	* glom/utility_widgets/flowtable.[h|cc]: insert(), remove_all(), remove(),
  destructor: Remember the implementation-only Gtk::HBox widgets and delete
  them when appropriate. A simple Gtk::manage() was not enough for this.

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

	FlowTable: Avoid some runtime warnings.

	* glom/utility_widgets/flowtable.[h|cc]: Re-add remove().
  get_column_for_first_widget(): Fix the implementation when it deals with
  children of the hbox.
	* glom/mode_data/flowtablewithfields.cc: Destructor: Avoid use of
  remove(widget), because it is complicated.

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

	FlowTable: Implement insert_before().

	* glom/utility_widgets/flowtable.[h|cc]: Re-added insert_before() which
  we will need for drag and drop support.

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

	Details: Use of GtkSpreadTable: Remove FlowTable:m_children.

	* glom/utility_widgets/flowtable.[h|cc]: Remove m_children and remove the
  remove() override, simplifying things.

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

	Details: Use of GtkSpreadTable: Use specified alignement again.

	* glom/mode_data/flowtablewithfields.cc:
	* glom/utility_widgets/flowtable.[h|cc]: FlowTableItem: Remove the
  m_expand_first_full and m_expand_second members, because we no longer need
  to remember that information.
  add(): Use set_halign() to specify fill/left depending on the expand
  choice.

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

	Details: Use of GtkSpreadTable: Align widgets again.

	* glom/mode_data/flowtablewithfields.cc: apply_size_groups_to_labels():
  Re-enable the code to align adjacent widgets.
	* glom/utility_widgets/flowtable.[h|cc]: get_column_for_first_widget():
  Bring this code back, this time using the new
  gtk_spread_table_get_child_line() function.

2010-10-08  Murray Cumming  <murrayc@murrayc.com>

	Details: FlowTable: Initial use of GtkSpreadTable instead of custom code.

  * glom/utility_widgets/flowtable.[h|cc]: Derive from GtkSpreadTable,
  removing API and implementation that is then provided by that base class.
	* glom/utility_widgets/flowtable_dnd.[h|cc]: Remove FlowTable_DND (and its
  use for now. We will need to reimplement it somehow with GtkSpreadTable,
  hopefully in a simpler way.

  * glom/mode_data/box_data_details.cc
  * glom/mode_data/flowtablewithfieldse.[h|cc]:
  * glom/utility_widgets/test_flowtable.cc: Adapted.

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

	Choices: Do not offer editing formatting features when choosign extra fields.

	* glom/mode_design/layout/layout_item_dialogs/box_formatting.[h|cc]:
  Rename the two set_formatting() methods to set_formatting_for_non_field(),
  without the show_choices option and set_formatting_for_field(). This avoids
  using the wrong one at the wrong time.
  set_is_for_print_layout(): Rename to set_is_for_non_editable() and change
  the implementation to make it more generic.
	* glom/base_db.[h|cc]: offer_field_formatting(): Rename one overload to
  offer_non_field_item_formatting() and add a show_editable_options parameter
  to the field one.
	* glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.[h|cc]:
  set_field(): Added a show_editable_options bool parameter. Hide the editable
  checkbox and tell Box_Formatting not to show editing options.

	* glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.[h|cc]:
	* glom/mode_design/layout/layout_item_dialogs/dialog_formatting.[h|cc]:
	* glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc:
	* glom/mode_design/print_layouts/dialog_text_formatting.[h|cc]:
	* glom/mode_design/report_layout/dialog_layout_report.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/layout/dialog_layout_details.cc:
	* glom/print_layout/canvas_print_layout.cc: Adapted.

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

	Avoid SQL errors about invalid ORDER BY fields.

	* glom/mode_data/box_data_list.cc: create_layout():
	* glom/mode_data/box_data_list_related.cc: create_layout(): Don't call
  set_columns() before set_found_set(), to avoid SQL parsing errors due to
  using invalid fields for sort (ORDER BY) clauses.

2010-10-05  David King  <davidk@openismus.com>

	Avoid uninitialized variables in CanvasGroupGrid

	* glom/utility_widgets/canvas/canvas_group_grid.cc: Initialize
	variables at declaration.

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

	Choices Layout: Fields List: Slight improvement.

	* glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.[h|cc]:
	Append new fields to the end instead of the start.

2010-10-04  Jon Nordby  <jonn@openismus.com>

	Set programming language explicitly around --enable-warnings macros

	* configure.ac:

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

	Combo Choices: Extra fields dialog: Fix the title.

	* glom/glom_developer.glade: dialog_fieldslist: Remove the title, which
	was the old title left over from when this was just for secondary sort fields.
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
	* glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc:
	Set the title manually so it is appropriate to each use.

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

	CellRendererDbList: Show related choices.

	* glom/mode_data/datawidget/combochoiceswithtreemodel.[h|cc]:
	Rename type_model_columns and co with a _fixed suffix, to avoid using them
	for the related case.
	* glom/mode_data/datawidget/cellrenderer_dblist.[h|cc]: on_editing_started():
	Pack extra cells for the related case too, separating the fixed and related
	cases into separate methods.

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

	ComboEntry: Actually show the text value in the drop-down.

	* glom/mode_data/datawidget/treemodel_db_withextratext.cc:
	get_value_vfunc(): Use m_column_index_key instead of get_value_key() because
	that is not set, because we do not call set_value_key() for each row. I
	will try to remove that maybe-unused API.
	* glom/mode_data/datawidget/comboentry.cc: set_choices_related():
	Set up a cell_data_func for the automaticaly-added cell when we
	repack it, because calling clear() (to unpack it) disconnects the
	model-view association for that cell.

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

	TreeModelDbWithExtraText: Fix the use of Glib::Value.

	* glom/mode_data/datawidget/treemodel_db.cc: Intialize m_column_index_key
	to -1 so we can really check that it is uninitialized.
	* glom/mode_data/datawidget/treemodel_db_withextratext.cc: get_value_vfunc():
	Initialize both value instances and always set the output value.

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

	ComboEntry: Fix silly typo.

	* glom/mode_data/datawidget/comboentry.cc: Remove left-over for() loop.

2010-10-03  Murray Cumming  <murrayc@murrayc.com>

	Choices: Fix the custom tree model.

	* glom/mode_data/datawidget/cellrenderer_dblist.cc: Use the virtual text
	column here too.
	* glom/mode_data/datawidget/treemodel_db_withextratext.cc: Call the
	ObjectBase constructor with a custom typename, as in the base class. This is
	necessary because ObjectBase is a virtual base class.

2010-10-03  Murray Cumming  <murrayc@murrayc.com>

	Fix the previous commit.

	* glom/mode_data/datawidget/treemodel_db.cc: Constructor: Actually fill
	m_column_fields so there are some columns in the tree model.

2010-10-03  Murray Cumming  <murrayc@murrayc.com>

	Choices combos: Fix ComboBoxEntry by using a virtual text column.

	* glom/mode_data/datawidget/treemodel_db.[h|cc]: Simplify the create()
	methods, removing the one that takes TreeModelColumns.
	* Makefile_glom.am:
	* glom/mode_data/datawidget/treemodel_db_withextratext.[h|cc]: A derived
	model (actually always used, but it keeps the code separate) that has an
	extra virtual text model, because GtkComboBoxEntry requires a text column.
	( https://bugzilla.gnome.org/show_bug.cgi?id=631167 )
	* glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
	set_choices_related(): Use the new derived model instead.
	* glom/mode_data/db_adddel/db_adddel.cc: Adapted.
	* glom/mode_data/datawidget/comboentry.cc: set_choices_related():
	Use the virtual text column.

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

	Choices combos: Reuse the list view implementation. Only works for Combo now.

	* glom/mode_data/db_adddel/treemodel_db.[h|cc]: Moved to:
	* glom/mode_data/datawidget/treemodel_db.[h|cc]: so we can use it for the
	choices combo widgets too.
	* glom/mode_data/datawidget/combochoices.[h|cc]:
	set_choices_related(): Make this pure virtual.
	Remove set_choices_with_second().
	* glom/mode_data/datawidget/cellcreation.[h|cc]: create_cell():
	Use set_choices_related() instead of getting all rows as a list and
	using set_choices_with_second().
	* glom/datawidget/combochoiceswithtreemodel.[h|cc]:
	Override set_choices_related() and cell_connect_cell_data_func().
	Remove the use_model() pure virtual method.
	* glom/mode_data/datawidget/cellrenderer_dblist.[h|cc]:
	* glom/mode_data/datawidget/combo.[h|cc]:
	* glom/mode_data/datawidget/comboentry.[h|cc]:
	* glom/mode_data/datawidget/combo_as_radio_buttons.[h|cc]: Adapt,
	setting up the view in overrides of set_choices_fixed() and
	set_choices_related() instead of use_model(), and being value-based
	where possible instead of converting values to and from text.

	* glom/mode_data/db_adddel/db_adddel.[h|cc]: Move create_model_db() to
	DbTreeModel::create_from_items() so we can use it for the combo choice
	widgets too.
	refresh_cell_choices_data_from_database_with_foreign_key():
	Use set_choices_related() instead of getting all rows as a list and
	using set_choices_with_second().

2010-10-01  Murray Cumming  <murrayc@murrayc.com>

	Fix (unlikely) possible null dereferences shown by cppcheck.

	* Several files: Check the output parameter when getting widgets from glade.
	When this fails there is already a stderr warning and we could not recover
	anyway, but this helps cppcheck or maybe other chekers to only tell us
	interesting things.

2010-10-01  Murray Cumming  <murrayc@murrayc-x61>

	DbUtils: Move fill_full_field_details() here from Base_DB.

	* glom/base_db.[h|cc]: Move fill_full_field_details() from here to:
	* glom/libglom/db_utils.[h|cc]: here, so it can be used more generally,
	and because it isn't actually used much now, so it's just making Base_DB
	look even more complicated than it is.
	* glom/report_builder.cc: Adapted.

2010-10-01  Murray Cumming  <murrayc@murrayc.com>

	Document: fill_layout_field_details(): Handle choices layouts too.

	* glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
	set_choices_related(): Take non-const parameters.
	Added a non-const version of get_choices_related() so we can update the
	full field details later.
	* glom/libglom/document/document.cc: fill_layout_field_details():
	Also try to update the field details in the choices lists.

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

	Fix the build with the latest gtkmm 3 API.

	* glom/application.cc:
	* glom/dialog_existing_or_new.cc:
	* glom/frame_glom.cc:
	* glom/mode_design/translation/window_translations.cc:
  Use FileFilter via RefPtr.
	* glom/bakery/app_withdoc_gtk.cc: Use RecentFilter via RefPtr.
	* glom/mode_data/db_adddel/db_adddel.cc:
	* glom/mode_data/placeholder-glom[h|cc]:
	* glom/utility_widgets/flowtable[h|cc]:
	* glom/utility_widgets/imageglom.[h|cc]: Change use of get_size() to
  get_preferred_size() and change on_expose_event() to on_draw().

2010-09-24  Murray Cumming  <murrayc@murrayc.com>

	Fix the build.

	* glom/libglom/document/document.cc: Restore missing tag names mistakenly
  removed in a previous commit.

2010-09-24  Murray Cumming  <murrayc@murrayc.com>

	Const corrections in use of LayoutItem and LayoutItem_Field in vectors.

  This allows DbTreeModel to take a vector of const items.

2010-09-24  David King  <davidk@openismus.com>

	Improve use of defines

	* *.h: Be more consistent with include guards.
	* glom/dialog_existing_or_new.cc:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/document/document.cc: Convert defines to static const
	data.

2010-09-23  Murray Cumming  <murrayc@murrayc.com>

	DbAddDel: Some code rearrangement.

	* glom/base_db_table_data_readonly.h:
	* glom/mode_data/db_adddel/db_adddel.[h|cc]: Split the db treemodel creation
  up into a separate function, ready for reuse by choices combo widgets.

2010-09-23  Murray Cumming  <murrayc@murrayc.com>

	DbAddDel: Replace add_columns() with set_columns(), simplifying the code.

	* glom/libglom/data_structure/layout/layoutgroup.[h|cc]: Added non-const
  version of get_items_recursive().
	* glom/mode_data/db_adddel/db_adddel.[h|cc]: Remove add_columns() and
  set_columns_ready(), replacing them with set_columsn() which takes a list
  of layout items. Remove DbAddDelColumnInfo because we do not use its other
  member variables, replacing it with the simple list of layout items.
	* glom/mode_data/db_adddel/treemodel_db.[h|cc]: Improve debug out.
	* glom/mode_find/box_data_list_find.cc:
	* glom/mode_data/box_data_list.[h|cc]:
	* glom/mode_data/box_data_list_related.[h|cc]: Adapted.

2010-09-23  Murray Cumming  <murrayc@murrayc.com>

	Move code into a create_cell() utility function.

  * glom/mode_data/db_adddel/cellrenderer*.[h|cc]: Move to
  * glom/mode_data/datawidget/.
  * glom/mode_data/db_adddel/db_adddel.[h|cc]:
  construct_specified_columns_cellrenderer(): Move some code into:
	* glom/mode_data/datawidget/cellcreation.[h|cc]: Added create_cell().
  This is less efficient, because we repeat some dynamic casts, but it
  makes construct_specified_columns_cellrenderer() less awfully huge by
  separating the code that supports cell editing. And it makes the code
  available to ComboChoices widgets later.

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

	Fix the build with latest unstable gtkmm 3.

	* glom/mode_data/db_adddel/db_adddel.cc: Adapt to CellSizeRequest::get_size().

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

	ComboChoices: Renamed set_choices() to set_choices_fixed()

	* glom/mode_data/datawidget/combochoices.h: Rename set_choices() to
  set_choices_fixed() to make code clearer.
	* glom/mode_data/datawidget/combo_as_radio_buttons.[h|cc]
	* glom/mode_data/datawidget/combochoiceswithtreemodel.[h|cc]
	* glom/mode_data/datawidget/datawidget.cc:
	* glom/mode_data/db_adddel/db_adddel.cc: Adapted.

2010-09-18  Murray Cumming  <murrayc@murrayc.com>

	Split Base_DB_Table_Data into a read-only base class.

	* glom/Makefile_glom.am:
	* po/POTFILES.in:
	* glom/base_db_table_data_readonly.[h|cc]: Created this new class from
	parts of:
	* glom/base_db_table_data.[h|cc]: which now derives from it.
	This let us use it for classes that do not allow the user to change the data.
	For instance, choice combo boxes.

2010-09-17  Murray Cumming  <murrayc@murrayc.com>

	Fix the build with gtkmm 3 from git master.

	* glom/utility_widgets/flowtable.cc: Use SizeRequest::get_size() instead
	Gtk::Widget::size_request(), removed in gtkmm 3.

2010-09-15  Murray Cumming  <murrayc@murrayc.com>

	Replace use of ALIGN_LEFT/RIGHT/TOP/BOTTOM with START/END.

	* glom/mode_data/flowtablewithfields.cc:
	* glom/print_layout/canvas_layout_item.cc: Use only the non-deprecated
	enum values.

2010-09-11  Murray Cumming  <murrayc@murrayc.com>

	DbAddDel: Cleanup: Rename glom_db_treemodel.[h|cc] to treemodel_db.[h|cc].

	* glom/mode_data/db_adddel/glom_db_treemodel.[h|cc]:
	* glom/mode_data/db_adddel/treemodel_db.[h|cc]: Also rename the class from
	DbTreeModel to TreeModelDb to match.

2010-09-11  Murray Cumming  <murrayc@murrayc.com>

	Choices combo widgets: Improve the API.

	* glom/mode_data/datawidget/combochoiceswithtreemodel.[h|cc]:
	Make create_model() non virtual, instead adding a pure virtual use_model().
	* glom/mode_data/datawidget/combo.[h|cc]:
	* glom/mode_data/datawidget/comboentry.[h|cc]:
	* glom/mode_data/db_adddel/cellrenderer_dblist.[h|cc]: Change the
	create_model() overrides to use_model() overrides.

2010-09-11  Murray Cumming  <murrayc@murrayc.com>

	Choices combo widgets: Initial work to make the model generic.

	* glom/mode_data/datawidget/combochoiceswithtreemodel.[h|cc]: Change
	m_refModel to a generic TreeModel, make it private ,and add a
	get_choices_model() accessor, as a step to optionally using a db-based
	treemodel like Db_AddDel.
	* glom/mode_data/datawidget/combo.cc:
	* glom/mode_data/datawidget/comboentry.cc:
	* glom/mode_data/db_adddel/cellrenderer_dblist.cc: Adapted.

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

	Moved the Db_AddDel code.

	* glom/utility_widgets/db_adddel/*.[h|cc]: Moved this to
	* glom/mode_data/db_adddel/ because that is where it is used.

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

	DbUtils: Improve debug output.

	* glom/libglom/db_utils.cc: query_execute_select(): Try to get more
  information about a connection timeout error when it happens.

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

	Tests: derived instantiation: Test an extra dialog.

	* glom/mode_design/layout/dialog_layout_calendar_related.h: Correct the
  name of the header guard, to avoid a clash.
	* tests/test_glade_derived_instantiation.cc: Enable the test for this
  dialog.

2010-09-10  David King  <davidk@openismus.com>

	Make pc.in file unversioned

	* configure.ac: Additionally specify source file for unversioned
	glom.pc.in.
	* glom/libglom/glom-1.16.pc.in: Move to unversioned
	glom/libglom/glom.pc.in, which will be moved to a versioned file by
	configure.

2010-09-10  David King  <davidk@openismus.com>

	Use GLOM_ABI_VERSION in Makefiles and configure.ac

	* Makefile.am:
	* Makefile_libglom.am:
	* configure.ac: Use GLOM_ABI_VERSION to reduce duplication.

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

	Use libosso instead of libossomm on Maemo

	* configure.ac:
	* glom/main.cc: Use libosso instead of libossomm, because we just use
	one function.

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

	Dialog_Layout_Report: Fix a crash, making all tests pass.

	* glom/mode_design/report_layout/dialog_layout_report.[h|cc]:
  Disconnect a signal handler in the destructor to avoid a crash when the
  GtkNotebook signal handler is called later, though we should fix that in
  GtkNotebook.

2010-09-09  Murray Cumming  <murrayc@murrayc.com>

	Choices drop-downs: More improvement of the column alignment.

	* glom/mode_data/datawidget/comboentry.cc: create_model():
	* glom/utility_widgets/db_adddel/cellrenderer_dblist.[h|cc]:
	on_editing_started(): Remove (with clear) the automatically-added
	CellRenderer and re-pack it, so we can specify expand=false.

2010-09-09  David King  <davidk@openismus.com>

	Initial dialog: Really try to load examples from each path.

	* glom/dialog_existing_or_new.[h|cc]: list_examples_at_path():
  Use synchronous IO rather than asynchronous, to solve bug #626417.
  This means that we really check the result of trying the first directory,
  so we can try the other location too.

2010-09-09  Murray Cumming  <murrayc@murrayc.com>>

	Choices drop-down: Remove hack to fix the list view choices.

	* glom/utility_widgets/db_adddel/cellrenderer_dblist.cc: Constructor:
  Remove the hacky call to Glib::ObjectBase(0) because it stopped
  on_start_editing() from being called, stopping the extra columns from being
  shown.

2010-09-09  Murray Cumming  <murrayc@murrayc.com>

  Choices drop-downs: Improve the column alignment.

	* glom/mode_data/datawidget/combo.cc: create_model():
	* glom/mode_data/datawidget/comboentry.cc: create_model():
  * glom/utility_widgets/db_adddel.cc: on_start_editing():
  Use expand=false with pack_start() with the first column, plus xalign=0,
  so we can actually align the columns, though it only really works if the
  previous columns have values all of a similar width.
  And this doesn't work with ComboEntry or the cell renderer because
  GtkComboBoxEntry and GtkCellRendererCombo do the pack_start() of the first
  column automatically - see the comments.

2010-09-09  Murray Cumming  <murrayc@murrayc.com>>

	List view: Support multiple extra fields in choices here too.

  * glom/utility_widgets/cellrendererlist/cellrendererlist.[h|cc]:
  Split this into:
	* glom/utility_widgets/cellrendererlist.[h|cc]: with no extra/second-column
  functionality. It is now just a convenience class for a string-based combo
  cell.
  And into this:
	* glom/utility_widgets/db_adddel/cellrenderer_dblist.[h|cc]: deriving from
  ComboChoicesWithTreeModel, like the regular combo widgets. Remove non-DB
  API.
	* glom/utility_widgets/db_adddel/db_adddel.cc: Adapted.

2010-09-08  Murray Cumming  <murrayc@murrayc.com>

	Combo widgets: Support multiple extra fields.

	* glom/libglom/utils.cc: get_choice_values(): Actually get extra values other
  than than the first one, by actually using the index instead of just 1.
	* glom/mode_data/datawidget/combochoiceswithtreemodel.[h|cc]:
  Added a virtual create_model(), to create model columns dynamically. So far
  they are just text columns.
  set_choices_with_second(): Recreate the model here each time.
	* glom/mode_data/datawidget/combo.[h|cc]:
	* glom/mode_data/datawidget/comboentry.[h|cc]: Override create_model() to
  also set up the view columns using the widgets' specific API.
	* glom/mode_data/datawidget/combochoices.h: set_choices_related():
  Stop this from being virtual because we no longer override it.

2010-09-08  Murray Cumming  <murrayc@murrayc.com>

	Initial support for multiple show-also fields in related choices.

	* glom/glom_developer.glade: Formatting box: related choices:
  Replace the second-field combo with a label and an edit button, to
  open a layout dialog allowing multiple items (fields).
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.[h|cc]:
  Add the code for that.
	* glom/mode_design/fields/dialog_fielddefinition.cc: Handle changes to
  the extra layout group in BoxFormatting.

	* glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
  Added a get_has_related_choices() with a has_second& parameter.
  Added a get_choices_related_relationship() convenience method.
  set/get_choices_related(): Change the field_second string parameter to
  a full LayoutGroup, allowing multiple items (fields).
	* glom/libglom/data_structure/layout/layoutgroup.[h|cc]:
  Added a get_items_recursive() convenience method.
  Adapt to the FieldFormatting change.
	* glom/libglom/document/document.cc:
  load_after_layout_item_formatting(), save_before_layout_item_formatting():
  For the related choices extra fields, save an entire layout group instead of
  just a field name, supporting the deprecated way for documents with the
  old file format version.
	* glom/libglom/utils.[h|cc]: get_choice_values(): Do not take
  the first and second fields as parameters. Instead get the information from
  the layout item. Support multiple fields, via the new layout group.
  Added get_list_of_layout_items_for_display() to show a preview of the
  layout group (list of fields) in the label in BoxFormatting.
	* glom/mode_data/flowtablewithfields.cc: Adapt to the FieldFormatting change.
	* glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc:
  update_labels(): Improve this code, using the new
  Utils::get_list_of_layout_items_for_display() method.
	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]: Adapt to these changes.

	* glom/mode_data/datawidget/combo.[h|cc]:
	* glom/mode_data/datawidget/combo_as_radio_buttons.cc:
	* glom/mode_data/datawidget/combochoices.[h|cc]:
	* glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
	* glom/mode_data/datawidget/comboentry.[h|cc]:
  set_choices_related(): Don't take the extra fields as a parameter. Instead
  discover them from the layout item.
  set_choices_with_second(): Change the list_value's parameter type to support
  multiple second values.
  refresh_data_from_database_with_foreign_key(): Adapt the to the use of a
  layout group instead of second field name, though this currently only uses the first field.
	* glom/mode_data/datawidget/datawidget.cc: Adapt to the combo API changes.

	* glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc: Make
  some code slightly more robust. Not really a related change.

2010-09-07  Murray Cumming  <murrayc@murrayc.com>

	Dialog_Properties: Remove the unnecessary virtual keywords.

	* glom/utility_widgets/dialog_properties.h: Make methods non-virtual
  because nothing overrides them.

2010-09-07  Murray Cumming  <murrayc@murrayc.com>

	Dialog_FieldsList: Fix a crash.

	* glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc: get_fields():
  Do not overwrite the vector, fixing a crash.
  Looking at this code, I think we also ignore reordering of items, so we
  should fix that later.

2010-09-07  Murray Cumming  <murrayc@murrayc.com>

	Add a --stop-auto-server-shutdown command-line option for debugging.

	* glom/libglom/connectionpool.[h|cc]: Added set_auto_server_shutdown().
  startup(): Only handle the linux crash signal if this is set, so we can
  instead let gdb handle it.
	* glom/application.[h|cc]: Added set_stop_auto_server_shutdown() which calls
  it.
	* glom/main.cc: Add a --stop-auto-server-shutdown command line option that
  calls that.

2010-09-06  Murray Cumming  <murrayc@murrayc-desktop>

	Renamed Dialog_GroupBy_SecondaryFields to Dialog_FieldsList.

	* glom/mode_design/layout/layout_item_dialogs/dialog_groupby_second
	aryfields.[h|cc]: Rename to dialog_fieldslist.[h|cc]:
  * glom/glom_developer.glade: Renamed the ID too.
  adapted.
  * Makefile_glom.am:
  * glom/mode_design/layout/layout_item_dialogs/dialog_group_by.h:
  * tests/test_glade_derived_instantiation.cc:
  Adapted.
  This lets me use it for other things too.

2010-09-06  Murray Cumming  <murrayc@murrayc.com>

	Fix the build for the latest goocanvasmm and gtkmm API.

	* glom/mode_design/relationships_overview/canvas_group_dbtable.cc:
	* glom/mode_design/relationships_overview/dialog_relationships_over
	view.cc:
	* glom/print_layout/canvas_print_layout.[h|cc]:
	* glom/utility_widgets/canvas/canvas_text_movable.[h|cc]:
  Use Goocanvas::AnchorType instead of (removed) Gtk::AnchorType.

2010-09-02  Murray Cumming  <murrayc@murrayc.com>

	Fix the build with latest gtkmm.

	* glom/utility_widgets/flowtable.[h|cc]: on_expose_event(): Use
  Cairo for drawing instead of Gdk::GC, which no longer exists.

2010-09-02  Murray Cumming  <murrayc@murrayc.com>

	Avoid use of deprecated cairomm API.

	* configure.ac: Also check for CAIROMM deprecations.
	* glom/import_csv/dialog_import_csv.cc: Fix a bad git merge.

2010-08-19  David King  <davidk@openismus.com>

	Include the correct config.h

	* glom/application.cc:
	* glom/bakery/app_withdoc.cc:
	* glom/bakery/app_withdoc_gtk.cc:
	* glom/bakery/app_withdoc_gtk.h:
	* glom/bakery/dialog_offersave.cc:
	* glom/bakery/dialog_offersave.h:
	* glom/libglom/connectionpool_backends/postgres.cc:
	* glom/libglom/document/bakery/document.cc:
	* glom/libglom/gst-package.c:
	* glom/main.cc:
	* glom/mode_design/translation/window_translations.cc:
	* glom/python_embed/glom_python.cc:
	* glom/python_embed/python_module/py_glom_module.cc:
	* glom/utils_ui.cc: Be sure to include the local config.h.

2010-08-10  Murray Cumming  <murrayc@murrayc.com>

	SpinButtons: Don't have 0 to 0 ranges with only 0 increments possible.

	* glom/import_csv/dialog_import_csv.cc: (Import dialog)
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
  (Multiline text field height)
	* glom/utility_widgets/dialog_flowtable.cc: (number of columns in a group):
  Constructors: Set the range and increment manually, because Glade defaults
  to useless 0 values for these.
  This problem was introduced when we remove the extra adjustment objects
  from the .glade files, so we could simplify our use of Glade.
  It is a side-effect of GtkBuilder bug
  http://bugzilla.gnome.org/show_bug.cgi?id=575714
  This partially fixes bug #625693 (.cvs file import not working).

2010-08-10  Murray Cumming  <murrayc@murrayc.com>

	Catch exceptions from std::locale::global().

	* glom/main.cc: Put a try/catch around the call to std::locale::global(),
  because it is throwing on at least one system under apparently normal
  circumstances.
  This should fix bug #619445 (teidooricaerak) or at least give us another clue.

2010-08-09  Murray Cumming  <murrayc@murrayc.com>

	test_document_autosave: Change the temp filename to avoid a clash.

	* tests/test_document_autosave.cc: Rename the file because we sometimes
  seem to clash with a directory of the same name.

2010-08-09  Murray Cumming  <murrayc@murrayc.com>

	Self-Hosting: Don't keep trying indefinitely when trying various ports.

	* glom/libglom/connectionpool_backends/postgres_self.cc: connect():
  Fix a logic error introcuced when removing the no-exceptions ifdefs.
  Now it only retries when a particular type of error happens, and otherwise
  fails.

2010-08-07  Murray Cumming  <murrayc@murrayc.com>

	Fix the tests.

	* tests/test_selfhosting_new_empty.cc:
	* tests/test_selfhosting_new_from_example.cc: Adapt to the recent
  change return type of ConnectionPool::startup().

2010-08-06  Murray Cumming  <murrayc@murrayc.com>>

	FieldFormatting: Default to show-all for related choices.

	* glom/libglom/data_structure/layout/fieldformatting.cc:

2010-08-06  Murray Cumming  <murrayc@murrayc.com>>

	Formatting: Add get_choices_related() overload to reduce copy/pasted code.

	* glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
  Added a get_choices_related() overload that returns the LayoutItem_Fields
  instead of just the field names. This reduces the copy/pasted code in the
  callers, and makes it easier to support related fields in future.
	* glom/libglom/utils.[h|cc]:
	* glom/mode_data/datawidget/combochoices.[h|cc]:
	* glom/utility_widgets/db_adddel/db_adddel.cc: Adapted and made necessary
  const corrections.

2010-08-06  Murray Cumming  <murrayc@murrayc.com>

	Choices: Fix !show-all lists.

	* glom/mode_data/datawidget/combochoices.[h|cc]:
  refresh_data_from_database_with_foreign_key(): Add a document parameter,
  used to update the cached choices information if necessary.
	* glom/mode_data/flowtablewithfields.cc: set_field_value(): Adapted.

2010-08-06  Murray Cumming  <murrayc@murrayc.com>

	Document loading: Show an error dialog even for unexpected errors.

	* glom/application.cc: on_document_load(): Don't just fail silently when
  there is an unexpected error, for instance if the postgres data directory
  is missing.

2010-08-06  Murray Cumming  <murrayc@murrayc.com>

	Utils::get_choice_values(): Reduce copy/pasted code.

	* glom/libglom/utils.[h|cc]: build_sql_select_with_key(): Add a sort_clause
  parameter.
  get_choice_values(field): Rename this to get_choice_values_all() and change
  the implementation to just call the other get_choice_values(). Add
  a Document* parameter so we can do that.
  get_choice_values(document, field, ...): Sort the list by the first field.
  This should probably be an option in the developer-mode UI.
	* glom/mode_data/datawidget/combo.h:
	* glom/mode_data/datawidget/combochoices.[h|cc]:
	* glom/mode_data/datawidget/comboentry.h:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
  get_choice_values(): Adapt to the change, by adding a Document* parameter.
	* glom/base_db.cc: Adapt.

2010-08-06  Murray Cumming  <murrayc@murrayc.com>

	DbAddDel: Avoid some copy/pasting of code to append items to choices cells.

	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]: Added set_cell_choices(),
  using it in refresh_cell_choices_data_from_database_with_foreign_key() and
  construct_specified_columns_cellrenderer().

2010-08-06  David King  <davidk@openismus.com>

	Minor build system cleanup

	* configure.ac: Drop unnecessary AC_DISABLE_STATIC. Use AS_IF rather
	than shell if...fi. Add a TODO.
	* Makefile.am:
	* Makefile_tests.am: Take advantage of dependencies to reduce
	duplication of linker flags.

2010-08-06  Murray Cumming  <murrayc@murrayc.com>

	List: Choices with !show_all: Update the list when the from_field changes.

	* glom/libglom/utils.[h|cc]: Added a get_choice_values() overload that
	takes the foreign_key.
	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]: Added get_choice_index()
	to get the affected choice lists when a field value changes.
	Added refresh_cell_choices_data_from_database_with_foreign_key() to update
	these lists.
	set_value(): Use these methods to update choice lists when appropriate,
	as already happens in the Details view.

2010-08-05  Murray Cumming  <murrayc@murrayc.com>

	List view: When a value is edited, update other instances of the same field.

	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]:
	get_data_model_column_index(): Add a including_specified_field_layout bool
	parameter, used in a new set_value() method overload that has a
	set_specified_field_layout bool parameter.
	user_changed(): Call set_value() to show the new value in any other
	instances of the same field.
	The details view already does this.

2010-08-04  Murray Cumming  <murrayc@murrayc.com>>

	Simplified some code.

	* glom/mode_data/flowtablewithfields.[h|cc]: set_value(), set_other_value():
  Avoid copy/pasting of the code.

2010-08-04  Murray Cumming  <murrayc@murrayc.com>

	Details: Choices with !show_all: Update the list when the from_field changes.

	* glom/libglom/data_structure/layout/fieldformatting.[h|cc]: Renamed
	set/get_choices() to set/get_choices_related().
	* glom/libglom/utils.cc:
	* glom/libglom/document/document.cc:
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc: Adapted.

	* glom/mode_data/datawidget/combochoices.[h|cc]: Remove the non-default
	constructor that took a second field.
	Move set_choices_with_second() to private.
	Add set_choices_related() and matching member variables.
	Add refresh_data_from_database_with_foreign_key(), like the one in
	Box_Data_RelatedRecords, which gets the related values and calls
	set_choices_with_second().
	* glom/mode_data/datawidget/combo.[h|cc]:
	* glom/mode_data/datawidget/combo_as_radio_buttons.[h|cc]:
	* glom/mode_data/datawidget/combochoiceswithtreemodel.[h|cc]:
	* glom/mode_data/datawidget/comboentry.[h|cc]: Adapt to the changed
	ComboChoices base API.
	* glom/mode_data/datawidget/datawidget.cc:
	create_combo_widget_for_field(): Do not take the second field as a parameter,
	because that is now specified later.
	Constructor: Simplify the code now that ComboChoices does more of the work.
	* glom/mode_data/flowtablewithfields.cc: set_field_value(),
	set_other_field_value(): Call refresh_data_from_database_with_foreign_key() on
	the choice widgets as they already does on the portals, to refresh the list of
	possible values.

2010-08-02  Murray Cumming  <murrayc@murrayc.com>

	FlowTableWithFields: Added get_choices_widgets(from_field).

	* glom/mode_data/datawidget/datawidget.cc: Constructor: Only fill the
	choices list at this point if show_all is set.
	* glom/mode_data/flowtablewithfields.[h|cc]: Addef get_choices_widgets(),
	like the existing get_portals() methods.

2010-08-02  Murray Cumming  <murrayc@murrayc.com>

	Field Formatting: Related Choices: Add a Show All checkbox.

	* glom/glom_developer.glade:
	* glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.[h|cc]:
	Add a Show All checkbox to the Related Choices section, so the developer
	may choose to restrict the choices depending on the relationship. The default
	(the previous behaviour) is to show all records from the related table.
	* glom/libglom/document/document.cc: save_before_layout_item_formatting(),
	save_after_layout_item_formatting(): Store the new bool in the document.
	* glom/libglom/utils.cc:
	* glom/mode_data/datawidget/datawidget.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc: Adapt the code to build, though
	the behaviour has not changed yet.

2010-07-27  Murray Cumming  <murrayc@murrayc.com>

	Fix the tests build after the merge.

	* tests/test_selfhosting_new_empty.cc: Fix the use of Utils::.

2010-07-27  Murray Cumming  <murrayc@murrayc.com>

	Fix the tests build after the merge.

	* tests/test_selfhosting_new_empty.cc: Fix the use of Utils::.

2010-07-27  Murray Cumming  <murrayc@murrayc.com>

	Rename libglom-1.14 to libglom-1.16 (parallel-installable)

	* configure.ac: Change the GLOM_ABI_VERSION number.
	* Makefile.am:
	* Makefile_libglom.am:
	* docs/pyglom_reference/Makefile.am:
	* docs/pyglom_reference/index.rst.in:
	* glom/libglom/init.h:
	* glom/python_embed/python_module/py_glom_module.cc:
	* tests/test_load_python_library.cc:
	* win32/build-installer:
	* win32/glom.iss.in: Change mentions of 1.14 to 1.16.

2010-07-27  Murray Cumming  <murrayc@murrayc.com>

	Adapt to recent gtkmm-3.0 API changes.

	* glom/bakery/app_withdoc_gtk.cc: Remove use of Gtk::RecentManager::set_limit().
	* glom/dialog_existing_or_new.[h|cc]:
	* glom/frame_glom.[h|cc]:
	* glom/mode_data/notebook_data..[h|cc]:
	* glom/mode_design/report_layout/dialog_layout_report.[h|cc]:
	* glom/notebook_glom.[h|cc]: Replace use of GtkNotebookPage with Gtk::Widget*
	in switch_page signal handlers.

1.14.5:

2010-07-25  Murray Cumming  <murrayc@murrayc.com>

	Allow unique fields with same name in multiple tables.

	* glom/libglom/connectionpool_backends/postgres.cc:
	change_column(): Prefix the table name to the constraint name when
	setting/removing the unique-key constraint, as libgda (or PostgreSQL)
	seems to do when creating a field. This prevents a clash when two tables
	have the same field name, and both should be unique.
	This is nasty code anyway that I would rather have in libgda.
	This fixes bug #625192 (fmyhr).

2010-07-22  Murray Cumming  <murrayc@murrayc.com>

	Added --restore command-line option.

	* glom/application.[h|cc]: Added init() with a bool restore option,
  calling do_backup_restore() if appropriate.
	* glom/main.cc: Added a --restore command and pass the bool result to
  Application::init().

  This allows the user to restore from a backup without first loading an
  existing file, though this is so far only possible via the terminal.

2010-07-22  Murray Cumming  <murrayc@murrayc.com>

  Added Developer/Restore Backup menu item.

	* glom/application.[h.cc]: Added a Developer/Restore Backup menu item,
  which lets the user choose a .tar.gz, untars it in /tmp/ and opens it.

	* tests/test_selfhosting_new_empty.cc:
	* glom/libglom/utils.[h|cc]: Move delete_directory() to Utils.
  Added get_directory_child_with_suffix(), used to find the .glom file inside
  an untarred directory.

2010-07-22  Murray Cumming  <murrayc@murrayc.com>

	Saving from a backup: Now works.

	* glom/application.[h|cc]: on_document_load(): Simplify the code to
  create from a backup, modifying the from-example code to handle it too,
  calling a new recreate_database_from_backup() method.
  That now creates the database and then adds the groups before trying
  to restore from the backup file.
	* glom/libglom/connectionpool_backends/backend.h: convert_backup():
	* glom/libglom/connectionpool_backends/postgres.[h|cc]: convert_backup():
	* glom/libglom/connectionpool_backends/sqlite.[h|cc]: convert_backup():
  Add a database_name_parameter. This now expects the database to exist
  already, though it should be empty. It should also already have the
  expected groups.
	* glom/libglom/connectionpool.[h|cc]: convert_backup(): Supply the
  database name. Also update the meta data so we know about the new tables.

2010-07-21  Murray Cumming  <murrayc@murrayc.com>

	Small Business example: Add table privileges.

	* examples/example_smallbusiness.glom: Give some privileges to the
    accounts and personnel groups and resave-as-an-example. These were
    probably lost some time.

2010-07-21  Murray Cumming  <murrayc@murrayc.com>>

	Saving as example: Fix this.

	* glom/libglom/document/document.cc: set_modified(): Actually use
    m_allow_auto_save so we don't just save every time, overwriting
    previous saves. For instance, the examples were saved with is_example=false
    after the document was changed back.

2010-07-21  Murray Cumming  <murrayc@murrayc.com>>

	Saving from examples: Set the table privileges mentioned in the document.

	* glom/base_db.[h|cc]: Added set_table_privileges_groups_from_document().
	* glom/application.cc: recreate_database_from_example(): call it.

2010-07-21  Murray Cumming  <murrayc@murrayc.com>

	Saving from examples: Create the groups mentioned in the document.

	* glom/base_db.[h|cc]: Added add_groups_from_document().
	* glom/application.cc: recreate_database_from_example(): call it.

2010-07-20  Murray Cumming  <murrayc@murrayc.com>>

	Fixed warnings with latest gtkmm-2.24

	* glom/mode_data/notebook_data.cc:
	* glom/mode_find/notebook_find.cc: Use Gtk::Notebook::append_page()
    instead of Gtk::Notebook::pages().push_back().

2010-07-13  Murray Cumming  <murrayc@murrayc.com>

	Fixed warnings, even with the latest gtkmm-2.24.

	Many files: Try to include box.h or dialog.h before other treemodel.h.
    Sometimes just add a gtkmm.h to simplify things. This will not be necessary
    with gtkmm-3.0 (in glom's master branch).

2010-07-07  Murray Cumming  <murrayc@murrayc-desktop>

	PostgresQL backups: Suggest a dated name.

	* glom/application.cc: on_menu_developer_export_backup(): Suggest
    a directory name based on the current name and the date/time.
    Also use the directory name for the .glom filename, as we usually would do,
    instead of calling it just backup.glom.

2010-07-07  Murray Cumming  <murrayc@murrayc.com>

	PostgreSQL backups: Archive the directory in a .tar.gz..

	* configure.ac: Check for the tar and gzip executables.
	* glom/application.cc: on_menu_developer_export_backup(): Use tar
    via the command line, to put it all in a .tar.gz, so it is self-contained.

2010-07-07  Murray Cumming  <murrayc@murrayc.com>

	PostgreSQL backups: Use .pgpass.

	* glom/libglom/connectionpool_backends/postgres.[h|cc]:
	* glom/libglom/connectionpool_backends/postgres_self.[h|cc]:
    Move create_text_file() from PostgresSelf to Postgres and add an
    only_for_current_user bool parameter, so we can use it in a
    new save_password_to_pgpass() method.
    save_backup(), convert_backup(): Temporarily store the password in
    ~/.pgpass, so pg_dump and pg_restore actually work.

2010-07-05  Murray Cumming  <murrayc@murrayc.com>

	Show progress in the UI during backup saving and restoring.

	* glom/application.[h|cc]: on_document_load(),
    on_menu_developer_export_backup(): Show a pulsing progress dialog while
    waiting for backup exporting and restoring.
    on_menu_developer_export_backup(): Close the file chooser dialog as soon
    as we stop using it.

2010-07-03  Murray Cumming  <murrayc@murrayc.com>

	Improve backup saving and add backup restoring.

	* glom/libglom/document/document.[h|cc]: Added get/set_is_backup_file(),
	saved in the XML document..
  on_menu_developer_export_backup(): Mark the .glom file as a backup file.
	Rename recreate_database() to recreate_database_from_example().
	on_document_load(): Handle backup .glom files similarly to examples files,
	but using the backup file instead of example data.
	* glom/frame_glom.cc:
	* glom/libglom/connection_pool.[h|cc]:
	* glom/libglom/connectionpool_backends/backend.[h|cc]: startup(): Return a
	StartupErrors enum, to provide more clues, for instance to say that backup
	data was found.
	Add get/set_database_directory_uri(), replacing the one in sqlite.[h|cc] and
	replacing set_self_hosting_data_uri() in postgres_self.[hc|cc].
	save_backup(): Don't take a filepath - use get_database_directory_uri()
	instead.
	Added convert_backup() to restore from a backup.
	* glom/libglom/connectionpool_backends/sqlite.[h|cc]:
	* glom/libglom/connectionpool_backends/postgres.[h|cc]:
	get_path_to_postgres_executable(): Catch exceptions from Glib::build_filename().
	save_backup(): Use --format=c with pg_dump, because the default one can't be
	used with pg_restore.
	Implement convert_backup(), using pg_restore.
	Added get_self_hosting_config_path(), get_self_hosting_data_path() and
	get_self_hosting_backup_path() to avoid copy/pasting magic paths.
	* glom/libglom/connectionpool_backends/postgres_self.[h|cc]:
	Adapted.
	* glom/application.[h|cc]:
	* tests/test_selfhosting_new_empty.cc: Adapted to check the enum result from
	startup().

2010-07-02  Murray Cumming  <murrayc@murrayc.com>

	Document: Avoid a crash when creating the parent directory.

	* glom/libglom/docment/bakery/document.cc: write_to_disk(): Check the
	result of Gio::File::get_parent() for null, because that happens if we
	provide a path instead of a URI.

2010-07-02  Murray Cumming  <murrayc@murrayc.com>

	Save as Example: Reset the old file URI and allow auto-saving again.

	* glom/application.cc: on_menu_file_save_as_example(): reset the old file
	URI and turn auto-saving back on again, because it makes no sense to leave
	the user editing an example document. This is really an export anyway.
	This allows the user to close the window again after saving as an example.

2010-07-01  Murray Cumming  <murrayc@murrayc.com>

	Add Save Backup menu item.

	* glom/libglom/connectionpool_backends/backend.[h|cc]:
	* glom/libglom/connectionpool_backends/posgres.[h|cc]:
	* glom/libglom/connectionpool_backends/sqlite.[h|cc]: Added save_backup()
	virtual method, using pg_dump for PostgreSQL.
	* glom/libglom/connectionpool.[h|cc]: Add save_backup() here, calling the
	backend.
	* glom/application.cc: Add a Developer/Export Backup menu item, to use
	this feature. This also saves the .glom file.

2010-07-01  Murray Cumming  <murrayc@murrayc.com>

	Spawn functions: Catch some exceptions.

	* glom/libglom/spawn_with_feedback.cc():
	execute_command_line(), execute_command_line_and_wait(): Catch exceptions
	so that these functions don't throw, simplifying caller code. For instance,
	a command may be malformed and rejected by the shell.

2010-06-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.[h|cc]: Developer menu: Added an Export Backup menu item.

	* glom/libglom/connectionpool_backends/postgres_central.[h|cc]:
	* glom/libglom/connectionpool_backends/postgres_self.[h|cc]: Moved
    m_host and m_port into the base class:
	* glom/libglom/connectionpool_backends/postgres.[h|cc]:
    because they are used in both derived classes. Therefore remove port
    parameter from attempt_connect().
    Also move get_path_to_postgres_executable() and port_as_string() there
    so they can be used in the base class.

2010-06-29  Murray Cumming  <murrayc@murrayc.com>

	Improve stderr message.

	* glom/libglom/spawn_with_feedback.cc:
    execute_command_line_and_wait_until_second_command_returns_success():
    Correct the error message when a command (such as postgres) fails. As
    noticed in bug #617504.

2010-06-21  Murray Cumming  <murrayc@murrayc.com>

	Privs::get_database_users(): Check for an empty DataModel.

	* glom/libglom/privs.cc: Check that the user (listed in the group) could
	really be found.

2010-06-21  Murray Cumming  <murrayc@murrayc.com>

	Use G_STRFUNC with std::cerr and std::cout.

	* *.h/cc: Replace hard-coded copy/pastes of method names with
	G_STRFUNC, with the help of regexxer.

2010-06-21  Murray Cumming  <murrayc@murrayc.com>

	Adapt use of Gda::ServerOperation.

	* glom/libglom/connectionpool_backends/backend.cc: add_column(),
	* glom/libglom/connectionpool_backends/sqlite.cc:
	add_column_to_server_operation(): set_value_at() is now templated in libgdamm,
	so there is no need for the ugly (somebool ? "TRUE" : "FALSE") code.

2010-06-21  David King  <amigadave@amigadave.com>

	Explicitly link with libdl for Python module loading test

	* Makefile_tests.am: Do not rely on libdl being a dependency of a
	library in LIBGLOM_LIBS, by linking with it explicitly.

2010-06-20  Murray Cumming  <murrayc@murrayc.com>

	libglom: ConnectionPool: Simplify code.

	* glom/libglom/connectionpool_backends/backend.[h|cc]:
	* glom/libglom/connectionpool_backends/postgres.[h|cc]:
	* glom/libglom/connectionpool_backends/postgres_central.[h|cc]:
	* glom/libglom/connectionpool_backends/postgres_self.[h|cc]:
	* glom/libglom/connectionpool_backends/sqlite.[h|cc]: Remove the
	query_execute(), create_server_operation(), perform_server_operation(),
	begin_transaction(), commit_transaction() and rollback_transaction()
	convenience methods, which just hide the no-exceptions ifdefs.
	But gtkmm-3.0 does not support that anyway, so we don't need it.
	Just call the libgdamm methods directly.
	add_column(), drop_column(), change_columns(), connect():
	Remove the error output parameters which were there for the same reason.
	Now they just throw.
	* glom/libglom/connectionpool.[h|cc]: Adapted code, hopefully making it
	simpler.

2010-06-19  Murray Cumming  <murrayc@murrayc.com>

	Use Gnome::Gda::SqlBuilder::Id

	* glom/base_db.cc:
	* glom/libglom/python_embed/py_glom_relatedrecord.cc:
	* glom/libglom/utils.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: Use the typedef
	instead of guint. It is very lengthy, but it is correct.

2010-06-19  Murray Cumming  <murrayc@murrayc.com>

	Remove the avahi-ui dependency because we don't use it any more.

	* configure.ac: Don't check for avahi-ui.
	* glom/application.cc: Don't include avahi-ui.h

	This is lucky, because avahi-ui still has no support for GTK+ 3.

2010-06-15  Murray Cumming  <murrayc@murrayc.com>

	Use SqlBuilder::add_field_id() to avoid ambiguity.

	* glom/base_db.cc:
	* glom/base_db_table_data.cc:
	* glom/libglom/db_utils.cc:
	* glom/libglom/privs.cc:
	* glom/libglom/python_embed/py_glom_record.cc:
	* glom/libglom/python_embed/py_glom_relatedrecord.cc:
	* glom/libglom/utils.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_portal.cc:
	* glom/mode_design/dialog_database_preferences.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/report_builder.cc: Replace use of add_id() with the new add_field_id(),
	which lets us specify the table too.

2010-06-15  Murray Cumming  <murrayc@murrayc.com>

	Adapt to latest libgdamm API.

	* glom/base_db.cc:
	* glom/libglom/db_utils.cc:
	* glom/libglom/python_embed/py_glom_relatedrecord.cc:
	* glom/libglom/utils.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	SqlBuilder::add_field_id() was renamed to add_field_value_id(), though I now
	notice that no value is involved when it is used for SELECT queries.

2010-06-13  Murray Cumming  <murrayc@murrayc.com>

	Remove unnecessary gtk C includes.

	* glom/application.cc:
	* glom/bakery/app_withdoc_gtk.cc:
	* glom/libglom/data_structure/print_layout.cc:
	* glom/libglom/document/document.cc:
	* glom/libglom/gst-package.c:
	* glom/mode_design/comboentry_currency.cc:
	* glom/mode_design/fields/combo_fieldtype.cc:
	* glom/mode_design/layout/combobox_fields.cc:
	* glom/mode_design/layout/combobox_relationship.cc:
	* glom/mode_design/layout/layout_item_dialogs/combo_summarytype.cc:
	* glom/mode_design/layout/layout_item_dialogs/comboentry_borderwidth.cc:
	* glom/mode_design/print_layouts/print_layout_toolbar.cc:
	* glom/mode_design/translation/combobox_locale.cc:
	* glom/utility_widgets/cellrendererlist/cellrendererlist.cc:
	* glom/utility_widgets/combo_textglade.cc:
	* glom/utility_widgets/db_adddel/cellrenderer_buttonimage.cc:
	* glom/utility_widgets/db_adddel/cellrenderer_buttonimage.h:
	* glom/utility_widgets/db_adddel/cellrenderer_buttontext.cc:
	* glom/utility_widgets/db_adddel/cellrenderer_buttontext.h:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/layouttoolbar.cc:
	* glom/xsl_utils.cc: Remove now-unnecessary gtk+/gtk* includes,
	replacing some with use of C++ API. These caused warnings due to GSEAL.

2010-06-13  Murray Cumming  <murrayc@murrayc.com>

	Depend on avahi-ui-3.0 instead of avahi-ui, though it does not officially exist.

	* configure.ac: avahi-ui links to gtk-2.0, so depending on avahi-ui-3.0 is
	better even if it currently only exists via my patch (emailed to d-d-l and
	Lennart because I can't login to avahi.org's trac).

2010-06-13  Murray Cumming  <murrayc@murrayc.com>

	Configure: Remove checks for libegg dependencies, because we don't use it.

	* configure.ac: We don't build libegg code here any more.

2010-06-13  Murray Cumming  <murrayc@murrayc.com>

	Port to gtkmm-3.0

	* configure.ac: Use gtkmm-3.0 instead of gtkmm-2.4
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	Use get_related_action() instead of get_action().
	* glom/utility_widgets/cellrendererlist/cellrendererlist.[h|cc]:
	Simplify the use of the editing_started signal now that the inheritance is
	fixed in gtkmm-3.0.
	* glom/utility_widgets/db_adddel/db_adddel.cc: Use get_first_cell() instead of
	get_first_cell_renderer().
	* glom/utility_widgets/db_adddel/glom_db_treemodel.[h|cc]: iter_is_valid():
	This is no longer virtual, and no longer exists in the base class, so don't
	call the base class implementation.

This is the master branch, for glom 2.0, using gtkmm-3.0.
See also the glom-1-16 branch, which uses gtkmm-2.4.

1.15.1:

2010-05-25  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/utils.cc: build_sql_select_with_where_clause(): Fix a crash.

2010-05-25  Murray Cumming  <murrayc@murrayc.com>

	libglom: Utils: Avoid SQL strings for extra_join for doubly-related records.

	* glom/libglom/data_structure/foundset.[h|cc]: Remove the extra_group_by
	member variable.
	* glom/base_db.cc: set_found_set_where_clause_for_portal(): Do not create
	the SQL GROUP BY string here.
	* glom/libglom/utils.[h|cc]: build_sql_select_with_where_clause(): Remove
	the extra_group_by parameter, instead grouping by all fields if there is
	an extra_join_by, because there is a 1-to-1 correlation.
	Also take extra_join as a Relationship instead of a SQL JOIN string, and
	reuse the existing code to define a join from a relationship.
	* glom/frame_glom.cc:
	* glom/libglom/data_structure/foundset.cc:
	* glom/libglom/data_structure/foundset.h:
	* glom/libglom/utils.cc:
	* glom/libglom/utils.h:
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/print_layout/canvas_print_layout.cc:
	* glom/report_builder.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: Adapt.

2010-05-25  Murray Cumming  <murrayc@murrayc.com>

	Document: get_field_used_in_relationship_to_one(): const correction.

	* glom/libglom/document/document.[h|cc]:
	get_field_used_in_relationship_to_one(): Make the relationship parameter
	const and adapt other code.

2010-05-25  Murray Cumming  <murrayc@murrayc.com>

	libglom: build_sql_select_add_fields_to_get(): Define joins here.

	* glom/libglom/data_structure/layout/usesrelationship.[h|cc]:
	Remove add_sql_join_alias_definition(), moving its code into
	Utils::build_sql_select_add_fields_to_get() because that was the only code
	that called it.
	get/set_relationship(), get/set_related_relationship(): const corrections.
	* several files: Adapt to const corrections.

2010-05-24  Murray Cumming  <murrayc@murrayc.com>

	UsesRelationship: Correct use of SqlBuilder for related relationships.

	* glom/libglom/data_structure/layout/usesrelationship.cc:
	add_sql_join_alias_definition(): Correct the join definition for
	related relationships.

2010-05-21  Murray Cumming  <murrayc@murrayc.com>

	UsesRelationship: Use SqlBuilder::select_add_target() with the join.

	* glom/libglom/data_structure/layout/usesrelationship.cc:
    add_sql_join_alias_definition(): Use select_add_target() instead of
    add_id() with the join's first target, to avoid the warning about an
    unknown ID, though we now get a warning about unimplmented code in libgda,
    which I emailed the gnome-db mailing list about.

2010-05-21  Murray Cumming  <murrayc@murrayc.com>

	Really replace the last non-users string-based SQL query.

	* glom/libglom/db_utils.cc:
    get_database_preferences(): Add a missing call to select_add_target().
    insert_example_data(): Use SqlBuilder.

2010-05-14  Daniel Borgmann  <danielb@openismus.com>

	Fix position of "Records / Found" labels.

	* glom/glom.glade: Make sure "Records: X Found: X" appears in the right
	order.

2010-05-14  Daniel Borgmann  <danielb@openismus.com>

	Fix a crash when using find mode.

	* glom/application.cc: Don't access m_action_mode_data.
	* glom/application.h: Remove m_action_mode_data.

2010-05-12  Daniel Borgmann  <danielb@openismus.com>

	Don't allow deleting placeholder rows.

	* glom/utility_widgets/db_adddel/db_adddel.cc: Don't allow deleting a
	placeholder row (which leads to broken behaviour).

2010-05-20  Murray Cumming  <murrayc@murrayc.com>

    Correct use of SQL functions with SqlBuilder.

	* glom/base_db.cc: count_rows_returned_by(): Use SqlBuilder::add_field_id()
    so the function is really used. And add a target alias. This now works.
	* glom/libglom/python_embed/py_glom_relatedrecord.cc: generic_aggregate()
	* glom/libglom/utils.cc: build_sql_select_add_fields_to_get():
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: get_record_counts():
    Use add_field_id() when adding a function to SqlBuilder, so it is
    really used.

2010-05-19  Murray Cumming  <murrayc@murrayc.com>

	More use of SqlBuilder. Almost finished.

	* glom/base_db.cc:
	* glom/libglom/data_structure/layout/usesrelationship.[h|cc]:
    Change get_sql_join_alias_definition() to get_sql_join_alias_definition().
	* glom/libglom/db_utils.[h|cc]: query_execute_select(): Add an optional
    use_cursor bool to use the non-random database access.
	* glom/libglom/utils.[h|cc]: Change build_sql_select_fields_to_get() to
    build_sql_select_add_fields_to_get().
    build_sql_select_with_where_clause(): Use SqlBuilder.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
    refresh_from_database(): Use DbUtils::query_execute_select(), to simplify
    the code. This is possible now that the function is not in BaseDB.

2010-05-13  Murray Cumming  <murrayc@murrayc.com>

	DbUtils: Catch SqlError exception.

	* glom/libglom/db_utils.cc: query_execute_select(), query_execute_select():
	Catch SqlError too, as this seems to be thrown too.

2010-05-13  Murray Cumming  <murrayc@murrayc.com>

	DbUtils::query_execute(): Remove params parameter.

	* glom/libglom/db_utils.[h|cc]: query_execute(): Remove the unused params
	parameter.

2010-05-13  Murray Cumming  <murrayc@murrayc.com>

	Use SqlBuilder in all possible remaining places.

	* glom/libglom/db_utils.[h|cc]: Renamed query_execute(string) to
	query_execute_string() so we catch uses of it that could use SqlBuilder.

	* glom/base_db.cc: Replaced some INSERT and DELETE string sql queries
	with SqlBuilder.
	* glom/base_db_table_data.cc:
	* glom/libglom/db_utils.cc:
	* glom/libglom/db_utils.h:
	* glom/libglom/privs.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/navigation/box_tables.cc: Adapt.

2010-05-12  Murray Cumming  <murrayc@murrayc.com>

	Remove redundant BaseDb::query_execute*() methods.

	* glom/base_db.[h|cc]: Removed query_execute_select() and query_execute().
	The same methods in DbUtils replace them.
	* glom/libglom/db_utils.[h|cc]: Removed the query_execute_select(string) override.
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_portal.cc:
	* glom/mode_design/dialog_database_preferences.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/navigation/box_tables.cc:
	* glom/print_layout/canvas_print_layout.cc:
	* glom/report_builder.cc:
	* glom/base_db_table_data.cc:
	* glom/frame_glom.cc:
	* glom/libglom/db_utils.cc: Adapted.

2010-05-11  Daniel Borgmann  <danielb@openismus.com>

	Don't add a new row when cancelling a placeholder edit.

	* glom/utility_widgets/db_adddel/db_adddel.cc: Don't add a new row
	if the edited row was a placeholder and no text was entered.

2010-05-10  Daniel Elstner  <danielk@openismus.com>

	Move list of libglom sources to separate file

	* glom/libglom/filelist.am: New Automake include file, defining the
	lists of source and header files for building libglom.
	* Makefile_libglom.am: Include glom/libglom/filelist.am for the lists
	of header and source files, instead of listing them directly.
	* docs/libglom_reference/Makefile.am: Include the list of libglom
	source files from glom/libglom/filelist.am.
	(doc_input): Instead of naming a directory for Doxygen to search,
	explicitly define the Doxygen input to the list of all public libglom
	header files.

2010-05-10  Daniel Elstner  <danielk@openismus.com>

	Update Doxygen configuration for libglom reference

	* docs/libglom_reference/Doxyfile.in: Correct strip prefixes and
	include paths.  Do include the mm-common stylesheet and reference
	the external tag files.  Also clean some cruft.

2010-05-10  Daniel Elstner  <danielk@openismus.com>

	Honor --disable-documentation configure option

	* Makefile.am (gnome_doc_subdirs): Rename from $(doc_subdirs).
	(doc_subdirs): Conditionally define to the subdirectories of the
	reference documentation, depending on whether ENABLE_DOCUMENTATION
	is true.
	(SUBDIRS): Expand $(doc_subdirs) and $(gnome_doc_subdirs).

2010-05-10  Daniel Borgmann  <danielb@openismus.com>

	Make Find mode a toggle and move it to the Edit menu.

	* glom/application.cc: Move Find menu item, remove Mode menu.
	* glom/frame_glom.cc/h: Replace on_menu_Mode_Find()/Data() with
	on_menu_Mode_Toggle().

2010-05-06  Daniel Borgmann  <danielb@openismus.com>

	Save extras alignment improvements.

	* glom/utility_widgets/filechooserdialog_saveextras.cc: Adjust
	alignments and hide extra label if empty (thus not taking up space).

2010-05-12  Murray Cumming  <murrayc@murrayc.com>

    Use Gnome::Gda::SqlExpr for where clauses.

	* glom/libglom/utils.[h|cc]: Added build_simple_where_expression()
    and build_combined_where_expression() to make it easier to work with
    Gnome::Gda::SqlExpr.
    build_sql_select_with_key(): Return a SqlExpr instead of a string.
	* glom/base_db.[h|cc]:
	* glom/base_db_table_data.cc:
	* glom/frame_glom.[h|cc]:
	* glom/libglom/data_structure/foundset.[h|cc]:
	* glom/mode_data/box_data.[h|cc]:
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_portal.cc:
	* glom/mode_data/datawidget/dialog_choose_id..[h|cc]:
	* glom/mode_find/notebook_find.[h|cc]:
	* glom/print_layout/canvas_print_layout.cc:
	* glom/report_builder.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
    Adapt, using SqlExpr instead of a string for where clauses.

2010-05-06  Murray Cumming  <murrayc@murrayc.com>

    Utils::get_choice_values(): Complete the use of SqlBuilder.

	* glom/libglom/utils.cc: get_choice_values(): Use the new return value from
    Builder::select_add_field() for the ORDER BY, so we specify the field table
    too.

2010-05-03  Daniel Borgmann  <danielb@openismus.com>

	Set default icon instead of individual window icons.

	* glom/application.cc: Set default window icon.

	* glom/dialog_existing_or_new.cc:
	* glom/filechooser_export.cc:
	* glom/frame_glom.cc:
	* glom/glade_utils.h:
	* glom/mode_design/script_library/dialog_script_library.cc:
	* glom/mode_design/translation/window_translations.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/utility_widgets/filechooserdialog_saveextras.cc:
	* glom/utils_ui.cc:
	* glom/window_boxholder.cc:

	Don't call set_icon_name() on individual windows.

1.14.2:

2010-05-02  Murray Cumming  <murrayc@murrayc.com>

	Python calculations: Really convert to expected types.

	* glom/libglom/data_structure/glomconversions.cc:
	get_double_for_gda_value_numeric(): Handle all numeric GTypes - not just
	G_TYPE_INT..
	convert_value(): Remove the special case for G_TYPE_INT (now handled in
	get_double_for_gda_value_numeric instead). Make sure that all numeric GTypes
	are converted to GDA_TYPE_NUMERIC, making it easier for callers to check.

2010-05-01  Murray Cumming  <murrayc@murrayc.com>

	Add test of type conversion after python calculations.

	* Makefile_tests.am:
	* tests/test_python_execute_func_change_result_type.cc: Add a test that
	calls a python function that returns a number, for a text field, to
	check that the conversion is done.

2010-05-01  Murray Cumming  <murrayc@murrayc.com>

	Python scripts and calculations: Test buttons now show python errors.

	* glom/python_embed/glom_python.[h|cc]:
	glom_execute_python_function_implementation(),
	glom_evaluate_python_function_implementation(): Add an error_message output
	parameter, to report syntax errors, for instance.
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
  * glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.cc:
  Show the python error, if any, when pressing the Test button.
  * Other files: Adapt, ignoring the error message for now.
  * Makefile_tests.am:
	* tests/test_python_execute_func_bad_syntax.cc: Added a test of the new
	error_message parameter.

2010-05-01  Murray Cumming  <murrayc@murrayc.com>

	Fix a possible crash when showing choices.

	* glom/mode_data/datawidget/combo.cc: set_text(): Don't show a warning if
	"" is not found because it's OK to use that to clear the combo.
	* glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
	set_choices_with_second(): Don't dereference a null smartpointer, avoiding
	a crash with one .glom file that I tried.

2010-05-01  Murray Cumming  <murrayc@murrayc.com>

	Python Glom API documentation improvement.

	* glom/python_embed/python_module/py_glom_module.cc: Turn off auto-writing
	of the Python signatures in the docstrings, because that is a) crappy and
	b) confuses the sphinx autodoc module, which adds an invisible ..function
	reStrucuredText line.
	Add :param:, :type, and :returns: lines with the necessary indenting and
	empty lines needed by that invisible ..function line.

2010-05-01  Murray Cumming  <murrayc@murrayc.com>

	Move some more methods from Base_DB.

	* glom/base_db.[h|cc]: Move show_warning_no_records_found() to utils_ui.[h|cc].
	get_find_where_clause_quick(): Move to utils.[h|cc].
	* glom/frame_glom.cc: Adapted.
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.h:
	* glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.[h|cc]:
		* glom/mode_data/datawidget/dialog_choose_id.[h|cc]: Don't derive from Base_DB
	because that is no longer necessary after adapting.

2010-05-01  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/db_utils.cc: create_database(): Actually use the progress slot.

2010-05-01  Murray Cumming  <murrayc@murrayc.com>

	Move some Base_DB methods to DbUtils and test database recreation.

	* glom/base_db.[h|cc]: Move many db-related methods to
	glom/libglom/db_utils.[h|cpp], taking a Document* paramater where necessary.
	This makes Base_DB slightly less of a mess, makes it clearer when we are
	doing Database IO, and makes it possible to do more testing of non-UI code.
	* Makefile_tests.am:
	* tests/test_selfhost_new_from_example.cc: Use DbUtils to recreate the
	database structure and data from the example file.
	* Many files: Adapted.

This is the master branch. See also the glom-1-14 branch.

2010-05-01  Murray Cumming  <murrayc@murrayc.com>

	Fix document saving (recently broken by me) and add a test for it.

	* glom/libglom/document/bakery/document.cc: write_to_disk():
	Do not fail if the parent directory already exists.
	* Makefile_tests.am:
	* tests/test_document_autosave.cc: Added a test of document saving and
	autosaving.

2010-05-01  Murray Cumming  <murrayc@murrayc.com>

	Move tests out of sub-directories, simplifying the build file.

	* tests/Makefile_test.am:
	* tests/test_document_load.cc:
	* tests/test_selfhosting_new_empty.cc: Move out of the sub-directories,
	because they do not need extra files.

2010-04-27  Murray Cumming  <murrayc@murrayc.com>

	PyGlom: Don't use deprecated boost::python::args.

	* glom/python_embed/python_module/py_glom_module.cc: Use boost::python::arg()
	instead of boost::python::args(), because I noticed that args is deprecated.

2010-04-27  Murray Cumming  <murrayc@murrayc.com>

    More use of SqlBuilder.

	* glom/base_db.[h|cc]: Move sqlbuilder_get_full_query() to Utils so that
    other code can use it.
	* glom/libglom/utils.[h|cc]: get_choice_values(): Use SqlBuilder.

2010-04-27  Murray Cumming  <murrayc@murrayc.com>

    More use of SqlBuilder.

	* glom/report_builder.cc: report_build_groupby(): Use the new
    SqlBuilder::select_group_by() method to replace another SQL string.

1.14.1:

2010-04-27  Murray Cumming  <murrayc@murrayc.com>

	Make sure all glade-instantiated windows have the Glom icon.

	* glom/glade_utils.h: helper_get_glade_widget_derived_with_warning():
    Call set_icon_name() on windows, fixing my regression.

2010-04-27  Murray Cumming  <murrayc@murrayc-desktop>

    Documentation: Added libglom main page. Installed _sources for pyglom.

	* docs/pyglom_reference/Makefile.am: Also install html/_sources, used by search.
	* glom/libglom/init.h: Add a doxygen main page.

2010-04-26  Murray Cumming  <murrayc@murrayc.com>

	Fix the build.

	* Makefile_tests.am: test_selfhosting_new_empty: Link to the Glom sources
	to fix the unresolved link to Glom::Priv's method. We will use more from
	the rest of Glom here too.

2010-04-26  Daniel Elstner  <danielk@openismus.com>

	Use installed mm-common instead of copying it

	* autogen.sh: Run mm-common-prepare to pull in the mm-common include
	files for Automake.
	* docs/libglom_reference/Makefile.am: Set up configuration variables
	and include doc-reference.am instead of copy'n'pasting its content.
	* docs/libglom-reference/doxygen_to_devhelp.xsl: Delete file.  It is
	shipped with mm-common and also part of the glibmm installation.

2010-04-26  Murray Cumming  <murrayc@murrayc.com>

	Reenable test_load_document.

	* Makefile_tests.am: Reenable test_load_document.cc
	* tests/test_load_document/test_load_document.cc: Restore (rewrite) this
	missing file.

2010-04-26  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac: Remove the dist-bzip2 option that was added by mistake.

2010-04-26  Murray Cumming  <murrayc@murrayc.com>

	Self-Hosting test: Check that cleanup works.

	* Makefile_tests.am:
	* glom/libglom/connectionpool.[h|cc]:
	* glom/libglom/connectionpool_backends/backend.[h|cc]:
	* glom/libglom/connectionpool_backends/postgres_self.[h|cc]:
	* tests/test_selfhosting_new_empty/test_selfhosting_new_empty.cc:
	Make cleanup() return a bool, so we can check it, because this fails sometimes.
	Use the standard username and password.

2010-04-26  Daniel Elstner  <danielk@openismus.com>

	Heavily cut the pyglom_reference build magic

	* docs/pyglom_reference/Makefile.am: Drop the custom installation
	rules and use the GNU make $(wildcard) function for both distribution
	and installation of the generated documentation files.  Since the
	files do not undergo translation at install time, it is not necessary
	to integrate the custom installation tool from mm-common.  Pull in a
	missing GNU make function definition for computing the list of files.

2010-04-26  Daniel Elstner  <danielk@openismus.com>

	Temporarily disable test_document_load

	* Makefile_tests.am (check_PROGRAMS), (TESTS): Temporarily remove
	test_document_load, because the corresponding source file is currently
	missing from the repository.

2010-04-26  Daniel Elstner  <danielk@openismus.com>

	Enable maintainer-mode build in autogen.sh

	* autogen.sh: Run configure with --enable-maintainer-mode since the
	AM_MAINTAINER_MODE macro is now used in configure.ac.

2010-04-26  Murray Cumming  <murrayc@murrayc.com>

	Python Glom module: Improved the docstrings, using reStructuredText

	* glom/python_embed/python_module/py_glom_module.cc: Use more
    reStructureText (or as much as sphinx allows us to use in a docstring).
    It's looking quite good.

2010-04-25  Murray Cumming  <murrayc@murrayc.com>

	Simplify test_selfhosting_new_empty.

	* glom/frame_glom.cc: Move setup_connection_pool_from_document() to:
	* glom/libglom/connectionpool.[h|cc]: Added setup_from_document().
	* tests/test_selfhosting_new_empty/test_selfhosting_new_empty.cc: Use the
	new function here, removing code to explicitly set the backend.

2010-04-23  Murray Cumming  <murrayc@murrayc.com>

	Add a document-loading test and self-hosting test

	* glom/Makefile_tests.am: Added the tests.
	* glom/libglom/test_document.cc: Renamed to example_document_load.cc.
	* tests/test_document_load/test_document_load.cc: Added this new test to
	load a document, checking some known parts of its structure.

	* glom/libglom/document/bakery/document.cc: write_to_disk(): Create the
 	parent directory if necessary, instead of failing with a Gio exception.
 	* test/test_selfhosting_newempty/test_selfhosting_newempty.cc: Saves a new
 	file from an example, starts self-hosting of it, and stops self-hosting.
 	This needs work and expansion.

2010-04-20  Murray Cumming  <murrayc@murrayc.com>

	Python Glom module: Improve sphinx-generated documentation.

	* glom/python_embed/python_module/py_glom_module.cc: Added class docstring
	documentation, based on
	http://library.gnome.org/users/glom/unstable/sec-calculated-fields.html
	Use reStructuredText format as expected by sphinx and as apparently now
	use by Python for docstring text.

2010-04-20  Murray Cumming  <murrayc@murrayc.com>

    Fix the python Glom module name.

	* configure.ac: Fix a recent typo to again use the correct underlined
    name for the Python Glom module. This was fatal, in tests too.

2010-04-20  David King  <davidk@openismus.com>

	Relax the autoconf requirement

	* configure.ac: Relax the autoconf requirement to 2.63, as 2.65 is not
	required. Something older than 2.63 may even be acceptable, but I do
	not have an older version to test.

2010-04-20  David King  <davidk@openismus.com>

	Fix the sphinx-build configure check

	* configure.ac: Abort configure with an error if sphinx-build could
	not be found and --enable-documentation was passed to configure.

2010-04-20  Murray Cumming  <murrayc@murrayc.com>

	Glom Python API reference: Failed attempt to dist the html files.

	* docs/pyglom_reference/Makefile.am: Copied some stuff from the mm-common
    files, but it doesn't work yet.

2010-04-20  Murray Cumming  <murrayc@murrayc.com>

	Glom Python API reference: Install the html generated by sphinx.

	* docs/pyglom_reference/Makefile.am: Add install rules based on awful hacked
    copies of the mm-common stuff. I believe this could be far simpler.

2010-04-20  Murray Cumming  <murrayc@murrayc.com>

	Solve the long-paths problem with the doxygen-generated html files.

	* configure.ac: Change the AM_INIT_AUTOMAKE() call to be like gtkmm,
	allowing the tarball to contain long paths - needed for the libglom html
	documentation.

2010-04-19  Murray Cumming  <murrayc@murrayc.com>

	More improved use of sphinx.

	* docs/pyglom_reference/conf.py.in: Do not generate the module index page
	because we have only one module.
	* docs/pyglom_reference/index.rst.in: Add back the link to the general index,
	which seems to actually be generated.

2010-04-19  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac: Ran autoupdate to remove use of deprecated macros.

2010-04-19  Murray Cumming  <murrayc@murrayc.com>

    Avoid the requirement for sphinx-build if documentation is disabled.

	* configure.ac: Use AC_PATH_PROG() instead of AC_CHECK_PROG() so we get the
    path to use. Only check if --enable-documentation was used.
	* docs/pyglom_reference/Makefile.am: Only build the html if
    --enable-documentation was used (not yet built by default anyway).

2010-04-19  Murray Cumming  <murrayc@murrayc.com>

    Improved use of sphinx.

	* configure.ac: AC_SUBST() GLOM_ABI_VERSION_UNDERLINED so we can use it
    in docs/pyglom_reference/Makefile.am. Mention these files that will be
    genereated form .in files with the ABI and version numbers substituted.
    Check for sphinx-build, though this should only matter when building docs.
	* docs/pyglom_reference/conf.py.in:
	* docs/pyglom_reference/index.rst.in: Use ABI and version variables instead
    of hard-coding. Add short introductory text with links.

2010-04-16  Murray Cumming  <murrayc@murrayc.com>

    Try to use sphinx for pyglom API documentation.

    * docs/pyglom_reference/Makefile.an:
	* docs/pyglom_reference/sphinx_sources/:
    An attempt to use sphinx instead of pydoc. sphinx is used by Python itself.
    I need to change my Python setup (not have Python in jhbuild) to test
    this properly, because I can't easily build pydoctor in my separate prefix.

2010-04-16  Murray Cumming  <murrayc@murrayc.com>

	Python: Really show warnings when modules can't be imported.

	* glom/python_embed/glom_python.cc: Add and use import_module() to make sure
	that we catch exceptions from boost::python::import(), so show the intended
	warnings instead of just crashing with an uncaught exception.
	Also correct the checks for empty/none boost::python::objects for imported
	modules. A simple ! is not what it seems.

2010-04-16  Murray Cumming  <murrayc@murrayc.com>

    Use mm-common for optional compiler warnings and to build libglom docs.

    * configure.ac: Use mm-common, removing macros/dk-warn.m4.
	* docs/libglom_reference/Doxyfile.in:
	* docs/libglom_reference/doxygen_to_devhelp.xsl:
	* docs/libglom_reference/Makefile.am: Generate libglom documentation
    properly usign build stuff copied from gtkmm.
	* docs/pyglom_reference/Makefile.am: A silly little initial attempt to
    have generated html for the glom python module, using pydoc.

2010-04-15  Murray Cumming  <murrayc@murrayc.com>

  Python field calculation: Fix a crash.

	* glom/libglom/python_embed/pygdavalue_conversions.cc:
	glom_pygda_value_as_boost_pyobject(): Add a PyDateTimeAPI call, as already
	done in glom_pygda_value_from_pyobject(), to prevent a crash (and valgrind
	warning about 0 dereference) when using this (silly, wrong) field calculation,
	though I can't reproduce it in a unit test:
	import datetime
  return (datetime.date.today() - record["date_of_birth"]).days / 365

2010-04-15  Murray Cumming  <murrayc@murrayc.com>

  Python module: Improve API documentation.

	* glom/python_embed/python_module/py_glom_module.cc: Added some options and
	text for docstrings, to improve the pydoc -w output.

1.14.0:

2010-04-14  Murray Cumming  <murrayc@murrayc.com>

	Fall back to the uninstalled .glade file to fix make distcheck.

	* Makefile.am: Define GLOM_PKGDATADIR_NOTINSTALLED as well as the existing
    GLOM_PKGDATADIR.
	* glom/glade_utils.h: get_glade_file_path(): Fall back to the uninstalled
    glade file if the installed one can't be found. This fixes make distcheck.

2010-04-14  Murray Cumming  <murrayc@murrayc.com>

    Glade utils: More error-checking.

	* glom/glade_utils.h:  helper_get_glade_widget_derived_with_warning():
    Catch the other 2 exception types that we now know that
    Gtk::Builder::create*() can throw.
	* glom/frame_glom.cc: create_database(): Use get_glade_widget_with_warning()
    to simplify the code. Our utility functions are now used everywhere.

2010-04-13  Murray Cumming  <murrayc@murrayc.com>

  Remove useless translatable strings.

	* glom/glom_developer.glade: Remove placeholder text from labels that will
	actually have their text set at runtime, so there's need actual need to have
	it in the glade file. They were even marked as translatable.
	Bug #615656 (Gianluca Ferri)

2010-04-12  Murray Cumming  <murrayc@murrayc.com>

  Python calculations and scripts: Fix regression in use of date and time fields.

	* glom/libglom/python_embed/py_glom_record.[h|cc]:
	Change PyGlomRecord_SetFields() to a member set_fields() method, and making
	more of the class private, finishing our conversion to boost::python.
	* glom/libglom/python_embed/py_glom_related.[h|cc]:
	Change PyGlomRelated_SetRelationships() to a set_relationships methods.
	* glom/libglom/python_embed/py_glom_relatedrecord.[h|cc]:
	Changed PyGlomRelatedRecord_SetRelationship() to a set_relationship() method.

	* glom/python_embed/glom_python.cc: glom_pygda_value_from_pyobject():
  Handle date, time, timestamp, geometric point values, whose code had been
  commented out since the port to boost::python.
	This fixes the test added in the previous commit, so glom calculations and
	scripts can again (it broke in unstable Glom 1.13) use date and time field
	values from the record.

2010-04-12  Murray Cumming  <murrayc@murrayc.com>

  Added test showing problem with date fields in python calculations.

	* tests/test_python_execute_func_date.cc: Added a test of dates as input
	values for record fields. This currently fails with this error from python,
	so I need to fix it in Glom:
	AttributeError: 'NoneType' object has no attribute 'year'

2010-04-12  Daniel Elstner  <danielk@openismus.com>

	Further clean up AX_BOOST_PYTHON_MURRAYC

	* macros/ax_boost_python_murrayc.m4: Simplify the logic of the checks
	and clean up the Bourne shell code.  Also, abort with a fatal error
	if the boost::python headers or library could not be found.

2010-04-12  Murray Cumming  <murrayc@murrayc.com>

    Slight AX_BOOST_PYTHON_MURRAYC() cleanup.

	* macros/ax_boost_python_murrayc.m4: Add necessary quotes, avoid ==,
    and use AC_LANG_PUSH/AC_LANG_POP instead of deprecated
    AC_LANG_SAVE/AC_LANG_CPLUSPLUS/AC_LANG_RESTORE. Noticed by Daniel Elstner,
    though we don't know if this solves any known problems yet.

2010-04-12  Murray Cumming  <murrayc@murrayc.com>

	Provide context for translations.

	* glom/application.cc:
	* glom/frame_glom.cc:
	* glom/mode_design/users/dialog_users_list.cc: Use the new (in glib 2.16)
    C_() macro to provide context for bare uses of "User" and "Developer",
    providing some explanation and allowing translators to use translate them
    differently, as may be required by some languages.
    Fixes bug #606931 (Urmas, André Klapper)

2010-04-12  Murray Cumming  <murrayc@murrayc.com>

  Fix glade loading.

	* glom/glade_utils.h: get_glade_widget_derived_with_warning(): Fix silly
	but fatal typo.

2010-04-11  Murray Cumming  <murrayc@murrayc.com>

  Simplify setting of the icon for windows.

	* glom/glade_utils.h: get_glade_widget_derived_with_warning():
	Call set_icon_name() on windows.
	* Several *.cc files: Don't bother calling set_icon_name() after calling
	get_glade_widget_derived_with_warning().

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

  dialog_run_with_help(): Get the help ID from the class.

  * glom/utils_ui.h: dialog_run_with_help(): Add a templated version that uses
  the static glade_id member, to avoid repeating this in the source code.
	* Several .cc files: Remove the ID parameter from most uses of
	dialog_run_with_help().

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

  Glade instantiation: Simplify, make more robust, and test.

  * glom/glade_utils.h: get_glade_widget_derived_with_warning(),
  get_glade_developer_widget_derived_with_warning(): Add method overloads that
  don't take an ID. These require the class to have a static glade_id member.
  This associates the IDs with the class, instead of being in other files,
  to avoid duplication and to avoid using the wrong ones.
  * Many files: Use these new methods, to avoid mentioning glade IDs.
  * tests/test_glade_derived_instantiation.cc: Try to instantiate all the known
  derived glade dialogs.

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

  Glade files: Move a client-only dialog to the correct file.

	* glom/glom_developer.glade:
	* glom/glom.glade: Move dialog_choose_date to glom.glade.
	* glom/mode_data/datawidget/datawidget.cc: on_button_choose_date():
	Adapted.

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

  Application: Forget the global instance when it has been deleted.

  * glom/application.cc: Destructor: reset the static instance to 0,
  to avoid anything from retrieving the pointer to the deleted object.

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

  Remove some unused code.

	* glom/base_db.cc: offer_item_formatting(): Remove a useless use of
	Gtk::Builder.

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

  Notebook properties dialog: Fix a probable crash.

	* glom/base_db.cc: :offer_notebook(): Fix a typo in the glade ID.
	I'm working on code to prevent these kinds of errors, to apply when we branch.

2010-04-09  Daniel Borgmann  <danielb@openismus.com>

	Update NEWS file.

	* NEWS: Add entry.

2010-04-09  Daniel Borgmann  <danielb@openismus.com>

	Clean up Add Related Table dialog.

	* glom/glom_developer.glade: (dialog_add_related_table) Remove frame,
	fix spacings, align form elements in table.
	* glom/mode_design/dialog_add_related_table.cc: Add window icon.

2010-04-09  Daniel Borgmann  <danielb@openismus.com>

	Update translation dialogs.

	* glom/application.cc:
	* glom/glom_developer.glade:
	* glom/mode_design/script_library/dialog_script_library.cc:
	* glom/mode_design/translation/window_translations.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	Translation dialog updates, set missing window icons.

2010-04-09  Murray Cumming  <murrayc@murrayc.com>

  Reports: Fix a crash when opening the secondary fields dialog.

  * glom/glom_developer.glade: dialog_groupby_secondary_fields: Rename a
  button to match what the class's constructor expects.

2010-04-09  Armin Burgmeier  <armin@arbur.net>

	* win32/build-installer:
	* win32/glom.iss.in: Update for Glom 1.14.

2010-04-09  Armin Burgmeier  <armin@arbur.net>

	* Makefile.am: Do not install .desktop file on Windows.

2010-04-09  Daniel Borgmann  <danielb@openismus.com>

	Update dialogs.

	* glom/frame_glom.cc: Set window icons.
	* glom/glom_developer.glade: Update user dialogs.
	* glom/mode_design/layout/dialog_layout.cc: Set window icons.
	* glom/mode_design/users/dialog_groups_list.cc: Set window icons.

2010-04-08  Daniel Borgmann  <danielb@openismus.com>

	Use buttonbox for details view.

	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	Use HButtonBox instead of HBox.

2010-04-08  Murray Cumming  <murrayc@murrayc.com>

  ImageGlom: Move scale_keeping_ratio() somewhere more sensible.

	* glom/utility_widgets/imageglom.[h|cc]: Move scale_keeping_ratio() to
	glom/utils_ui.[h]cc] as Utils::image_scale_keeping_ratio().
	* glom/utility_widgets/canvas/canvas_image_movable.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/flowtable_dnd.cc: Adapted.

2010-04-08  Murray Cumming  <murrayc@murrayc.com>

  glom/mode_data/datawidget/: Clean up classes, putting them in a namespace.

  * glom/mode_data/datawidget/: Removed Glom suffixes from class names
  and filenames, and put classes in a DataWidgetChildren sub-namespace,
  to make it clearer where we occasionally use these outside of DataWidget.

2010-04-08  Murray Cumming  <murrayc@murrayc.com>

  Cleaned glom/utility_widgets/ a little.

  * glom/utility_widgets/datawidget.[h|cc]: Moved to glom/mode_data/datawidget/
  because it is only used by the data-mode flowtable.
	* glom/utility_widgets/buttonglom.[h|cc]
	* glom/utility_widgets/checkglom.[h|cc]
	* glom/utility_widgets/combo_as_radio_buttons.[h|cc]
	* glom/utility_widgets/combochoices.[h|cc]
	* glom/utility_widgets/combochoiceswithtreemodel.[h|cc]
	* glom/utility_widgets/comboentryglom.c[h|cc]
	* glom/utility_widgets/comboglom.[h|cc]
	* glom/utility_widgets/dialog_choose_date.[h|cc]
	* glom/utility_widgets/dialog_choose_id.[h|cc]
	* glom/utility_widgets/entryglom.[h|cc]
	* glom/utility_widgets/labelglom.[h|cc]
	* glom/utility_widgets/textviewglom.[h|cc]
	* glom/utility_widgets/placeholder-glom.[h|cc]: Also move these to
  glom/mode_data/datawidget because they are only used by DataWidget.
	* glom/utility_widgets/alignment_justified.[h|cc]:
	* glom/utility_widgets/table_columns.[h|cc]: Deleted these unused classes.
  * Makefile_glom.am: Adapted.

2010-04-08  Daniel Borgmann  <danielb@openismus.com>

	Use button box for adddel widgets.

	* glom/utility_widgets/adddel/adddel_withbuttons.cc:
	* glom/utility_widgets/adddel/adddel_withbuttons.h:
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.cc:
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.h:
	Use ButtonBox instead of HBox.

2010-04-08  Daniel Borgmann  <danielb@openismus.com>

	Use button box for listview buttons.

	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.cc:
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.h:
	Use ButtonBox instead of HBox to make buttons homogenous. Also change
	button order to match order used everywhere else (Add/Delete/Open).

2010-04-08  Daniel Borgmann  <danielb@openismus.com>

	Text and Image object Dialog adjustments.

	* glom/glom_developer.glade: Various dialog layout fixes.
	* glom/mode_design/layout/layout_item_dialogs/dialog_imageobject.cc:
	* glom/mode_design/layout/layout_item_dialogs/dialog_imageobject.h:
	* glom/mode_design/layout/layout_item_dialogs/dialog_textobject.cc:
	* glom/mode_design/layout/layout_item_dialogs/dialog_textobject.h:
	Update box variable name and add window icons.

2010-04-08  David King  <davidk@openismus.com>

	Update copyright information in about dialog

	* glom/application.cc: Update copyright year in about dialog.

2010-04-07  Murray Cumming  <murrayc@murrayc.com>

    Recent Files: Make sure that we remember these for saved-from-example files.

	* glom/application.cc: on_document_load(): Add an extra call to
    document_history_add() after successfully saving from an example.

2010-04-07  Daniel Borgmann  <danielb@openismus.com>

	Find bar adjustments.

	* glom/frame_glom.cc: Rename Quick Find to Quick Search and add
	mneomnic.
	* glom/glom.glade: Update find id dialog and remove frame.
	* glom/utility_widgets/datawidget.cc: Add window icon to find id
	dialog.

2010-04-07  David King  <davidk@openismus.com>

	Fix boost:python m4 macro with -Wl,--as-needed

	* macros/ax_boost_python_murrayc.m4: Specify libraries in LIBS, not
	LDFLAGS. See http://www.gentoo.org/proj/en/qa/asneeded.xml

2010-04-06  Daniel Borgmann  <danielb@openismus.com>

	Dialog adjustments.

	* glom/glom.glade: Spacing adjustments to make dialogs more HIG
	compliant.

2010-04-06  Daniel Borgmann  <danielb@openismus.com>

	Initial Password Dialog adjustments.

	* glom/glom_developer.glade: Initial Password Dialog tweaks.
	* glom/mode_design/dialog_initial_password.cc: Set window icon.

2010-04-06  Daniel Borgmann  <danielb@openismus.com>

	CSV Import Dialog adjustments.

	* glom/glom.glade: Import dialog tweaks.
	* glom/import_csv/dialog_import_csv.cc: Add window icon, change title
	order.

2010-04-06  Daniel Borgmann  <danielb@openismus.com>

	Dialog fixes.

	* glom/frame_glom.cc: Add window icons and fix capitalisation of
	primary texts (dialog text uses sentence capitalisation).

2010-04-06  Daniel Borgmann  <danielb@openismus.com>

	Set Progress Dialog default size.

	* glom/glom.glade: Set a reasonable default size for the progress
	dialog, that allows to read the title at least.

2010-04-06  Daniel Borgmann  <danielb@openismus.com>

	Select Field Dialog adjustments.

	* glom/glom_developer.glade: Spacing and mnemonic adjustments/fixes,
	remove frame label.
	* glom/mode_design/layout/dialog_choose_field.cc: Add window icon.

2010-04-06  Daniel Borgmann  <danielb@openismus.com>

	Progress dialog adjustments.

	* glom/dialog_progress_creating.cc: Add window icon.
	* glom/glom.glade: Center dialog on parent window.

2010-03-31  Daniel Borgmann  <danielb@openismus.com>

	Don't show error icon for empty recent documents.

	* glom/dialog_existing_or_new.cc: Also don't show error icon for
	empty recent documents.

2010-03-31  Daniel Borgmann  <danielb@openismus.com>

	Welcome Screen adjustments.

	* glom/dialog_existing_or_new.cc: Fix typo and use of properties, don't
	show error icon when no network sessions are available.
	* glom/glom.glade: Hide label and icon, spacing adjustments.

2010-03-31  Daniel Borgmann  <danielb@openismus.com>

	Improve application title.

	* glom/application.cc: Don't show colon in application title when
	table name is empty.

2010-03-31  Daniel Borgmann  <danielb@openismus.com>

	Remove unneded alert dialogs / TODO items.

	* glom/frame_glom.cc: No table warnings are not needed anymore
	for menu items, so remove them.

2010-03-31  Daniel Borgmann  <danielb@openismus.com>

	Set window icon for OK dialogs.

	* glom/utils_ui.cc: show_ok_dialog: Set window icon.

2010-03-30  Daniel Borgmann  <danielb@openismus.com>

	Set window icon for welcome screen.

	* glom/dialog_existing_or_new.cc: Set window icon.

2010-03-30  Daniel Borgmann  <danielb@openismus.com>

	Disable some menu items when no table is loaded.

	* glom/application.cc: update_table_sensitive_ui: Function to set
	sensitivity of menu items depending on whether a table is loaded.
	init_menus: Add table sensitive menu items to a list.
	* glom/application.h: Add list to hold table sensitive menu items.
	* glom/frame_glom.cc: Call update_table_sensitive_ui when needed.

2010-03-30  Murray Cumming  <murrayc@murrayc.com>

	Glade instantation test: Make it exit on failure.

	* tests/test_glade_toplevels_instantiation.sh: Use || exit 1, as in
    David's commit to the other files.

2010-03-30  David King  <davidk@openismus.com>

	Make DTD validation tests exit on failure

	* tests/test_dtd_file_validation.sh:
	* tests/test_glade_file_validation.sh: Append ‘ || exit 1’ to the
	xmllint call, to ensure that a validation failure leads to a failing
	test.

2010-03-30  Daniel Borgmann  <danielb@openismus.com>

	Capitalisation fixes.

	* glom/application.cc: Use lower case for short prepositions.

2010-03-30  Daniel Borgmann  <danielb@openismus.com>

	Fix mnemonics.

	* glom/application.cc: Add missing mnemonics and change double
	mnemonics.

2010-03-30  Murray Cumming  <murrayc@murrayc.com>

    Update the document DTD, to fix tests.

	* glom/glom_document.dtd: data_layout_button: Allow this to have a
    formatting child node, because we now allow this in the UI and save this.

2010-03-30  Murray Cumming  <murrayc@murrayc.com>

    Add a test to check instantiation of glade widgets.

    * Makefile_tests.am
	* tests/glade_toplevels_instantiation.cc: Added this code for an
    executable that will try to instantiate all GtkWindow and GtkDialog
    objects in a specified .glade file. It also checks that they are not
    visible by default.
	* tests/test_glade_toplevels_instantiation.sh: Added a tests script,
    run during make check, to run this executable on all our .glade files.

    * glom/glom.glade, glom_developer.glom: Fix small problems found by the
    test, removing an empty textbuffer top-level object and making all
    top-level objects non-visible by default.

2010-03-29  Daniel Borgmann  <danielb@openismus.com>

	Relationships Overview dialog adjustments.

	* glom/glom_developer.glade: Remove frame and adjust spacings for
	Relationships Overview dialog.

2010-03-29  Daniel Borgmann  <danielb@openismus.com>

	Correct mnemonic widgets.

	* glom/glom_developer.glade: Actually set the correct mnemonic
	widgets for Report Layout input labels.

2010-03-29  Daniel Borgmann  <danielb@openismus.com>

	Remove boldness from input labels.

	* glom/glom_developer.glade: Remove bold markup for Report Layout
	input labels.

2010-03-29  Daniel Borgmann  <danielb@openismus.com>

	Report Layout dialog adjustments.

	* glom/frame_glom.cc: Set Report Layout dialog window icon.
	* glom/glom_developer.glade: Report Layout dialog spacing
	adjustments and mnemonics fix.

2010-03-29  Daniel Borgmann  <danielb@openismus.com>

	Reports dialog adjustments.

	* glom/frame_glom.cc: Set Reports dialog window title.
	* glom/glom_developer.glade: Remove frame from Reports dialog.

2010-03-29  Daniel Borgmann  <danielb@openismus.com>

	Remove frame label on Fields dialog.

	* glom/box_reports.cc: Remove references to frame label.
	* glom/box_reports.h: Remove frame label member.
	* glom/frame_glom.cc: Set window icon for Fields and Relationships
	dialogs.
	* glom/glom_developer.glade: Adjust Fields and Relationships dialogs.
	* glom/mode_design/dialog_design.cc: Remove references to frame label.
	* glom/mode_design/dialog_design.h: Remove frame label member.
	* glom/mode_design/dialog_fields.cc: Remove references to frame label.
	* glom/mode_design/dialog_relationships.cc: Remove references to frame
	label.
	* glom/mode_design/print_layouts/box_print_layouts.cc: Remove
	references to frame label.
	* glom/mode_design/print_layouts/box_print_layouts.h: Remove frame
	label member.
	* glom/navigation/box_tables.cc: Remove references to frame label.

2010-03-29  Murray Cumming  <murrayc@murrayc.com>

    Avoid Operation Not Supported warnings at startup.

	* glom/application.cc:
	* glom/bakery/app_withdoc.cc:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/connectionpool_backends/sqlite.cc:
	* glom/libglom/document/bakery/document.cc:
	* glom/libglom/utils.cc:
	* glom/xsl_utils.cc: Avoid creating a Gio::File() from an empty URI,
    avoiding useless stdout warnings at startup.

2010-03-29  Daniel Borgmann  <danielb@openismus.com>

	Edit Field Definition Dialog adjustments.

	* glom/glom_developer.glade: Update alignment and spacings, add mnemonics.
	* glom/mode_design/fields/box_db_table_definition.cc: Set window icon.

2010-03-29  Daniel Borgmann  <danielb@openismus.com>

	Export Format dialog adjustments.

	* glom/filechooser_export.cc: Set icon name for export format dialog.
	* glom/glom_developer.glade: (Export Format) Remove frame, move Add
	button to the start.
	* glom/mode_design/layout/dialog_layout_export.cc: Rename treeview
	header to "Fields" to replace the label.

2010-03-29  Daniel Borgmann  <danielb@openismus.com>

	Print Layouts dialog adjustments.

	* glom/frame_glom.cc: Set title and transient for Print Layouts dialog.
	* glom/glom_developer.glade: Remove the frame from Print Layouts dialog.

2010-03-26  Murray Cumming  <murrayc@murraycs.com>

	Say when a chosen file doen't exist, and remove it from the history.

	* glom/libglom/document/bakery/document.[h|cc]: Add an enum for
    standard failure_codes, including a last enum values that custom codes
    should start after.
    read_from_disk(): Set a failure_code output variable here too, so we
    can detect non-existant files.
	* glom/libglom/document/document.h: Start the custom code after the last
    standard one.
	* glom/bakery/app_withdoc.cc: open_document(): Remove non-existant
    files from the recent files history.
	* glom/application.cc: ui_warning_load_failed(): Say if the file could not
    be found, instead of being mysterious. This happens for me often for
    recent files that I have deleted.

2010-03-26  Daniel Borgmann  <danielb@openismus.com>

	Adjust file chooser dialogs.

	* glom/dialog_existing_or_new.cc: Adjust title of file open dialog,
	set glom icon.
	* glom/utility_widgets/filechooserdialog_saveextras.cc: Set glom icon.

2010-03-26  Daniel Borgmann  <danielb@openismus.com>

	Fix filechooser title label.

	* glom/utility_widgets/filechooserdialog_saveextras.cc: Add colon and
	mnemonic to "Title" label.

2010-03-26  Daniel Borgmann  <danielb@openismus.com>

	Fix column spacing in connection dialog.

	* glom/glom.glade: Set column spacing in connection dialog to 12px.

2010-03-26  Daniel Borgmann  <danielb@openismus.com>

	Connection dialog adjustments.

	* glom/dialog_connection.cc: Add glom icon and remove maemo title hack
	as primary text does not exist anymore.
	* glom/glom.glade: Remove double title from connection dialog
	and make it HIG/GNOME conform.

2010-03-26  Daniel Borgmann  <danielb@openismus.com>

	Export dialog adjustments.

	* glom/filechooser_export.cc: Add glom icon and set mnemonic for Export
	button.

2010-03-26  Daniel Borgmann  <danielb@openismus.com>

	Adjustments for Import dialog.

	* glom/frame_glom.cc: Set window icon and update title text.

2010-03-26  Daniel Borgmann  <danielb@openismus.com>

	Adjustments for Tables dialog.

	* glom/application.cc: Use gtkmm API to set document icon.
	* glom/frame_glom.cc: Change Tables dialog title to "Edit Tables" to
	match the command name.
	* glom/glom.glade: Remove the frame.
	* glom/navigation/box_tables.cc: Change column name from Tables to Table.
	* glom/navigation/box_tables.h: Remove frame member.
	* glom/window_boxholder.cc: Set icon and default position to center on
	parent.

2010-03-25  Murray Cumming  <murrayc@murrayc.com>

    Glade files: Remove adjustment objects, simplifying window instantiation.

	* glom/glom_developer.glade: Remove useless (default, empty) adjustment
    objects, so we can load the windows with GtkBuilder without specifying
    them. Recent versions of Glade no longer seem to create these when they
    would just have default values.
	* glom/base_db.cc:
	* glom/frame_glom.cc:
	* glom/glom.glade:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.c
	c:
	* glom/mode_design/layout/layout_item_dialogs/dialog_formatting.cc:
	* glom/mode_design/print_layouts/dialog_text_formatting.cc:
    Don't provide the id of the adjustment, removing the silly workaround.

2010-03-24  Daniel Borgmann  <danielb@openismus.com>

	Don't show error dialog when user cancels template creation.

	* glom/application.cc: Display error message when trying to create
	a document from template in client-only-mode.
	* glom/bakery/app_withdoc.cc: Don't display error message if the
	document is rejected, let the application decide about it.

1.13.9:

2010-03-23  Murray Cumming  <murrayc@murrayc.com>

    Refactored combo classes.

	* glom/utility_widgets/comboglomchoicesbase.[h|cc]:
    Split into combochoices.[h|cc] and combochoiceswithtreemodel.[h|cc] so
    that combo_as_radio_buttons.[h|cc] doesn't need to have an unused treemodel.

2010-03-23  Murray Cumming  <murrayc@murrayc.com>

    Formatting: Choices: Add a Display as radio buttons option.

	* glom/glom_developer.glade: formatting: choices: Add a Show As Radio
    Buttons checkbox.
	* glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
    set/get_choices_restricted(): Add a show_as_radio_buttons output parameter.
	* glom/libglom/document/document.cc:
    load_after_layout_item_formatting(), save_after_layout_item_formatting():
    load and save the new formatting detail.
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.[h|cc]:
    Handle the new checkbox and make sure that it is only sensitive when
    the choices are restricted, because radio buttons provide no way to enter
    freeform data.
	* glom/utility_widgets/comboglomchoicesbase.h: Make set_choices() and
    set_choices_with_second() virtual.
    * glom/utility_widgets/combo_as_radio_buttons.[h|cc]: A new widget that is
    a vbbox of radio buttons, with a combo-like API.
	* Makefile_glom.am: Mention the new files.
	* glom/utility_widgets/datawidget.cc: Refactor some repeated code into
    create_combo_widget_for_field() and create the radiobuttons widget when
    necessary.

2010-03-22  Murray Cumming  <murrayc@murrayc.com>

    Fix the distcheck. Don't use deprecated gtkmm API.

	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable_dnd.cc:
	* glom/utility_widgets/placeholder-glom.cc: Adapt to deprecated gtkmm API.
    Use get_has_window() and set_has_window() instead of get_flags(),
    unset_flags() and set_flags().

2010-03-21  Murray Cumming  <murrayc@murrayc.com>

    Small fixes to glade file.

	* glom/glom_developer.glade: Add some still-missing vbox orientation=vertical
	lines.

2010-03-19  Daniel Borgmann <danielb@openismus.com>

	* configure.ac: Make Glom build with autoconf 2.65.
	Patch from Fryderyk Dziarmagowski in GNOME bug #613179.

2010-03-16  David King  <davidk@openismus.com>

	Fix GtkVBox orientation in GtkBuilder files

	* glom/glom.glade:
	* glom/glom_developer.glade: Manually set the orientation of GtkVBox
	objects specified in the GtkBuilder files to ‘vertical’. See GNOME bug
	#587256 for details of the issue with Glade.

2010-03-16  Murray Cumming  <murrayc@murrayc.com>

  Tests: Check that the .glade files are valid XML.

  * Makefile_tests.am:
	* tests/test_glade_file_validation.sh: Add this text that the .glade files
	are basically valid XML. It would be nice to have a Glade DTD to validate
	them against too.
	We should also check that each top-level widget can be instantiated by
	GtkBuilder.

2010-03-16  Murray Cumming  <murrayc@murrayc.com>

  Add a startup script feature.

  * libglom/document/document.cc: Added get/set_startup_script().
  load_after(), save_before(): Load and save the startup script.

  * glom_developer.glade:
  * glom/mode_design/dialog_database_preferences.[h|cc]: Add a startup script tab.

  * libglom/python_embed/py_glom_ui.h: Move PythonUICallbacks into its own
  py_glom_ui_callbacks.h header.
  * glom/python_embed/python_ui_callbacks.[h|cc]: Add this derived callbacks
  class that has handlers that call methods in the application.
  * glom/mode_data/box_data.cc: execute_button_script(): Use the new callbacks
  class instead of using member methods here.
  * glom/application.cc: on_document_load(): Run the startup script, if any,
  after loading the document, using the new derived callbacks class.

  * Makefile_glom.am, Makefile_libglom.am: Mention the new files.

2010-03-13  David King  <davidk@openismus.com>

	Depend on gtkmm >= 2.19.2, fixing GNOME bug #612796

	* configure.ac: Bump glom gtkmm version requirement to >= 2.19.2 for
	Gtk::ToolPalette. Fixes GNOME bug #612796.

2010-03-13  David King  <davidk@openismus.com>

	Depend on libxml++ >= 2.23.1, fixing GNOME bug#612794

	* configure.ac: Bump libglom libxml++ version requirement to >= 2.23.1
	for xmlpp::Element::add_child_text_before(). Fixes GNOME bug #612794.

2010-03-09  Murray Cumming  <murrayc@murrayc.com>

    Initial Dialog: Do not crash sometimes if cancelling the file chooser.

	* glom/application.cc: offer_new_or_existing(): Show the dialog again if
    we get a 0 response, because we cannot (yet) prevent the dialog from
    doing this when the child file chooser dialog is cancelled. Fixes a crash
    if pressing the Select button instead of double-clicking on an item.
    Bug #612303 (David King)

1.13.8:

2010-03-08  Murray Cumming  <murrayc@murrayc.com>

    Slight update of Small Business example.

	* examples/example_smallbusiness.glom: Resave, with a new record with
    a picture of a polar bear for use on the www.glom.org website.
    The picture is from http://www.flickr.com/photos/mape_s/350700095/
    (Creative-Commons licensed, by Marieke IJsendoorn-Kuijpers)

2010-03-08  Murray Cumming  <murrayc@murrayc.com>

    Python button scripts: Rename print() to print_layout() and add start_new_record().

	* glom/application.[h|cc]
	* glom/frame_glom.[h|cc]
	* glom/libglom/python_embed/py_glom_ui.[h|cc]
	* glom/mode_data/box_data.[h|cc]
	* glom/mode_data/box_data_details.[h|cc]
	* glom/mode_data/notebook_data.[h|cc]
	* glom/python_embed/python_module/py_glom_module.cc:
	* tests/test_python_execute_script.cc:
    Add a ui.start_new_record() python method, and rename ui.print() to
    ui.print_layout() because print seems to be a python keyword that can't
    be used as a method name, seen when trying to use it in the unit test.

2010-03-08  Peter Penz  <ppenz@openismus.com>

	Fix the build with exceptions disabled.

	* glom/libglom/document/bakery/document_xml.cc:
	* glom/mode_design/iso_codes.cc: The exception handling is enabled by the
    define LIBXMLPP_EXCEPTIONS_ENABLED. But this is a typo, as libxml++ defines
    LIBXMLCPP_EXCEPTIONS_ENABLED.

2010-03-05  Murray Cumming  <murrayc@murrayc.com>

    Python button scripts: Add ui.print() and ui.print_reports(report_name).

	* glom/application.[h|cc]: Add print() and print_report(), calling
    methods in the frame widget.
	* glom/libglom/python_embed/py_glom_ui.[h|cc]: Add new print() and
    print_report() methods, adding callback slots for use by Glom.
	* glom/python_embed/python_module/py_glom_module.cc: Register the new
    Python methods.
	* glom/mode_data/box_data.[h|cc]: execute_button_script(): Handle the
    new signals, calling the new methods in Application.

2010-03-07  Murray Cumming  <murrayc@murrayc.com>

    Details: Align widgets in other columns too.

	* glom/utility_widgets/flowtable.[h|cc]: Added get_columns_count().
	* glom/mode_data/flowtablewithfields.[h|cc]: apply_size_group_to_label():
	Change this to apply_size_groups_to_label().
	align_child_group_labels(): Create a size group for each possible column,
	and call apply_size_groups_to_label() with them.

2010-03-06  Murray Cumming  <murrayc@murrayc.com>

	Details: Align widgets in the first columns of neighbouring layout groups.

	* glom/utility_widgets/flowtable.[h|cc]: Added get_column_for_first_widget(),
	to discover what column a widget is in, and whether it has even been assigned
	to a column yet (if the size has been allocated already.)
	FlowTableItem: Remember whether the item has a column number and what it is.
	on_size_allocate(): Remember the column numbers of items for later retrieval.
	* glom/mode_data/flowtablewithfields.[h|cc]: Info, add_field_at_position():
	Store the pointer to eventbox too, so we can later discover its column from
	the base FlowTable.
	Add align_child_group_labels(), to make all first-level labels in child
	flowtables share a single Gtk::SizeGroup, making them align.
	Add apply_size_group_to_labels() to actually add the labels to the size group.
	add_layout_group_at_position(): Call align_child_group_labels() on new
	sub-flowtables.
	on_size_allocate(): After the base class has allocated the spaces for the
	child widgets, after it therefore knows the column positions for the widgets,
	call apply_size_group_to_labels() to make them align.
	* glom/mode_data/box_data_details.cc: create_layout(): Call
	align_child_group_labels() to align items in top-level groups.

2010-03-06  Murray Cumming  <murrayc@murrayc.com>

  Details: Do not make field widgets too wide, so this fits on a laptop screen.

	* glom/utils_ui.cc: get_suitable_field_width_for_widget(): Do not add 150
	to all calculated widths. I don't know why this code ever did that.

1.13.7:

2010-02-28  Murray Cumming  <murrayc@murrayc.com>

    Python button scripts: Avoid a crash with buttons in lists.

	* glom/mode_data/box_data_list.[h|cc]: on_adddel_script_button_clicked():
	Run the script in the (existing) on_script_button_idle() idle handler because
	the script can cause the cell (that is emitting the signal) to be destroyed,
	by navigating to a different table. This fixes that crash.
	* glom/mode_data/box_data_list_related.cc: Do the same here.
	* glom/mode_data/notebook_data.cc: on_list_user_requested_details(): Use
	the same idle handler trick here, just in case.

2010-02-28  Murray Cumming  <murrayc@murrayc.com>

	Added unit test for the new button script ui python API.

	* Makefile_tests.am:
	* tests/test_python_execute_script.cc: Added unit test for the new button
	script ui python API.

2010-02-28  Murray Cumming  <murrayc@murrayc.com>

    PyGlomUI: Simplify the callbacks object.

	* glom/libglom/python_embed/py_glom_ui.[h|cc]: Use public sigc::slots instead
	  of signals, to simplify this.
	* glom/mode_data/box_data.cc
	  Box_Data::execute_button_script(): Adapt.

1.13.6:

2010-02-28  Murray Cumming  <murrayc@murrayc.com>

  Fix the python function tests.

	* glom/python_embed/glom_python.cc
	glom_execute_python_function_implementation,
	glom_evaluate_python_function_implementation: Import the glom python module
	before trying to create a boost::python::object(new PyGlomRecord), to avoid
	an exception in the tests.

2010-02-28  Murray Cumming  <murrayc@murrayc.com>

	Many files: Rename App_Glom to Application (in namespace Glom).

2010-02-28  Murray Cumming  <murrayc@murrayc.com>

  Python button scripts: Add show_table_details() and show_table_list().

	* Makefile_libglom.am:
	* glom/python_embed/python_module/py_glom_module.cc:
	* glom/libglom/python_embed/py_glom_ui.[h|cc]: Added a PyGlomUI object
	that can be passed to python functions in addition to the record object,
	with methods to navigate in the UI. So far there is just
	show_table_details() and show_table_list().
	* glom/glom_developer.glade: Script editor window: Mention the extra ui
	parameter.
	* glom/python_embed/glom_python.[h|cc]: Add a callback object parameter so
	scripts can tell the caller to change things in the UI.
  * glom/frame_glom.h: Made show_table() public so that the Application can
	call it.
	* glom/application.[h|cc]: Add show_table_details() and add_show_list()
	methods for the callbacks to call.
	* glom/mode_data/box_data.[h|cc]: Handle the callback signals, to actually do
	the navigation when a python script requests it.
	* glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.cc: Adapted.

2010-02-27  Murray Cumming  <murrayc@murrayc.com>

  Python: Prevent field calculations from changing the data in other fields.

	* glom/libglom/python_embed/py_glom_record.[h|cc]: Added set_read_only().
	* glom/python_embed/glom_python.[h|cc]:
	glom_evaluate_python_function_implementation(): Add a bool read_only
	parameter that defaults to true.
	glom_execute_python_function_implementation(): Pass read_only=false so
	scripts can write data to the database via the record object.

2010-02-27  Murray Cumming  <murrayc@murrayc.com>

  Increase required version of libgdamm.

	* configure.ac: Increase libgdamm dependency to the last one that doesn't
	need libgda 4.1/4.2. We actually need some API that was not in the older one.

2010-02-27  Murray Cumming  <murrayc@murrayc.com>

  Revert use of SqlBuilder because it requires libgda 4.1,
  which will not be packaged by the upcoming Ubuntu Lucid, which is an
  important version of an important distro.

2010-02-27  Murray Cumming  <murrayc@murrayc.com>

	More uses of SqlBuilder for SELECT statements.

2010-02-27  Murray Cumming  <murrayc@murrayc.com>

  Fix runtime problems with the use of SqlBuilder.

	* glom/base_db.[h|cc]: query_execute_select(), query_execute(): Catch more
  errors and output better debug and error text.
	get_database_preferences(): Don't bother catching exceptions already caught
	by query_execute*().
	add_standard_tables(): Fix a typo in the SQL query.
	insert_example_data(): Work around an inability in GdaSqlBuilder to INSERT
	a NULL value. I have asked about it on the mailing list.

2010-02-27  Murray Cumming  <murrayc@murrayc.com>

	Use Gnome::Gda::SqlBuilder

	* several files: Use Gnome::Gda::SqlBuilder to simplify query building and to
	make it safer.
	Much of this work was actually by Johannes Schmid for Openismus.

2010-02-27  Murray Cumming  <murrayc@murrayc.com>

  Increase required version of libgdamm.

	* configure.ac: Increase libgdamm dependency to the last one that doesn't
	need libgda 4.1/4.2. We actually need some API that was not in the older one.

2010-02-27  Murray Cumming  <murrayc@murrayc.com>

  Revert use of SqlBuilder because it requires libgda 4.1,
  which will not be packaged by the upcoming Ubuntu Lucid, which is an
  important version of an important distro.

2010-02-27  Murray Cumming  <murrayc@murrayc.com>

	More uses of SqlBuilder for SELECT statements.

2010-02-27  Murray Cumming  <murrayc@murrayc.com>

  Fix runtime problems with the use of SqlBuilder.

	* glom/base_db.[h|cc]: query_execute_select(), query_execute(): Catch more
  errors and output better debug and error text.
	get_database_preferences(): Don't bother catching exceptions already caught
	by query_execute*().
	add_standard_tables(): Fix a typo in the SQL query.
	insert_example_data(): Work around an inability in GdaSqlBuilder to INSERT
	a NULL value. I have asked about it on the mailing list.

2010-02-26  Murray Cumming  <murrayc@murrayc-desktop>

	Use Gnome::Gda::SqlBuilder

	* glom/base_db.[h|cc]: query_execute_select(), query_execute(),
	auto_increment_insert_first_if_necessary(),
	recalculate_next_auto_increment_value(),
	get_next_auto_increment_value(), get_database_preferences(),
	add_standard_table(), set_database_preferences(), insert_example_data(),
	set_field_value_in_database():
	Use Gnome::Gda::SqlBuilder to simplify query building and to make it
	safer.
	Most of this work was actually by Johannes Schmid for Openismus.

2010-02-26  Murray Cumming  <murrayc@murrayc.com>

	Fixed the tests build.

	* tests/test_python_execute_func.cc:
	* tests/test_python_execute_func_date.cc: Updated for the
	extra parameters for glom_evaluate_python_function_implementation().

2010-02-25  Murray Cumming  <murrayc@murrayc.com>

	Python functions: Allow setting of values in the record via [].

	* glom/python_embed/python_module/py_glom_module.cc: Specify a setitem(),
	so python code can use [] syntax to set the record's field values as
	well as getting them.
	* glom/libglom/python_embed/py_glom_record.[h|cc]:
	PyGlomRecord_SetFields(): Take and store the primary key details and value,
	and use it in setitem() to UPDATE the value in the database.
	* glom/python_embed/glom_python.[h|cc]:
	glom_execute_python_function_implementation(),
	glom_evaluate_python_function_implementation():
	Take the primary key field and value.
	* glom/base_db.cc:
	* glom/base_db_table_data.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	* glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.cc:
	Adapted.

2010-02-22  Murray Cumming  <murrayc@murrayc.com>

	Avoid showing %20 in the window title.

	* glom/libglom/document/bakery/document.cc: get_name():
	Use Gio::FileInfo::get_display_name() instead of
	Glib::filename_display_basename() or Glib::filename_display_name(), to avoid
	showing %20 in the window title bar when there are spaces in the file name.
	Noticed by Daniel Borgmann.

1.13.5:

2010-02-08  Peter Penz <ppenz@openismus.com>

	libglom: Fix build issue for Maemo.

	* glom/libglom/data_structure/glomconversions.cc: get_text_for_gda_value():
	Add an ifdef for the disabled-exceptions build.


2010-02-22  Murray Cumming  <murrayc@murrayc.com>

	Python functions: Fix regression since the switch to boost::python.

	* glom/python_embed/python_module/py_glom_module.cc: PyRelatedRecord:
	Fix a typo on the getitem() and len() declarations so we can really
	get a related record.

2010-02-22  Murray Cumming  <murrayc@murrayc.com>

	Python functions: Avoid a crash.

	* glom/python_embed/glom_python.cc:
	glom_evaluate_python_function_implementation(): When calling the
	function object, catch exceptions instead of crashing.

2010-02-12  Murray Cumming  <murrayc@murrayc.com>

	Glom Python: Minor code improvement.

	* glom/python_embed/glom_python.cc: glom_evaluate_python_function_implemention():
	Use the extra brackets trick to have boost::python::object and handle
	on one line, so I have to care less about handle<>.

2010-02-12  Murray Cumming  <murrayc@murrayc.com>

	Disable broken import tests.

	* Makefile_tests.am: Comment out the use of the import tests during
	make check. They hang most of the time, which is just stopping distcheck
	from working. We need to fix these (and or the importing itself).
	Then we can reenable them.

2010-02-11  Murray Cumming  <murrayc@murrayc.com>

	libglom/python_embed/: get_item(): Pass object by const reference.

	* glom/libglom/python_embed/py_glom_record.[h|cc]:
	* glom/libglom/python_embed/py_glom_related.[h|cc]:
	* glom/libglom/python_embed/py_glom_relatedrecord.[h|cc:
	getitem(): Pass the object by const &.

1.13.4:

2010-02-11  Murray Cumming  <murrayc@murrayc.com>

	Rename boost::python m4 macro.

	* configure.ac:
	* macros/ax_boost_python.m4: Rename to ax_boost_python_macro.m4 and
	rename the defined m4 macro, to avoid confusion with the cleaner (but
	not working) original.

2010-02-11  Murray Cumming  <murrayc@murrayc.com>

	Fix the build, due to file not added to git.

	* glom/libglom/python_embed/pygdavalue_conversions.cc: Added missing
	file to git.

2010-02-11  Murray Cumming  <murrayc@murrayc.com>

	Fixes for the boost::python configure checks.

	* configure.ac: AC_SUBST(PYTHON_CPPFLAGS) so our python checks can
	use it.
	* macros/ax_boost_python.m4: Use the previously-discovered python
	CPPFLAGS and LIBS so our checks really work.

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

	Use boost::python instead of the Python C API, simplifying the code.

	* configure.ac: Check for boost::python.
	* Makefile.am:
	* Makefile_glom.am: Use boost::python CFLAGS and LIBS.
	* macros/ax_boost_python.m4: Added this macro from
	http://www.nongnu.org/autoconf-archive/ax_boost_python.html
	and hacked it to make it actually work.

	* glom/python_embed/glom_python.cc: Use BOOST_PYTHON_MODULE() instead
	of the obscure Python C API structs and fields that were here and in
	the other .cc files.
	* glom/main.cc:
	* glom/libglom/python_embed/py_glom_record.[h|cc]
	* glom/libglom/python_embed/py_glom_related.[h|cc]
	* glom/libglom/python_embed/py_glom_relatedrecord.[h|cc]
	* glom/python_embed/python_module/py_glom_module.[h|cc]:
	* tests/test_python_execute_func.cc:
	Use boost::python, for instance via boost::python::object, to
	simplify memory management.

	* Makefile_libglom.am:
	* glom/libglom/python_embed/pygdavalue_conversions.[h|c]:
	Change this to a .cc file, using C++, using boost::python.

2010-02-08  Peter Penz <ppenz@openismus.com>

	libglom: Fix build issue for Maemo.

	* glom/libglom/data_structure/glomconversions.cc: get_text_for_gda_value():
	Add an ifdef for the disabled-exceptions build.

1.13.3:

2010-02-03  Michael Hasselmann  <michaelh@openismus.com>

	Fixed a crash that got uncovered by the previous commit

	* glom/libglom/utils.cc (build_sql_select_fields_to_get): Warn about layout
	items that are null and skip them.

2010-02-03  Michael Hasselmann  <michaelh@openismus.com>

	Added a guard clause when adding relationships from fields

	* glom/libglom/utils.cc (add_to_relationships_list): If an invalid layout item
	is passed then its relationship cannot be queried. Libglom users can also force
	layout item fields that are null into this function, hence an additional guard
	clause was added.

2010-02-02  Murray Cumming  <murrayc@murrayc.com>

	Do not include pygtk.h

	* glom/libglom/python_embed/py_glom_record.h:
	* glom/libglom/python_embed/py_glom_relatedrecord.h:
	* glom/python_embed/glom_python.cc: Include pygobject.h instead of
	pygtk/pygtk.h, because we do not use anything from pygtk, or link to it.

2010-01-31  Murray Cumming  <murrayc@murrayc.com>

	Command-line parsing: Added some checks.

	* glom/main.cc: Test the command-line argument filepath for existence and
	check that it's not a directory, so it fails before even showing UI.

2010-01-31  Murray Cumming  <murrayc@murrayc.com>

	Relationships Overview: Avoid GTK+ warnings.

	* glom/mode_design/relationships_overview/dialog_relationships_overview.cc:
	Constructor: Call add_accel_group(), which fixes the warnings during
	destruction mentioned in bug #607938.

2010-01-31  Murray Cumming  <murrayc@murrayc.com>

	Relationships Overview: Maybe fix a hang/crash.

	* glom/mode_design/relationships_overview/dialog_relationships_overview.[h|cc]:
	Signal handlers: Take sigc::bind() RefPtr parameters by value instead of by
	const &, to avoid having to use sigc::ref() or worry if it works.
	Save sigc::connections in a list so we can disconnect signal handlers when
	deleting items bound with sigc::bind(). Do this in the destructor too, which
	seems to fix the valgrind errors in bug #594737, though not the
	instance of invalid non-instantiatable type" warning.

2010-01-27  Michael Hasselmann  <michaelh@openismus.com>

	Fixed the parser to perform stateless async file operations

	* glom/import_csv/csv_parser.[h|cc]: The parser relied on a member variable for
	its async giomm operations, which was able to cause interleaving state
	changes to it, corrupting the object in the worst case. This commit uses the
	source object as a slot parameter to avoid this state problem (working around
	BGO bug #608269).

	* tests/import/utils.[h|cc]: During import tests, break mainloop on file
	read errors (e.g., no file at all).

2010-01-27  Michael Hasselmann  <michaelh@openismus.com>

	Added a test for BGO bug #607938

	* tests/import/data/albums.csv: Real-world example data used for the CSV
	import.

	* tests/import/utils.[h|cc]: Add the possibility to feed a filename into the
	ImportTest directly.

	* tests/import/test_parsing.cc: Test the CSV import of a whole file.

2010-01-27  Michael Hasselmann  <michaelh@openismus.com>

	Added a g_return_if_fail check for invalid URLs

	* glom/import_csv/csv_parser.cc: Do not start the async reading if the file
	object is invalid.

2010-01-27  Murray Cumming  <murrayc@murrayc.com>

	Use Gtk::ToolPalette from the latest gtkmm version, instead of
	EggToolPalette (C) from libegg.

2010-01-26  Murray Cumming  <murrayc@murrayc.com>

	libglom: Correct includes.

	* glom/libglom/*.h: Use the full include libglom/ path for headers, to
	avoid confusion and make life easier for other users of libglom.

2010-01-25  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/numeric_format.h: Remove unnecessary
	include of privileges.h.

2010-01-25  Murray Cumming  <murrayc@murrayc.com>

	Allow new files to have quotes in their titles.

	* glom/frame_glom.cc:
	connection_request_password_and_choose_new_database_name():
	Remove quotes (and other unusual characters) from the generated
	database name, to avoid errors from the database backend.
	Bug #607957 (Michael Hasselmann)

2010-01-24  Michael Hasselmann  <michael@taschenorakel.de>

	Fixed out-ouf-bounds access during CSV imports

	* glom/import_csv/dialog_import_csv.cc (get_field_for_column): Added boundary
	check for direct field access. Fixes bug #607938.

2010-01-24  Murray Cumming  <murrayc@murrayc.com>

	* ldtp/central-info.xml.example: Added an example central-info.xml, as
	mentioned in the README.

1.13.2:

2010-01-24  Murray Cumming  <murrayc@murrayc.com>

	Details: Buttons: Use horizontal aligment from formatting.

	* glom/mode_data/flowtablewithfields.cc: add_button_at_position():
	Use a Gtk::HBox with either pack_start() or pack_end(), putting it in the
	FlowTable with expand=true to have alignment in the button's space, if we
	don't want the FlowTable's default (left) alignment.

2010-01-24  Murray Cumming  <murrayc@murrayc.com>

	Details: Static Text items: Use horizontal alignment from formatting.

	* glom/utility_widgets/labelglom.[h|cc]: Add a constructor that does not
	take alignment values, like the Gtk::Label base class, so we can easily
	use the default for vertical alignment.
	* glom/mode_data/flowtablewithfields.cc: add_textobject_at_position():
	Use expand=true when adding the widget to the FlowTable, so that labels can
	have the full space in which to actually have alignment.
	* glom/utility_widgets/layoutwidgetbase.cc: apply_formatting: Use appropriate
	multi-line justification for labels, as a user would expect when setting
	horizontal alignment.

2010-01-23  Murray Cumming  <murrayc@murrayc.com>

	Details: Buttons: Use background color from formatting.

	* glom/mode_data/flowtablewithfields.cc: add_button_at_position(): Call
	apply_formatting on the button, not the label, so it has a chance to do the
	right thing on the right widget.

2010-01-23  Murray Cumming  <murrayc@murrayc.com>

	Details: Static Text items: Use background color from formatting.

	* glom/utility_widgets/labelglom.cc: Do not call set_visible_window(false)
	because we really need a visible child X window to be able to change the
	background color.

2010-01-23  Murray Cumming  <murrayc@murrayc.com>

	Details: Static Text items and Buttons: Use foreground color from formatting.

	* glom/utility_widgets/layoutwidgetbase.cc: apply_formatting(): Use the
	foreground color for labels (static text items and buttons).

2010-01-22  Murray Cumming  <murrayc@murrayc.com>

	Details: Static Text items: Use formatting.

	* glom/utility_widgets/labelglom.[h|cc]: Added get_label(), because this
	really has a label as a child.
	* glom/utility_widgets/layoutwidgetbase.cc: apply_formatting(): Use get_label()
	to make formatting work on static text items too.

2.13.1:

2010-01-22  Murray Cumming  <murrayc@murrayc.com>

	Fixed compiler warnings.

	* glom/libglom/data_structure/layout/layoutitem_field.cc:
	get_formatting_used_horizontal_alignment():
	* glom/print_layout/canvas_layout_item.cc: apply_formatting(): Fixed
	compiler warnings.

2010-01-22  Murray Cumming  <murrayc@murrayc.com>

	Make libglom-1.14 install in parallel with libglom-1.12.

	* glom/libglom/glom-1.12.pc.in: Rename to glom-1.14.pc.in
	* configure.ac: Change the libglom ABI version variable and specify the
	changed .pc.in file.
	* Makefile.am, Makefile_libglom.am: Adapt.
	* glom/python_embed/python_module/py_glom_module.[h|cc]: Mention
	2.14 instead of 2.14.
	* tests/test_load_python_library.cc: Adapt.

	* glom/libglom/document/document.cc:
	get_latest_known_document_format_version(): Increment.

2010-01-22  Murray Cumming  <murrayc@murrayc.com>

	Really use formatting for multi-line fields.

	* glom/utility_widgets/textviewglom.[h|cc]: Added get_textview().
	* glom/utility_widgets/layoutwidgetbase.cc: apply_formatting():
	Get the appropriate child for buttons and textviews, making this work
	for textviews (multi line fields), but it still does not work for
	labels (static text items) and buttons.

2010-01-22  Murray Cumming  <murrayc@murrayc.com>

	Allow custom text formatting of Buttons as well as text items and fields.

	* glom/libglom/data_structure/layout/layoutitem_button.[h|cc]:
	Derive from LayoutItem_WithFormatting.
	* glom/libglom/document/document.[h|cc]: Make loading/saving of
	formatting generic so we get it for free whenever a new class
	derives from LayoutItem_WithFormatting.
	* glom/mode_data/flowtablewithfields.cc:
	on_dnd_add_layout_item_button(): Try to apply the formatting to
	the button's label, though it doesn't seem to work.

2010-01-22  Murray Cumming  <murrayc@murrayc.com>

	Allow editing of formatting for static text items.

	* glom/mode_design/layout/layout_item_dialogs/dialog_formatting.[h|cc]:
	Added generic formatting (not choices, not default/custom) dialog
	for static text items and maybe others.
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.[h|cc]:
	set_formatting(): Add optional bool paramters to hide numeric formatting
	and choices.
	* glom/base_db.[h|cc]: Added offer_item_formatting() to use this dialog.
	* glom/mode_design/layout/dialog_layout_details.cc(): Allow editing of
	the formatting for static text items instead of just fields.

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	construct_specified_columns_cellrenderer(): Apply the formatting to
	any LayoutItem_WithFormatting, not just fields.
	* glom/mode_data/flowtablewithfields.cc: add_textobject_at_position():
	Try to apply the formatting to the label, but it doesn't seem to work.

2010-01-22  Murray Cumming  <murrayc@murrayc.com>

	Add LayoutItem_WithFormatting as a Field/StaticText common base class.

	* glom/libglom/data_structure/layout/layoutitem_withformatting.[h|cc]:
	Added LayoutItem_WithFormatting.
	* glom/libglom/data_structure/layout/layoutitem_text.[h|cc]:
	* glom/libglom/data_structure/layout/layoutitem_field.[h|cc]:
	Derive from Layout_WithFormatting, so we can use the base class
	polymorphically, making it easier to support formatting for static text
	items.
	* glom/utility_widgets/layoutwidgetbase.[h|cc]: apply_formatting(),
	* glom/print_layout/canvas_layout_item.[h|cc]: apply_formatting():
	Make this generic for LayoutItem_WithFormatting.

2010-01-22  Murray Cumming  <murrayc@murrayc.com>

	Show the alternative colors for negatives in fields with choices too.

	* glom/utility_widgets/comboentryglom.cc: set_value():
	* glom/utility_widgets/comboglom.cc: set_value(): Use the alternative
	negative color feature here too.

2010-01-21  Murray Cumming  <murrayc@murrayc.com>

	Field Formatting: Text Formatting: Add horizontal alignment option.

	* glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
	Added get/set_horizontal_alignment().
	* glom/libglom/data_structure/layout/layoutitem_field.[h|cc]:
	Added get_formatting_used_horizontal_alignment() to interpret the
	AUTO alignment depending on the fields details.
	* glom/libglom/document/document.cc:
	load_after_layout_item_formatting(), save_before_layout_item_formatting():
	load/save the new setting.

	* glom/glom_developer.glade: window_formatting: Added the alignment combo.
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.[h|cc]:
	Show/Save the alignment.
	* glom/utility_widgets/db_adddel/db_adddel.cc: apply_formatting():
	* glom/utility_widgets/entryglom.cc: set_layout_item():
	* glom/utility_widgets/comboentryglom.cc: set_layout_item():
	Set xalign from get_formatting_used_horizontal_alignment().

2010-01-16  Murray Cumming  <murrayc@murrayc.com>

	Field Formatting: Negative values color: Make this just a bool check box.

	* glom/libglom/data_structure/numeric_format.[h|cc]: Use just a bool
	to say if negative values should be shown in an alternative color.
	Add static get_alternative_color_for_negatives() to get that color.
 	* glom/libglom/data_structure/layout/fieldformatting.cc:
 	get_text_format_color_foreground_to_use(): Updated the implementation.
 	* glom/libglom/document/document.cc:
	load_after_layout_item_formatting(), save_before_layout_item_formatting():
	Updated.

	* glom/glom_developer.glade: window_formatting: Show only a checkbox, not
	a color too, for the alternative color for negatives.
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.[h|cc]:
	Updated.

2010-01-15  Michael Hasselmann  <michaelh@openismus.com>

	Add forgotten header to libglom's Makefile

	* Makefile_libglom.am: libglom_include_HEADERS forgot to mention utils.h
	although it was mentioned in the *_la_SOURCES.


2010-01-15  Michael Hasselmann  <michaelh@openismus.com>

	Updated the comment for NumericFormat's default precision

	* glom/libglom/data_structure/numeric_format.h (get_default_precision): The
	precision applies to the decimal places only, not the whole number. Comment
	updated.

2010-01-15  Murray Cumming  <murrayc@murrayc.com>

	Field Formatting: Allow an alternative color for negative values.

	* glom/libglom/data_structure/numeric_format.[h|cc]:
	Added m_foreground_color_for_negatives.
	* glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
	Added get_text_format_color_foreground_to_use().
	* glom/libglom/document/document.cc:
	load_after_layout_item_formatting(), save_before_layout_item_formatting():
	load/save the new setting.

	* glom/glom_developer.glade: window_formatting: Added negatives color
	and checkbox to the numeric formatting tab.
	* glom/mode_design/layout/layout_item_dialogs/box_formatting.[h|cc]:
	Show/Save the color.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	treeviewcolumn_on_cell_data()_
	* glom/utility_widgets/entryglom.cc: set_value():
	Use the color for negatives if appropriate.
	* glom/print_layout/canvas_layout_item.cc: Add a TODO to use it here too.

1.12.5 (stable):

2010-01-20  Murray Cumming  <murrayc@murrayc.com>

	Fix a crash in previous commit.

	* glom/utility_widgets/db_adddel/db_adddel.cc: get_fixed_cell_height():
	Fixed a null-pointer crash when also checking LayoutItem_Text items,
	though the UI doesn't actually allow the font to be specified for them
	yet.

2010-01-20  Murray Cumming  <murrayc@murrayc.com>

	List View: Don't chop off the bottom of text when using large fonts.

	* glom/utility_widgets/db_adddel/db_adddel.cc: get_fixed_cell_height():
	Use the font description from the FieldFormatting, to get a more
	suitable max height for all columns.
	remove_all_columns(): Set m_fixed_cell_height back to 0 so it
	will be recalculated for the new columns.
	Fixes bug #607023 (Michael Hasselmann)

2010-01-14  Murray Cumming  <murrayc@murrayc.com>

	libglom: Some API documentation.

	* glom/libglom/data_structure/layout/layoutitem_field.h:
	* glom/libglom/data_structure/layout/usesrelationship.h:
	Added doxygen comments at request of Michael Hasselmann.

2010-01-14  Murray Cumming  <murrayc@murrayc.com>

	Rename get_stringstream_precision_default().

	* glom/libglom/data_structure/glomconversions.[h|cc]:
	get_stringstream_precision_default(): Rename this to the slighly-better
	named (because it's not mentioning implementation)
	NumericFormat::get_default_precision() in
	* glom/libglom/data_structure/numeric_format.[h|cc]: and document it
	vaguely.

2010-01-14 Michael Hasselmann <michaelh@openismus.com>

	Make the default precision used for stringstreams available for libglom users

	* glom/libglom/data_structure/glomconversions.[h|cc]
	(get_stringstream_precision_default): Wrap the constant used into a function
	and export it in the headers. Users of libglom need it to show the same
	precision for Glom's numeric type.

2010-01-14  Murray Cumming  <murrayc@murrayc.com>

	Minor simplification.

	* glom/libglom/data_structure/glomconversions.cc:
	get_stringstream_precision_default(): Simplify this fu
