[glom/glom-1-22] Move to a generated (in dist) ChangeLog



commit cdffab664a384988c7de80dfa9388bd9560130b0
Author: Murray Cumming <murrayc murrayc com>
Date:   Fri Sep 20 21:15:18 2013 +0200

    Move to a generated (in dist) ChangeLog
    
    I still do not like not being able to correct the commit messages
    and I still do not like how it leads us to be lazy when writing
    the ChangeLog entries, but git still makes it hard to manage
    branches when using a manually-written ChangeLog.

 ChangeLog   |10477 +----------------------------------------------------------
 Makefile.am |    5 +
 2 files changed, 7 insertions(+), 10475 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 75b06cf..9fc0f8d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10475 +1,2 @@
-2013-09-11  Murray Cumming  <murrayc murrayc com>
-
-       Avoid a crash at shutdown.
-
-       * glom/bakery/appwindow_withdoc.cc: on_menu_file_close():
-       Close the document after hiding the UI, instead of the other way
-       around because, with Gio::Application, hiding the window can cause
-       it to be deleted, making any further use of it impossible.
-
-1.22.2 (stable):
-
-2012-11-10  Murray Cumming  <murrayc murrayc com>
-
-        Update a test for the newer translations.
-
-        * tests/test_document_load_translations.cc: Increase the number
-       of expected translation locales and adapt to us having a 
-       (mostly useless) en_GB translation.
-
-2013-02-25  Murray Cumming  <murrayc murrayc com>
-
-        Fix the build on Ubuntu Raring.
-
-        * macros/macros/mm-python.m4: Also check in
-        /usr/lib/i386-linux-gnu/ because that is where Ubuntu Raring
-        (and maybe Debian) put libpython2.7 there.
-
-2013-07-18  Murray Cumming  <murrayc murrayc com>
-
-       Initial dialog: Fix crash with latest libxml.
-
-       * glom/dialog_existing_or_new.cc: Catch exceptions from
-       xmlpp::SaxParser::parse_chunk() because libxml nows
-       returns an error code from xmlParserChunk when we call
-       xmlStopParser(), which libxml++ then throws as an
-       exception. Maybe libxml++ should not do that for that
-       new error code.
-       This is the libxml commit:
-       https://git.gnome.org/browse/libxml2/commit/?id=e50ba8164eee06461c73cd8abb9b46aa0be81869
-
-2013-06-10  Murray Cumming  <murrayc murrayc com>
-
-       Initial dialog: Fix the notebook vertical expansion.
-
-       * ui/operator/dialog_existing_or_new.glade: Set the 
-       parent GtkHBox to expand, because there is some change
-       of behaviour with the latest GTK+ from git master.
-       Before this expanded already.
-
-2012-11-22  Murray Cumming  <murrayc murrayc com>
-
-        Tests: Use the locally-built glom.
-
-       * configure.ac:
-        * Makefile_tests.am:
-       * tests/tests_glom_date_in_locales.sh.in:
-       Generate tests/tests_glom_date_in_locales.sh from
-       tests/tests_glom_date_in_locales.sh.in, so it can 
-       include the path to the locally-built glom
-       executable.
-
-2012-11-22  Murray Cumming  <murrayc murrayc com>
-
-        Tests: Use the locally-built python module.
-
-        * Makefile_tests.am: Set the PYTHONPATH in
-       automake's TESTS_ENVIRONMENT variable
-       to fix make check before make install has run,
-       and generally to be a correct check.
-
-2012-11-08  Murray Cumming  <murrayc murrayc com>
-
-       Import example .po translations into the examples.
-
-       * examples/example_film_manager.glom:
-       * examples/example_lesson_planner.glom:
-       * examples/example_music_collection.glom:
-       * examples/example_project_manager.glom:
-       * examples/example_smallbusiness.glom:
-       There are some new translations for el, id, and lv and en_GB,
-       though only a few of the en_GB translated strings are different.
-
-1.22.1 (stable):
-
-2012-11-02  Murray Cumming  <murrayc murrayc com>
-
-        Move a test out the ui tests.
-
-       * Because it uses the glom executable, which needs an
-       X display, even when parsing the command line parameters.
-       I blame GtkApplication.
-
-2012-11-02  Murray Cumming  <murrayc murrayc com>
-
-        Add --enable-ui-tests.
-
-       * configure.ac, Makefile_tests.am:
-       Allow the tests that actually instantiate windows to 
-       be disabled, for running under headless continuous
-       integration systems.
-
-2012-11-02  Murray Cumming  <murrayc murrayc com>
-
-        Self hosting: Do not allow ident authorization.
-
-        * glom/libglom/connectionpool_backends/postgres_self.cc:
-       Remove the ident lines from pg_hba.conf. We use trust already,
-       so we do not need both.
-
-2012-10-25  Murray Cumming  <murrayc murrayc com>
-
-        Self hosting: Only allow attempts from localhost when not shared.
-
-        * glom/libglom/connectionpool_backends/postgres_self.cc:
-       When the Glom system should not be shared on the network (the 
-       default for new files), do not even allow connection attempts
-       from non-localhost. This also removes the use of the deprecated 
-       postgres -i option.
-
-2012-08-31  Murray Cumming  <murrayc murrayc com>
-
-        Catch exceptions when updating the libgda metastore.
-
-        * glom/libglom/connectionpool.cc:
-        * glom/libglom/db_utils.cc: Put try/catch around 
-       uses of Gda::Connection::update_meta_store_for_table()
-       because it is currently failing in test_selfhosting_new_then_change_columns
-       on my Fedora 17.
-
-2012-04-19  Murray Cumming  <murrayc murrayc com>
-
-       Add some translatable strings for Online Glom
-
-       * glom/onlineglom_strings.cc: Add some strings needed by
-       the new reports feature in gwt-glom.
-
-2012-04-16  Murray Cumming  <murrayc murrayc com>
-
-       Fix make check.
-
-       * tests/test_document_load_translations.cc: Update the
-       number of translations.
-
-2012-04-13  Murray Cumming  <murrayc murrayc com>
-
-       Film Manager example: Correct the Contacts reports.
-
-       * examples/example_film_manager.glom: Copy them 
-       from the Small Business example. They were missing
-       the Group By fields.
-
-2012-04-13  Murray Cumming  <murrayc murrayc com>
-
-       Windows build: Fix some typos.
-
-       * glom/glom_create_from_example.cc:
-       * glom/glom_test_connection.cc: Add closing
-       ).
-       Bug #674009 (alien)
-
-2012-04-12  Malcolm Lewis  <malcolmlewis opensuse org>
-
-       Update the FSF address in comment blocks.
-
-       Bug #673881
-
-2012-04-12  Antoine Jacoutot  <ajacoutot gnome org>
-
-       build: std:cerr needs <iostream>
-
-       This is necessary on OpenBSD.
-       Bug #673914
-
-1.22.0:
-
-2012-04-11  Murray Cumming  <murrayc murrayc com>
-
-       Fix make check.
-
-       * tests/test_document_load_translations.cc: Increase the number of
-       expected translations.
-       * examples/example_film_manager.glom: Fix an inconsistency in the 
-       German translation.
-
-2012-04-11  Murray Cumming  <murrayc murrayc com>
-
-       Windows build: ifdef out the use of getpass().
-
-       * glom/glom_create_from_example.cc:
-       * glom/glom_test_connection.cc: And show a warning
-       on stderr. This is better than disabling all the functionality
-       in this file, and lets us fix it easily if we ever have a
-       getpass() function on Windows.
-       Bug #672881 (alien)
-
-2012-04-11  Murray Cumming  <murrayc murrayc com>
-
-       Windows build: Add some includes.
-
-       * glom/dialog_existing_or_new.cc: As suggested by 
-       alien in bug #673093
-
-2012-04-11  Murray Cumming  <murrayc murrayc com>
-
-       Windows build: Add a windows.h include.
-
-       * glom/utility_widgets/imageglom.cc: As suggested by 
-       alien in bug #673096
-
-2012-03-29  Murray Cumming  <murrayc murrayc com>
-
-       Fixed some simple warnings found by scan-build.
-
-       * glom/libglom/report_builder.cc:
-       * glom/mode_data/box_data_list_related.cc:
-       * glom/mode_design/fields/box_db_table_definition.cc:
-       * glom/python_embed/glom_python.cc: Mostly variables that were
-       set but then not used.
-
-2012-03-29  Murray Cumming  <murrayc murrayc com>
-
-       Field: Remove get_holder().
-
-       * glom/libglom/data_structure/field.[h|cc]:
-       * glom/libglom/python_embed/py_glom_record.cc:
-       * glom/mode_data/datawidget/treemodel_db.cc: Replace or remove use
-       of Field::get_holder().
-
-2012-03-29  Murray Cumming  <murrayc murrayc com>
-
-       ConnectionPool: create_database(): Take a progress slot.
-
-       * glom/libglom/connectionpool.[h|cc]::
-       * glom/libglom/connectionpool_backends/backend.h: create_database():
-       Add a progress_slot parameter, to be emitted.
-       * 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]:
-       * glom/libglom/db_utils.cc:
-       * glom/appwindow.[h|cc]: Adapt.
-
-1.21.8:
-
-2012-03-28  Murray Cumming  <murrayc murrayc com>
-
-       Fix the build with the latest gtkmm, with --enable-warnings=fatal.
-
-       * glom/mode_data/box_data.[h|cc]: on_Button_Find(): Let the signal
-       handler do the check and warning about no criteria.
-       * glom/frame_glom.cc: on_notebook_find_criteria(): Check for quickfind
-       criteria here too, so we can use this to do quick finds too, which lets
-       use just use the existing Find button (the window's default activate widget),
-       instead of trying to make the separate quickfind Find button be the default
-       for the entry, but not for other widgets.
-       on_button_quickfind(): Just call on_notebook_find_criteria(), letting it do 
-       all the work.
-       Constructor: Call set_activates_default() on the quickfind entry so that the
-       regular Find button will be activated when enter is pressed.
-       
-2012-03-28  Murray Cumming  <murrayc murrayc com>
-
-       Slight code improvement.
-
-       * glom/mode_find/box_data_details_find.cc:
-       * glom/mode_find/box_data_list_find.cc: Use C++ instead of C 
-       to set can_default.
-
-2012-03-28  Murray Cumming  <murrayc murrayc com>
-
-       Fix the build with the latest gtkmm, with --enable-warnings=fatal.
-
-       * glom/mode_data/box_data.[h|cc]: on_Button_Find(): Let the signal
-       handler do the check and warning about no criteria.
-       * glom/frame_glom.cc: on_notebook_find_criteria(): Check for quickfind
-       criteria here too, so we can use this to do quick finds too, which lets
-       use just use the existing Find button (the window's default activate widget),
-       instead of trying to make the separate quickfind Find button be the default
-       for the entry, but not for other widgets.
-       on_button_quickfind(): Just call on_notebook_find_criteria(), letting it do 
-       all the work.
-       Constructor: Call set_activates_default() on the quickfind entry so that the
-       regular Find button will be activated when enter is pressed.
-       
-2012-03-28  Murray Cumming  <murrayc murrayc com>
-
-       Slight code improvement.
-
-       * glom/mode_find/box_data_details_find.cc:
-       * glom/mode_find/box_data_list_find.cc: Use C++ instead of C 
-       to set can_default.
-
-2012-03-27  Murray Cumming  <murrayc murrayc com>
-
-       Dialog_Choose_ID: Remove use of a deprecated signal.
-
-       * glom/mode_data/datawidget/dialog_choose_id.cc:
-       Do not connect to Gtk::Entry::signal_activate(),
-       which is deprecated. It is unnecessary anyway,
-       because the entry already activates the button
-       via the activates-default and can/has-default properties.
-
-2012-03-26  Murray Cumming  <murrayc murrayc com>
-
-       Dialog_Import_CSV_Progress: Fix a typo.
-
-       * glom/import_csv/dialog_import_csv_progress.cc: Call get_parser_state()
-       instead of get_state(). It was calling Widget::get_state() and the 
-       compiler did not complain that we did not get the enum type that we
-       expected.
-
-2012-03-22  Murray Cumming  <murrayc murrayc com>
-
-       Tests: Set LC_TIME too.
-
-       * tests/test_glom_date_in_locales.sh:
-       * tests/test_selfhosting_new_from_example_in_locales.sh:
-       This seems to be necessary in Ubuntu Precise.
-
-2012-03-22  Murray Cumming  <murrayc murrayc com>
-
-       Improve the command-line parse/print locale warnings.
-
-       * glom/libglom/data_structure/glomconversions.cc:
-       Mention the locale details when complaining that 
-       date parsing or rendering is not working correctly for
-       a locale.
-
-2012-03-16  Murray Cumming  <murrayc murrayc com>
-
-       Update GimpRuler from the Gimp source code.
-
-       With the same changes to make it build in Glom.
-
-1.21.7:
-
-2012-03-14  Murray Cumming  <murrayc murrayc com>
-
-       set_document(), init() methods: Avoid the appearance that these are virtual.
-
-       * glom/application.cc:
-       * glom/appwindow.[h|cc]:
-       * glom/base_db.h:
-       * glom/base_db_table.h:
-       * glom/import_csv/dialog_import_csv_progress.h:
-       * glom/mode_data/box_data.h:
-       * glom/mode_data/box_data_calendar_related.cc:
-       * glom/mode_data/box_data_details.[h|cc]:
-       * glom/mode_data/box_data_list.cc:
-       * glom/mode_data/box_data_list_related.cc:
-       * glom/mode_data/datawidget/dialog_choose_id.h:
-       * glom/mode_data/datawidget/dialog_new_record.h:
-       * glom/mode_design/layout/dialog_layout.[h|cc]:
-       * glom/mode_design/layout/dialog_layout_calendar_related.[h|cc]:
-       * glom/mode_design/layout/dialog_layout_details.[h|cc]:
-       * glom/mode_design/layout/dialog_layout_list_related.[h|cc]:
-       * glom/mode_find/box_data_details_find.h:
-       * glom/print_layout/canvas_print_layout.cc:
-       This fixes warnings found by clang++.
-
-2012-03-14  Murray Cumming  <murrayc murrayc com>
-
-       FlowTable::add(): Rename to add_widgets().
-
-       * glom/mode_data/flowtablewithfields.cc:
-       * glom/utility_widgets/flowtable.[h|cc]: This avoids a clash with 
-       Gtk::Widget::add(), which is virtual, but takes different parameters.
-       This fixes warnings found by clang++.
-
-2012-03-14  Murray Cumming  <murrayc murrayc com>
-
-       Dialog_ImportCSVProgress: rename a signal handler.
-
-       * glom/import_csv/dialog_import_csv_progress[h|cc]: Avoid a clash with 
-       a virtual method of the same name in Gtk::Widget.
-       This fixes warnings found by clang++.
-
-2012-03-14  Murray Cumming  <murrayc murrayc com>
-
-       Make sure that get_appwindow() overrides are const.
-
-       * glom/mode_data/buttonglom.[h|cc]:
-       * glom/mode_data/datawidget/checkbutton.[h|cc]:
-       * glom/mode_data/datawidget/combo.[h|cc]:
-       * glom/mode_data/datawidget/combo_as_radio_buttons.[h|cc]:
-       * glom/mode_data/datawidget/datawidget.[h|cc]:
-       * glom/mode_data/datawidget/entry.[h|cc]:
-       * glom/mode_data/datawidget/label.[h|cc]:
-       * glom/mode_data/datawidget/textview.[h|cc]:
-       * glom/utility_widgets/imageglom.[h|cc]:
-       * glom/utility_widgets/notebookglom.[h|cc]: get_appwindow(): This should
-       be const because the pure virtual function (that it is meant to override)
-       is const.
-       This fixes warnings found by clang++.
-
-2012-03-14  Murray Cumming  <murrayc murrayc com>
-
-       Fix some simple warnings found by clang++
-
-       * glom/appwindow.cc:
-       * glom/dialog_existing_or_new.cc:
-       * glom/frame_glom.cc:
-       * glom/glom_import_po_all.cc:
-       * glom/libglom/data_structure/layout/layoutitem_field.cc:
-       * glom/mode_data/db_adddel/db_adddel.cc:
-       * glom/mode_design/fields/box_db_table_definition.cc:
-       * glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
-       * glom/utility_widgets/adddel/adddel.cc:
-       I just did export CXX=clang++ before running autogen.sh.
-
-2012-03-12  Murray Cumming  <murrayc murrayc com>
-
-       Simplify code that just re-emits signals.
-
-2012-03-12  Murray Cumming  <murrayc murrayc com>
-
-       Reduce use of the derived ComboBoxText.
-
-2012-03-12  Murray Cumming  <murrayc murrayc com>
-
-       Remove some unused member variables.
-
-       * glom/mode_data/box_data_list.[h|cc]:
-       * glom/mode_data/box_data_manyrecords.[h|cc]:
-       Remove m_has_one_or_more_records.
-       * glom/mode_data/box_data_list_related.cc:
-       Adapted.
-
-2012-03-12  Murray Cumming  <murrayc murrayc com>
-
-       Document: Move XML utilities into a new file.
-
-       * glom/libglom/document/document.[h|cc]: Move the static
-       XML utility methods into:
-       * glom/libglom/fileslist.am:
-       * glom/libglom/xml_utils.[h|cc]: New file.
-       * glom/libglom/report_builder.cc: Adapted, removing the 
-       need for the friend declaration in Document.
-
-2012-03-12  Murray Cumming  <murrayc murrayc com>
-
-       Field: Removed deprecated methods.
-
-       * glom/libglom/data_structure/field.[h.cc]: Removed the sql()
-       overload that takes no connection. sql_find(): Add a connection
-       parameter.
-       * glom/libglom/data_structure/layout/layoutgroup.h:
-       * glom/libglom/utils.cc:
-       * glom/mode_data/box_data.cc: Adapted.
-
-2012-03-12  Murray Cumming  <murrayc murrayc com>
-
-       LayoutItem_GroupBy: Add get and set methods for members.
-
-       * glom/libglom/data_structure/layout/report_parts/layoutitem_groupby.[h|cc]: 
-       Make the members private, adding getters. With smartpointers, the direct 
-       access is not necessary for performance.
-       * glom/libglom/document/document.cc:
-       * glom/libglom/report_builder.cc:
-       * glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc: Adapted.
-
-2012-03-12  Murray Cumming  <murrayc murrayc com>
-
-       libglom: LayoutGroup: Remove deprecated remove_field() and has_field().
-
-       * glom/libglom/data_structure/layout/layoutgroup.[h|cc]: Remove 
-       deprecated method overloads.
-
-1.21.6:
-
-2012-03-05  Murray Cumming  <murrayc murrayc com>
-
-       Utils::get_find_where_clause_quick(): Handle an empty value properly.
-
-       * glom/libglom/utils.cc: get_find_where_clause_quick():
-       Handle an empty quick_search value properly, returning an empty
-       where clause.
-
-2012-03-03  Ben Konrath  <ben bagu org>
-
-       Remove empty group in the Lesson Planner example file.
-
-       The empty group was at the bottome of the Rooms table details view.
-
-       https://bugzilla.gnome.org/show_bug.cgi?id=671263
-
-       * examples/example_lesson_planner.glom:
-
-2012-03-03  Murray Cumming  <murrayc murrayc com>
-
-       Remove remaining uses of deprecated Gtk::Main API.
-
-2012-03-01  Murray Cumming  <murrayc murrayc com>
-
-       Add a unistd.h include to fix the mingw MS Windows build.
-
-       * glom/glom_create_from_example.cc: include unistd.h for getpass().
-       Bug #671120 (alien)
-
-2012-03-01  Murray Cumming  <murrayc murrayc com>
-
-       Make auto-increment fields work even if they are not primary keys.
-
-       * glom/libglom/db_utils.h: get_next_auto_increment_value(): Document that
-       this also increments the value ready for the next call.
-       * glom/base_db_table_data.cc: record_new(): Decide auto-increment values
-       as well as just default values and calculated values. And do this while
-       building the SQL, instead of first setting it in the widget, because we
-       do not always want to use the entered data, so we would then ignore those
-       automatic values accidentally.
-       Bug #661702
-
-2012-03-01  Murray Cumming  <murrayc murrayc com>
-
-       Make the --debug_sql option work again.
-
-       * glom/appwindow.cc: set_show_sql_debug(): Set it in the ConnectionPool
-       too. This was broken since the change to Gtk::Application.
-
-2012-03-01  Murray Cumming  <murrayc murrayc com>
-
-       ConnectionPool::change_columns(): Add/Remove autoincement rows here.
-
-       * glom/libglom/connectionpool.cc: change_columns(): Add or remove the
-       auto-increment row from the database preferences table. This would 
-       be added automatically anyway but this makes sure that it is there
-       for editing as soon as the field is added, and makes sure that it is 
-       removed.
-       * tests/test_selfhosting_new_then_change_columns.cc: Try setting a 
-       field as auto-increment.
-
-2012-03-01  Murray Cumming  <murrayc murrayc com>
-
-       Tests: Update the expected number of locales.
-
-       * tests/test_document_load_translations.cc: There are now 7 locales in the
-       example document.
-
-2012-03-01  Murray Cumming  <murrayc murrayc com>
-
-       More windows build fixes.
-
-       * glom/libglom/connectionpool_backends/postgres.cc: Add an include and change
-       the ifdefed code slightly to fix the mingw build on Windows.
-       Bug #670903 (alien)
-
-2012-03-01  Murray Cumming  <murrayc murrayc com>
-
-       Add a fcntl.h include.
-
-       * glom/libglom/utils.cc: Include fcntl.h to fix the mingw build
-       on Windows.
-       Bug #670903 (alien)
-
-2012-02-29  Murray Cumming  <murrayc murrayc com>
-
-       Use Gtk::ApplicationWindow.
-
-       * glom/bakery/appwindow_withdoc_gtk.[h|cc]: Use Gtk::ApplicationWindow
-       instead of Gtk::Window.
-
-2012-02-15  Murray Cumming  <murrayc murrayc com>
-
-       Remove now-unnecessary call to init_gtkmm.
-
-       * glom/application.cc: The latest gtkmm code in git master makes this 
-       unnecessary.
-
-2012-02-13  Murray Cumming  <murrayc murrayc com>
-
-       Application: Do not load documents twice.
-
-       * glom/application.cc: on_open(): Correct the call to the 
-       base class method, to avoid a second attempt to open the same
-       document.
-
-2012-02-10  Murray Cumming  <murrayc murrayc com>
-
-       Remove use of Gtk::Main functions.
-
-       * glom/bakery/busy_cursor.cc:
-       * glom/import_csv/dialog_import_csv_progress.cc: Use the C API for 
-       events_pending/iteration to avoid a crash.
-
-2012-02-10  Murray Cumming  <murrayc murrayc com>
-
-       AppWindow: Rename get_application() to get_appwindow().
-
-2012-02-10  Murray Cumming  <murrayc murrayc com>
-
-       Do not use Gtk::Main.
-
-       * glom/application.cc: create(): Call the new init_gtkmm method.
-       * glom/main.cc: Remove the use of Gtk::Main because it is no unnecessary.
-
-2012-02-10  Murray Cumming  <murrayc murrayc com>
-
-       --debug-date-check: Do not show the window.
-
-       * glom/main_local_options.[h|cc]: Make the handler function a class method,
-       and make the variables private. Add a get_debug_date_check_result() method.
-       * glom/application.cc: Stop the application, before showing the window, 
-       if the --debug-date-check option was given, as before we used GApplication.
-       
-2012-02-10  Murray Cumming  <murrayc murrayc com>>
-
-       Move all command-line handling into the remote Application.
-
-       * glom/main.cc:
-       * glom/application.cc:
-       * glom/main_local_options.[h|cc]:
-       * glom/main_remote_options.[h|cc]: Split the command-line options into 
-       two OptionGroups, in their own files, even putting local option handling in
-       its separate file. This lets us handle them properly, despite the lack of 
-       GApplication support for separate local/remote GOption handling.
-       ( See https://bugzilla.gnome.org/show_bug.cgi?id=634990#c6 )
-       thanks to our use of G_APPLICATION_NON_UNIQUE.
-       Having them separate should make it easier to really do it properly if
-       GApplication ever allows it.
-
-2012-02-10  Murray Cumming  <murrayc murrayc com>
-
-       Use G_APPLICATION_NON_UNIQUE.
-
-       * glom/application.cc: This is necessary because we use singletons that
-       are really per-AppWindow, to simplify our code.
-
-2012-02-10  Murray Cumming  <murrayc murrayc com>
-
-       Add a Gtk::Application subclass, used by main().
-
-       * Makefile.am:
-       * main.cc:
-       * glom/application.[h|cc]: Use a derived Gtk::Application which instantiates
-       the Glom::AppWindow via its on_open(). Some command-line option handling is 
-       temporarily commented out.
-
-2012-02-24  Murray Cumming  <murrayc murrayc com>
-
-       Fix a typo in the previous commit.
-
-       * glom/mode_data/box_data_list_related.cc: Do not use m_found_set where
-       we really mean found_set.
-
-2012-02-24  Murray Cumming  <murrayc murrayc com>
-
-       Prevent SQL SELECT errors when the user does not have view (SELECT) rights.
-
-       * glom/libglom/privs.cc: get_current_privs(): Check for an empty table 
-       name to avoid SQL errors.
-       * glom/frame_glom.cc: show_table_allow_empty():
-       * glom/mode_data/box_data_list.cc: fill_from_database(), create_layout(),
-       * glom/mode_data/box_data_list_related.cc: init_db_detail(), create_layout():
-       * glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
-       set_choices_related(): Set DbAddDel::set_allow_view(), with the 
-       discovered view privileges for the current user, to avoid SQL errors when the
-       user does not have SELECT rights.
-
-2012-02-24  Murray Cumming  <murrayc murrayc com>
-
-       More not hiding the database structure if the user does not have view rights.
-
-       * glom/mode_data/box_data_list_related.cc: Do not check if the field really     
-       exists, because that will fail if the user does not have view (SELECT) rights.
-
-2012-02-23  Murray Cumming  <murrayc murrayc com>
-
-       Do not hide the database structure if the user does not have view rights.
-
-       * glom/frame_glom.cc: update_table_in_document_from_database(): Warn if we cannot
-       get the fields list from the database and do not then assume that there are no fields.
-       * glom/libglom/db_utils.cc: get_fields_for_table(): Do not get the fields from the 
-       database because it is inefficient and we should already have updated the document.
-       * glom/mode_data/box_data_list.cc: create_layout(): Do not (incredibly inefficiently)
-       check that each field exists in the database. We should already have updated the 
-       document.
-
-       This should make the UI faster too.
-       Bug #669299
-
-2012-02-23  Murray Cumming  <murrayc murrayc com>
-
-       Change lots of g_warnings() to std::cerr.
-
-2012-02-23  Murray Cumming  <murrayc murrayc com>
-
-       FieldTypes: Add defaults.
-
-       * glom/libglom/data_structure/fieldtypes.[h|cc]: Fallback to a hard-coded map of
-       database types to GType types, for the (so far unexplained) cases where
-       CONNECTION_META_TYPES gives us no rows.
-
-2012-02-22  Murray Cumming  <murrayc murrayc com>
-
-       List View: Make print layouts grayed-out if no record is selected.
-
-       * glom/mode_data/db_adddel/db_adddel.[h|cc]:
-       Add signal_record_selection_changed and emit it when the TreeView's selection
-       changes:
-       * glom/mode_data/db_adddel/db_adddel_withbuttons.cc: Make sure that we call 
-       the base class.
-       * glom/mode_data/box_data_manyrecords.[h|cc]:
-       Added signal_record_selection_changed.
-       * glom/mode_data/box_data_list.[h|cc]: Handle the AddDel_DB's 
-       signal_record_selection_changed, emitting our own 
-       signal_record_selection_changed.
-       * glom/mode_data/notebook_data.[h|cc]: Handle the Box_Data_List's 
-       signal_record_selection_changed, emitting our own 
-       signal_record_selection_changed.
-       I still do not like the repetition that is required here, and elsewhere,
-       when a child widget needs to signal all the way up an ownership hierarchy.
-       
-       * glom/appwindow.[h|cc]: Add enable_menu_print_layouts_details().
-       * glom/frame_glom.[h|cc]: Handle the Notebook_Data's 
-       signal_record_selection_changed(), calling the AppWindow's
-       enable_menu_print_layouts_details().
-
-2012-02-22  Murray Cumming  <murrayc murrayc com>
-
-       Allow printing of print layouts from the list view.
-
-       * glom/appwindow.cc: fill_menu_print_layouts(): Show the print layouts
-       even if the list view is visible.
-       * glom/mode_data/notebook_data.[h|cc]:
-       get_found_set_details(): Replace with get_found_set_selected()
-       which checks the selected record in the list view, if the list 
-       view is visible, instead of just the details view.
-       * glom/frame_glom.[h|cc]: Remove get_viewing_details().
-       do_print_layout(): Use get_found_set_selected() so we can print the 
-       print layout for the selected record.
-       
-       This avoids some confusion caused by the print layouts not being available
-       when viewing the list instead of the details.
-       Bug #670462 (alien)
-
-2012-02-13  Murray Cumming  <murrayc murrayc com>
-
-       Users: Warn if we cannot get the list of users.
-
-       * glom/libglom/privs.[h|cc]: get_database_users(): Add documentation
-       about the case that the result is empty.
-       * glom/mode_design/users/dialog_users_list.cc: on_button_user_add():
-       If the users list is empty then warn that something is probably wrong
-       with the permissions. I would like to warn much earlier if the user is
-       not a superuser, but I do not know how.
-       Bug #669178 (alien)
-
-2012-02-10  Murray Cumming  <murrayc murrayc com>
-
-       AppWindow: Rename get_application() to get_appwindow().
-
-2012-02-09  Murray Cumming  <murrayc murrayc com>
-
-       Rename Application to AppWindow.
-
-       Rename Application to AppWindow and rename the Bakery::App* classes
-       appropriately too. This is a preparation for using Gtk::Application.
-
-2012-02-09  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Print Preview: Avoid warnings when there are no records yet.
-
-       * glom/print_layout/canvas_print_layout.cc: fill_with_data(): Do nothing,
-       and hint on stdout, if there are no records yet. This avoids several 
-       real warnings later.
-
-2012-02-08  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Avoid sometimes over-scaled images.
-
-       * glom/print_layout/canvas_layout_item.[h|cc]: Remove the constructor and
-       create() that take a LayoutItem, because we should put the CanvasItem in a 
-       canvas (even indirectly) before creating the child item, to avoid this
-       goocanvas bug: https://bugzilla.gnome.org/show_bug.cgi?id=657592#c16
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       * glom/print_layout/canvas_print_layout.[h|cc]:
-       Add and use create_canvas_layout_item_and_add() methods which put the new 
-       canvas item in the canvas before creating its child items based on the 
-       LayoutItem.
-       
-       This fixes bug #668901 (alien)
-
-2012-02-05  Murray Cumming  <murrayc murrayc com>
-
-       Button scripts and Field Calculations: Test button: Check for pygtk2.
-
-       * glom/mode_data/box_data.cc: :execute_button_script(): Move the 
-       warning UI into 
-       * glom/utils_ui.[h|cc]: a new script_check_for_pygtk2_with_warning()
-       method.
-       * glom/mode_design/fields/dialog_fieldcalculation.cc: on_button_test():
-       * glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.cc:
-       on_button_test_script(): Use the new function here.
-
-2012-02-03  Murray Cumming  <murrayc murrayc com>
-
-       Button scripts: Check and warn about pygtk2 instead of crashing.
-
-       * glom/libglom/utils.[h|cc]: Add script_check_for_pygtk().
-       * Makefile_tests.am:
-       * tests/test_script_check_for_problems.cc: Add a test for the check
-       function.
-       * glom/mode_data/box_data.cc: execute_button_script(): Show a 
-       warning dialog, and do not run the script, if it seems to use pygtk.
-       This should help with but #669196 (alien) and ##661766 (Andre Klapper) .
-
-2012-02-03  Murray Cumming  <murrayc murrayc com>
-
-       ReportBuilder: Add error checking.
-
-       * glom/libglom/report_builder.[h|cc]: Return bool
-       from the private methods and check those results.
-
-2012-02-03  Murray Cumming  <murrayc murrayc com>
-
-       Reports: Make summary fields work again.
-
-       * glom/libglom/report_builder.cc: report_build_summary():
-       Remove any sort clause (ORDER BY) from the FoundSet because that makes 
-       no sense for a single row with summary fields. It looks like recent versions
-       of PostgreSQL have become more strict about this, producing this error, for
-       instance:
-       column "invoices.invoice_id" must appear in the GROUP BY clause or be used in an aggregate function
-       * Makefile_tests.am:
-       * tests/test_selfhosting_new_then_report_summary.cc: Add a test for this.
-       This fixes bug #669281 (alien)
-
-2012-02-03  Murray Cumming  <murrayc murrayc com>
-
-       Document: Really load the table privileges.
-
-       * glom/libglom/db_utils.[h|cc]: add_group(): Take a bool superuser
-       parameter.
-       add_groups_from_document(): Use add_group() instead of executing
-       the ADD GROUP query directly, to make sure that we also start 
-       with some sane table privileges defaults, in case nothing else 
-       sets the privielges.
-       * glom/libglom/document/document.cc: load_after(): Fix a typo
-       so that the group privileges are really loaded (and then
-       saved again instead of being lost).
-       * examples/example_film_manager.glom:
-       * examples/example_smallbusiness.glom: Save these with 
-       useful group privileges, so the groups will be allowed to
-       see tables.
-       * tests/test_document_load.cc: Test the loading of the group
-       privileges.
-       Previously the examples were created with groups that could not
-       even view the tables, which meant that they could not even 
-       find out about their existence.
-       This deals with the problem found here:
-       https://bugzilla.gnome.org/show_bug.cgi?id=669043#c2
-       But I would like to show the existence (and structure) of tables
-       even if their data cannot be viewed, so there is more work to do.
-
-2012-02-03  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_empty_then_users: Slight improvement.
-
-       * tests/test_selfhosting_new_from_example_operator.cc: Check
-       that the group exists before adding a user to it.
-
-2012-02-03  Murray Cumming  <murrayc murrayc com>
-
-       Add some runtime warnings.
-
-       * glom/libglom/db_utils.cc: get_table_names_from_database():
-       Slightly improved error checking. 
-       * glom/libglom/privs.cc: set_table_privileges():
-       Warn if a GRANT fails.
-
-2012-02-02  Murray Cumming  <murrayc murrayc com>
-
-       Share on Network: Add reassuring message when user removal fails.
-
-       * glom/frame_glom.cc: Add a stdout message saying the the 
-       default user has been disabled, because the existing message
-       about the failure to remove the user looks at first like
-       a security problem.
-       I still do not know why removal fails, even though we do
-       change the ownership of the database.
-
-2012-02-02  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_empty_then_users: Test user removal.
-
-       * glom/base_db.[h|cc]: Move remove_user() and 
-       remove_user_from_group() to
-       * glom/libglom/db_utils.[h|cc].
-       * glom/frame_glom.cc:
-       * glom/mode_design/users/dialog_users_list.cc: Adapted.
-       * tests/test_selfhosting_new_empty_then_users.cc: Test these
-       functions.
-
-2012-02-02  Murray Cumming  <murrayc murrayc com>
-
-       Really prevent changing to developer mode for non-developers.
-
-       * glom/frame_glom.cc: on_menu_developer_developer(): Actually use the
-       result of Privs::get_user_is_in_group().
-       * tests/test_selfhosting_new_from_example_operator.cc: Test this
-       same function here, though this test currently fails anyway.
-       This fixes bug #669043 (alien) 
-
-2012-02-01  Murray Cumming  <murrayc murrayc com>
-
-       Allow user and group names to have spaces and other special characters.
-
-       * glom/libglom/privs.cc: get_table_privileges(): Instead of parsing the
-       relacl.pg_class field, use the PostgreSQL has_table_privilege() 
-       function, though it needs some strange quoting (see comments).
-       This code is much simpler now. 
-       * tests/test_selfhosting_new_empty_then_users.cc: Add various other
-       table, group, and user names, to excercise the code.
-       This now passes.
-
-2012-02-01  Murray Cumming  <murrayc murrayc com>
-
-       Fix the build.
-
-       * glom/mode_design/users/dialog_new_group.cc:
-       * glom/mode_design/users/dialog_user.cc: Add includes to fix the build.
-
-2012-02-01  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_empty_then_users: Show the problem with spaces.
-
-       * tests/test_selfhosting_new_empty_then_users.cc: 
-       Privs::get_table_privileges() must parse a strange format. This test
-       shows that it fails if the group name contains spaces.
-
-2012-02-01  Murray Cumming  <murrayc murrayc com>
-
-       Limit user and group name lengths.
-
-       * glom/libglom/privs.[h|cc]: Add a MAX_ROLE_SIZE enum constants.
-       I cannot find any PostgreSQL documentation of this 63 character limit.
-       * glom/mode_design/users/dialog_new_group.cc:
-       * glom/mode_design/users/dialog_user.cc: Use it to set maximum characters
-       for the entry boxes.
-       * tests/test_selfhosting_new_empty_then_users.cc: Show that the problem
-       found so far was caused by too-long names, not spaces.
-       I still need to check parsing of table permissions.
-
-2012-02-01  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_empty_then_users: Test user adding with all group names.
-
-       * tests/test_selfhosting_new_empty_then_users.cc: Use for loops to 
-       simplify the code and to make sure that we test adding of users with 
-       all the group types.
-       This shows a problem:
-         Privs::get_database_users() does not contain the expected user:
-         group: somegroup with space characters1
-         user: someuser with space characters1for_somegroup with space characters1
-
-2012-02-01  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_empty_then_users: Improvements.
-
-       * tests/test_selfhosting_new_empty_then_users.cc:
-       Add tables that will be affected.
-       Test strange characters in group and user names.
-
-2012-02-01  Murray Cumming  <murrayc murrayc com>
-
-       Add test_selfhosting_new_empty_then_users
-
-       * glom/mode_design/users/dialog_groups_list.cc: on_button_group_new():
-       Move the group creation code to:
-       * glom/libglom/db_utils.[h|cc]:
-
-       * glom/libglom/privs.[h|cc]: set_table_privileges():
-       Return a bool to report failures.
-       * Makefile_tests.am:
-       * tests/test_selfhosting_new_empty_then_users.cc: Add this test to 
-       test simple creation of a group and a user.
-
-2012-02-01  Murray Cumming  <murrayc murrayc com>
-
-       Add test_selfhosting_new_from_example_operator.
-
-       * glom/base_db.[h|cc]: Move add_user() to
-       * glom/libglom/db_utils.[h|cc]:
-       * glom/frame_glom.cc:
-       * glom/mode_design/users/dialog_users_list.cc: Adapted.
-
-       * glom/libglom/connectionpool.cc: invalidate_connection():
-       Also clear m_pFieldTypes to make sure that we refill it when making 
-       a new connection.
-
-       * glom/libglom/data_structure/fieldtypes.[h|cc]: Add get_types_count().
-       * tests/test_selfhosting_utils.[h|cc]: Add test_selfhost() to 
-       start an already-existing .glom system.
-       * Makefile_tests.am:
-       * tests/test_selfhosting_new_from_example_operator.cc:
-       Add this new test which attempts to re-open a .glom system as
-       a non-developer user. This currently fails to get the list of 
-       tables from the database. I must investigate that.
-
-2012-01-30  Murray Cumming  <murrayc murrayc com>
-
-       Add test_selfhosting_new_empty_change_sysprefs.
-
-       * Makefile_tests.am:
-       * tests/test_selfhosting_new_empty_change_sysprefs.cc: Add this 
-       test to check that the writing and reading of System Preferences works.
-
-2012-01-30  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_empty: Move some code into test_selfhosting_utils
-
-       * tests/test_selfhosting_utils.[h|cc]: Add functions for self-hosting 
-       of an empty new database, used by the existing code too.
-       * Makefile_tests.am:
-       * tests/test_selfhosting_new_empty.cc: Use test_selfhosting_utils to 
-       simplify this code, making it easier to create variations of this test.
-
-2012-01-30  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_empty: Simplify the cleanup code.
-
-       * tests/test_selfhosting_new_empty.cc: Call cleanup if test() returns 
-       false, like we in the other tests, to avoid calling it in too many
-       places.
-
-2012-01-30  Murray Cumming  <murrayc murrayc com>
-
-       Require the latest goocanvas because it has fixes that PrintLayout needs.
-
-       * configure.ac: Require goocanvas 2.0.1.
-
-2012-01-30  Murray Cumming  <murrayc murrayc com>
-
-       Add translatable strings from OnlineGlom
-
-       * glom/onlineglom_strings.cc:
-       * Makefile.am:
-       * po/POTFILES.in: Mention the new file.
-       These strings are actually used here:
-       http://gitorious.org/online-glom/gwt-glom/trees/master/src/main/resources/org/glom/web/client/ui
-       and I must manually copy the translations across until I find a better way.
-
-2012-01-30  Murray Cumming  <murrayc murrayc com>
-
-       Translatable: Remove unimplemented get_title_or_name_original().
-
-       * glom/libglom/data_structure/translatable_item.h: This 
-       method is not used, of course.
-
-2012-01-29  Murray Cumming  <murrayc murrayc com>
-
-       TableInfo, Report, PrintLayout: Make member variables private.
-
-       * glom/libglom/data_structure/print_layout.[h|cc]:
-       * glom/libglom/data_structure/report.[h|cc]:
-       * glom/libglom/data_structure/tableinfo.[h|cc]: Hide the member
-       variables behind getters and setters.
-       * glom/application.cc:
-       * glom/base_db.cc:
-       * glom/libglom/db_utils.cc:
-       * glom/libglom/document/document.cc:
-       * glom/libglom/report_builder.cc:
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       * glom/mode_design/report_layout/dialog_layout_report.cc:
-       * glom/navigation/box_tables.cc:
-       * glom/print_layout/canvas_print_layout.[h|cc]:
-       * glom/print_layout/print_layout_utils.cc:
-       * tests/test_document_load.cc: Adapt.
-       This avoids java-libglom generating getM_*() and setM_*() methods,
-       as well as being generally correct.
-
-2012-01-29  Murray Cumming  <murrayc murrayc com>
-
-       Database Preferences: Really store the organization name in the database.
-
-       * glom/libglom/db_utils.cc: set_database_preferences(): Also UPDATE
-       the organization name.
-
-       This fixes bug #668836 (alien)
-
-2012-01-29  Murray Cumming  <murrayc murrayc com>
-
-       Field Formatting: Related Choices: Default to showing the primary key.
-
-       * glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
-       on_combo_choices_relationship_changed(): By default, automatically
-       choose the related table's primary key as the field to show in the
-       choices. Other fields should then be shown (or looked up) based on the
-       chosen ID.
-       This avoids the confusion noticed here: https://bugzilla.gnome.org/show_bug.cgi?id=668759#c21
-
-2012-01-29  Murray Cumming  <murrayc murrayc com>
-
-       CellRendererDbList: Do not crash if one of the fields is hidden.
-
-       * glom/mode_data/datawidget/cellrenderer_dblist.cc:
-       repack_cells_related(): Do not crash if create_cell() returns 0,
-       and add a comment explaining that that is OK.
-       * glom/mode_data/datawidget/cellcreation.cc: Add explanatory comments.
-
-       This fixes the second crash mentioned in #668759 (alien).
-
-2012-01-29  Murray Cumming  <murrayc murrayc com>
-
-       Choices: Allow the field to be be other than the primary key.
-
-       * glom/mode_data/datawidget/treemodel_db.h: Make most methods and
-       members private again, documentation what they *key methods and members
-       really mean.
-       * glom/mode_data/datawidget/treemodel_db_withextratext.[h|cc]: Add
-       m_column_index_first and m_item_first members.
-       Constructor: Set these by looking for the first LayoutItem_Field, 
-       because that is what we will want to show in the first cell of 
-       a combobox, which is where this model is used.
-       Use these instead of the *key members, which were actually the primary
-       key. We had previously assumed that the first field would always be
-       the primary key, but we should not enforce that.
-       This fixes crashing bug #668759 (alien).
-
-2012-01-28  Murray Cumming  <murrayc murrayc com>
-
-       ComboChoicesWithTreeModel: Make sure the model always has the primary key.
-
-       * glom/libglom/data_structure/layout/layoutitem_field.h:
-       predicate_LayoutItem_Field_IsSameField: Let this be used with containers of
-       LayoutItems as well as just LayoutItem_Fields.
-       * glom/libglom/utils.[h|cc]: Add get_layout_items_plus_primary_key().
-       * glom/mode_data/box_data_list.cc: create_layout(): Simplify code by using 
-       get_layout_items_plus_primary_key().
-       * glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
-       set_choices_related(): Use get_layout_items_plus_primary_key() so the 
-       model has the primary key, avoiding a warning and a later crash.
-
-2012-01-27  Murray Cumming  <murrayc murrayc com>
-
-       Test creation from examples in non-English locales.
-
-       * Makefile_tests.am:
-       * tests/test_selfhosting_new_from_example_in_locales.sh:
-       Run the test_selfhosting_new_from_example example in various
-       locales, to make sure that the libgda problem (see bug #668346),
-       or something like it, does not come back.
-       * tests/test_selfhosting_new_from_example.cc: Call setlocale().
-
-2012-01-25  Murray Cumming  <murrayc murrayc com>
-
-       Document: Avoid accumulating old nodes in the XML.
-
-       * glom/glom_document.dtd: <connection>: Port and server should be 
-       optional because the document can specify a SQLite file instead.
-       * glom/libglom/document/document.cc: save_before(): Remove all
-       children of the root node before recreating them, to avoid keeping
-       old stuff.
-
-2012-01-25  Murray Cumming  <murrayc murrayc com>
-
-       Examples: Remove multiple trans_set nodes.
-
-       * examples/example_film_manager.glom:
-       * examples/example_lesson_planner.glom:
-       * examples/example_music_collection.glom:
-       * examples/example_project_manager.glom:
-       * examples/example_smallbusiness.glom:
-
-1.21.5:
-
-2012-01-25  Murray Cumming  <murrayc murrayc com>
-
-       Depend on libgda 5.0.3 because we need the GdaNumeric corrections.
-
-       * configure.ac: This avoids errors when creating from examples, when
-       using a non-English locale. 
-       This fixes bug #668346 (Janne)
-
-1.21.4:
-
-2012-01-24  Murray Cumming  <murrayc murrayc com>
-
-       Fix document loading, and make distcheck.
-
-       * glom/glom_document.dtd: Mention that the database_title 
-       attribute is replaced by title.
-       * glom/libglom/document/document.cc: load_after(): Deprecate the 
-       database_title attribute, but do load it if it is present and 
-       if title is not.
-       get_latest_known_document_format_version(): Increase the version
-       because the deprecated attribute will not be saved.
-
-2012-01-23  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Replace more std::lists with std::vector.
-
-       * glom/libglom/connectionpool_backends/postgres_central.h:
-       * glom/libglom/data_structure/field.h:
-       * glom/libglom/data_structure/foundset.h:
-       * glom/libglom/data_structure/layout/fieldformatting.h:
-       * glom/libglom/data_structure/layout/layoutgroup.h:
-       * glom/libglom/document/document.h:
-       * glom/libglom/utils.h:
-       * glom/libglom/xsl_utils.h:
-       * glom/mode_data/datawidget/combo_as_radio_buttons.h:
-       This is more consistent.
-
-2012-01-23  Murray Cumming  <murrayc murrayc com>
-
-       Document: Allow the database title to be translated.
-
-       * glom/libglom/filelist.am:
-       * glom/libglom/database_title.[h|cc]: Add this new TranslatableItem.
-       * glom/libglom/document/document.[h|cc]: Use DatabaseTitle instead of just
-       a string, and load/save it in the database.
-       get_database_title(): Add a locale parameter and add 
-       get_database_title_original().
-       * glom/application.cc:
-       * glom/libglom/connectionpool.cc:
-       * glom/libglom/data_structure/translatable_item.[h|cc]:
-       * glom/libglom/db_utils.cc:
-       * glom/libglom/example_document_load.cc:
-       * glom/libglom/translations_po.cc:
-       * tests/test_document_autosave.cc:
-       * tests/test_document_change.cc:
-       * tests/test_document_load.cc:
-       * tests/test_document_load_translations.cc: Adapt.
-
-2012-01-23  Murray Cumming  <murrayc murrayc com>
-
-       Document: load_after_translation(), save_before_translation(): Use sharedptr.
-
-       * glom/libglom/document/document.[h|cc]: load_after_translation(), 
-       save_before_translation(): Take the TranslatableItem parameter as a sharedptr.
-       Any reason not to no longer applies.
-
-2012-01-22  Murray Cumming  <murrayc murrayc com>
-
-       Document: get_report_names(), get_print_layout_names(): Return a vector.
-
-       * glom/libglom/document/document.[h|cc]: get_report_names(), 
-       get_print_layout_names(): Return a std::vector instead of a std::list,
-       removing the typedefs, to be consistent with get_table_names().
-       This also helps java-libglom, whose std::list wrapper seems to be useless.
-       * glom/application.cc:
-       * glom/box_reports.cc:
-       * glom/mode_design/print_layouts/box_print_layouts.cc:
-       * tests/test_document_load.cc: Adapted.
-
-2012-01-18  Murray Cumming  <murrayc murrayc com>
-
-       Default to en rather than en_US for the original locale.
-
-       * glom/application.cc: get_original_locale(): Default to en rather than en_US.
-       * examples/*.glom: Change the original locale from en_US to en.
-
-1.21.3:
-
-2012-01-16  Murray Cumming  <murrayc murrayc com>
-
-       Avoid repetitive Application::get_current_locale() calls.
-
-       * glom/application.[h|cc]: Added item_get_title() and item_get_title_or_name()
-       outside of the class.
-       * glom/libglom/data_structure/translatable_item.h: Removed unused 
-       glom_get_sharedptr_title_or_name().
-       * glom/: Many files: Use the new functions to make the code slighly shorter.
-
-2012-01-16  Murray Cumming  <murrayc murrayc com>
-
-       TranslatableItems: Make less methods virtual.
-
-       * glom/libglom/data_structure/translatable_item.[h|cc]:
-       get_title_translation(), get_title_or_name_original():
-       Make these non-virtual, because nothing needs to override them.
-       * glom/libglom/data_structure/layout/layoutitem_field.[h|cc]:
-  Remove useless get_title_original(), get_title_translation(), and
-  get_title_or_name_original() overrides.
-  Remove useless and unused private get_title_no_custom_original() method.
-       * glom/libglom/document/document.[h|cc]: Add a 
-  fill_translatable_layout_items(LayoutItem_Field) method, and use it in 
-  fill_translatable_layout_items(LayoutGroup), instead of repeating code.
-  Avoid calling get_title_original() and get_title_translation() on 
-  LayoutItem_Field because it does not have its own title.
-       * glom/libglom/example_document_load.cc:
-       * tests/test_document_load_translations.cc: Adapted.
-
-2012-01-16  Murray Cumming  <murrayc murrayc com>
-
-       TranslatableItem: Require the caller to provide the locale.
-
-       * glom/libglom/data_structure/translatable_item.[h|cc]:
-       get_current_locale(), set_current_locale(), set_original_locale(),
-       get_current_locale_not_original(): Move to Glom::Application, out of 
-       libglom.
-       get_title(), set_title(), get_title_or_name(): Add a ustring locale 
-       parameter.
-       Added virtual get_title_original(), get_title_translation(), 
-       get_title_or_name_original(), get_title_or_name_translation().
-       Added set_title_original() and set_title_translation(), though these
-       are private and non-virtual.
-       This let use discover the actual original text and its translations
-       while still using get_title(locale) to just get the title that should
-       be used. Before we could get the exact entered title for a locale just
-       by setting the current locale.
-       * libglom/data_structure/layout/layoutitem_field.[h|cc]: Override the 
-       new virtual methods.
-       * Many other files: Adapt.
-
-       This allows us to use different translatations from Online Glom, which 
-       only loads the library once for all Glom files. And this is generally 
-       cleaner, even if it requires more repetitive code.
-
-2012-01-13  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load_translations: Test title_singular too.
-
-       * examples/example_film_manager.glom: Scenes table: Add a German
-       translation of the singular title.
-       * tests/test_document_load_translations.cc: Test 
-       Document::get_table_title_singular() in the original and de locales.
-
-2012-01-13  Murray Cumming  <murrayc murrayc com>
-
-       Import .po translations into the .glom example files.
-
-       * examples/example_film_manager.glom:
-       * examples/example_lesson_planner.glom:
-       * examples/example_music_collection.glom:
-       * examples/example_project_manager.glom:
-       * examples/example_smallbusiness.glom: Import some new German,
-       Czech, and Spanish translations. This is wonderful.
-
-1.21.2:
-
-2012-01-11  Murray Cumming  <murrayc murrayc com>
-
-       Fix make distcheck.
-
-       * Makefile.am: Add messages.mo to CLEANFILES, though I would prefer 
-  to not generate it in the first place. This is apparently triggered by 
-  the presence of the .po files in examples/po_files/ though these are 
-  not part of the build.
-
-2012-01-10  Murray Cumming  <murrayc murrayc com>
-
-       Allow creation of .pot files for .glom files.
-
-       * glom/libglom/translations_po.[h|cc]: Added write_pot_file().
-       * glom/glom_export_po.cc: Add a --template option to genereate
-       .pot files.
-       * Makefile.am: Use this new option to generate .pot files 
-       when exporting all .po files.
-       * examples/po_files/*/*.pot: Add these generated files to git,
-       to help translators to start new translations.
-
-2012-01-10  Murray Cumming  <murrayc murrayc com>
-
-       Add README about examples' .po files.
-
-       * examples/po_files/README:
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       Export .po files for the example files.
-
-       * examples/po_files/example_film_manager/de.po:
-       * examples/po_files/example_lesson_planner/de.po:
-       * examples/po_files/example_music_collection/de.po:
-       * examples/po_files/example_project_manager/de.po:
-       * examples/po_files/example_smallbusiness/de.po:
-       Hopefully people will translate these and add more,
-       for me to import back into the .glom files with
-       $ make examples_import_po
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       examples: Remove translations for useless locale.
-
-       * examples/example_lesson_planner.glom:
-       * examples/example_project_manager.glom:
-       * examples/example_smallbusiness.glom:
-       * ldtp/database-templates/PostgresCentral/Test.glom:
-       * ldtp/database-templates/SQLite/Test.glom: For some reason
-       these had translations for de_BE, de_AT, en_GB, and en_US.
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       Translations: Prefer non-country-specific locales, such as de.
-
-       * examples/example_film_manager.glom:
-       * examples/example_lesson_planner.glom:
-       * examples/example_music_collection.glom:
-       * examples/example_project_manager.glom:
-       * examples/example_smallbusiness.glom:
-       * examples/sqlite/test_sqlite_music/test_sqlite_music.glom:
-       * ldtp/database-templates/PostgresCentral/Test.glom:
-       * ldtp/database-templates/SQLite/Test.glom:
-       * tests/test_document_load_translations.cc:
-       * tests/translations_po/test_document_export_po.cc:
-       * tests/translations_po/test_document_import_po.cc:
-       Replace de_DE with de.
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       Translations: Offer non-country-specific language locales too.
-
-       * Makefile_tests.am:
-       * glom/libglom/utils.cc: locale_language_id(): Parse language-only
-       locale IDs too.
-       * glom/mode_design/iso_codes.cc: get_locale_name(): Create non-country
-       locale IDs too, though they are not in the iso-codes XML file.
-       * glom/mode_design/translation/window_translations.cc: Show, for instance
-       German (de) as well as the existing German (Germany), German (Austria),
-       etc.
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       Add rules for batch .po import and export for the examples.
-
-       * Makefile.am: Add examples_export_po and examples_import_po targets 
-       that must be run manually. For instance:
-       $ make examples_export_po
-       and
-       $ make examples_import_po
-       * glom/glom_import_po_all.cc: Improve the stdout message.
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       Exporting of .po files: Do not lose non-ASCII characters.
-
-       * glom/libglom/translations_po.cc: write_translations_to_po_file():
-  Write the file manually instead of using gettext-po.h and its po_file_write(), 
-  because that loses non-ASCII characters (see previous commit).
-  make check now works.
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       test_document_export_po: Test a special character.
-
-       * tests/translations_po/test_document_export_po.cc:
-       Demonstrate that the po file export currently drops non-ASCII characters.
-  Apparently there is no way to tell po_file_write() to use UTF-8 encoding, 
-  though that can be affected by code that uses the libgettext-po source code 
-  itself, by setting output_format_po.requires_utf8.
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       Add glom_import_po_all command-line utility.
-
-       * glom/libglom/translations_po.cc: write_translations_to_po_file():
-  Mark the document as modified so the changes will (or can be) saved.
-       * Makefile_libglom.am:
-       * glom/glom_import_po_all.cc: Add this command-line utility to read all 
-       .po files in a directory back into the .glom file.
-       
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       Command-line utilities: Initialize gettext and the locale.
-
-       * glom/glom_create_from_example.cc:
-       * glom/glom_export_po.cc:
-       * glom/glom_export_po_all.cc:
-       * glom/glom_test_connection.cc: This should make the translations be used.
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       glom_export_po_all: Actually export the translations.
-
-       * glom/glom_export_po_all.cc: Use the available locale_id,
-       instead of an unset variable that should not be used.
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       export_po_all: Fix some typos.
-
-       * glom/glom_export_po_all.cc: Fix some typos.
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load_translations: Test more fallbacks.
-
-       * examples/example_film_manager.glom: Remove the useless en_GB translations.
-       * tests/test_document_load_translations.cc: Check that similar locales 
-  are used if there is no translation.
-
-2012-01-09  Murray Cumming  <murrayc murrayc com>
-
-       Added glom_export_po_all command-line too.
-
-       * Makefile_libglom.am:
-       * glom/glom_export_po_all.cc: This outputs all .po files to a directory.
-
-2012-01-08  Murray Cumming  <murrayc murrayc com>
-
-       test_document_export_po: Use msgfmt -c to test the exported .po file.
-
-       * configure.ac: Get the path for msgfmt.
-       * tests/translations_po/test_document_export_po.cc: Use msgfmt -c to
-       check the new .po file.
-
-2012-01-08  Murray Cumming  <murrayc murrayc com>
-
-       glom_export_po: Let the user choose the locale ID.
-
-       * glom/glom_export_po.cc: Add, and use, a --locale-id (-l) option
-       instead of just hard-coding de_DE.
-
-2012-01-08  Murray Cumming  <murrayc murrayc com>
-
-       Export to po file: Write a po file header.
-
-       * glom/libglom/translations_po.[h|cc]: write_translations_to_po_file():
-       Add an optional locale_name parameter. We cannot discover this inside
-       the function because we only use iso-codes in glom, not libglom, and 
-       I would prefer not to move that static data into libglom.
-       * glom/mode_design/translation/window_translations.cc: 
-       on_button_export():Pass the extra locale_name parameter.
-       * tests/translations_po/data/test.po: Resave.
-
-       This makes the written .po file pass validation by msgfmt -c on the 
-       command line.
-
-2012-01-08  Murray Cumming  <murrayc murrayc com>
-
-       Import of po files: Handle empty gettext strings.
-
-       * glom/libglom/translations_po.cc: Handle empty msgid, msgstr and 
-       msgctxt.
-
-2012-01-08  Murray Cumming  <murrayc murrayc com>
-
-       Export to po file: Improve the msgtxt hints more.
-
-       * glom/libglom/document/document.cc: fill_translatable_layout_items():
-       Mention the parent groups in the hints, t omake them more unique.
-       * tests/translations_po/data/test.po: Resaved.
-
-2012-01-08  Murray Cumming  <murrayc murrayc com>
-
-       Export to po file: Improve the msgtxt hints.
-
-       * glom/libglom/data_structure/translatable_item.[h|cc]: 
-       get_translatable_item_type(): Make this const.
-       * glom/libglom/document/document.[h|cc]: get_translatable_items():
-       Now return a list of pairs, so each TranslatableItem also has a hint
-       for the msgtxt for the po (gettext) file, so that each can be 
-       identified uniquely and so that the translator has some context.
-       * glom/libglom/translations_po.[h|cc]: Adapt.
-       * glom/mode_design/translation/window_translations.[h|cc]: Adapt,
-       showing the actual hint instead of just the item type.
-       * tests/test_document_load_translations.cc: Adapted.
-       * tests/translations_po/data/test.po: Reexported.
-
-2012-01-07  Murray Cumming  <murrayc murrayc com>
-
-       Move po file (gettext) import and export into libglom and test it.
-
-       * glom/mode_design/translation/window_translations.[h|cc]:
-       load_from_document(), save_to_document(): Move the collecting of
-       translatable items to:
-       * glom/libglom/document/document.[h|cc]: get_translatable_items();
-       Also move the gettext/po import/export to:
-       * Makefile_libglom.am:
-       * glom/libglom/filelist.am:
-       * glom/libglom/translations_po.[h|cc]: write_translations_to_po_file()
-       and import_translations_from_po_file().
-
-       * Makefile_tests.am
-       * tests/translations_po/data/test.po:
-       * tests/translations_po/test_document_export_po.cc:
-       * tests/translations_po/test_document_import_po.cc: Add tests of the new 
-       libglom functions.
-
-       * Makefile_glom.am
-       * glom/glom_export_po.cc: Added a new command-line tool that uses the
-       new libglom API.
-
-2012-01-07  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load: Fix a typo.
-
-       * tests/test_document_load.cc: Check the correct variable.
-
-2012-01-06  Murray Cumming  <murrayc murrayc com>
-
-       Replace most uses of g_object_set() with C++ code.
-
-       * glom/mode_data/datawidget/cellcreation.cc:
-       * glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
-       * glom/mode_data/db_adddel/db_adddel.cc:
-       * glom/mode_design/layout/dialog_layout_export.cc:
-       * glom/utility_widgets/adddel/adddel.cc:
-       Apart from some uses, due to GTK+ bug #667415 .
-
-       These were probably using C code due to the reduced API on Maemo,
-       but we remove the Maemo code a while ago.
-
-2012-01-06  Murray Cumming  <murrayc murrayc com>
-
-       List: Custom choices: Make them work here too.
-
-       * glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
-       Added get_custom_choice_original_for_translated_text() and
-       get_custom_choice_translated() to convert between original and 
-       translated choice text.
-       * glom/libglom/data_structure/layout/layoutitem_field.[h|cc]:
-       Add a get_formatting_used_has_translatable_choices() convenience method.
-       * tests/test_document_load_translations.cc: Test these new methods.
-
-       * glom/mode_data/datawidget/cellcreation.cc: create_cell():
-       Pass the restricted bool to set_choices_restricted() so that the
-       translations can be used.
-       * glom/mode_data/db_adddel/db_adddel.cc:
-       on_treeview_cell_edited(): store only the original (not translated) 
-       text in the database so that other locales can also show their own 
-       translations.
-       treeviewcolumn_on_cell_data(): Show the translated text, not the 
-       original.
-
-2012-01-05  Murray Cumming  <murrayc murrayc com>
-
-       DTD: formatting: Mention choices_restricted to fix make check.
-
-       * glom/glom_document.dtd: Note that this is not a new part of the
-       file format. We just never used it in an example before.
-
-2012-01-04  Murray Cumming  <murrayc murrayc com>
-
-       Custom Choices: Allow these to be translated when used for text fields. 
-
-       * glom/libglom/filelist.am:
-       * glom/libglom/data_structure/layout/choicevalue.[h|cc]: Add the
-       ChoiceValue translatable item. The translations are only meaningful
-       when this is used for a text field.
-       * glom/libglom/data_structure/translatable_item.[h|cc]:
-       Make get_title_original() virtual, so ChoiceValue can override it,
-       to return a text representation of its Gnome::Gda::Value.
-       Always use get_title_original() instead of the member variable,
-       so that the method override is used when appropriate.
-       * glom/libglom/data_structure/layout/fieldformatting.h:
-       set/get_choices_custom(): Return a list of ChoiceValues instead of 
-       Gnome::Gda::Values.
-       * glom/mode_data/datawidget/cellcreation.cc:
-       * glom/mode_design/layout/layout_item_dialogs/box_formatting.cc: Adapt.
-
-       * glom/libglom/document/document.[h|cc]: 
-       load_after_layout_item_formatting(), save_before_layout_item_formatting():
-       Adapt and load/save the ChoiceValue translations too.
-       fill_translatable_layout_items(): Return the ChoiceValue items too.
-       Add a static fill_translatable_custom_choices() helper function. 
-
-       * glom/mode_data/datawidget/combochoices.h: set_choices_fixed():
-       Add an optional restricted parameter, because the translations are 
-       only useful if the choices are restricted.
-       * glom/mode_data/datawidget/cellrenderer_dblist.[h|cc]:
-       * glom/mode_data/datawidget/combo_as_radio_buttons.[h|cc]:
-       * glom/mode_data/datawidget/datawidget.cc:Adapted.
-       * glom/mode_data/datawidget/combochoiceswithtreemodel.[h|cc]:
-       set_choices_fixed(): Use get_title() if the choice could be translated.
-       * glom/mode_data/datawidget/combo.[h|cc]: set_choices_fixed():
-       Use the (translated) text value if the choice could be translated.
-
-       * glom/mode_design/translation/window_translations.cc:
-       load_from_document(): For text fields, handle the ChoiceValues too.
-
-       * tests/test_document_load.cc: Adapt.
-       * tests/test_document_load_translations.cc: Test ChoiceValue 
-       translations too.
-       * examples/example_film_manager.glom: Add some translations for the 
-       Scene::Day/Night field's choices. Also make the choices for this 
-       field restricted, so the translations can be used.
-       * glom/glom_document.dtd: custom_choice: Mention the new trans_set
-       child tags.
-
-       This fixes bug #666343
-
-2012-01-04  Murray Cumming  <murrayc murrayc com>
-
-       Details: Make restricted choices work.
-
-       * glom/mode_data/datawidget/combochoiceswithtreemode.[h|cc]:
-       on_cell_data(): Move some code into set_cell_for_field_value().
-       * glom/mode_data/datawidget/combo.[h|cc]: on_fixed_cell_data():
-       Connect a cell_data slot that uses set_cell_for_field_value(), 
-       instead of trying to associate a Gnome::Gda::Value with a cell's text 
-       property. 
-
-       Without this, the choice combobox's rows were empty when the field's
-       value should be restricted to the available custom (fixed) choices.
-
-2011-12-30  Murray Cumming  <murrayc murrayc com>
-
-       Dialog_NewRecord: Hide the layout toolbar.
-
-       * glom/mode_data/datawidget/dialog_new_record.cc: setup(): The toolbar is 
-       useless here.
-
-2011-12-30  Murray Cumming  <murrayc murrayc com>
-
-       Cut menu: Prevent cutting from non-editable GtkTextViews.
-
-       * glom/bakery/app_withdoc_gtk.cc: on_menu_edit_cut_activate():
-       Pass the extra parameter to cut_clipboard(). 
-
-2011-12-30  Murray Cumming  <murrayc murrayc com>
-
-       Details: Really make non-editable multiline text fields non-editable.
-  
-       * glom/mode_data/datawidget/textview.[h|cc]: Override set_read_only(),
-       so that multiline text fields are really non-editable when the formatting
-       specifies that.
-
-2011-12-29  Murray Cumming  <murrayc murrayc com>
-
-       App_WithDoc_Gtk: Simple clipboard menu handlers: Handle GtkTextView
-
-       * glom/bakery/app_withdoc_gtk.cc: Add code to handle cut/copy/paste
-       when GtkTextView is focused. This is tedious - see bug #667008 .
-
-2011-12-29  Murray Cumming  <murrayc murrayc com>
-
-       App_WithDoc_Gtk: Improve simple clipboard handlers.
-
-       * glom/bakery/app_withdoc_gtk.cc: Do not use C code. And therefore do
-       not use Glib::wrap() strangely.
-
-2011-12-29  Murray Cumming  <murrayc murrayc com>
-
-       Document::fill_layout_field_details(): Handle related choices sort fields.
-
-       * glom/libglom/document/document.[h|cc]: fill_layout_field_details():
-       Also fill the details of the sort fields for related choices, dealing 
-       with those TODO comments.
-
-2011-12-29  Murray Cumming  <murrayc murrayc com>
-
-       Related Choices: Allow the user to specify a sort order.
-
-       * glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
-       set/get_choices_related(): Added a sort_fields parameter.
-       * glom/libglom/document/document.[h|cc]: fill_layout_field_details(),
-       load_after_layout_item_formatting(), save_before_layout_item_formatting():
-       Load and save the sort fields for related choices.
-       * glom/libglom/utils.cc: get_choice_values(): Use the sort fields.
-       Added get_list_of_sort_fields_for_display().
-  
-       * glom/mode_data/datawidget/cellcreation.cc:
-       * glom/mode_data/datawidget/combo_as_radio_buttons.cc:
-       * glom/mode_data/datawidget/combochoiceswithtreemodel.cc: Adapted.
-  
-       * Makefile.am, Makefile_glom.am:
-       * glom/mode_design/layout/layout_item_dialogs/dialog_groupby_sortfields.[h|cc]:
-       Rename to:
-       glom/mode_design/layout/layout_item_dialogs/dialog_sortfields.[h|cc]:
-       and rename the class to Dialog_SortFields.
-       * ui/developer/dialog_groupby_sort_fields.glade: Rename to 
-       * ui/developer/dialog_sort_fields.glade
-       
-       * ui/developer/box_formatting.glade:
-       * glom/mode_design/layout/layout_item_dialogs/box_formatting.cc: Add UI to
-       specify the related choices sort order, using the new dialog, much like 
-       the existing extra-fields UI.
-       
-2011-12-29  Murray Cumming  <murrayc murrayc com>
-
-       Foreign key ID fields: Add a New button next to the existing Find button.
-
-       * glom/mode_data/datawidget/dialog_new_record.[h|cc]: A new dialog to 
-       quickly add a new related record.
-       * ui/operator/dialog_new_record.glade: The UI layout for that dialog.
-
-       * glom/mode_data/datawidget/datawidget: Constructor: Whenever we would 
-       add a Find or Open button, also add a New button, so the user does not 
-       need to manually go to the other table, add a record, and then come 
-       back to the right record. Add offer_related_record_id_new() to implement
-       this.
-       Added signal_choices_changed() which is emitted when this would result
-       in the list of related choices changing.
-       * glom/mode_data/box_data_details.cc: Constructor: Handle the 
-       field_choices_changed() signal, calling:
-       * glom/mode_data/flowtablewithfields.cc: a new update_choices() method,
-       to update all affected combo boxes.
-
-       * tests/test_glade_derived_instantiation.cc: Test the new dialog.
-
-       This will not quite work properly yet when the related choices should 
-       be restricted by an ID value.
-
-2011-12-27  David King  <davidk openismus com>
-
-       Add simple clipboard handlers to App_WithDoc_Gtk
-
-       * glom/bakery/app_withdoc_gtk.[cc|h]: Add simple clipboard handlers to
-       fix bug #518315.
-
-2011-12-24  Murray Cumming  <murrayc murrayc com>
-
-       Choices: Make sure related choices are sorted.
-
-       * glom/mode_data/datawidget/combochoiceswithtreemodel.cc: 
-       set_choices_related(): Add a sort clause, though it would be best if
-       the developer could specify this.
-       Note that Utils::get_choice_values(), used for other choices, already 
-       does this, and we should reduce the code duplication.
-
-2011-12-23  Murray Cumming  <murrayc murrayc com>
-
-       Document_XML: Remove an unimplemented method.
-
-       * glom/libglom/document/bakery/document_xml.h:
-       add_indenting_white_space() was never implemented or 
-       used.
-
-2011-12-21  Murray Cumming  <murrayc murrayc com>
-
-       Dialog_ChooseID: Really show the quick find feature.
-
-       * ui/operator/dialog_find_id.glade: Correct some widget names.
-       We were removing a widget too high in the hierarchy, so we did not 
-       show the quick find. This was presumably broken by some conversion
-       to a new version of Glade at some point.
-
-2011-12-20  Murray Cumming  <murrayc murrayc com>
-
-       TranslatableItem::get_title_translation(): Correct fallback code.
-
-       * glom/libglom/data_structure/translatable_item.cc: This fixes make
-       check, which was broken after the recent change to this class.
-
-2011-12-20  Murray Cumming  <murrayc murrayc com>
-
-       Make this (Glom 1.21/22) parallel installable with glom 1.20.
-
-       * configure.ac: Increase version to 1.21.1.
-       * docs/pyglom_reference/Makefile.am:
-       * glom/libglom/init.h:
-       * glom/python_embed/python_module/py_glom_module.cc: Change mention of 
-       1.20 or 1_20 to 1.22 or 1_20.
-
-2011-12-19  Murray Cumming  <murrayc murrayc com>
-
-       TranslatableItem: Improve the API slightly.
-
-       * glom/libglom/data_structure/translatable_item.[h|cc]:
-       Renamed set/get_translation() to set/get_title_translation() to make 
-       it clearer, and to match set/get_title_original(). Add an optional bool 
-       fallback parameter, so we can move the fallback code into this method,
-       and simplify get_title(). This lets us easily get the title for a 
-       specified locale, with one method, even if that locale is the original/
-       current locale.
-       Removed get_title(locale), because it is hardly used, because any
-       override of the other (virtual) get_title() method overload would make 
-       it hard to call this anyway. And it just forwarded to 
-       get_title_translation() anyway. 
-       Likewise for set_title(locale).
-       * glom/libglom/document/document.cc:
-       * glom/mode_design/translation/window_translations.cc: Adapted.
-       * tests/test_document_load_translations.cc: Adapted and added some 
-       more test lines for get_title_translation().
-
-2011-12-19  Murray Cumming  <murrayc murrayc com>
-
-       PostgreSQL backend: Comment out the stdout exception information again.
-
-       * glom/libglom/connectionpool_backends/postgres.cc: This was 
-       misleading when trying all ports, when we expect some failures.
-
-2011-12-19  Murray Cumming  <murrayc murrayc com>
-
-       List: Really store data when the primary key is not auto-incremented.
-
-       * glom/mode_data/db_adddel/db_adddel.cc: user_added(): Do not use 
-       get_value_key_selected() to get the entered field data, because that 
-       is only useful after the key has been entered. Instead get the 
-       entered data from the cell where it was entered.
-
-2011-12-18  Murray Cumming  <murrayc murrayc com>
-
-       PostgreSQL: Print stderr message when the connection fails completely.
-
-       * glom/libglom/connectionpool_backends/postgres.cc: This can provide 
-       a clue, for instance when the hostname cannot be resolved.
-
-2011-12-18  Murray Cumming  <murrayc murrayc com>
-
-       Add the glom_test_connection command-line tool.
-
-       * Makefile_libglom.am:
-       * glom/glom_test_connection.cc: This is useful for sanity checking 
-       of the configuration of central PostgreSQL servers.
-
-2011-12-16  Murray Cumming  <murrayc murrayc com>
-
-       Film Manager example: Use English for Day/Night choices.
-
-       * examples/example_film_manager.glom: Use English for the custom choice 
-       values. We need to allow these to be translated. See bug #666343
-
-2011-12-14  Murray Cumming  <murrayc murrayc com>
-
-       Document: Added get_translation_available_locales().
-
-       * glom/libglom/document/document.[h|cc]: load_after(), 
-       load_after_translations(): Remember any new locales encountered, so 
-       that get_translation_available_locales() can later return the list.
-       This could help with OnlineGlom bug #666165 .           
-       * tests/test_document_load_translations.cc: Test the new method.
-
-2011-12-13  Murray Cumming  <murrayc murrayc com>
-
-       Correct parsing of example data.
-
-       * glom/libglom/data_structure/field.[h|cc]: to_file_format(),
-       from_file_format() documentation: Mention that this uses CSV format.
-       from_file_format(): Unescape double quotes, because we escape quotes
-       as that in to_file_format().
-       This avoids reading them as double quotes when opening an example file.
-       This will also correct the interpretation of text default values.
-       * Makefile_tests.am:
-       * tests/test_field_file_format.cc: Add a test of this for text and image
-       data, checking that what we write is what we read.
-
-2011-12-13  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_then_image: Move some code to test_utils.
-
-       * Makefile_tests.am:
-       * tests/test_selfhosting_new_then_image.cc: Move the test image-loading
-       code to:
-       * tests/test_utils.[h|cc]: get_value_for_image().
-
-2011-12-12  Murray Cumming  <murrayc murrayc com>
-
-       LayoutGroup: Correct the get_items_recursive_with_groups() implementation.
-
-       * glom/libglom/data_structure/layout/layoutgroup.cc: Call the correct 
-       method recursively. This fixes make check.
-
-2011-12-12  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load: Test LayoutGroup::get_items_recursive().
-
-       * tests/test_document_load.cc: And get_items_recursive_with_groups().
-
-2011-12-12  Murray Cumming  <murrayc murrayc com>
-
-       Small fix to repository_analyzer_begin_scan example script.
-
-       * examples/example_scripts/repository_analyzer_begin_scan.py:
-       Remove the global variables, used for debugging, because recent versions of 
-       Python do not seem to treat them as global when this script is used as 
-       a Button script in python. So it says they are undefined. They are, after 
-       all, inside the function that glom defines.
-       Although they would still work in this standalone script, it is nice to 
-       have no difference between this file and the one used in this .glom file:
-       https://gitorious.org/debian_repository_analyzer/debian_repository_analyzer
-
-2011-12-12  Murray Cumming  <murrayc murrayc com>
-
-       List view: Do not show columns twice.
-
-       * glom/libglom/data_structure/layout/layoutgroup.[h|cc]: 
-       Revert the recent change to get_items_recursive() so that it only returns
-       no-groups items, as its documentation says.
-       Add get_items_recursive_with_groups().
-       * tests/test_document_load.cc: Use the new method.
-
-       This problem was caused by commit e51bf19e8a595dbc4e34c390ae2194293deb0236
-
-2011-12-09  Murray Cumming  <murrayc murrayc com>
-
-       Users/Groups UI: Avoid warning about an empty group name.
-
-       * glom/mode_design/users/dialog_groups_list.cc:
-       on_treeview_groups_selection_changed(): Do not respond if there is 
-       no selection, which can happen when clearing the model, just before 
-       filling it. When there are items, there is always a selection.
-
-2011-12-09  Murray Cumming  <murrayc murrayc com>
-
-       Combo_TextGlade: Work around GtkComboBoxText bug #612396.
-
-       * glom/utility_widgets/combo_textglade.cc: Without setting 
-       entry-text-column, which GtkBuilder understandably does not do,
-       and which GtkComboBoxText does not do in this case, the widget just
-       does not work.
-       This fixes the Users/Groups dialogs and the Script Library dialog.
-
-2011-12-09  Murray Cumming  <murrayc murrayc com>
-
-       test_glade_derived_instantiation: Avoid warnings about no connection.
-
-       * glom/mode_design/users/dialog_groups_list.cc: Constructor:
-       Do not call fill_groups_list(). This happens already in load_from_document(),
-       where we can expect more to have a connection.
-       * glom/mode_design/users/dialog_users_list.[h|cc]: Make fill_list public
-       and expect the caller of the constructor to call it.
-
-2011-12-08  Murray Cumming  <murrayc murrayc com>
-
-       test_fake_connection: Avoid unnecessary warnings about metadata.
-
-       * glom/libglom/connectionpool.cc: Avoid printing exceptions to stderr
-       about failed attempts to get types and tables metadata, because 
-       this is not used by fake connections, for instance by java-libglom.
-       There will be a warning later if it is really used.
-       * glom/libglom/db_utils.cc: Add some comments.
-
-2011-12-08  Murray Cumming  <murrayc murrayc com>
-
-       Document: Clarify that set_file_uri() does not trigger a save.
-
-       * glom/libglom/document/document.[h|cc]: set_file_uri(): The check for 
-       a changed URI never actually worked here, so set_modified() was never 
-       called. That behaviour is actually correct, to avoid saving an empty file
-       over a real file before calling load(), so document that behaviour.
-       * glom/libglom/document/bakery/document_xml.cc: Remove the check for
-       modified so that an explicit save() always saves the document, even if 
-       all values are the default. This does not seem to have prevented any
-       unnecessary saves anyway, because we already check for changes before
-       calling set_modified(), so we only trigger autosave when really necessary.
-
-2011-12-06  Murray Cumming  <murrayc murrayc com>
-
-       Test for autosaves without URI and for explicit saves while using autosave.
-
-       * glom/libglom/document/bakery/document.cc: write_to_disk():
-       Warn if the URI has not been set, because the caller probably wants 
-       either autosave (meaning he should have set a URI first) or explicit 
-       save (meaning he should disable autosave).
-       * glom/libglom/document/bakery/document_xml.cc: Warn about an attempt
-       to save when nothing has been modified, because this is usually caused
-       by a previous autosave, and the caller should probably be aware of that.
-       * tests/test_document_autosave.cc:
-       * tests/test_document_change.cc:
-       * tests/test_selfhosting_new_empty.cc:
-       * tests/test_selfhosting_new_then_backup_restore.cc:
-       * tests/test_selfhosting_utils.cc: Disable autosave so we can use 
-       a simpler explicit save, avoiding these new warnings.
-
-2011-12-06  Murray Cumming  <murrayc murrayc com>
-
-       Add a test that resaves (temporarily) all examples and checks the result.
-
-       * Makefile_tests.am:
-       * tests/test_document_load_and_save.cc: Load a file and save it, 
-       then check the saved file against the DTD.
-       * tests/test_document_load_and_save_all.sh: Run that test on all
-       example files.
-       * glom/glom_document.dtd: data_layout_notebook: Mention trans_set, 
-       so that this test succeeds.
-
-2011-12-06  Murray Cumming  <murrayc murrayc com>
-
-       Use EXIT_* instead of 0 and -1.
-
-       * glom/test_pyembed.cc:
-       * glom/test_pyembed_singleline.cc:
-       * tests/glade_toplevels_instantiation.cc:
-       * tests/test_parsing_time.cc: Use EXIT_SUCCESS and EXIT_FAILURE.
-
-2011-12-06  Murray Cumming  <murrayc murrayc com>
-
-       Document: Avoid useless autosave during constructor.
-
-       * glom/libglom/document/document.cc: Constructor: Avoid triggering
-       autosave during the constructor, though this is stopped anyway by the 
-       empty filepath.
-
-2011-12-05  Murray Cumming  <murrayc murrayc com>
-
-       Remove unused get_sql_format() methods.
-
-       * glom/libglom/connectionpool.[h|cc]:
-       * glom/libglom/connectionpool_backends/backend.h:
-       * glom/libglom/connectionpool_backends/postgres.[h|cc]:
-       * glom/libglom/connectionpool_backends/sqlite.[h|cc]: Remove the
-       various unused get_sql_format() methods.
-
-2011-12-05  Murray Cumming  <murrayc murrayc com>
-
-       Field: Remove unused get_gda_holder_string().
-
-       * glom/libglom/data_structure/field.[h|cc]: Remove this 
-       unused method.
-
-2011-12-05  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_then_change_columns: Add a column too.
-
-       * tests/test_selfhosting_new_then_change_columns.cc:
-
-2011-12-05  Murray Cumming  <murrayc murrayc com>
-
-       Added a test of field choices.
-
-       * Makefile_tests.am: 
-       * tests/test_selfhosting_new_then_choices.cc:
-       Test Utils::get_choice_values_all().
-
-2011-12-04  Murray Cumming  <murrayc murray com>
-
-       Document DTD: adapt to the format we actually use.
-
-       * examples/example_film_manager.glom: Resave this.
-       * glom/glom_document.dtd: Change the sequence of child nodes for 
-       tables and print_layouts to match what we really write.
-       We do not really care about this but the DTD format forces us to 
-       use a sequence.
-
-2011-12-03  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load: Check reports too.
-
-       * tests/test_document_load.cc: Check some report names.
-
-2011-12-03  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load: Check a table title and its singular title.
-
-       * tests/test_document_load.cc: Also test 
-       get_data_layout_groups_have_any_fields().
-
-2011-12-03  Murray Cumming  <murrayc murrayc com>
-
-       tests/test_document_load_and_change: Change a relationship name.
-
-       * Makefile_tests.am: Use the test_utils.
-       * tests/test_document_load_and_change.cc: Also rename a relationship
-       and check that a layout item uses the new relationship name.
-
-2011-12-03  Murray Cumming  <murrayc murrayc com>
-
-       Tests: Add a shared get_field_on_layout() function.
-
-       * tests/test_document_load.cc: Move get_field_on_layout() to 
-       * Makefile_tests.am:
-       * tests/test_utils.[h|cc]: here.
-
-
-2011-12-02  Murray Cumming  <murrayc murrayc com>
-
-       Added test_document_load_translations
-
-       * tests/test_document_load_translations.cc: Test some translated 
-       titles.
-
-2011-12-02  Murray Cumming  <murrayc murrayc com>
-
-       DbUtils::recreate_database_from_document(): Set table privileges too.
-
-       * glom/libglom/db_utils.cc: recreate_database_from_document():
-       Also call set_table_privileges_groups_from_document().
-
-2011-12-02  Murray Cumming  <murrayc murrayc com>
-
-       DbUtils::recreate_database_from_document(): Create groups too.
-
-       * glom/libglom/db_utils.[h|cc]: recreate_database_from_document():
-       Also call add_groups_from_document().
-
-2011-12-02  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load: Move changes into test_document_load_and_change.
-
-       * tests/test_document_load.cc:
-       * tests/test_document_load_and_change.cc:
-
-2011-12-02  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load: Test Document's user groups functions too.
-
-       * tests/test_document_load.cc: Check for expected group names and check 
-       that we can remove one.
-
-2011-12-02  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load: Test some navigation utility functions.
-
-       * glom/libglom/data_structure/layout/layoutgroup.cc: get_items_recursive():
-  Return the child groups as well as their items.
-       * tests/test_document_load.cc:
-       Test DbUtils::layout_field_should_have_navigation() and 
-       LayoutItem_Portal::get_suitable_table_to_view_details().
-       
-2011-12-02  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_empty(): Also test DbUtils::get_unused_database_name().
-
-       * glom/libglom/db_utils.cc: get_unused_database_name(): Remove debug output.
-       * tests/test_selfhosting_new_empty.cc: Excercise DbUtils::get_unused_database_name(),
-       though we do not test it yet when the first choice already exists.
-
-2011-12-02  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_empty(): Correct and expand.
-
-       * tests/test_selfhosting_new_empty.cc: Fix a CENTRAL->SELF typo. This 
-       probably only appeared to work before because no database cluster was really 
-       being initialized. Also actually create a database in the database cluster 
-       and set its system preferences table's record.
-
-2011-12-01  Murray Cumming  <murrayc murrayc com>
-
-       test_selfhosting_new_then_lookup: Minor improvements.
-
-       * tests/test_selfhosting_new_then_lookup.cc: Avoid some hard-coding.
-
-2011-12-01  Murray Cumming  <murrayc murrayc com>
-
-       Moved some lookup functions into DbUtils and added a test for them.
-
-       * glom/libglom/db_utils.[h|cc]:
-       * glom/base_db.[h|cc]: Moved get_fields_for_table(), 
-       get_fields_for_table_one_field(), get_lookup_fields(), and 
-       get_lookup_value() to the DbUtils namespace, taking an extra 
-       Document parameter.
-       * glom/libglom/document/document.[h|cc]: Moved get_lookup_fields() to 
-       DbUtils too.
-
-       * glom/base_db_table_data.cc
-       * glom/mode_data/box_data.cc
-       * glom/mode_data/box_data_calendar_related.cc
-       * glom/mode_data/box_data_details.cc
-       * glom/mode_data/box_data_list_related.cc
-       * glom/mode_data/db_adddel/db_adddel.cc
-       * glom/mode_design/box_db_table_relationships.cc
-       * glom/mode_design/fields/box_db_table_definition.cc
-       * glom/mode_design/fields/dialog_fielddefinition.cc
-       * glom/mode_design/layout/dialog_layout_list_related.cc
-       * glom/print_layout/canvas_print_layout.cc: Adapted. This shows how
-       often we call this very inefficient function. It would be better to
-       just make sure that the document has up-to-date information from the 
-       database and just use the Document's information.
-
-       * Makefile_tests.am:
-       * tests/test_selfhosting_new_then_lookup.cc: Added a new test of
-       these functions, including retrieval of a lookup value.
-
-2011-11-30  Murray Cumming  <murrayc murrayc com>
-
-       Remove unused parameternamegenerator source file.
-
-       * glom/libglom/filelist.am:
-       * glom/libglom/data_structure/parameternamegenerator.[h|cc]: Remove this 
-       unused class.
-       * glom/base_db.cc
-       * glom/libglom/db_utils.cc: Do not include it.
-
-2011-11-30  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load_and_change: Test renaming and removing of tables.
-
-       * tests/test_document_load_and_change.cc: This also checks that relationships
-       are update when a table is renamed.
-
-2011-11-30  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load_and_change: Test print layout removal.
-
-       * tests/test_document_load_and_change.cc:
-
-2011-11-30  Murray Cumming  <murrayc murrayc com>
-
-       Updated the Document DTD.
-
-       * glom/glom_document.dtd: This fixes make check with the new save of 
-       examples/example_film_manager.glom.
-
-2011-11-30  Murray Cumming  <murrayc murrayc com>
-
-       self-hosting tests: Avoid some noisy stdout messages.
-
-       * tests/test_selfhosting_utils.cc: Do not show PostgreSQL startup, etc,
-       progress messages.
-
-2011-11-30  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load: Test print layout functions.
-
-       * examples/example_film_manager.glom: Add a contacts print layout and 
-       resave this.
-       * tests/test_document_load.cc: Test the print layout data.
-
-2011-11-30  Murray Cumming  <murrayc murrayc com>
-
-       test_load_and_change(): Test removal of a relationship.
-
-       * tests/test_document_load_and_change.cc: Test Document::remove_relationship().
-
-2011-11-30  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load: Test field formatting.
-
-       * tests/test_document_load.cc: Also use a different example, to
-       widen the range of examples that we test.
-
-2011-11-29  Murray Cumming  <murrayc murrayc com>
-
-       test_document_change: Test a little more API.
-
-       * tests/test_document_change.cc: Add a table and test some API that uses it.
-  We could do much more here.
-
-2011-11-29  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load_and_change: Test Document::remove_field() too.
-
-       * tests/test_document_load_and_change.cc: Exercise a little more of the API.
-
-2011-11-29  Murray Cumming  <murrayc murrayc com>
-
-       LayoutGroup: Add a more useful remove_field().
-
-       * glom/libglom/data_structure/layout/layoutgroup.[h|cc]:
-       Add a remove_field(parent_table_name, table_name, field_name) method overload,
-       deprecating the existing method overloads.
-       * glom/libglom/document/document.cc: Adapt.
-       * tests/test_document_load_and_change.cc: Test a different example,
-       so we can check for a related field on a layout.
-
-2011-11-29  Murray Cumming  <murrayc murrayc com>
-
-       LayoutGroup: Deprecate the old has_field() method and do not use it.
-
-       * glom/libglom/data_structure/layout/layoutgroup.h:
-       * glom/libglom/document/document.cc:
-       * tests/test_document_load.cc: Adapt.
-
-2011-11-29  Murray Cumming  <murrayc murrayc com>
-
-       test_document_load: Check that a field is on a layout.
-
-       * glom/libglom/data_structure/layout/layoutgroup.[h|cc]:
-       Added has_field() that can find a related field.
-       * tests/test_document_load.cc: Check that an expected field is found on
-       the layout.
-
-2011-11-29  Murray Cumming  <murrayc murrayc com>
-
-       Add a test for changing of a field name. 
-
-       * tests/Makefile.am:
-       * tests/test_document_load_and_change.cc: Change a field name and 
-       make sure that it has updated throughout the document.
-       However, we still need to check lookups and related fields.
-
-2011-11-28  Murray Cumming  <murrayc murray com>
-
-       Field::set_field_info(): Avoid unnecessary checks (and warnings).
-
-       * glom/libglom/data_structure/field.cc: If the type is not yet set,
-       don't bother checking that everything else uses that type.
-       This avoids a stderr warning about invalid types being used.
-
-2011-11-28  Murray Cumming  <murrayc murrayc comb>
-
-       Field::set_field_info(): Slight code improvement.
-
-       * glom/libglom/data_structure/field.cc: Move some duplicated code into
-       a static helper function.
-
-2011-11-28  Murray Cumming  <murrayc murrayc com>
-
-       Added an extra test for the Document class.
-
-       * tests/test_document_change.cc: The beginnings of another test,
-       to check that what we set is what we later get.
-
-2011-11-28  Murray Cumming  <murrayc murrayc com>
-
-       SQLite: Avoid a warning about int types for summary fields.
-
-       * glom/libglom/data_structure/glomconversions.cc:
-       get_text_for_gda_value(): An int is normal for aggregate fields for
-       SQLite.
-       convert_value(): Make sure that we do a locale-independent conversion,
-       otherwise the above fix will cause us to, for instance, have a 
-       comma in large numbers.
-
-2011-11-25  Murray Cumming  <murrayc murrayc com>
-
-       gcov: Add a legend key to the lcov html.
-
-       * Makefile.am: Pass --legend to genhtml. 
-
-2011-11-25  Murray Cumming  <murrayc murrayc com>
-
-       Correct a query from UPDATE to SELECT.
-
-       * glom/libglom/report_builder.cc: Correct the query to get system preferences 
-       values. This was apparently not tested yet.
-
-2011-11-25  Murray Cumming  <murrayc murrayc com>
-
-       Avoid an uninteresting stdcerr warning.
-
-       * glom/libglom/connectionpool.cc: It is OK to not know 
-       the document sometimes.
-
-2011-11-25  Murray Cumming  <murrayc murrayc com>
-
-       gcov: Use lcov instead of my hacky bash script.
-
-       * configure.ac: Check for lcov and genhtml.
-       * Makefile.am: This generates a nice HTML report.
-
-2011-11-25  Murray Cumming  <murrayc murrayc com>
-
-       gcov: Use AC_PATH_PROG().
-
-       * configure.ac: Check for the path to gcov.
-       * Makefile.am: Use it.
-
-2011-11-25  Murray Cumming  <murrayc murrayc com>
-
-       Added a "make gcov" target to get some test coverage statistics.
-
-       * configure.ac: Add an --enable-gcov option which add gcc/g++ flags.
-       * Makefile_glom.am:
-       * Makefile_libglom.am:
-       * Makefile.am: Add some cargo-culted and hacked-together bash scripted
-       rules that generate the .gcov files and parse them to give some 
-       percentages on stdout.
-
-2011-11-23  Murray Cumming  <murrayc murrayc com>
-
-       Avoid deprecated glibmm API (from glibmm/thread.h).
-
-       * configure.ac: Depend on a recent unstable glibmm. 
-       * glom/libglom/spawn_with_feedback.cc: Use Glib::Threads::Cond and 
-       Glib::Threads::Mutex instead of deprecated Glib::Cond and Glib::Mutex.
-
-This is the master branch. See also the glom-1-20 branch.
-
-2011-11-21  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Added DbUtils::set_fake_connection().
-
-       * glom/libglom/db_utils.[h|cc]: Added DbUtils::set_fake_connection()
-  because ConnectionPool is not public API.
-       * tests/test_fake_connection.cc: Use this function instead of using 
-       ConnectionPool's API.
-
-1.20.0 (stable):
-
-2011-11-20  Murray Cumming  <murrayc murrayc com>
-
-       Details View: Left-align numbers when using automatic alignment.
-
-       * glom/libglom/data_structure/layout/layoutitem_field.[h|cc]:
-       * glom/libglom/data_structure/layout/layoutitem_withformatting.[h|cc]:
-       get_formatting_used_horizontal_alignment(): Add a for_details_view() 
-       and return left-alignment for auto-alignment on a details view.
-       * glom/mode_data/datawidget/entry.cc:
-       * glom/utility_widgets/layoutwidgetbase.cc: Pass true to get that 
-       effect.
-
-       Right-aligned numbers on the detailed view just look sillier now that
-       the entry widgets are full width, and when there are no other numbers
-       above or below them. Note that we probably did not purposefully 
-       change it show numbers with full width, but I would still want this
-       alignment change.
-
-2011-11-18  Murray Cumming  <murrayc murrayc com>
-
-       Recognize GdaBlob as suitable for Image field types.
-
-       * glom/libglom/data_structure/field.cc: Add to the map, to avoid 
-       a warning.
-
-2011-11-18  Murray Cumming  <murrayc murrayc com>
-
-       Fix the build with latest GTK+ with --enable-warnings=fatal
-
-       * glom/utility_widgets/eggspreadtable/eggspreadtablednd.c
-       (set_drag_icon): Update from libegg to fix the build with deprecated GTK+ 
-       API disabled.
-
-2011-11-18  Murray Cumming  <murrayc murrayc com>
-
-       Details: Move the checkbutton titles to the left.
-
-       * glom/mode_data/datawidget/checkbutton.h: Contructor:
-       Allow the title to be empty.
-       * glom/mode_data/datawidget/datawidget.cc: Give the checkbutton a title 
-       at the left, like other widgets. This looks consistent.
-
-2011-11-17  Murray Cumming  <murrayc murrayc com>
-
-       Update an example screenshot.
-
-       * docs/website/screenshots/glom_example_lessonplanner.png: Update this 
-       now that the calendar portal works again.
-       * docs/website/screenshots/glom_select_field.png: Remove this because 
-       it is not used.
-
-2011-11-17  Murray Cumming  <murrayc murrayc com>
-
-       date test: Set LANGUAGE too, which seems to be necessary on Ubuntu.
-
-       * tests/test_glom_date_in_locales.sh: Also add some locales that 
-       are available on Ubuntu.
-
-2011-11-17  Murray Cumming  <murrayc murrayc com>
-
-       main: Break the date check into two possible error messages.
-
-       * glom/main.cc: This simplifies debugging a bit.
-
-2011-11-16  Murray Cumming  <murrayc murrayc com>
-
-       Enable the test for dates in various locales.
-
-       * Makefile_tests.am:
-       * tests/test_glom_date_in_locales.sh: I don't like requiring 
-       installation of these locales during make check, but I see no other
-       way to stop the fixes from being lost by careless translators, at 
-       least of the major languages.
-
-2011-11-16  Murray Cumming  <murrayc murrayc com>
-
-       List view: Stop unnecessary saving of column widths.
-
-       * glom/mode_data/db_adddel/db_adddel.[h|cc]: Do not handle changes 
-       of the GtkTreeView column width, because it happens during normal
-       size allocation as well as when the user resizes columns.
-       It is not essential anyway.
-
-2011-11-16  Murray Cumming  <murrayc murrayc com>
-
-       Make the Calendar portal work again.
-
-       * glom/mode_data/box_data_calendar_related.[h|cc]: Override
-       create_layout() as a place to call our get_fields_to_show(), like
-       Box_Data_List_Related does. Then fill_from_database() can succeed.
-       Bug #663310
-
-2011-11-14  Murray Cumming  <murrayc murrayc com>
-
-       Fake connection test: Test for a substring in the generated query.
-
-       * tests/test_fake_connection.cc: This also fixes the build with
-       -Werror.
-
-2011-11-13  Murray Cumming  <murrayc murrayc com>
-
-       Use the new Gnome::Gda::Numeric API.
-
-       * glom/libglom/data_structure/glomconversions.cc:
-       * glom/libglom/python_embed/pygdavalue_conversions.cc:
-       * tests/python/test_python_execute_func_date.cc: GdaNumeric now has 
-       a real API so we can make our code simpler.
-
-2011-11-11  Murray Cumming  <murrayc murrayc com>
-
-       List view and Related Records: Disable buttons when appropriate.
-
-       * glom/mode_data/db_adddel/db_adddel.[h|cc]: Handle the 
-       Gtk::TreeView::Selection::signal_changed() signal and call a 
-       new virtual on_selection_changed() method.
-       * glom/mode_data/db_adddel/db_adddel_withbuttons.[h|cc]:
-       Disable the Edit/Open and Delete buttons when there is no selection.
-       Bug #663812 (André Klapper)
-
-2011-11-10  Murray Cumming  <murrayc murrayc com>
-
-       Correct an error in the previous commit.
-
-       * glom/libglom/connectionpool.cc: Remove a nonsense line of code that
-       stopped connections from working.
-
-2011-11-10  Murray Cumming  <murrayc murrayc com>
-
-       Added ConnectionPool::set_fake_connection().
-
-       * glom/libglom/connectionpool_backends/backend.h: connect():
-       * glom/libglom/connectionpool_backends/postgres.[h|cc]: connect(),
-       attempt_connect():
-       * glom/libglom/connectionpool_backends/postgres_central.[h|cc]: connect():
-       * glom/libglom/connectionpool_backends/postgres_self.[h|cc]: connect():
-       * glom/libglom/connectionpool_backends/sqlite.[h|cc]: connect():
-       Add a bool fake_connection parameter and use Gnome::Gda::create_with_string()
-       instead of open_with_string() if it is true.
-       * glom/libglom/connectionpool.[h|cc]: Add set_fake_connection() to set 
-       that bool and other things needed to make it work.      
-
-       * Makefile_tests.am:
-       * tests/test_fake_connection.cc: Added a test that uses this for the 
-       intended purpose of getting a suitable SQL query string without an open 
-       connection.
-       However, it does not currently work as expected due to:
-       http://mail.gnome.org/archives/gnome-db-list/2011-November/msg00007.html
-
-2011-11-10  Murray Cumming  <murrayc murrayc com>
-
-       Escape database connection details properly.
-
-       * glom/libglom/db_utils.[h|cc]: Added gda_cnc_string_encode() for use 
-       with GdaConnection's cnc_string and auth_string, for instance to 
-       escape the database directory, name, username, and password.
-       * glom/libglom/connectionpool_backends/postgres.cc:
-       * glom/libglom/connectionpool_backends/postgres_self.cc:
-       * glom/libglom/connectionpool_backends/sqlite.cc: Properly escape the 
-       cnc_string and auth_string key values.
-
-       * tests/test_selfhosting_utils.cc: test_create_and_selfhost_from_example(),
-       test_create_and_selfhost_from_uri(): Add an optional subdirectory parameter
-       that we can use to force weird parts into the path.
-       * Makefile_tests.am:
-       * tests/test_selfhosting_new_from_example_strangepath.cc: Add a 
-       test case that uses a path with some weird characters. This now works
-       thanks to the above changes.
-
-2011-11-09  Murray Cumming  <murrayc murrayc com>
-
-       Use Glib::shell_quote() when spawning tar.
-
-       * glom/libglom/document/document.cc: Use Glib::shell_quote()
-       when spawning tar, instead of manually adding quotes.
-
-2011-11-09  Murray Cumming  <murrayc murrayc com>
-
-       PostgreSQL backend: Use g_shell_quote().
-
-       * glom/libglom/connectionpool_backends/postgres.[h|cc]:
-       get_path_to_postgres_executable(): Return the already-quoted path
-       to avoid the need for manual quoting by the caller.
-       However, make this optional (but the default) so that the check in 
-       * main.cc: can still work.
-       * glom/libglom/connectionpool_backends/postgres_self.cc: Use 
-       Glib::shell_quote() instead of manually adding quote characters.
-       Hopefully this also escapes special characters, though we should try to 
-       test this somehow.
-
-2011-11-08  Murray Cumming  <murrayc murrayc com>
-
-       Avoid some repetition of some CREATE GROUP and ALTER GROUP queries.
-
-       * glom/libglom/db_utils.[h|cc]: Added build_query_create_group() and 
-       build_query_add_user_to_group() to avoid repeating the code.
-       * glom/base_db.cc:
-       * glom/mode_design/users/dialog_groups_list.cc:
-       * glom/mode_design/users/dialog_users_list.cc: Use them.
-
-1.19.19:
-
-2011-11-08  Murray Cumming  <murrayc murrayc com>
-
-       Use escape_sql_id() for privileges SQL queries.
-
-       * glom/base_db.cc:
-       * glom/libglom/db_utils.cc:
-       * glom/libglom/privs.cc:
-       * glom/mode_design/users/dialog_groups_list.cc:
-       * glom/mode_design/users/dialog_users_list.cc: Use 
-       DbUtils::escape_sql_id() instead of manually adding quotes with 
-       no escaping. This seems to be the right thing to do for these 
-       queries.
-
-2011-11-08  Murray Cumming  <murrayc murrayc com>
-
-       More use of escape_sql_id().
-
-       * glom/base_db.cc:
-       * glom/libglom/db_utils.cc:
-       * glom/libglom/privs.cc:
-       * glom/mode_design/users/dialog_groups_list.cc:
-       * glom/mode_design/users/dialog_users_list.cc: Use 
-       escape_sql_id() instead of manually adding quotes with no 
-       escaping. However, I have not yet done this for group and 
-       user names.
-
-2011-11-08  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Remove LayoutItem_Field::get_sql_name().
-
-       * glom/libglom/utils.cc: build_sql_select_add_fields_to_get():
-       Use SqlBuilder::add_field_id() instead of 
-       LayoutItemField::get_sql_name().
-       * glom/libglom/data_structure/layout/layoutitem_field.[h|cc]:
-       Remove the now unused get_sql_name() method.
-
-2011-11-08  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Use escape_sql_id() for column add/crop/change.
-
-       * glom/libglom/connectionpool.cc: add_column(), drop_column(),
-       
-       * glom/libglom/connectionpool_backends/backend.[h|cc]:
-       * glom/libglom/connectionpool_backends/postgres.cc
-       * glom/libglom/connectionpool_backends/sqlite.[h|cc]:
-       add_column(), drop_column(): Return a bool to indicate failure.
-       change_columns(): Report false return values from these.
-
-       * Makefile_tests.am
-       * tests/test_selfhosting_new_then_change_columns.cc: Add a simple
-       test, though we do not yet test that the expected change really
-       happened.
-
-2011-11-08  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Add escape_sql_id() and use it for table add/drop/rename.
-
-       * glom/libglom/db_utils.[h|cc]: Add escape_sql_id(), using 
-       gda_connection_quote_sql_identifier().
-       create_table(), rename_table(), drop_table(): Use it instead of 
-       manually adding quotes with no escaping.
-       * tests/test_selfhosting_new_then_alter_table.cc: Mention that 
-       the commented-out test still fails because of libgda bug #663608 .
-
-2011-11-08  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Add DbUtils::rename_table() and drop_table() and test them.
-
-       * glom/navigation/box_tables.c: Move query-building code to 
-       * glom/libglom/db_utils.[h|cc]: rename_table() and drop_table().
-       * Makefile_tests.am
-       * tests/test_selfhosting_new_then_alter_table.cc: Add a test of these
-       functions, and of table creation. This shows that we need to escape 
-       SQL identifiers to allow characters such as " in table names.
-
-2011-11-07  Murray Cumming  <murrayc murrayc com>
-
-       Require the latest libgdamm.
-
-       * configure.ac: We use a new Gnome::Gda::Connection::statement_to_sql()
-       method overload.
-
-1.19.18:
-
-2011-11-07  Murray Cumming  <murrayc murrayc com>
-
-       Add a test of backup and restore.
-
-       * glom/application.cc: on_menu_developer_export_backup(),
-       do_restore_backup(): Move code into 
-       * glom/libglom/document/document.[h|cc]: save_backup() and 
-       restore_backup_file() so it is easier to test.
-
-       * tests/test_selfhosting_new_from_example.cc: Move some testing into:
-       * tests/test_selfhosting_utils.[h|cc]: test_example_musiccollection_data()
-       to avoid repeating code.
-       
-       * Makefile_tests.am: Added a new test:
-       * tests/test_selfhosting_new_then_backup_restore.cc: Test the new 
-       Document functions, though the data check currently fails and is commented 
-       out. I think it is just a problem in the test because the data is there
-       when using the UI.
-       
-2011-11-07  Murray Cumming  <murrayc murrayc com>
-
-       Rename a test utility function.
-
-       * tests/test_selfhosting_utils.[h|cc]: Rename 
-  test_create_and_selfhost() to test_create_and_selfhost_from_example().
-       * tests/test_selfhosting_new_from_example.cc:
-       * tests/test_selfhosting_new_then_get_privs.cc:
-       * tests/test_selfhosting_new_then_image.cc:
-       * tests/test_selfhosting_new_then_report.cc:
-       * tests/test_selfhosting_sqlinjection.cc: Adapated.
-
-2011-11-06  Murray Cumming  <murrayc murrayc com>
-
-       Require libgda 5.0.2
-
-       * configure.ac: Require the lastest libgda to avoid several bugs 
-       at runtime - See the comments in configure.ac.
-
-2011-11-04  Murray Cumming  <murrayc murrayc com>>
-
-       Creating from examples: Do not create users and groups with SQLite.
-
-       * glom/libglom/db_utils.cc: add_groups_from_document(),
-       set_table_privileges_groups_from_document(): Do nothing if the database 
-       backed doesn't support this feature, to avoid errors when using SQLite.
-
-2011-11-04  Murray Cumming  <murrayc murrayc com>
-
-       Handle GdaBlob in query results instead of just GdaBinary.
-
-       * glom/libglom/data_structure/field.cc: to_file_format():
-       The Value might have a GdaBlob that needs to be read first, to get the 
-       GdaBinary. This can happen with SQLite.
-       * glom/libglom/python_embed/pygdavalue_conversions.cc:
-       glom_pygda_value_as_boost_pyobject(): Handle GdaBlob too, though neither 
-       this or the GdaBinary case use the data length, so this code is doomed 
-       if it is ever used. I need to find out if Python can really represent 
-       binary data, or if this should just not be handled here.
-       * glom/utility_widgets/imageglom.cc: get_binary(): Handle GdaBlob 
-       too in the original data.
-       * tests/test_selfhosting_new_then_image.cc: Handle GdaBlob in the 
-       data that is read back, for SQLite. Uncomment the SQLite test, fixing 
-       make check with the latest libgda.
-
-1.19.17:
-
-2011-11-04  Murray Cumming  <murrayc murrayc com>
-
-       Handle gdouble results from python functions.
-    
-        * glom/libglom/data_structure/field.cc: Add a mapping
-        instead of ignoring doubles.
-        This avoids a stderr warning and probably makes calculations
-        work.
-
-2011-11-04  Murray Cumming  <murrayc murrayc com>
-
-       Fix some warnings about invalid field types with choices.
-
-       * glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
-       set_choices_related(): Set full field details on the 
-       layout_choice_extra fields, to avoid invalid field types,
-       and stderr warnings about them.
-
-2011-11-03  Murray Cumming  <murrayc murrayc com>
-
-       Updated examples screenshots.
-
-       * docs/website/screenshots/glom_example_filmmanager.png:
-       * docs/website/screenshots/glom_example_musiccollection.png:
-       * docs/website/screenshots/glom_example_projectmanager.png:
-       * docs/website/screenshots/glom_example_smallbusiness.png:
-       * docs/website/screenshots/small_glom_data_details.png: Updated.
-       * examples/example_film_manager.glom:
-       * examples/example_music_collection.glom:
-       * examples/example_project_manager.glom: Saved some changes that 
-       I made to match the details.
-
-2011-11-03  Murray Cumming  <murrayc murrayc com>
-
-       Update screenshots for the website.
-
-       * docs/website/screenshots/*.png: Updated these screenshots, 
-       partly by copying some from user_guide/C/figures/.
-       They are used here:
-       http://www.glom.org/wiki/index.php?title=Screenshots
-       after uploading with "make post-html"
-
-2011-11-03  Murray Cumming  <murrayc murrayc com>
-
-       FlowTable: In developer mode, draw some lines.
-
-       * glom/utility_widgets/flowtable.[h|cc]: on_draw(): Draw some dashed lines
-       a little like the lines drawn in on_expose_event() in Glom 1.18.
-       This is not very good, but it was not very good before, but I still think
-       we need something to show the boundaries.
-
-2011-11-03  Murray Cumming  <murrayc murrayc com>
-
-       Small Business example: Add a little more data so the report is useful.
-
-       * examples/example_smallbusiness.glom: Contacts: Add towns and countries.
-
-2011-11-03  Murray Cumming  <murrayc murrayc com>
-
-       Do not blank the data when showing the field definitions dialog.
-
-       * glom/frame_glom.cc: do_menu_developer_fields(): Only blank the data 
-       view if using SQLite, which requires it, because it looks like a bug to 
-       the user.
-
-2011-11-03  Murray Cumming  <murrayc murrayc com>
-
-       Fix make check.
-
-       * examples/example_smallbusiness.glom: Resaved with correctly-formatted 
-       image data now that libgda works again.
-       * tests/test_selfhosting_new_then_image.cc: Comment out the SQLite test
-       because it fails and we do not care so much about that. Still, I will
-       investigate it.
-
-2011-11-02  Murray Cumming  <murrayc murrayc com>
-
-       Add and use utility functions for creating temporary files.
-
-       * glom/libglom/utils.[h|cc]: Added get_temp_file_uri(), 
-       get_temp_file_path(), get_temp_directory_uri() and 
-       get_temp_directory_path(), using the correct awkward code that 
-       avoids overwriting existing files.
-       * glom/application.cc:
-       * glom/libglom/connectionpool_backends/postgres_self.cc:
-       * glom/libglom/report_builder.cc:
-       * glom/utility_widgets/imageglom.cc:
-       * tests/import/utils.cc:
-       * tests/test_document_autosave.cc:
-       * tests/test_selfhosting_new_empty.cc:
-       * tests/test_selfhosting_utils.cc: Use these functions instead 
-       of repeating the same stuff badly.
-       * Makefile_tests.am: Link to libglom so the import tests can use 
-       the new utility functions.
-
-2011-11-02  Murray Cumming  <murrayc murrayc com>
-
-       Make connections to central PostgreSQL servers work again.
-
-       * glom/libglom/connectionpool_backends/postgres_central.cc: Do not 
-       forget a previously-successful connection-but-not-to-the-database.
-
-2011-11-01  Murray Cumming  <murrayc murrayc com>
-
-       Added test for Glom::Priv getting of group and user names.
-
-       * tests/test_selfhosting_new_then_get_privs.cc: Added a test of some
-       Glom::Privs functions.
-       * Makefile_tests.am: Mention the new test.
-
-2011-10-31  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Remove an unused Utils::sqlbuilder_get_full_query() overload.
-
-       * glom/libglom/utils.[h|cc]: Nothing uses the version that takes 
-       a string and parameters.
-
-2011-10-31  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Utils::sqlbuilder_get_full_query(): Improve the result.
-
-       * glom/libglom/utils.cc: Use the GdaConnection's statement_to_sql() 
-       instead of just GdaStatement's to_sql() so we a) have correct quoting,
-       and b) use the server's specific SQL dialect.
-
-2011-10-29  Murray Cumming  <murrayc murrayc com>
-
-       Image fields test: Load data from a file and check setting and getting.
-
-       * tests/test_image.glom: Added an image file to set and get in the 
-       database.
-       * Makefile_tests.am: Distribute the image file.
-       * tests/test_selfhosting_new_then_image.cc: Load the data from the 
-       file, set it in the database, and check that the data read back is 
-       the same.
-       Correct the type check. However, the data equality test still fails
-       because of libgda bug #662922 .
-
-2011-10-29  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Added build_sql_update_with_where_clause().
-
-       * glom/libglom/utils.[h|cc]: Added build_sql_update_with_where_clause().
-       * glom/base_db.cc: set_field_value_in_database(): use it here instead 
-       of manually creating a SqlBuilder.
-
-2011-10-28  Murray Cumming  <murrayc murrayc com>
-
-       Add a test for Image fields.
-
-       * Makefile_tests.am:
-       * tests/test_selfhosting_new_then_image.cc: Add a test to read an image field
-       value, though this currently fails.
-       I will later add a write-then-read test.
-
-2011-10-28  Murray Cumming  <murrayc murrayc com>
-
-       Add a test for Image fields.
-
-       * Makefile_tests.am:
-       * tests/test_selfhosting_new_then_image.cc: Add a test to read an image field
-       value, though this currently fails.
-       I will later add a write-then-read test.
-
-2011-10-28  Murray Cumming  <murrayc murrayc com>
-
-       Fix make check by correcting the DTD.
-
-       * glom/glom_document.dtd: Corrections relating to the print layout definitions.
-
-2011-10-28  Murray Cumming  <murrayc murrayc com>
-
-       Small Business Example: Make the report example more like the one in screenshots.
-
-       * examples/example_smallbusiness.glom:
-
-2011-10-28  Murray Cumming  <murrayc murrayc com>
-
-       More fixes for the Frame label issue.
-
-       * glom/mode_data/box_data_list_related.cc: Only set or unset the Gtk::Frame 
-       label if it is or isn't there already, to avoid a warning.
-       * glom/mode_data/box_data_portal.[h|cc]: Remove the unused implementation 
-       of one init_db_details() method, making it pure virtual instead.
-
-2011-10-27  Murray Cumming  <murrayc murrayc com>
-
-       Notebook: Avoid truncating related records buttons.
-
-       * glom/mode_data/box_data_list_related.cc: Use
-       Gtk::Frame::unset_label() instead of just hiding the frame's label,
-       because that apparently leads to an incorrect allocation, causing the 
-       buttons to be cut in half horizontally at the bottom.
-       This is caused by a regression in GTK+ 3: See bug #662915
-
-1.19.16:
-
-2011-10-27  Murray Cumming  <murrayc murrayc com>
-
-       Depend on libgda 5.0.0.
-
-       * configure.ac: This version of libgda has fixes for:
-       Bug #661655 - data doesn't display when a field is renamed to string with a hyphen.
-       and
-       Bug #661073 - SQL Errors when a relationship name has capital letters.
-
-2011-10-27  Murray Cumming  <murrayc murrayc com>
-
-       Remove GtkHandleBox from the .glade file too.
-       
-       * ui/developer/window_print_layout_edit.glade:
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       Use a GtkBox instead of a GtkHandleBox.
-
-2011-10-26  Murray Cumming  <murrayc murrayc com>
-
-       Add and move #includes for the latest glibmm. 
-
-       * glom/import_csv/csv_parser.cc:
-       * glom/import_csv/dialog_import_csv_progress.cc:
-       * glom/libglom/connectionpool.cc:
-       * glom/libglom/connectionpool_backends/postgres_self.cc:
-       * glom/libglom/privs.cc:
-       * glom/libglom/spawn_with_feedback.cc:
-       * glom/mode_data/box_data_list.cc:
-       * glom/mode_data/box_data_list_related.cc:
-       * glom/mode_data/db_adddel/db_adddel.cc:
-       * glom/mode_data/notebook_data.cc:
-       * glom/mode_design/print_layouts/window_print_layout_edit.h:
-       * glom/utility_widgets/dialog_image_load_progress.cc:
-       * glom/utility_widgets/dialog_image_save_progress.cc:
-       * glom/utils_ui.cc:
-       * tests/import/utils.cc: Add individual glibmm includes now that 
-       gmmproc does not include glibmm.h from headers.
-       Always include glibmm/thread.h first to avoid deprecation warnings.
-
-2011-10-26  Murray Cumming  <murrayc murrayc com>
-
-       Adapt to the latest goocanvasmm API.
-
-       * glom/main.cc: Pass no arguments to init(), though I think I will 
-       add the method overload back to goocanvasmm to avoid annoying people 
-       too much.
-
-2011-10-26  Murray Cumming  <murrayc murrayc com>
-
-       Avoid deprecated Gtk::HandleBox with latest gtkmm.
-
-       * glom/utility_widgets/sidebar.[h|cc]: Removed, because Gtk::HandleBox
-       is deprecated.
-       * Makefile_glom.am: Remove mention of this file.
-       * glom/utility_widgets/layouttoolbar.[h|cc]: Derive directly from 
-       Gtk::ToolPalette instead.
-       * glom/mode_design/print_layouts/print_layout_toolbar.[h|cc]: Adapt.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.h: The glade 
-       file still has a GtkHandleBox which we should remove, but in the
-       meantime just use it via Gtk::Box.
-
-2011-10-25  Murray Cumming  <murrayc murrayc com>
-
-       Change #includes for the latest glibmm.
-
-       Add individual includes instead of general giomm.h, glibmm.h or gtkmm.h 
-       includes.
-       Among other things, this might let us avoid the annoying warning about 
-       deprecated GThread functions.
-
-2011-10-24  Murray Cumming  <murrayc murrayc com>
-
-       Main window: Use a smaller default size.
-
-       * ui/operator/window_main.glade: Request a small enough size to fit small 
-       screens. This will then not warn during test_glade_derived_instantiation.cc.
-       However, more space may be requested later.
-
-2011-10-24  Murray Cumming  <murrayc murrayc com>
-
-       Remove the unnused PlaceholderGlom class.
-
-       * glom/mode_data/placeholder-glom.[h|cc]: Remove these files.
-       * Makefile_glom.am: Remove mentions of these files.
-       * glom/mode_data/flowtable_withfields.cc: Remove uses of PlaceholderGlom.
-
-2011-10-24  Murray Cumming  <murrayc murrayc com>
-
-       Do not include gtkmm.h, glibmm.h, giomm.h, or similar in headers.
-
-       * Many files: Use more specific includes.
-
-2011-10-24  Murray Cumming  <murrayc murrayc com>
-
-       Progress InfoBar: Block user input during progress.
-
-       * glom/application.cc: set_progress_message(): Set the main UI elements to 
-       insensitive(), because all our current uses of the progess message should 
-       block user input, like a modal dialog.
-       * ui/operator/window_main.glade: Move the InfoBar out of the frame, because 
-       it should not have the border, and so we can make the frame insensitive 
-       without making the InfoBar insensitive. This required adding an extra 
-       intermediate GtkBox, because otherwise there is no way to add the menubar
-       at the top, before the InfoBar.
-       This .glade file needed some hand-editing to remove bad <packing> tags that
-       glade (from git master) added.
-
-2011-10-24  Murray Cumming  <murrayc murrayc com>
-
-       ShowProgressMessage: Move to its own source files.
-
-       * Makefile_glom.am:
-       * glom/application.[h|cc]: Move the ShowProgressMessage class to separate 
-       .h/.cc files because I generally prefer one .h/.cc per class.
-
-2011-10-24  Murray Cumming  <murrayc murrayc com>
-
-       ShowProgressMessage: Minor Cleanup.
-
-       * glom/application.[h|cc]: Move implementation into .cc file. Correct the code
-       style. Make the constructor explicit.
-
-2011-10-24  David King  <davidk openismus com>
-
-  Replace progress dialog with infobar.
-
-  Bug #661051
-
-2011-10-21  Murray Cumming  <murrayc murrayc com>
-
-       Avoid calling g_thread_init() if possible.
-
-       * configure.ac: Add a comment about not linking to gthread-2.0 in future.
-       * glom/libglom/init.cc:
-       * tests/import/test_parsing.cc:
-       * tests/import/test_signals.cc: Avoid calls to deprecated Glib::thread_init()
-       if glib is new enough.
-       This is a step to making Glom build against glibmm from git master with
-       --enable-warnings=fatal.
-
-2011-10-20  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Restore the Util::build_sql_select_count_row() API. 
-
-       * glom/libglom/db_utils.cc: move it back to:
-       * glom/libglom/utils.[h|cc]: because it is needed by java-libglom.
-
-2011-10-20  Murray Cumming  <murrayc murrayc com>
-
-       Self-hosting tests: Test with sqlite too.
-
-       * tests/test_selfhosting_utils.[h|cc]: test_create_and_selfhost():
-       Add a hosting_mode parameter so we can test sqlite too.
-       Correct some return values and check that the directory really exists after
-       it should have been created.
-       * tests/test_selfhosting_new_empty.cc:
-       * tests/test_selfhosting_new_from_example.cc:
-       * tests/test_selfhosting_new_then_report.cc:
-       * tests/test_selfhosting_sqlinjection.cc: Restructure so all tests are run 
-       twice - once for each backend.
-       
-2011-10-20  Murray Cumming  <murrayc murrayc com>
-
-       SQLite: Avoid reporting failure when recreating databases.
-
-       * glom/libglom/db_utils.[h|cc]: recreate_database_from_document(): Do not 
-       call add_standard_tables() and add_standard_groups() because create_database()
-       (which we call) has already done this.
-       query_execute_string(): Only -1 is an error, though that is odd.
-       See libgda bug #662279 .
-
-2011-10-20  Murray Cumming  <murrayc murrayc com>
-
-       Replaced Utils::build_sql_select_count_row() with DbUtils::count_rows_returned_by().
-
-       * glom/libglom/utils.cc:
-       * glom/base_db.[h|cc]: Moved count_rows_returned_by() to 
-       * glom/libglom/db_utils.[h|cc]: and also moved 
-  Utils::build_sql_select_count_row() making it static (not API).
-       * glom/frame_glom.cc:
-       * glom/mode_data/datawidget/treemodel_db.cc: Adapted.
-
-2011-10-19  Murray Cumming  <murrayc murrayc com>
-
-       SQL Injection Test: Try to avoid quoting by giving a wrong field type.
-
-       * tests/test_selfhosting_sqlinjection.cc: Try to avoid quoting by
-       saying that a text field is a number but still providing a text value.
-
-2011-10-19  Murray Cumming  <murrayc murrayc com>
-
-       SQL Injection Test: Try to use (evil and unquoted) text for a number. 
-
-       * tests/test_selfhosting_sqlinjection.cc: This seems to be safe already.
-
-1.19.15:
-
-2011-10-19  Jasper Lievisse Adriaanse <jasperla gnome org>
-
-       Don't unconditionally link with libdl to fix regress tests on
-       systems which don't need to link with -ldl for dlopen() etc.
-
-       * configure.ac:
-       * Makefile_tests.am: Check for -libdl.
-
-2011-10-19  Murray Cumming  <murrayc murrayc com>
-
-       SQL Injection Test: Try both kinds of quote characters.
-
-       * tests/test_selfhosting_sqlinjection.cc: Instead of assuming that we know
-       what libgda uses.
-
-2011-10-19  Murray Cumming  <murrayc murrayc com>
-
-       Self-hosting: Attempt to avoid failed shutdowns.
-
-       * glom/libglom/connectionpool.cc: invalidate_connection(): Actually call
-       Gda::Connection::close() instead of relying on the Connection destructor to
-       do that, because maybe it is not closing it if maybe Connection::is_opened()
-       is not working correctly.
-       cleanup(): invalidate the connection before shutting down the server,
-       not after, in case an open connection is stopping the server from closing down. 
-       * glom/libglom/connectionpool_backends/postgres_self.[h|cc]:
-       connect(): Remember the connection details so we can use them later to show
-       debug output.
-       Added show_active_connections() to try to get a clue about what is wrong
-       when the shutdown fails, using those connection details.
-       cleanup(): Call it when the shutdown fails.
-
-2011-10-19  Murray Cumming  <murrayc murrayc com>
-
-       Fix make check.
-
-       * tests/test_selfhosting_new_from_example.cc: Add some missing !.
-
-2011-10-19  Murray Cumming  <murrayc murrayc com>
-
-       Do not pygoject_init() the wrong version.
-
-       * glom/libglom/init.cc: Specify pygobject 3 instead of 2 when calling
-       pygobject_init(). They are parallel-installable and incompatible and it is 
-       3 that we depend on. This recently started failing during "make check", 
-       which it should.
-
-1.19.14:
-
-2011-10-18  Murray Cumming  <murrayc murrayc com>
-
-       Add a simple SQL injection test.
-
-       * tests/test_selfhosting_sqlinjection.cc: Attempt to do bad things 
-       that would be possible if our SQL values were not escaped properly
-       in the SQL. (libgda takes care of this.)
-       * Makefile_tests.am: Mention the new test.
-
-2011-10-18  Murray Cumming  <murrayc murrayc com>
-
-       Self hosting test: Check that other tables exist.
-
-       * glom/libglom/document/document.[h|cc]: Added get_field_primary_key(),
-       for use by:
-       * tests/test_selfhosting_utils.[h|cc]: Added test_table_exists().
-       * tests/test_selfhosting_new_from_example.cc: Add quick checks that 
-       some other tables exist.
-
-2011-10-18  Murray Cumming  <murrayc murrayc com>
-
-       Test some query functions.
-
-       * tests/test_selfhosting_utils.[h|cc]: Added test_model_expected_size().
-       * tests/test_selfhosting_new_from_example.cc: Test the quick find and 
-       the count query.
-
-2011-10-18  Murray Cumming  <murrayc murrayc com>
-
-       Avoid a compiler warning.
-
-       * glom/libglom/data_structure/glomconversions.cc: format_time():
-       Return a result from the catch block.
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       Avoid some copy/pasting of code.
-
-       * glom/mode_design/print_layouts/print_layout_toolbar_button.cc:
-       * glom/utility_widgets/layouttoolbar.cc:
-       * glom/utility_widgets/layouttoolbarbutton.cc: Moved get_icon_path() to:
-       * glom/utils_ui.[h|cc]
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       Test report contents.
-
-       * glom/libglom/xsl_utils.[h|cc]: transform(): Return the contents, 
-       not a filepath.
-       * glom/libglom/report_builder.[h|cc]: report_build(): return the 
-       contents, not the path. Add report_build_and_save() to get a temporary
-       filepath.
-       * glom/mode_data/box_data_manyrecords.cc:
-       * glom/frame_glom.cc: Adapted.
-       * tests/test_selfhosting_new_then_report.cc: Check that some expected 
-       text is in the generated HTML.
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       Test report building.
-
-       * tests/test_selfhosting_new_from_example.cc: Move most code into 
-       utility functions in:
-       * tests/test_selfhosting_utils.[h|cc]:
-       * tests/test_selfhosting_new_then_report.cc: Add a new test that also 
-       generates a HTML report.
-       * Makefile_tests: Mention the new files.
-
-2011-10-18  Murray Cumming  <murrayc murrayc com>
-
-       Film Manager example: Change default table.
-
-       * examples/example_film_manager.glom: Make the Scenes table appear first so
-       people get a better idea of what this is about - managing production of a
-       single film, not managing a collection of films.
-
-2011-10-18  Murray Cumming  <murrayc murrayc com>
-
-       Add a test for the locale problem and for a missing translated date format.
-
-       * tests/test_glom_date_in_locales.sh: A new test that sets LANG and then tries
-       to start glom with it's date-checking option, to see if any fail.
-       However, this is not run during "make check", or even distributed, because
-       it depends on you having the locales installed and configured.
-
-2011-10-18  Murray Cumming  <murrayc murrayc com>
-
-       Add try/catch around all uses of std::locale("").
-
-       * glom/libglom/data_structure/glomconversions.cc: Add try/catch with a warning
-       whenever we use std::locale(""), which means the current locale, because that 
-       can throw an exception if the locale is not properly configure.
-       * glom/main.cc: Mention that a non-installed or not-properly-configured 
-       locale could be the cause of the problem.
-       
-       However, I would like to know exactly what it means for a locale to be 
-       properly configured.
-
-2011-10-18  Murray Cumming  <murrayc murrayc com>
-
-       Command line: Correct some exit results.
-
-       * glom/main.cc: Use EXIT_FAILURE and EXIT_SUCCESS instead of 0 and -1,
-       and use the correct ones.
-
-2011-10-18  Murray Cumming  <murrayc murrayc com>
-
-       libglom: FieldFomatting: Correct some parameter names.
-       
-       * glom/libglom/data_structure/layout/fieldformatting.h: get_choices_related()
-       Rename relationship_name to relatioship. It was already correct in the .cc
-       file.
-
-2011-10-18  Murray Cumming  <murrayc murrayc com>
-
-       Correct the pkg-config file.
-
-       * glom/libglom/glom.pc.in: Depend on libgdamm-5.0, not ligdamm-4.0.
-       And depend on libxslt, because we just moved the xslt stuff into libglom.
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       Move ReportBuilder to libglom, to make testing easier.
-
-       * glom/report_builder.[h|cc]:
-       * glom/xsl_utils.[h|cc]: Moved to:
-       * glom/libglom/report_builder.[h|cc]:
-       * glom/libglom/xsl_utils.[h|cc]:
-       * Makefile_glom.am, Makefile_libglom.am: Adapted, also adding a 
-       -D define for libglom to access the xslt file, though I am not happy
-       about a library needing a file to be installed.
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       ReportBuilder: Do not depend on Base_DB unnecessarily.
-
-       * glom/report_builder.[h|cc]: Just add get/set_document() instead.
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       Move report building code around.
-
-       * glom/report_builder.[h|cc]: report_build(): Return the filepath,
-       instead of opening it in the browser.
-       * glom/xsl_utils[h|cc]: transform_and_open(): Rename to transform(), 
-       returning the filepath. Also correct some ustring filepath to std::string.
-       * glom/utils_ui[h|cc]: Added show_report_in_browser().
-       * glom/frame_glom.cc: on_menu_report_selected():
-       * glom/mode_data/box_data_manyrecords.cc: print_layout: Adapted.
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       Move some XSLT-processing code around.
-
-       * glom/mode_data/box_data.h: Remove declaration of non-implemented 
-       and unused xslt_process() method.
-       * glom/xsl_utils.[h|cc]: Move xslt_process() in to the .cc file as a 
-       static function.
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       Move some Report code around.
-
-       * glom/mode_data/box_data_manyrecords.cc: print_layout():
-       Move the report creation to ReportBuilder.
-       * glom/report_builder.[h|cc]: Added create_standard_list_report().
-       * glom/xsl_utils.cc: Do not output all the XSL and HTML to std::cout,
-       but do output the temporary file name of the generated HTML file.
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       XSLT file: Minor fixes.
-
-       * xslt/print_report_to_html.xsl: Change xsl::version to version, which
-       is apparently more correct. Specify the encoding as UTF-8.
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       Tests: Add general XML validity of XSLT files.
-
-       * tests/test_xslt_file_validation.sh: New test, based on the other ones.
-       * Makefile_tests.am: Mention the new test.
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       Remove an unused XSL file.
-
-       * xslt/print_details_to_html.xsl: Remove this because it is no longer
-       used.
-       * Makefile.am: Remove mention of it.
-
-2011-10-17  Murray Cumming  <murrayc murrrayc com>
-
-       Examples: Remove all column_width attributes now that defaults are good.
-
-       * examples/example_film_manager.glom:
-       * examples/example_lesson_planner.glom:
-       * examples/example_music_collection.glom:
-       * examples/example_project_manager.glom:
-       * examples/example_smallbusiness.glom:
-       * examples/sqlite/test_sqlite_music/test_sqlite_music.glom:
-       * examples/tests/example_field_formatting_test.glom:
-       * ldtp/database-templates/PostgresCentral/Test.glom:
-       * ldtp/database-templates/SQLite/Test.glom: A simple regexxer replace.
-       
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       List View: Correct the default column widths.
-
-       * glom/utils_ui.[h|cc]: get_suitable_field_width_for_widget(): Added a
-       for_treeview parameter and adjust the width accordingly.
-       * glom/mode_data/db_adddel/db_adddel.cc: treeview_append_colum():
-       Replace the overly-generic division-by-3 hack with the new parameter, and 
-       add some hard-coded extra space.
-       
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       Details: Avoid an outdent after group titles
-
-       * glom/mode_data/flowtablewithfields.cc: add_layout_group(): Work around 
-       * the GtkFrame bug #644199
-
-1.19.13 (unstable):
-
-2011-10-17  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Print Standard: Avoid page break spaces in the middle of pages.
-
-       * glom/print_layout/canvas_print_layout.[h|cc]: fill_with_data():
-  Add an avoid_page_margins parameter, so we can choose to always move items
-  past the margins on to the next page while setting their data.
-       * glom/print_layout/print_layout_utils.[h|cc]: create_standard():
-       Add an avoid_page_margins parameter, so we can choose to do this later instead
-       when setting the data, to avoid big gaps that are later moved down into the 
-       middle of the page.
-       do_print_layout(): Add an avoid_page_margins parameter here too, passing 
-       it to fill_with_data().
-       * glom/mode_data/box_data_details.cc: print_layout(): Do not avoid page 
-       margins when creating, because that will happen when expanding items.
-       Avoid the page margins when setting the details.
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       on_menu_insert_create_standard(): Avoid page margins when creating.
-       However, those gaps could be left in the middle of the page when printing,
-       because some items may be expanded. We need a way to squash that space
-       later when it is unecessary.
-
-2011-10-15  Jasper Lievisse Adriaanse <jasperla gnome org>
-
-       Remove glibc-specific function call.
-
-       * tests/python/test_python_module.cc: Fix build on OpenBSD (and
-       other non-glibc systems) by wrapping calls to __libc_freeres() in
-       correct #ifdefs.
-       Bug #660496
-
-2011-10-14  Murray Cumming  <murrayc murrayc com>
-
-       Fix DTD to fix make check.
-
-       * glom/glom_document.dtd: Mention several attributes that were added 
-       in the last year or so. The new examples/test/ uses them.
-
-2011-10-14  Murray Cumming  <murrayc murrayc com>
-
-       Tests: Fix cast error when using dlerror().
-
-       * tests/python/test_load_python_library.cc: Noticed on OpenBSD in 
-       bug #660495 (Jasper Lievisse Adriaanse). 
-       I don't know why this worked on Linux.
-
-2011-10-14  Murray Cumming  <murrayc murrayc com>
-
-       Examples: Remove other uses of pygtk.
-
-       * examples/example_lesson_planner.glom: Remove an old button script 
-       from the XML though it was not used anymore in the UI.
-       * examples/example_project_manager.glom: Contacts: Remove the Test
-       button. It is in the small business example already instead.
-
-2011-10-14  Murray Cumming  <murrayc murrayc com>
-
-       Small Business Example: Port pygtk code to PyGObject+Introspection.
-
-       * examples/example_smallbusiness.glom: This fixes this crash, which 
-       apparently happens when trying to use pygtk when pygobject-3 is 
-       already loaded:
-       Warning: specified class size for type `PyGtkGenericCellRenderer' is 
-       smaller than the parenttype's `GtkCellRenderer' class size
-
-       Bug #661766 (André Klapper)
-
-2011-10-14  Murray Cumming  <murrayc murrayc com>
-
-       List: Actually show custom choices, instead of crashing.
-
-       * glom/mode_data/datawidget/cellcreation.cc: create_cell(): Call
-       set_choices_fixed() if appropriate.
-       * glom/mode_data/datawidget/cellrenderer_dblist.cc: on_editing_started():
-       Replace a g_assert with a warning to std::cerr, in case this happens 
-       again, particularly now that we know when it can happen - if there is
-       no text-column set.
-       Bug #661764 (André Klapper)
-
-2011-10-14  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Avoid grouping items at the tops of pages.
-
-       * glom/print_layout/print_layout_utils.[h|cc]: move_fully_to_page():
-       Change this to needs_move_fully_to_page(), so we can decide later how
-       much to move the items.
-       * glom/print_layout/canvas_print_layout.[h|cc]: move_items_below_item():
-       Rename to move_items_down(), not taking an item, and ignoring the x
-       dimension, moving everything down.
-       Remember the highest item that needs moving down more, because it 
-       is in a page margin, then move everything below it down by the same 
-       offset. Keep doing that until no items are in margins, gradually adding 
-       pages. This is a simple form of pagination, and not a particularly 
-       efficient one.
-
-2011-10-14  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Another expansion fixes.
-
-       * glom/print_layout/print_layout_utils.[h|cc]: move_fully_to_page():
-       Move generic CanvasItemMovables instead of just CanvasLayoutItems.
-       * glom/print_layout/canvas_print_layout.cc: move_items_below_item():
-       Likewise.
-
-2011-10-14  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Increase page count correctly when expanding portals.
-
-       * glom/print_layout/canvas_print_layout.cc: move_items_below_item():
-       Correct an off-by-one error in the calculation of the number of pages
-       needed.
-
-2011-10-14  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Create standard: Use the multiline text formatting.
-
-       * glom/print_layout/print_layout_utils.cc: create_standard():
-       Make text fields multiline if they are multiline on the details 
-       layout.
-
-2011-10-14  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Small improvement.
-
-       * glom/print_layout/canvas_print_layout.cc: move_items_below_item():
-       Check that we don't move the item itself.
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Code improvement.
-
-       * glom/print_layout/print_layout_utils.[h|cc]: Remove the hacky get_units()
-       function.
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Create Standard: Move items to the next page when necessary.
-
-       * glom/libglom/data_structure/layout/layoutitem.[h|cc]: Add 
-       set_print_layout_position_y() for convenience.
-       * glom/print_layout/print_layout_utils.cc: create_standard(): Use
-       move_fully_to_page().
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Moved some code around.
-
-       * glom/print_layout/canvas_print_layout.[h|cc]: Moved get_page_for_y() and 
-       move_fully_to_page() to:
-       * glom/print_layout/print_layout_utils.[h|cc]:
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       PrintLayout: Standard: Do not move to next page unnecessarily.
-
-       * glom/print_layout/canvas_print_layout.cc: get_page_for_y(): Correct this
-  calculation.
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       About dialog: Show the version number.
-
-       * glom/application.cc: Use set_version().
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       Deleting tables: Remove all auto-increment rows.
-
-       * glom/navigation/box_tables.cc: Remove the autoincrement rows for all 
-       autoincrement fields.
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       Deleting tables: Remove the auto-increment too.
-
-       * glom/libglom/db_utils.[h|cc]: Added remove_auto_increment().
-       * glom/navigation/box_tables.cc: on_adddel_Delete(): Remove the primary key's
-       autoincrement too.
-       Bug #661653 
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       DbUtils: Add some parameter checks to the autoincrement methods.
-
-       * glom/libglom/db_utils.cc: Otherwise we risk having an empty where clause,
-       and doing unwanted things to the entire table.
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       DbUtils: Avoid some repeated code.
-
-       * glom/libglom/db_utils.cc: Add a utility function for adding the where 
-       clause for the auto-increments table.
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       Use Glib::ustring::compose() instead of concatenation for translatable strings.
-
-       * glom/bakery/dialog_offersave.cc:
-       * glom/import_csv/dialog_import_csv.cc:
-       * glom/mode_design/fields/dialog_fieldcalculation.cc:
-       * glom/mode_design/layout/combobox_relationship.cc:
-       * glom/mode_design/layout/dialog_layout_details.cc:
-       * glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.cc:
-       * glom/navigation/box_tables.cc:
-       * glom/utils_ui.cc: Let translators arrange built strings.
-
-2011-10-13  Ben Konrath  <ben bagu org>
-
-       Add example document to test field formatting.
-
-       * examples/tests/example_field_formatting_test.glom: New file.
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       Print/Standard: Do print, not preview.
-
-       * glom/mode_data/box_data_details.cc: This is now the same as when 
-       printing a non-standard print layout.
-
-2011-10-13  Murray Cumming  <murrayc murrayc com>
-
-       Replace Gtk::Table with Gtk::Grid in the source code.
-
-       * glom/mode_design/fields/dialog_fielddefinition.h: Use the table 
-       (from the .glade file) via Gtk::Widget*.
-       * ui/developer/window_print_layout_edit.glade: Replace the GtkTable
-       with a GtkGrid.
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       Adapt.
-       There are still GtkTables in the other .glade files, but this at least
-       lets us build with gtkmm 3.3/3.4 even with --enable-warnings=fatal.
-
-2011-10-12  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Avoid some code duplication.
-
-       * glom/print_layout/print_layout_utils.[h|cc]: moved get_page_height()
-       from CanvasPrintLayout to here. And actually get the margins.
-       * glom/print_layout/canvas_print_layout.cc: get_page_y_start_and_end():
-       Use it here.
-       get_page_height(): Forward to the PrintLayoutUtils versions, passing 
-       the extra parameters.
-
-2011-10-12  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Move items to next page when expanding portals.
-
-       * glom/print_layout/canvas_print_layout.[h|cc]: move_items_below_item():
-       Use a new move_fully_to_page() method to make sure that items are never 
-       in the margins if that is possible, when expanding related records 
-       portals for real data.
-       Also add extra pages when necessary.
-
-2011-10-12  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Related Records: Move others down when expanding.
-
-       * glom/print_layout/canvas_layout_item.[h|cc]: Added 
-       move_items_below_item().
-       * glom/print_layout/canvas_print_layout.[h|cc]: fill_with_data_portal():
-       move other items lower when changing the size of the portal's table.
-
-2011-10-12  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Related Records: Expand according to min/max rows count.
-
-       * glom/print_layout/canvas_layout_item.[h|cc]: 
-       Moved get_canvas_table_cell_child() here from CanvasPrintLayout.
-       create_canvas_item_for_layout_item(): Move the table-child creation 
-       code into add_portal_rows_if_necessary().
-       * glom/print_layout/canvas_print_layout.[h|cc]: fill_with_data_portal():
-       Add rows, up to the maximum, according to the number of database rows.
-       * glom/print_layout/print_layout_utils.cc: create_standard():
-       Set a simple default height for one row, but set a min of 1 and a max 
-       of 100 so it will expand later.
-
-2011-10-11  Murray Cumming  <murrayc murrayc com>
-
-       Update the example files for the portal rows count change.
-
-       * examples/example_film_manager.glom:
-       * examples/example_music_collection.glom:
-       * examples/example_project_manager.glom:
-       * examples/example_smallbusiness.glom: Adapt to new document structure.
-
-2011-10-11  Murray Cumming  <murrayc murrayc com>
-
-       Related Records Portals: Change rows count to min and max counts.
-
-       * glom/glom_document.dtd: Adapted.
-       * glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: 
-       set_rows_count(): Return a min and max, and change it from double to 
-       gulong.
-       * glom/libglom/document/document.cc: load_after(), save_before():
-       Store it in the document. The old XML attribute was new in Glom 1.19
-       anyway, so we can change it.
-
-       * ui/developer/window_data_layout.glade: Add an extra SpinButton, 
-       adjust the labels, and add explanatory tooltips.
-       * glom/mode_design/layout/dialog_layout_details.[h|cc]: Adapted.
-
-       * glom/mode_data/db_adddel/db_adddel.[h|cc]: set_height_rows():
-       Take the min and max.
-       construct_specified_column(): Increase the size if appropriate when 
-       there are more database rows to show.
-       * glom/mode_design/layout/dialog_layout_list_related.cc:
-       * glom/print_layout/print_layout_utils.cc:
-       * glom/libglom/db_utils.cc:
-       * glom/mode_data/box_data_list_related.cc: Adapted.
-
-2011-10-11  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Create Standard: Use the full page width.
-
-       * glom/print_layout/print_layout_utils.cc: Instead of hard-coding the 
-       width. However, the field title widths are still hard-coded.
-
-2011-10-11  Murray Cumming  <murrayc murrayc com>
-
-       Small fixes to Film Manager example.
-
-       * examples/example_film_manager.glom: Remove the unused (and hiddent)
-       Teams table.
-       Contacts: Remove the unnecessary groups around the related records 
-       portals in the notebook.
-
-2011-10-11  Murray Cumming  <murrayc murrayc com>
-
-       CanvasPrintLayout: Wipe empty rows when filling with data.
-
-       * glom/print_layout/canvas_print_layout.cc: fill_with_data_portal():
-       Otherwise, the field names appear on the printout, left over from 
-       the default non-data preview.
-
-2011-10-11  Murray Cumming  <murrayc murrayc com>
-
-       TranslatableItem: Make get_title() virtual.
-
-       * glom/libglom/data_structure/translatable_item.h: Make get_title()
-       virtual, like get_title_or_name() already is, so we can make get_title()
-       useful generically via the base class.
-       * glom/libglom/data_structure/layout/layoutitem_field.[h|cc]:
-       * glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]:
-       * glom/libglom/data_structure/layout/report_parts/layoutitem_fields
-       ummary.[h|cc]: Add get_title() overrides.
-       * glom/mode_data/box_data_calendar_related.cc:
-       * glom/mode_data/box_data_list_related.cc:
-       * glom/print_layout/print_layout_utils.cc: Use get_title() instead of 
-       get_title_or_name(), to avoid showing names of intentionally title-less 
-       groups and notebooks.
-
-2011-10-11  Murray Cumming  <murrayc murrayc com>
-
-       LayoutItem_Portal: Make get_title_or_name() useful.
-
-       * glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]:
-       Add an override for get_title_or_nam(), so that callers do not need to 
-       special-case portals compared to other groups.
-       * glom/mode_data/box_data_calendar_related.cc:
-       * glom/mode_data/box_data_list_related.cc:
-       * glom/mode_data/box_data_portal.cc:
-       * glom/mode_data/flowtablewithfields.cc:
-       * glom/print_layout/print_layout_utils.cc: Use get_title_or_name() 
-       instead of more complicated code.
-
-2011-10-11  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Standard: Handle related records portals too.
-
-       * glom/print_layout/print_layout_utils.cc: create_standard():
-       If the group is a portal, just add that portal item, setting appropriate
-       sizes.
-
-2011-10-11  Murray Cumming  <murrayc murrayc com>
-
-       Simplify OptionEntry code.
-
-       * glom/glom_create_from_example.cc:
-       * glom/main.cc: Reuse one OptionEntry instance.
-
-2011-10-10  Murray Cumming  <murrayc murrayc com>
-
-       Cope with Gnome::Gda::DataModelIter::get_value_at() throwing.
-
-       * glom/libglom/connectionpool_backends/postgres.cc: Add a catch/try
-       around get_value_at(), because the latest version of libgdamm can 
-       throw an exception there.
-
-2011-10-10  Murray Cumming  <murrayc murrayc com>
-
-       Use gdk_window_get_device_position() instead of gdk_window_get_pointer().
-
-       * glom/mode_data/box_data_calendar_related.cc:
-       * glom/mode_data/buttonglom.cc:
-       * glom/mode_data/datawidget/checkbutton.cc:
-       * glom/mode_data/datawidget/combo.cc:
-       * glom/mode_data/datawidget/combo_as_radio_buttons.cc:
-       * glom/mode_data/datawidget/datawidget.cc:
-       * glom/mode_data/datawidget/entry.cc:
-       * glom/mode_data/datawidget/label.cc:
-       * glom/mode_data/datawidget/textview.cc:
-       * glom/mode_data/db_adddel/db_adddel.cc:
-       * glom/mode_data/flowtablewithfields.cc:
-       * glom/utility_widgets/adddel/adddel.cc:
-       * glom/utility_widgets/imageglom.cc:
-       * glom/utility_widgets/notebooklabelglom.cc: A fairly simple search/replace.
-
-1.19.12:
-
-2011-10-10  Murray Cumming  <murrayc murrayc com>
-
-       Really use the goocanvasmm RGBA properties.
-
-       * glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
-       * glom/mode_design/layout/layout_item_dialogs/dialog_line.cc: Use 
-       Gtk::ColorButton::get_rgba() instead of get_color.
-       * glom/mode_design/layout/dialog_layout_list_related.[h|cc]: Do not save 
-       color details if they are not shown in the UI.
-        
-2011-10-10  Murray Cumming  <murrayc murrayc com>
-
-       Require the latest goocanvasmm.
-
-       * configure.ac: Require goocanvasmm 1.90.6 because of the new RGBA properties.
-
-2011-10-10  Murray Cumming  <murrayc murrayc com>
-
-       glom_create_from_example: --help: Add a hint about when self-hosting is used.
-
-       * glom/glom_create_from_example.cc: Add some text to the --server-hostname 
-       option.
-
-2011-10-10  Murray Cumming  <murrayc murrayc com>
-
-       glom_create_from_example: Support central-hosting too.
-
-       * glom/glom_create_from_example.cc: Allow a host name, port, and username to 
-       be specified, and the password to be entered on stdin.
-       * glom/libglom/db_utils.[h|cc]: Added get_unused_database_name():
-       * glom/frame_glom.cc: Added a TODO that we should use it here too instead of 
-       the similar code that is mixed up with the dialog code.
-       * glom/libglom/connectionpool.h: Remove unused m_host member variable.
-
-2011-10-10  Murray Cumming  <murrayc murrayc com>
-
-       Added the glom_create_from_example command-line utility.
-
-       * Makefile_libglom.am:
-       * glom/glom_create_from_example.cc: This command-line utility takes an
-       example .glom file, outputs a new non-example .glom file and puts the 
-       example data, if any, in the database.
-       Right now, it assumes that you want self-hosting, so it creates the 
-       database files locally.  
-       This builds when libglom builds. It does not require the glom application.
-
-2011-10-10  Murray Cumming  <murrayc murrayc com>
-
-       Added Utils::get_file_*_without_extension().
-       
-       * glom/application.[h|cc]: Moved get_file_uri_without_extension() to 
-       * glom/libglom/utils.[h|cc]: And added get_file_path_without_extension().
-
-2011-10-09  Murray Cumming  <murrayc murrayc com>
-
-       Fix make check with --enable-warnings=fatal.
-
-       * glom/utility_widgets/eggspreadtablemm/test_spreadtablednd.cc:
-       drop_possible handlers: Adapt to the new meanin of the return type.
-
-2011-10-09  Murray Cumming  <murrayc murrayc com>
-
-       Fix the build with --enable-warnings=fatal.
-
-       * glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.cc:
-       Signal callbacks: Actually use drop_possible.
-
-2011-10-07  Murray Cumming  <murrayc murrayc com>
-
-       Fields: Adapt choices fields when changing field names.
-
-       * glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
-       Added change_field_item_name().
-       * glom/libglom/data_structure/layout/layoutgroup.cc: change_field_item_name():
-       Change the formatting too, by calling the new method.
-       * glom/libglom/document/document.cc: change_field_name(): Change the default 
-       formatting of fields too.
-       Bug #661075
-
-2011-10-06  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Really print additional pages.
-
-       * glom/print_layout/printoperation_printlayout.cc: on_draw_page(): 
-  Use Cairo::Context::translate() before calling Goocanvas::Canvas::render().
-  Bug #660553 (Thanks to David King and Damon Chaplin)
-
-2011-10-06  Murray Cumming  <murrayc murrayc com>
-
-       Document: Avoid writing some unnecessary XML nodes.
-
-       * glom/libglom/document/document.cc: <formatting>: Do not write the 
-       choices_related_show_all attribute if there are no choices.
-       Do not write numeric formatting attributes if the field type is not numeric.
-       * examples/example_film_manager.glom: Resaved.
-       
-2011-10-06  Murray Cumming  <murrayc murrayc com>
-
-       Fix DTD validation.
-
-       * glom/glom_document.dtd: Change the order of some sub-nodes. Apparently 
-       we must specify a sequence, even though we do not really care.
-       * glom/libglom/document/document.cc: load_before(), save_after(): do not 
-       save some irrelevant details for calendard portals.
-       Portals assume that no rows count means the default of 6, to make the files 
-       less verbose.
-       * examples/example_film_manager.glom:
-       * examples/example_lesson_planner.glom:
-       * examples/sqlite/test_sqlite_music/test_sqlite_music.glom: Resaved/Fixed.
-
-2011-10-06  Murray Cumming  <murrayc murrayc com>
-
-       Examples: Details layout: Remove unnecessary "main" groups.
-
-       * examples/example_lesson_planner.glom:
-       * examples/example_music_collection.glom:
-       * examples/example_project_manager.glom:
-       * examples/example_smallbusiness.glom: Move overview and details to top,
-       instead of in a top-level group.
-       * examples/example_film_manager.glom: Remove unnecessary Details titles.
-       These look silly when the first item is a group with its own title.
-
-2011-10-06  Murray Cumming  <murrayc murrayc com>
-
-       Film Manager example: Scenes: Make the Props and Costume tabs work. 
-
-       * examples/example_film_manager.glom: The relevant tables and relationships
-       did not exist. Also remove all "main" top-level groups.
-
-2011-10-06  Murray Cumming  <murrayc murrayc com>
-
-       TreeModelDb: fill_values_if_necessary(): Avoid a crash.
-
-       * glom/mode_data/datawidget/treemodel_db.cc: Do not try to use a null
-       GdaDataModel, which can happen if a SQL query fails.
-
-2011-10-06  Murray Cumming  <murrayc murrayc com>
-
-       Document: get_data_layout_groups_default(): Simplify the default structure.
-
-       * glom/libglom/document/document.cc: Do not create the useless "main" 
-       top-level group for details layouts.
-
-2011-10-06  Ben Konrath  <ben bagu org>
-
-       Fix small bugs in commented-out debugging print statements.
-
-       https://bugzilla.gnome.org/show_bug.cgi?id=661009
-
-       * glom/libglom/db_utils.cc: Change field to layout_item. Move print
-       statement to be after the assignment to
-       field_used_in_relationship_to_one.
-
-2011-10-06  Murray Cumming  <murrayc murrayc com>
-
-       Details: Do not enable drag-and-drop by default.
-
-       * glom/utility_widgets/flowtable.cc: Turn of drag-and-drop by default in 
-       the EggSpreadTableDnd
-       * glom/mode_data/flowtablewithfields.[h|cc]: Added set_enable_drag_and_drop().
-       * glom/mode_data/box_data_details.[h|cc]: Added set_enable_drag_and_drop(), 
-       calling the FlowTableWithFields.
-               
-       * glom/application.[h|cc]: Rename the Show Layout Toolbar menu item to 
-       Drag and Drop Layout, though that is a bad name and I would like a better one.
-       * glom/frame_glom.[h|cc]:  show_layout_toolbar(): Rename to 
-       set_enable_layout_drag_and_drop().
-       * glom/mode_data/notebook_data.[h|cc]: Rename show_layout_toolbar() to 
-  set_enable_layout_drag_and_drop() and make it enable dnd as well as showing 
-  the toolpallette. The toolpalette is then a visual indication that 
-  drag-and-drop is possible.
-       * glom/mode_data/test_flowtablewithfields.cc: Add a sub-group and enable 
-       drag and drop.
-       
-2011-10-06  Murray Cumming  <murrayc murrayc com>
-
-       Update EggSpreadTable tests.
-
-       * glom/utility_widgets/eggspreadtablemm/test_spreadtablednd.cc: Fix a crash.
-       * glom/utility_widgets/test_flowtable.cc:
-       * glom/utility_widgets/test_flowtable_dnd.cc: Adapt to the changed API.
-
-2011-10-06  Murray Cumming  <murrayc murrayc com>
-
-       Update EggSpreadTable
-
-       * glom/utility_widgets/eggspreadtable/: Update from libegg with Tristan's 
-       changes.
-       * glom/utility_widgets/eggspreadtablemm/: Adapt.
-
-2011-10-04  Murray Cumming  <murrayc murrayc com>
-
-       Move do_print_layout() to PrintLayoutUtils.
-
-       * glom/application.[h|cc]: Remove the new print_layout(PrintLayout) override.
-       * glom/frame_glom.[h|cc]:
-       * glom/mode_data/box_data_details.cc: Adapted, using 
-  PrintLayoutUtils::do_print_layout() instead.
-
-2011-10-04  Murray Cumming  <murrayc murrayc com>
-
-       PrintOperation_PrintLayout: Move to print_layout/:
-       
-       * Makefile_glom.am:  Mention the changed paths.
-       * glom/frame_glom.cc: Adapted.
-
-2011-10-04  Murray Cumming  <murrayc murrayc com>
-
-       PrintLayoutUtils: Move to print_layout/
-
-       * Makefile_glom.am: Mention the changed paths.
-       * glom/mode_data/box_data_details.cc:
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc: Adapted.
-
-2011-10-04  Murray Cumming  <murrayc murrayc com>
-
-       Details: Print: Use a standard print layout instead of HTML.
-
-       * glom/frame_glom.[h|cc]: Add a do_print_layout() that takes a PrintLayout
-       instead of just a print layout name.
-       * glom/application.[h|cc]: Add a  do_print_layout() that forwards to 
-  Frame_Glom.
-       * glom/mode_data/box_data_details.[h|cc]: print_layout(): Instead of 
-       generating HTML and showing it in a browser, create a standard print layout 
-       and offer it via a normal printing dialog. This is at least as good (not 
-       very good yet) as our generated HTML, but simpler and more normal.
-       Remove any code that used the old XML+XSLT=HTML way for details.
-       
-       We still use the generated HTML for the list view, as if it was just another
-       report. Maybe we can improve that in future too.
-
-2011-10-04  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Move create_standard() into a utils file.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]: Move
-       create_standard to 
-       * glom/print_layout_utils.[h|cc] so we can use it elsewhere too.
-       * Makefile_glom.am: Mentino the new file.
-
-2011-10-02  Murray Cumming  <murrayc murrayc com>
-
-       Find: Get criteria even when a field is on the layout twice.
-
-       * glom/mode_data/flowtablewithfields.cc: get_field_value(): 
-       Look at all the widgets for this field, instead of just the first one, 
-       and keep looking until we find a non-empty value.
-       This is still rather arbitrary, but this method is only used for 
-       find criteria, or should be.
-
-2011-10-02  Murray Cumming  <murrayc murrayc com>
-
-       Find Mode: Do not show data in related records.
-
-       * glom/mode_data/box_data_portal.[h|cc]: Add a virtual set_find_mode().
-       * glom/mode_data/box_data_list_related.h: Add a set_find_mode() 
-       override here which calls it on the DbAddDel.
-       * glom/mode_data/db_adddel/db_adddel.h: Document the existing 
-       set_find_mode() more.
-       * glom/mode_data/flowtablewithfields.[h|cc]: Add set_find_mode(), which 
-       calls it on all child portals and flowtables and calls it later when 
-       creating them.
-       * glom/mode_find/box_data_details_find.cc: Call set_find_mode() on the 
-       FlowTable.
-       This also affects the Find button next to ID fields.
-
-2011-09-30  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Create Standard Layout: Support multiple pages.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       create_standard(): Support multiple pages, trying to keep out of the margins.
-       * glom/print_layout/canvas_print_layout.cc: add_layout_group_children():
-  Do not add canvas items that were not able to handle the layout item, such 
-  as buttons. 
-
-2011-09-30  Murray Cumming  <murrayc murrayc com>
-
-       Fix the DTD.
-       
-       * glom/glom_document.dtd: Fix my typo to fix make check.
-
-2011-09-30  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Allow multiple pages.
-
-       * glom/libglom/data_structure/print_layout.[h|cc]: Add get/set_page_count().
-       * glom/libglom/document/document.cc: load_after(), save_before():
-       Store the page count in the document.
-       * glom/glom_document.dtd: Mention the new attribute.
-       
-       * glom/print_layout/canvas_print_layout.[h|cc]: Add get/set_page_count()
-       and get_page_bounds().
-       update_page_bounds(): Move the margin creation into here, and create 
-       margins for all pages.
-       * glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
-  Added update_grid_for_new_size().
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]: Add 
-       Add Page and Delete Page menu items, though we need to rearrange the menus
-       more sensibly.
-
-       * glom/printoperation_printlayout.cc: on_begin_print(), on_paginate():
-  Set the number of pages.
-  on_draw(): Render only the specified page's bounds from the GooCanvas.
-  However, this is not working for any page but the first one.
-  Some cairo transformation might be necessary.
-
-2011-09-30  Murray Cumming  <murrayc murrayc com>>
-
-       Instantiation test: warn if the widget is too big for small screens.
-
-       * tests/test_glade_derived_instantiation.cc: Actually show the window
-       (Is there a way to get the size without showing it) and warn if it is too 
-       big, but do not fail yet.
-       Note that this is very dependent on the theme in use, though maybe we 
-       can set that at runtime for the test.
-
-2011-09-30  Murray Cumming  <murrayc murrayc com>
-
-       Field Formatting window: Make it slightly less tall.
-
-       * ui/developer/dialog_layout_field_properties.glade: Arrange two radio 
-       buttons horizontally instead of vertically. But this window is still too tall.
-       See https://bugs.launchpad.net/ubuntu/+source/glom/+bug/863016
-
-2011-09-29  Jasper Lievisse Adriaanse <jasperla gnome org>
-
-       Remove glibc-specific function call.
-
-       * glom/main.cc: Fix build on OpenBSD (and other non-glibc systems)
-       by wrapping calls to __libc_freeres() in correct #ifdefs.
-       Bug #660496
-
-2011-09-29  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Add experimental Create Standard feature.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       Add an Insert/Create Standard Layout menu item which creates a layout 
-       similar to the details layout.
-
-2011-09-29  Murray Cumming  <murrayc murrayc com>
-
-       Dialog_Choose_ID: Work around a crash in GTK+.
-
-       * glom/mode_data/datawidget/dialog_choose_id.cc: Remove the Box_Data_List 
-       from the parent container (we added it earlier), to avoid a crash, though 
-       it would be good to fix that properly and generically.
-       Bug #660347
-
-2011-09-29  Murray Cumming  <murrayc murrayc com>
-
-       build_simple_where_expression(): Check input parameters.
-
-       * glom/libglom/utils.cc: build_simple_where_expression(): Check for an 
-       empty key field, which can happen during debugging.
-
-2011-09-29  Murray Cumming  <murrayc murrayc com>
-
-       Glade utils: Catch generic exceptions.
-
-       * glom/glade_utils.h: Though this only happens when gtkmm has not been 
-       initialized.
-
-2011-09-28  Murray Cumming  <murrayc murrayc com>
-
-       Related Records: Fix bug with a blank row when there is only one row. 
-
-       * glom/libglom/connectionpool.[h|cc]: Added get_backend_supports_cursor().
-       * glom/mode_data/datawidget/treemodel_db.cc: refresh_from_database():
-       Call that method, so we can avoid using GdaDataAccessWrapper unless 
-       necessary. That avoids an apparent bug with GdaDataAccessWrapper returned 
-       a row of all-nulls if there is only one row. See libgda bug #660344 .
-       This is probably a performance improvement anyway.
-
-2011-09-27  Murray Cumming  <murrayc murrayc com>
-
-       Require the latest gtkmm.
-
-       * configure.ac: Require gtkmm 3.2.0 to keep things simple.
-
-2011-09-27  Murray Cumming  <murrayc murrayc com>>
-
-  libglom::LayoutItem_Portal: Added get_suitable_table_to_view_details().
-
-       * glom/base_db.[h|cc]: Move the get_portal_navigation_relationship_automatic()
-       and get_suitable_table_to_view_details() utility functions to: 
-       * glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: Also
-       move other privately-used utility functions here too, from Base_DB.
-       * glom/mode_design/layout/dialog_layout_calendar_related.cc: update_ui():
-       * glom/mode_design/layout/dialog_layout_list_related.cc: update_ui():
-       * glom/mode_data/box_data_portal.cc: 
-       get_has_suitable_record_to_view_details(), 
-       get_has_suitable_record_to_view_details(): Adapted.
-
-2011-09-27  Murray Cumming  <murrayc murrayc com>
-
-       libglom::layout_field_should_have_navigation(): Return Relationship not bool.
-
-       * glom/libglom/db_utils.[h|cc]: layout_field_should_have_navigation():
-       Make field_used_in_relationship_to_one() be a Relationship so it can 
-       be used for actual navigation.
-       Also require that the LayoutItem_Field has full field information, instead 
-       of updating it, so that it can be const.
-       * glom/mode_data/datawidget/datawidget.cc: Constructor: Adapted.
-       * glom/mode_data/box_data_details.cc: 
-  on_flowtable_field_open_details_requested(): Use it here instead of the 
-  copy/pasted code.
-
-2011-09-27  Murray Cumming  <murrayc murrayc com>
-
-       Add libglom::layout_field_should_have_navigation().
-
-       * glom/mode_data/datawidget/datawidget.cc: Constructor: Moved decision code
-       from here to here:
-       * glom/libglom/db_utils.[h|cc]: Added layout_field_should_have_navigation().
-
-2011-09-26  Murray Cumming  <murrayc murrayc com>
-
-       Document: Use CSS3 formatting for colors, via Gdk::RGBA.
-
-       * glom/mode_design/layout/dialog_layout_list_related.cc:
-       * glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
-       * glom/mode_design/layout/layout_item_dialogs/dialog_line.cc:
-       * glom/utility_widgets/canvas/canvas_line_movable.[h|cc]: Use Gdk::RGBA
-       instead of Gdk::RGBA everywhere now that goocanvas(mm) supports it.
-
-2011-09-26  Murray Cumming  <murrayc murrayc com>
-
-       Related Records: Do not try to navigate to an empty record.
-
-       * glom/mode_data/box_data_list_related.cc: on_adddel_user_requested_edit():
-       Ignore clicks on the open button of the empty placeholder row, whose 
-       primary key is null.
-
-2011-09-22  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Add an Align menu.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]: Add 
-       menu items for align top, bottom, left, and right. I don't much like the 
-       copy/pasteness of the code, but it works.
-
-2011-09-22  Murray Cumming  <murrayc murrayc com>
-
-       Layout window: Correct the vertical order of Add buttons.
-
-       * ui/developer/window_data_layout.glade: This has been mixed up since some 
-       time recently, probably due to Glade changes.
-
-2011-09-21  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Show contents of System Preferences in Fields.
-
-       * glom/base_db.cc: get_field_value_in_database(): Only complain about 
-       a missing key if the relationship needs one.
-       * glom/libglom/document/document.cc:
-       * glom/print_layout/canvas_layout_item.cc: set_db_data(): Show an 
-       empty image if there is no pixbuf.
-       * glom/print_layout/canvas_print_layout.[h|cc]: Added 
-       fill_with_data_system_preferences() to show details from the system 
-       preferences, if appropriate. This is possible because we do not need a 
-       specific record to show values from the one record in System Preferences.
-       add_canvas_layout_item(), on_context_menu_edit(): Call it.
-
-2011-09-21  Murray Cumming  <murrayc murrayc com>
-
-       Details: Avoid warning when using System Preferences fields.
-
-       * glom/libglom/document/document.cc: get_field_used_in_relationship_to_one():
-       Do not complain when the system preferences table is not found.
-
-2011-09-21  Murray Cumming  <murrayc murrayc com>
-
-       Avoid "m_backend is NULL" warning at startup.
-
-       * glom/libglom/connectionpool.[h|cc]: Added get_instance_is_ready().
-       * glom/application.cc: update_userlevel_ui(): Use it, because it might not 
-       be ready, causing a (harmless) stderr warning.
-
-1.19.11:
-
-2011-09-21  Murray Cumming  <murrayc murrayc com>
-
-       Require latest libgdamm, for the Value::operator=() fix.
-
-       * configure.ac: This avoids a blank details view when changing to developer
-       mode.
-
-2011-09-20  Murray Cumming  <murrayc murrayc com>
-
-       Details: Avoid an empty layout when changing to developer mode.
-
-       * glom/mode_data/box_data_details.cc: on_userlevel_changed(): Recreate 
-       and refill the layout, instead of just recreating it.
-
-2011-09-20  Murray Cumming  <murrayc murrayc com>
-
-       Some checks for GValues with invalid types.
-
-       * glom/libglom/data_structure/glomconversions.cc: value_is_empty():
-       Also check for a 0 GType, which now (in libgda-5.0) means invalid, not
-       SQL-null.
-       * glom/mode_data/box_data_details.cc:
-       set_found_set_from_primary_key_value(): Use value_is_empty() instead of
-       checking for a null value.
-
-2011-09-20  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Layout: Fix alignment/expansion of the line options.
-
-       * ui/developer/window_data_layout.glade: Remove some horizontal expand=true.
-
-2011-09-20  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Related Records: Do not show editing formatting options.
-
-       * glom/mode_design/layout/dialog_layout.[h|cc]: Add m_editable_layout, 
-       defaulting to true.
-       * glom/mode_design/layout/dialog_layout_details.cc: on_button_formatting():
-       Use m_editable_layout to avoid showing some formatting options.
-       * glom/mode_design/layout/dialog_layout_list_related.cc: set_document():
-       Set m_editable_layout to false for print layout.
-
-2011-09-19  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Use foreground colors from the text/field formatting.
-
-       * glom/print_layout/canvas_layout_item.cc: apply_formatting():
-       Correctly use the foreground color, though the background color is not 
-       used yet.
-
-2011-09-19  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Use the correct numeric formatting.
-
-       * glom/print_layout/canvas_print_layout.cc: set_canvas_item_field_value():
-       For instance, use the default field formatting. Otherwise numbers tend 
-       to have thousands separators and no decimal places by default.
-
-2011-09-19  Murray Cumming  <murrayc murrayc com>
-
-       Images: Avoid a warning when choosing.
-    
-       * glom/utility_widgets/imageglom.cc: on_menupopup_activate_select_file():
-       Avoid a warning about reinitializing a GValue when choosing an image file.
-
-2011-09-13  Murray Cumming  <murrayc murrayc com>>
-
-       Remove the Add Related Table feature.
-
-       * glom/application.cc: init_menus():
-       * glom/frame_glom.[h|cc]: on_menu_Tables_AddRelatedTable(): Remove the 
-       Tables/Add Related Table menu item (and feature) because, though it is 
-       useful, it requires explanation and is probably confusing to new users.
-       
-       Of course you can still add tables and then a relationship to them manually.
-
-1.19.10:
-
-2011-09-12  Murray Cumming  <murrayc murrayc com>
-
-       UsesRelationship: Added get_relationship_display_name().
-
-       * glom/mode_design/layout/dialog_layout_calendar_related.cc: update_ui():
-       * glom/mode_design/layout/dialog_layout_list_related.cc: update_ui():
-       Move some code into
-       * glom/libglom/data_structure/layout/usesrelationship.[h|cc]:
-       get_relationship_display_name() to avoid repetition.
-
-2011-09-12  Murray Cumming  <murrayc murrayc com>
-
-       Related Records: Correct automatic navigation to related relationships.
-
-       * glom/base_db.[h|cc]: get_portal_navigation_relationship_automatic():
-       Remove the unused (well, should have been unused) navigation_main output
-       parameter.
-       Document the method so we know what the parameters and result really mean.
-       In particular, a empty result means that the portal's regular relationship
-       should just be used.
-       * glom/mode_data/box_data_portal.[h|cc]: get_suitable_table_to_view_details():
-       Document its parameters so we know what table the relationship belongs to, 
-       if any relationship is even needed.
-       Use get_navigation_relationship_specific() if specified and correct the 
-       logic so that the correct table is always used.
-       get_suitable_record_to_view_details(): Document this too.
-       * glom/mode_design/layout/dialog_layout_calendar_related.cc: update_ui():
-       * glom/mode_design/layout/dialog_layout_list_related.cc: update_ui():
-       Adapted.
-
-2011-09-09  Murray Cumming  <murrayc murrayc com>
-
-       ComboGlom::set_value(): Do not cause a change to be signalled.
-
-       * glom/mode_data/datawidget/combo.[h|cc]: Prevent unsuitable signal 
-       emissions when setting the value programatically.
-
-2011-09-09  Murray Cumming  <murrayc murrayc com>
-
-       Do not create XML documents containing form feeds.
-
-       * glom/libglom/utils.[h|cc]: Added string_clean_for_xml(), though it is 
-       currently inefficient and copies the whole string even when not changing it.
-       * glom/libglom/document/document.cc: set_child_text_node(), 
-       set_node_text_child_as_value(), save_before(): Always use that utility 
-       method before giving the child text string to libxml, because libxml will 
-       just write it out to the file, creating an invalid XML file that it can't
-       read back in.
-
-2011-09-09  Murray Cumming  <murrayc murrayc com>
-
-       Related records portals: Allow navigation via read-only relationships.
-
-       * glom/mode_data/box_data_list_related.cc: on_adddel_user_requested_edit():
-       Remove the check for a non-editable relationship, because that is about 
-       editing, but this is about opening, and we already have the navigation=None
-       option.
-
-2011-09-09  Murray Cumming  <murrayc murrayc com>
-
-       Script Library: Prevent a crash when opening the dialog.
-
-       * ui/developer/dialog_script_library.glade: Change the GtkComboBox to a 
-       GtkComboBoxText as intended, to prevent a crash when it has no model.
-       * glom/utility_widgets/combo_textglade.[h|cc]: Add a check that there is a 
-       model.
-
-2011-09-08  Murray Cumming  <murrayc murrayc com>
-
-       DataWidget: Do not expand the Open and Find buttons.
-
-       * glom/mode_data/datawidget/datawidget.cc: Use Gtk::PACK_SHRINK.
-
-2011-09-08  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Do not show the formatting context menu items when it is useless.
-
-       * glom/print_layout/canvas_print_layout.cc: on_item_show_context_menu():
-       Disable the formatting context menu item when appropriate.
-
-2011-09-08  Murray Cumming  <murrayc murrayc com>
-
-       Use pygobject-3.0
-
-       * configure.ac: Instead of pygobject-2.0. Because everything else (such as 
-       the gi.repository.Gda seems to use it, and initializing pygobject-2.0 breaks 
-       that.
-
-2011-09-08  Murray Cumming  <murrayc murrayc com>
-
-       Remove the Mameo UI.
-
-       * Makefile.am:
-       * Makefile_glom.am:
-       * configure.ac:
-       * glom/*.[h|cc]: Remove the --enable-maemo option and the ifdefs in the code.
-       Unforunately, the platform is dead so that Hildon API will never be available 
-       to us in the real world.
-
-2011-09-08  Murray Cumming  <murrayc murrayc com>
-
-       startup: Check that the gi.repository python module is available.
-
-       * glom/main.cc: Actually call check_gir_is_available_with_warning() and do 
-       that before checking for Gda inside it.
-
-2011-09-05  Murray Cumming  <murrayc murrayc com>
-
-       Glade files: Alignment corrections.
-
-       * ui/developer/box_formatting.glade:
-       * ui/developer/dialog_choose_field.glade:
-       * ui/developer/window_groups.glade:
-       * ui/operator/dialog_import_csv.glade: Use fill=true 
-       for the packing of labels in GtkTable, so their 
-       alignment is actually used. For instance, this makes 
-       labels line up to the left or right.
-       * ui/developer/dialog_user.glade: Also use a : at the 
-       end of labels, as in other dialogs.
-
-2011-09-02  Murray Cumming  <murrayc murrayc com>
-
-       Fix expansions in glade files.
-
-       * ui/developer/*.glade:
-       * ui/operator/*.glade: expand/fill corrections and some alignment corrections.
-
-2011-09-01  Murray Cumming  <murrayc murrayc com>
-
-       Field Definition window: Fix vertical packing.
-
-       * ui/developer/window_field_definition_edit.glade: Some GtkTable children 
-       had vertical expand=true.
-
-2011-09-01  Murray Cumming  <murrayc murrayc com>
-
-       Replace deprecated Gtk::HBox and Gtk:VBox with Gtk::Box.
-
-       * glom/*.[h|cc]: HBox and VBox are deprecated.
-       However, these are still used in the .glade files.
-
-2011-09-01  Murray Cumming  <murrayc murrayc com>
-
-       Update EggSpreadTableDnd from libegg. 
-
-       * glom/utility_widgets/eggspreadtable/eggspreadtablednd.[h|c]:
-       Updated from libegg.
-       * glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.[h|cc]:
-       Wrap the new API to add and remove widgets. Note the extra reference() in 
-       remove_child(), like Gtk::Container::remove().
-       * glom/utility_widgets/eggspreadtablemm/test_spreadtablednd.cc: Adapt.
-       * glom/utility_widgets/flowtable.[h|cc]: Adapt and make several corrections, 
-       for instance to really find our intermediate hbox parents.
-       However, there is still a warning (from our code) about trying to remove a 
-       hbox that has no parent. 
-       * glom/mode_data/flowtablewithfields.[h|cc]: Remove the add_before parameters,
-       always adding at the end, because we do not need the ability to insert 
-  anywhere else, and doing so required examining the children, but 
-  EggSpreadTableDnd adds internal children that we don't want to care about.
-
-2011-08-31  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Allow the user to choose row and column line widths and color.
-
-       * glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: Added 
-       get/set_print_layout_row_line_width(), 
-  get/set_print_layout_column_line_width(), and 
-  get/set_print_layout_line_color().
-       * glom/libglom/document/document.cc: load_after(), save_before(): Store the 
-       new details in the document.
-       * ui/developer/window_data_layout.glade: Added an optional extra section 
-       with line details for print layouts.
-       * glom/mode_design/layout/dialog_layout_list_related.[h|cc]: Use the new
-       widgets, hiding them for non-print-layout uses.
-       * glom/mode_design/layout/dialog_layout_details.[h|cc]: Hide the new widgets 
-       by default.
-       * glom/utility_widgets/canvas/canvas_table_movable.[h|cc]: 
-  Added set_line_details().
-       * glom/print_layout/canvas_layout_item.cc:
-  create_canvas_item_for_layout_item(): Call set_line_details().
-
-2011-08-30  Murray Cumming  <murrayc murrayc com>
-
-       Disable the canvas test.
-
-       * Makefile_tests.am: Because it doubles the build time.
-
-2011-08-30  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Line editing: Allow decimal places.
-
-       * ui/developer/dialog_line.glade: Add an outer border, to match the other 
-  dialogs. Let the SpinButton show (and allow) 3 decimal places.
-
-2011-08-30  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Slight improvement to image scaling.
-
-       * glom/utility_widgets/canvas/canvas_image_movable.cc: scale_to_size():
-       Use the correct size in pixels to scale the image.
-       However, it is still overscaled and cropped due to goocanvas bug #657592 .
-
-2011-08-29  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Allow editing of line width and color.
-
-       * Makefile.am:
-       * Makefile_glom.am:
-       * ui/developer/dialog_line.glade:
-       * glom/mode_design/layout/layout_item_dialogs/dialog_line.[h|cc]:
-       Added a new dialog for editing line details, such as width and color.
-       * tests/test_glade_derived_instantiation.cc: Test new new dialog.
-
-       * glom/libglom/data_structure/layout/layoutitem_line.[h|cc]: Added 
-       get/set_line_width() and get/set_line_color().
-       * glom/libglom/document/document.cc: load_after(), save_before(): Store
-       these new details in the document.
-       * glom/print_layout/canvas_layout_item.cc:
-       * glom/print_layout/canvas_print_layout.[h|cc]: Allow editing by showing 
-       this new dialog.
-
-2011-08-29  Murray Cumming  <murrayc murrayc com>
-
-       Load whole glade files, to get secondary objects without listing them.
-
-       * glom/glade_utils.h: helper_get_glade_widget_derived_with_warning():
-  Add a bool so we can choose to load the whole .glade file.
-  get_glade_widget_derived_with_warning(): Load the whole file.
-  Add get_child_glade_child_widget_derived_with_warning(), which does not load 
-  the whole file.
-  * glom/frame_glom.cc:
-  * glom/mode_design/fields/dialog_fielddefinition.cc:
-  * glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.cc:
-  * glom/mode_design/layout/layout_item_dialogs/dialog_formatting.cc:
-  * glom/mode_design/print_layouts/dialog_text_formatting.cc: Use this to load 
-  boxes when we do not want the whole window that they are in.
-
-  This was the main reason for splitting the .glade files up - to work 
-  around GtkBuilder's inability to automatically load secondary objects.
-
-2011-08-28  Murray Cumming  <murrayc murrayc com>
-
-       Remove unused .glade file.
-
-       * ui/developer/dialog_layoutitem_properties.glade:
-       * Makefile.am: This glade file is not used by any code.
-
-2011-08-27  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Related records portals: Use the normal outline stroke.
-
-       * glom/utility_widgets/canvas/canvas_group_resizable.[h|cc]: Add 
-       a static get_outline_stroke() method.
-       * glom/print_layout/canvas_layout_item.cc:
-       create_canvas_item_for_layout_item(): Use it here.
-
-2011-08-27  Murray Cumming  <murrayc murrayc com>
-
-       Print Layouts: Default to 12-point text instead of 9.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       Use a grid size, and item sizes, suitable for 12 point text.
-       create_empty_item(): Make sure we stop LayoutItem_Field items from 
-       using default formatting, which is not for print layouts.
-       Set a default font size for anything that has text formatting.
-       * glom/mode_design/relationships_overview/canvas_group_dbtable.cc:
-       Constructor: Use 12 points instead of 10 points, though this should 
-       be configurable anyway.
-
-2011-08-27  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Make item sizes match the grid size by default.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       create_empty_item(): Base the default item sizes on the grid gap,
-       so they are more useful.
-
-2011-08-26  Murray Cumming  <murrayc murrayc com>
-
-       Allow deletion of multiple selected items via the context menu.
-
-       * glom/print_layout/canvas_print_layout.[h|cc]: on_context_menu_delete():
-       If the deleted item was selected, delete all selected items.
-
-2011-08-23  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Related records: Corrections for column sizes.
-
-       * glom/print_layout/canvas_layout_item.cc: create_canvas_item_for_layout_item():
-       Related records table: Use an extra GooCanvasRect to make sure that the 
-       cell size is really what we want, avoiding GooCanvasText's and GooCanvasTable's 
-  attempts to be cleverer than we want.
-  Also, make sure that the last column is expanded, regardless of any size 
-  specified, if all the other columnd had specified sizes.
-
-2011-08-22  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Related Records: Set the row height.
-
-       * glom/print_layout/canvas_layout_item.cc: We can do this now that the 
-       goocanvas bug has been fixed, though configure should check for it when the
-       tarball version exists.
-
-2011-08-22  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout / Relationships Overview: Avoid errors with & in the text.
-
-       * glom/utility_widgets/canvas/canvas_text_movable.cc: reconstruct_markup:
-  Escape the text before using it to build markup. Otherwise pango will complain
-  (correctly) about & in the text.
-
-2011-08-15  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Do not show navigation options for related records portals.
-
-       * glom/mode_design/layout/dialog_layout_list_related.[h|cc]:
-  set_document(): Add a new bool parametrer that can hide the navigation 
-  widgets because they are useless in a print layout.
-       * glom/print_layout/canvas_print_layout.cc: offer_related_records():
-  Use the new bool parameter.
-       * ui/developer/window_data_layout.glade: Correct some packing options so 
-  the right parts expand, without empty space.
-
-2011-08-13  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Snap to rules even when the grid is not shown.
-
-       * glom/utility_widgets/canvas/canvas_group_grid.cc: Don't make snapping 
-       to rules dependent on whether the grid is showing.
-
-2011-08-12  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Work around some weirdness in portal tables.
-
-       * glom/print_layout/canvas_layout_item.cc:
-       create_canvas_item_for_layout_item() Do not set the height of 
-       items in tables, because that leads to them disappearing when the 
-       table is moved in certain ways. I am still investigating why.
-       We probably really do want to set the height.
-
-2011-08-11  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Only show grid lines on mouseover.
-
-       * glom/utility_widgets/canvas/canvas_table_movable.[h|cc]:
-       Add set_lines_visibility().
-       * glom/utility_widgets/canvas/canvas_group_resizable.cc:
-       position_line_manipulators(): If the child is a table then 
-       also show the grid lines.
-
-2011-08-11  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Make the manipulators the same width as the outlines.
-
-       * glom/utility_widgets/canvas/canvas_group_resizable.cc: Change 
-       MANIPULATOR_STROKE_WIDTH to be the same as OUTLINE_STROKE_WIDTH, 
-       which is thinner.
-       create_outline_line(): Prevent dragging of the outline, in case it 
-       ever gets high enough in the z order to be dragged.
-       create_rect_manipulators(), position_line_manipulators(),
-       create_outline_line(): Always raise the manipulators to the very top,
-       so they are always visible and draggable. Trying to be more precise 
-       with raise() can apparently move them lower than other items that we 
-       do not mention.
-
-2011-08-11  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Do not show the rules when they should not be visible.
-
-       * glom/print_layout/canvas_print_layout.cc: set_print_layout():
-       Show the grid and rules as per the PrintLayout.
-
-2011-08-11  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Prevent rule line dragging if rules are not shown.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       on_menu_view_show_rules(): If rules are not shown, unset the GimpRulers 
-       as drag sources.
-       on_canvas_drag_motion(), on_canvas_drag_data_received(): Prevent 
-       showing the temp rule or dropping a real rule too.
-       Also remove the unused (though set) m_dragging_temp_rule variable.
-
-2011-08-11  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Add a Print Preview menu item.
-
-       * glom/frame_glom.[h|cc]: on_menu_print_layout_selected(): 
-       Move this into a do_print_layout() method, with optional preview 
-       and transient-for window.
-       * glom/application.[h|cc]: Added do_print_layout() so we can do this 
-       from other parts of the code.
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       Add a Print Preview menu item that calls the method on the 
-       application, though transient to this window.
-       It shows data from the currently-selected record, even though that 
-       might not be very visible to the user.
-
-2011-08-11  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Make text formatting work for field items.
-
-       * glom/print_layout/canvas_print_layout.cc: on_context_menu_edit(), 
-       on_dialog_format_hide(): Never use default formatting for fields, 
-       because that formatting is for regular layouts, and we do not 
-       even let the user toggle whether to use it.
-
-2011-08-11  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Don't move fields to 0,0 when choosing the field.
-
-       * glom/mode_design/layout/dialog_choose_field.cc: get_field():
-       Preserve the extra details of the start field, such as formatting 
-       and print layout position.
-
-2011-08-11  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Actually allow the user to change the text formatting.
-
-       * glom/mode_design/layout/layout_item_dialogs/box_formatting.cc:
-       When used for a print layout, enable the hidden checkboxes, because 
-       other code checks for them.
-       * glom/print_layout/canvas_print_layout.cc: on_context_menu_formatting():
-       Make the dialog transient for the parent window.
-       Also, do not show numeric formatting for text items.
-
-2011-08-11  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Correct drag positions when scrolled.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       Correct the rule position indicators, the rule drag positions, and 
-       item drag positions, when the viewport is scrolled.
-       canvas_convert_from_drag_pixels(): Add a bool adjust_for_scrolling 
-       option, because the motion-notify-event signal already takes the 
-       scroll offset into account, but the drag-motion signal does not.
-       That does not seem to be documented.
-
-2011-08-10  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Make items transparent.
-
-       * glom/utility_widgets/canvas/canvas_group_resizable.cc:
-       create_rect_manipulators(): Make items transparent instead of white.
-
-2011-08-10  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Allow rules to be moved.
-
-       * glom/utility_widgets/canvas/canvas_line_movable.[h|cc]: Added 
-       set_hover_color() and make sure that color is used when the mouse is 
-       over the line.
-       * glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
-       Use CanvasLineMovable instead of PolyLine for rules, so it can 
-       be moved. Make it appear red when hovering over it. Store the 
-       lines instead of just the positions, so we can get the latest positions 
-       later. This is rather inefficient, but it works.
-
-2011-08-10  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Save the rules and the various show/hides.
-
-       * glom/glom_document.dtd: Add the new nodes and attributes.
-       * glom/libglom/document/document.cc: load_after(), save_before():
-       Load and save these in the document.
-       
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       set_print_layout(): Set the menu actions from the PrintLayout
-       so, for instance, the grid is shown if it was shown last time.
-       * glom/print_layout/canvas_print_layout.cc:
-       set_print_layout(): Load and save the rules too.
-       * glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
-       Added remove_rules() and get_horizontal/vertical_rules().
-       * glom/utility_widgets/canvas/canvas_editable.[h|cc]:
-       Added remove_rules() and get_horizontal/vertical_rules(), 
-       calling the same methods in the grid.
-       * glom/libglom/data_structure/print_layout.[h|cc]: 
-       Added get/set_grid/rules/outlines() and 
-       get_horizontal/vertical_rules().
-
-2011-08-10  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Allow dragging of rules from the rulers.
-
-       * glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
-       Added show_temp_rule().
-       * glom/utility_widgets/canvas/canvas_editable.[h|cc]:
-       Added show_temp_rule(), calling the one in the grid.
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       Constructor: Add a special target to the canvas (drag destination).
-       Handle button-press on the rulers to identify the orientation.
-       on_canvas_drag_motion(): Handle the new target, showing the temporary 
-       rule line.
-       on_canvas_drag_data_received(): Handle the new target, adding a real 
-       rule line.
-       on_canvas_drag_leave(): clean up.
-
-       The rule lines are not saved to the document yet.
-
-2011-08-09  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Actually show rules, if there are some.
-
-       * glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
-       create_lines(): Split this into two methods, and make sure that 
-       the z order is correct, so that we can really show the grid and 
-       rules independently, without needing to recreate both at the 
-       same time.
-       Added set_rules_visiblity() to do so.
-       add_horizontal_rule(), add_vertical_rule(): Actually create 
-       the rules.
-       * glom/utility_widgets/canvas/canvas_editable.[h|cc]:
-       Added set_rules_visibility() which just calls the same method 
-       in the grid.
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       on_action_menu_view_showrules(): Call it.
-
-       Of course, there is no way to add a rule yet.
-
-2011-08-09  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Make the window bigger by default.
-
-2011-08-09  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Make ruler markers follow moved items.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       on_selected_item_moved(): Show the top-left position of the group of 
-       items, though maybe we should show just the moved item instead.
-       Inkscape does not do this at all (it just shows the cursor position),
-       so some other example would be nice.
-
-2011-08-09  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Make ruler markers follow the cursor.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       Handle motion-notify-event so the rules track the cursor position.
-       This is not very useful, but it feels nice, and is what other apps do.
-
-2011-08-09  Murray Cumming  <murrayc murrayc com>
-
-       Application: Remove unused member variable.
-
-       * glom/application.[h|cc]: Remove m_pBoxSidebar.
-
-2011-08-09  Murray Cumming  <murrayc murrayc com>
-
-       Update the GimpRuler source copy.
-
-       * glom/utility_widgets/gimpruler/gimpruler.[h|cc]:
-       Updated from gimp's repository, from the gtk3-port branch.
-
-2011-08-08  Murray Cumming  <murrayc murrayc com>
-
-       Relationships Overview: Make snap to grid work.
-
-       * glom/utility_widgets/canvas/canvas_editable.[h|cc]:
-       Add associate_with_grid().
-       * glom/mode_design/relationships_overview/dialog_relationships_over
-       view.cc: draw_tables(): Use it so that the items' snap_position() 
-       methods have a grid to snap to.
-       The whole grid association/add idea is generally hacky, but this makes it 
-       work.
-
-2011-08-08  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Deselect all items when clicking on the background.
-
-       * glom/print_layout/canvas_print_layout.[h|cc]: 
-       set_page_setup(): Handle button-press-event signals on the background,
-       deselecting any selected items.
-       create_margin_line(): Do the same if the user manages to click on a 
-       line instead.
-
-2011-08-08  Murray Cumming  <murrayc murrayc com>
-
-       Relationships Overview: Correct the packing in the dialog.
-
-       * ui/developer/dialog_relationships_overview.glade:
-       Let the scrolledwindow expand. This was really silly and must have 
-       happened during some edit with a bad version of Glade.
-
-2011-08-08  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Select All: Added ctrl-A keyboard shortcut.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       init_menus(): Because it is not part of the stock item, for some reason.
-
-2011-08-08  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Add Select All and Unselect All menu items.
-
-       * glom/print_layout/canvas_print_layout.[h|cc]: Added select_all(bool)
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       init_menus(): Edit menu: Add Select All and Unselect All menu items,
-       which call that method.
-
-2011-08-08  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Add a Show Outlines menu item
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]
-       View menu: Add Show Outlines, with a handler, to show the extents of 
-       the items.
-       * glom/utility_widgets/canvas/canvas_group_resizable.[h|cc]:
-       Added a new group with lines, in a thinner fainter gray, to indicate 
-       the outline. Added set_outline_visible() to show it.
-       Move it whenever the child item moves, like the manipulator lines.
-       * glom/print_layout/canvas_print_layout.[h|cc]:
-       Added set_outlines_visibility() to call this on all items.
-       Store the value as a bool so we can use it again in 
-       add_canvas_layout_item().
-
-2011-08-08  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Allow moving of multiple items via x and y numbers.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       on_canvas_selection_changed(): Move the calculation of the group
-       dimensions into get_dimensions_of_multiple_selected_items().
-       on_spinbutton_x(), on_spinbutton_y(): Use the new method to get the 
-       old dimensions, so we can calculate the offset and then apply it to 
-       all items, moving them together.
-
-2011-08-08  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Snap to grid when dragging items from the toolbar.
-
-       * glom/utility_widgets/canvas/canvas_group_resizable.h:
-       snap_position(): Make this public.
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       on_canvas_drag_motion(), on_canvas_drag_data_received():
-       Snap the position to the grid (or rules), like we do when dragging 
-       an existing item.
-
-2011-08-07  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Improve the grid appearance.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       on_menu_view_show_grid(): Use a smaller grid gap, which seems more useful.
-       * glom/utility_widgets/canvas/canvas_group_grid.cc:
-       create_rule_line(): Make the lines thinner and light blue instead of 
-       gray.
-
-2011-08-07  Murray Cumming  <murrayc murrayc com>
-
-       CanvasGroupGrid: Simplify rule creation.
-
-       * glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
-       create_grid_or_rule_line(): Rename to create_rule_line(), removing 
-       the bool, because that is what it is used for.
-
-2011-08-07  Murray Cumming  <murrayc murrayc com>
-
-       Canvas_PrintLayout: Move all selected items when dragging.
-
-       * glom/utility_widgets/canvas/canvas_item_movable.[h|cc]:
-       signal_moved(): Send the item (for convenience, to avoid dodgy use of
-       sigc::bind() with RefPtr<>s) and the offset of just the current part 
-       of the move.
-       * glom/utility_widgets/canvas/canvas_group_resizable.[h|cc]:
-       * glom/mode_design/relationships_overview/dialog_relationships_over
-       view.[h|cc]: Adapt.
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       on_selected_item_moved(): Move all the other selected items by the 
-       same amount.
-
-2011-08-07  Murray Cumming  <murrayc murrayc com>
-
-       Canvas_PrintLayout: Selecting unselects others. Allow shift-clicking.
-
-       * glom/utility_widgets/canvas/canvas_item_movable.[h|cc]:
-       signal_selected(): Also send the item (this), to avoid the need for 
-       awkward (due to keeping a reference) sigc::bind()ing of RefPtr<>s.
-       Send a bool group_select parameter too, so we know if the button 
-       press (corresponding to the button release) was with the shift key 
-       held down.
-       * glom/utility_widgets/canvas/canvas_editable.[h|cc]:
-       on_item_selected(): Deselect other already-selected items if 
-       the select was not with shift held down.
-
-2011-08-06  Murray Cumming  <murrayc murrayc com>
-
-       CanvasItemMovable: set_selected(): Do not emit the signal here.
-
-       * glom/utility_widgets/canvas/canvas_item_movable.cc:
-       set_selected(): Do not emit signal_selected here, because it should 
-       only be emitted when the user causes it.
-       on_button_release_event(), on_motion_notify_event():
-       Emit the signal if necessary.
-
-2011-08-06  Murray Cumming  <murrayc murrayc com>
-
-       Canvas_PrintLayout: Edit menu: Support multiple items.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       on_canvas_selection_changed(): Store all the seleced items in a 
-       vector instead of just one.
-       on_menu_edit_copy(): Clone all the selected items in a vector, 
-       instead of just one.
-       on_menu_edit_paste(): Paste all the items, instead of just one.
-       on_menu_edit_delete(): Delete all the items, instead of just one.
-       on_spinbutton_*(): Adapt. These still assume that the SpinButtons 
-       are only editable when only one item is selected.
-
-2011-08-06  Murray Cumming  <murrayc murrayc com>
-
-       Canvas_PrintLayout: Update position numbers when moving items.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       on_canvas_selection_changed(): Connect to the item's signal_moved,
-       so we can update the spinbuttons during the move.
-       on_spinbutton_*(): Ignore the spinbutton signals while we are setting
-       them programatically, to avoid an endless loop.
-       * glom/utility_widgets/canvas/canvas_item_movable.cc:
-       set_selected(): Emit the signal here if it has changed, rather than 
-       always doing it after the call.
-       on_motion_notify_event(): Mark the item as selected whenever it is 
-       moved, therefore emitting the signal.
-
-2011-08-06  Murray Cumming  <murrayc murrayc com>
-
-       Canvas_PrintLayout: Fix typo to pass the item by reference.
-
-       * glom/print_layout/canvas_print_layout.[h|cc]:
-       add_canvas_layout_item(): Add a missing & to the parameter.
-
-2011-08-06  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Implement cut/copy/paste/delete.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       Implement the edit menu, enabling/disabling the menu items based on 
-       whether something has been selected or previously copied.
-       * glom/utility_widgets/canvas/canvas_editable.[h|cc]: Added 
-       get_selected_items() here, making it virtual. The override in 
-       Canvas_PrintLayout is the only real implementation so far.
-       Added remove_item().
-       remove_all_items(): Emit signal_selection_changed if something 
-       was selected.
-       * glom/print_layout/canvas_print_layout.[h|cc]:
-       Added remove_canvas_layout_item().
-       Removed update_layout_position_from_canvas(), putting it in 
-       Canvas_LayoutItem instead.
-       * glom/print_layout/canvas_layout_item.[h|cc]:
-       Added update_layout_position_from_canvas().
-
-2011-08-06  Murray Cumming  <murrayc murrayc com>
-
-       CanvasPrintLayout: Remove unused method overload.
-
-       * glom/print_layout/canvas_print_layout.[h|cc]: get_selected_items():
-       The const overload is not used so remove it.
-
-2011-08-06  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Cache the selected item.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       Store the selected item, when it changes, instead of repeatedly 
-       requesting it, which requires iteration.
-
-2011-08-06  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Allow editing of positions and size numerically,
-
-       * ui/developer/window_print_layout_edit.glade: Add a row of SpinButtons
-       at the bottom to show the position and dimensins of the selected item,
-       also letting the user change them by changing the numbers.
-       * glom/utility_widgets/canvas/canvas_item_movable.[h|cc]:
-       Added signal_selected().
-       * glom/utility_widgets/canvas/canvas_editable.[h|cc]:
-       Added signal_selection_changed().
-       * glom/print_layout/canvas_print_layout.[h|cc]: 
-       Added get_selected_items().
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       Constructor: Get the SpinButton widgets from Gtk::Builder, and set their 
-       values when an item is selected. Also change the item when the values in 
-       the SpinButtons change.
-
-2011-08-05  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Allow the user to select items with a click.
-
-       * glom/utility_widgets/canvas/canvas_item_movable.[h|cc]: 
-       Added get/set_selected() and a virtual show_selected() which it calls.
-       on_button_release_event(): set the item as 
-       - selected if it unselected and the clicked without a move.
-       - unselected if it was selected and clicked without a move.
-       - selected if it was moved.
-       This is roughly like Inkscape's behaviour.
-       * glom/utility_widgets/canvas/canvas_group_resizable.[h|cc]:
-       Split the manipulator group into two groups (edges and corners), 
-       so we can (re)use the edges to show selection.
-       Implement show_selected() to show/hide the edges.
-       set_manipulator_visibility(): Make sure that we don't hide the 
-       edges that are visible to show selection.
-
-       This doesn't actuall do anything useful yet, but it will let us 
-       do things to the selected item(s), such as editing their position via 
-       coordinate numbers, moving them together, or copy/paste/cut/deleting 
-       them via the menus.
-
-2011-08-05  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Avoid warnings about -1 width.
-
-       * glom/utility_widgets/canvas/canvas_group_movable.cc: get_width_height(),
-       * glom/utility_widgets/canvas/canvas_group_resizable.cc: get_width_heigh():
-       Do not return -1, which groups default to, to mean some default size.
-       This was not really used anyway, and was rejected when applied to non-group 
-       goocanvas items.
-
-2011-08-05  Murray Cumming  <murrayc murrayc com>
-
-       Developer menu: Move the Developer item after Operator.
-
-       * glom/application.cc: When the user changes this, he generally changes 
-       from operator to developer, so this feels more natural.
-
-2011-08-05  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout Window: default to 100% size
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc: init_menu():
-       Default to 100% instead of fit-to-width, because this seems to give a 
-       better idea that it is a page, by being more like applications such as 
-       OpenOffice/LibreOffice write.
-
-2011-08-05  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout Window: Make the top widgets more compact.
-
-       * ui/developer/window_print_layout_edit.glade:
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       Make the table title/name a simple bold label with no Table: label,
-       as now in the main window. Make the other labels non-bold.
-       Make sure that we really show the table title with the name in brackets,
-       by removing an unused (but checked) widget pointer.
-
-2011-08-05  Murray Cumming  <murrayc murrayc com>
-
-       Print Layout: Correct drag position even when the layout is scrolled.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.[h|cc]:
-       Add and use canvas_convert_from_drag_pixels() to avoid the offset when 
-       dragging an item from the toolpalette to the canvas when the canvas is 
-       scrolled down.
-
-2011-08-04  Murray Cumming  <murrayc murrayc com>
-
-       Print Layouts: Make corner and edges snap to the grid too.
-
-       * glom/utility_widgets/canvas/canvas_group_resizable.[h|cc]:
-       Add a set_grid() override(), as in CanvasGroupMovable, so that the 
-       manipulator items also know about it, even though the manipulators 
-       were created earlier, in the constructor.
-
-       Previously snapping to the grid only worked while moving whole items.
-
-1.19.9:
-
-2011-07-25  Murray Cumming  <murrayc murrayc com>
-
-       Design: Related Records: Allow the developer to specify how many rows to show.
-
-       * glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: Add 
-       set/get_rows_count() to specify how many rows to show.
-       * glom/libglom/document/document.cc: Load and save that rows count.
-       * ui/developer/window_data_layout.glade: Add a SpinButton to specify the 
-       number of rows to show in related records portals.
-       * glom/mode_design/layout/dialog_layout_details.[h|cc]: Get that widget, 
-       but hide it in this base class.
-       * glom/mode_design/layout/dialog_layout_list_related.[h|cc]:
-       Constructor: Show and setup the spinbutton.
-       set_document(): Set the spinbuttons's contents.
-       save_to_document(): Save it back to the portal layout item.
-       * glom/mode_data/box_data_list_related.cc: create_layout():
-       Use DbAddDel::set_height_rows() to try to show the correct number of rows.
-       
-2011-07-20  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Ignore warning about invalid GdaBinary GValue.
-
-       * glom/utility_widgets/imageglom.[h|cc]: Add and use get_binary() method, 
-       to avoid trying to get a GdaBinary from a null (type) Gnome::Gda::Value.
-
-2011-07-19  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Add commented-out code to load PDFs from memory.
-
-       * glom/utility_widgets/imageglom.cc: This needs new API in bug #654832
-
-2011-07-15  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Save temp files as read-only to avoid unexpected data loss.
-
-       * glom/utility_widgets/imageglom.cc: save_temp_file(): Set the file 
-       permissions.
-
-2011-07-15  Murray Cumming  <murrayc murrayc com>
-
-       Avoid autoconf warning about datarootdir.
-
-       * glom/libglom/glom.pc.in: Set datarootdir to avoid this warning:
-       config.status: WARNING:  'glom/libglom/glom.pc.in' seems to ignore the --datarootdir setting
-  as suggested here:
-  http://www.gnu.org/software/hello/manual/autoconf/Changed-Directory-Variables.html
-
-2011-07-15  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Do not try to get a thumbnail for non-image, non-evince types.
-       
-       * glom/utility_widgets/imageglom.cc: Just use g_content_type_get_icon(),
-       to avoid saving temporary files of huge content, such as video, when just 
-       navigating through rows.
-
-2011-07-15  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Remove unused member variable.
-
-       * glom/utility_widgets/imageglom.[h|cc]: Also add a comment that 
-       gnome_desktop_thumbnail_factory_new() didn't work either when I tried it.
-
-1.19.8:
-
-2011-07-14  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Set an appropriate default file filter.
-
-       * glom/utility_widgets/imageglom.cc: evince-view sets its own default, 
-       but that's not ideal for us.
-
-2011-07-14  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Use G_FILE_ATTRIBUTE_STANDARD_ICON
-
-       * glom/utility_widgets/imageglom.cc: If G_FILE_ATTRIBUTE_THUMBNAIL_PATH 
-       doesn't work, use the standard icon. This does seem to work. 
-
-2011-07-14  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Try to use G_FILE_ATTRIBUTE_THUMBNAIL_PATH for other file types.
-
-       * glom/utility_widgets/imageglom.[h|cc]: show_image_data():
-       Get the mime_types supported by GdkPixbuf and only try to use it if we have 
-       a suitable mime type. Otherwise try to get a thumbnail from GFileInfo.
-       That doesn't work now, probably because we should do that async.
- 
-2011-07-14  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Remove some unnecessary code.
-
-       * glom/utility_widgets/imageglom.cc: get_value(): Don't use the pixbuf just 
-       to get the value.
-
-2011-07-14  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Another scaling fix.
-
-       * glom/utility_widgets/imageglom.cc: get_scaled_image(): Don't return 
-       an empty pixbuf just because the pixbuf doesn't not need to change.
-
-2011-07-14  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Remove limits so we always scale, and use on_size_allocate().
-
-       * glom/utility_widgets/imageglom.[h|cc]: Use on_size_allocate() instead of 
-       on_draw(), which is slightly wiser.
-       Remove the hard-coded checks for minumum and maximum sizes, because 
-       we get an initial allocation of 1, and because the max was arbitrarily small.
-       * glom/utils_ui.cc: Fix this for images that are both 
-       too wide and too high.
-       
-       This works now, but we still need to make the window get smaller when 
-       the GtkImage requests less space.
-
-
-2011-07-13  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Remove hard-coded mentions of PNG file formats.
-
-       * glom/utility_widgets/imageglom.cc: Open With: Use the actual (sniffed)
-       mime type.
-       Clipboard: Try to use the actual mime type, though this does not seem to 
-       work for any mime type now.
-
-2011-07-13  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Show the missing image icon again.
-
-       * glom/utility_widgets/imageglom.cc: set_value(): Clear the data, not the 
-       pixbuf.
-       show_image_data(): Check for empty data and show the missing icon if so.
-
-2011-07-13  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Make the context-menu work with the EvView.
-
-       * glom/utility_widgets/imageglom.cc: Connect to the widget's own signal.
-
-2011-07-13  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Loading/Saving: Add more FileChooser filters.
-
-       * glom/utility_widgets/imageglom.cc: set_file_filter_images():
-       Use ev_document_factory_add_filters().
-
-2011-07-13  Murray Cumming  <murrayc murrayc com>
-
-       Image fields: Support PDF (and other types supported by evince)
-
-       * configure.ac: Depend on evince-view-3.0, which is a library installed by 
-       evince. It is packaged separately from evince by distros.
-       * glom/main.cc: Call ev_init().
-       * glom/utility_widgets/dialog_image_load_progress.[h|cc]: Remove 
-       get_pixbuf() and do not use Gdk::PixbufLoader here.
-       * glom/utility_widgets/imageglom.[h|cc]: Create the pixbuf here, from 
-       the data from the dialog.
-       Add an EvView, and use that instead of the Gtk::Image when the mime type is 
-       supported by EvView. We use g_content_type_guess() to sniff the mime type 
-       from the actual data, but this will probably not always work. We should 
-       store the mime type (and the filename) too.
-       
-       The context menu doesn't work with the EvView yet.
-
-1.19.7:
-
-2011-07-12  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Saving is now mostly async.
-
-       * glom/utility_widgets/dialog_image_save_progress.[h|cc]: Doing the actual 
-       writing in callbacks, like in the loader.
-       * glom/utility_widgets/imageglom.cc: Show the dialog, so we can use the 
-       idle callbacks, and give user feedback.
-
-2011-07-12  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Allow the user to choose any file.
-
-       * glom/utility_widgets/imageglom.cc: However, we are still restricted to 
-       what GdkPixbuf can load.
-
-2011-07-12  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Do not transform to PNG output when saving.
-
-       * glom/utility_widgets/dialog_image_save_progress.[h|cc]: Replace set_pixbuf() 
-       with set_image_data().
-       save(): Save the original data, instead of saving the data from the pixbuf.
-       * glom/utility_widgets/imageglom.cc: Adapt.
-       This means, for instance, that if the user loads the a JPG in then they will 
-       get exactly the same JPG out.
-
-2011-07-12  Murray Cumming  <murrayc murrayc com>
-
-       Some minor signed type corrections.
-
-       * glom/libglom/connectionpool_backends/postgres.cc:
-       * glom/xsl_utils.cc: Gio::FileOutputStream::write() returns a gssize, not a 
-       gsize.
-
-2011-07-12  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Size request corrections.
-
-       * glom/utility_widgets/imageglom.cc: init(): Remove the set_size_request() 
-       call which does not seem necessary.
-       Do not call set_image(original) after scale(), because scale() does that, 
-       setting the scaled image.
-       This avoids the GtkImage being huge, because GtkImage re-requests the 
-       bigger size again when the original is put in it.
-       This is still not ideal. It would be nicer if we could just say "do not 
-       make the window bigger than the screen, or do not make this make the 
-       window bigger."
-
-2011-07-12  Murray Cumming  <murrayc murrayc com>
-
-       ImageGlom: Use AppInfo instead of gtk_show_uri() for Open.
-
-       * glom/utility_widgets/imageglom.cc: For the case that we have no AppInfo
-       (not Open With), use the static AppInfo method, for consistency.
-       This might work on Win32 too.
-
-2011-07-12  Murray Cumming  <murrayc murrayc com>
-
-       Image fields: Add Open, Open With, and Save context menu items.
-
-       * glom/utility_widgets/dialog_image_save_progress.[h|cc]:
-       * ui/operator/dialog_image_save_progress.glade:
-       Added a progress dialog to do image saving, though it does not yet do 
-       async saving so the dialog is never shown.
-       * Makefile.am:
-       * Makefile_glom.am:
-       * po/POTFILES.in: Mention the new files.
-  * glom/utility_widgets/imageglom.[h|cc]: Add the new context menu items,
-  using a temporary file for the Open and Open With features.
-  Open With uses AppChooserDialog to offer a choice to the user.
-  Bug #630057
-
-2011-07-11  Murray Cumming  <murrayc murrayc com>
-
-       Rename Dialog_Image_Progress to DialogImageLoadProgress
-
-       * glom/utility_widgets/dialog_image_progress.[h|cc]:
-       Rename to 
-       * glom/utility_widgets/dialog_image_load_progress.[h|cc]:
-       * tests/test_glade_derived_instantiation.cc:
-       * ui/operator/dialog_image_progress.glade: Rename to
-       * ui/operator/dialog_image_load_progress.glade:
-       * glom/utility_widgets/imageglom.h:
-       * Makefile.am:
-       * Makefile_glom.am:
-       * po/POTFILES.in: Adapt.
-       
-       I can then add a new dialog for saving.
-
-2011-07-11  Ben Konrath  <ben bagu org>
-
-       Add PACKAGE_TARNAME variable to pkg-config file.
-
-       This is needed for the @docdir@ expansion used in the exampledir
-       variable.
-
-       * glom/libglom/glom.pc.in:
-
-2011-07-11  Ben Konrath  <ben bagu org>
-
-       Add exampledir variable to pkg-config file.
-
-       * glom/libglom/glom.pc.in:
-       Bug #654384
-
-2011-07-11  Murray Cumming  <murrayc murrayc com>
-
-       Add translator comments.
-
-       * glom/libglom/data_structure/field.cc:
-       * glom/libglom/data_structure/layout/*.c:
-       * glom/mode_data/box_data_list.cc:
-       * glom/mode_data/box_data_list.h:
-       * glom/mode_data/box_data_manyrecords.cc:
-       * glom/mode_data/notebook_data.cc:
-       * ui/developer/dialog_script_library.glade: Add translator comments.
-       Bug #638996 (Joe Hansen)
-
-2011-07-08  Murray Cumming  <murrayc murrayc com>
-
-       Related Records: Show enough records.
-
-       * glom/mode_data/db_adddel/db_adddel.[h|cc]: Added set_height_rows(), so 
-       we can set the minimum size based on the number of rows, though this 
-       currently hard-codes a size for the non-rows part of the GtkTreeView, such 
-       as the column headers.
-       * glom/mode_data/box_data_portal.cc:
-       * glom/mode_data/box_data_list_related.cc: Constructors: Remove unnecessary 
-       calls to set_size_request().
-       Call set_height_rows() instead.
-
-  The related records Gtk::TreeViews probably became too small since the port to 
-  gtkmm3. We now need to use Gtk::ScrolledArea::set_min_content_height().
-  
-  However, the number of rows should probably be something for the layout to 
-  specify per portal.
-       
-2011-07-08  Murray Cumming  <murrayc murrayc com>
-
-       Minor int->guint change.
-
-       * glom/mode_data/db_adddel/db_adddel.[h|cc]: get_fixed_cell_height(): 
-       Return a guint instead of an int.
-
-2011-07-08  Murray Cumming  <murrayc murrayc com>
-
-       Details: Do not navigate past the last row.
-
-       * glom/mode_data/datawidget/treemodel_db.[h|cc]: get_last_row(): 
-       Document that this never returns the placeholder row, and make sure that it 
-       does not. There was a typo that --ed the wrong variable.
-       * glom/mode_data/db_adddel/db_adddel.[h|cc]: get_last_row(): 
-       Document that this never returns the placeholder row.
-       get_is_placeholder_row(): Remove an illogical call to is_last_row().
-       get_count(): Remove an illogical check to see whether the last row is the 
-       placeholder row.
-       * glom/utility_widgets/adddel/adddel.h: get_last_row(): Document that this 
-  similarly-APIed widget has different behaviour.
-  
-  This stops the user from being taken to an empty record when clicking Last, 
-  or when clicking Next to the end.
-  Bug #526115 comment #25 (Michael Hasselmann)
-
-2011-07-08  Murray Cumming  <murrayc murrayc com>
-
-       DbAddDel: Remove unnecessary virtual keywords. 
-
-       * glom/mode_data/db_adddel/db_adddel.h: These methods are not meant to 
-       be overridden by anything.
-
-1.19.6:
-
-2011-07-07  Murray Cumming  <murrayc murrayc com>
-
-       About Box: Add a logo.
-
-       * glom/application.cc: Use set_logo() though this only appears in the title 
-       bar for some reason.
-
-2011-07-07  Murray Cumming  <murrayc murrayc com>
-
-       Really fix the About Box.
-
-       * glom/application.cc: Add the Help menu itself, and use set_program_name() 
-       instead of set_name().
-
-2011-07-07  Murray Cumming  <murrayc murrayc com>
-
-       Improve the About box.
-
-       * glom/application.[h|cc]:
-       * glom/bakery/app.[h|cc]:
-       * glom/bakery/app_withdoc_gtk.[h|cc]: Move the help menu out of the 
-       Bakery class, doing it all in our derived Application class, to give us 
-       more control over the GtkAboutDialog. We do not need the abstraction any 
-       more.
-       This restores the application description, which was probably lost when 
-       converting to AboutDialog.
-       
-2011-07-06  Murray Cumming  <murrayc murrayc com>
-
-       Split up the developer .glade files into separate files.
-
-       * ui/developer/:
-       * glom/glade_utils.h: get_glade_widget_derived_with_warning(): Guess the 
-       filename based on the requested ID, for developer UI as we already did 
-       for operator UI.
-  This makes it possible to edit these in recent versions of Glade, without 
-  Glade silently renaming IDs to make them unique across the whole file.
-  * po/POTFILES.in:
-  * Makefile.am: Mention the new files.
-
-2011-07-06  Murray Cumming  <murrayc murrayc com>
-
-       Enable silent build rules by default.
-
-       * configure.ac: This is still only used if the automake version is recent 
-       enough.
-
-2011-07-05  Murray Cumming  <murrayc murrayc com>
-
-       ListView: Make the rows high enough.
-
-       * glom/mode_data/db_adddel/db_adddel.cc: get_fixed_cell_height():
-       Add the GtkTreeView vertical-separator style property to the height, 
-       which might be the right thing to do, and which works here at least.
-
-2011-07-04  Murray Cumming  <murrayc murrayc com>
-
-       Find: Make searching case-insensitive again.
-
-       * glom/libglom/connectionpool_backends/postgres.cc:
-       get_string_find_operator(): Use ILIKE, though this requires the lastest 
-       libgdamm from git master.
-       Find has been case-sensitive since around glom 1.16, since we started 
-       using SqlBuilder.
-
-2011-07-04  Murray Cumming  <murrayc murrayc com>
-
-       Backends: Slight reorganization.
-
-       * glom/libglom/connectionpool_backends/backend.h:
-       * glom/libglom/connectionpool_backends/postgres.[h|cc]:
-       * glom/libglom/connectionpool_backends/sqlite.[h|cc]: Move method 
-  implementations into the .cc files.
-
-2011-06-23  Murray Cumming  <murrayc murrayc com>
-
-       Field::sql_find(): Do not quote the string.
-
-       * glom/libglom/data_structure/field.cc: SqlBuilder already takes 
-       care of quoting so this just changed the actual value.
-       This makes Quick Find work again.
-
-2011-06-23  Murray Cumming  <murrayc murrayc com>
-
-       Find: Use backend-specific LIKE or ILIKE operator instead of =.
-
-       * glom/libglom/connectionpool.[h|cc]:
-       * glom/libglom/connectionpool_backends/backend.h:
-       * glom/libglom/connectionpool_backends/postgres.h:
-       * glom/libglom/connectionpool_backends/sqlite.h:
-       get_string_find_operator(): Return the Gnome::Gda operator enum 
-       instead of the operator as a string.
-       * glom/libglom/data_structure/field.[h|cc]: sql_find_operator():
-       Likewise, return the Gnome::Gda operator enum.
-       * glom/libglom/utils.cc: get_find_where_clause_quick():
-       * glom/mode_data/box_data.cc: get_find_where_clause():
-       Use Field::sql_find_operator() and Field::sql_find(), as per 
-       the TODO comments.
-
-       This was code that I forgot to change properly when porting to 
-       use Gnome::Gda::SqlBuilder, so this has been broken since 
-       Glom 1.16.
-       Find still does not work.
-
-2011-06-23  Murray Cumming  <murrayc murrayc com>
-
-       Frame: Rename a signal handler.
-
-       * glom/frame_glom.[h|cc]: Rename on_menu_Mode_Toggle() to 
-       on_menu_Edit_Find() because that is what it is now.
-       * glom/application.cc: Adapted.
-
-2011-06-23  Murray Cumming  <murrayc murrayc com>
-
-       Main window: Moved the Records/Found widgets to the top-right.
-       
-       * ui/operator/window_main.glade: Remove the footer row of widgets.
-       * glom/frame_glom.[h|cc]: Instead build them manually and add them (in a box) 
-       to the notebook at the right-hand side next to the tabs.
-
-2011-06-23  Murray Cumming  <murrayc murrayc com>
-
-       Split the operator .glade files up into one file per top-level ID.
-
-       * ui/operator/: Split the .glade files up, giving them the same names 
-       as the top-level (or almost top-level) IDs that the code looks for.
-       * glom/glade_utils.h: get_glade_widget_derived_with_warning(): Guess the 
-       filename based on the requested ID.
-
-2011-06-23  Murray Cumming  <murrayc murrayc com>
-
-       Move .glade files into subdirectories under ui/
-
-2011-06-23  Murray Cumming  <murrayc murrayc com>
-
-       Move .glade files into a ui/ directory.
-
-       * glom/glom.glade:
-       * glom/glom_developer.glade: Moved to 
-       * ui/
-       This will be useful when they are split up more.
-
-2011-06-23  Murray Cumming  <murrayc murrayc com>
-
-       Main window: Show the table title in find mode too.
-
-       * glom/frame_glom.[h|cc]: Use an extra label for the 
-       find mode.
-
-2011-06-23  Murray Cumming  <murrayc murrayc com>
-
-       Do not hide table-specific menu items in Operator mode.
-
-       * glom/application.cc: update_table_sensitive_ui().
-
-2011-06-22  Murray Cumming  <murrayc murrayc com>
-
-       Main Window: Combine the top two rows of widgets.
-
-       * glom/utility_widgets/notebook_noframe.[h|cc]: Add 
-       set_action_widget(), as in the GtkNotebook API.
-       * glom/glom.glade:
-       * glom/frame_glom.[h|cc]: Remove the top HBox, instead 
-       putting the table name label in the notebook widget, 
-       at the left of the tabs.
-
-2011-06-22  Murray Cumming  <murrayc murrayc com>
-
-       Remove the User Level menu and the User Level label.
-
-       * glom/glom.glade: Main window: Remove the User Level label.
-       * glom/application.[h|cc]:
-       * glom/frame_glom.[h|cc]: Remove the User Level menu, moving 
-       its two radio menu items to the top of the Developer menu.
-       init_menus(), update_table_sensitive_ui(): Make sure that all
-       developer items are deactivated in operator mode, now that 
-       we don't just deactivate the whole developer menu.
-
-2011-06-22  Murray Cumming  <murrayc murrayc com>
-
-       Main window: Simplify widgets at top.
-
-       * glom/glom.glade:
-       * glom/frame_glom.[h|cc]: Remove the Table: label. Make the 
-       table name normal sized, but still bold. Remove the mode 
-       labels, because there are only two modes now, and it should 
-       be obvious when you are in the middle of entering find criteria.
-
-2011-06-22  Murray Cumming  <murrayc murrayc com>
-
-       glom.glade: Resave with glade.
-
-       * glom/glom.glade: Resave with glade 3.10, which changes 
-       object IDs to be unique across the whole file.
-       Chose human-readable IDs instead of number suffixes.
-       * glom/navigation/box_tables.cc:
-       * glom/frame_glom.cc: Adapted the code.
-       This is rather tedious and just makes code less readable.
-
-2011-06-22  Murray Cumming  <murrayc murrayc com>
-
-       glom.glade: Reorder top-levels alphabetically.
-
-       * glom/glom.glade: Glade now does this when saving,
-       so this will make it easier to see what else Glade 
-       has changed.
-
-1.19.5:
-
-2011-06-21  Murray Cumming  <murrayc murrayc com>
-
-       Require the latest libgdamm, for the GdaNull changes.
-
-       * configure.ac: Require libgdamm 4.99.3
-
-2011-06-17  Murray Cumming  <murrayc murrayc com>
-
-  Fix the tests after the libgdamm Null Value change.
-  
-       * tests/python/test_python_execute_script.cc:
-  Do not try to instantiate a static Value instance because the constructor 
-  now needs the GType system to be initialized.
-
-2011-06-17  Murray Cumming  <murrayc murrayc com>
-
-       Details: Make Primary Key ID values visible again.
-
-       * glom/mode_data/datawidget/entry.cc: Use unset_color() instead of 
-       override_color(RGBA());
-
-2011-06-15  Murray Cumming  <murrayc murrayc com>
-
-       Fix the build with --enable-warnings=fatal with gtkmm 3.1.
-
-       * glom/mode_data/box_data_details.[h|cc]:
-       * glom/mode_data/db_adddel/db_adddel_withbuttons.[h|cc]:
-       * glom/mode_design/layout/layout_item_dialogs/dialog_formatting.cc:
-       * glom/utility_widgets/adddel/adddel_withbuttons.[h|cc]:
-       Fix the build with --enable-warnings=fatal with gtkmm 3.1, by
-       replacing Gtk::HButtonBox with ButtonBox and replacing get_vbox() with
-       get_content_area().
-
-2011-05-12  Murray Cumming  <murrayc murrayc com>
-
-       Fix compiler warnings.
-
-       * glom/mode_data/db_adddel/db_adddel.cc:
-       * glom/mode_design/layout/dialog_layout_details.cc:
-       * glom/report_builder.cc:
-       * glom/utility_widgets/eggspreadtable/eggspreadtablednd.c
-       (get_index_at_position):
-       * tests/test_parsing_time.cc: Remove unused variables noticed by g++ 4.6.
-
-2011-05-12  Murray Cumming  <murrayc murrayc com>
-
-       Require latest libepc.
-
-       Because it uses avahi-ui-gtk3, which uses GTK+3.
-       Otherwise we would be indirectl using both GTK+ 2 and GTK+ 3.
-
-2011-04-19  Murray Cumming  <murrayc murrayc com>
-
-       Egg::SpreadTable: Add a test.
-
-       * Makefile_tests.am:
-       * glom/utility_widgets/eggspreadtablemm/test_preadtablemm.[h|cc]:
-       Add a test based on the C test. It seems to work fine.
-
-2011-04-19  Murray Cumming  <murrayc murrayc com>
-
-       Egg::SpreadTable: Derive from (and implement) Orientable.
-
-       * glom/utility_widgets/eggspreadtablemm/eggspreadtablemm.[h|cc]:
-       Use Orientable.
-
-2011-04-18  Murray Cumming  <murrayc murrayc com>
-
-       Fix the make check build.
-
-       * Makefile_glom.am: Create a variable for the eggspreadtable file list.
-       * Makefile_tests.am: Use that variable here, so we link against the new
-       files.
-
-2011-04-18  Murray Cumming  <murrayc murrayc com>
-
-       EggSpreadTableDnd: Wrap the wiget_drop_possible signal.
-
-       * glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.[h|cc]:
-       * glom/utility_widgets/eggspreadtablemm/private/eggspreadtabledndmm
-       _p.h: This is unpleasant without gmmproc.
-
-2011-04-18  Murray Cumming  <murrayc murrayc com>
-
-       Egg::SpreadTableDnd: Fix typos.
-
-    * glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.cc:
-    Use the correct GTypes.
-
-2011-04-18  Murray Cumming  <murrayc murrayc com>
-
-       Use EggSpreadTableDnd.
-
-       * glom/utility_widgets/eggspreadtable/eggmarshalers.[h|c}
-       * glom/utility_widgets/eggspreadtable/eggplaceholder.[h|c]
-       * glom/utility_widgets/eggspreadtable/eggspreadtablednd.[h|c]:
-  Added these files, copied from libegg.
-       * glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.[h|cc]:
-       * glom/utility_widgets/eggspreadtablemm/private/eggspreadtabledndmm
-       _p.h:
-       Created a hand-written C++ wrapper for EggSpreadTableDnd.
-       * glom/Makefile_glom.am: Mention the new files.
-       * glom/utility_widgets/flowtable.h: Use SpreadTableDnd instead of
-       SpreadTable, though we do not use the drag-and-drop functionality yet.
-
-2011-04-12  Murray Cumming  <murrayc murrayc com>
-
-       Correct the sizing of the ... date button.
-
-       * glom/mode_data/datawidget/datawidget.cc: There is a button next to
-       all date fields, for selecting the date. Make sure that it does not expand.
-       Of course, a real date selection widget would be nicer.
-
-2011-04-12  Murray Cumming  <murrayc murrayc com>
-
-       Update the EggSpreadTable code.
-
-       * glom/utility_widgets/eggspreadtable/eggspreadtable.[h|cc]: Update this
-       code from libegg/libegg/spreadtable/
-
-2011-04-12  Murray Cumming  <murrayc murrayc com>
-
-       Fix distcheck.
-
-       * Makefile.am: Distribute the .db file for the sqlite example.
-       This fixes the discheck, because we use it in a test.
-       * glom/libglom/connectionpool_backends/sqlite.cc: connect(): Give clues
-       on stderr if the file is missing.
-       * glom/libglom/utils.[h|cc]: Add a file_exists(Gio::File) override for use
-       by those checks.
-
-1.19.4:
-
-2011-04-11  Murray Cumming  <murrayc murrayc com>
-
-       Fix a test.
-
-       * tests/python/test_python_execute_func_bad_syntax.cc:
-       Allow the result to be a null Gda::Value, because that is acceptable for a
-       python script with invalid syntax.
-
-2011-04-08  Murray Cumming  <murrayc murrayc com>
-
-       Port the debian repository analyzer script example to GTK+ 3.
-
-       * examples/example_scripts/repository_analyzer_begin_scan.py:
-       Use PyGObject+Introspection instead of pygtk, and adapt for a minidom API
-       change.
-       This is also here:
-       https://gitorious.org/debian_repository_analyzer
-
-2011-04-08  Murray Cumming  <murrayc murrayc com>
-
-       Fix use of bool python return types.
-
-       * glom/libglom/python_embed/pygdavalue_conversions.cc:
-       glom_pygda_value_from_pyobject(): Use the C Py*_Check() functions because
-       boost::python::extract<>::check() does not really check for the exact type
-       and has no way to do that. Previously we were interpreting bools as ints.
-       Note also that the order fo the Py*_Check() checks is important, because
-       python considers bool to be derived from int.
-       * tests/python/test_python_execute_func_with_record.cc: Uncomment the checks
-       for the return type and value now that it works.
-
-2011-04-07  Murray Cumming  <murrayc murrayc com>
-
-       Initialize pygobject, to fix the use of the PyRecord API.
-
-       * configure.ac: Require the latest pygobject with gi.repository support.
-       * glom/libglom/init.cc: Include pygobject.h so we can call pygobject_init()
-       here.
-       * glom/libglom/python_embed/py_glom_record.cc: Define NO_IMPORT_PYGOBJECT
-       so we can still include pygobject.h again here. pygobject.h uses a nasty
-       variable declared in the header.
-       * tests/python/test_python_execute_func_with_record.cc: Fix the python
-       example code.
-       However, this shows a problem with getting bool results from python,
-       apparently because boost::python::extract<>::check() checks that the type
-       is compatible rather than checking that it's the exact type.
-
-2011-04-07  Murray Cumming  <murrayc murrayc com>
-
-       Added a python function test that uses an actual database connection.
-
-  * Makefile_tests.am: Mention the new test.
-       * tests/python/test_python_execute_func_with_record.cc: This shows
-       a crash in Glom::PyGlomRecord::get_connection().
-
-2011-04-07  Murray Cumming  <murrayc murrayc com>
-
-       Moved the python tests to a sub-directory.
-
-       * tests/test_load_python_library.cc:
-       * tests/test_python_execute_func.cc:
-       * tests/test_python_execute_func_bad_syntax.cc:
-       * tests/test_python_execute_func_change_result_type.cc:
-       * tests/test_python_execute_func_date.cc:
-       * tests/test_python_execute_script.cc:
-       * tests/test_python_module.cc: Moved to tests/python/
-       * Makefile_tests.am: Adapted.
-
-2011-04-05  Murray Cumming  <murrayc murrayc com>
-
-       Remove more small traces of pygda.
-
-       * glom/libglom/python_embed/py_glom_record.cc:
-       * glom/python_embed/glom_python.cc:
-       * glom/python_embed/python_module/py_glom_module.cc: Some last minor renames
-       from pygda to gi.repository.Gda.
-
-2011-04-05  Murray Cumming  <murrayc murrayc com>
-
-       Python: Use gi.repository.Gda instead of Gda.
-
-       * configure.ac: Do not require pygda at build time, though we check for it
-       at program startup. There is probably no similar way to check at configure
-       time, and it's debatable that it's appropriate anyway. The pygda check
-       was probably here before in order to use a pygda .h file that we no longer
-       use.
-       * glom/main.cc: Add and call check_gir_is_available_with_warning() to check
-       that gi.repository (gobject intropsection) in general is available.
-       * glom/python_embed/glom_python.[h|cc]:
-       * tests/test_python_module.[h|cc]: Add gir_python_module_is_available() for
-       use by main.cc.
-       gda_python_module_is_available(), glom_python_call(): Use the new python
-       module instead of the old Gda module.
-
-2011-04-05  Murray Cumming  <murrayc murrayc com>
-
-       Write Python tracebacks to stderr.
-
-       * glom/application.cc:
-       * glom/mode_data/box_data.cc:
-       * glom/mode_design/dialog_database_preferences.cc:
-       * tests/test_python_execute_script.cc: Output python errors to stderr as a
-       clue when things go wrong.
-
-2011-04-04  Murray Cumming  <murrayc murrayc com>
-
-       Fix an error found by the gtkmm change to use operator const void*.
-
-       * glom/utility_widgets/adddel/adddel.cc: There is no
-       TreeNodeChildren::operator[](TreeIter). The compiler was casting the TreeIter
-       to bool and then to (int)0.
-
-2011-04-04  Murray Cumming  <murrayc murrayc com>
-
-       Require the latest mm-common and dist the mm-common scripts.
-
-       * configure.ac: Add a MM_CONFIG_DOCTOOL_DIR() call so that the scripts will
-       be distributed with the tarball, avoiding a runtime dependency on mm-common.
-
-2011-03-30  Murray Cumming  <murrayc murrayc com>
-
-       Adapt to the recent gtksourceviewmm API change.
-
-       * configure.ac: Require the latest gtksourceviewmm.
-       * glom/mode_design/dialog_database_preferences.[h|cc]:
-       * glom/mode_design/fields/dialog_fieldcalculation.[h|cc]:
-       * glom/mode_design/fields/dialog_fielddefinition.h:
-       * glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.[h|cc]:
-       :
-       * glom/mode_design/script_library/dialog_script_library.[h|cc]: Use
-       Gsv::* instead of Gsv::Source*.
-
-2011-03-30  Murray Cumming  <murrayc murrayc com>
-
-       Update the document DTD.
-
-       * glom/glom_document.dtd: Mention some the new attribute and element
-       for the choices, to fix the DTD test during make check.
-
-2011-03-30  Murray Cumming  <murrayc murrayc com>
-
-       A simpler way to avoid the PyDateTime_Check() crash.
-
-       * glom/libglom/init.cc: libglom_init(): Remove the g_assert because this
-       can fail: See bug #644702.
-       * glom/libglom/python_embed/pygdavalue_conversions.cc:
-       glom_pygda_value_as_boost_pyobject(): Check that the local re-import
-       (hopefully cached by Python) succeeded, to avoid a crash in PyDateTime_Check().
-
-2011-03-14  Murray Cumming  <murrayc murrayc com>
-
-       Reverted the previous commit to prevent a crash if PyDateTime_IMPORT fails.
-
-       * glom/libglom/init.[h|cc]: Added libglom_pydatetime_import() and
-       libglom_pydatetime_imported(). Remove the g_assert() when it fails.
-       * glom/libglom/python_embed/pygdavalue_conversions.cc: Use the new
-       utility function instead of repeating our reimplementation here.
-
-       There will now just be an error message on stderr. We must fix this properly
-       but in the meantime it is better than requiring the use of a separate glom
-       branch just for OnlineGlom.
-       See https://bugzilla.gnome.org/show_bug.cgi?id=644702
-
-       This commit was reverted because we really must repeat the implementation
-       everywhere, because the PyDateTime variable is declared in Python's datetime.h
-       header, and the macros then try to use that local instance. The copy in
-       init.cc is not available to callers.
-       And we cannot include datetime.h from init.h because it is full of other
-       problems that cause compiler warnings.
-
-2011-03-29  Murray Cumming  <murrayc murrayc com>
-
-       Depend on libgdamm-5.0 instead of libgdamm-4.0.
-
-       * configure.ac: This change avoids an indirect dependency on GTK+ 2,
-       needed by the libgda 4 tarball build.
-
-2011-03-18  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Added utils::build_sql_select_count_rows().
-
-       * glom/base_db.[h|cc]: Make count_rows_returned_by() take a const SqlBuilder.
-       * glom/libglom/utils.[h|cc]: Move some of count_rows_returned_by() into a
-       build_sql_select_count_rows() method, for the convenience of UIs such as
-       OnlineGlom.
-       Bug #645110 (Ben Konrath)
-
-2011-03-14  Murray Cumming  <murrayc murrayc com>
-
-       Do not crash if PyDateTime_IMPORT fails.
-
-       * glom/libglom/init.[h|cc]: Added libglom_pydatetime_import() and
-       libglom_pydatetime_imported(). Remove the g_assert() when it fails.
-       * glom/libglom/python_embed/pygdavalue_conversions.cc: Use the new
-       utility function instead of repeating our reimplementation here.
-
-       There will now just be an error message on stderr. We must fix this properly
-       but in the meantime it is better than requiring the use of a separate glom
-       branch just for OnlineGlom.
-       See https://bugzilla.gnome.org/show_bug.cgi?id=644702
-
-2011-03-14  Murray Cumming  <murrayc murrayc com>
-
-       Project Manager example: Resave.
-
-       * examples/example_project_manager.glom: Edit the Teams list layout, so
-       that it actually has a layout in the file, and so that the fields order
-       makes more sense.
-       See http://gitorious.org/online-glom/gwt-glom/commit/1c860b7ad64f55809ecf7e6b340272800d586d35
-
-2011-03-14  Murray Cumming  <murrayc murrayc com>
-
-       Fix the build.
-
-       * glom/libglom/init.cc: Add an include so we can use std::cerr.
-
-2011-03-14  Murray Cumming  <murrayc murrayc com>
-
-       libglom_init(): Show the python exception when PyDateTime_IMPORT fails.
-
-       * glom/libglom/init.cc: The linker seems to behave differently when this
-       code is run from inside a JVM in OnlineGlom. This gives us a clue.
-
-2011-03-12  Murray Cumming  <murrayc murrayc com>
-
-       Fix crashes when using choices with fixed lists.
-
-       * glom/mode_data/datawidget/combochoiceswithtreemodel.[h|cc]:
-       create_model_non_db(): Instead of creating just a text-based treemodel,
-       create a Value-based one with an extra text column at the end. That is what
-       the related-records model has, though it uses a custom TreeModel.
-       The text column is needed for GtkComboBox when it has has-entry=true:
-       (See https://bugzilla.gnome.org/show_bug.cgi?id=631167 )
-       Add get_fixed_model_text_column() so that other code knows which column that
-       is.
-       * glom/mode_data/datawidget/cellrenderer_dblist.cc: set_choices_fixed(),
-       repack_cells_fixed():
-       * glom/mode_data/datawidget/combo.cc:   set_choices_fixed():
-       Adapt to use the special column instead of assuming that column 0 is a text
-       column.
-       Previously Glom::Combo::set_value() crashed because we tried to get a
-       Value<Gnome::Gda::Value> where there was a Value<ustring>.
-
-2011-03-08  Murray Cumming  <murrayc murrayc com>
-
-       Remove some unnecessary padding/borders around the main window.
-
-       * glom/box_withbuttons.cc: Remove the border, because it is not useful.
-       It would be for the parent widget to decide that.
-       * glom/mode_data/flowtablewithfields.[h|cc]: add_group(): Add a with_indent
-       optional parameter.
-       * glom/mode_data/box_data_details.cc: create_layout(): Have no indent on
-       top-level groups.
-
-2011-03-08  Murray Cumming  <murrayc murrayc com>
-
-       Use a custom Notebook-like widget instead of Gtk::Notebook.
-
-       * glom/utility_widgets/notebook_noframe.[h|cc]: A new class with an API that
-       is as much like the Gtk::Notebook API as we need it to be.
-       Unlike GtkNotebook, this has no frame around the "page" at the bottom.
-       That was wasting space because the extra division was unnecessary when it
-       fills almost the whole window anyway.
-       * Makefile_glom.am: Mention the new files.
-       * glom/mode_data/notebook_data.cc: Derive from the new class instead of
-       Gtk::Notebook.
-
-2011-02-26  Murray Cumming  <murrayc murrayc com>
-
-       Fix the CSV import test.
-
-       * tests/import/test_parsing.cc: Correct the number of expected tokens.
-       This was previously just the number that was (incorrectly) parsed before.
-
-2011-02-26  Murray Cumming  <murrayc murrayc com>
-
-       CSV Import: Fix quoted-newline detection, so we don't drop rows.
-
-       * glom/import_csv/csv_parser.[h|cc]: on_idle_parse(): Make in_quotes a
-       member variable, initialized in clear(), so we remember it across calls to
-       on_idle_parse(), instead of thinking that we are in quotes just because we
-       are parsing arbitrary chunks of bytes that look that way individually.
-
-       This fixes bug #637529 (Darmon Xavier), so all rows should be imported
-       instead of dropping some in the middle.
-
-2011-02-26  Murray Cumming  <murrayc murrayc-x61>
-
-       Dialog_Import_CSV_Progress: Try to really show progress.
-
-       * glom/import_csv/dialog_import_csv_progress.cc: Try to call
-       Main::events_pending() and iterate() to really show the text in the progress
-       bar, though it does not seem to work.
-
-2011-02-26  Murray Cumming  <murrayc murrayc com>
-
-       Correct a (translatable) string.
-
-       * glom/glom.glade: Correct an English string. A comma is not a full stop.
-
-2011-02-25  Murray Cumming  <murrayc murrayc com>
-
-       Avoid GTK+ warning when clicking on the list button.
-
-       * glom/mode_data/db_adddel/db_adddel.[h|cc]: on_cell_button_clicked():
-       Delay the response to the click, to an idle handler, to avoid confusing
-       GtkTreeView, which was showing a warning with GTK+ 3 about a NULL GtkAdjustment.
-
-2011-02-10  Murray Cumming  <murrayc murrayc com>
-
-       Use the new Gtk::ComboBox CellArea API to align columns properly.
-
-       * glom/mode_data/datawidget/combo.cc: Get the CellAreaBox and use its
-       more-useful pack() method instead of the standard one, so that the columns
-       really align.
-
-1.19.3:
-
-2011-02-07  Murray Cumming  <murrayc murrayc com>
-
-       Require the correct gtksourceviewmm version.
-
-       * configure.ac: Use the gtksourceviewmm version with the API changes to use
-       vector.
-
-2011-01-30  Murray Cumming  <murrayc murrayc com>
-
-       Adapt to libgdamm API changes.
-
-       * glom/libglom/connectionpool.cc:
-       * glom/libglom/db_utils.cc: libgdamm now uses std::vector instead of
-       *Handle, like gtkmm.
-
-2011-01-28  Murray Cumming  <murrayc murrayc com>
-
-       Adapt to the gtkmm 3 change to using vectors.
-
-       * glom/mode_data/datawidget/cellrenderer_dblist.cc:
-       * glom/mode_data/db_adddel/db_adddel.cc:
-       * glom/mode_design/layout/dialog_choose_field.cc:
-       * glom/mode_design/print_layouts/print_layout_toolbar_button.cc:
-       * glom/mode_design/print_layouts/window_print_layout_edit.h:
-       * glom/utility_widgets/imageglom.cc:
-       * glom/utility_widgets/layouttoolbarbutton.cc: Use std::vector instead of
-       std::list.
-       * glom/dialog_existing_or_new.cc: This one even used the intermediate type
-       directly, showing how necessary this API change was.
-
-2011-01-18  Murray Cumming  <murrayc murrayc com>
-
-       Disable more deprecated API.
-
-       * configure.ac: Add PANGO, PANGOMM, and CAIRO to the list.
-
-2011-01-15  Murray Cumming  <murrayc murrayc com>
-
-       Require the appropriate gtksourceviewmm version.
-
-       * configure.ac: Use the latest gtksourceviewmm release. Older versions would
-       not build with the newer versions of gtkmm 3, so this is a hint.
-
-2011-01-13  Murray Cumming  <murrayc murrayc com>
-
-       Require the appropriate goocanvasmm version.
-
-       * configure.ac: Use the latest goocanvasmm release. The code has already
-       been ported.
-
-2011-01-06  Murray Cumming  <murrayc murrayc com>
-
-       get_current_locale(): Handle more complex setlocale(NULL) results.
-
-       * glom/libglom/utils.cc: locale_simplify(): On Ubuntu Natty,
-       setlocale() has started returning a more complex string. Parse it, or the
-       older simpler syntax.
-
-2011-01-06  Murray Cumming  <murrayc murrayc com>
-
-       tests: Link to all necessary libraries.
-
-       * Makefile_libglom.am: Define libglom_all_libs to avoid duplication.
-       * Makefile_glom.am: Use libglom_all_libs instead of repeating.
-       * Makefile_tests.am: Use libglom_all_libs to explicitly link against the
-       dependencies of libglom. This seems to have been automatic with the linker in
-       previous versions of Ubuntu, but not with Ubuntu Natty.
-
-2011-01-05  Murray Cumming  <murrayc murrayc com>
-
-       Use Gdk::Cursor via RefPtr.
-
-       * glom/bakery/busy_cursor.[h|cc]:
-       * glom/utility_widgets/canvas/canvas_item_movable.[h|cc]:
-       gtkmm 3 now requires Gdk::Cursor to be used via RefPtr.
-
-2011-01-05  Murray Cumming  <murrayc murrayc com>
-
-       Replace a used of (removed from GTK+) gdk_spawn_*() API.
-
-       * glom/application.cc: This partially fixes the build.
-
-2010-12-16  Murray Cumming  <murrayc murrayc com>
-
-       More dealing with cppcheck errors.
-
-       * glom/libglom/data_structure/layout/layoutitem.cc: operator=(): Check for
-       src=this.
-       * glom/base_db.cc:
-       * glom/frame_glom.cc:
-       * glom/frame_glom.h:
-       * glom/libglom/connectionpool_backends/postgres_central.cc:
-       * glom/libglom/data_structure/foundset.cc:
-       * glom/libglom/data_structure/foundset.h:
-       * glom/libglom/document/bakery/document_xml.cc:
-       * glom/libglom/document/bakery/document_xml.h:
-       * glom/libglom/document/document.cc:
-       * glom/utility_widgets/adddel/adddel.cc:
-       * tests/import/test_parsing.cc:
-       * tests/import/test_signals.cc: Removed unused methods and unused variables.
-
-2010-12-16  Murray Cumming  <murrayc murrayc com>
-
-       Remove unused methods.
-
-       * glom/libglom/data_structure/glomconversions.cc:
-       * glom/libglom/document/bakery/document.cc:
-       * glom/libglom/document/bakery/document.h:
-       * glom/libglom/document/bakery/document_xml.cc:
-       * glom/libglom/document/bakery/document_xml.h:
-       * glom/libglom/document/document.cc:
-       * glom/libglom/document/document.h:
-       * glom/utility_widgets/canvas/test_canvas_editable.cc:
-       Remove unused methods, found by cppcheck. Some other methods that cppcheck
-       mentions seem to be virtual methods that are used.
-
-2010-12-16  Murray Cumming  <murrayc murrayc com>
-
-       Remove unnecessary checks before use of delete.
-
-       * glom/application.cc:
-       * glom/bakery/app_withdoc.cc:
-       * glom/bakery/app_withdoc_gtk.cc:
-       * glom/frame_glom.cc:
-       * glom/libglom/connectionpool.cc:
-       * glom/libglom/data_structure/layout/layoutitem.cc:
-       * glom/libglom/sharedptr.h:
-       * glom/libglom/test_avahi_publisher.cc:
-       * glom/mode_data/box_data_portal.cc:
-       * glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
-       * glom/mode_data/flowtablewithfields.cc:
-       * glom/mode_data/notebook_data.cc: C++ doesn't mind if we call delete on a
-       null pointer. Found by cppcheck.
-
-2010-12-15  Ben Konrath  <ben bagu org>
-
-       Add Eclipse 3.6 / CDT 7.0 configuration files.
-
-       * .cproject: New file generated by Eclipse.
-       * .project: New file generated by Eclipse.
-
-2010-12-16  Murray Cumming  <murrayc murrayc com>
-
-       Fix make check when using --enable-glom-ui=no.
-
-       * Makefile_tests.am: Correct the LDADD flags for the selfhosting tests, so
-       that make check still works when using --enable-glom-ui=no.
-
-2010-12-14  Murray Cumming  <murrayc murrayc com>
-
-       Build: Reduce some duplication.
-
-       * Makefile.am:
-       * Makefile_glom.am:
-       * Makefile_libglom.am:
-       * Makefile_tests.am: Use AM_CPPFLAGS and AM_CFLAGS just to hold the
-       (optional) warning flags, as we did previously.
-
-2010-12-14  Murray Cumming  <murrayc murrayc com>
-
-       Build: Avoid use of non-UI cflags/libs where not necessary.
-
-       * Makefile.am: Do not use AM_CPPFLAGS, AM_CFLAGS or AM_CXXFLAGS.
-       * Makefile_glom.am:
-       * Makefile_libglom.am:
-       * Makefile_tests.am: Instead use individual variables for each target,
-       making sure that we use only the necessary flags.
-       libglom may have been linking to some unnecessary UI libraries before.
-       * glom/import_csv/csv_parser.h: Avoid unnecessary UI includes.
-       * tests/import/test_parsing.cc:
-       * tests/import/test_signals.cc: Avoid including gtkmm.h.
-
-       As a side-effect, the build is now longer, because some files are now
-       compiled again separately for the tests, presumably because they now need
-       to be built with different compiler flags. But that is a better test.
-
-2010-12-13  Murray Cumming  <murrayc murrayc com>
-
-       Correct my previous commit.
-
-       * configure.ac: Correct the no/yes test for --enable-glom-ui and add a comma
-       so it actually works.
-       * Makefile_tests.am: Restore the source file lists for the python tests.
-
-2010-12-13  Murray Cumming  <murrayc murrayc com>
-
-       Allow libglom to be built without building the Glom UI code too.
-
-       * configure.ac: Added an --enable-glom-ui option, defaulting to yes.
-       When using --enable-glom-ui=no then only libglom will be built. This is
-       useful for deployment of libglom to servers where the UI dependencies are not
-       wanted.
-       We still use GLOM_LIBS and GLOM_FLAGS even in libglom, instead of using
-       LIBGLOM_LIBS and LIBGLOM_CFLAGS anywhere, but this does reduce duplication
-       of the flags in glom's UI build.
-       * Makefile.am: Do not include Makefile_glom.am if the UI should not be built.
-       * Makefile_glom.am: Move the bin_programs definition to here.
-       * Makefile_libglom.am: Move the LTLIBRARIES definitions to here.
-       * Makefile_tests.am: Attempt, unsuccessfully, to build and run UI-dependent
-       tests only when the UI was built, when running make check.
-
-2010-12-13  Murray Cumming  <murrayc murrayc com>
-
-  Fix the build with latest gtkmm.
-
-       * glom/mode_design/print_layouts/window_print_layout_edit.cc:
-       Use Widget::render_icon_pixbuf() instead of the old render_icon() method.
-
-2010-12-08  Murray Cumming  <murrayc murrayc com>
-
-       Partial port to recent gtkmm API changes from git master.
-
-       * glom/mode_data/datawidget/datawidget.cc: signal_style_changed was removed
-       though it might come back later.
-       * glom/mode_data/datawidget/entry.cc: Use override_color() instead of
-       modify_text().
-       * glom/mode_data/placeholder-glom.cc: Use set_source_rgba() instead of
-       set_source_color(). Use get_style_context() instead of get_style().
-
-2010-12-03  Murray Cumming  <murrayc murrayc com>
-
-       Fix the build with latest gtksourceviewmm from git master.
-
-       * glom/main.cc:
-       * glom/mode_design/dialog_database_preferences.cc:
-       * glom/mode_design/dialog_database_preferences.h:
-       * glom/mode_design/fields/dialog_fieldcalculation.cc:
-       * glom/mode_design/fields/dialog_fieldcalculation.h:
-       * glom/mode_design/fields/dialog_fielddefinition.h:
-       * glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.c
-       c:
-       * glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.h
-       :
-       * glom/mode_design/script_library/dialog_script_library.cc:
-       * glom/mode_design/script_library/dialog_script_library.h:
-       * tests/glade_toplevels_instantiation.cc:
-       * tests/test_glade_derived_instantiation.cc: Change the gtksourceview
-       namespace to Gsv.
-
-2010-12-03  Murray Cumming  <murrayc murrayc com>
-
-       Fix the build with latest gtkmm from git master.
-
-       * glom/mode_design/dialog_add_related_table.cc:
-       * glom/mode_design/fields/dialog_fielddefinition.cc:
-       * glom/mode_design/script_library/dialog_script_library.cc:
-       * glom/mode_design/users/dialog_choose_user.cc:
-       * glom/mode_design/users/dialog_users_list.cc: Adapt to the ComoboBoxText
-       append_text() -> append() change.
-
-2010-11-29  Murray Cumming  <murrayc murrayc com>
-
-       Replaced GtkRuler with GimpRuler because GtkRuler was removed from GTK 3.
-
-       * glom/utility_widgets/gimpruler/: Added several source files from
-       gimp, with small changes to make it build for us, to provide the GimpRuler
-       widget.
-       * COPYING: Switch to GPL version 3 (instead of 2), because the GIMP source
-       code uses it.
-       * Makefile_glom.am:
-       * glom/glom_developer.glade:
-       * glom/mode_design/print_layouts/window_print_layout_edit.[cc|cc]: Use
-       GimpRuler instead of GtkRuler, creating and adding them in code instead of
-       in the .glade file, to avoid Glade needing to know about that widget.
-
-1.19.2:
-
-2010-11-23  Murray Cumming  <murrayc murrayc com>
-
-       Fix the tests build during distcheck
-
-       * Makefile_glom.am: Correct eggspreadtablemm.c to eggspreadtablemm.cc.
-       * Makefile.am:
-       * Makefile_tests.am: Distribute the albums.csv test file and put the
-       path to its directory in a define.
-       * tests/import/test_parsing.cc: Use the define here, instead of using
-       get_current_directory, which is not enough when builddir!=srcdir.
-
-2010-11-17  Javier Jardón  <jjardon gnome org>
-
-       Use upstream gettext instead Glib one
-
-       * configure.ac: Do not use AM_GLIB_GNU_GETTEXT() because it is no longer
-       maintained/recommended.
-       This fixes bug #631367
-
-2010-11-17  Murray Cumming  <murrayc murrayc com>
-
-       Import tests: Uncomment some tests and make them test what we really want.
-
-       * tests/import/test_parsing.cc: Check that we do _not_ require ending newlines
-       and check that we do _not_ require quotes around items.
-
-2010-11-15  Murray Cumming  <murrayc murrayc com>
-
-       Import tests: Disable more tests that do not seem useful.
-
-       * tests/import/test_parsing.cc: Comment out the non-comma separators test and
-       the ignoring-space-between-quoted-text test, because they don't seem to
-       correspond to any specification.
-
-2010-11-15  Murray Cumming  <murrayc murrayc com>
-
-       Import tests: Disable tests that check for incorrect or useless behaviour.
-
-       * tests/import/test_parsing.cc: Comment out the test to ensure that we
-       - Ignore rows with no ending newline.
-       - Ignore field values that are not quoted.
-       because we should not do that.
-       Also add comments explaining the regular expressions.
-
-2010-11-14  Murray Cumming  <murrayc murrayc com>
-
-       Re-enable the import tests and partially deal with their race condition.
-
-       * Makefile_tests.am: Re-enable the import tests.
-       * glom/import_csv/csv_parser.[h|cc]: Add ensure_idle_handler_connection(),
-       moving the idle signal handler connection there. Also call it from the
-       beginning and end of on_file_read(), in case it has been disconnected
-       too early.
-       Use a priority less than PRIORITY_DEFAULT_IDLE, so that IO is likely to
-       happen more often than the idle callback.
-
-2010-11-12  Murray Cumming  <murrayc murrayc com>
-
-       Import tests: Slight code-style change.
-
-       * tests/import/utils.[h|cc]: Remove the MainLoop typedef because it just
-       obscures things.
-
-2010-11-12  Murray Cumming  <murrayc murrayc com>
-
-       CSV Import: Actually preview and import the field values.
-
-       * glom/import_csv/csv_parser.cc: advance_field(): Remove an excess continue,
-       so that we actually add the character to the field's text. This error
-       was probably introduced while removing the non-exceptions ifdefs.
-       This fixed bug #625693 (maximiliano).
-
-       We really must fix those import unit tests so that something like this does
-       not happen again.
-
-2010-11-11  Murray Cumming  <murrayc murrayc com>
-
-       List view: Make the retry option actually work afer entering invalid data.
-
-       * glom/mode_data/db_adddel/db_adddel.[h|cc]: on_treeview_cell_edited():
-       If the user chooses to retry the edit, remember what he entered, and restart
-       the editing (in an idle handler, to avoid confusing the treeview), with
-       that text.
-       This fixes bug #167818
-
-2010-11-10  Murray Cumming  <murrayc murrayc com>
-
-       Update EggSpreadTable from libegg.
-
-       * glom/utility_widgets/eggspreadtable/eggspreadtable.c: Copy from
-       libegg/libegg/spreadtable/ again, to use Tristan's corrections for the
-       forall() vfunc.
-
-2010-11-08  Murray Cumming  <murrayc murrayc com>
-
-       Call xmlCleanupParser() because libxml++ does not anywmore.
-
-       * glom/main.cc: main(): Call xmlCleanupParser() to clean up libxml to help
-       valgrind.
-
-2010-11-08  Murray Cumming  <murrayc murrayc com>>
-
-       FlowTableWithFields: Fix some widget expansion behaviour.
-
-       * glom/mode_data/datawidget/label.cc: Call Gtk::Label::set_line_wrap() to
-       prevent the label from sometimes making the window insanely wide by demainding
-       too much width for itself.
-       * glom/mode_data/flowtablewithfields.cc: add_field_at_position(): Tell
-       the field's widget to expand, so it uses more space if the user expands the
-       window, instead of just expanding the gap between columns.
-       Note that the old non-EggSpreadTable code only expanded the right-most column,
-       so exanding both is a real improvement.
-
-2010-11-08  Murray Cumming  <murrayc murrayc com>
-
-       EggSpreadTable: forall(): Avoid use of invalid GList items.
-
-       * glom/utility_widgets/eggspreadtable/eggspreadtable.c
-       (egg_spread_table_forall):
-       Use (and later free) a copy of the list, because the callback could call
-       egg_spread_table_remove() which would change the list, causing us to use a
-       list->next that is no longer valid. This fixes a problem found by valgrind.
-       I don't know why other Gtk containers don't need to do this, though their
-       code seems to do the same thing.
-
-2010-11-08  Murray Cumming  <murrayc murrayc com>
-
-       Added test_flowtablewithfields.
-
-       * Makefile_tests.am:
-       * glom/mode_data/test_flowtablewithfields.cc: Added the beginnings of a test
-       of FlowTableWithFields.
-
-2010-11-05  Murray Cumming  <murrayc murrayc com>
-
-       Use EggSpreadTable instead of GtkSpreadTable (not added to GTK+).
-
-       * glom/utility_widgets/eggspreadtable/eggspreadtable.[h|cc]:
-       * glom/utility_widgets/eggspreadtable/testspreadtable.c
-       * glom/utility_widgets/eggspreadtablemm/eggspreadtablemm.[h|cc]:
-       * glom/utility_widgets/eggspreadtablemm/private/eggspreadtablemm_p.
-       h: New files.
-       * glom/Makefile_glom.am
-       * glom/Makefile_tests.am: Mention the new files.
-       * glom/utility_widgets/flowtable.[h|cc]: Use Egg::SpreadTable instead of
-       Gtk::SpreadTable.
-
-2010-11-04  Murray Cumming  <murrayc murrayc com>
-
-       Remove the gconfmm dependency, because we don't use it.
-
-       * configure.ac: Do not check for gconfmm.
-       * glom/bakery/app_withdoc.cc: Do not include gconfmm.h.
-
-1.19.1:
-
-2010-10-27  Murray Cumming  <murrayc murrayc com>
-
-       Fix the build with latest gtkmm 2.91.2
-
-       * glom/mode_design/dialog_add_related_table.cc:
-       * glom/mode_design/fields/dialog_fielddefinition.cc:
-       * glom/mode_design/script_library/dialog_script_library.cc:
-       * glom/mode_design/users/dialog_users_list.cc: Use ComboBoxText::remove_all()
-       instead of clear_items().
-
-2010-10-19  Murray Cumming  <murrayc murrayc com>
-
-       libglom: Change the ABI to 1.20, to avoid clashing with 1.16.
-
-       * configure.ac:
-       * glom/libglom/init.h:
-       * glom/python_embed/python_module/py_glom_module.cc:
-       * tests/test_load_python_library.cc: Change it everywhere, also correcting
-       the python library name, which should have _ instead of . That was broken
-       recently.
-
-2010-10-19  Murray Cumming  <murrayc murrayc com>
-
-       distcheck: Remove check for NEWS update.
-
-       * configure.ac: AM_INIT_AUTOMAKE(): Remove check-news because it is not
-       clever enough and because it prevents checking that distcheck works.
-
-2010-10-19  Murray Cumming  <murrayc murrayc com>
-
-       Choices Combo: Fix a warning.
-
-       * glom/mode_data/datawidget/combo.cc: set_choices_fixed(),
-       set_choices_related(): Do not try to re-pack the existing cell.
-
-2010-10-19  Murray Cumming  <murrayc murrayc com>
-
-       Choices Combo: Fix a segfault.
-
-       * glom/mode_data/datawidget/combo.cc: set_choices_fixed(),
-       set_choices_related(): Handle the has-entry case better, not calling clear(),
-       because that breaks GtkComboBox, which then tries to use a removed
-       GtkCellRenderer.
-
-2010-10-18  Murray Cumming  <murrayc murrayc com>
-
-       Details: Let the combo drop-down be wide enough.
-
-       * glom/mode_data/datawidget/combo.cc: Constructor: Use the new
-  set_popup_fixed_width() method.
-
-2010-10-18  Murray Cumming  <murrayc murrayc com>>
-
-       Tests: Fix a typo to fix make check.
-
-       * tests/test_load_python_library.cc: Fix a typo to properly load the
-       correct library name.
-
-2010-10-18  Murray Cumming  <murrayc murrayc com>
-
-       Fix the build with the latest gtkmm.
-
-       * Makefile_glom.am:
-       * po/POTFILES.in:
-       * glom/mode_data/datawidget/comboentry.[h|cc]: Removed this.
-       * glom/mode_data/datawidget/combo.cc: Add a has_entry parameter to the
-       constructor and handle that in set_choices_related().
-
-2010-10-14  Murray Cumming  <murrayc murrayc com>
-
-       Build fixes after recent commits.
-
-       * glom/libglom/db_utils.cc:
-       * glom/libglom/utils.cc:
-       * glom/mode_data/datawidget/cellrenderer_dblist.cc: Added 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
+The ChangeLog is auto-generated when releasing. If you
+are seeing this, use 'git log' for a detailed list of changes.
diff --git a/Makefile.am b/Makefile.am
index ddb8bc8..86f5a09 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -303,6 +303,11 @@ endif
        install-update-mime-database uninstall-update-mime-database \
         $(gcov_phony_files)
 
+# Optional: auto-generate the ChangeLog file from the git log on make dist
+# dist-changelog.am is added by mm-common-prepare in autogen.sh.
+include $(top_srcdir)/dist-changelog.am
+
+
 # Instruct GNU make to delete the targets of a rule after it failed, in
 # order to avoid the complication of handling that situation manually.
 .DELETE_ON_ERROR:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]