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
