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-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 function, for
	Michael to see.

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-12  Murray Cumming  <murrayc@murrayc.com>

	Music Collection Example: Changed a layout.

	* examples/example_music_collection.glom: Albums: List View:
	Add some related records to show a problem in Qlom.

2010-01-08  Murray Cumming  <murrayc@murrayc.com>

	Correct use of locales when creating text representations.

	* glom/main.cc:  Set std::locale::global() to the user's current locale,
        forcing us to imbue streams to whatever we actually want.
	* glom/libglom/connectionpool_backends/postgres_self.cc: startup():
	Do not use Utils::string_from_decimal() for the port number, because it
	is meant to use the user's locale, but we need it in the C locale.
	* glom/libglom/data_structure/field.cc: to_file_format(): Use
	std::locale::classic() when we want the C locale, not std::locale(),
	which means the user's locale, which was previously the C one by chance.
	* glom/libglom/utils.cc: string_from_decimal(): Imbue the stream
	as wanted.

2010-01-07  Michael Hasselmann  <michaelh@openismus.com>

	Fix potential encoding error for currency symbols

	* glom/libglom/data_structure/glomconversions.cc (get_text_for_gda_value):
	Glom's numeric type can be prefixed with a currency symbol. If the symbol
	cannot be represented in the user's locale it would hide all data for the
	column. This is fixed by using a fallback conversion for the symbol.
	Fixes bug #606349.

2010-01-07  Armin Burgmeier  <armin@arbur.net>

	* win32/build-installer:
	* win32/glom.iss.in: Install glom_1_12.pyd instead of glom.pyd. Bug
	#605593.

1.12.4:

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

  Dnd layout: Avoid a crash when dragging to empty space.

	* glom/utility_widgets/flowtable_dnd.cc: on_drag_data_received():
	Avoid dereferencing a null group.
	Bug #599232

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

	Dnd layout: Avoid a crash.

	* glom/utility_widgets/flowtable_dnd.cc: on_drag_data_received():
	Use a dynamic_cast<> to avoid memory corruption with the MI class.
	Bug #599232

2009-12-16  Armin Burgmeier  <armin@arbur.net>

	* win32/build-installer:
	* win32/glom.iss.in: Add missing libpangoft2-1.0-0.dll. Bug #599966.

2009-12-14  Murray Cumming  <murrayc@murrayc.com>

	* glom.desktop.in.in: Remove the Application category because
	krazy2 says it is deprecated.

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

	FlowTableDnd: Some refactoring.

	* glom/utility_widgets/flowtable_dnd.[h|cc],
	* glom/mode_data/flowtable_withfields.[h|cc]: Make FlowTableDnd less
	aware of LayoutItems, though it is still not yet generic enough.
	* glom/utility_widgets/test_flowtable_dnd.cc:
	* glom/Makefile_tests.am: Added test_flowtable_dnd.

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

	* examples/example_film_manager.glom: Added silly example data,
	fixing bug #600859 (Michael Hasselmann)

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

	Tests: Validate all examples against the DTD, and correct the DTD.

	* tests/dtd/test_example_sqlite: Renamed to test_file_validation.sh.
	* glom/Makefile_tests.am: Adapted.
	* glom/libglom/document/document.cc: save_before(): Correct the saving
	of group privileges so they are really inside the group nodes. Avoid
	saving unnamed groups, as seen in the example files.
	* glom/glom_document.dtd: Several corrections to fix the validation of
	the example files, though I don't like that DTDs don't seem to give
	us any way to say that the sequence of child elements is irrelevant.
	I don't like enforcing the sequence.

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

	Fix distcheck.

	* Makefile.am:
	* Makefile_tests.am: Fix the distcheck by disting the DTD validation
	test script and the .glom file that it uses.
	* glom/libglom/init.cc: Redefine Python's PyDateTime_IMPORT macro,
	to avoid a compiler warning. See http://bugs.python.org/issue7463
	* glom/main.cc: Avoid including Python's datetime.h, to avoid the same
	compiler warning.

2009-12-09  Murray Cumming  <murrayc@murrayc-desktop>

	Tests: Complete the test_python_execute_func_date test.

	* glom/libglom/python_embed/pygdavalue_conversions.c
	(glom_pygda_value_from_pyobject): Use g_date_new_dmy() so the GDate
	is really completely initialized, avoiding errors about invalid dates.
	* tests/test_python_execute_func_date.cc: Check the return type and
	value, by comparing the python result with the current date.
	Bug is now really fixed #603686. (Andrew Ruthven)

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

	Fix the crash when calling python functions that return dates.

	* glom/libglom/python_embed/pygdavalue_conversions.c
	(glom_pygda_value_from_pyobject): Call the macro PyDateTime_IMPORT here,
	though it was already called in libglom_init(). I don't know why this
	fixes the crash, but it does. Bug #603686. (Andrew Ruthven)

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

	Tests: Added glom_evaluate_python_function_implementation() tests.

	* Makefile_tests.am:
	* tests/test_python_execute_func.cc:
	* tests/test_python_execute_func_date.cc: Added two unit tests for
	Glom::glom_evaluate_python_function_implementation(). The date one
	currently fails, as in bug #603686. (Andrew Ruthven)

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

	Python: Trying to stop the PyDateTime_Check() crash.

	* glom/libglom/init.cc: libglom_init(): Call the PyDateTime_IMPORT
	macro, which is needed to stop PyDateTime_Check() and PyDate_Check()
	from crashing, at least in my simple test case. It still crashes in
	Glom though.
	* glom/main.cc: Do not initialize Python here because Glom::init()
	already did it, though doing it twice does not seem to be a problem.

2009-12-04  Murray Cumming  <murrayc@murrayc-desktop>

	Rename some functions to avoid fear of linking to the wrong one.

	* glom/libglom/python_embed/pygdavalue_conversions.[h|cc]:
	pygda_value_from_pyobject(), pygda_value_as_pyobject(): Add a glom_
	prefix so we know we are not using the copy in pygda.
	* glom/python_embed/glom_python.cc:
	* glom/libglom/python_embed/py_glom_record.cc:
	* glom/libglom/python_embed/py_glom_relatedrecord.cc: Adapted.

2009-12-04  Murray Cumming  <murrayc@murrayc.com>

	Field Definitions: Default value: Fix crash when selecting a date.

	* glom/utility_widgets/datawidget.cc: offer_field_list(),
	offer_field_layout(), offer_related_record_id_find(): Avoid crashes
	caused by calling set_transient_for() with a null parent window,
	for instance from the field definitions dialog.

2009-12-04  Murray Cumming  <murrayc@murrayc.com>

	Field Definitions: Show default value widget for date fields.

	* glom/utility_widgets/datawidget.cc: Constructor: show the
	hbox_parent widget, so the widgets always show up for the default value
	in the field definitio dialog for date fields. The details view must
	be doing this via a show_all() somewhere.

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

	Related Records layout: Field formatting: Choices: Fix related choices.

	* glom/mode_design/layout/dialog_layout_details.[h|cc]
	* glom/mode_design/layout/dialog_layout_list_related.[h|cc]:
	Add virtual get_fields_table() and use this in
	on_button_field_formatting() so that the formatting dialog shows
	relationships for the to table instead of the parent table, when
	editing formatting for a field in a related records portal.
	Bug noticed by Michael Hasselmann and Andrew Ruthven.
	* glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.c:
	Removed some debug output.

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

	Allow use of example documents that mention an unsupported backend.

	* glom/application.cc: check_document_hosting_mode_is_supported():
	Don't check the backend if it is an example document because the user
	will choose it when saving anyway.

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

	tests: dtd: Now passes.

	* glom/libglom/document/bakery/document_xml.cc: get_node_document():
	Added commented-out code to write the DOCTYPE declaration, if we ever
	want to specify the PUBLIC DTD idenitifier and URI in each document.
	Let's avoid that for now because we'd have to make sure that it's
	hosted properly.
	* tests/dtd/test_example_sqlite: Do not use --valid because that
	seems to always require a DTD in the document's DOCTYPE declaration.
	--dtdvalid seems to do the same thing already, but with the specified
	DTD.

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

	* glom/glom_document.dtd: Mention the xmlns attribute because DTD
	validation doesn't know about XML namespaces.

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

	Document: Ensure that the xmlns ID is always in saved documents.

	* glom/libglom/document/bakery/document_xml.cc: get_node_document():
	Make sure that the xmlns ID is added, even when the root node already
	exists, for instance when opening existing documents.

	* 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:
	Add the xmnls ID, to help to identify the MIME type of these documents.

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

	Document saving: Remove unncessary empty singular_title nodes.

	* glom/libglom/document/document.cc: save_before_translations():
	Do not create empty singular_title nodes.
	* examples/example_smallbusiness.glom: Resaved.

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

	Partly fix the DTD validation test.

	* glom/glom_document.dtd: table: Correct the syntax for the child
	elements, to use ?, instead of | because they are all optional, instead
	of being alternatives for each other.
	Add the print_layouts element.
	* Makefile_tests.am: Change the order so the sometimes-hanging import
	tests are at the end, to make the tests more useful.

2009-11-13  David King  <davidk@openismus.com>

	* configure.ac: Fix check for SQLite and libgettextpo.

2009-11-12  David King  <davidk@openismus.com>

	* glom/glom_document.dtd: Update to more completely validate example
	documents.
	* Makefile_tests.am:
	* tests/dtd/test_example_sqlite: Add a test that attempts to validate
	an example SQLite Glom document against glom_document.dtd.

2009-11-10  David King  <davidk@openismus.com>

	* configure.ac: Fix incorrect conditional for Maemo libgettextpo check.

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

	Fix a crash when specifying a static image on the layout.

	* glom/utility_widgets/imageglom.cc: on_menupopup_activate_select_file():
	Check for a null parent window pointer to avoid a crash, fixing bug
	#600954 (Michael Hasselmann).

2009-11-06  David King  <davidk@openismus.com>

	* configure.ac:
	* Makefile_glom.am: Do not link to libgettextpo on Maemo, and
	additionally do not check for it either.

2009-11-04  David King  <davidk@openismus.com>

	* glom.xml: Add Maemo-specific category for classification of .glom
	files as "documents".

2009-11-04  David King  <davidk@openismus.com>

	* Makefile_glom.am: Statically link to libgettextpo on Maemo, as
	Gettext is available in the SDK and autobuilder but not on the device.

1.12.3:

2009-10-30  Murray Cumming  <murrayc@murrayc.com>

	List views and related records portals: Enough space for titles.

	* glom/utils_ui.[h|cc]: get_suitable_field_width_for_widget():
	Optionally calculate enough space for the title too, for TreeView
	columns.
	* glom/utility_widgets/db_adddel/db_adddel.cc: treeview_append_column():
	When choosing a default column width, make sure there's enough for the
	title too.

2009-10-30  Murray Cumming  <murrayc@murrayc.com>

	List views and related records portals: Avoid zero-width columns.

	* glom/utility_widgets/db_adddel/db_adddel.cc: treeview_append_column():
	Except on maemo, don't try to auto-expand a non-rightmost column,
	because that does not seem to be possible with fixed-height-mode,
	which we use for performance.

2009-10-30  David King  <davidk@openismus.com>

	* configure.ac:
	* glom/main.cc: Initialize libossomm on Maemo, to register a DBus
	service.

2009-10-28  David King  <davidk@openismus.com>

	* configure.ac:
	* Makefile.am:
	* glom.desktop.in.in:
	* glom.service.in: Add DBus service file for Maemo 5, and install to
	the correct location as determined by the osso-af-settings pkg-config
	file. Adjust the installation location of the glom.desktop file on
	Maemo.

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

	Do not mark an empty string for translation.

	* glom/dialog_connection.cc: set_confirm_existing_user_note():
	Do not do _(""), fixing bug #599868 (André Klapper).

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

	Trying to ignore unwanted column resize signals.

	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]:
	Removed unused set_column_width().
	construct_specified_columns_cellrenderer(): Added an InnerIgnore, though
	we already use one in construct_specified_columns().
	on_treeview_column_resized(): Check if we should ignore signals.
	Do not cast an int size to a guint, because it could be -1.

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

	Avoid runtime warnings about 0 size TreeViewColumn.

	* glom/utility_widgets/db_adddel/db_adddel.cc: construct_specified_columns(),
	treeview_append_column(): Avoid calling TreeViewColumn::set_fixed_width()
	with a 0 size, avoiding a runtime assertion.

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

	Fix some warnings.

	* glom/dialog_existing_or_new.cc: get_service_info(): Replace a 0 with
	(void*)0 to avoid a warning after my change on 2009-10-13.
	* glom/libglom/data_structure/has_title_singular.cc():
	operator==(): Actually use the src parameter.

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

	* glom/utility_widgets/db_adddel/db_adddel.cc: treeview_append_column():
	Don't try to put -1 in a guint for the column width.

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

	BaseDb::query_execute*(): Const corrections.

	* glom/base_db.[h|cc]: query_execute(), query_execute_select():
	Const corrections and indentation corrections.

2009-10-21  Armin Burgmeier  <armin@arbur.net>

	* Makefile_libglom.am: Link against winsock on Windows.

	* glom/application.cc (constructor): ifdefed out the avahi callbacks
	setup on Windows.

	* glom/dialog_existing_or_new.cc (constructor): ifdefed out the code
	that expands the network item on Windows (because it doesn't exist
	there).

	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool.cc: ifdefed out the avahi callback setup
	function, moved pgwin32_is_admin to main.cc.

	* glom/main.cc: Moved pgwin32_is_admin from connectionpool.cc.

	* glom/libglom/spawn_with_feedback.cc: Added <glibmm/fileutils.h>
	include, required for the Windows build.

	* glom/mode_design/print_layouts/print_layout_toolbar_button.cc:
	* glom/utility_widgets/layouttoolbar.cc:
	* glom/utility_widgets/layouttoolbarbutton.cc:
	* glom/xsl_utils.cc: Fixed the construction to path files
	relative to the executable on Windows: Glib::build_filename does take
	only two arguments, not three.

	* win32/build-installer:
	* win32/glom.iss.in: Updated.

2009-10-21  Armin Burgmeier  <armin@arbur.net>

	* macros/mm-python.m4: Fix the python library lookup on Windows: Avoid
	a python error if get_config_var('LIBS') is None and include
	$PREFIX/libs and $EXEC_PREFIX/libs in the search path because this is
	where the official Python installer puts the library in.

2009-10-19  David King  <davidk@openismus.com>

	* Makefile_libglom.am: Add missing backslash, fixing commit
	e38fcaab322d4774faae2ecb707cdf67f84dd6ea.

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

	Maemo: Adapt for latest hildonmm changes.

	* glom/utility_widgets/comboentryglom.cc:
	* glom/utility_widgets/comboglom.cc: get/set_active() changed to
	set_selected() and we now have an iter-base get/set_selected() for the
	PickerButton so we don't need to get the TouchSelector.

2009-10-16  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Fix the build for the latest hildonmm.

	* glom/navigation/maemo/pickerbutton_table.cc:
	* glom/utility_widgets/comboentryglom.cc:
	* glom/utility_widgets/comboglom.cc: Adapt to changed (simpler)
	TouchSelector API.

2009-10-16  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Fix my previous commit.

	* glom/utility_widgets/datawidget.cc: set_child_size_by_field(): Move
	the ifdefs around so normal fields get sensible sizes again on Maemo.

2009-10-16  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Make TextViews small to begin with.

	* glom/utility_widgets/datawidget.cc: set_child_size_by_field(): On
	Maemo, do not increase the height of the TextView, even if specified in
	the layout, because HildonTextViews expand automatically on Maemo when
	entering more text.

2009-10-16  Murray Cumming  <murrayc@murrayc.com>

	Maemo: When adding related records, show the foreign key value.

	* glom/mode_data/box_data_portal.cc: on_maemo_appmenubutton_add():
	Actually show the field value that links the new related record to the
	parent record, though this is a bit hacky and will only work for
	autogenerated keys.

2009-10-16  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Actually show new related record in the list.

	* glom/mode_data/box_data_portal.[h|cc]: on_maemo_appmenubutton_add():
	* glom/mode_data/notebook_data.[h|cc]: Constructor:
	Update the window when the maemo details window is hidden, for instance
	to show the new related record in the portal.

2009-10-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document.cc: load_after(), save_before():
	Avoid crashes when load/saving singular_titles.

2009-10-16  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Allow Relationships to have singular titles too. Use them.

	* glom/libglom/data_structure/has_title_singular.[h|cc]: Added this new
	base class, to be inherited by any TranslatableItem that could also have
	a singular form.
	* glom/libglom/data_structure/table_info.[h|cc]:
	* glom/libglom/data_structure/relationship.[h|cc]: Derive
	from HasTitleSingular, instead of just having the methods in TableInfo.
	* glom/libglom/document/document.[h|cc]: Added
	get_table_title_singular() to match the existing get_table_title().
	* glom/mode_data/box_data_portal.[h|cc]: Added get_title_singular() to
	match the existing get_title() and use it in the details window title
	and AppMenu Add Related button.
	* glom/mode_data/notebook_data.cc: Use the singular table title for the
	details window title.

2009-10-15  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Show a new Details window when adding related records.

	* glom/mode_data/box_data_portal.[h|cc]:
	* glom/mode_data/box_data_calendar_related.[h|cc]:
	* glom/mode_data/box_data_list_related.[h|cc]:
	Remove the just-added do_add_record() virtual method.
	Instead add a Box_Data_Details and parent window to Box_Data_Portal,
	used to show a details window for a new related record in
	on_maemo_appmenubutton_add().
	Move some code from Box_Data_List_Related::on_adddel_record_added() to
	Box_Data_Portal::make_record_related() to make this easier.

2009-10-15  Murray Cumming  <murrayc@murrayc.com>

	Developer: Tables: Add singular title.

	* glom/libglom/data_structure/tableinfo.[h|cc]: Add
	get/set_title_singular(), using a member TranslatableItem, to hold
	the singular form (such as Album instead of Albums) for use in the UI
	for users.
	* glom/libglom/document/document.cc: save_before(), load_after():
	Load and save the singular table titles as a new node.
	* glom/glom_document.dtd: Mentin the new node, though I don't think
	we document translation nodes properly.
	* glom/navigation/box_tables.[h|cc]: In developer mode, show the column
	so the user can enter a singular title.

2009-10-15  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Details: Show table title in window title.

	* glom/mode_data/notebook_data.cc: show_details(): On Maemo, mention the
	table title in the window title, though this again shows that we need to
	ask the designer for the singular form for the table's items.

2009-10-15  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Show Add Related buttons when showing portals on details.

	* glom/application.[h|cc]: Removed unused on_menu_add_record().
	* glom/mode_data/box_data_portal.[h|cc]: On Maemo, add a Hildon::Button
	to the application's AppMenu on realize, removing it on unrealize.
	Added a virtual do_add_record() that is called when the button is
	clicked.
	* glom/mode_data/box_data_calendar_related.[h|cc]:
	* glom/mode_data/box_data_list_related.[h|cc]: Added do_add_record()
	overrides, though they are empty so far.

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

	Maemo: Add a Add Record to the App Menu and remove it from the List View.

	* glom/application.cc: init_menus(): Add an Add Record item to the
	AppMenu on Maemo.
	* glom/frame_glom.[h|cc]: Added on_menu_add_record() on Maemo, calling
	Notebook_Data::do_menu_file_add_record().
	* glom/mode_data/box_data_details.[h|cc]: Added do_new_record().
	* glom/mode_data/notebook_data.[h|cc]: Added do_menu_file_add_record()
	to call the Box_Data_Details::do_new_record().
	* glom/utility_widgets/db_adddel/db_adddel.h: Made start_new_record()
	public and documented it.
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.[h|cc]: Remove
	the Add button on Maemo.

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

	* *.cc: Replace use of NULL with 0, because this is C++.
	Replace use of != NULL with nothing.

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

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/flowtable.h:
	* glom/utility_widgets/flowtable_dnd.cc: Correct non-maemo build
	problems after merging from the maemo5 branch.

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

	Maemo: Details: Put scrollbar against the right edge, as per spec.

	* glom/window_boxholder.[h|cc]: On Maemo, use an Alignment with no
	padding at the right, instead of just a window border, to match the UI
	spec.

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

	Maemo: Details: More correct padding, maybe.

	* glom/utility_widgets/flowtable.[h|cc]: Change set_padding() to
	set_column_padding() and set_row_padding(), allowing different padding
	between rows and between columns, as per Maemo's UI specifications.

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

	Maemo: Use Hildon buttons for Open, Find and ... buttons.

	* glom/utility_widgets/datawidget.cc: Constructor: Use Hildon::Buttons.

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

	* glom/utility_widgets/comboentryglom.cc: init(): On Maemo, remove the
	duplicate first column and do not expand the first column.

2009-10-08  Murray Cumming  <murrayc@murrayc-x61>

	Maemo 5: List view: Subtly improve the separating lines.

	* glom/utility_widgets/db_adddel/db_adddel.cc: treeview_append_column():
	On Maemo, use an "x-pad" of HILDON_MARGIN_DEFAULT for the cell
	renderers, because Mathias Hasselmann says that is required for Maemo 5.

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

	Maemo: Use a PickerButton with TouchSelector for combo boxes on details views.

	* glom/utility_widgets/comboentryglom.[h|cc]:
	* glom/utility_widgets/comboglom.[h|cc]: On Maemo, derive from
	Hildon::PickerButton instead of Gtk::ComboBox*, with a member
	TouchSelector/TouchSelector. However, the ID field seems to be shown
	twice.

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

	Maemo: Actually show new list views and related records portals.

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	construct_specified_columns(): Use while(TouchSelector::remove_column())
	to actually remove old view columns, so we actually see an effect when
	navigating to a new table, and so we don't see old data in related
	records tables.

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

	Tests: Import: Fixed the no-exceptions build.

	* tests/import/utils.cc: Fixed the no-exceptions build.

2009-10-06  Daniel Elstner  <daniel.kitta@gmail.com>

	Support Automake silent rules

	* configure.ac: Call the AM_SILENT_RULES macro if it is defined.
	* Makefile.am (.rc.res): Prefix command with $(AM_V_GEN) to suppress
	the echoing of the command line if silent rules are enabled.
	* Makefile_libegg.am (eggmarshalers.h), (eggmarshalers.c): ditto.

1.12.2:

2009-10-05  Murray Cumming  <murrayc@murrayc.com>

	Import: Handle large unquoted text (binary image data).

	* glom/import_csv/csv_parser.cc: on_idle_parse(): When we reach the
	end of the buffer without finding a newline, store all of the remaining
	text instead of just since the last quote, so we don't discard parts
	of large unquoted text, such as parts of binary image data.
	This seems to break the test_fail_on_non_matching_quotes test, but
	the tests are too hard to run until we have removed the idle handling
	(and its timing problems) from CSvParser.

	* glom/libglom/data_structure/field.cc: to_file_format(): Also
	escape carriage-returns, just in case.
	* tests/import/test_parsing.cc: Comment out the
	test_skip_on_no_ending_newline test, because I see no reason why we
	would want to ignore last lines with no newline.

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

	Maemo: List: Click to view details.

	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]: Connect to
	TouchSelector::signal_changed to respond to clicks on the list. Note that
	a drag to pan (scroll) does not cause that signal to be emitted.
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.[h|cc]: On Mameo,
	remove the Delete and Edit buttons because deleting can be done via the
	details window (viewable on Maemo). The Add button is still there and is ugly.

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

	DbAddDel: Expand an appropriate column.

	* glom/libglom/data_structure/layout/layoutitem.[h|cc]: get_display_width():
	Remove the bool return and just return the value, because 0 already means no
	specified width.
	* glom/libglom/document/document.cc:
	* glom/mode_design/layout/dialog_layout_details.cc:
	* glom/print_layout/canvas_layout_item.cc: Adapt.

	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]:
	Added get_column_to_expand() to choose the last expandable (text, no specified
	width) column.
	treeview_append_column(): Add a bool expand property and use it.
	construct_specified_columns(): Expand the expandable column, to avoid
	wasting space or expanding an inappropriate column.

2009-10-05  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Allow editing of hidden tables (only) via its details window.

	* glom/mode_data/box_data_list_related.cc: enable_buttons(): Add a maemo
	ifdef around m_AddDel.set_allow_view_details().

2009-10-05  Murray Cumming  <murrayc@murrayc.com>

	Maemo: List: Use only 2 columns by default, so some have enough space.

	* glom/libglom/document/document.cc: get_data_layout_groups_plus_new_fields():
	Restrict maemo to 2 list columns by default.

2009-10-05  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Related Records / AddDel: Use icon-only Hildon buttons.

	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.[h|cc]: Use Hildon
	Buttons, with only icons.

2009-10-05  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Hide group titles by default.

	* glom/libglom/data_structure/translatable_item.[h|cc]:
	Added clear_title_in_all_locales().
	* glom/libglom/document/document.cc:
	maemo_restrict_layouts_to_single_column_group(): Also clear the group titles
	to make the default maemo layout more compact.

2009-10-05  Murray Cumming  <murrayc@murrayc-desktop>

	Export: Correct problems in the binary data for images: Escape newlines.

	* glom/libglom/data_structure/field.cc: to_file_format(): Escape
	newlines as \012 instead of removing them, because this is probably
	what gda_binary_to_string() intends.

2009-10-05  Murray Cumming  <murrayc@murrayc.com>

	Export: Correct problems in the binary data for images.

	* glom/libglom/data_structure/field.cc: to_file_format(): Escape
	newlines and quotes in binary data text, to workaround libgda bug
	https://bugzilla.gnome.org/show_bug.cgi?id=597390
	* glom/frame_glom.cc: export_data_to_stream(): Double check that
	image data contains no newlines or quotes.
	* glom/libglom/utils.cc: string_replace(): Avoid an endless loop
	when the search_for input parameter is empty.
	This fixes bug #593304 (Michael Hasselmann)

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

	Fix regression: Actually show field choices again in combo boxes.

	* glom/libglom/utils.cc: get_choice_values(): Move the list_values.push_back()
	out of the ifdef block so we actually show field choices again in the combo
	boxes. This was broken by the commit from Johannes on 2009-07-30.
	Hopefully ldtp tests will avoid this in future.

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

	Maemo: Really fall back to the standard layout if there is no maemo layout.

	* glom/libglom/document/document.cc: get_data_layout_groups_plus_new_fields():
	Really fall back to the standard layout if there is no maemo layout.
	When creating a default layout, restrict the column count to 1.

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

	Maemo: Avoid multi-column details layouts.

	* glom/libglom/document/document.[h|cc]:
	Added maemo_restrict_layouts_to_single_column_group().
	* glom/application.cc: on_document_load(): On maemo, call it to make the
	layout more suitable by default, if no custom maemo layout is defined.

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

	Maemo: Fix the build.

	* glom/frame_glom.cc:
	* glom/import_csv/dialog_import_csv.cc:
	* glom/import_csv/dialog_import_csv_progress.cc: Added no-exceptions ifdefs,
	and corrected the hildonmm code.

1.12.1:

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

	* glom/libglom/utils.h|cc]: build_sql_select_fields_to_get():
	Removed the unused extra_join parameter.
	* glom/base_db.cc: Adapted.

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

	Related Records: Fix doubly-related records portals, such as a list of
	an Artist's publishers (via their albums).

	* glom/libglom/utils.[h|cc]: build_sql_select_with_where_clause():
	Move some code into build_sql_select_fields_to_get(), so we can get the
	list of fields to get without the rest of the SQL.
	* glom/base_db.cc: set_found_set_where_clause_for_portal():
	Use build_sql_select_fields_to_get() to GROUP BY the full field list
	instead of just the primary key, as required by recent PostgreSQL,
	and probably by the SQL specification.
	We should investigate SELECT DISTINCT again to simplify this.

2009-10-02  Michael Hasselmann  <michaelh@openismus.com>

	Import: Cleanup, added comments.

2009-10-01  Michael Hasselmann  <michaelh@openismus.com>

	Import: Made import working again, changed import logic

	* glom/import_csv/csv_parser.[h|cc] (fetch_next_row): This method allows
	iterating over the parser's cache without the need for a max row/column
	count. Potential issue with valid empty rows during import needs to be fixed.

	* glom/import_csv/dialog_import_csv.[h|cc]: Removed logic based on row counts.
	It turned out that most places didn't need access to get_row_count() anyway.

	* glom/import_csv/dialog_import_csv_progess.cc: Switched import to use the
	parser's new fetch_next_row() API. Not tested for large files yet.

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

	Doubly-related Records: Correct the SQL.

	* glom/base_db.cc: set_found_set_where_clause_for_portal():
	For doubly-related records, use the correct relationship for the GROUP BY to
	avoid a SQL error about a non-existant field. We must have been lucky before.

	However, we now need to fix the SQL error (maybe new in a recent PostgreSQL
	version) about not mentioning all viewed fields in the GROUP BY.

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

	Design: Related Records Portal: Prevent use of inappropriate relationships.

	* glom/mode_design/layout/dialog_layout_list_related.cc:
	on_combo_relationship_changed(): Do not allow the related record to show
	relationships that would require duplicate values in unique fields to show
	multiple records. Noticed by Alessio C.

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

	LayoutGroup: Added accessors for columns count, hiding the member variable.

	* glom/libglom/data_structure/layout/layoutgroup.[h|cc]: Made m_columns_count
	private and added get/set_columns_count() so I can see when this is changing.
	* glom/libglom/data_structure/layout/layoutgroup.h:
	* glom/libglom/document/document.cc:
	* glom/mode_data/flowtablewithfields.cc:
	* glom/utility_widgets/dialog_flowtable.cc: Adapted.

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

	Maemo: Actually allow details to be opened.

	* glom/utility_widgets/db_adddel/db_adddel.cc: get_item_selected():
	Use Hildon::TouchSelector::get_selected() instead of get_active() so it
	actually works for rows other than the first one.
	See hildon bug https://bugs.maemo.org/show_bug.cgi?id=4640,
	though the error might be in our maemomm C++ code to work around that.

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

	Maemo: Find: Show the quickfind.

	* glom/frame_glom.cc: Constructor: On Maemo, put the quickfind widgets in
	the separate find window.

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

	Create QuickFind buttons in code, instead of Glade.

	* glom/frame_glom.cc:
	* glom/glom.glade: Create the QuickFind widgets in code instead of in
	Glade so we can adapt them for Maemo and put them in the separate Find
	window.

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

	Initial dialog: Expand the network item.

	* glom/dialog_existing_or_new.cc: Constructor: Expand the Network
	item, because it helps to explain what it is, particularly on Maemo
	where there are no treeview row arrows.

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

	* glom/frame_glom.[h|cc]: Maemo: Show the Find UI in a separate window.

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

	Maemo: Find: Use only the details view.

	* glom/mode_find/notebook_find.[h|cc]: Hide the list view (and tabs) on Maemo.
	This needs to be a separate window too.

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

	Maemo: Show the table name in the AppMenu. Added a Find Button.

	* glom/application.cc: update_window_title(): Update the picker button here
	too.
	init_menus(): Add a Find button for the AppMenu.
	* glom/navigation/maemo/pickerbutton_table.cc: set_table_name(): Actually
	set the row as active.
	* glom/dialog_existing_or_new.cc: Make sure the first row is visible,
	even on Maemo. Otherwise it looks strange.

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

	Initial dialog: Expand the network item.

	* glom/dialog_existing_or_new.cc: Constructor: Expand the Network
	item, because it helps to explain what it is, particularly on Maemo
	where there are no treeview row arrows.

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

	Fix a crash.

	* glom/dialog_existing_or_new.cc: Move some assertions so this works
	again in non-client-only mode.

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

	client-only mode: Ifdef out unused code.

	* glom/dialog_existing_or_new.[h|cc]: Ifdef out unused code for the new
	document notebook tab in client-only mode.

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

	Maemo: Removed icons from dialogs.

	* glom/glom.glade: Comment out icons in our maemo5 branch.

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

	Client-only mode: Change the initial dialog label.

	* glom/dialog_existing_or_new.cc: Constructor: Change the label text if in
	client-only mode, to avoid mentioning creation of documents.

2009-09-25  Murray Cumming  <murrayc@murrayc.com>

	Fix the build with gtkmm < 2.18.

	* glom/utility_widgets/flowtable.cc: Correct the use of
	GTKMM_MINOR_VERSION to fix the build with older gtkmm versions.

2009-09-25  Michael Hasselmann  <michaelh@openismus.com>

	Import: More code cleanup in tests

	* glom/import_csv/csv_parser.cc (set_file_and_start_parsing): Fail on empty
	file uri.

	* tests/import/*: Removed the ugly mainloop singleton, among other cleanups.

2009-09-25  Murray Cumming  <murrayc@murrayc-desktop>

	Cleanup.

	* glom/glom.glade: Really revert a bad merge from the maemo5 branch.
	* glom/libglom/connectionpool_backends/postgres_self.cc: Do not have
	actual newlines in string literals.

2009-09-25  Murray Cumming  <murrayc@murrayc.com>

	Fix the build with gtkmm < 2.18.

	* glom/utility_widgets/flowtable.cc: Correct the use of
	GTKMM_MINOR_VERSION to fix the build with older gtkmm versions.

2009-09-25  Murray Cumming  <murrayc@murrayc-desktop>

	Import tests: Fixed.

	* tests/import/utils.[h|cc]: run_parser_from_buffer(): Added a
	version that takes a std::string, to make the common case more robust.
	* tests/import/test_parsing.cc:
	* tests/import/test_signals.cc: Fix the tests by not incorrectly
	taking the length of the raw arrays, which caused the temp files to
	contain garbage.

2009-09-25  Murray Cumming  <murrayc@murrayc-desktop>

	Import tests: Handle encoding errors.

	* tests/import/utils.cc: Handle signal_encoding_error too, because this
	is one way that the parser can stop.
	Increase the timeout because an infinite loop is unlikely (and not
	currently happening).

2009-09-25  Murray Cumming  <murrayc@murrayc.com>

	tests/import/: Small cleanup.

	* tests/import/test_parsing.cc:
	* tests/import/utils.[h|cc]: Use a sigc::slot instead of the ugly
	(because not typedefed) function pointer type.

2009-09-25  Murray Cumming  <murrayc@murrayc.com>

	Removed some debug output.

	* glom/libglom/data_structure/glomconversions.cc: parse_time():
	* tests/test_parsing_time.cc: Removed debug output.

2009-09-25  Michael Hasselmann  <michaelh@openismus.com>

	Import: Changed the signature of line_scanned handler

	* glom/import_csv/dialog_import_csv.[h|cc]: Changed the signare of
	on_parser_line_scanned, to use CsvParser::type_row_strings. It does not
	change anything, as the handler didn't even use the parameters.

	Import: Fixed tests to fit new parser API

	* glom/import_csv/csv_parser.[h|cc]: Added a finished_parsing signal since the
	max_row count logic is flawed
	(https://bugzilla.gnome.org/show_bug.cgi?id=588233#c16). Also moved common
	parts of on_stream_read(.) (now on_buffer_read(.)) into
	copy_buffer_and_continue_reading(.), to avoid copy'n'paste bugs.

	* tests/import/utils.[h|cc]: Added mainloop functionality to trigger the idle
	parse sequence of the CsvParser for the testcases.

	* tests/import/test_[parsing,signals].cc: Fixed the tests to fit new parser
	API.

1.12.0:

2009-09-25  Murray Cumming  <murrayc@murrayc.com>

	Command spawning: Really check the return value.

	* glom/libglom/spawn_with_feedback.cc:
	execute_command_line_and_wait_until_second_command_returns_success():
	Actually check the return value of the first command, so we can fail
	immediately (with stderr output) when, for instance, postgresql
	fails to read the configuration file due to changed options, such as
	no longer recognizing max_fsm_pages in PostgreSQL 8.4

2009-09-25  Murray Cumming  <murrayc@murrayc.com>

	Replace some NULLs with 0 because this is C++, not C.

	* glom/libglom/connectionpool_backends/postgres.cc:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/spawn_with_feedback.cc: Replace NULLs with 0.

2009-09-25  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Fix the non-exceptions build again.

	* glom/print_layout/canvas_print_layout.cc: Added ifdefs around KeyFile
	calls. I wonder why I only noticed this now.

2009-09-24  Murray Cumming  <murrayc@murrayc.com>

	Self-Hosting: Use the new ident configuration for PostgreSQL 8.4.

	* glom/libglom/spawn_with_feedback.[h|cc]: Added an
	execute_command_line_and_wait() overload that has an output parameter
	for the stdout from the command.
	* glom/libglom/connectionpool_backends/postgres_self.[h|cc]:
	Added a get_postgresql_utils_version_as_number() utiltity method,
	and use it in set_network_shared() to use a different syntax for
	Postgres 8.4, hopefully fixing bug #595608 (Fryderyk Dziarmagowski)

2009-09-24  Murray Cumming  <murrayc@murrayc.com>

	Self-Hosting: Retry the connection just-long-enough.

	* glom/libglom/connectionpool_backends/postgres.[h|cc]: attempt_connect():
	Add a throw() declaration because we know that this really never throws,
	though other similar methods do.
	* glom/libglom/connectionpool_backends/postgres_self.cc: connect():
	If not network-shared then retry every second when the connection fails,
	because the (default) password really must be correct. Seems to work,
	requiring 6 retries on my system.
	However, we must still wait a hard-coded time to be sure of failure
	if the password is not the default one, for instance when network sharing.
	* glom/libglom/spawn_with_feedback.cc:
	execute_command_line_and_wait_until_second_command_returns_success():
	Remove the hacked 8-second wait here.

2009-09-23  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Details: Do not show buttons.

	* glom/mode_data/box_data_details.[h|cc]: ifdef out the buttons for maemo.
	* glom/glom.glade: Hack a HildonStackableWindow into the maemo5 branch
	to avoid a warning with our get_widget_derived() call.

2009-09-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc: Rename the HBox member variables
	to make their purposes clearer.

2009-09-23  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Use Hildon::StackableWindow.

	* glom/bakery/app_withdoc_gtk.h:
	* glom/window_boxholder.h: Use Hildon::StackableWindow instead of just
	Hildon::Window because this always seems to be the right thing to do.

2009-09-23  Murray Cumming  <murrayc@murrayc.com>

	Renamed Dialog_Glom to Window_BoxHolder.

	* glom/dialog_glom.[h|cc]: Renamed to window_boxholder.[h|cc] to make
	its purpose clearer.
	* glom/frame_glom.[h|cc]:
	* glom/mode_data/notebook_data.[h|cc]:
	* Makefile_glom.am: Adapted.

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

	Dialog_Glom: Make this a little less stupid, so we can ifdef for Maemo.

	* glom/dialog_glom.[h|cc]: Derive from Window, not Dialog.
	Constructor: Add the provided box instead of requiring us to add it
	explicitly (to the Dialog's vbox).
	* glom/frame_glom.cc:
	* glom/mode_data/notebook_data.cc: Adapt.

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

	On Maemo, show the details in a separate window.

	* glom/mode_data/notebook_data.[h|cc]: On maemo, hide the tabs, and don't
	add the details box to the notebook. Instead add it to a window and show that
	window instead of switching to a details tab when details are requested.


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

	import tests: Fix the no-exceptions build.

	* tests/import/test_parsing.cc:
	* tests/import/test_signals.cc: Fix the build without exceptions.

2009-09-21  Johannes Schmid <jschmid@openismus.com>

	* Makefile_tests.am:
	Fixed make dist. The sources of tests/test_python_module weren't
	given which broke at least with automake-1.10

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

	Export: Use .csv file extension to match the filter when importing.

	* glom/utils_ui.[h]cc]: Added get_filepath_with_extension() to add
	(if necessary) a specified file extension to a filepath.
	* glom/frame_glom.cc: on_menu_file_export(): Add a .csv file
	extension if not already specified, so we automatically see the
	export file in the file chooser when importing.

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

	* glom/dialog_import_csv.cc: get_data(): Avoid out-of-bounds crashes
	when accessing the vector of vectors. Note that this check is
	already in the appropriate place in the import_csv_refactored branch.
	This makes bug #593304 slighly clearer, though it is now an endless
	loop with debug output.

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

	Import dialog: Set the number of sample rows to 2 by default.

	* glom/dialog_import_csv.cc: Set the number of sample rows to 2
	by default, not 0.
	* glom/frame_glom.cc: Hack around another (!) GtkBuilder warning about
	a secondary top-level object (textbuffer).

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

	* glom/libglom/glom-1.0.pc.in: Rename to glom-1.12.pc.in to match
	the .so name and header install location. Noticed by Chris Coulson.

2009-09-18  Michael Hasselmann  <michaelh@openismus.com>

	Import tests: made them quiet

	* Makefile_tests.am, test/import/utils.[cc|h],
	tests/import/test_[parsing|signals].cc: Only report on failure. Moved common
	parts into an utility namespace.

2009-09-18  Murray Cumming  <murrayc@murrayc.com>

	CsvParser: Make this an actual parser, with a sane API.

	* glom/dialog_import_csv.[h|cc]:
	* glom/dialog_import_csv_progress.[h|cc]: Move into glom/import_csv/
	* glom/import_csv/: Added file_encodings.[h|cc], moving the encodings
	list into it. This is similar to mode_design/iso_codes.[h|cc].
	* glom/import_csv.[h|cc]: Rename to glom/import_csv/csv_parser.[h|cc]
	to match the class name.
	Move actual parsing (and the vector of row/column data) into
	CsvParser, leaving the dialogs to just respond to signals and get
	data via get methods.

	However, this breaks the import tests, because they add data to
	the parser directly using m_raw. They must be changed to read actual
	files, or maybe we could add some intermediate level of API that they
	could test.

2009-09-18  Murray Cumming  <murrayc@murrayc.com>

	Maemo: Use some Hildon widgets.

	* glom/utility_widgets/entryglom.[h|cc]:
	* glom/utility_widgets/textviewglom.h: Use Hildon::TextView and Hildon::Entry.

2009-09-18  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac: Add a full configure example for maemo in a comment,
		to help my memory.
	* glom/dialog_import_csv.cc: Fix a typo to fix the build on maemo.

2009-09-18  Murray Cumming  <murrayc@murrayc-desktop>

	CsvParser: Made some API private.

	* glom/dialog_import_csv.[h|cc]: get_field_for_column(): Return a
	sharedptr<const>, not a silly const sharedptr<>&.
	* glom/dialog_import_csv_progress.cc:
	* glom/import_csv.[h|cc]: add get_state() and get_rows_count(). Make
	some API private to make it clearer what needs to be done to make
	this a real self-contained class.

2009-09-18  Murray Cumming  <murrayc@murrayc.com>

	CSV Import: Minor code style changes.

	* glom/dialog_import_csv.cc:
	* glom/dialog_import_csv_progress.cc:
	* glom/import_csv.[h]cc]: Prefix the state enum with STATE_.
	Use 0 instead of NULL because this is C++. Remove some debug output.
	Make signal type and variable names consistent with other code.
	* tests/import/test_signals.cc: Add a last std::endl.

2009-09-18  Murray Cumming  <murrayc@murrayc.com>

	Tests: Stop using valgrind by default.

	* Makefile_tests.am: Do not run all tests under valgrind. valgrind is
	for humans to read, and make check has no way to know if the result is
	appopriate or not. Run things under valgrind when you want to.

2009-09-17  Michael Hasselmann <michaelh@openismus.com>

Refactoring Dialog_Import_CSV: created testcase for the CsvParser's signal emission

	* Makefile_tests.am: all tests now run within valgrind by default since mem
	leaks in testcases are potential mem leaks in the application. Parameters might
	need tweaking.

	* glom/import_csv.cc (CsvParser::on_idle_parse): Fixed a missing negation in a
	conditional, which was wrongfully leading to signal emissions. Found by the
	import signals testcase.

	* test/import/test_parsing.cc: Fixed a null byte issue when setting the raw
	contents of the parser.

	* test/import/test_signals.cc: This testcase checks the CsvParser's signal
	emission on varying input. The basic idea was to have on testcase for each
	code path that leads to a signal emission in glom/import_csv.cc, even if that
	leads to overlapping code coverage tests with the parser testcase.

2009-09-17  Johannes Schmid  <jschmid@openismus.com>

	* Makefile_libglom.am: Don't link libglom
	statically on maemo. (#594355)

2009-09-17  Johannes Schmid  <jschmid@openismus.com>

	* glom/application.cc: offer_new_or_existing():
	Replace a TODO comment with g_assert_val_if_reached() because
	reaching this branch would mean that the dialog returned
	an unhandled response.

2009-09-17  Johannes Schmid  <jschmid@openismus.com>

	* regression_tests/test_python_module.cc:
	* Makefile_tests.am:
	Added a regression test for the loading of the python modules.
	Unfortunately this test doesn't trigger the crash bug that
	happens on exit() on the maemo platform.

2009-09-17  Johannes Schmid  <jschmid@openismus.com>

	* glom/main.cc:
	Really check if pygda module is available. A typo caused
	the check for the glom module twice while the gda module
	wasn't checked at all

2009-09-14  Johannes Schmid  <jschmid@openismus.com>

	* glom/dialog_import_csv.cc:
	Fixed maemo non-exception build of CsvParser refactoring.

2009-09-14  Murray Cumming  <murrayc@murrayc.com>

	Main Window: Correct (again) the order of Records/Found widgets.

	* glom/glom.glade: main_window: Put the Records:/Found: widgets in
	sub-hboxes, and change their order by hand in the .glade file because
	GtkBuilder and Glade do not seem to interpret the file in the same way.

1.11.2:

2009-09-14  Murray Cumming  <murrayc@murray.com>

	* glom/frame_glom.cc:
	* glom/utility_widgets/flowtable.cc: Fixed warnings-as-errors build
	problems with the latest gtkmm.

2009-09-11  Michael Hasselmann <michaelh@openismus.com>

	Refactoring Glom::Dialog_Import_CSV: first parser tests created

	* Makefile_tests.am, tests/import.sh,
	tests/import/test_parsing.cc: The first tests for the CsvParser
	are ready. Basic input is tested but no real world examples yet. Run with 'make
	check TESTS=tests/import.sh' to run tests with valgrind.

	Renamed regression_tests folder to tests

	* tests, Makefile_tests.am: Changed paths accordingly.

2009-09-09  Michael Hasselmann <michaelh@openismus.com>

	Refactoring Glom::Dialog_Import_CSV

	* ChangeLog, Makefile_glom.am, glom/dialog_import_csv.[h|cc],
	glom/import_csv.[h|cc], glom/dialog_import_csv_progress.cc: Moved the inlined
	Parser class from the Dialog_Import_CSV class to the new CsvParser class.  The
	CsvParser already handles the line scanning and encoding conversion but is
	supposed to take over the file reading responsibility as well.  In order to
	allow the Dialog_Import_CSV class to parse a scanned line into its tree model
	the parser emits a lineScanned signal, with the currently scanned line as
	parameter.
	Bug #588233.

2009-09-08  Johannes Schmid <jschmid@openismus.com>

	 Bug 594357 -  Maemo: sqlite behaves strange

	 * glom/utility_widgets/db_addel/glom_db_treemodel.cc:
	 DbTreeModel::create():
	 Create the correct DataAccessWrapper in both codepaths and not only
	 in the exception code path. That makes no difference for postgres but
	 is needed for sqlite.

2009-09-08  Johannes Schmid <jschmid@openismus.com>

	 Bug 594357 -  Maemo: sqlite behaves strange

	 * glom/utility_widgets/db_addel/glom_db_treemodel.cc:
	 DbTreeModel::create():
	 Create the correct DataAccessWrapper in both codepaths and not only
	 in the exception code path. That makes no difference for postgres but
	 is needed for sqlite.

2009-09-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/box_reports.[h|cc]:
	* glom/navigation/box_tables.[h|cc]: Comment out some save_to_document()
	methods in client-only mode.

2009-09-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc:
	* glom/frame_glom.cc: Fix tiny typos to fix the non-maemo build.

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

	Maemo: ifdef out useless menu code.

	* glom/application.[h|c]]: Ifdef out any menu-building code because
	it must be completely replaced by Hildon::AppMenu code on Maemo.
	* glom/mode_data/notebook_data.cc: Constructor: Hide the notebook
	tabs, in preparation for just showing the list, with the details in a
	separate window on Maemo.

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

	connection_request_password_and_attempt(): Fix a crash in client-only mode.

	* glom/frame_glom.[h|cc]: connection_request_password_and_attempt():
	Move some decision-making into handle_request_password_connection_error,
	to allow us to handle the no-exception API better, though this is
	clearer anyway, or would be without the ifdefs.

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

	* glom/application.cc: on_document_load(): Add a ! to really check
	for unsupported backends.

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

	* glom/application.cc: check_document_hosting_mode_is_supported():
	Correct and ifdef to an ifndef.

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

	Maemo: Use Hildon::FileChooserDialog for opening files.

	* glom/application.[h|cc]: Remove unused (and unnecessary since the new
	initial dialog) on_menu_file_open() and on_menu_file_close() overrides
	and ui_file_select_open_with_browse().
	* glom/dialog_existing_or_new.cc: on_select_clicked(): Use
	Hildon::FileChooserDialog on Maemo.
	* glom/bakery/app_withdoc_gtk.cc: Remove the uncommented undef of
	GLOM_ENABLE_MAEMO - no more nasty hacks please. Instead comment-out
	the set_menu() call with a TODO, leaving the rest of the maemo-specific
	code working.

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

	Check for unsupported hosting modes.

	* glom/application.[h|cc]:
	Added check_document_hosting_mode_is_supported() to warn the user
	if the build cannot use the hosting mode in the file, and call it from
	on_document_load().
	* glom/libglom/document/bakery/document.cc: load(), load_from_data():
	Call set_is_new(false) so we can check for this in
	App/View::on_document_load(), to avoid complaining about an unused
	default hosting mode.

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

	* glom/application.cc: offer_new_or_existing(): In the client-only build,
	actually handle the enum for opening an existing file in client mode.

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

	offer_new_or_existing(): Add Gtk::Builder error handling .

	* glom/application.cc: offer_new_or_existing(): Add error handling to
	show how GtkBuilder complains about Atk objects in .glade files on
	Maemo, and actually fails.

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

	* glom/print_layout/canvas_print_layout.cc:
	* glom/utility_widgets/imageglom.cc: Fix the build when -fno-exceptions
	is used.

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

	Added dlopen test of the python library.

	* glom/libglom/test_connectionpool.cc:
	* glom/libglom/test_document.cc: Fixed the build without exceptions.
	* Makefile_tests.am: Added test_load_python_library, using dlopen()
	to show the numpunct linker error (bug #594142) without actually using
	python.

2009-09-04  Daniel Elstner  <daniel.kitta@gmail.com>

	Do not try to catch non-existing MetaStructError

	* glom/base_db.cc (Base_DB::get_fields_for_table_from_database):
	For now, catch Glib::Error instead of Gnome::Gda::MetaStructError,
	which does not exist.

2009-09-04  Murray Cumming  <murrayc@murrayc.com>

	Avoid compiler warnings.

	* configure.ac: Add a comment about using the PYTHON environment
	variable to specify the python version.
	* glom/dialog_existing_or_new.cc:
	* glom/dialog_import_csv_progress.cc:
	* glom/utility_widgets/canvas/canvas_group_resizable.cc: Avoid some
	compiler warnings, mostly about missing returns in unlikely
	situations.

2009-09-04  Murray Cumming  <murrayc@murrayc.com>

	Mention the failed python module name on stdcerr.

	* glom/python_embed/glom_python.cc: glom_python_module_is_available(),
	gda_python_module_is_available(): Output a hint to the command-line too,
	in case maemo crashes when showing UI as mine does at the moment,
	and to mention the exact python module name that failed.

2009-09-04  Murray Cumming  <murrayc@murrayc.com>

	Fix the client-only non-maemo build on maemo.

	* configure.ac: Correct the AS_IF() calls so that we really do not
	need iso-codes in client-only mode.
	* glom/print_layout/canvas_layout_item.cc:
	* glom/print_layout/canvas_print_layout.cc:
	* glom/printoperation_printlayout.cc: Fix the build without
	exceptions, without properties and without default signal handlers,
	with ifdefs.

	* glom/base_db.cc: get_fields_for_table_from_database(): Actually add
	a no-exceptions ifdef for the use of Gda::MetaStruct::complement()
	instead of just ifdefing it out for Maemo.
	* glom/mode_data/notebook_data.cc:
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/entryglom.cc:
	* glom/utility_widgets/imageglom.cc:
	Likewise, ifdef the use of get_accessible on GTKMM_ATKMM_ENABLED instead
	of GLOM_ENABLE_MAEMO, to fix the client-only non-maemo build on Maemo.
	Again, please stop abusing the MAEMO ifdef for hacks without even a TODO.

2009-09-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.h:
	Removed unnecessary GLOM_ENABLE_CLIENT_ONLY ifndef.

2009-09-04  Murray Cumming  <murrayc@murrayc.com>

	Moved more design-only classes to glom/mode_design/

	* glom/libglom/data_structure/iso_codes.[h|cc]:
 	* glom/utility_widgets/comboentry_currency.cc
	* glom/mode_design/translation/:
	Moved to glom/mode_design/.
	* glom/Makefile_glom.am, *.[h|cc]:
	* po/POTFILES.in: Adapted.
	* configure.ac: Make use of iso-codes dependent on client-only, not
	maemo, because that actually makes sense.

1.11.1:

2009-09-03  Murray Cumming  <murrayc@murrayc.com>

	* Makefile_tests.am: Fixed a tiny typo to fix the tests build.

2009-09-03  Murray Cumming  <murrayc@murrayc.com>

	Move some non-layout print_layout code back out of mode_design

	* glom/mode_design/print_layouts/canvas_layout_item.[h|cc]:
	* glom/mode_design/print_layouts/canvas_print_layout.[h|cc]:
	Moved to glom/print_layout/, because they are used by client-only mode
	too.
	* glom/Makefile_glom.am, *.[h|cc]: Adapted.
	* po/POTFILES.in: Update for moved files.

2009-09-03  Murray Cumming  <murrayc@murrayc.com>

	Moved many developer-mode files into glom/mode_design/ now that our
	non-recursive build allows that without linker errors.

	* glom/combobox_fields.[h|cc]:
	* glom/combobox_relationship.[h|cc]:
	* glom/layout_item_dialogs/:
	* glom/mode_data/dialog_choose_field.[h|cc]:
	* glom/mode_data/dialog_choose_relationship.[h|cc]:
	* glom/mode_data/dialog_layout*.[h|cc]:
	* glom/mode_data/treestore_layout.[h|cc]:
	* glom/layout_item_dialogs/:
	Moved to glom/mode_design/layout/
	* glom/reports/report_builder.[h|cc]: Moved to glom/
	* glom/reports/dialog_layout_report.[h|cc]"
	* glom/reports/treestore_report_layout.[h|cc]:
	Moved to glom/mode_design/report_layout/
	* glom/database_preferences.[h|cc]:
	* glom/relationships_overview/: Moved to
	glom/mode_design/
	* glom/glom_developer.glade:
	* glom/dialog_new_self_hosted_connection.[h|cc]:Rename to
	glom/mode_design/dialog_initial_password.[h|cc], renaming the class too,
	because that's what this is now.
	* glom/utility_widgets/dialog_layoutitem_properties.[h|cc]: Removed
	this unused class.
	* glom/Makefile_glom.am, *.[h|cc]: Adapted.

2009-09-03  Murray Cumming  <murrayc@murrayc.com>

	libglom: Avoid client-only build changes: partial recommit of revert.

	* glom/libglom/appstate.cc:
	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool_backends/backend.h:
	* glom/libglom/connectionpool_backends/postgres.h:
	* glom/libglom/connectionpool_backends/postgres_central.h:
	* glom/libglom/connectionpool_backends/postgres_self.h:
	* glom/libglom/connectionpool_backends/sqlite.h:
	* glom/libglom/document/document.h: Remove mention of
	GLOM_ENABLE_CLIENT_ONLY from comments because we no longer use it in
	libglom.
	* glom/libglom/connectionpool_backends/postgres.cc: attempt_connect():
	Do not use Gda::CONNECTION_OPTIONS_READ_ONLY just because exceptions
	are disabled in the build. Please stop using vaguely-related ifdefs
	to hack changes in. In this case it would be GLOM_ENABLE_CLIENT_ONLY,
	but we don't want that option in libglom anymore.

2009-09-01  David King  <davidk@openismus.com>

	* glom/glom.glade: Fix an interesting warning, where the quickfind
	Gtk::Entry was described in the glade file as having focus, even
	though it was set to be not visible, and therefore not realized.

2009-09-01  David King  <davidk@openismus.com>

	* glom/dialog_existing_or_new.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc: Use Gtk::StockID
	constructor with builtin stock items so that GTK+ warnings are not
	triggered.

2009-09-01  Johannes Schmid  <jschmid@openismus.com>

	* glom/base_db.cc: Fixed small build problem with disabled exceptions

2009-09-01  Johannes Schmid  <jschmid@openismus.com>

	* glom/libglom/connectionpool_backends/postgres.cc:
	Also use SQL_IDENTIFIERS_CASE_SENSITIVE on maemo
	* glom/base_db.cc:
	enable the use gda_meta_store_sql_identifier_quote() on maemo

	These were hacks used before libgda 4.0.4 was available on maemo

2009-08-31  David King  <davidk@openismus.com>

	Revert "Really never use config.h in libglom."

	This reverts commit 8d73f2051fb624e145505b3587a12d89ed3c8326.

	The change gave no benefits, but did break any project that used libglom
	and autoheader.

2009-08-31  Johannes Schmid  <jschmid@openismus.com>

	* Makefile_test.am: Fixed make dist (probably automake-1.11 is more
	clever but it does not build with automake-1.10 because it assumes
	that the test programs have sources in form of xxx.c and not xxx.cc

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

	Avoid GTK+ warnings.

	* glom/glom_developer.glade: Set GtkAdjustment page_size to 0 to
	avoid new GTK+ warnings.
	* glom/layout_item_dialogs/dialog_field_layout.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/print_layouts/dialog_text_formatting.cc:
	More nasty workarounds for GtkBuilder bug #575714, which is still not
	fixed.

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

	Remove a nasty hack that would become a runtime bug.

	* glom/libglom/connectionpool_backends/sqlite.cc: Revert the previous
	hack by Johannes, which misused GLIBMM_EXCEPTIONS_ENABLE to
	avoid use of CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE. We will
	just update libgdamm on Maemo Fremantle instead.

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

	Really never use config.h in libglom.

	* glom/libglom/*.cc: Remove some remaining includes of config.h
	instead of libglom_config.h.
	* glom/libglom/libglom_config.h.in: Add GETTEXT_PACKAGE,
	PACKAGE_TARNAME, though I suspect that libglom requires different
	build stuff for translations.
	Added POSTGRES_UTILS_PATH and EXEEXT.

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

	Update NEWS and increase version.

	* NEWS:
	* configure.ac: Update in anticipation of a release.
	* regression_tests/test_signal_reemit.cc: Avoid an unused parameter
	warning.

2009-08-27  Johannes Schmid <jschmid@openismus.com>

	* glom/libglom/connectionpool_backends/sqlite.c:
	Fixed build issues on maemo platform

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

	Fix a time parsing regression.

	* glom/libglom/libglom_config.h.in: Moved HAVE_STRPTIME here from
	config.h (which should maybe not be generated by autoheader),
	to the test_parsing_time regression.
	* glom/libglom/data_structure/iso_codes.cc: Include libglom_config.h
	instead of config.h, after moving ISO_CODES_PREFIX there.

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

	Tests: Correct the return values.

	* regression_tests/test_parsing_time.cc:
	* regression_tests/test_signal_reemit.cc: Return EXIT_SUCCESS or
	EXIT_FAILURE properly.

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

	* glom/base_db.cc: remove_quotes(): Implement this simply, just removing
	start and end quotes. However, I do not think this should be
	necessary:
	http://bugzilla.gnome.org/show_bug.cgi?id=593154

2009-08-25  Murray Cumming  <murrayc@murrayc.com>

	Comment out use of gda_sql_identifier_remove_quotes().

	* glom/base_db.cc: remove_quotes(): Comment out use of
	gda_sql_identifier_remove_quotes() with a stdcerr warning because
	it is deprecated and I get a weird undefined reference error and we
	need to change how we use this anyway. To fix the build.

2009-08-25  Johannes Schmid <jschmid@openismus.com>

	Fixed remaing maemo build problems

	* autogen.sh: Don't hardcode automake-1.10
	* glom/application.cc:
	* glom/base_db.cc:
	* glom/dialog_invalid_data.cc:
	* glom/filechooser_export.cc:
	* glom/glade_utils.cc:
	* glom/glade_utils.h:
	* glom/main.cc:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/imageglom:
	Fixed error handling of Gtk::Builder (change in gtkmm 2.14)

	* glom/mode_data/flowtablewithfields.cc:
	* glom/mode_data/flowtablewithfields.h:
	Fixed vfuncs problem

2009-08-21  Daniel Elstner  <danielk@openismus.com>

	Do not use .pyd extension on non-Windows systems

	* Makefile.am (pymod_ldflags): Set variable conditionally and use
	the "-shrext .pyd" option only on Windows hosts.

2009-08-21  Michael Hasselmann  <michaelh@openismus.com>

	* glom/libglom/connectionpool_backends/sqlite.cc: Fix typos to fix the build.
	Bug #592576

2009-08-21  Murray Cumming  <murrayc@murrayc.com>

	Document::get/set_connection_user(): Don't save this in the document.

	* glom/libglom/document/document.[h|cc]: get/set_connection_user():
	Document these as not being saved in the document, because it makes no sense
	to save a single user there, because Glom is a multi-user system.
	* glom/dialog_connection.cc: load_after(), save_before(): Don't save the user
	in the document.

2009-08-19  David King  <davidk@openismus.com>

	* glom.am:
	* libegg.am:
	* libglom.am:
	* tests.am: Remove unused .am files.
	* glom/libglom/test_document_with_layout.cc: Remove unused file,
	identical to glom/libglom/test_document.cc.
	* ChangeLog: Fix some formatting.

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

	Rename included .am files.

	* *.am: Rename to Makefile_*.am so they are grouped together.
	* Makefile.am: Include the new filenames.

2009-07-31  Johannes Schmid <jschmid@openismus.com>

	* configure.ac: Add dependency on hildon-fmmm

	* glom/application.cc:
	* glom/utils_ui.cc: Comment out most hildon stuff for now

	* glom/bakery/app_withdoc.cc:
	* glom/bakery/app_withdoc_gtk.cc:
	* glom/xsl_utils.cc:
	Fix Gio exception handling

	* glom/base_db.cc:
	* glom/base_db_table_data.cc:
	* glom/dialog_existing_or_new.cc:
	* glom/dialog_import_csv.cc:
	* glom/dialog_invalid_data.cc:
	* glom/filechooser_export:
	* glom/glom_privs.cc:
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_portal.cc:
	* glom/mode_data/notebook_data.cc:
	* glom/reports/report_builder.cc:
	Fixed Gda exception handling, most notable and often get_value_at()

	* glom/glade_utils.h
	* glom/glade_utils.cc: Fixed GtkBuilder usage (though this seems to be a bug
	in Gtkmm)

	* glom/mode_data/flowtablewithfields.h:
	* glom/notebook_glom.cc:
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/entryglom.cc:
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/placeholder-glom.cc:
	* glom/utility_widgets/placeholder-glom.h:
	* glom/utility_widgets/dialog_image_progress.cc:
	Use signals instead of virtual methods, disable accesibility on maemo

	* glom/utility_widgets/canvas/*.cc: Use get/set_property() instead of the
	direct property access when properties are disabled

	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/datawidget.cc:
	* glom/utiltiy_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:

2009-07-30  Johannes Schmid <jschmid@openismus.com>

	* autogen.sh: Use automake-1.10 explicitly

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool_backends/postgres.cc:
	* glom/libglom/data_structure/field.cc:
	* glom/libglom/data_structure/fieldtypes.cc:
	* glom/libglom/document/bakery/document.cc:
	* glom/libglom/python_embed/py_glom_relatedrecord.cc:
	* glom/libglom/spawn_with_feedback.cc:
	* glom/libglom/utils.cc:
	Fix exception and client-only related problems on maemo platform. Also
	fixed some TODOs that were related.

	In sum this allows to build glom master on maemo fremantle.

2009-07-28  Daniel Elstner  <danielk@openismus.com>

	Build and run tests on make check

	* Makefile.am (AM_DEFAULT_SOURCE_EXT): Make use of the Automake default
	_SOURCES feature for building single-source-file programs.
	(noinst_PROGRAMS): Move to tests.am.
	* tests.am (check_PROGRAMS): List all test executables here, so they
	are only built on make check.
	(TESTS): List unit test programs from the regression_tests/ directory.

2009-07-28  Daniel Elstner  <danielk@openismus.com>

	Use deprecated libtool macros for Maemo's sake

	* configure.ac (LT_PREREQ), (LT_INIT): Comment-out.
	(AC_PROG_LIBTOOL): Use old-style and deprecated M4 macro to initialize
	libtool because the Maemo development environment still ships with the
	ancient libtool 1.4.
	(AC_DISABLE_STATIC), (AC_LIBTOOL_WIN32_DLL): Call old-style macros to
	set libtool options, instead of passing flag arguments to LT_INIT().

2009-07-27  Murray Cumming  <murrayc@murrayc.com>

	ldtp tests: Correct the English in the error messages.

	* ldtp/common.py:
	* ldtp/database-creation/create-db.py:
	* ldtp/fields-edit/fields-edit.py: Correct the English in the error messages.

2009-07-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/dialog_image_progress.cc: on_stream_read(): Add casts
	to avoid compiler warnings, to fix distcheck.

2009-07-27  Murray Cumming  <murrayc@murrayc.com>

	Add more delay so that self-hosting does not fail sometimes.

	* glom/libglom/spawn_with_feedback.cc:
	execute_command_line_and_wait_until_second_command_returns_success(): Wait
	for extra 8 seconds instead of 3, so that postgresql startup has really
	finished. The delay was not enough since I removed the debug output, which
	was probably providing extra delay.
	This is unpleasant.

2009-07-25  Daniel Elstner  <danielk@openismus.com>

	List auto-generated files in MAINTAINERCLEANFILES

	* Makefile.am (MAINTAINERCLEANFILES): Clean up the macros/*.m4 files
	installed by autogen.sh, as well as the eggmarshalers.[ch] files.

2009-07-25  Daniel Elstner  <danielk@openismus.com>

	Pass --automake option to gnome-doc-prepare

	* autogen.sh: Invoke gnome-doc-prepare with the --automake option to
	tell it that Automake will take care of installing its macro files.

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

	* glom/base_db.cc: get_fields_for_table_from_database():
	Use gda_meta_store_sql_identifier_quote() as mentioned in bug #589607
	to maybe make this work with uppercase in the table name.

2009-07-24  Daniel Elstner  <danielk@openismus.com>

	Assign copyright of my work to Openismus GmbH

	* configure.ac: Reassign the copyright which I had assigned to myself
	temporarily to Openismus GmbH instead, as I did the work in my position
	as an employee.
	* *.am: ditto,
	* macros/mm-python.m4: ditto.

2009-07-24  Daniel Elstner  <danielk@openismus.com>

	Split Makefile.am into logically separate parts

	* glom.am: New file for building the glom binary itself.
	* libglom.am: New file for building the libglom library.
	* libegg.am: New file for building the libegg static library.
	* tests.am: New file for building the test programs.
	* Makefile.am: Move logical chunks into the separate files listed
	above, and pull them in as Automake include files.

2009-07-24  Daniel Elstner  <danielk@openismus.com>

	Invoke gnome-doc-common from autogen.sh

	* autogen.sh: Execute "gnome-doc-common --copy" to install the files
	omf.make and xmldocs.make into the source tree.

2009-07-24  Daniel Elstner  <danielk@openismus.com>

	Use G_GSIZE_FORMAT instead of a cast

	* glom/libglom/python_embed/pygdavalue_conversions.c: Change format
	specifier for GType to "%" G_GSIZE_FORMAT and remove the explicit cast
	again.  I forgot that this is C code, so GType will always be gsize --
	at least with recent versions of GLib.

2009-07-24  Daniel Elstner  <danielk@openismus.com>

	Use format "%lu" for GType and add cast

	* glom/libglom/python_embed/pygdavalue_conversions.c: Change format
	specifier in g_warning() message back from "%u" to "%lu", and add an
	explicit cast to unsigned long.  Looks like GLib silently changed the
	type of GType from gulong to gsize, except when using a C++ compiler
	with a 64 bit target.  (Yes, really.)

2009-07-24  Daniel Elstner  <danielk@openismus.com>

	Suppress warning for missing field initializers

	* configure.ac (GLOM_WXXFLAGS): Add -Wno-missing-field-initializers to
	the warning options at level max or higher, so that the Python module
	code will build with both Python 2.5 and Python 2.6 without producing
	warnings.

2009-07-24  Murray Cumming  <murrayc@murrayc.com>

	Catch unknown command-line options.

	* glom/main.cc: Put try/catch around the Gtk::Main instantiation
	because I noticed that it throws an exception if you provide an
	unknown option.

2009-07-24  Murray Cumming  <murrayc@murrayc.com>

	Use CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE.

	* glom/libglom/connectionpool_backends/postgres.cc:
	* glom/libglom/connectionpool_backends/sqlite.cc: When calling
	Gda::Connection::open_from_string(), use the new
	CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE option so the libgda
	API really does what we mean without needing any weird quoting.

2009-07-23  Murray Cumming  <murrayc@murrayc.com>

	Fix the build with Python 2.5, bringing back the warnings for others.

	* glom/libglom/python_embed/py_glom_record.cc:
	* glom/libglom/python_embed/py_glom_related.cc:
	* glom/libglom/python_embed/py_glom_relatedrecord.cc:
	* glom/libglom/python_embed/pygdavalue_conversions.c: Remove the extra
	struct field initialization to fix the build with Python 2.5.

2009-07-23  Daniel Elstner  <danielk@openismus.com>

	Make libegg object files depend on eggmarshalers

	* Makefile.am ($(*libegg*_a_OBJECTS)): Make all object files of
	libeggutil.a and libeggtoolpalette.a depend on the generated source
	files eggmarshalers.[ch].  This ensures that the marshaler files are
	generated before any of the libegg objects are compiled, but avoids
	having to resort to BUILT_SOURCES for that purpose.
	(*_libeggtoolpalette_a_LIBADD): Remove dependency on libeggutil.a
	again, as it is not required for linking the static library itself.

2009-07-23  Daniel Elstner  <danielk@openismus.com>

	* Makefile.am (*_libeggtoolpalette_a_LIBADD): List libeggutil.a as
	dependency.

2009-07-23  Daniel Elstner  <danielk@openismus.com>

	* glom/bakery/app_withdoc.cc: Fix build with -Werror.
	* glom/dialog_import_csv.cc: ditto,
	* glom/libglom/python_embed/py_glom_record.cc: ditto,
	* glom/libglom/python_embed/py_glom_related.cc: ditto,
	* glom/libglom/python_embed/py_glom_relatedrecord.cc: ditto,
	* glom/libglom/python_embed/pygdavalue_conversions.c: ditto,
	* glom/mode_design/fields/dialog_fielddefinition.cc: ditto,
	* glom/utility_widgets/dialog_image_progress.cc: ditto.

2009-07-23  Daniel Elstner  <danielk@openismus.com>

	Switch to non-recursive build process

	* macros/mm-pkg.m4: New file, defining the MM_PKG_CONFIG_SUBST macro.
	* macros/mm-python.m4: New file, defining the MM_CHECK_MODULE_PYTHON
	macro to replace the old and messy AM_CHECK_PYTHON_HEADERS.
	* acinclude.m4: Remove file which defined AM_CHECK_PYTHON_HEADERS.

	* Makefile.am: Merge the contents of the Makefile.am files from all
	subdirectories into a single top-level Makefile.am, with the exception
	of docs/user-guide/Makefile.am.  Add the full subdirectory prefix to
	all listed files and change the Automake variable names accordingly.
	Get rid of the intermediate static libraries previously created for
	each source subdirectory, and list the source files directly in the
	toplevel target's SOURCES variable.  Overall, refactor and modernize
	the build rules and organization.
	* **/Makefile.am: Except for docs/user-guide/Makefile.am, remove the
	Makefile.am files recursively from all subdirectories.

	* config.h.in: Remove file, and use autoheader to generate it.
	* autogen.sh: Replace with a modern minimalistic script which lets
	autoreconf do the bulk of the work.
	* configure.ac: Massive refactoring.  Adapt to the new non-recursive
	build organization.  Modernize the M4 and shell code, and make use of
	newer Autoconf and Automake constructs to simplify many checks.  Also
	make minor corrections to a number of tests and definitions.

	* glom/application.cc: Remove the need for GLOM_ICON_DIR by setting
	the window icon by name instead of loading the image file directly.
	Use PACKAGE_VERSION in place of VERSION.
	* glom/dialog_existing_or_new.cc: Use a subdirectory of GLOM_DOCDIR
	in place of GLOM_EXAMPLES_DIR.  Remove GLOM_EXAMPLES_DIR_ALTERNATIVE.

	* glom/utils_ui.cc: Replace DATADIR by GLOM_DATADIR.
	* glom/libglom/connectionpool.cc: Remove GLOM_SAVE_DATADIR hack, which
	is not necessary anymore as DATADIR is not globally defined anymore.
	* glom/libglom/connectionpool_backends/postgres_self.cc: ditto,
	* glom/libglom/spawn_with_feedback.cc: ditto,
	* glom/main.cc: ditto. Also replace LOCALEDIR by GLOM_LOCALEDIR, and
	output PACKAGE_STRING instead of VERSION in response to the --version
	command-line option.  Replace PACKAGE and VERSION by their modern
	Automake equivalents.
	* glom/xsl_utils.cc: Remove GLOM_SAVE_DATADIR hack, and replace
	GLOM_XSLTDIR with a subdirectory of GLOM_PKGDATADIR.

	* glom/mode_data/box_data_calendar_related.cc: Replace GLOM_GLADEDIR
	by a combination of GLOM_PKGDATADIR and a subdirectory name.
	* glom/mode_design/print_layouts/print_layout_toolbar_button.cc: Use
	a subdirectory of GLOM_PKGDATADIR in place of GLOM_ICON_DIR.
	* glom/utility_widgets/layouttoolbar.cc: ditto,
	* glom/utility_widgets/layouttoolbarbutton.cc: ditto.

	* glom/python_embed/glom_python.cc: Include generated config.h for the
	definition of GLOM_ABI_VERSION_UNDERLINED.
	* glom/python_embed/python_module/py_glom_module.cc: ditto.

2009-07-22  David King  <davidk@openismus.com>

	* glom/libglom/glom-1.0.pc.in: Add libxml++ dependency, needed for
	Bakery headers.

2009-07-23  David King  <davidk@openismus.com>

	* glom/libglom/init.cc: Check that GThread is supported before calling
	Glib::thread_init(). This fixes a crash, as otherwise g_thread_init()
	can be called twice.

2009-07-22  Johannes Schmid  <jschmid@openismus.com>

	* configure.ac: Fixed typo with libepc

2009-07-21  David King  <davidk@openismus.com>

	* glom/libglom/glom-1.0.pc.in:
	* glom/libglom/*/Makefile.am: Use GLOM_ABI_VERSION in place of "1.0" so
	that installed headers go into the correct, ABI-specific directory.

2009-07-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/glom-1.0.pc.in: Remove the bakery dependency, because no part
	of Glom now depends on the bakery shared library.
	I suspect that libglom should depend on python somehow, but we will see.

2009-07-17  Murray Cumming  <murrayc@murrayc.com>

	Use an xmlns ID for the MIME-type registration.

	* glom/libglom/document/bakery/document_xml.[h|cc]: set_dtd_root_node_name():
	Take an optional xmlns ID and write this in the document.
	* glom/libglom/document/document.cc: Constructor: Specify a
	http://glom.org/glom_document xmlns ID. I don't think this needs to exist.
	This will make it easier for the MIME-type system to detect the file's MIME
	type.
	* glom.xml: (MIME-type detection rules): Add a root-XML rule, that checks
	for the xmlns and the root node name. We keep the string check too for
	legacy.

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

	Export: Don't open the format dialog behind the FileChooser dialog.

	* glom/frame_glom.cc: on_menu_file_export(): Set the FileChooser dialog as
	transient so that the other dialog (opened from the FileChooser) is not
	behind the FileChooser.
	Ubuntu Launchpad bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/397409
	(elmergato)

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

	Really save field changes again.

	* glom/libglom/document/document_glom.cc: set_table_fields():
	Avoid the broken attempt at optimization, so that field changes are always
	saved, for instance when changing them via the Field Definition dialog.
	Ubuntu Launchpad bug
	https://bugs.launchpad.net/ubuntu/+source/glom/+bug/394507
	(elmergato)

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

	* glom/dialog_import_csv.cc: advance_field(): Do not skip characters after
	the ".

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

	* glom/dialog_import_csv.cc: on_idle_parse(): Ignore newlines in quotes when
	dividing the input into "lines" to give to handle_line().

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

	Import: Handle "" as ". Fix a crash.

	* glom/dialog_import_csv.[h|cc]: Use typedefs to simplify code.
	advance_field(): Handle "" (escaped ") inside quotes.
	field_data_func(): Avoid a crash if not enough data was found.

2009-07-09  Murray Cumming  <murrayc@murrayc.com>

	Import: " is the only quote character, as per the CSV RFC.

	* glom/dialog_import_csv.cc: advance_field(): Parse only " as
	start/end quotes, not ', as per the CSV RFC.

	Part of Ubuntu bug
	https://bugs.launchpad.net/ubuntu/+source/glom/+bug/394894
	(elmergato)

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

	Correct the export to use the CSV format as per the RFC "specification".

	* glom/frame_glom.cc: export_data_to_stream(): For text fields, add
	" as per the CSV RFC.
	* glom/libglom/data_structure/field.cc: to_file_format(): Escape
	" as "". Note that we do not try to escape newlines. This is per the
	CSV RFC.
	* glom/libglom/utils.cc: string_replace(): In the loop, do not check
	what has already been processed, to avoid an infinite loop.

	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/394894
	(elmergato)

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

	Catch libgda meta-store exceptions.

	* glom/base_db.cc: get_table_names_from_database():
	* glom/libglom/connectionpool.cc: connect(): Added try/catch around
	calls to Gda::Connection::update_meta_store_*() because they now
	throw a MetaStoreError exception, though we do not know why yet.

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

	* glom/dialog_existing_or_new.h: #include config.h to avoid a crash
	with the client-only build due to ABI code-size confusion.

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

	* glom/application.cc: init_menus_file(): Initialize
	m_toggleaction_network_shared to avoid a crash.

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

	* glom/application.cc:
	* glom/bakery/app_withdoc_gtk.[h|cc]: Remove the toolbar widget because
	we hide it anyway.

2009-07-05  Murray Cumming  <murrayc@murrayc-x61>

	* glom/application.cc: update_network_shared_ui(): Un-ifndef this for
	client-only.

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

	* glom/*.[h|cc]: Move some ifndefs around to fix the client-only build.

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

	* glom/libglom/document/document.cc: load_after(): Remove old code
	to check for developer mode in client-only builds.

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

	Fix loading of the versioned python module.

	* configure.ac:
	* glom/Makefile.am:
	* glom/python_embed/Makefile.am:
	* glom/python_embed/glom_python.cc:
	* glom/python_embed/python_module/Makefile.am:
	* glom/python_embed/python_module/py_glom_module.cc:
	* glom/python_embed/python_module/py_glom_module.h: Use glom_1_12
	instead of glom-1.12 because - and . are not valid in python module
	names. I wish I knew of any standard way to do parallel install of
	different versions of python modules.

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

	libglom: Remove use of GLOM_ENABLE_MAEMO because it is about UI.

	* glom/libglom/utils.cc:
	* glom/libglom/connectionpool.cc: Remove use of GLOM_ENABLE_MAEMO so
	because there should be no UI-specific login in libglom.
	* glom/libglom/document/document.[h|cc]: Remove
	get_active_layout_platform() because we no longer use GLOM_ENABLE_MAEMO.
	* glom/base_db.[h|cc]: Add a get_active_layout_platform(document)
	here instead.
	* glom/libglom/libglom_config.h.in: Moved GLOM_ENABLE_MAEMO to
	config.h.in because it is now only used in the app, not in libglom.

	* glom/base_db_table_data.cc:
	* glom/frame_glom.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/notebook_data.cc:
	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/dialog_choose_id.cc:
	* glom/utils_ui.h:
	* glom/xsl_utils.cc: Adapted, using config.h instead of libglom_config.h

2009-07-04  Murray Cumming  <murrayc@murrayc-x61>

	libglom: Always enable developer-mode (!client-only) API.

	* glom/libglom/*.[h|cc]: Remove use of ENABLE_CLIENT_ONLY ifdefs,
	so we can allow parallel install of full and
	client-only versions.

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

	Remove ifdefs from libglom to allow parallel install of sqlite- and
	PostgreSQL-using versions of Glom.

	* glom/libglom/connectionpool_backends/postgres.h:
	* glom/libglom/connectionpool_backends/postgres_central.h:
	* glom/libglom/connectionpool_backends/sqlite.h:
	* glom/libglom/document/document.[h|cc]:
	* glom/libglom/test_connectionpool.cc: Remove ifdefs that remove
	PostgreSQL or Sqlite API so that libglom always offers all features and
	always has the same ABI (ignoring no-exceptions/no-vfuncs
	alternative-glibmm-api versions). This will allow us to parallel install
	the full and client-only versions.

	* glom/libglom/libglom_config.h.in: Move GLOM_ENABLE_POSTGRESQL/SQLITE
	config.h.in because we now only use it in the application, not in libglom.
	* glom/application.cc:
	* glom/dialog_connection.cc:
	* glom/frame_glom.cc:
	* glom/utility_widgets/filechooserdialog_saveextras.cc:
	* glom/utility_widgets/filechooserdialog_saveextras.h:
	Include config.h to get these
	definitions.

2009-07-03  Murray Cumming  <murrayc@murrayc.com>

	Allow parallel installs of libglom major versions.

	* configure.ac: Define GLOM_ABI_VERSION as 1.12.
	* glom/Makefile.am:
	* glom/libglom/Makefile.am:
        * glom/python_embed/Makefile.am
	* glom/python_embed/python_module/Makefile.am:
	* regression_tests/Makefile.am: Add a 1.12 suffix to
	the libglom shared library name and the glom python module name.
	This must be changed in several places when the ABI version changes
	because we cannot use a variable in most of these places.
	Define it also as a macro for the .cc files, so Glom can import the
	correct version of the Glom python module
	- for instance, import glom-1.12.
	* glom/python_embed/glom_python.cc:
	* glom/python_embed/python_module/py_glom_module.cc: Import the
	correct version in python.

2009-07-03  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac:
	* glom/Makefile.am:
	* glom/libglom/Makefile.am:
	* glom/libglom/python_embed/Makefile.am:
	* glom/python_embed/glom_python.cc:
	* glom/python_embed/python_module/Makefile.am:
	* glom/python_embed/python_module/py_glom_module.cc:
	* ldtp/database-creation/create-db.py:
	* regression_tests/Makefile.am:

2009-09-30  Armin Burgmeier  <armin@openismus.com>

	* ldtp/fields-edit/fields-edit.py: Added a new test which tests adding
	a new field to an existing table. More operations to test, such as
	changing and removing existing fields, can be added later.

	* ldtp/fields-edit/postgres-central.xml:
	* ldtp/fields-edit/postgres-self.xml:
	* ldtp/fields-edit/sqlite.xml: XML Data files for the new test.

	* ldtp/test.xml: Added it to the test suite, so that it can be run
	with ldtprunner.

2009-06-28  Armin Burgmeier  <armin@openismus.com>

	* ldtp/database-templates/SQLite:
	* ldtp/database-templates/PostgresCentral: Added database templates
	for two of the three backends. These can be copied and then opened to
	have a database available for LDTP tests to test.

	* ldtp/common.py: Added create_test_database and delete_test_database
	functions which create or remove a database to test, from such a
	template database, respectively.

	* ldtp/database-creation/create-db.py: Use the delete_test_database
	function from common on cleanup, remove own delete_database function.

2009-06-30  Armin Burgmeier  <armin@openismus.com>

	* ldtp/database-creation/create-db.py: Changed the name of the created
	database table (for empty databases) to TestTable, so that we test
	that table names with capital letters work correctly.

2009-06-30  Armin Burgmeier  <armin@openismus.com>

	* glom/base_db.cc (get_fields_for_table_from_database): Make this work
	for table names which need quotation, and return unquoted field names.
	This fixes bug #587051.

2009-06-30  Murray Cumming  <murrayc@murrayc.com>

	get_table_names_from_database(): Remove quotes.

	* glom/base_db.cc: get_table_names_from_database(): Remove quotes when they
	are (sometimes) in the meta data. I complained on the gnome-db mailing list
	about us having to do this.

2009-06-29  Murray Cumming  <murrayc@murrayc.com>

	Allow many fields to be added to layouts (or the export format) at once.

	* glom/mode_data/dialog_choose_field.[h|cc]: Added get_fields_list() in
	addition to the existing get_field_list(), and allow multiple selection.
	* glom/base_db.[h|cc]: offer_field_list(): Rename to
	offer_field_list_select_one_field().
	Added offer_field_list() that returns a list of fields, allowing multiple
	selection.

	* *.[h|cc]: Adapted to use the appropriate function, allowing, for instance,
	the export dialog to use multiple selection to add many fields at once.

	Ubuntu Launchpad bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/393231
	(elmergato)

2009-06-29  Murray Cumming  <murrayc@murrayc.com>

	Export: Offer File overwrite confirmation.

	* glom/frame_glom.cc: on_menu_file_export():
	* glom/translation/window_translations.cc: on_button_export():
	Call Gtk::FileChooser::set_do_overwrite_confirmation() so the user is
	warned when overwriting a file.
	Ubuntu Launchpad bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/393229
	(elmergato)

2009-06-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/spawn_with_feedback.cc: ifdef out the debug output.

2009-06-29  Murray Cumming  <murrayc@murrayc.com>

	Reduce debug output.

	* glom/libglom/data_structure/glomconversions.[h|cc]:
	sanity_check_date_text_representation_uses_4_digit_years(): Make the debug
	output optional.
	* glom/main.cc: Added a --debug-date-check option, to avoid the debug out
	about 4-digit dates normally.

	* glom/dialog_existing_or_new.cc: list_examples_at_path(): Comment out debug
	output.
	* glom/libglom/connectionpool.cc: connect(): Comment out debug output that
	showed the (previously slow) meta update calls.

2009-06-28  Murray Cumming  <murrayc@murrayc.com>

	Print exception messages to stdout.

	* ldtp/database-creation/create-db.py: When catching the exception,
	print it to stdout, because it does not seem to appear in the log file.
	* ldtp/common.py: Corrected the English of some exception messages.

2009-06-28  Murray Cumming  <murrayc@murrayc.com>

	Fix an error check.

	* glom/xsl_utils.cc: transform_and_open(): Fix the check for a failed
	gtk_show_uri(), so we really check. Noticed while stealing this code
	for vidrot.

2009-06-27  Armin Burgmeier  <armin@openismus.com>

	* ldtp/database-creation/postgres-central-empty.xml:
	* ldtp/database-creation/postgres-self-empty.xml:
	* ldtp/database-creation/sqlite-empty.xml: Added missing files.

	* ldtp/database-creation/create-db.py: Allow passing the datafilename
	as an argument when the script is called directly, not by ldtprunner.

	* ldtp/README: Updated the section on how to execute a single test
	script.

2009-06-26  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/document/bakery/document.h: Document that failure_code
	should be >= 1, so that we can detect whether the document could not
	be opened because it couldn't be read from disk, or a custom error
	code was set.

	* glom/libglom/document/document.h: Set the value of
	LOAD_FAILURE_CODE_FILE_VERSION_TOO_NEW to 1, to honor the requirement
	explained above. This fixes showing the wrong error message when the
	document could not be loaded from disk.

2009-06-26  Armin Burgmeier  <armin@openismus.com>

	* glom/application.cc (existing_or_new_new): When the new database
	could be created successfully, then add the document to the recent
	files list.

2009-06-26  Armin Burgmeier  <armin@openismus.com>

	* glom/frame_glom.cc
	(connection_request_password_and_choose_new_database_name): Remember
	the port also for centrally hosted documents when a successful
	connection could be made.

	* ldtp/database-creation/create-db.py: For empty documents, call the
	initial table 'test_table', not 'TestTable', because of bug #587051.

2009-06-26  Armin Burgmeier  <armin@openismus.com>

	* glom/dialog_glom.h:
	* glom/dialog_glom.cc: Added an optional second parameter to the
	constructor, to specify a title name for the dialog.

	* glom/frame_glom.cc: Set the title of the tables dialog to "Tables",
	so that it can be accessed via LDTP.

	* glom/glom.glade: Also change the title of that dialog, even though
	it's not used, since only the window's child widget is loaded from the
	glade file.

	* glom/utility_widgets/adddel/adddel.h:
	* glom/utility_widgets/adddel/adddel.cc: Added a
	set_treeview_accessible_name() function, to set the accessible name of
	the AddDel's TreeView.

	* glom/navigation/box_tables.cc: Set an accessible name for the
	TreeView, to be able to access it via LDTP.

	* glom/utility_widgets/filechooserdialog_saveextras.cc: Set an
	accessible name for the database title text entry.

	* ldtp/common.py (select_backend): Added a dialog_title parameter, as
	the dialog has a different title when creating a new, empty document.
	(wait_for_database_open): Rely on the database title being 'Test', not
	'Small Business Example'.

	* ldtp/database-creation/create-db.py: Change the database title of
	the newly created database to 'Test'. Support creating new, empty
	documents, and reopen the document after it has been closed, to make
	sure the document has been saved correctly.

	* ldtp/database-creation/postgres-central-example.xml:
	* ldtp/database-creation/postgres-self-example.xml:
	* ldtp/database-creation/sqlite-example.xml: Moved from the files
	without -example, set the <example> tag to 1.

	* ldtp/database-creation/postgres-central-example.xml:
	* ldtp/database-creation/postgres-self-example.xml:
	* ldtp/database-creation/sqlite-example.xml: Same with <example> set
	to 0.

	* ldtp/test.xml: Added the three new files which create an empty
	document instead of creating one from the Small Business Example.

2009-06-24  Armin Burgmeier  <armin@openismus.com>

	* ldtp/common.py: Work around bug #586291, added a function to enter
	the connection credentials into the connection dialog if using a
	centrally hosted database. Added mapping of backend name to button
	texts in the database creation dialog.

	* ldtp/database-creation/postgres-central.xml:
	* ldtp/database-creation/postgres-self.xml:
	* ldtp/database-creation/sqlite.xml: Removed the button texts from
	the data XML files.

	* ldtp/database-creation/create-db.py: Generalized the script so that
	it also handles central hosting. Delete the newly created centrally
	hosted database at the end. This requires pygda from git for now.

	* ldtp/database-creation/create-central-db.py: Removed, as central
	hosting is also handled by create-db.py now.

2009-06-24  Armin Burgmeier  <armin@openismus.com>

	* glom/glom.glade: Added a title to the connection dialog window, and
	added accessible names for the entries, to be able to use them via
	LDTP.

	* ldtp/README: Describe how to set the login credentials required
	to test creating a centrally hosted database.

	* ldtp/common.py: Moved useful code from
	ldtp/database-creation/create-db.py into functions in this file, so
	other tests can use them, too.

	* ldtp/database-creation/create-db.py: Adapt accordingly.

	* ldtp/database-creation/create-central-db.py:
	* ldtp/database-creation/postgres-central.xml: Added a new test script
	and data XML which tests creating a centrally hosted database.

	* ldtp/test.xml: Added the new script file.

2009-06-24  Armin Burgmeier  <armin@openismus.com>

	* glom/application.cc (on_document_load): Only provide a known user
	name and password for self-hosted databases, and ask the user for the
	database password for centrally-hosted ones.

	* glom/frame_glom.cc (connection_request_password_and_attempt): Show
	the connection dialog for centrally hosted connections, and fix trying
	to login with the same (wrong) credentials all the time without giving
	the user a chance to correct them. This fixes bug #586684.

2009-06-22  Armin Burgmeier  <armin@openismus.com>

	* glom/application.cc (on_document_load): If we load an example file,
	set the connection port in the document to 0, and enable trying other
	ports, instead of using the (arbitrary) values from the example file.
	This allows trying out various standard ports for postgresql when
	centrally-hosting the document and fixed creating a centrally-hosted
	database from an example file.

	* glom/dialog_connection.cc (connect_to_server_with_connection): On a
	successful connection, set try other ports to false in the document,
	as we found a working port and don't need to try all the other ports
	next time.

	* glom/frame_glom.cc
	(connection_request_password_and_choose_new_database_name): When
	creating a centrally-hosted database, remember the user name in the
	document, to be able to connect to the database from the saved
	document later. Actually, we would also need to save the password to
	do this correctly, though I wonder whether it's a good idea to save
	the user's database password in the .glom file.

2009-06-22  Armin Burgmeier  <armin@openismus.com>

	* glom/frame_glom.cc:
	(connection_request_password_and_choose_new_database_name): Fixed a
	mistyped #ifdef, so that creating a centrally-hosted database does not
	lead to a crash.

2009-06-20  Armin Burgmeier  <armin@openismus.com>

	* ldtp/database-creation/create-db.py: Read the data what backend to
	use from the a data XML file, instead of as a function's argument.

	* ldtp/database-creation/self-hosted.py:
	* ldtp/database-creation/sqlite.py: So we don't need these anymore.

	* ldtp/database-creation/postgres-self.xml:
	* ldtp/database-creation/sqlite.xml: Instead, the data is specified in
	these data XML files.

	* ldtp/test.xml: Adapt accordingly.

2009-06-17  Armin Burgmeier  <armin@openismus.com>

	* ldtp/README: Added a README file explaining how to run the tests.

2009-06-17  Armin Burgmeier  <armin@openismus.com>

	* ldtp/common.py: Added a common function to launch glom and wait for
	its windows to appear into a new separate python script file.

	* ldtp/database-creation/create_db.py: Added a function to create a
	new database, with the backend to use as an argument. This allows to
	reuse the existing code to test other backends.

	* ldtp/database-creation/self-hosted.py: Adapted accordingly.

	* ldtp/database-creation/sqlite.py: Added a test file to check whether
	SQLite database creation works.

	* ldty/test.xml: Added the test to create an SQLite database.

2009-06-08  Armin Burgmeier  <armin@openismus.com>

	* ldtp/database-creation/self-hosted.py: Added a LDTP test script
	which checks creation of a new self-hosted database from the Small
	Business Example file.

	* ldtp/test.xml: Added an XML file for ldtprunner. Run "ldtprunner
	test.xml" to execute the test.

2009-06-08  Armin Burgmeier  <armin@openismus.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc: Added an accessible
	name for the TreeView.

	* glom/utility_widgets/imageglom.h:
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/entryglom.h:
	* glom/utility_widgets/entryglom.cc: Set an accessible name, based on
	the layout item's name.

2009-06-08  Armin Burgmeier  <armin@openismus.com>

	* glom/utility_widgets/layoutwidgetbase.cc: Initialize m_pLayoutItem
	in client only mode, to avoid an uninitialized pointer in that case.

2009-06-04  Murray Cumming  <murrayc@murrayc.com>

	Show a specific error message when the flie format is too new.

	* glom/libglom/document/bakery/document.[h|cc]:
	* glom/libglom/document/bakery/document_xml.[h|cc]: load(),
	load_after(): Take a int& failure_code output parameter to allow
	derived document classes to report a custom failure code.
	* glom/libglom/document/document.[h|cc]: load_after(): Return a
	custom failure_code for a too-new file version.
	* glom/bakery/app_withdoc.[h|cc]:
	Add a virtual ui_warning_load_failed(int failure_code) method that
	derived classes can override to respond to their own failure codes,
	with a generic default error message.
	open_document(), open_document_from_data(): Use the new method instead
	of hard-coding the error message.

	* glom/application.[h|cc]:
	open_browsed_document(), on_menu_developer_changelanguage(): Adapt.
	Add an override of ui_warning_load_failed() to show
	our custom error dialog in response to our custom failure code.
	* glom/libglom/test_document.cc: Apapted.

	Exceptions might be purer and need less code changes, but they would
	just be a container for an int failure code and it would be easier to
	not catch the error.
	This fixed bug #567102.

2009-06-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/layout/layoutitem_portal.cc:
	get_navigation_relationship_specific(): Remove unnecessary this-> to
	be consistent with the rest of the code.

2009-06-04  Murray Cumming  <murrayc@murrayc.com>

	Related records portal: Hide the row button when navigation is none.

	* glom/libglom/data_structure/layout/layoutitem_portal.h:
	Add documentation for get/set_navigation_relationship_specific(),
	get/set_navigation_type() and the enum.

	* glom/mode_data/box_data_list_related.cc: enable_buttons():
	Disable editing of details when the portal has NAVIGATION_NONE.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	construct_specified_columns(): Set the button column visibility
	according to the member variable set in set_allow_view_details(),
	because the button column often does not exist when that is actually
	called.
	This completes bug #574360.

2009-06-04  Murray Cumming  <murrayc@murrayc.com>

	Update the DTD for portal navigation and save space in XML.

	* glom/glom_document.dtd: Update for the portal navigation changes,
	as promised in bug #574360
	* glom/libglom/document/document.cc: save_before_layout_group():
	Do not even create the portal_navigation_relationship node if it is the
	default ("automatic"), to save space in the XML file.

2009-06-04  Murray Cumming  <murrayc@murrayc.com>

	Clean up the code to load/save portal navigation options.

	* glom/libglom/document/document.cc: load_after_layout_group():
	Loading the portal's navigation options: Use == instead of
	ustring::compare() because this is not C.
	Explicitly default to automatic, removing the comment about defaulting
	to the default in the Portal's class to preserve the deprecated file
	format. This is more obvious.
	save_before_layout_group(): Simplify the code.
	Do not write GLOM_ATTRIBUTE_PORTAL_NAVIGATIONRELATIONSHIP_MAIN because
	a) It is deprecated (should be read but not written) and b) It is not
	read or used anywhere else anyway.
	Use constants for the possible attribute values, instead of copy/pasting
	the same string constants in several places.

2009-06-04  Murray Cumming  <murrayc@murrayc.com>

	Store script module code in child text nodes.

	* glom/libglom/document/document.cc: load_after(), save_before():
	Store the (importable) python script library modules in a child text
	node instead of an attribute, as we do elsewhere, dealing with a TODO
	that I found in the DTD.
	* glom/glom_document.dtd: Update appropriately.

1.11.0:

2009-06-01  Murray Cumming  <murrayc@murrayc.com>

	Remove ifdefs for disabled gtkmm vfuncs.

	* glom/mode_data/flowtablewithfields.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_withbuttons.cc:
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.h:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h: Remove ifdefs for disabled gtkmm vfuncs,
	because they are now enabled in Maemo 5 (Fremantle).

2009-05-29  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.cc: After invalidating a cached
	connection, disconnect from the cached connection's "finished" signal,
	to prevent the signal handler from being called later (other code
	might still have a reference to the connection at the
	invalidate_connection point). Also added a TODO comment, because this
	can still happen in rare cases. This fixes initial records not being
	shown after creating a database from an example file.

2009-05-27  Armin Burgmeier  <armin@openismus.com>

	* glom/mode_data/notebook_data.cc: Added an accessible name for the
	notebook, so that it can be accessed via LDTP.

2009-05-28  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac: Remove the mention of the eggcolumnchooser subdirectory, to
	fix the build.

2009-05-26  Armin Burgmeier  <armin@openismus.com>

	* glom/glom.glade: Added a window title to the initial dialog, and
	accessible names for the two tree views in it, so they are easily
	accessible from LDTP.

2009-05-25  Armin Burgmeier  <armin@openismus.com>

	* glom/dialog_existing_or_new.cc (constructor): Create the top level
	list elements before setting the cell data func, to avoid the cell
	data func being called before all the list elements have been added.
	This happended when Glom was launched via LDTP, leading to a crash.

2009-05-20  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool_backends/backend.h:
	* glom/libglom/connectionpool_backends/postgres.h:
	* glom/libglom/connectionpool_backends/sqlite.h: Added
	get_public_schema_name() virtual function and implementations for both
	backends.

	* glom/libglom/connectionpool.cc: Only update the meta store tables
	for the public schema of the corresponding backend. This considerably
	speeds up the initial meta store update. This requires latest libgdamm
	from git.

2009-05-10  Murray Cumming  <murrayc@murrayc.com>

	Disables the Open button next to ID fields if the field is empty.

	* glom/utility_widgets/datawidget.[h|cc]:
	Added private update_go_to_details_button_sensitivity() method and
	called it whenever the value is changed by the user or set via
	set_value(). Fixes bug #565023.

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

	Allow non-network-shared connections when using IPv6.

	* glom/libglom/connectionpool_backends/postgres_self.cc:
	DEFAULT_CONFIG_PG_HBA_LOCAL: Add an entry in IPv6 syntax, because
	something seems to be more IPv6-like in Ubuntu Jaunty.

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

	Pass some sharedptr&s as const.

	* glom/utility_widgets/flowtable_dnd.h: on_dnd_add_layout_item()
	* glom/mode_data/flowtablewithfields.[h|cc]: on_dnd_add_layout_item(),
	on_entry_edited(), on_entry_open_details_requested(),
	on_dnd_add_layout_item(): Pass the sharedptr& as const.

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

	Fixed minor compiler warnings and removed some virtuals.

	* glom/mode_data/flowtablewithfields.h: Made methods non-virtual where
	the virtual is unnecessary and misleading.

	* glom/utility_widgets/adddel/eggcolumnchooser/: Removed.
	* several: Fixed minor compiler warnings.

2009-05-07  Armin Burgmeier  <armin@arbur.net>

	* glom/glom.glade:
	* glom/utility_widgets/dialog_image_progress.h:
	* glom/utility_widgets/dialog_image_progress.cc:
	* glom/utility_widgets/Makefile.am: Added a dialog which loads an
	image and shows progress of the operation.

	* glom/utility_widgets/imageglom.h:
	* glom/utility_widgets/imageglom.cc: Use this dialog when the user
	selects an image to load, to indicate progress for large images.

2009-05-05  Armin Burgmeier  <armin@arbur.net>

	* glom/libglom/sharedptr.h: Added operator!=.

	* glom/mode_data/flowtablewithfields.h:
	* glom/mode_data/flowtablewithfields.cc: Added set_other_field_value
	which is the same as set_field_value except that it does not set the
	value for widget that belongs to the passed layout item's widget
	itself. This can be used if that very widget already contains the new
	value to avoid setting it again. Especially when dealing with large
	images this brings an essential speedup.

	* glom/mode_data/box_data_details.cc (on_flowtable_field_edited): Use
	set_other_field_value, so that we don't set the value for the field
	which the user already changed again.

	* glom/utility_widgets/imageglom.h:
	* glom/utility_widgets/imageglom.cc: Store the original data of the
	image file, and return it in get_value(), instead of creating a PNG
	from the raw image data, to speed up loading a large image file.

	* glom/utils_ui.cc (get_pixbuf_for_gda_value): When loading images
	from the database, allow all image types, not just PNGs.

	* glom/xsl_utils.cc: Include gtk/gtk.h to fix the build for me.

2009-04-24  Murray Cumming  <murrayc@murrayc.com>

	Don't network share new documents from (old) examples.

	* glom/libglom/document/document.cc: load_after(): Only assume network-sharing
	for older documents if it's not an example, so we don't have to resave all the
	examples.

2009-04-23  Murray Cumming  <murrayc@murrayc.com>

	Fix loading of old self-hosted files, broken since defaulting to no sharing.

	* glom/libglom/document/document.cc:
	get_latest_known_document_format_version(): Increase the number because we
	have added nodes/attributes.
	load_after(): For older document formats, read network_sharing as on if it
	is false (not mentioned).

2009-04-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: on_document_load(): Avoid false unexpected error warning.

2009-04-22  Michael Hasselmann  <michaelh@openismus.com>

	Allow to disable navigation in the related record layout.

	* glom/libglom/data_structure/layout/layoutitem_portal.[h|cc] ctor(),
	[set|get]_navigation_relationship_specific(), [set|get]_navigation_type(),
	set_navigation_type(): Replaced the flag for whether a specific navigation
	relationship should be used with an enum type, since we now have an
	additional state (no navigation relationship) in the Glom::LayoutItem_Portal
	class. Additionally, this internal state no longer needs to be exported so
	[set|get]_navigation_relationship_specific() can now be called without
	supplying a boolean output parameter.
	* glom/libglom/document/document.cc load_after_layout_group(),
	save_before_layout_group(): Added load and save support for the
	no-navigation-relationship option.
	* glom/mode_data/box_data_portal.cc get_suitable_table_to_view_details():
	Return an empty table name if the navigation relationship type was set to
	none.
	* glom/mode_data/dialog_layout_list_related.[h,cc] ctor(), update_ui(),
	save_to_document(), glom/glom_developer.glade: Insert a third choice ("none")
	for the navigation radio buttons.
	* glom/mode_data/dialog_layout_calendar_related.cc update_ui(),
	save_to_document(): Replaced calls to
	LayoutItem_Portal::[set|get]_navigation_relationship_specific() that still
	used a boolean output parameter.
	Bug #574360.

2009-04-17  Murray Cumming  <murrayc@murrayc.com>

	Makes navigation work to alternate specified relationships.

	* glom/mode_data/flowtablewithfields.cc: on_portal_user_requested_details():
	Don't default to navigating to just the immediate related table. Instead,
	always use the navigation options, by always calling
	LayoutItem_Portal::get_suitable_record_to_view_details().
	Bug #579172 (Michael Hasselmann)

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

	* glom/base_db.cc: add_standard_groups(): Give the developer group
	SUPERUSER rights, fixing a problem in another patch I am working on.
	I am surprised that this was not a problem before - maybe because the
	user (instead of the group) always had superuser rights via the
	command line database initialization.

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

	* glom/application.[h|cc] init_menus_file(): Add a File/Share On Network
	toggle menu item. Added update_network_shared_ui() to ensure that it
	is checked when appropriate.
	open_browsed_document(), on_document_load():
	Call update_network_shared_ui().
	* glom/frame_glom.[h|cc]: on_menu_file_toggle_share(): Handle the
	new menu item, to change the configration and restart the server.

	* glom/libglom/document/document.cc: Added set_network_shared(),
	get_network_shared(). load_after(), save_before(): Save it in the
	document. This is the default that will be used when opening a document.
	It defaults to not shared.
	* glom/glom_document.dtd: Document the new network_shared XML attribute.

	* glom/libglom/connectionpool.[h|cc]: get_and_connect(): Only start avahi
	publishing if we are shared on the network.
	set_network_shared(): Added this private function to change the configuration.
	initialize(), startup(): Added network_shared parameter.
	cleanup(): Call invalidate_connection() to prevent use of a connection
	to a stopped server.,
	* glom/libglom/connectionpool_backends/backend.[h|cc]: initialize,
	  startup, set_network_shared(): Same change as for ConnectionPool.
	* glom/libglom/connectionpool_backends/postgres_self.[h|cc]:
	initialize(): set_network_share(): Move config file writing to
	set_network_share() and use different pg_hba.conf contents depending on
	whether we are shared on the network.
	startup(): Ensure that the configuration is correct.

2009-04-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc: get_and_connect(): Check that
	m_backend is not null, to avoid a critical warning at startup.

2009-04-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/python_embed/glom_python.[h|cc]:
	Added glom_python_module_is_available() and
	gda_python_module_is_available().
	* glom/main.cc: Use them to do some extra runtime sanity checking,
	warning the user if their install is broken.

2009-04-09  Michael Hasselmann <michaelh@openismus.com>

	Fix crash if "Connect to Server" is cancelled and then a document is opened.

	* glom/libglom/connectionpool_backends/backend.h:
	Introduced new error code FAILURE_NO_BACKEND which shall be used to
	detect logical errors in the backend implementations.
	* glom/libglom/connectionpool_backends/postgres_self.cc (connect):
	Set error correctly if no self-hosted instance is active.
	* glom/libglom/connectionpool.cc (connect, cleanup):
	Added a g_return_val_if_fail to check whether there is a backend to
	connect to. Also reset m_ready_to_connect flag to false during
	cleanup, which stops Glom from behaving funnily if the user supplies
	wrong credentials (see bug #577821):
	- The user enters wrong credentials, gets a 'Connection failed' dialog
	  the first time. Then, enters wrong credentials a second time, gets no
	  dialog (but gets dialog for next try and so on).
	- Glom would crash if the user tried to open another document, then decides
	  to abort and only opens another document (much) later (which would
	  look like a random crash then).
	The ConnectionPool class could perhaps be made more robust concerning
	that flag since it currently allows inconsistent states.

2009-04-05  Philip Withnall  <philip@tecnocode.co.uk>

	* glom/libglom/data_structure/glomconversions.cc: Add
	xgettext:no-c-format to a string used with strftime which gettext is
	erroneously marking as c-format. (Closes: #578013)

2009-04-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc: connection_request_password_and_attempt():
	When the password fails, just loop around the while again to ask again,
	instead of showing a one-off extra dialog. That fixes the problem of being
	asked twice when the first try failed.
	Load the document outside of the while() instead of each time we ask for the
	password.

2009-04-02  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool_backends/postgres_self.cc
	(discover_first_free_port): Fixed the logic in this function to allow
	two different glom instances to self-host a database at the same time.

2009-03-31  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: get_fields_for_table_from_database(): Use the libgda
	metastore API (almost as nasty as the schema API) to get the primarykeyness,
	because the schema API does not give us this, for no good reason that I can
	see. Anyway, it works, allowing us to use pre-existing databases.

2009-03-31  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.[h|cc]: Renamed to document.[h|cc]:
	* *.[h|cc]: Adapted.

2009-03-31  Murray Cumming  <murrayc@murrayc.com>

	* Renamed Document_Glom to Document, and type_vec* to type_vec_* in all
	lower case, to make the API more consistent.

2009-03-31  Murray Cumming  <murrayc@murrayc.com>

	* config.h.in: Remove definitions that are in
	glom/libglom/libglom_config_h.in
	* configure.ac: Depend on pygobject instead of pygtk and remove duplicate
	dependencies in Glom and libglom.
	* glom/libglom/document/document_glom.h: Remove SWIG directives because I
	am now using a separate SWIG .i file.
	* po/POTFILES.in: Updated.

2009-03-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/Makefile.am:
	* glom/libglom/init.[h|cc]: Added this file with libglom_init() and
	libglom_deinit(), containing some code that was in main(). This allows
	code other than Glom to use libglom.
	* glom/main.cc: Call the new functions, replacing some code.
	* glom/libglom/test_document.cc: Call the new functions.

2009-03-30  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac: Remove the gtkmm dependency from libglom.

	* glom/libglom/Makefile.am:
	* glom/bakery/Makefile.am:
	* glom/libglom/busy_cursor.[h|cc]: Moved this to glom/bakery/.

	* glom/libglom/data_structure/glomconversions.[h|cc]:
	Moved get_pixbuf_for_gda_value() to glom/utils_ui.[h|cc].

	* glom/libglom/*.[h|cc]: Adapted, and removed any gtkmm or gdkmm headers.

2009-03-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/glade_utils.cc: Added missing file to fix the build.

	* glom/Makefile.am:
	* glom/libglom/Makefile.am:
	* glom/libglom/utils.cc:
	* glom/libglom/utils.h: Moved some of these functions to new
	glom/utils_ui.[h|cc] files to avoid having the UI stuff in libglom.
	*.cc: Adapted.

	* glom/libglom/connectionpool.[h|cc]:
	* glom/libglom/connectionpool_backends/backend.[h|cc]:
	* glom/libglom/connectionpool_backends/postgres.[h|cc]:
	* glom/libglom/connectionpool_backends/postgres_self.[h|cc]:
	initialize(): Return an enum instead of a bool, to report errors, instead of
	showing a UI warning here.
	Added set_avahi_publish_callbacks() to avoid showing that UI here.
	* glom/frame_glom.[h|cc]: Adapt to the new API, showing UI here instead of
	in libglom.

	* glom/libglom/spawn_with_feedback.cc: Disconnect the progress timeout
		handlers.

	* glom/libglom/data_structure/layout/layoutitem_image.[h|cc]: Removed
	get_image_as_pixbuf() to avoid a gtkmm dependency in libglom. Made m_image
	public instead, to avoid performance problems with copying lots of binary
	data via a get*() method.
	* glom/libglom/document/document_glom.cc: Adapted.

	* glom/libglom/data_structure/print_layout.[h|cc]: Use a string instead of a
	Gtk::PrintLayout, using the Glib::KeyFile format, to avoid depending on gtkmm
	in libglom.
	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.cc: Adapted.

2009-03-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/bakery/app_withdoc.[h|cc]: Added on_document_close() virtual method
	now that we can break this ABI.
	* glom/application.[h|cc]: Override on_document_close().
	* glom/libglom/document/document_glom.cc: Destructor: Don't shutdown the
	database here. Do in App_Glom::on_document_close() instead.

	* glom/libglom/Makefile.am:
	* glom/libglom/spawn_with_feedback.[h|cc]: execute_command_line_and_wait(),
	  execute_command_line_and_wait_until_second_command_returns_success():
	  Take a SlotProgress callback instead of a parent window, and don't take
	  a human-readable message string to show, allowing the caller to show UI if
	  it wants, removing UI code from this part of libglom.
	  Use a Glib::MainLoop to block instead of using the Gtk::Main in
	  Gtk::Dialog::run().
	* glom/libglom/connectionpool.[h|cc]: initialize(), startup, cleanup():
	* glom/libglom/connectionpool_backends/backend.[h|cc]: initialize(),
	  startup(), cleanup():
	* glom/libglom/connectionpool_backends/postgres_self.cc: initialize(),
	startup, cleanup(): Take a SlotProgress callback instead of a parent window,
	allowing the caller to show UI if it wants, removing UI code from this part of
	libglom.

	* glom/Makefile.am:
	* glom/libglom/dialog_progress_creating.[h|cc]: moved to
	* glom/glom/glade_utils.[h|cc]: Moved get_and_show_pulse_dialog() here.

	* glom/dialog_new_self_hosted_connection.[h|cc]:
	* glom/frame_glom.[h|cc]:
	connection_request_password_and_choose_new_database_name(),
	connection_request_password_and_attempt(): Adapted.

2009-03-27  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac, glom/libglom/*/Makefile.am: Do two separate
	PKG_CONFIG_MODULE() checks for Glom and libglom to avoid unnecessary
	dependencies in libglom.
	* Moved libglom/glade_utils.h to glom/libglom/glade_utils.h.
	* *.[h|cc]: Some incomplete improvement of includes, to use full paths, to
  make search/replace refactoring easier.

2009-03-26  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac: Depend on the latest goocanvasmm for the new API.
	* glom/libglom/document/bakery/Makefile.am:
	* glom/libglom/document/bakery/view/Makefile.am: Install the headers as in
	the other directories.
	* glom/libglom/document/document_glom.h: Tell SWIG to add using Glom because
	it gets confused about the namespace.

2009-03-26  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac:
	* macros/macros.m4: Removed this.
	* macros/dk-warn.m4: Added this, which is the updated version.
	* glom/*/*.am
	* glom/*/*.cc: Fixed some warnings.

2009-03-26  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/canvas/canvas_table_movable.[h|cc]: get_xy(),
	set_xy(): Use the new height property instead of faking it.

2009-03-25  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/canvas/canvas_line_movable.cc: get_xy(),
	set_xy(), get_width_height(), set_width_height():
	* glom/utility_widgets/canvas/canvas_text_movable.cc
	get_width_height, set_width_height(): Use the new properties instead
	of our custom implementations.

2009-03-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/main.cc: Stop the mainloop when the window is hidden, and then
	delete it. I think this was done by AppInstanceManager before.

2009-03-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/bakery/:
	* glom/libglom/document/bakery/: Rename the files to make them lower
	case just because the inconsistency has always annoyed me.
	* glom/*.[h|cc]: Adapted.

2009-03-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.h: Added a SWIG hint telling it how to
	include this header.

2009-03-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/bakery/Document.h:
	* glom/libglom/document/bakery/Document_XML.h: Removed more unnecessary
	virtuals.

2009-03-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.[h|cc]: Remove add_ui_from_string() because it is
	in App_WithDoc_Gtk too.
	* glom/bakery/App_WithDoc_Gtk.h: Make init_menus_file_recentfiles()
	non virtual because nothing overrides it.

2009-03-24  Murray Cumming <murrayc@murrayc.com>

	* glom/bakery/Makefile.am:
	* glom/bakery/App_WithDoc.h:
	* glom/bakery/App_Gtk.[h|cc]: Remove this, merging it into:
	* glom/bakery/App_WithDoc_Gtk.[h|cc]: allowing us to remove some
	awkward virtual inheritance.
	* glom/bakery/Dialog_OfferSave.cc:
	* glom/application.cc:
	* glom/utility_widgets/adddel/adddel.cc: Adapted.

2009-03-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/bakery/Makefile.am:
	* glom/bakery/GtkDialogs.[h|cc]: Remove this, moving the code into
	these functions that previously just called the same named functions
	in GtkDialogs, for reasons that are no longer relevant:
	* glom/bakery/App_WithDoc_Gtk.cc ui_warning(),
	ui_file_select_open(), uri_is_writable(),
	ui_file_select_save(), ui_offer_to_save_changes().

2009-03-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.[h|cc]: Added a load() that just calls
	the base class, just to make life easier for SWIG, so it can ignore the base
	class for client-only API.

2009-03-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.[h|cc]: new_instance(): Spawn a new process via a
	a command line command.
	* glom/bakery/App.[h|cc]: new_instance(): Take a uri parameter.
	on_menu_file_new():
	* glom/bakery/App_WithDoc.cc: open_document():
	new_instance() is now expected to start a new process instead of
	returning a new C++ instance.

	This means that File/New and File/Open will start a new independent
	process.

2009-03-22  Murray Cumming  <murrayc@murrayc.com>

	Reverted this change because each instance is now an independent
	process, or soon will be when I have made some more changes:

	* configure.ac: Depend on libunique-1.0
	* glom/bakery/App_WithDoc_Gtk.[h|cc]: Added set_unique_app(), to make
	the app handle UniqueApp messages, to start new instances or open files.
	* glom/main.cc: Use set_unique_app() and send messages to the existing
	instance instead of starting a new instance, if one is already running.

2009-03-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/bakery/Makefile.am:
	* glom/bakery/AppInstanceManager.[h|cc]: Removed this class.
	* glom/application.cc:
	* glom/bakery/App.cc:
	* glom/bakery/App.h:
	* glom/bakery/App_Gtk.cc:
	* glom/bakery/App_Gtk.h:
	* glom/bakery/App_WithDoc.cc:
	* glom/bakery/App_WithDoc_Gtk.cc: Removed management of multiple
	instances. Each Glom window is now isolated. That is necessary anyway
	because we have been storing a global application pointer separately
	anyway for a while now, which broke this.

	This would need to use some single-instance DBus thing anyway to make
	it work properly between processes (started from the Application menu.)
	That would be nice. Then we could really check if a file is already
	open, like gedit does.

2009-03-21  Armin Burgmeier  <armin@openismus.com>

	* autogen.sh: Don't run autoheader.

	* configure.ac: Prevent execution of autoheader with
	--enable-maintainer-mode. Copied from glibmm.

	* glom/libglom/libglom_config.h.in: Added include guards.

	* config.h.in: Added this file which was previously generated by
	autoheader. Removed the prefixed definitions from it but include
	glom/libglom/libglom_config.h instead. This prevents warnings about
	redefinitions when both config.h and libglom_config.h are included in
	a translation unit.

2009-03-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool_backends/postgres.cc:
	check_postgres_gda_client_is_available_with_warning(): Avoid a
	warning when libgda sometimes gives us a non-string GValue from
	gda_config_list_providers(), which is a silly API.

2009-03-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/bakery/App_WithDoc_Gtk.cc: Remove checks for GTK+ 2.10. We really
	have it now.

2009-03-20  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac: Depend on libunique-1.0
	* glom/bakery/App_WithDoc_Gtk.[h|cc]: Added set_unique_app(), to make
	the app handle UniqueApp messages, to start new instances or open files.
	* glom/main.cc: Use set_unique_app() and send messages to the existing
	instance instead of starting a new instance, if one is already running.

2009-03-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/bakery/*.[h|cc]: Fixed compiler warnings. Used GLOM defines
	instead of BAKERY defines.
	* po/POTFILES.in: Added the bakery files.

2009-03-18  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac: Correct the libgdamm and libgda versions needed.

2009-03-18  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc:
	* glom/bakery/App_Gtk.cc:
	* glom/bakery/App_WithDoc.cc:
	* glom/bakery/App_WithDoc_Gtk.cc:
	* glom/bakery/Dialog_OfferSave.cc:
	* glom/bakery/GtkDialogs.cc:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/data_structure/iso_codes.cc:
	* glom/libglom/document/bakery/Document.cc:
	* glom/libglom/document/bakery/view/View.h:
	* glom/main.cc:
	* glom/translation/window_translations.cc: Include config.h using <>
	instead of "", to be consistent with elsewhere.

2009-03-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool_backends/postgres.cc:
	check_postgres_gda_client_is_available_with_warning(): Actually check.
	This was commented out because the libgda-4.0 API for it is unpleasant.

2009-03-17  Murray Cumming  <murrayc@murrayc.com

	* glom/glom_developer.glade: Remove superfluous empty TextBuffer objects,
	to avoid warnigns, but we still have problems with Adjustments.
	See GtkBuilder bug #575714.

2009-03-17  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac: Remove the libglademm dependency.
	* glom/glom.glade:
	* glom/glom_developer.glade: Resaved as GtkBuilder format in glade-3.
	* glom/Makefile.am:
	* glom/variablesmap.[h|cc]: Copied this from libglademm and adapted it to
	Gtk::Builder.
	* glom/*.[h|cc]: Use Gtk::Builder instead of Gnome::Glade::Xml. The changes
	are mostly just search/replace.

2009-03-17  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac: Remove bakery dependency.
	* glom/Makefile.am:
	* glom/bakery/: Added copies of the Bakery/App files.
	* glom/libglom/document/bakery/: Added copies of the Bakery Document
	and View files.
	This allows us to change the Bakery ABI when we need to. We already
	do unusually hacky things with Bakery so this is reasonable.

2009-03-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/combo_textglade.[h|cc]: Remove the reimplementation
	of Gtk::ComboBoxText now that we can use gtkmm 2.14.
	* glom/frame_glom.cc:
	* glom/libglom/data_structure/glomconversions.cc:
	* 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: Adapted.
	* glom/libglom/document/document_glom.cc: save_before: Remove another
	gtkmm 2.10 workaround.

2009-03-17  Murray Cumming  <murrayc@murrayc.com>

	* configure.ac: Depend on gtkmm 2.14 rather than gtkmm 2.10.

	* glom/Makefile.am:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/calendar/: Remove copy of Gtk::Calendar.
	* glom/mode_data/box_data_calendar_related.h: Adapted.

	* glom/application.cc:: init_toolbars(), add_ui_from_string():
	* glom/dialog_existing_or_new.cc: constructor, get_uri(),
	existing_icon_data_func():
	* glom/dialog_existing_or_new.h
	* glom/layout_item_dialogs/box_formatting.cc: get_formatting():
	* glom/libglom/data_structure/print_layout.cc: Constructor, operator=():

	* glom/mode_design/print_layouts/canvas_print_layout.cc: set_print_layout():
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	get_icon_for_toolbar_item(), on_canvas_drag_drop(), on_canvas_drag_motion():
	* glom/xsl_utils.cc: transform_and_open():
	Remove workarounds for gtkmm 2.10 now that we can depend on gtkmm 2.14.
	This is not really necessary but it's nice to clean up the code.

This is svn trunk, for Glom 1.11/12. See also the glom-1-10 branch.

1.10.0:

2009-03-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/calendar/glomcalendar.[h|cc]:
	* glom/utility_widgets/calendar/glomgtkcalendar.[h|c]: Check for GTK+ 2.14,
	not GTK+ 2.16, because the GtkCalendar details_func API is in 2.14.
	Correct a typedef to fix the build in that case.

2009-03-16  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/gst-package.c: Converted a C++ comment to a C comment,
	to avoid a warning.

	* glom/main.cc (main): Fixed the build on Linux, which was broken
	since my last commit.

2009-03-13  Armin Burgmeier  <armin@openismus.com>

	* glom/dialog_existing_or_new.cc:
	* libglom/connectionpool_backends/postgres_self.cc:
	* libglom/glade_utils.h:
	* glom/main.cc:
	* glom/mode_design/print_layouts/print_layout_toolbar_button.cc:
	* glom/utility_widgets/layouttoolbar.cc:
	* glom/utility_widgets/layouttoolbarbutton.cc: Replaced
	g_win32_get_package_installation_subdirectory() by
	g_win32_get_package_installation_directory_of_module() since the
	former is deprecated. Bug #575021.

2009-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/fields/box_db_table_definition.
	field_has_null_values(): Do not warn about a false failure.

2009-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc: connect(): Update the meta store for
	just the data types and the table names, instead of everything. This is
	slightly faster. This needs libgdamm from svn.
	More about the libgda meta store speed here:
	http://bugzilla.gnome.org/show_bug.cgi?id=575235

2009-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/fieldtypes.cc: Avoid an extra
	update_meta_store() when exceptions are disabled.
	* glom/navigation/box_tables.cc: fill_table_row(): Avoid a crash when
	the TableInfo is null.

2009-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool_backends/postgres.cc: Fix the build when
	GLOM_CONNECTION_DEBUG is defined.

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

	* glom/libglom/Makefile.am: Do not install some headers that are for
	API that I do not really want other people to use.

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

	* glom/utility_widgets/adddel/eggcolumnchooser/: Copy a newer version from
	libegg, which already fixed the use of deprecated GTK+ macros.
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h: child_type_vfunc(): Use GType instead
	of deprecated GtkType.
	This mostly fixes bug #575021 (André Klapper).

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

	* configure.in: Rename to configure.ac, because configure.in is
	deprecated by recent autotools.

2009-03-12  Armin Burgmeier  <armin@openismus.com>

	* configure.in: Added config.h to AC_CONFIG_FILES, so that we create
	two config files: config.h with all definitions, and libglom_config.h
	which contains only definitions prefixed with GLOM_ to be installed.
	This means header files cannot use non-prefixed definitions.

	* glom/libglom/libglom_config.h.in: New file containing the
	definitions to be installed.

	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/data_structure/iso_codes.cc:
	* glom/translation/window_translations.cc:
	* glom/utility_widgets/calendar/glomgtkcalendar.h:
	* glom/utility_widgets/calendar/glomgtkcalendar.c:
	* glom/application.cc:
	* glom/main.cc: Adapt the code by including config.h instead of
	libglom_config.h.

1.9.4:

2009-03-10  Armin Burgmeier  <armin@openismus.com>

	* win32/build_installer: Only install the postgres and sqlite libgda
	provider, and not all the others. This prevents libgda from trying to
	load them, and fail doing so with a user-visible message about some
	DLLs not being found.

2009-03-10  Armin Burgmeier  <armin@openismus.com>

	* glom/xsl_utils.cc: Made reports work on Windows, by using
	Glib::get_tmp_dir() instead of "/tmp" and ShellExecute instead of
	g_app_info_launch_default_for_uri(), for which file:// URIs don't seem
	to be supported on Windows.

	* win32/build_installer: Don't ship libdb47.dll anymore, as this is no
	longer required with libgda 3.99.13.

2009-03-09  Claude Paroz  <claude@2xlibre.net>

	* glom/mode_data/dialog_layout_details.cc: Add a translator comment.
	Bug #574672.

2009-03-09  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Require the latest (from svn, not yet in a tarball) version
	of libgda, needed by the images in the example files.

2009-03-09  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool_backends/postgres_self.cc (startup): Use
	"postgres" executable instead of "postmaster".

	* glom/libglom/connectionpool.cc: Fixed the Windows build.

	* glom/main.cc: Fixed locale search path.

	* win32/querymodules.bat: Removed, this file is no longer required.

	* win32/build-installer:
	* win32/glom.iss.in:
	* win32/Makefile.am:
	* win32/README: Update for current version.

2009-03-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.h: HostingMode: Declare all enum
	values regardless of what is enabled, to avoid ABI confusion and to maybe
	allow us to say that some are not supported at runtime.

2009-03-08  Stéphane Raimbault  <stephane.raimbault@gmail.com>

	* glom/libglom/data_structure/glomconversions.cc:
 	sanity_check_date_text_representation_uses_4_digit_years(): Fix a typo
 	in the word representation of the error message.

2009-03-08  Stéphane Raimbault  <stephane.raimbault@gmail.com>

	* configure.in: Changes made to reflect new po linguas setup including
	removing ALL_LINGUAS (now in new file LINGUAS).
	* po/LINGUAS: new file.
	Fixes #569721

2009-03-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.cc: load_after(): Added an ifdef to
    fix the client-only sqlite build.

2009-03-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc:
    connection_request_password_and_choose_new_database_name(): Added an ifdef
    to fix the client-only postgres build.

2009-03-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_portal.cc: get_suitable_record_to_view_details():
	Use the correct primary key of the related table. This fixes navigation
	on the Small Business Example, on the invoice lines, which goes to the
	product record.

2009-03-06  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_lesson_planner.glom:
	* examples/example_project_manager.glom:
	* examples/example_smallbusiness.glom: Resaved these, because libgda
	corrected the string format for binary data (images). libgda also fixed
	the crash when parsing that string, as used in from_file_format().

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

	* glom/libglom/data_structure/field.cc: from_file_format(): Add some
	checks.

2009-03-04  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Generate libglom/libglom_config.h instead of config.h,
	so we can install it and use it in our public headers.
	* glom/libglom/Makefile.am: Install libglom_config.h.
	* glom/libglom/glom-1.0.pc.in: Correct the shared library name.
	* *.[h|cc]: Include libglom/libglom_config.h instead of config.h.

2009-03-04  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Ran autoupdate on this so it does things as per what is
	currently correct.

2009-03-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/Makefile.am: Link to the correct library name for
	test_document.cc
	* glom/libglom/test_document.cc: List the tables in the document.

2009-03-03  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/document/document_glom.cc (load_after): Fixed another
	misplaced else which prevented postgresql files from being opened
	when support for both postgresql and sqlite was enabled.

	* glom/libglom/document/document_glom.h: Changed DEFAULT_HOSTED to
	HOSTING_MODE_POSTGRES_SELF if postgresql is enabled.

	* glom/application.cc (constructor): Use DEFAULT_HOSTED to initialize
	m_ui_save_extra_newdb_hosting_mode, so that we don't need an #ifdef.

2009-03-03  Murray Cumming  <murrayc@murrayc.com>

	* *.[h|cc]: Include all libglom headers via libglom/ instead of
	glom/libglom so it works from outside, with the path to the installed
	headers, from pkg-config.
	* All Makefile.am files: Add -I@top_srcdir@/glom to AM_CPPFLAGS.
	The repetition is awful. We should avoid that somehow.

2009-03-03  Murray Cumming  <murrayc@murrayc.com>

	* configure.in:
	* glom/libglom/Makefile.am:
	* glom/libglom/glom-1.0.pc.in: Added and installed pkg-config file.

	* glom/Makefile.am:
	* glom/libglom/data_structure/Makefile.am:
	* glom/libglom/data_structure/layout/Makefile.am:
	* glom/libglom/data_structure/layout/report_parts/Makefile.am:
	* glom/libglom/document/Makefile.am:
	* glom/python_embed/python_module/Makefile.am:
	* regression_tests/Makefile.am: Change libglom to libglom-1.0 so we can
	use proper API versioning. Install the headers.

	* glom/libglom/document/document_glom.cc: Use std::auto_ptr<> to
	avoid instantiating Bakery::BusyCursor if no parent window was set,
	to avoid the need to initialize gtkmm/GTK+.

2009-03-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.h: Add some SWIG ifdefs to
	improve the Java wrapping output with swig.

2009-03-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/dialog_existing_or_new.cc: Parser::on_start_element():
	Call xmlStopParser() to avoid unnecessary extra parsing, fixing a TODO.

2009-03-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/Makefile.am:
	* glom/libglom/document/document_glom.[h|cc]: Renamed the *_HOSTED enum values to
	use a prefix. Moved the View tyepdefs into a view.h file.

	* glom/application.cc:
	* glom/base_db.h:
	* glom/dialog_connection.cc:
	* glom/frame_glom.cc:
	* glom/layout_item_dialogs/dialog_field_layout.h:
	* glom/mode_design/dialog_design.h:
	* glom/relationships_overview/dialog_relationships_overview.h:
	* glom/translation/dialog_identify_original.h:
	* glom/translation/window_translations.[h|cc]:
	* glom/utility_widgets/datawidget.h:
	* glom/utility_widgets/filechooserdialog_saveextras.cc: Adapted.

2009-03-02  Armin Burgmeier  <armin@openismus.com>

	* glom/frame_glom.cc:
	(connection_request_password_and_choose_new_database_name): Call
	connectionpool's startup() also if SQLite is disabled. Bug #573799.

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

	* Many .h files: Changed many protected to private to make the API
	clearer. This is particularly important for libglom, as I start
	thinking of wrapping the API for Java/Web.

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

	* configure.in: Added an --enable-postgresql option, so we can have
	embedded builds that only use SQLite. Disable SQLite by default.

	* glom/utility_widgets/filechooserdialog_saveextras.[h|cc]:
	Don't mention the backend names if only SQLite is disabled, to avoid
	confronting people with unnecessary technicalese.

	* glom/application.cc:
	* glom/dialog_connection.cc:
	* glom/frame_glom.cc:
	* glom/libglom/connectionpool_backends/Makefile.am:
	* glom/libglom/connectionpool_backends/postgres.h:
	* glom/libglom/connectionpool_backends/postgres_central.[h|cc]:
	* glom/libglom/connectionpool_backends/sqlite.h:
	* glom/libglom/data_structure/glomconversions.h:
	* glom/libglom/document/document_glom.[h|cc]:
	* glom/libglom/gst-package.c:
	* glom/libglom/test_connectionpool.cc:
	* glom/main.cc:
	Added ifdefs to allow builds with -enable-postgresql=no.

	* glom/dialog_import_csv.cc: Replace gettext() with _().

1.9.3:

2009-02-27  Armin Burgmeier  <armin@openismus.com>

	* glom/frame_glom.cc:
	(connection_request_password_and_choose_new_database_name): When
	creating a new self-hosting postgres database, then store the port it
	uses within the document, so that remote connections (using browse
	network) can connect to the newly created database. Bug #572982.

2009-02-27  Armin Burgmeier  <armin@openismus.com>

	* glom/mode_design/fields/box_db_table_definition.cc (on_adddel_add):
	Add newly added field into document before refreshing m_vecFields, so
	that Base_DB::get_fields_for_table() has an up-to-date document. This
	fixes changing newly added fields with SQLite.

	* configure.in: Fixed a typo, which caused libgda-sqlite-4.0 not being
	required even when SQLite support was enabled.

1.9.2:

2009-02-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtable.cc: on_size_allocate(): Change an
	accidental += to the = that it should be, to stop columns getting
	increasingly large amounts of extra width when there are >2 columns.
	Bug #539369 (maximiliano)

2009-02-24  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool_backends/postgres_central.cc (set_host):
	Only reset m_port to zero if m_try_other_ports is true. Otherwise, a
	specific port has already been set by the user.
	(connect): Compare m_port to 0, not port, which is a Glib::ustring.
	This fixes a warning about g_utf8_collate's argument being NULL, and
	fixes connection to a remote postgres server advertized via networked
	glom.

2009-02-24  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool_backends/backend.h:
	* glom/libglom/connectionpool_backends/backend.cc: Moved the
	ConnectionPool backend base class into a new file in the
	connectionpool_backends subdirectory.

	* glom/libglom/connectionpool_backends/Makefile.am: Add it to the
	build.

	* glom/libglom/connectionpool_backends/postgres.h:
	* glom/libglom/connectionpool_backends/sqlite.h:
	* glom/libglom/connectionpool_backends/sqlite.cc:
	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool.cc:
	* glom/libglom/test_connectionpool.cc:
	* glom/dialog_connection.cc:
	* glom/frame_glom.cc: Adapt.

2009-02-24  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool.cc: Added a get_string_find_operator()
	virtual method to ConnectionPoolBackend, and a similar method to
	ConnectionPool which simply queries its backend.

	* glom/libglom/connectionpool_backends/sqlite.h:
	* glom/libglom/connectionpool_backends/postgres.h: Implement the new
	virtual method appropriately.

	* glom/libglom/data_structure/field.cc (sql_find_operator): Use the
	get_string_find_operator() method of the connectionpool backend in
	case the field's type is TYPE_TEXT. This fixes Find Mode with SQLite.
	Bug #570401. I wonder whether libgda can generate a case-insensitive
	string comparison, which would make this easier for us.

2009-02-24  Armin Burgmeier  <armin@openismus.com>

	* configure.in: Added an --enable-sqlite configure option, which is
	enabled by default.

	* glom/libglom/connectionpool_backends/sqlite.h: #error if this file
	is included with SQLite support disabled. Mostly meant as a debugging
	aid.

	* glom/libglom/connectionpool_backends/Makefile.am: Don't build
	sqlite.cc in case SQLite support is disabled.

	* glom/libglom/document/document_glom.h:
	* glom/libglom/document/document_glom.cc: Don't declare SQLITE_HOSTED
	hosting mode if SQLite support is disabled, and refuse to open files
	with unknown hosting mode instead of falling back to postgres central.

	* glom/utility_widgets/filechooserdialog_saveextras.h:
	* glom/utility_widgets/filechooserdialog_saveextras.cc: Don't show the
	option to create a SQLite hosted file in the GUI if SQLite support is
	disabled.

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: Removed a
	superfluous <libglom/connectionpool_backends/sqlite.h> include.

	* glom/frame_glom.cc:
	* glom/application.cc: #ifdef-out code to create a SQLite
	connectionpool backend if SQLite support is disabled, as well as a few
	related checks.

2009-02-24  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool_backends/sqlite.cc: Keep non-NULL
	constraint of columns when recreating table.

2009-02-23  David King  <davidk@openismus.com>

 	* glom/frame_glom.cc: on_menu_file_import(): Add CSV mime-type filter
 	to import dialog. Bug #572702

2009-02-23  Armin Burgmeier  <armin@openismus.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc
	(construct_specified_columns): Clear m_refListStore if in case no
	column types are set. This allows dropping the reference to the GDA
	DataModel by setting an empty table name on the AddDel.

	* glom/frame_glom.h:
	* glom/frame_glom.cc: Added show_table_allow_empty() which allows the
	table name to be empty, in which case no table is shown, and
	show_no_table() as a shortcut for this case. Show an empty table
	before opening the fields editing dialog, so that no references to the
	database are used anymore. SQLite requires this to be able to drop the
	old table when changing fields.
	Bug #572847

2009-02-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade, glom_developer.glade:
	* glom/base_db.cc: offer_notebook(): Move the dialog_notebook window
	into glom_developer.glade because it is only used in developer mode.

2009-02-22  Murray Cumming  <murrayc@murrayc.com>

	* Various minor fixes to avoid minor compiler warnings.

2009-02-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/glomconversions.cc:
	get_text_for_gda_value(): Avoid a warning about no return value.

2009-02-22  Armin Burgmeier  <armin@openismus.com>

	* glom/mode_data/flowtablewithfields.cc (add_field_at_position): Don't
	leak the Gtk::EventBox.

2009-02-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom_developer.glade: Resaved with glade-3. Recent versions of
	glade-3 are much better at converting from glade-2. I just had to
	hand-add the GtkSourceView widgets back.
	Bug #567470

2009-02-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc:
	* glom/base_db.[h|cc]:
	* glom/dialog_connection.cc:
	* glom/frame_glom.cc:
	* glom/libglom/connectionpool.[h|cc]:
	* glom/libglom/connectionpool_backends/postgres_central.cc
	* glom/navigation/box_tables.[h|cc]:
	Added ifdefs to fix the build with --enable-client-only.

2009-02-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom_privs[h|cc]: get_current_privs(): Cache the priviliges
	for each table for 30 seconds, to avoid unnecessary repetitive groups
	queries to the database. This seems to avoid about 5 out of 6
	requests, so it should be faster.
	Bug #567473

2009-02-20  Murray Cumming  <murrayc@murrayc.com>

	* configure.in:
	* glom/libglom/connectionpool_backends/postgres_self.cc: Use the
	postgres executable name instead of the deprecated postmaster
	executable. Everything probably has that now.
	Bug # 525108

2009-02-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/utlity_widgets/datawidget.cc: Constructor: Show the Open button,
	(but not Find) for related fields that are primary keys, so we can
	navigate to that record.
	* glom/mode_data/box_data_details.cc:
	on_flowtable_field_open_details_requested(): Navigate to the
	appropriate record in the appropriate table for this type of Open
	button.
	Bug #571975

	* glom/base_db.cc: fill_full_field_details(): Avoid crashes.

2009-02-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.[h|cc]:
	get_field_used_in_relationship_to_one(): Make this take a
	LayoutItem_Field instead of just a field name.
	* glom/utlity_widgets/datawidget.cc: Constructor: adapt, so we add
	Open and Find buttons for related fields too when appropriate.
	* glom/base_db.cc: Adapt to API change.

2009-02-18  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/field.cc: from_file_format(): Adjusted
	for a libgda API change in gda_string_to_binary().

2009-02-18  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/data_structure/field.cc (set_glom_type): Reset the
	default value if the Glom type is changed. The old default value
	probably doesn't make sense for the new type. This fixes a warning
	when changing a field's type from text to numerical.
	(set_default_value): Verify that the new default value is compatible
	with the field's glom type.
	(set_field_info): Verify that the default value of the new field info
	is compatible with the field's glom type.

	* glom/mode_design/fields/box_db_table_definition.cc
	(get_field_definition): When changing the field info's GType, make
	sure its default value matches the new GType, or reset it if not.

	* glom/libglom/document/document_glom.cc (load_after): Set a field's
	default value after having set the glom type, so that the checks
	introduced above don't fail.

2009-02-18  Murray Cumming   <murrayc@murrayc.com>

	* glom/libglom/data_structure/field.[h|cc]: sql(value, format):
	Replace this with sql(value, connection). Use
	Gda::DataHolder::get_sql_from_value(), using the connection to get the
	DataHolder. Remove the nasty Postgres escaping code, which is now
	unnecessary. There is now no code in Glom to do escaping or unescaping
	- we use libgda functions instead.
	sql(value): Use the active connection.
	* glom/libglom/connectionpool_backends/postgres.cc: change_columns():
	* glom/libglom/connectionpool_backends/sqlite.cc: recreate_table():
	Adapted, though these can probably just call sql(value), using the
	active connection.

	* glom/base_db.[h|cc]: get_connection(): Make this static because it
	can be.

2009-02-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/field.[h|cc]: Added static versions of
 	from_file_format() and to_file_format(), taking the field type, for use
	in document, though we can probably avoid that.
	* glom/libglom/data_structure/glomconversions.[h|cc]:
	* glom/libglom/document/document_glom.[h|cc]: Remove support for the
	deprecated one-big-string example_rows format. Store the example rows as
	a vector of vector of Values, instead of strings. This avoids extra
	string parsing, unescaping, etc.
	* glom/glom_document.dtd: Documented the change.
	* glom/frame_glom.[h|cc]: Added export_data_to_vector().
	* glom/application.cc: on_menu_file_save_as_example(): Use the vector
	instead of a string.
	* glom/base_db.cc: insert_example_data(): Handle the vector instead of
	doing nasty string parsing.

	* examples/example_*.glom: Resaved in the new format.

2009-02-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/glomconversions.cc:
	get_text_for_gda_value(), parse_value(): Use std::setprecision() to
	avoid showing the awkward scientific e notation, raising the limit
	from 7 digits to 15. We don't know how to avoid it always.
	Noticed by Arq. Maximiliano Meilán.

2009-02-16  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool_backends/sqlite.cc: Fixed various
	problems with field type changes. Before, often some or all of the
	records have been erased after certain changes (only from the view,
	not from the database).

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

	* glom/libglom/data_structure/field.[h|cc]: Renamed from_sql() to
	from_file_format(), without the sql_format parameter, to make it
	clearer. Added to_file_format(), which currently just calls sql()
	with the postgres format.
	* glom/data_structure/glomconversions.cc: Removed unused
	unescape_binary_data_sqlite().
	* glom/base_db.cc: insert_example_data():
	* glom/dialog_import_csv.cc: field_data_func():
	* glom/dialog_import_csv_progress.cc: on_idle_import(): Adapt.
	* glom/frame_glom.cc: export_data_to_string(): Use to_file_format()
	instead of sql() to make it clearer.

1.9.1:

2009-02-15  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/data_structure/field.cc (get_gda_type_name): Use the
	GType from m_field_info instead of converting the glom type to a gda
	type, to take fallback types into account, as used by SQLite for
	numeric values.
	(get_holder): Use the passed value's type to initialize the holder
	type. For binary values, there can be a mismatch between the value
	type and the field type with SQLite. This is not optimal, but it
	works for now.

2009-02-15  Armin Burgmeier  <armin@openismus.com>

	* glom/mode_data/box_data_details.cc (on_flowtable_field_edited):
	Revert the changed value if set_field_value_in_database() throws a
	glib exception.

2009-02-15  Armin Burgmeier  <armin@openismus.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc (user_changed): Revert
	the changed value if set_field_value_in_database() throws an
	exception.

2009-02-15  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool_backends/sqlite.cc: Convert existing
	values explicitely via the date() and time() SQLite functions when
	converting existing values to date or time. This fixes all rows being
	erased when changing a column to date or time.

2009-02-12  Armin Burgmeier  <armin@openismus.com>

	* glom/mode_design/fields/box_db_table_definition.cc
	(check_field_change): Check field's glom type directly instead of
	guessing the glom type from its GType, which might produce a wrong
	result with some of the fallback types used with SQLite.

	* glom/libglom/connectionpool_backends/sqlite.cc (recreate_table):
	Don't crash if transaction rollback fails without the error variable
	being set.

2009-02-10  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool_backends/sqlite.h:
	* glom/libglom/connectionpool_backends/sqlite.cc: Support dropping and
	changing columns, though changing doesn't yet seem to work reliably
	yet.

2009-02-10  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool_backends/sqlite.cc (recreate_table):
	Use get_value_type() to find out a value's not type, not get_g_type()
	which returns the GType the value stores if it's value type is GType.

	* glom/mode_design/fields/box_db_table_definition.cc (on_adddel_add):
	Don't call on_adddel_changed() just to store the field into the
	document, since on_adddel_changed() does a lot of unnecessary extra
	stuff such as calling change_columns() on the backend, which forces a
	whole table recreation with SQLite.

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

	* glom/base_db.cc: insert_example_data(): Fixed my typo to fix the
	build. Sorry.

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

	* glom/libglom/data_structure/field.[h|cc]: get_gda_type():
	Renamed to get_gda_type_name(). Removed get_gda_g_type() because
	we already have a static get_g_type_for_glom_type(). This gets rids of
	the nasty switch block.
	* glom/base_db.cc: insert_example_data(), get_lookup_value(),
	  get_primary_key_is_in_foundset(): Adapted.

2009-02-09  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool.cc: Added set_server_operation_value(),
	create_server_operation() and perform_server_operation() convenience
	methods to connectionpool backend base class.

	* glom/libglom/connectionpool_backends/sqlite.h:
	* glom libglom/connectionpool_backends/sqlite.cc: Implemented table
	recreation, required for changing or dropping columns, or adding
	primary key columns. The glom type of newly added columns doesn't yet
	seem to be recognized correctly, though.

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

	* glom/utility_widgets/db_adddel/glom_db_treemodel.[h|cc]:
	constuctor/create(): Added a bool find_mode parameter and member
	variable.
	refresh_from_database(): Create a DataModelArray for find mode,
	with the appropriate column types.
	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]:
	Remove the awkward ListStore alternative model for find mode that I
	recently introduced,
	construct_specified_columns(): Instead just specify find_mode=true
	when creating the tree model.

	* glom/mode_data/box_data_list.cc: Simplify this code again
	accordingly.

	* glom/utility_widgets/db_adddel/Makefile.am:
	* glom/utility_widgets/db_adddel/treemodel_with_addrow.[h|cc]:
	* glom/utility_widgets/db_adddel/liststore_with_addrow.[h|cc]:
	* regression_tests/Makefile.am:
	* regression_tests/test_treemodel_dynamic_cast.cc:
	Removed these because they are no longer used.

2009-02-08  Johannes Schmid  <jschmid@openismus.com>

	* glom/libglom/data_structure/Makefile.am:
	* glom/libglom/data_structure/parameternamegenerator.cc:
	* glom/libglom/data_structure/parameternamegenerator.h:
	New class to generate simple unique holder names

	* glom/base_db.cc (insert_example_data):
	Use the new ParameterNameGenerator class

2009-02-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: get_field_value_is_unique(): Use the
	Field::get_holder(value) method overload instead of get_holder(),
	avoiding copying the Field and using Field::get_data().
	* glom/libglom/data_structure/field.[h|cc]:
	Removed the get_holder(name) method overload because it is now not
	used.
	Removed get/set_data() and the member variable because they are now
	not used.

2009-02-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: get_table_names_from_database(): Comment out the
	checks for internal tables, because that is now fixed in libgda.
	* glom/mode_data/box_data.[h|cc]:
	* glom/base_db_table_data.[h|cc]: Move refresh_related_fields()
	(which is virtual) and get_related_fields() down the hierarchy so that
	the override is also used by DbAddDel, so related fields are updated
	in the view on list views and related records.
	This really fixes bug #569722 (Johannes Schmid)

2009-02-05  Armin Burgmeier  <armin@openismus.com>

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: Added a
	clarifying comment on why we use a DataAccessWrapper.

2009-02-04  Armin Burgmeier  <armin@openismus.com>

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc
	(DbTreeModelRow::fill_values_if_necessary): Use a
	Gnome::Gda::DataModelWrapper to wrap the resulting cursor-based data
	model. This avoids a special-case for SQLite. Requires libgda trunk.

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

	* glom/glom_document.dtd: Mention the new self_hosted <connection>
	attribute.

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

	* glom/base_db.cc: get_table_names_from_database(): Filter out some
	extra internal table names which may be created/reported by newer
	versions of libgda.

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

	* glom/base_db_table_data.[h|cc]: Added get_row_selected() virtual function,
	used in record_new() instead of an always-null TreeModel::iterator.
	This lets lookups, default values, and calculated values be seen when
	adding new list records or related records.
	* glom/mode_data/box_data_list.[h|cc]:
	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]:
	Added get_row_selected() overrides.
	This should fix bug #569722 (Johannes Schmid)

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

	* glom/base_db.cc: query_execute_select(), query_execute():
	When using --debug_sql, use Statement::to_sql() to show the actual
	SQL with actual values, though this does not seem to work for
	non-SELECT queries.
	* glom/mode_data/box_data.cc: refresh_related_fields(): Some extra
	error checking.

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

	* glom/base_db.cc: :set_field_value_in_database(): Correct a
	copy/paste typo that was probably introduced when switching to using
	parameters, so we now actually specify the primary key, so we really
	change the data in the database.

2009-01-31  Johannes Schmid  <jschmid@openismus.com>

	* glom/application.cc (on_document_load()):
	Reinit cancelled state and some more cleanups.
	Fixes #569721 – Glom behaves strange when you cancel the new dialog

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

	* glom/glom.glade: Make the labels FILL and EXPAND so they really
	align left instead of centering. This broke when I resaved with a
	newer glade-2.

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

	Added some TODO comments where we would like to use SQL parameters
	instead of Field::sql(), if we can figure out how to do that for
	fragments of SQL, or how to refactor the code to parse the whole
	SQL query at once.

2009-01-29  Johannes Schmid  <jhs@openismus.com>

	* glom/base_db.cc:
	* glom/base_db_table_data.cc:
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_list_related.cc:
	Move the rest of queries from sql() to use params where this made sense.
	Some methods generate random sql that is executed elsewhere which means that
	they cannot use parameters themselves. I did not touch those.

	* glom/libglom/data_structure/field.cc:
	* glom/libglom/data_structure/field.h:
	Added get_holder(value, name) to avoid having to use temporary field to
	be able to use get_holder() and get_gda_holder_string()

2009-01-29  Johannes Schmid  <jschmid@openismus.com>

	* glom/base_db.cc:
	* glom/base_db_table_data.cc:
	Converted more queries to use parameters

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

	* glom/base_db.cc: auto_increment_insert_first_if_necessary(),
	get_next_auto_increment_value(), set_database_preferences():
	Use the new templated Gda::Set::add_holder(), simplifying the code.

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

	* glom/libglom/connectionpool_backends/postgres.cc
	attempt_create_database(): Do not pass an empty Set to
	create_operation() because I added a method overload in libgdamm.

2009-01-27  Johannes Schmid  <jschmid@openismus.com>

	* glom/base_db.cc (set_field_value_in_database):
	Fix updating of fields with was broken due to a stupid mistake

2009-01-26  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: get_fields_for_table_from_database(),
	auto_increment_insert_first_if_necessary(),
	get_next_auto_increment_value(), insert_example_data():
	* glom/libglom/data_structure/field.cc: get_holder(): Adapt to
	my set_value()/set_value_as_value() changes in libgdamm to slightly
	simply the code. I guess that a better add_param() method could
	simplify it more.

2009-01-26  Johannes Schmid  <jschmid@openismus.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	Ported more queries to use parameters. query_execute_select() now
	accepts parameters.

	* glom/base_db_table_data.cc:
	* glom/dialog_database_preferences.cc:
	* glom/frame_glom.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	Removed parent_window argument from query_execute_select() call.

	* glom/libglom/data_structure/field.cc:
	* glom/libglom/data_structure/field.h:
	Added get_holder() und get_gda_holder_string() as conveniece methods

2009-01-25  Johannes Schmid <jschmid@openismus.com>

	* glom/base_db.cc:
	Some cosmetic changes to error messages and removed the reference()
	call that is obviously caused by a bug in the postgres provider.

2009-01-24  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/data_structure/fieldtypes.cc (constructor): Added
	GdaBlob as a fallback type for GdaBinary, so that
	Field::set_field_info() sets the correct glom type if the GType is
	GDA_TYPE_BLOB.

	* glom/libglom/data_structure/glomconversions.cc
	(get_pixbuf_for_gda_value): Allow the value having type
	GDA_TYPE_BLOB, and handle this appropriately. These changes fix images
	in SQLite with libgda4, requiring libgda trunk.

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc
	(refresh_from_database): Use STATEMENT_MODEL_RANDOM_ACCESS to create
	the data model when using SQLite, because of bug #567891.

	* glom/mode_design/fields/box_db_table_definition.cc (fill_field): Use
	the field's glom type directly, instead of guessing it from the
	field's GType.

2009-01-23  Johannes Schmid  <jhs@openismus.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	Refactored query_execute() to be able to use additional parameters. Changed
	insert_example_data() to use the new method.

	* glom/libglom/data_structure/field.cc:
	* glom/libglom/data_structure/field.h:
	Added get_gda_g_type() and made get_gda_type() should a wrapper around it

	* glom/base_db_table_data.cc:
	* glom/dialog_database_preferences.cc:
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/navigation/box_tables.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	Removed the unused Gtk::Window* parameter from all query_execute() calls

2009-01-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: insert_example_data(): Catch exceptions as const.
	Remove spaces before (, again.

2009-01-22  Johannes Schmid  <jschmid@openismus.com>

	* glom/base_db.cc (insert_example_data(), get_connection()):
	* glom/base_db.h:
	Fixed insertion of example data by using variables in the sql statement
	instead of inserting the data directly in the statement (which confuses the
	GdaSqlParser and is inefficient)

	* glom/libglom/data_structure/field.cc (get_gda_type()):
	* glom/libglom/data_structure/field.h:
	Added a method to get the gda GType of the field. This is necessary to
	prepare the sql statement so I would rather like to reuse get_sql_type().
	Currntly investigating on gnome-db-list.

2009-01-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.cc: save_changes():
	Revert the Johannes change here too, because it is causing infinite
	loops when adding fields, and probably at other times, repeatedly
	saving the file. The code is not equivalent.

2009-01-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: document_history_add: Revert the previous,
	because I removed the new API from Bakery and just fixed the existing
	Bakery method instead.

2009-01-19  Johannes Schmid  <jschmid@openismus.com>

	* glom/application.cc: document_history_add():
	Avoid a critical warning by adding the recent data instead of
	letting Gtk::RecentManager query for non-existing uris which causes a
	Gtk-Critical. Requires new bakery trunk

	* glom/libglom/document/document_glom.cc:
	Don't duplicate code from Bakery.

1.9.0:

2009-01-16  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Update the required libgda(mm) versions.

2009-01-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade: initial dialog: Correct the button order, which
	seems to have been broken when re-saving with glade-2. The other
	dialogs seem OK.
	* glom/libglom/data_structure/fieldtypes.cc: Constructor:
	* glom/mode_design/fields/box_db_table_definition.cc: fill_fields():
	Comment out some debug output.

2009-01-14  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool_backends/postgres.cc (change_columns):
	When changing column types, only attempt to convert data if
	Field::get_conversion_possible() returns TRUE, otherwise just change
	the column type without trying to convert the data.

	* glom/libglom/connectionpool.cc (change_columns): Added a TODO
	comment about not failing when data could not be converted to the new
	column type.

	* glom/mode_design/fields/box_db_table_definition.cc
	(get_field_definition): Set the glom type explicitely on the result
	field, so that we don't have to guess from the GType.

2009-01-13  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.cc add_column(): Don't set the
	autoincrement field for the newly added column since we do control
	this ourselves in Glom.

2009-01-13  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool.cc: Explain that when changing a table's
	primary key we are changing two columns, in response to Murray's
	previously added TODO comment. Don't compile add_column(),
	drop_column(), change_columns() in client only mode.

	* glom/libglom/connectionpool_backends/postgres.h:
	* glom/libglom/connectionpool_backends/postgres.cc: Added
	postgres-specific code for changing a column's type, to allow
	conversions from/to date and time fields.

	* glom/mode_design/fields/box_db_table_definition.h:
	* glom/mode_design/fields/box_db_table_definition.cc: Removed
	commented-out code that did the same before I moved the functionality
	to the connectionpool backend.

2009-01-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc: change_columns(): Added a TODO
	comment asking why we would ever want to change multiple columns.
	Changing just one columns would make the function simpler.

2009-01-12  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool.cc: Added add_column(), change_column(),
	drop_column(), using a generic implementation via libgda's DDL API.

	* glom/libglom/connectionpool_backends/postgres.h:
	* glom/libglom/connectionpool_backends/postgres.cc:
	* glom/libglom/connectionpool_backends/Makefile.am: Added a base class
	for the two postgres backends, implementing the common functionality.

	* glom/libglom/connectionpool_backends/postgres_self.h:
	* glom/libglom/connectionpool_backends/postgres_central.h:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/connectionpool_backends/postgres_central.cc: Use the
	Postgres base class, instead of deriving directly from
	ConnectionPoolBackend.

	* glom/mode_design/fields/box_db_table_definition.h:
	* glom/mode_design/fields/box_db_table_definition.cc: Use the
	connectionpool add_column(), drop_column() and change_column()
	functions instead of using postgres-specific code from
	glom_postgres.cc. There is maybe a drawback concerning data conversion
	when changing column types, but I'll re-add the relevant code to the
	postgres connectionpool backend in the near future.

	* glom/glom_postgres.h:
	* glom/glom_postgres.cc: Removed postgres_add_column() and
	postgres_change_column_extras().

	* glom/main.cc: Adapt to
	check_postgres_gda_client_is_available_with_warning() now being in
	ConnectionPoolBackends::Postgres instead of
	ConnectionPoolBackends::PostgresCentral.

2009-01-12  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade: Allowed a recent version of glade-2 to resave this.
	The changes seem harmless, just adding things, but we will see.

2009-01-12  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Increase version to 1.9.0, in anticiaption of a first
	unstable 1.9/1.10 release.

2009-01-12  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade: Main window: Correct the order of the Records: and
	Found: labels, which became confused at some point, maybe during 1.8.

2009-01-12  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_find/box_data_list_find.cc: fill_from_database():
	Call DbAddDel::set_columns_ready() so the treeview actually shows some
	columns.
	* glom/utility_widgets/db_adddel/Makefile.am:
	* glom/utility_widgets/db_adddel/treemodel_with_addrow.[h|cc]: A new
	common MI abstract base class for treemodels that have the extra empty
	row for adding rows.
	* glom/utility_widgets/db_adddel/liststore_with_addrow.[h|cc]: A new
	treemodel derived from ListStore and the new base class, for use with
	find mode.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h: Derive from
	the new base class.
	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]:
	construct_specified_columns(): Create the ListStore model for find mode.
	Use the model via the base class where possible, so we can use the
	find mode model too.
	Avoid changing the data in the database when in find mode.

	This makes find mode work again in the list view, fixing bug #565579.

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

	* glom/base_db.[h|cc]: Added update_gda_metastore_for_table().
	* glom/mode_design/fields/box_db_table_definition.cc
	  on_adddel_add(), on_adddel_delete(), postgres_change_column():
	Call it, but it does not seem to work.
	New fields are immedietaly reported as not found (on the command line)
	and field type changes are reverted when reopening the dialog.

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

	* glom.desktop.in.in: Removed the encoding line because it is deprecated
	according to http://standards.freedesktop.org/desktop-entry-spec/1.0/apc.html
	and lintian (debian) complains about it.

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

	* glom/mode_data/box_data_details.h: show_tool_pallete(): Make this
	non-virtual because there are no overrides.
	* glom/mode_find/box_data_details_find.cc: constructor,
	fill_from_database(): Hide the tool palette, because it is useless in
	Find mode.

2008-12-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.h: Documented two methods.
	* glom/mode_design/fields/box_db_table_definition.cc: on_adddel_changed():
	Warn on stdcerr if the newly-added field seems unknown to the database,
	showing that the GdaMetaStore is not being updated automatically.

2008-12-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: cleanup(): Clear the cached connection,
	to stop Glom from using a connection that has been disconnected.

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

	* glom/base_db.cc: get_primary_key_is_in_foundset(): Avoid a crash
	when (unusually) the primary key is not known.

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

	* glom/libglom/data_structure/layout/layoutitem_text.cc:
	Copy constructor and operator=: Copy the underlying text, not just
	the smartpointer to it. This stops us from accidentally changing the
	empty available template parts in reports.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/309417
	(elmergato)

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

	* glom/mode_design/users/dialog_groups_list.cc
	on_button_group_delete():
	* glom/mode_design/users/dialog_users_list.cc
	on_button_user_delete(), on_button_user_add(),
	on_button_user_new(), on_button_user_edit():
	Add missing quotes around user and group names in SQL queries.

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

	* glom/base_db.[h|cc]: Split query_execute() into query_execute() and
	query_execute_select(), returning just a bool for query_execute(),
	as suggested by a TODO because of the changed API in libgda 4.0.
	* Many files: Call the correct method.

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

	* glom/base_db.cc: query_execute(): Catch ServerProviderError
	exceptions too. This needs the latest libgdamm.

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

	* glom/mode_design/fields/box_db_table_definition.cc:
	get_field_definition(): Actually store the primary-key and unique
	details. This was a regression since the port to libgda 4.0.

2008-12-17  Armin Burgmeier  <armin@openismus.com>

	* glom/base_db.cc (create_table_with_default_fields): Reverted the
	previous change. People can choose not to show the "comments" or
	"description" columns in their layouts. We'll later support removing
	columns by recreating the whole table.

2008-12-17  Armin Burgmeier  <armin@openismus.com>

	* glom/base_db.cc (create_table_with_default_fields): Don't create the
	"comments" and "description" columns if the database system does not
	support removing columns.

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc
	(fill_values_if_necessary): Adapt to libgdamm API change.
	Gda::DataModelIter::move_at_row has been renamed to move_to_row.

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

	* glom/libglom/connectionpool.cc: connect(): Store a cache of the
	connection for 30 seconds, to avoid unnecessary reconnects. Clear the
	cache when setting the username/password/database, to force a reconnect.

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

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	refresh_from_database(): Use STATEMENT_MODEL_CURSOR instead of
	ITER_MODEL_ONLY, as needed by libgda-4.0.

2008-12-15  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/document/document_glom.cc (set_table_fields): Fixed
	logic so that the document is set to be modified when the new fields
	differ from the old fields, not when they compare equal.

	* glom/libglom/document/document_glom.h: Also copy the m_info member
	in DocumentTableInfo's copy constructor and assignment operator.

	* glom/base_db.cc: Update the libgda meta store after having created a
	new table, so that get_fields_for_table_from_database works correctly
	for the new table. These changes fix creating new tables.

2008-12-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/connectionpool_backends/sqlite.cc:
	* glom/libglom/data_structure/glomconversions.cc:
	* glom/libglom/document/document_glom.cc:
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_portal.cc:
	* glom/mode_data/flowtablewithfields.cc:
	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/relationships_overview/dialog_relationships_overview.h:
	* glom/relationships_overview/printoperation_relationshipsoverview.cc:
	* glom/translation/window_translations.cc:
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/calendar/glomcalendar.cc:
	* glom/utility_widgets/calendar/glomcalendar.h:
	* glom/utility_widgets/calendar/glomgtkcalendar.h:
	* glom/utility_widgets/canvas/canvas_group_resizable.cc:
	* glom/utility_widgets/canvas/canvas_item_movable.cc:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/egg/toolpalette/eggtoolpalette.h:
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable_dnd.cc:
	* glom/utility_widgets/sidebar.cc: Avoided compiler warnings, mostly
	commenting out unused parameters.

2008-12-15  Johannes Schmid  <jhs@Obelix>

	* glom/frame_glom.cc:
	Fixed a warning (actually avoided a sprintf completely...)

	* glom/libglom/connectionpool_backends/postgres_central.cc:
	* glom/libglom/connectionpool_backends/postgres_central.h:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	Fixed creating of databases. Database is no created though things break
	at a latter stage.

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

	* Many files: Remove tabs, and spaces before ( and generally fix some
	old Johannes-esque formatting.

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

	* glom/libglom/data_structure/field.[h|cc]: Store the primary_key and
	unique_key details as bools in the C++ class, because we cannot
	easily get that from libgda-4.0, so we at least remember that
	information from the document. If we can get it from the database
	somehow then we can do that later.
	* glom/mode_design/fields/dialog_fielddefinition.cc: get_field():
	Store the primary_key and unique_key details in the C++ class.
	We previously stored them info Gda::Column but that code was commented
	out during the port to libgda-4.0.

	There is also a crash workaround in Gda::Holder and a refcount fix
	in DataModelIter in libgdamm. With this we can now actually view data.

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

	* glom/libglom/connectionpool.cc: connect(): Call update_meta_store()
	here.
	* glom/libglom/data_structure/fieldtypes.cc: Constructor,
	* glom/base_db.cc: get_fields_for_table_from_database(): Do not call
	update_meta_store() here, because ConnectionPool::connect() has
	already called it. This makes things faster but there is still some
	slowness.

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

	* glom/libglom/data_structure/fieldtypes.cc: Constructor,
	* glom/base_db.cc: get_fields_for_table_from_database():
	Use the new get_meta_store_data() method overload with no filter
	parameter to simplify the code slightly.
	Add debug output to show how often we call update_meta_store() and
	how awfully slow it is.

2008-12-11  Murray Cumming  <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/dialog_existing_or_new.[h|cc]: Also check an alternative
	directory path for the examples because an (unofficial) Ubuntu package
	installs them in an unexpected location. I would rather find out
	how/why that is happening though.

2008-12-10  Johannes  <jschmid@openismus.com>

	* configure.in:
	Depend on libgdamm-4.0, libgda-postgres-4.0 and pygda-4.0

	* glom/main.cc: Call Gnome::Gda::Init() without arguments

	* glom/base_db.cc:
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool_backends/postgres_central.cc:
	* glom/libglom/connectionpool_backends/postgres_central.h:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/connectionpool_backends/postgres_self.h:
	* glom/libglom/connectionpool_backends/sqlite.cc:
	* glom/libglom/connectionpool_backends/sqlite.h:
	* glom/libglom/data_structure/field.cc:
	* glom/libglom/data_structure/fieldtypes.cc:
	* glom/libglom/python_embed/py_glom_relatedrecord.cc:
	* glom/libglom/test_connectionpool.cc:
	* glom/libglom/utils.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* regression_tests/test_parsing_time.cc:

	Ported gda calls to libgda 4.0. This does mostly involve the removal of Gda::Client
	and some more API changes (Gda::ParamList => Gda::Set, Gda::Parameter => Gda::Holder).
	Some bits are still missing which involves creating database for Postgres (sqlite works) and
	several checks if postgres is installed that have been performed in the past. Also, the
	set_unique_key() and set_primary_key() methods of Gda::Column have no replacement in 4.0.
	All things that are not finished are marked with "TODO_gda:".

2008-12-09  Armin Burgmeier  <armin@openismus.com>

	* glom/application.h:
	* glom/application.cc: Set "Users" menu item in "Developer" menu
	insensitive when the database does not support users.

	* glom/frame_glom.cc: Don't ask for user/password for SQLite
	connections.

	* glom/libglom/data_structure/glomconversions.cc
	(get_text_for_gda_value): Really allow TIME values to be strings.

	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool_backends/postgres_central.h:
	* glom/libglom/connectionpool_backends/postgres_self.h:
	* glom/libglom/connectionpool_backends/sqlite.h: Added a
	supports_remote_connection() virtual function to the ConnectionPool
	backends.

	* glom/libglom/connectionpool.cc: Don't advertize the Glom document
	via avahi when the database does not support remote connections, such
	as SQLite.

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

	* glom/dialog_import_csv.[h|cc]:
	validate_primary_key(): Avoid a null pointer dereference (crash) if
	there is no primary key, though that should never happen now.
	handle_line(), import(): Use a sorted tree model so the fields list is
	alphabetically sorted.
	Ubuntu bug #https://bugs.launchpad.net/ubuntu/+source/glom/+bug/306593
	(elmergato)

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

	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_users_list.cc: Constructors:
	Do not enable row drag and drop on the treeviews, because it is not
	used and it just confuses users who trigger it accidentally.
	This was just some left-over code from when these classes were started
	by copying the layout dialog.
	As mentioned in Ubuntu bug
	https://bugs.launchpad.net/ubuntu/+source/glom/+bug/299573
	(elmergato)

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

	* glom/dialog_existing_or_new.cc: Constructor: When the examples
	directory does not exist, mention the path in the stderr message, to
	help us to debug the problem.

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

	* glom/libglom/connectionpool.cc: cleanup(): Check for a null
	m_backend, to avoid a crash when quitting Glom without opening a file.
	I added some more checks elsewhere.

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

	* glom/utility_widgets/canvas/canvas_group_grid.cc: create_lines():
	Do not create a GooCanvasGrid with 0 steps, so Glom works with versions
	of GooCanvas without the bug fix.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/303453
	(elmergato)

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

	* glom/combobox_fields.cc: on_cell_data_title(): Pass a ustring to
	set_property() for the (None) item, so it really shows up.
	set_property() cannot handle a char* there, it seems.
	For instance, this means that the choices fields can be cleared again.
	This regression probably happened when we first ported Glom to Maemo.
	Bug found by Arq. Maximiliano Meilán.

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

	* glom/box_reports.cc: on_adddel_Add(): Set a default title based on
	the name, when adding a new report, as we do for tables, relationships,
	print layouts, etc.

2008-12-05  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/data_structure/glomconversions.h:
	* glom/libglom/data_structure/glomconversions.cc: Replaced
	get_escaped_binary_data by escape_binary_data_postgres() and
	escape_binary_data_sqlite(). SQLite uses a different format for binary
	data.
	(get_text_for_gda_value): Allow DATE and TIME values to be strings,
	and parse them always in ISO format. This is used for SQLite within
	which we store dates and times as ISO-formatted strings.

	* glom/libglom/data_structure/field.cc (glom_unescape_text): Don't
	unescape double quotes, as they are not escaped in glom_escape_text
	either.
	(sql): Use the escape_binary_data_postgres or
	escape_binary_data_sqlite functions from glomconversions, depending on
	the preferred format.
	(from_sql): Use the unescape_binary_data_postgres or
	unescape_binary_data_sqlite functions from glomconversions, depending
	on the preferred format.

2008-12-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/foundset.[h|cc]: Added has_no_criteria()
	to check if it has a sort order or where clause.
	* glom/libglom/document/document_glom.[h|cc]: Added
	set_criteria_current(), like set_layout_current(), so we can
	temporarily remember the sort (and find) for a table while navigating.
	DocumentTableInfo: Hand-wrote copy constructor and operator=() rather
	than depend on generated ones.
	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]:
	Added signal_sort_clause_changed, emitted when the user clicks on
	the column header, which already caused a refresh with that sort.
	* glom/mode_data/box_data_list.[h|cc]: Respond to a sort change in the
	DbAddDel widget, saving it temporarily in the document.
	* glom/mode_data/frame_glom.cc: show_table(): Use the remembered
	criteria, from the document, where there is one.

	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/303422
	(elmergato)

2008-12-02  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/data_structure/fieldtypes.[h|cc]:  Added a fallback map
	that specifies types that can be used when the database does not support
	another type natively.

	* glom/libglom/data_structure/field.cc (set_field_info): Only set glom
	type of the field based on the GType of the info if it represents a
	different type. This prevents losing type information of the field
	when the type for this field used a fallback.

	* glom/libglom/data_structure/glomconversions.cc
	(get_text_for_gda_value): Don't complain for numeric types when the
	gtype is double, because this is used when the database system does
	not support GdaNumeric natively.

2008-12-01  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Depend on the latest goocanvasmm version.

2008-11-30  Armin Burgmeier  <armin@openismus.com>

	* Makefile.am: Removed the DISTCHECK_CONFIGURE_FLAGS setting, since
	the --disable-scrollkeeper option is already passed to configure
	during distcheck by other means. This allows setting custom
	DISTCHECK_CONFIGURE_FLAGS. Bug #562688.

2008-11-29  Armin Burgmeier  <armin@openismus.com>

	* configure.in: Fixed the description of the --with-postgres-utils
	option to match the default.

2008-11-29  Armin Burgmeier  <armin@openismus.com>

	* Makefile.am: Changed DISTCLEAN_FILES to DISTCLEANFILES, to fix make
	distcheck.

2008-11-28  Armin Burgmeier  <armin@openismus.com>

	* win32/build-installer:
	* win32/glom.iss.in: Update for Glom 1.8.

2008-11-28  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/data_structure/field.h:
	* glom/libglom/data_structure/field.cc: Added a sql_format
	enumeration, and added a format paramater to sql() and from_sql().
	This is needed for sqlite because it does not understand the
	E'binarydata'::bytea representation for binary data, which is a
	postgres extension.

	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool_backends/postgres_central.h:
	* glom/libglom/connectionpool_backends/postgres_self.h:
	* glom/libglom/connectionpool_backends/sqlite.h: Added a
	get_sql_format() virtual method that returns the SQL format of the
	backend.

	* glom/libglom/data_structure/fieldtypes.cc
	(get_string_name_for_gdavaluetype): Added some fallbacks for types
	sqlite does not support. This means we are storing numerics as
	doubles, and dates and times as strings in sqlite.

	* glom/libglom/data_structure/glomconversions.cc
	(get_double_for_gda_value_numeric): Handle the value being a double,
	since we use this when the database system doesn't has a "numeric"
	type.

	* glom/dialog_import_csv.cc:
	* glom/dialog_import_csv_progress.cc:
	* glom/frame_glom.cc: Export/Import data always in postgres format,
	because this is what we used to do.

	* glom/base_db.cc (add_standard_groups): Make this a no-op in case the
	database system doesn't support users.
	(insert_example_data): Convert data from the example file from
	postgres format to the format the current database backend uses before
	importing.
	(count_rows_returned_by): For sqlite the result of the SELECT COUNT
	query is int, not int64, so handle that case as well.

	* glom/glom_privs.cc (get_current_privs): Assume we have all possible
	privileges in case the database system doesn't support users.

	* glom/utility_widgets/filechooserdialog_saveextras.cc
	(set_extra_newdb_hosting_mode): Fixed central hosting/self hosting
	mismatch (the default option in the dialog was wrong).

2008-11-26  Murray Cumming  <murrayc@murrayc.com>

	* glom/relationships_overview/dialog_relationships_overview.[h|cc]:
	Respond to changes in the scrolledwindow adjustments to increase the
	canvas size when the window size changes, so it is always big enough,
	avoiding dead areas.
	Bug #559157 (Iain Lane).

2008-11-25  Armin Burgmeier  <armin@openismus.com>

	* glom/mode_data/dialog_layout_export.cc (get_layout_groups): Fixed a
	crash which was caused by accessing mapGroups[1] in a
	default-constructed vector. Bug #557052.

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

	* glom/libglom/utils.[h|cc]:
	Added a show_ok_dialog() overload that takes the parent_window as a
	pointer to simplify code by avoiding the need for a null check by
	callers.

	* glom/mode_design/fields/box_db_table_definition.cc:
	check_field_change(): Refuse to leave no primary key set because
	the rest of Glom expects each table to have one, by refusing to
	directly unset a primary key.
	When setting a primary key, ask the user if they really want to _change_
	the primary key, and do the suitability checks that were previously in
	change_definition().
	change_definition(): When setting a primary key, unset the previous
	primary key first.

	This prevents the table from ever having no primary key.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/299549
	(elmergato)
	Glom bug #562147

2008-11-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc:
	set_found_set_from_primary_key_value(): Do not crash if there is no
	primary key, though we should not allow tables with no primary keys.

2008-11-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc: update_table_in_document_from_database:
	Ignore the default_value property from libgda/database, because we only
	use it from the document, because libgda returns weird values.
	This prevents the loss of the default value information when reloading
	a document.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/299896
	(elmergato)

2008-11-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc
	user_added(): Call set_value_key(), like the old code did.
	Otherwise, each field edit adds another record, generating a new primary
	key each time, resulting in duplicate records.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/300819
	(elmergato)

2008-11-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/users/dialog_groups_list.cc: on_button_group_new():
	Put quotes around the group name, to avoid a problem when it contains a
	space.

2008-11-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]: Removed
	the unused signal_user_requested_delete signal.
	on_MenuPopup_activate_Delete() (also called when the button is pressed):
	Actually call user_requested_delete(), so that the user can delete a
	list row. I forgot to do this when moving the other stuff down into
	DbAddDel.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/299853
	(elmergato)

2008-11-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/glomconversions.cc
	get_text_for_gda_value: Add a more specific warning when getting a
	text representation for a boolean, as done by the import dialog, though
	it should not really. Return translated true/false strings in that case.

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

	* glom/glom_developer.glade: Corrected a button name to avoid a crash
	when editing reports.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/300054

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

	* glom/glom.glade: dialog_import_csv: Added a lable for advice about
	the expected data format.
	* glom/dialog_import_csv.cc: Constructor: Generate advice text in the
	label, showing an example of the expected ISO date format.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/299591

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

	* glom/frame_glom.cc: on_menu_file_export(): Correct the order of
	parameters to Document_Glom::get_data_layout_groups_plus_new_fields()
	so we actually get a sensible default set of fields instead of nothing.
	This was only a problem since the addition of the active-layout feature
	on trunk.

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

	* glom/glom.glade: Mark a tooltip as translatable in the initial dialog.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/299556

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

	* glom/libglom/data_structure/glomconversions.c:
	sanity_check_date_text_representation_uses_4_digit_years():
	Default to dd/mm/yyyy for dates when the translator has not provided
	a 4-digit-year date syntax for the locale, printing a warning that the
	default might not be suitable. This seems better than failing.

2008-11-21  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.h: Changed connect() and
	create_database() functions of Backend to always take an error
	parameter as last argument, to save ugly #ifdefs. The ConnectionPool
	is the only one accessing these functions anyway, so this is not part
	of "public" API.

	* glom/libglom/connectionpool_backends/postgres_self.h:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/connectionpool_backends/postgres_central.h:
	* glom/libglom/connectionpool_backends/postgres_central.cc: Adapt.

	* glom/libglom/connectionpool_backends/sqlite.h:
	* glom/libglom/connectionpool_backends/sqlite.cc:
	* glom/libglom/connectionpool_backends/Makefile.am: Added a sqlite for
	creating and connecting to SQlite databases.

	* glom/libglom/document/document_glom.h:
	* glom/libglom/document/document_glom.cc: Replace self_hosted
	attribute by a hosting_mode one in the document XML, which can be
	either "postgres_central", "postgres_self" or "sqlite".

	* glom/utility_widgets/filechooserdialog_saveextras.h:
	* glom/utility_widgets/filechooserdialog_saveextras.cc: Offer to store
	the data in a SQlite database.

	* glom/application.h:
	* glom/application.cc:
	* glom/dialog_connection.cc:
	* glom/frame_glom.cc: Handle the SQlite case, create corresponding
	ConnectionPool backend. It is possible to create a SQlite database
	this way, but some initial queries still fail yet because they are
	specific to postgres.

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

	* glom/libglom/data_structure/glomconversions.[h|cc]:
	Added sanity_check_date_parsing() and
	sanity_check_date_text_representation_uses_4_digit_years().
	* glom/main.cc: Use them to show informative warnings at startup.
	The translators comment for %x mentions those warnings now too.
	* po/es.po: Add a translation for %x because the es locales do not
	use 4-digit years for this.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/300057

	* glom/test_pyembed.cc: Add a cast to avoid a warning.
	* glom/utility_widgets/db_adddel/db_adddel.cc: Initialize InnerIgnore
	members to avoid warnings, though these would always be initialized in
	real life.

2008-11-17  Armin Burgmeier  <armin@arbur.net>

	* glom/libglom/connectionpool.h: Removed postgres-specific functions,
	added a common "Backend" interface. Simplified the code logic in
	connect().

	* glom/libglom/connectionpool_backends/postgres_self.h:
	* glom/libglom/connectionpool_backends/postgres_self.cc:
	* glom/libglom/connectionpool_backends/postgres_central.h:
	* glom/libglom/connectionpool_backends/postgres_central.cc:
	* glom/libglom/connectionpool_backends/Makefile.am: Added backends
	for postgres central and self hosting.

	* glom/libglom/gst-package.c:
	* glom/libglom/test_connectionpool.cc:
	* glom/libglom/connectionpool.cc:
	* glom/libglom/document/document_glom.cc:
	* glom/main.cc:
	* glom/frame_glom.cc:
	* glom/dialog_connection.cc:
	* glom/application.cc:
	* glom/dialog_new_self_hosted_connection.cc: Adapt other glom code,
	instantate the backends appropiately.

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

	* glom/utility_widgets/canvas/canvas_group_grid.[h|cc]:
	Use the new Goocanvas::Grid instead of creating lots of lines ourselves.
	We still need this class to add the rules and do the snapping though.

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

	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	* glom/utility_widgets/canvas/canvas_group_resizable.cc:
	Adapt to goocanvasmm enum name changes.

2008-11-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade: dialog_import_csv: Set the GtkSpinButton page size to
	0 because recent GTK+ warns that no other value is allowed.

2008-11-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade: Remove the system name label. It is in the window
	title and this has always been a little weird. I never found a way to
	make it pretty without wasting space, so it is now gone.
	* glom/frame_glom.[h|cc]:
	Removed show_system_name().
	set_databases_selected(),
	on_menu_developer_database_preferences():
	* glom/application.cc: Constructor: Don't call it.

2008-11-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.[h|cc]: init_menus(): Added Developer/ActivePlatform
	sub menu.

	* glom/libglom/document/document_glom.[h|cc]:
	Added set/get_active_layout_platform(), and
	set/get_default_layout_platform().
	get_data_layout_groups_default(), get_data_layout_groups_plus_new_fields(),
	set/get_data_layout_groups(), get_data_layout_groups_have_any_fields():
	Added a layout_platform parameters.
	load_after(), save_before(): Save the layout_platform for each layout.
	* glom/frame_glom.cc: show_table(), on_menu_file_export():
	* glom/mode_data/notebook_data.[h|cc]: init_db_details(),
	  on_switch_page_handler():
	* glom/mode_data/box_data.[h|cc]: init_db_details(),
	  get_table_fields_to_show(), get_data_layout_groups()
	* glom/mode_data/box_data_calendar_related.cc: init_db_details(),
	  prepare_layout_dialog():
	* glom/mode_data/box_data_details.cc: init_db_details(),
	  create_layout(), on_button_new(),
	  on_flowtable_layout_changed(), print_layout(),
	  prepare_layout_dialog():
	* glom/mode_data/box_data_list.cc: on_adddel_user_reordered_columns(),
	  create_layout_get_layout(), prepare_layout_dialog():
	* glom/mode_data/box_data_list_related.cc: init_db_details(),
	  prepare_layout_dialog():
	* glom/mode_data/box_data_portal.cc: init_db_details():
	* glom/mode_data/dialog_layout.[h|cc]: set_document():
	* glom/mode_data/dialog_layout_calendar_related.[h|cc]: set_document():
	* glom/mode_data/dialog_layout_details.[h|cc]: set_document(),
	  save_to_document():
	* glom/mode_data/dialog_layout_list_related.[h|cc]: set_document():
	* glom/mode_find/notebook_find.[h|cc]:
	* glom/mode_find/box_data_details_find.[h|cc]:
	* glom/mode_find/box_data_list_find.[h|cc]
	* glom/utility_widgets/datawidget.cc: offer_related_record_id_find():
	* glom/utility_widgets/dialog_choose_id.[h|cc]: on_box_find_criteria(),
	  init_db_details():
	* glom/utility_widgets/dialog_layoutitem_properties.[h|cc]:

	Adapted to changed Document_Glom API, taking note of the active platform.

	This allows people to define a different layout to be used when running
	on a Maemo platform.

	* glom/libglom/python_embed/py_glom_record.cc:
	* glom/libglom/python_embed/py_glom_related.cc:
	Added some casts to avoid warnings about literal to char* conversions.


This is the trunk branch, for Glom 1.9/1.10. Among other things, we will now
port to libgda-4.0.

See also the glom-1-8 branch.

1.8.1:

2008-10-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list_related.cc create_layout_get_layout():
	Return the portal as the group instead of trying to get the layout via
	the (not meant to be used) list_related layout name. This makes related
	records portals show the specified fields again, instead of all of them.
	* glom/mode_data/box_data_manyrecords.cc:
	* glom/mode_data/box_data_manyrecords.h: Remove the useless
	create_layout_get_layout() override.

2008-10-21  Koop Mast  <kwm@FreeBSD.org>

	* glom/mode_data/notebook_data.cc: constructor:
	Add an ifdef to fix the build in client-only mode.
	Bug #557258

1.8.0:

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

	* glom/dialog_database_preferences.cc:
	* glom/dialog_existing_or_new.cc:
	* glom/dialog_existing_or_new.h:
	* glom/dialog_import_csv.cc:
	* glom/libglom/connectionpool.cc:
	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_choose_field.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/reports/dialog_layout_report.cc:
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	Use Gtk::TreeModel::iterator instead of Gtk::TreeIter
	and Gtk::TreeModel::Path instead of Gtk::TreePath, for
	consistency.

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

	* docs/user-guide/C/figures/glom_import.png:
	* docs/user-guide/Makefile.am:
	* docs/website/screenshots/glom_import.png:
	Added new screenshot.

	* glom/dialog_import_csv.cc: Use a more robust way of
	creating TreeModel::Paths, to avoid a crash.

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

	* NEWS: Updated, ready for a 1.8.0 release.
	* configure.in: Depend on the latest goocanvasmmm, because of
	my API change.
	* glom/dialog_import_csv.cc:
	* glom/dialog_import_csv.h: Some code syntax changes.

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

	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	get_canvas_table_cell_child(): Adapted for my
	Goocanvas::Item::get_child_property() API change.

1.7.3:

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

	* glom/icons/16x16/glom-line-horizontal.png
	* glom/icons/16x16/glom-line-vertical.png: Incredibly bad initial
	versions of these icons, featuring actual lines.

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

	* glom/mode_design/print_layouts/box_print_layouts.cc:
	on_adddel_user_added(): Set a default title based on the name,
	when adding a print layout.

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

	* glom/mode_design/print_layouts/box_print_layouts.[h|cc]:
	Rename signal handler to make them clearer.

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

	* glom/mode_data/box_data_portal.cc
	* glom/base_db.h
	* glom/base_db.cc:
	Moved code from Box_Data_Portal::init_db_details() into
	set_found_set_where_clause_for_portal() so it can be reused.
	Added get_field_value_in_database() overload that
	takes a FoundSet.
	* glom/mode_design/print_layouts/canvas_layout_item.cc
	* glom/mode_design/print_layouts/canvas_layout_item.h: moved some code into
	get_rows_count_for_portal() so it can be reused.
	* glom/frame_glom.cc
	* glom/mode_design/print_layouts/canvas_print_layout.cc
 	* glom/mode_design/print_layouts/canvas_print_layout.h:
	fill_with_data(): Added and used some helper functions to fill tables
	(for portals) with data so that portals actually show field data when
	printed.

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

	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h:
	append_appropriate_row(): Make sure that this returns something even
	for related records portals, so we can add buttons, text, and images to
	them again.

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

	* glom/glom_developer.glade:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h:
	* glom/mode_data/dialog_layout_export.cc:
	* glom/mode_data/dialog_layout_export.h:
	* glom/mode_data/dialog_layout_list.cc: Renamed some widgets to make the
	code just slightly less weird. Also hid Add Group for list layouts.

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

	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	* glom/mode_design/print_layouts/canvas_layout_item.h: set_layout_item():
	Moved some code into a create_canvas_item_for_layout_item() function so
	we can use it to create table cell items, without putting them inside
	groups (resizables), because goocanvas cannot handle that.

2008-09-26  Johannes Schmid  <johannes.schmid@openismus.com>

	* configure.in: Require correct version for bakery and goocanvasmm

	* glom/mode_data/flowtablewithfields.cc:
	* glom/mode_data/flowtablewithfields.h:
	* glom/utility_widgets/flowtable_dnd.cc:
	* glom/utility_widgets/flowtable_dnd.h:
	* glom/utility_widgets/layouttoolbar.cc:
	Added support for dragging related records to the layout. See #358092

1.7.2:

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

	* configure.in: Increase the required goocanvasmm version, so we get the
	grid lines.

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

	* po/POTFILES.in: Mention a new file.

2008-09-09  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.cc: Implemented check_user_is_not_root()
	for Windows, using some code from postgresql.

2008-09-09  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/spawn_with_feedback.cc: Refactored the code, removed
	all blocking calls and use the CreateProcess() API on Windows to hide
	the console window of child processes.

	* glom/libglom/connectionpool.cc: Always call the spawn API with
	double quotes for the path to the executable, because CreateProcess()
	does not support single quotes.

2008-09-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h:
	* glom/mode_data/dialog_layout_list.cc: Add a column for the column width,
	but only show it for the list. Also hide the columns count column for
	the list.
	* glom/libglom/document/document_glom.cc: load_after_layout_group(),
        save_before_layout_group(): Save the column widths for items
	in the document.

	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_data/dialog_layout_list_related.h: Remove one set_document()
	method overload, adding the parent_table to the existing one, to simplify
	code and to allow us to preserve LayoutItem_Portal details such as print
	layout positions, even when no relationship is chosen yet.
	* glom/mode_data/box_data_list_related.cc: Adapted.
	* glom/mode_design/print_layouts/canvas_print_layout.cc: Adapted.

	* glom/mode_design/print_layouts/canvas_layout_item.cc: create_item():
	For the portal, create a rect cell for each field in the layout. Still
	not very useful, but gradually becoming more sensible.

	* glom/utility_widgets/db_adddel/db_adddel.cc: on_treeview_column_resized():
	Do not save the column width if it is the last column because that autosizes
	to take all remaining space.
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h: Remove the reset_column_widths
	stuff, because ignoring the last column is a better fix.

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

	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_calendar_related.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	* glom/mode_data/box_data_portal.cc:
	* glom/mode_data/box_data_portal.h: Added init_db_details()
	method overloads that take a parent table instead of a
	portal, to use when no relationship has been chosen yet.
	* glom/mode_data/dialog_layout_calendar_related.cc:
	* glom/mode_data/dialog_layout_calendar_related.h:
	Added set_document() that takes a table instead of a portal,
	as the other portal layout dialogs do already.
	* glom/mode_data/flowtablewithfields.cc:
	Specify a from table name instead of a portal when
	no relationship has been chosen yet.
	* glom/mode_data/dialog_layout_list_related.cc: Cope with a
	a null portal, so the user can choose the relationship on this
	dialog without choosing the relationship separately first.
	* glom/mode_data/dialog_layout_details.cc: Do not ask for the
	relationship whenever adding a portal.

	* glom/libglom/utils.cc:
	* glom/libglom/utils.h: Added show_window_until_hide().
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.h:
	Block when showing the layout dialog for a portal.

2008-09-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/layout/layoutitem_portal.cc
	* glom/libglom/data_structure/layout/layoutitem_portal.h: Added
	get/set_print_layout_row_height().
	* glom/mode_data/dialog_layout_list_related.cc
	* glom/mode_data/dialog_layout_list_related.h: Added a set_document()
	that takes the from_table, instead of an existing portal.
	* glom/mode_design/print_layouts/canvas_layout_item.cc: set_layout_item():
	Slightly more sane code, though I'm still just playing.
	* glom/mode_design/print_layouts/canvas_print_layout.h:
	* glom/mode_design/print_layouts/canvas_print_layout.cc
	Added offer_related_records(), used in on_context_menu_edit(). Still needs
	to block on the dialog show.

2008-08-28  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/application.cc:
	Remeber state of layout toolbar when switching modes

2008-08-28  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/application.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/notebook_data.cc:
	Correctly unset the menu item when layout toolbar is shown and don't hide
	layout toolbar when an item is dragged
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	(on_canvas_drag_drop, on_canvas_drag_motion)
	Fixed build error with gtkmm 2.12 (const_cast, see comment)

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

	* glom/base_db.cc offer_field_list(), offer_field_formatting(),
	offer_imageobject(), offer_notebook(): Return the initial item if the user
	cancelled the dialog.

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

	* glom/mode_design/print_layouts/print_layout_toolbar_button.cc:
	* glom/mode_design/print_layouts/print_layout_toolbar_button.h: Added
	get_item_type_from_selection_data().
	* glom/mode_design/print_layouts/window_print_layout_edit.cc: create_empty_item():
	Mention unhandled items on std::cerr.
	on_toolbar_item_drag_data_get(): Get the item type correctly.
	* glom/mode_design/print_layouts/canvas_layout_item.cc: set_layout_item(): Do
	not reference an empty layout item.

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

	* glom/mode_design/print_layouts/action_layout_item.cc:
	* glom/mode_design/print_layouts/action_layout_item.h: Removed this.
	* glom/mode_design/print_layouts/Makefile.am:
	* glom/mode_design/print_layouts/print_layout_toolbar.cc:
	* glom/mode_design/print_layouts/print_layout_toolbar.h:
	* glom/mode_design/print_layouts/print_layout_toolbar_button.cc:
	* glom/mode_design/print_layouts/print_layout_toolbar_button.h:
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h: Use a toolbar like
	the details layout toolbar, which use EggToolPallette.
	* glom/utility_widgets/layouttoolbar.cc:
	* glom/utility_widgets/layouttoolbarbutton.cc:
	* glom/utility_widgets/layouttoolbarbutton.h: Use std::string for filenames
	and parts of filenames.
	* icons/16x16/Makefile.am: Added placeholder images for extra items used on
	print layouts.

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

	* glom/utility_widgets/layouttoolbarbutton.cc:
	* glom/utility_widgets/layouttoolbarbutton.h: Change the constructor to
	take an icon name, to reduce some code elsewhere.
	* glom/utility_widgets/layouttoolbar.cc: Adapted.
	* glom/mode_data/box_data_details.cc:
	* glom/utility_widgets/flowtable_dnd.cc:
	* glom/utility_widgets/flowtable_dnd.h: Correct whitespace.

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

	* glom/utility_widgets/layouttoolbar.cc:
	  Improve the tooltips text.
	* glom/utility_widgets/layouttoolbar.h:
	* po/POTFILES.in: Mention renamed files.

2008-08-24  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/spawn_with_feedback.cc
	(execute_command_line_and_wait_until_second_command_returns_success):
	Set the encoding of the IO channel to read stderr from the child
	process from to "", and set it to be unbuffered. Otherwise, we
	sometimes receive an IO_IN event on Windows, but when trying to read
	any data, then the read() call blocks the whole process forever.

2008-08-23  Armin Burgmeier  <armin@openismus.com>

	* glom/utility_widgets/layouttoolbar.cc: Locate images relative to
	application executable on Windows.

	* win32/build_installer:
	* win32/glom.iss.in: Added pixmaps to the installer.

2008-08-22  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/mode_data/box_data_details.h:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/dragbar.cc: renamed):
	* glom/utility_widgets/dragbar.h (renamed):
	* glom/utility_widgets/dragbutton.cc: renamed):
	* glom/utility_widgets/dragbutton.h (renamed):
	* glom/utility_widgets/flowtable_dnd.cc:
	* glom/utility_widgets/layouttoolbar.cc: new):
	* glom/utility_widgets/layouttoolbar.h (new):
	* glom/utility_widgets/layouttoolbarbutton.cc: new):
	* glom/utility_widgets/layouttoolbarbutton.h (new):
	Changed names of DragBar to LayoutToolbar and DragButton to
	LayouttoolbarButton

2008-08-22  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.cc: discover_first_free_port): Print
	WinSock error code in case the socket() call fails, since socket
	errors are not reported via errno on Windows, so perror does not yield
	a useful error message.

	* glom/main.cc: Initialize WinSock at startup, so that
	discover_first_free_port() can use the socket API.

2008-08-22  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/application.cc:
	* glom/application.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h:
	Added menuitem to hide/show the layout toolbar (default: off)

	* glom/utility_widgets/dragbutton.h:
	Added a comment

2008-08-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/dragbar.cc:
	* glom/utility_widgets/dragbutton.cc:
	* glom/utility_widgets/dragbutton.h: Whitespace corrections.
	Pass strings as const&. Added a TODO asking for explanation.
	This needs to be renamed to something more layout-editing specific.
	Maybe LayoutToolbar and LayoutToolbarButton.

2008-08-20  Johannes Schmid <jhs@gnome.org>

	* glom/utility_widgets/dragbar.cc:
	* glom/utility_widgets/dragbutton.cc:
	* glom/utility_widgets/dragbutton.h:
	Added labels to the toolitems

	* glom/utility_widgets/egg/toolpalette/eggtoolpalette.c
	(egg_tool_palette_set_style):
	Fixed a bug in eggtoolpalette ("toolbar-style" vs. "style). Also
	fixed in libegg trunk.

	* glom/utility_widgets/sidebar.cc:
	Use GTK_TOOLBAR_BOTH_HORIZ as toolbar style. (Does only work with
	gtk+ >= 2.14)

2008-08-20  Johannes Schmid  <jhs@idefix>

	* glom/utility_widgets/dragbar.cc:
	* glom/utility_widgets/dragbutton.cc:
	* glom/utility_widgets/dragbutton.h:
	Added tooltips to toolitems

2008-08-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/egg/toolpalette/eggtoolitemgroup.c:
	* glom/utility_widgets/egg/toolpalette/eggtoolitemgroup.h:
	* glom/utility_widgets/egg/toolpalette/eggtoolpalette.c:
	* glom/utility_widgets/egg/toolpalette/eggtoolpalette.h:
	* glom/utility_widgets/egg/toolpalette/eggtoolpaletteprivate.h:
	* glom/utility_widgets/egg/toolpalette/testtoolpalette.c: Updated from libegg.
	* glom/utility_widgets/sidebar.cc:
	* glom/utility_widgets/sidebar.h: Fixed the whitespace.
	set_drag_source(): Added the extra parameter for the call to
	egg_tool_palette_set_drag_source().

2008-08-15  Armin Burgmeier  <armin@openismus.com>

	* win32/build_installer:
	* win32/glom.iss.in: We use self-built postgresql binaries again, so
	we don't need to ship all the libraries the official ones are built
	against.

2008-08-12  Armin Burgmeier  <armin@openismus.com>

	* win32/build_installer: Take a revision number as argument, producing
	for instance glom-setup-1.7.1-2.exe.

	* win32/glom.iss.in: Hide the components page, since all components
	are fixed anyway.

	* README: Added some general information on how the installer is
	built.

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

	* glom/libglom/utils.cc:
	* glom/libglom/utils.h: show_help() Add a note that this is a replacement
	for gnome_help_display() until we have something in GTK+.

2008-08-11  Armin Burgmeier  <armin@openismus.com>

	* win32/build_installer:
	* win32/glom.iss.in: Added libeay32.dll and ssleay32.dll to the
	installer. These seem to be required for libpq.dll, which is in turn
	required by the libgda postgres provider.

2008-08-05  Armin Burgmeier  <armin@openismus.com>

	* win32/build-installer:
	* win32/glom.iss.in:
	* win32/querymodules.bat: Updated to fit my new build setup.

2008-08-05  Armin Burgmeier  <armin@openismus.com>

	* glom/dialog_existing_or_new.cc: Changed the path where the example
	files are looked up on Windows, to keep it consistent with the path to
	load glade files from.

2008-08-01  Claude Paroz  <claude@2xlibre.net>

	* glom/glom.glade: Removed translatable property from stock labels.

2008-07-23  Armin Burgmeier  <armin@openismus.com>

	* glom/existing_or_new.h:
	* glom/existing_or_new.cc: Hide the network item on Windows in the
	initial dialog.

2008-07-23  Armin Burgmeier  <armin@openismus.com>

	* glom/glom.glade: Removed the image from the Select button in the
	initial dialog.

	* glom/dialog_existing_or_new.cc: Add the image in the Code, via
	Gtk::Button::set_image. This way the image is not shown when the theme
	doesn't show images on buttons, such as the MS-Windows theme.

2008-07-21  Armin Burgmeier  <armin@openismus.com>

	* glom/main.cc: #ifdef out the atexit() call on Windows since
	__libc_freeres() is not available there.

2008-07-20  Armin Burgmeier  <armin@openismus.com>

	* glom/application.cc: offer_new_or_existing): Fixed the
	non-client-only build. There was a default: marker in a switch
	statement with no code after it.

2008-07-20  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.cc: Windows build fix: winsock2.h
	somehow includes a file that defines a structure called DATADIR, but
	DATADIR is a define glom uses, which breaks the build. Fixed by
	#undefining DATADIR for that include.

2008-07-20  Armin Burgmeier  <armin@openismus.com>

	* glom/Makefile.am: Added glom.rc to the distribution, which is
	required to build Glom on Windows.

2008-07-19  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/dialog_existing_or_new.cc:
	* glom/dialog_existing_or_new.h:
	Don't show "Create database" tab for client only mode

2008-07-17  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/application.cc:
	* glom/application.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/layout_item_dialogs/dialog_buttonscript.h:
	* glom/mode_data/box_data_calendar_related.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/flowtablewithfields.cc:
	* glom/mode_data/flowtablewithfields.h:
	* glom/utility_widgets/buttonglom.cc:
	* glom/utility_widgets/buttonglom.h:
	* glom/utility_widgets/labelglom.cc:
	* glom/utility_widgets/labelglom.h:
	* glom/utility_widgets/layoutwidgetbase.cc:
	* glom/utility_widgets/layoutwidgetutils.cc:
	* glom/utility_widgets/layoutwidgetutils.h:
	* glom/utility_widgets/notebookglom.cc:
	Fixed build with GLOM_ENABLE_CLIENT_ONLY

	* glom/main.cc:
	Allow to pass arguments to Gtk+ like --g-fatal-warnings. Glom did filter those
	as invalid arguments before

1.7.1:

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

	* configure.in: Default to looking for postgres 8.3 instead of 8.2, to make
	life easier for me when distchecking.

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

	* glom/dialog_import_csv_progress.cc: on_idle_import(): Corrected the grammar
	in two strings. Bug #538480 (Andre Klapper).

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

	* glom/notebook_glom.h: Made on_switch_page_handler()
	virtual again, so that the list updates again when moving from the details
	tab. Fixes bug #532721 (Armin Burgmeier).

2008-06-16  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/Makefile.am:
	* glom/utility_widgets/egg/toolpalette/Makefile.am:
	* glom/utility_widgets/egg/util/Makefile.am:
	Fixed distcheck

2008-06-16  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/utility_widgets/egg/toolpalette/Makefile.am:
	Fixed distcheck

2008-06-16  Johannes Schmid  <johannes.schmid@openismus.com>

	* configure.in:
	* glom/Makefile.am:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/dragbar.cc:
	* glom/utility_widgets/egg/Makefile.am:
	* glom/utility_widgets/flowtable_dnd.cc:
	* glom/utility_widgets/sidebar.h:
	* glom/utility_widgets/egg/*:

	Included eggtoolbar instead of using svn:externals to fix distcheck (#520741)

2008-06-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/dialog_existing_or_new.cc:
	* glom/glom.glade:
	* glom/utility_widgets/dragbar.cc: Added comments for translators.
	Bug #538480 (Andre Klapper).

2008-06-07  Armin Burgmeier  <armin@openismus.com>

	* configure.in:
	* config.h.in: Check whether the strptime function is available.

	* glom/libglom/data_structure/glomconversions.cc: parse_time): Don't
	fall back to strptime if strptime is not available, such as on Windows
	(mingw).

	* glom/dialog_existing_or_new.h:
	* glom/dialog_existing_or_new.cc:
	* glom/dialog_import_csv.cc: Windows build fixes, mostly
	#ifndef/#endif pairs around libepc stuff. We also need to #undef iconv
	which seems to be a define to libiconv on Windows, in order to use
	the Glib::Iconv::iconv function.

	* glom/main.cc: Don include <fontconfig/fontconfig.h> on Windows since
	it is not available. It doesn't seem to be used anyway.

2008-05-23  Armin Burgmeier  <armin@arbur.net>

	* glom/libglom/data_structure/field.h:
	* glom/libglom/data_structure/field.cc: Added from_sql() to convert a
	SQL representation to a Gnome::Gda::Value. This is the reverse to the
	sql() function.

	* glom/dialog_import_csv.cc: field_data_func): Remove own unescaping
	code, use Field::from_sql() for preview instead.

	* glom/dialog_import_csv_progress.cc: on_idle_import): Use
	Field::from_sql() to do the actual import. This allows to correctly
	import files that the Export functionality produces, escpecially
	dates and images.

2008-05-22  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/utility_widgets/flowtable_dnd.cc:
	* glom/utility_widgets/flowtable_dnd.h:
	Fixed some crashers when starting a drag from no item

2008-05-22  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/libglom/data_structure/layout/layoutgroup.cc: (add_item)
	Add item at the end of the group instead of losing it

	* glom/utility_widgets/flowtable_dnd.cc:
	(on_child_drag_motion):
	Fix flickering of placeholder on bigger objects like images or text boxes

2008-05-21  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/mode_data/flowtablewithfields.cc:
	  (on_dnd_add_layout_item_image)
	* glom/mode_data/flowtablewithfields.h:
	* glom/utility_widgets/dragbar.cc
	(DragBar):
	* glom/utility_widgets/flowtable_dnd.cc
	(on_drag_data_received):
	* glom/utility_widgets/flowtable_dnd.h
	(FlowTableDnd):
	* glom/utility_widgets/layoutwidgetbase.h:
	Add images as possible drag items to the sidebar and adjust flowtable
 	to accept images.

2008-05-18  Murray Cumming  <murrayc@murrayc.com>

	* docs/user-guide/C/glom.xml:
	* glom/dialog_import_csv.cc: Minor string corrections.

2008-05-18  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/Makefile.am: Corrected indentation

	* glom/mode_data/flowtablewithfields.cc:
	(add_field_at_position):
	Put labels for fields into their own EventBox

	* glom/utility_widgets/flowtable_dnd.cc:
	  (start_dnd), (stop_dnd), (find_current_dnd_item), (on_child_drag_begin)
	  (on_child_drag_data_delete):
	* glom/utility_widgets/flowtable_dnd.h:
	Allow moving of items fields through drag and drop

2008-05-15  Armin Burgmeier  <armin@openismus.com>

	* glom/dialog_import_csv.h:
	* glom/dialog_import_csv.cc: Added some more encodings, differentiate
	between encoding name and charset.

	* glom/application.cc: init_menus_file), (init_menus): Moved the
	Import menu item from Tables to File menu.

	* glom/frame_glom.h:
	* glom/frame_glom.cc: Renamed the function from
	on_menu_Tables_ImportIntoTable() to on_menu_file_import().

2008-05-13  Armin Burgmeier  <armin@openismus.com>

	* glom/dialog_import_csv.h:
	* glom/dialog_import_csv.cc: Added missing functionality.

	* glom/glom.glade:
	* glom/dialog_import_csv_progress.h:
	* glom/dialog_import_csv_progress.cc:
	* glom/Makefile.am: Dialog showing progress of the import and error
	messages, performing the actual import.

	* glom/frame_glom.cc: on_menu_Tables_ImportIntoTable): Show the
	progress dialog after the user has finished the settings in the
	"Import from CSV" dialog, refresh display after import so the list and
	details show the imported values.

	* docs/user-guide/C/glom.xml: Added an initial explanation for the
	Import Dialog.

2008-05-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/notebook_data.cc: on_list_user_requested_details():
	Improve my fix from 2008-04-30:
	Call refresh_data_from_database_with_primary_key() again, but stop the
	switch-page handler from running, so that we really see the details for
	the row when clicking on the record in the list view.

2008-05-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/notebook_data.cc: init_db_details():
	Fix an if to avoid showing the list view when we want the details view,
	just because the details view is already showing.
	* glom/mode_data/notebook_data.h
	* glom/mode_find/notebook_find.h
	* glom/notebook_glom.h: Removed some unnecessary virtuals.

2008-05-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list_related.cc: constructor:
	Use add_view() to give the DbAddDel access to the document, to avoid
	the repeated warning about the unexpected field type.

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

	* glom/mode_data/box_data_details.cc fill_from_database():
	Get the primary key index (inefficiently) even if the primary key was
	already in the list, allowing record editing to work again.
	Fixes bug #530879 (Armin Burgmeier)

2008-05-02  Johannes Schmid <jhs@gnome.org>

	* glom/utility_widgets/flowtable_dnd.cc: on_child_drag_motion):
	Fixed a stupid bug in the dnd code that caused dropping problems all
	over.

2008-04-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/notebook_data.cc: on_list_user_requested_details():
	Do not call Box_Data_Details::refresh_data_from_database_with_primary_key()
	because on_switch_page_handler() does it later. This avoids an
	unnecessary extra refresh of the details view.

	* glom/libglom/data_structure/layout/layoutitem_field.h:
	Added predicate_LayoutItem_Field_IsSameField for use with std::find_if().
	* glom/mode_data/box_data_details.cc: fill_from_database(): Do not add
	the primary key to the list twice, to avoid setting it twice, to avoid
	refreshing portals twice.

2008-04-29  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/mode_data/flowtablewithfields.cc:
	* glom/mode_data/flowtablewithfields.h
	(on_dnd_add_layout_item)
	Added new method to reparent items from other flowtables.

	* glom/utility_widgets/flowtable_dnd.cc: start_dnd), (on_drag_motion),
	  (on_drag_data_received), (dnd_item_at_position),
	  (dnd_datawidget_from_item), (find_current_dnd_item),
	  (on_child_drag_motion), (on_child_drag_data_get),
	  (on_child_drag_begin), (on_child_drag_end):
	* glom/utility_widgets/flowtable_dnd.h
	Implemented drag sources for LayoutWidgets and allow dragging in and between
	flowtables. Only works for labels as I didn't find out yet how to set other
	widgets as drag sources.

	* glom/utility_widgets/layoutwidgetbase.cc
	  (set_dnd_in_progress), (get_dnd_in_progress):
	* glom/utility_widgets/layoutwidgetbase.h:
	Added some need methods for drag and drop

2008-04-29  Murray Cumming  <murrayc@murrayc.com>

	Large refactoring of the Base_DB_* and Box_DB_* hierarchy to make it
	simpler and less hacky.

	* docs/developer_reference/Doxyfile: Added this, so you can do
	doxygen Doxyfile to get some HTML to help understand the code.

	* glom/signal_reemitter.h: Added signal_connect_for_reemit_*args(),
	to make it easier to just emit a signal in response to another one,
	for instance to emit up to a parent widget.
	* regression_tests/Makefile.am:
	* regression_tests/test_signal_reemit.cc: Added a test for this.

	* glom/Makefile.am:
	* glom/base_db.[h|cc]: Split this, to create:
	* glom/base_db_table.[h|cc]
	* glom/base_db_table_data.[h|cc]: with some stuff from Box_DB_Table.

	* glom/box_db.[h|cc]:  Renamed to
	* glom/box_withbuttons.[h|cc] because that's all this is now.

	* glom/box_db_table.[h|cc]: Derive from Base_DB_Table, instead of
	implementing so much stuff.

	* glom/mode_data/Makefile.am:
	* glom/mode_data/box_data.[h|cc]: Derive from Box_WithButtons,
        and Base_DB_Table_Data instead of implementing so much stuff.

	* glom/mode_data/box_data_details.[h|cc]
	* glom/mode_data/box_data_manyrecords.cc[h|cc]: Added this base class
	for:
	* glom/mode_data/box_data_list.[h|cc]
	and Box_Data_Portal:

	* glom/mode_data/box_data_portal.cc[h|cc]: Added this base class
	for
	* glom/mode_data/box_data_calendar_related.[h|cc]
	and
	* glom/mode_data/box_data_list_related.[h|cc]

	* glom/utility_widgets/db_adddel/db_adddel.[h|cc] Derive from
	Base_DB_Table_Data, to use its implementation, to move lots of
	code for record adding, changing, and deleting into this widget instead
	of having decisions in the parent Box_Data_List_Related and Box_Data_List.
	This is simpler.

2008-04-26  Armin Burgmeier  <armin@openismus.com>

	* glom/glom.glade:
	* glom/dialog_import_csv.h:
	* glom/dialog_import_csv.cc:
	* glom/Makefile.am: Added yet unfinished "Import from CSV" dialog.

	* glom/frame_glom.h:
	* glom/frame_glom.cc: Added Frame_Glom::on_menu_Tables_ImportIntoTable
	to launch the import dialog.

	* glom/application.cc: init_menus): Added an action for the "Import
	Into Table" menu item.

2008-04-25  Jeremiah Savage  <jeremiahsavage@gmail.com>

	* glom/libglom/connectionpool.cc:
	* glom/libglom/data_structure/glomconversions.cc:
	* glom/libglom/document/document_glom.h:
	* glom/libglom/utils.cc:
	* glom/translation/window_translations.cc: Add <cstring> includes to
	fix the build with gcc 4.3.
	Bug #529530

2008-04-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom_developer.glade:
	* glom/utility_widgets/datawidget.cc: constructor:
	Added : at the end of labels, as per the GNOME HIG.

2008-04-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/glomconversions.cc:
	parse_time(): Fall back to using strptime(), in various formats,
	so we can parse 01:00 PM and 13:00, instead of parsing these as
	01:00 AM.

	* Makefile.am:
	* configure.in:
	* regression_tests/Makefile.am:
	* regression_tests/test_parsing_time.cc: Added a test for this time
	parsing.

2008-04-22  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/mode_data/flowtablewithfields.cc:
	(set_design_mode): Call FlowTableDnd::set_design_mode() if appropriate
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	(forall), (container_forall_callback):
	Implement forall() with is not implement for Gtk::Container
	(setup_dnd): Remove this and do all dnd stuff in flowtable_dnd

	* glom/utility_widgets/flowtable_dnd.cc:
	* glom/utility_widgets/flowtable_dnd.h:
	(set_design_mode), (start_dnd), (stop_dnd):
	Override set_design_mode() and call start_dnd() and stop_dnd() there.
	Preparation for moving items around and setting them as drag source.

2008-04-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_calendar_related.h
	* glom/mode_data/box_data_calendar_related.cc
	 on_calendar_month_changed(): Update the calendar details when the user
	navigates to a different month.

2008-04-22  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_lesson_planner.glom:
	* examples/Makefile.am: Added a new example, which uses a calendar.

	* glom/mode_data/box_data_calendar_related.h
	* glom/mode_data/box_data_calendar_related.cc:
	fill_from_database(): Do one SQL query for the whole month and store
	the values.
	on_calendar_details(): Show the stored values.
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h: Removed get_fields_to_show()
	because it is in the base class.

2008-04-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_calendar_related.cc
	  (on_calendar_details):
	* glom/mode_data/box_data_calendar_related.h
	  (Box_Data_Calendar_Related):
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	Removed get_has_suitable_record_to_view_details(),
        get_suitable_table_to_view_details() and
	get_suitable_record_to_view_details() because they are in the base
	Box_Data_Portal) class.

	* glom/mode_data/box_data_portal.cc:
	* glom/mode_data/box_data_portal.h: Removed unused empty
	create_layout_dialog() and prepare_layout_dialog
	* glom/mode_data/flowtablewithfields.h:
	* glom/mode_data/flowtablewithfields.cc: get_portals(): Get a list of
	Box_Data_Portal instead of Widget, to make this more self-documenting.
	set_field_value(): Do not dynamic_cast to just Box_Data_List_Related,
	so that Box_Data_Calendar_Related is updated too, to show just the
	related records, instead of all.

2008-04-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/combobox_fields.h
	* glom/combobox_fields.cc: Added set_fields() that takes a field type to
	reduce the list.
	* glom/glom_developer.glade: window_data_layout(): Added a Add Related
	Calendar button and added a Date section, which is hidden for the
	existing layout dialogs.
	* glom/libglom/data_structure/layout/Makefile.am:
	Added layoutitem_calendarportal.[h|cc]
	* glom/libglom/document/document_glom.cc
	  load_after_layout_group(), save_before_layout_group(): Handle
	LayoutItem_CalendarPortal items.

	* glom/mode_data/Makefile.am:
	* glom/mode_data/box_data_portal.cc
	* glom/mode_data/box_data_portal.h: Added this new base class for
	related records widgets, using LayoutItem_Portal as the base class for
	their layout data.
	* glom/mode_data/box_data_list_related.cc
	* glom/mode_data/box_data_list_related.h: Derive from Box_Data_Portal,
	to which some of the code has moved.
	* glom/mode_data/box_data_calendar_related.cc
	* glom/mode_data/box_data_calendar_related.h: Added this new portal,
	which shows the related records in a calendar.

	* glom/mode_data/dialog_layout_calendar_related.cc
	* glom/mode_data/dialog_layout_calendar_related.h:
	* glom/mode_data/dialog_layout_details.h
	* glom/mode_data/dialog_layout_details.cc:
	Allow adding of a related calendar portal.

	* glom/mode_data/dialog_layout_list.cc: Dialog_Layout_List):
	* glom/mode_data/flowtablewithfields.cc
	* glom/mode_data/flowtablewithfields.h: Handle Box_Data_Portal instead
	of just Box_Data_List_Related, and handle Box_Data_Calendar_Related
	specifically where necessary.
	* glom/utility_widgets/calendar/Makefile.am: Fixed a typo.
	* glom/utility_widgets/calendar/glomgtkcalendar.c
	  (glom_gtk_calendar_init, glom_gtk_calendar_new): Use the correct GType.

2008-04-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade:
	* glom/glom_developer.glade: Moved dialog_data_invalid_format to the
	non-developer .glade file, where the code expects it to be, preventing
	a crash.

2008-04-17  Claude Paroz  <claude@2xlibre.net>

	* glom/glom.glade:
	* glom/glom_developer.glade: Removed translatable properties for stock
	labels.

2008-04-16  Murray Cumming  <murrayc@murrayc.com>

	* docs/user-guide/C/glom.xml: Remove sentences saying that names should
	not have spaces or special characters, because they can.
	Bug #528209 (Jean-François Fortin Tam)

2008-04-15  Armin Burgmeier  <armin@openismus.com>

	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data.cc: Made the show_layout_dialog() function
	non-virtual and added two new (pure) virtual functions called
	create_layout_dialog() and prepare_layout_dialog(). Create the dialog
	in show_layout_dialog() if necessary, so the dialog is only created
	when needed.

	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_details.cc: Implement the two new virtual
	functions.

	* glom/mode_data/box_data_list_related.h:
	* glom/mode_data/box_data_calendar_related.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_calendar_related.cc: Removed the
	m_pLayoutDialogRelated variable, and implement the two new virtual
	functions instead. Removed the destructor which is no longer required.
	(on_dialog_layout_hide): Cast m_pDialogLayout to a
	Dialog_Layout_List_Related before usage. These changes clean up the
	code in Box_Data_List_Related a bit.

2008-04-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc
	* glom/mode_data/box_data.h: add_related_record_for_field():
	Added a primary_key_value_used output parameter so that the caller nows
	what record was actually created.
	* glom/mode_data/box_data_details.cc: on_flowtable_field_edited():
	* glom/mode_data/box_data_list.cc: on_adddel_user_changed():
	Use the new output parameter instead of calling get_entered_field_data(),
	so that automatically-created related records are really linked from the
	parent record even when the ID is not on the layout.
	This fixes bug #526386 (Jani Monoses).

2008-04-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc:
	get_related_record_exists(): Don't bother looking for a record
	with the key NULL, because that is not something we want to related
	records by.
	* glom/mode_data/box_data_list.cc: on_adddel_user_changed(): Get
	full field details for the related field, to ensure that this works
	properly.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc
	fill_values_if_necessary(): Use Conversions::get_empty_value() instead
	of just creating a Gda::Value of the expected type, so we get a NULL
	GdaValue initially for appropriate field types.

	This fixes the automatic creation of related records, at least when
	the from field is on the layout, partially fixing bug #526386
	(Jani Monoses).

2008-04-15  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/mode_data/flowtablewithfields.cc
	  (add_layout_notebook_at_position):
	  Set layout item for notebook and use notebooklabelglom
	* glom/utility_widgets/notebookglom.cc
	(delete_from_layout):
	* glom/utility_widgets/notebookglom.h
	  (GLOM_UTILITY_WIDGETS_NOTEBOOK_GLOM_H):
	  Fixed typo in header and added delete method
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/notebooklabelglom.cc:
	* glom/utility_widgets/notelabelbookglom.h:
	Added new tab widget for notebook to be able to attach a popupmenu

	Summary: Added popup-menu to notebook tabs to add new groups and delete
	the notebook.

2008-04-14  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/adddel/adddel.h
	* glom/utility_widgets/adddel/adddel_withbuttons.h: Removed unnecessary
	virtuals on methods.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h: Removed unused
	signal_user_activated (though it is used in AddDel).

2008-04-14  Murray Cumming,  <murrayc@murrayc.com>

	* glom/utility_widgets/adddel/adddel.h
	* glom/utility_widgets/adddel/adddel.cc:
	construct_specified_columns(): Connect to the start_editing
	signal., on_treeview_cell_edited. Emit user_activated() on that
	instead of on the TreeView::button-press-event signal, so that any
	previous editing has already finished.

	This fixes the relationships window, so that clicking on the To Field
	combo does not lose the new choice in the Table combo.
	Bug #526900 (Jani Monoses).

2008-04-13  Armin Burgmeier  <armin@openismus.com>

	* glom/frame_glom.h:
	* glom/frame_glom.cc: create_database): Simplified the function,
	removed the request_password parameter. It was never set, and it
	seemed to be a relict from libgda-1.2.
	(connection_request_password_and_choose_new_database_name),
	(connection_request_password_and_attempt): Create the connection
	dialog when required, instead of loading it in the constructor, to
	improve startup time.

	* glom/dialog_existing_or_new.h: Added a comment about bug #527587.

	* glom/application.cc: recreate_database), (existing_or_new_new):
	Adapt to changed create_database() function in frame_glom.

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

	* glom/application.cc fill_menu_tables(), fill_menu_reports(),
	fill_menu_print_layouts(): Remove the ActionGroups before recreating
	them to avoid warnings, and presumably to avoid the changes from
	being ignored. Maybe GTK+ svn trunk has become less tolerant.
	* glom/glom_developer.glade: Restored some GtkSourceViews, and put one
	in a scrolled window as it was before.

2008-04-11  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/utils.cc: Utils::show_help): Replace gnome_help_display
	by constructing a path to the help file, making a ghelp: URI out of it
	and passing it to g_app_info_launch_default_for_uri().

	* glom/xsl_utils.cc: GlomXslUtils::transform_and_open): Replace
	gnome_url_show by g_app_info_launch_default_for_uri().

	* glom/main.cc: main): Don't call gnome_program_init().

	* configure.in: Remove the libgnome dependency.

2008-04-11  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/application.cc
	(update_userlevel_ui):
	* glom/application.h:
	* glom/mode_data/box_data_details.cc
	  (create_layout):
	* glom/mode_data/box_data_details.h
	Moved sidebar into "Details"-page

	* glom/utility_widgets/sidebar.cc
	  (on_child_detached),(on_child_attached):
	* glom/utility_widgets/sidebar.h:
	Made sidebar detachable again and give it a correct size when detached

2008-04-11  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/glom_developer.glade:
	* glom/layout_item_dialogs/dialog_buttonscript.cc
	  (Dialog_ButtonScript), (set_script), (get_script),
	  (get_script):
	* glom/layout_item_dialogs/dialog_buttonscript.h
	Added new entry for the button title to the dialog

	* glom/mode_data/flowtablewithfields.cc
	(FlowTableWithFields):
	* glom/utility_widgets/buttonglom.cc
	(on_menu_properties_activate):
	* glom/utility_widgets/buttonglom.h:
	* glom/utility_widgets/labelglom.cc:
	* glom/utility_widgets/layoutwidgetutils.cc:
	* glom/utility_widgets/layoutwidgetutils.h
	(m_pPopupMenuUtils) (m_refUtilProperties):
	Removed "Details" menu item as ButtonGlom has a dialog for all properties now.

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

	* docs/user-guide/C/glom.xml: Improved the text about the initial dialog.

	* glom/dialog_existing_or_new.cc:
	* glom/dialog_existing_or_new.h: Added on_existing_select_func() and
	on_new_select_func() select_function handlers, to prevent selection of
	the parent nodes, which would be meaningless.

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

	* glom/dialog_existing_or_new.cc
	* glom/dialog_existing_or_new.h: Removed the second text-button column.
	I changed my mind about this. It doesn't feel useful - a double-click
	on the regular title makes more sense.

2008-04-10  Armin Burgmeier  <armin@openismus.com>

	* glom/glom.glade: Re-set scrolledwindow shadows to IN in initial
	dialog since this is what other treeviews have.

2008-04-10  Armin Burgmeier  <armin@openismus.com>

	* glom/glom.glade: Added a help button, reordered Quit/Select buttons,
	remove mnemonics from the tab labels as suggested by the HIG. Removed
	the separator and added a tooltip for the select button.

	* glom/dialog_existing_or_new.h:
	* glom/dialog_existing_or_new.cc: constructor): Reordered items in
	existing_model, use a cell data func for the item's title so we can
	change the color when necessary, expand the recent items by default.
	Add a dummy item telling that there are no documents in this category
	if there are none.
	(on_service_found, on_service_removed): Create/Remove that dummy item
	accordingly.
	(on_stream_read): Remove the dummy item for the "New From Template"
	category, expand the "New From Template" category if this was the first
	item discovered.

	* glom/application.cc: offer_new_or_existing): Use
	Utils::dialog_run_with_help() to make the Help button work.

	* docs/user-guide/C/glom.xml: Added an initial text for the Help
	button of the initial dialog.

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

	* glom/libglom/connectionpool.cc: on_linux_signal): Call the
	previously-set SIGSEGV handler, to hopefully make bug-buddy or apport
	catch (and report) crashes again.

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

	* glom/libglom/spawn_with_feedback.h
	* glom/libglom/spawn_with_feedback.cc: get_and_show_pulse_dialog,
	  execute_command_line_and_wait,
	  execute_command_line_and_wait_until_second_command_returns_success):
	* glom/libglom/connectionpool.h
	* glom/libglom/connectionpool.cc:
	  start_self_hosting(), stop_self_hosting(), create_self_hosting():
	Added parent_window parameter, so that any dialogs can be transient for
	it.

	* glom/application.cc on_document_load(),
	  stop_self_hosting_of_document_database(): Call
	start/stop_self_hosting() with the parent_window parameter.
	* glom/frame_glom.cc:
	  connection_request_password_and_choose_new_database_name():
	* glom/libglom/document/document_glom.cc:
	Call start/stop_self_hosting() with the parent_window parameter.

	This should prevent these windows from being system-modal when using
	the xfwm4 window manager.
	Bug #525285 (Jani Monoses)

2008-04-09  Johannes Schmid  <jhs@gnome.org>

	* glom/glom_developer.glade:
	Found one more wrong change

2008-04-09  Johannes Schmid <jhs@gnome.org>

	* glom/glom_developer.glade:
	Fix crasher when opening GlomButton details dialog

	* glom/utility_widgets/Makefile.am:
 	Move flowtable_dnd.[cch] in !GLOM_CLIENT_ONLY section

2008-04-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc
	get_item_placeholder(), get_item_selected(),
	on_cell_layout_button_clicked(), remove_item(),
	on_treeview_cell_edited_bool(), on_treeview_cell_edited(),
	on_treeview_button_press_event(), get_last_row(),
	get_last_row, set_value_key(), get_is_placeholder_row,()
	on_cell_button_clicked(): Check that the treemodel is not null before
	dereferencing it.
	This fixes a crash when trying to add a record when there is no
	primary key.
	Bug #527007 (Jean-François Fortin Tam)

2008-04-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtable.cc: Destructor: Remove my hack to
	delete child widgets, because it causes double deletes.

2008-04-08  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/libglom/sharedptr.h
	(operator!): Added operator! for convenience

	* glom/mode_data/flowtablewithfields.cc
	* glom/mode_data/flowtablewithfields.h:
	(FlowTableWithFields): Removed setup_menu()
	(on_menu_delete_activate): Added a confirmation dialog

	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/layoutwidgetmenu.cc:
	* glom/utility_widgets/layoutwidgetmenu.h:
	* glom/utility_widgets/layoutwidgetbase.cc:
	* glom/utility_widgets/layoutwidgetbase.h:
	Moved menu code from LayoutWidgetBase into it's own class
	(on_menupopup_activate_delete): Added a menu item to delete fields

	* glom/utility_widgets/buttonglom.cc:
	* glom/utility_widgets/buttonglom.h:
	* glom/utility_widgets/labelglom.cc:
	* glom/utility_widgets/labelglom.h:
	Derive from LayoutWidgetUtils, removed setup_menu() call in
	constructors

	* glom/utility_widgets/datawidget.h:
	* glom/utility_widgets/notebookglom.h:
	* glom/utility_widgets/layoutwidgetfield.h:
	Derive from LayoutWidgetMenu

	* glom/utility_widgets/layoutwidgetutils.cc:
	* glom/utility_widgets/layoutwidgetutils.h:
	Derive from LayoutWidgetBase
	(on_menu_delete_activate): Added menu item to delete layout items

	* glom/utility_widgets/placeholder-glom.cc:
	Removed setup_menu() call

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

	* glom/libglom/Makefile.am:
	* glom/libglom/test_connectionpool.cc: Added this test.

	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/test_flowtable.cc: Revived this test.

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

	* glom/mode_design/fields/box_db_table_definition.cc
	  check_field_change(): Refuse to change a field name to one that
	already exists.

2008-04-07  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/utility_widgets/flowtable.cc:
	Really comitted last change (was in conflict)

2008-04-07  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/mode_data/flowtablewithfields.h:
	Derive from FlowTableDnd if not in CLIENT_ONLY mode

	* glom/utility_widgets/flowtable.cc:
	(dnd_*) (on_dnd_*)
	* glom/utility_widgets/flowtable.h:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/flowtable_dnd.cc:
	* glom/utility_widgets/flowtable_dnd.h:
	Moved drag and drop stuff into it's own class and some code cleanup

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

	* glom/main.cc: OptionGroup, main): Use atexit(__libc_freeres)
	to maybe help valgrind to detect leaks.
	* glom/mode_data/flowtablewithfields.cc Added TODO comments about
	possible widget leaks.
	* glom/utility_widgets/adddel/adddel.cc
	* glom/utility_widgets/adddel/adddel.h: Use UIManager instead of
	MenuElems, because it seems less leaky.

2008-04-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/adddel/adddel.cc: construct_specified_columns():
	Really delete the temporary TreeModelColumns to fix a leak.

2008-04-04  Johannes Schmid  <johanens.schmid@openismus.com>

	* glom/glom_developer.glade:
	Added dialog_flowtable

	* glom/mode_data/flowtablewithfields.cc: FlowTableWithFields,
	  (add_layout_group_at_position), (on_menu_properties_activate),
	  (on_button_press_event):
	* glom/mode_data/flowtablewithfields.h
	Added popup-menu for flowtables

	* glom/utility_widgets/buttonglom.cc: on_button_press_event):
	* glom/utility_widgets/labelglom.cc: on_button_press_event):
	Fixed a crasher when not in developer mode

	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/dialog_flowtable.cc: Glom,
	  (set_flowtable), (get_title), (get_columns_count):
	* glom/utility_widgets/dialog_flowtable.h
	Added configuration dialog for FlowTables

	* glom/utility_widgets/layoutwidgetutils.h (LayoutWidgetUtils):
	Do not derive from sigc::trackable as it's not necessary.

2008-04-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc: Fix the previous commit:
	treeviewcolumn_on_cell_data(): Do set the pixbuf property to NULL when
	it is empty, or images apear repeated on rows.

2008-04-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	treeviewcolumn_on_cell_data(): Do not try to dereference a null pixbuf
	refptr. This fixes a crash when adding an image field to the list view
	if one of the records has no data in that field.
	Bug #526114 (Jani Monoses).

2008-04-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc
	* glom/mode_data/box_data_list.h
	on_dialog_layout_hide(): Override this so we can set a bool and
	check for this bool in create_layout_add_group(), to reset the column
	widths after the layout dialog has been closed. Otherwise the new
	columns are off the right-hand side of the scroll area, making users
	think that nothing has happened unless they look at the scroll bar.
	This is not ideal, but drag-and-drop will make this easier anyway.
	Bug #526046 (Jani Monoses).

2008-04-02  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc
	* glom/libglom/connectionpool.h Added delete_instance().
	* glom/main.cc: main): Clean up the ConnectionPool singleton at the
	end, so it is not reported as a leak by valgrind.

2008-04-02  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.h
	* glom/application.cc added a Bakery::App::add_ui_from_string() override,
	so we can workaround a problem with UTF8 in the UI description in
	gtkmm < 2.12.7.
	Bug #525718 (Pavel Mlčoch)

2008-04-02  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	Remove the GlueItem and GlueItemList classes. Store a simple int
	in GtkTreeIter::user_data instead of a pointer to an allocated GlueItem
	instance (which just stored an int now anyway).
	This should prevent the leak of these instances, which GtkTreeModel
	really really gives us no way to ever know when to free, other than
	when the GktTreeModel is destroyed.

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

	* glom/glom_privs.cc: Fixed the build (my previous changes did not
	actually compile).

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

	* glom/glom_privs.cc: get_database_users(), get_current_privs():
	* glom/mode_data/box_data.cc: record_new(),
	  get_related_record_exists): Added use of BusyCursor because these
	access the database.

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

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	on_treeview_column_clicked(): Show the busy cursor because the
	new SQL query can take some time.

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

	* glom/libglom/data_structure/Makefile.am:
	* glom/libglom/data_structure/foundset.cc
	* glom/libglom/data_structure/foundset.h: Moved FoundSet into its own
	file from base_db.[h|c], because I like that.

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	* glom/base_db.cc
	* glom/base_db.h: Moved count_rows_returned_by() to Base_DB so we
	can use it elsewhere.

	* glom/frame_glom.cc show_table(): Count the approximate number of
	rows expected in the list view, and do not sort them by default if
	it is more than 10,000. This allows Glom to show 600,000 MusicBrainz
	album rows now in 1 minute.

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

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	refresh_from_database(): Omit the ORDER BY clause when counting the
	number of rows from our SQL query. This is much faster.

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

	* glom/notebook_glom.h
	* glom/notebook_glom.cc: constructor, on_show(): Delay the connection of
	the switch_page handler because GtkNotebook sometimes emits the signal
	during show().
	Save the sigc::connection so we can block it later.
	* glom/mode_data/notebook_data.cc init_db_details(),
	on_switch_page_handler(): Block the handling of this signal during
	the first initialization, to avoid an unnecessary duplicate SQL query.

	* glom/utility_widgets/db_adddel/db_adddel.h
	* glom/utility_widgets/db_adddel/db_adddel.cc
	 on_self_style_changed): Correct the ifndef to an ifdef so this is
	really only used on Maemo, preventing a third duplicate SQL query.

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

	* glom/glom_developer.glade: window_data_layout: Change window title from
	Details Layout to Layout because it is used for the list and the
	related records layout too. This string already exists elsewhere, so
	it should not be a problem for translators.
	Bug #525449 (Jani Monoses)

2008-03-31  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/utility_widgets/flowtable.cc: on_drag_data_received):
	Fixed side effect of idle hack that caused that items are always
	inserted at the end of the flowtable when dropped.

	* glom/utility_widgets/labelglom.cc: init):
	set_visible_window (false) for the eventbox to remove ugly label border.

2008-03-31  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	constructor: Do not handle style changes, because that currently
	causes an extra SQL query. It is still enabled for Maemo, which needs
	it. We should fix this properly.

2008-03-31  Armin Burgmeier  <armin@openismus.com>

	* glom/glom.glade:
	* glom/dialog_existing_or_new.h:
	* glom/dialog_existing_or_new.cc: Use a notebook for the two
	treeviews, add a Select button. Removed the signals, instead added
	get_action(), get_uri(), get_service_info() and get_service_name().
	This way, the application can hide the dialog before handling the
	action more easily.

	* glom/application.h:
	* glom/application.cc: offer_new_or_existing(): Hide the
	existing_or_new dialog after having run it.
	existing_or_new_new(): Removed the signal handlers, but keep the
	action for creating a new empty document in a separate function since
	it is still a lot of code.

2008-03-31  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: get_record_field_values_for_calculation():
	Do not show an error if the record does not exist yet. That is normal
	and is already dealt with by the following code. Do show an error if
	there is an exception.
	Bug #525096 (Jani Monoses)

2008-03-31  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom_developer.glade: Make return activate the default buttons
	when in the last entry in some dialogs, such as the initial-user/password
	dialog when self-hosting.
	Bug #525284 (Jani Monoses)

2008-03-31  Murray Cumming  <murrayc@murrayc.com>

	* glom/navigation/box_tables.cc: on_adddel_changed(): When changing the
	default-table column, make sure that only one row can have this checked.
	It should really be a radio column, but that would be more work
	(to work around the AddDel widget).
	Bug #525186 (Jani Monoses)

2008-03-31  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/field.cc: Field::init_map():
	Comment out some previously-allowed conversions because postgres 8.3
	has become less tolerant of conversions that could not produce useful
	data, such as date-to-number, causing postgres errors at runtime.
	Bug #525188 (Jani Monoses)

2008-03-30  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/utility_widgets/flowtable.cc
	(on_child_drag_motion):
	Fixed dragging on ComboEntryGlom and added some comments about
	what happens inside the widget detection.

2008-03-30  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	dnd_remove_placeholder_idle(), dnd_remove_placeholder_real(),
	on_drag_leave(), on_child_drag_motion(): Allow dropping last
	item when mouse is over an entry or a similar HAS_WINDOW widget.

2008-03-30  Armin Burgmeier  <armin@openismus.com>

	* glom/glom.glade:
	* glom/dialog_existing_or_new.h:
	* glom/dialog_existing_or_new.cc:
	* glom/Makefile.am: Redesigned initial dialog, as described in
	http://www.murrayc.com/blog/permalink/2007/11/29/gloms-initial-dialog.

	* glom/application.h:
	* glom/application.cc: Actually use it.

2008-03-30  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/mode_data/flowtablewithfields.cc:
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/labelglom.cc:
	Fixed dropping on LabelGlom which was broken due to the EventBox

2008-03-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc
	create_iterator(): Always create a completely new iterator, instead of trying
	to return one with an existing GlueItem. A comment says that this is
	necessary to make operator=() work (it only compares pointers), but
	I do not know why a working iterator::operator=() is necessary. I guess
	we will find out. This was very inefficient. Glom can now show a list of
	60,000 records in 5 minutes instead of hours/days. There is still much
	room for improvement though.

2008-03-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/navigation/box_tables.cc: fill_from_database(): Do show tables
	that are in the database but not in the document (hidden by default),
	allowing us to adapt to an existing database.
	on_adddel_Edit(): Do not complain about tables that are not in the
	document.

2008-03-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: get_database_preferences(): Try to create the standard
	tables if the query fails, as a small first step in making Glom adapt to
	existing databases.

2008-03-28  Johannes Schmid  <jhs@idefix>

	* glom/mode_data/flowtablewithfields.cc:
	Fixed expanding of LabelGlom
	* glom/utility_widgets/flowtable.cc:
	Fixed dragging on Gtk::TextView

2008-03-27  Johannes Schmid  <jhs@gnome.org>

	* glom/layout_item_dialogs/dialog_textobject.cc:
	* glom/layout_item_dialogs/dialog_textobject.h:
	Added get_textobject(reference)

	* glom/mode_data/flowtablewithfields.cc:
	* glom/utility_widgets/labelglom.cc:
	* glom/utility_widgets/labelglom.h:
	Use the correct dialog for editing textobject (missed that one before...)

2008-03-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/navigation/box_tables.cc: on_adddel_Delete(): Put quotes around
	the table name when doing a DROP TABLE, so we can delete tables that
	use upper case in their name.
	Bug #522233 (Pavel Mlčoch).

2008-03-26  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h:
	Remove append_newline().
	save_before(): Stop using append_newline() - it never worked anyway.
	Use add_indenting_white_space_to_node() which was just added to Bakery.
	This makes the .glom files have nice readable indenting again.

2008-03-26  Johannes Schmid  <jhs@gnome.org>

	* glom/mode_data/flowtablewithfields.cc:
	* glom/utility_widgets/dialog_layoutitem_properties.cc:
	* glom/utility_widgets/labelglom.cc:
	* glom/utility_widgets/labelglom.h:
	Added popup menu for LabelGlom

	* glom/utility_widgets/dragbutton.h:
	Make a method const

2008-03-24  Murray Cumming  <murrayc@murrayc.com>

	* configure.in:
	* docs/user-guide/C/figures: Added images from screenshots on website.
	* docs/user-guide/C/glom.xml: Added screenshots and some text.
	Added section about translations.

2008-03-22  Murray Cumming  <murrayc@murrayc.com>

	* docs/user-guide/C/glom.xml: Added sections about defining and using
	reports.
	* glom/glom_developer.glade: Reports list: Corrected packing expanding.
	Added a tooltip for a checkbox.

2008-03-22  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/glom_developer.glade:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/buttonglom.cc:
	* glom/utility_widgets/buttonglom.h:
	* glom/utility_widgets/dialog_buttonscript.cc:
	* glom/utility_widgets/dialog_buttonscript.h:
	* glom/utility_widgets/dialog_layoutitem_properties.cc:
	* glom/utility_widgets/dialog_layoutitem_properties.h:
	* glom/utility_widgets/labelglom.h:
	* glom/utility_widgets/layoutwidgetutils.h:

	Added popup-menu for buttons (and some refactoring to make it easier for other
	widgets)

2008-03-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc offer_new_or_existing(): Use a URI for the
	examples directory instead of a filepath, sot that the examples
	directory is really opened in the file chooser. gnome-vfs seems to
	have become less tolerant of URIs without file:// at the start.

2008-03-18  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/fieldtypes.cc
	get_string_name_for_gdavaluetype(): Hard-code the result for
	text fields (G_TYPE_STRING) so we always use varchar. Otherwise
	we mistakenly create fields of type xml because libgda reports many
	postgres 8.3 fields types as being of type G_TYPE_STRING.

2008-03-18  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Depend on the new unstable bakery-2.6 API.
	* glom/application.cc:
	* glom/base_db.cc:
	* glom/libglom/connectionpool.cc:
	* glom/libglom/document/document_glom.cc:
	* glom/main.cc:
	* glom/xsl_utils.cc: Use giomm instead of Gnome::Vfs.

2008-03-18  Murray Cumming  <murrayc@murrayc.com>

	* glom/python_embed/python_module/py_glom_module.cc: initglom):
	Added more casts to non-const char* from static strings, to
	avoid warnings with Python. Python should use const char*, of course.

2008-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc ui_file_select_open_with_browse():
	Fixed a typo in my previous commit, to fix the build.

2008-03-13  Murray Cumming  <murrayc@murrayc.com>

	Bug 521992 – Pressing Escape on Initial dialog does not close
	application properly.
	(Pavel Mlčoch)

	* glom/dialog_database_preferences.cc load_from_document():
	Do not crash if the Gda::DataModel is empty.

	* glom/application.cc ui_file_select_save(), on_document_load(),
	  offer_new_or_existing():
	* glom/frame_glom.cc on_menu_file_export():
	* glom/utility_widgets/imageglom.cc
	  on_menupopup_activate_select_file(): Check for
	Gtk::RESPONSE_DELETE_EVENT instead of just Gtk::RESPONSE_CANCEL, so
	that we treat pressing Escape the same as pressing Cancel. When we
	just ignore this then we can leave the application in an unexpected
	state.

2008-03-10  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc:
	discover_first_free_port() Reformat the code to make the use of
	ifdefs for various platforms clearer. Include errno.h and add a comment
	about how this is essential to make the code actually work.
	This stops Glom from starting a postgres instance on the same port that
	is used by an existing instance.
	start_self_hosting(): Set the port in the document so it is not
	incorrectly set again later. This fixes the problem that Glom sometimes
	started a server and then could not connect to it.

2008-03-09  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.cc: Don't try to use remembered port
	when m_port is 0. This broke connections to non-self-hosted database
	servers since the connection attempt was only performed on port 0.

	* glom/application.cc: Set "try_other_ports" to TRUE for new documents
	if the document is not self-hosted. Otherwise, only port 5432 was
	tried, and not the other ones specefied in the ConnectionPool's
	constructor.

2008-03-08  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/glomconversions.cc:
	* glom/libglom/data_structure/glomconversions.h:
	Added get_double_for_gda_value_numeric().
	* glom/base_db.cc: auto_increment_insert_first_if_necessary(),
	recalculate_next_auto_increment_value(),
	get_next_auto_increment_value():
	Return a GdaNumeric Gda::Value, not a string one, and
	do the conversion without the locale affecting it.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	fill_values_if_necessary(): Create default values of the correct type.
	* glom/libglom/utils.cc:
	* glom/libglom/utils.h: Removed decimal_from_string() because it is
	no longer used.
	This avoids a warning about an incorrect type when adding a row in
	the list view.

	* examples/example_music_collection.glom: Song table:
	Added Artists doubly-related fields on details and recreate this
	example.

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

	* glom/application.cc: offer_new_or_existing():
	Call connection_pool->set_get_document_func() before calling
	connection_request_password_and_choose_new_database_name() to
	avoid a (maybe harmless anyway) warning.

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

	* glom/libglom/data_structure/glomconversions.cc:
	get_text_for_gda_value(): Improved the warning about the unexpected
	value type, though I have not yet solved this (minor) problem.
	* glom/utility_widgets/dragbar.cc: Improve the titles in the tool
	pallete. And please stop using tabs in the source code.

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

	* glom/libglom/document/document_glom.cc:
	get_data_layout_groups_default(): Restored the code that creates
	the default layouts, which was lost somehow.
	Bug #517665 (Johannes Schmid).

2008-03-04  Johannes Schmid  <jhs@gnome.org>

	* glom/mode_data/box_data_details.cc:
	Fixed a crasher (probably related to an empty table)

	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/checkglom.h: (added)
	* glom/utility_widgets/checkglom.cc: (added)
	Add a popup menu to checkbutton fields

2008-02-29  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/utility_widgets/flowtable.cc:
	Fixed dragging on LabelGlom

2008-02-28  Johannes Schmid  <johannes.schmid@openismus.com>

	* glom/utility_widgets/dragbar.cc:
	* glom/utility_widgets/dragbutton.cc:
	* glom/utility_widgets/dragbutton.h:
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/sidebar.cc:
	* glom/utility_widgets/sidebar.h:
	Use EggToolPalette for the developer drag and drop toolbar

  * glom/utility_widgets/eggtoolpalette: Updated to new external revision

2008-02-25  Johannes Schmid <johannes.schmid@openismus.com>

	* configure.in:
	* glom/Makefile.am:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/eggtoolpalette/* (external)
	* glom/utility_widgets/util/* (external)

	Integrated eggtoolpalette into the build system (not used yet)

2008-02-24  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.cc: Pass -i instead of -h "*" to
	postmaster. This is equivalent, but it does not require postgres to
	be linked against CRT_noglob.o on Windows.

2008-02-23  Armin Burgmeier  <armin@openismus.com>

	* glom/main.cc: Add the bin/ subdirectory to the PATH environment
	variable on Windows. This is where the gspawn-win32-helper.exe program
	required for g_spawn* is installed, and g_spawn* requires it to be in
	somewhere in PATH. This fixes self-hosting on machines where
	gspawn-win32-helper.exe is not already in the PATH.

2008-02-22  Murray Cumming  <murrayc@murrayc.com>

	* C/glom.xml: Put the pygda appendix in its own section, instead of
	inside the previous appendix. Update the application version from
	0.8 to 1.6.

2008-02-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.h: Moved the m_pDrag_Bar declaration to
	avoid a warning about initialization sequence.
	* glom/libglom/python_embed/py_glom_relatedrecord.cc:
	* glom/python_embed/glom_python.cc: Cast some static strings to
	gchar* because the Python C API does not use const. This avoids some
	warnings.

2008-02-20  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/mode_data/box_data_details.cc:
	Cell set modified, when the document was modified...

2008-02-20  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/mode_data/flowtablewithfields.cc:
	Use set_layout_item() on all layout element to allow to
	adding them at the correct place to a layout_group

	* glom/utility_widgets/flowtable.cc:
	Remove some debug messages

2008-02-20  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/utility_widgets/flowtable.cc:
	Allow dragging at below the last item of a group

2008-02-19  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/mode_data/flowtablewithfields.cc:
	* glom/mode_data/flowtablewithfields.h:
	* glom/utility_widgets/flowtable.h:
	Added drag and drop for notebooks

2008-02-19  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/frame_glom.cc:
	Fixed crasher when using Tables menu

	* glom/glom.glade:
	Removed unused dialog

2008-02-19  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/mode_data/flowtablewithfields.cc:
	* glom/mode_data/flowtablewithfields.h:
	Cleaned up dnd code in FlowTableWithFields

2008-02-19  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/application.cc:
	* glom/application.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	Show drag toolbar when in developer mode

	* glom/mode_data/box_data_details.cc:
	Recreate layout when switching to developer mode

2008-02-18  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/libglom/connectionpool.cc:
	#ifdef'd all those annoying avahi debug messages

	* glom/libglom/data_structure/layout/layoutgroup.cc:
	* glom/libglom/data_structure/layout/layoutgroup.h:
	Added LayoutGroup::remove_item()

	* glom/libglom/document/document_glom.cc:
	* glom/mode_data/dialog_layout_details.cc:
	Remove default layout creation as it's no longer needed when you can
	create your layout using drag and drop.

	* glom/mode_data/flowtablewithfields.cc:
	* glom/mode_data/flowtablewithfields.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	Fixed dragging of groups (mostly)

	* glom/utility_widgets/dragbar.cc:
	* glom/utility_widgets/dragbutton.cc:
	* glom/utility_widgets/dragbutton.h:
	Use enum instead of string to determine drag type

	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	Set default size when in developer mode

	* icons/16x16/Makefile.am:
	* icons/16x16/glom-notebook.png
	Added notebook icon

2008-02-14  Armin Burgmeier  <armin@openismus.com>

	* win32/querymodules.bat:
	* win32/build-installer:
	* win32/glom.iss.in: Moved most files into the bin/ subdirectory. This
	is because both Glom.exe and the postgres utilities need libpq.dll,
	but the postgres utilities need to be in the bin/ subdirectory to find
	their shared files. With this, the installer also works for me on a
	machine that does not already have Python, GTK, etc. installed.

2008-02-11  Armin Burgmeier  <armin@openismus.com>

	* win32/build-installer:
	* win32/glom.iss.in: Add all required python files. I would like to
	put them into a separate python/ directory, but did not get it to find
	them there. They are put into the main application directory for now.

2008-02-09  Armin Burgmeier  <armin@openismus.com>

	* win32/build-installer:
	* win32/glom.iss.in: Added some missing DLLs and gda and glom python
	modules.

2008-02-05  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.cc: Fixed a 'non-void function does not
	return a value' warning in
	ConnectionPool::check_postgres_is_available_with_warning().

	* glom/layout_item_dialogs/dialog_buttonscript.cc: Use a monospace
	font for the python script text field. Coding is much more convenient
	with a monospace font.

2008-02-04  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.cc: Try finding postgres binaries in
	bin/ first. The installer installs them there because they do not find
	the shared data they need otherwise.

	* icons/Makefile.am:
	* icons/win32/Makefile.am: Include the glom.ico in the distribution.

	* glom/Makefile.am: Link glom.exe with the -mwindows flag on Windows
	so that starting glom does not start a console window additionally.

	* win32/glom.iss.in: The script to create the Windows installer with
	InnoSetup (http://www.innosetup.org). It is a .in files so that
	configure automatically sets the correct Glom version in it.

	* win32/querymodules.bat: Batch file the installer uses to register
	pango modules, gdk pixbuf loaders and GTK+ input methods.

	* win32/build-installer: Tool I use to gather all files for the
	installer. It is currently verify specific to my own build setup.

	* win32/Makefile.am: Include these files with make dist.

	* Makefile.am: Add win32 to SUBDIRS.
	* configure.in: Create win32/Makefile, win32/glom.iss and
	icons/win32/Makfile.

2008-02-03  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/glade_utils.h:
	* glom/main.cc: Adjust paths of glade files and locales to match the
	path the (yet to come) installer installs them.

	* glom/libglom/connectionpool.cc: Pass the -L flag with a path
	relative to the glom executable (where the installer will install it)
	to initdb on Windows so that it finds necessary files that are
	normally available in /usr/share/postgresql/.

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

	* glom/layout_item_dialogs/dialog_field_summary.cc: on_button_field():
	Pass the correct parameter to avoid a use of an uninitialized value.
	* glom/libglom/data_structure/layout/report_parts/layoutitem_fields_summary.cc:
	Constructor: Initialize a member variable to avoid a use of an
	uninitialized value.
	This fixed the crashes in bug #513927 (Göran)

2008-01-31  Armin Burgmeier  <armin@openismus.com>

	* icons/win32/glom.ico: Added 48x48 glom.ico to be used as icon for
	glom.exe.
	* glom/glom.rc: Added resource file containing glom.ico.
	* glom/Makefile.am: Link resource file into glom.exe.

2008-01-31  Armin Burgmeier  <armin@openismus.com>

	* glom/main.cc: Load translations relative to glom.exe on Windows.

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

	* glom/mode_data/box_data_details.cc: on_flowtable_script_button_clicked():
	Make sure that we send the primary key value when refreshing after a button
	was clicked. This fixes the bug that most of the fields were blanked after
	clicking a button.

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

	* glom/libglom/document/document_glom.cc: load_after_layout_item_field():
	Call set_full_field_details() on the layout item, so we load the correct
	formatting for that field type. For instance, this means we do not lose
	the multiline formatting option when loading.
	Thanks to Göran (TEK-en) for finding this bug.

2008-01-28  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/spawn_with_feedback.cc: Set IOChannel that reads stderr
	from child process to be nonblocking to make sure we don't block the
	whole process.

2008-01-27  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/glade_utils.h: Added Utils::get_glade_file_path() to
	locate the glade file relative to the application executable on
	Windows.

	* glom/dialog_invalid_data.cc:
	* glom/libglom/spawn_with_feedback.cc:
	* glom/utility_widgets/datawidget.cc:
	* glom/frame_glom.cc:
	* glom/layout_item_dialogs/dialog_field_layout.cc:
	* glom/layout_item_dialogs/dialog_group_by.cc:
	* glom/reports/dialog_layout_report.cc:
	* glom/translation/window_translations.cc:
	* glom/base_db.cc:
	* glom/main.cc:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/flowtablewithfields.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/filechooser_export.cc:
	* glom/application.cc:
	* glom/mode_design/script_library/dialog_script_library.cc:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/print_layouts/dialog_text_formatting.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.cc: Use
	Utils::get_glade_file_path() to load the glade files.

2008-01-26  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/dialog_progress_creating.h:
	* glom/libglom/dialog_progress_creating.cc: Added a run() method so
	that we can show it without the ugly while(Gtk::Main::events_pending())
	Gtk::Main::iteration().

	* glom/libglom/spawn_with_feedback.cc: Rewrote
	execute_command_line_and_wait_until_second_command_returns_success()
	so that it does not block the UI, does not run into an endless loop if
	the first command fails, and shows a useful error message in that
	case.

	* glom/libglom/connectionpool.cc: Locate postgres executables via
	Glib::find_program_in_path() on Windows, because hardcoding the path
	to the postgres utils does not work. Use "postgres.exe" instead of
	"postmaster.exe" on Windows because the postgres installer does not
	install postmaster.exe (which is deprecated since postgresql 8.2).

2008-01-25  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/mode_data/box_data_details.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:

	Fixed two crasher related to working with empty layout/empty tables

2008-01-21  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/libglom/document/document_glom.cc:
	Fixed crasher in case there is no default layout group

	* glom/utility_widgets/flowtable.cc:
	Avoid division by zero

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

	* configure.in:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/calendar/Makefile.am:
	* glom/utility_widgets/calendar/README:
	* glom/utility_widgets/calendar/glomcalendar.cc:
	* glom/utility_widgets/calendar/glomcalendar.h:
	* glom/utility_widgets/calendar/glomgtkcalendar.c:
	* glom/utility_widgets/calendar/glomgtkcalendar.h:
	Added copied (and renamed) versions of Gtk::Calendar and
	GtkCalendar with the new details callback function,
	instead of depending on unreleased/unstable GTK+ and gtkmm.

2008-01-17  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/mode_data/flowtablewithfields.cc:
	* glom/utility_widgets/flowtable.cc:

	Fixed some odd dragging bug and removed dialogs for
	new buttons/label. Use Developers->Layout instead to
	change the appearance of newly added items.

2008-01-17  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connection_pool.h:
	* glom/libglom/connection_pool.cc: Added
	ConnectionPool::get_try_other_ports().

	* glom/frame_glom.cc: Fixed connection proceduce after creating new
	self-hosted database by setting port and try_other_ports into in the
	document. These settings are later used for the connection. If we
	don't do that, port is 0 and we can't connect.

2008-01-14  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/utility_widgets/dragbutton.cc:
	Setup drag source correctly.

	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	Fixed placeholder expanding
	Support dragging on child widgets (at least GtkEntry's for now)

2008-01-13  Armin Burgmeier  <armin@openismus.com>

	* configure.in: Disable the --with-postgres-utils options on Windows
	because it does not make sense to hardcode paths on Windows. We use
	Glib::find_program_in_path to locate the postgres executables.

	* glom/libglom/connectionpool.h:
	* glom/libglom/connectionpool.cc: Severial windows fixes: Don't use
	libepc, locate postgres programs using Glib::find_program_in_path,
	quote path to executables, use closesocket() instead of close().

	* glom/libglom/spawn_with_feedback.cc: Fixed typo.

	* glom/Makefile.am: Changed library linking order so linking developer
	mode on Windows succeeds.

2008-01-10  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Depend on the latest version of libgda, because we
	use the new Gda::Value::get_ulong() method. Thanks to Rohit Agrawal.

2008-01-04  Johannes Schmid <jhs@gnome.org>

	* glom/utility_widgets/flowtable.cc:
	Cleaned-up setup_dnd() code and fix a very stupid
	bug in column calculation

2008-01-02  Armin Burgmeier  <armin@openismus.com>

	* glom/utility_widgets/cellrendererlist/cellrendererlist.h:
	* glom/utility_widgets/cellrendererlist/cellrendererlist.cc:
	* glom/utility_widgets/cellrendererlist/Makefile.am
	* configure.in: Moved cellrendererlist to this subdirectory.

	* glom/mode_data/flowtablewithfields.h:
	* glom/mode_data/flowtablewithfields.cc: Moved the FlowTableWithFields
	class from utility_widgets to mode_data. mode_data is the only one who
	uses this, and this way, utility_widgets do no longer depend on
	mode_data. This is necessary to link libglom dynamically on Windows.

	* glom/Makefile.am: Added
	utility_widgets/cellrendererlist/libutility_widgets_cellrendererlist.a
	to LDADD.

	* glom/utility_widgets/Makefile.am:
	* glom/mode_data/Makefile.am: Changed list of source files
	accordingly.

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/mode_data/box_data_details.h: Changed include paths
	accordingly.

	* glom/libglom/Makefile.am: Link libglom dynamically on Windows. This
	requires also the latest versions of libgdamm, gnome-vfsmm, gconfmm
	and bakery because earlier versions do not create a shared library on
	Windows, and shared libraries cannot be linked against static ones.

	* glom/python_embed/python_module/Makefile.am: Rename the python glom
	module from glom.dll to glom.pyd on Windows when installing because
	python does not find the module when it does not end on .pyd. These
	.pyd files are simply renamed DLLs.

2007-12-30  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	Allow dragging on child widgets that use their own GdkWindow. This
	works for GlomImage now but still needs some work for GlomEntrys and
	other widgets.

	* glom/utility_widgets/flowtablewithfields.cc:
	Don't put child flowtables into Gtk::EventBox because it's useless

2007-12-29  Armin Burgmeier  <armin@openismus.com>

	* configure.in: Require latest libepc on both maemo and non-maemo.

	* glom/application.cc: Fixed an #ifdef at the wrong position so the
	application's menu is fully populated in client-only mode.

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

	* glom/glom_document.dtd: Several corrections and improvements. This is not
	quite finished yet.

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

	* glom/glom_document.dtd: Updated and corrected DTD with documentation
	comments. This was completed by Nicholas Sinnott-Armstrong (novanasa),
	as a Google Highly-Open Participation (GHOP) task (GNOME GHOP task 49).
	This is for documentation (or utilities) - we do not actually validate the
	.xml so that we can be as liberal as possible when loading documents.

2007-12-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/glomconversions.cc: get_text_for_gda_value():
	Return escaped text for images, instead of using to_string(). This fixes the
	loading of images from the document, so they are not lost when closing the
	document.

2007-12-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/canvas/canvas_image_movable.cc:
	* glom/utility_widgets/canvas/canvas_item_movable.h: scale_to_size():
	Set the size again after setting the pixbuf, to preserve the size.
	* glom/utility_widgets/canvas/canvas_group_resizable.cc:
	* glom/utility_widgets/canvas/canvas_group_resizable.h:
	Added (and emitted) signal_resized().
	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	* glom/mode_design/print_layouts/canvas_layout_item.h:
	Handle signal_resized() to rescale images when they are resized.

2007-12-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/canvas/canvas_image_movable.cc:
	* glom/utility_widgets/canvas/canvas_image_movable.h: Store the
	original pixbuf and use it in a new scale_to_size() method.
	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	set_layout_item(): Call scale_to_size() on images, after setting the
	size.

2007-12-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/canvas/canvas_item_movable.cc:
	cast_to_movable(), cast_to_item(): Make these handle
	CanvasGroupResizable too, causing snap-to-grid to work again,
	though it seems to only work for moving, and not for resizing.

2007-12-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: offer_imageobject(): Add show_title bool, like
	offer_textobject() alread has.
	* glom/glom_developer.glade: Correct the title of the choose image
	dialog.
	* glom/layout_item_dialogs/dialog_imageobject.cc:
	* glom/layout_item_dialogs/dialog_imageobject.h: set_layout_item():
	Add show_title bool and hide the title if it is true.
	* glom/libglom/data_structure/layout/layoutitem_image.cc:
	* glom/libglom/data_structure/layout/layoutitem_image.h: Added
	get_image_as_pixbuf() for convenience.
	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	set_layout_item(): Actually show the image from the layout item.
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	on_context_menu_edit(): Handle image objects.

2007-12-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	Remove m_drop_x and m_drop_y: They are useless now that we don't use
	the menu signal handler when dropping.
	create_empty_item(): Set appropriate sizes for the new items.

2007-12-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	* glom/mode_design/print_layouts/canvas_layout_item.h:
	Added remove_empty_indicators() to remove the missing-image icon from empty
	static image items.
	* glom/mode_design/print_layouts/canvas_print_layout.cc: fill_with_data():
	Call remove_empty_indicators() so that the missing-image icons are not seen
	when printing.

2007-12-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/canvas/canvas_image_movable.cc:
	* glom/utility_widgets/canvas/canvas_image_movable.h: Added set_image() and
	set_image_empty(), which adds a MISSING_IMAGE stock icon.
	* glom/mode_design/print_layouts/canvas_layout_item.cc: set_layout_item():
	Use set_image_empty().

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	on_canvas_drag_data_received(): After a drop, delete the temporary canvas
	item shown during drag motion.
	Added on_canvas_drag_leave(), so we can delete the temporary item when the
	user drags out of the canvas without doing a drop.

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

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	Added create_empty_item() to avoid duplicate code for the various ways to add
	new items. For instance, when dragging from the toolbar, actually put some text
	in the text item so that something is visible.
	We still need to make empty images and portals visible somehow.

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

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	Constructor: Do not use the drag_dest_set() default flag values,
	because they prevent us from really using our own callbacks, and actually
	cause a pointer grab when trying to get the data during a drag-motion event.
	on_canvas_drag_drop(): Call drag_get_data(), because we are no longer
	using DEST_DEFAULT_DROP (via DEST_DEFAULT_ALL), which previously did
	this for us.

2007-12-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc: Constructor:
	* glom/utility_widgets/datawidget.cc: Constructor:
	Added tooltip text for navigation buttons and the Open and Find buttons
	next to IDs.

2007-12-17  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Depend on the latest libepc.
	* glom/libglom/connectionpool.cc: Use the new functions to
	avoid duplicate libepc services.

2007-12-16  Johannes Schmid <jhs@gnome.org>

	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	Fixed drag&drop code to have a much better user-experience. The
	items should now be dropped more accurate at the mouse-pointer position
	and the placeholder is drawn there, too.

	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h:
	* glom/utility_widgets/dragbar.cc:
	Removed the DragButton for LayoutItem Image because it does not make sense
	without an associated field.

2007-12-12  Johannes Schmid <jhs@gnome.org>

	* glom/utility_widgets/placeholder-glom.cc:
	* glom/utility_widgets/placeholder-glom.h:

	Rewrote placeholder widget as a custom widget to get a better appearence
	when dragging.

2007-12-11  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	Constructor: Call drag_dest_set() instead of
	m_canvas.drag_dest_set(m_drag_targets), which seems to allow us
	to call drag_get_data() in our drag_motion signal handler.
	on_canvas_drag_data_received(): Always call drag_status() when
	this is during drag_motion, rather than only the first time,
	so that we keep getting drag_motion signals.

2007-12-10  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/glom.glade:
	Fixed Bug 502570 – remove gtk-ok gtk-cancel from translation

	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtablewithfields.cc:

	Removed some debugging code

2007-12-07  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/glom.glade:
	Added dialog for new fields

	* glom/libglom/data_structure/layout/layoutgroup.cc:
	add_item() should add before - not after the item, at least for dnd

	* glom/utility_widgets/dragbar.cc:
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h:
	Added drag buttons for text, image and button
	Fix crasher in dnd code

	* icons/16x16/Makefile.am:
	* icons/16x16/glom-button.png:
	* icons/16x16/glom-text.png:
	* icons/16x16/glom-image.png:

	Added new icons (from glade3)

2007-12-07  Johannes Schmid <johannes.schmid@openismus.com>

	* configure.in:
	* glom/Makefile.am:
	Merged maemo-launcher changes from glom-1.6 branch

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

	* glom/libglom/appstate.cc: Fix an ifdef to allow us to go into developer mode
	again in normal not-client-only mode.

2007-12-04  Armin Burgmeier  <armin@openismus.com>

	* acinclude.m4: Change the the python library finder so that is also
	finds libpythonMAJORMINOR.* instead of libpythonMAJOR.MINOR.*, because
	the former is used on windows.

	* configure.in: Don't require avahi, iso-codes and libepc on Windows,
	made goocanvasmm nonoptional because it is needed for the printing
	stuff.

	* glom/frame_glom.h:
	* glom/libglom/connectionpool.h:
	* glom/libglom/spawn_with_feedback.cc:
	* glom/libglom/connectionpool.cc:
	* glom/utility_widgets/flowtable.h:
	* glom/utility_widgets/flowtablewithfields.h:
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/placeholder-glom.cc:
	* glom/utility_widgets/Makefile.am:
	* glom/frame_glom.cc:
	* glom/application.h:
	* glom/application.cc: Clientonly and Windows build fixes.

	* glom/python_embed/python_module/Makefile.am:
	* glom/libglom/Makefile.am:
	* glom/Makefile.am:
	* Makefile.am: Do not link against -lutil on Win32, because there is
	no such library, and it does not seem to be needed. Link libglom
	statically on Windows for now.

2007-12-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list_related.cc:
	* glom/utility_widgets/filechooserdialog_saveextras.cc:
	* glom/utility_widgets/flowtablewithfields.cc: Replace more hard-coded 6 spacing
	with our constant, so it is less on Maemo.

2007-12-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: on_document_load(): Call set_get_document_func() earlier
	so that the connection pool always has it.
	* glom/libglom/connectionpool.cc: connect(): Start avahi publihsing here if it has
	not already been started, so we publish databases that are centrally-hosted too.
	However, we need to do this only for the first user.
	on_sharedconnection_finished(): stop avahi.

2007-12-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list_related.cc: create_layout_get_layout(),
	get_fields_to_show():
	* glom/mode_data/dialog_layout_list_related.cc: update_ui():
	Do not try to insert at position 0 of an empty std::vector, to prevent crashes.
	I introduced this problem on 2007-11-17.

2007-12-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc:
	* glom/application.h: ui_file_select_open_with_browse(),
	open_browsed_document(): Remove the BrowsedServer inner class and instead use
	EpcServiceInfo and a service_name string. This reduces the amount of code.

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

	* glom/application.cc: open_browsed_document(): Adapt to the latest
	libepc API, using the EpcServiceInfo object.

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

	* configure.in: Rename --disable-doc to --disable-doc-utils to be
	clearer, and move the check lower in configure.ac because it was
	somehow causing the check for pkg-config to fail.

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

	* configure.in:
	* Makefile.am: Added --disable-doc configure option, because
	Maemo has no gnome-doc-utils. This was copied partly from Ekiga.

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

	* glom/utility_widgets/Makefile.am:  Mention dragbar.h to fix the
	dist.
	* icons/16x16/Makefile.am: Dist pixmaps_DATA.

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

	* glom/utility_widgets/Makefile.am: Mention dragbar.h to fix the
	dist.

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

	* glom/glom.glade: Remove dialog_connection_error.
	* glom/application.cc:
	* glom/frame_glom.cc:
	* glom/frame_glom.h: Replace use of dialog_connection_error
	with Utils::show_ok_dialog(), so we can use a Hildon::Note
	on Maemo.

2007-12-01  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/appstate.cc: Constructor: Make sure that we
	default to operator mode for client-only mode.
	* glom/glom.glade:
	* glom/frame_glom.cc:
	* glom/frame_glom.h: Hide the footer (user level and found count)
	in Maemo build.

	* glom/dialog_glom.cc:
	* glom/mode_find/box_data_list_find.cc:
	* glom/utility_widgets/flowtablewithfields.cc: Replace some padding
	and spacing with the constants, so we save space in the Mameo build.

2007-12-01  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Check for glibmm 2.14.1, because only a libgdamm built with
	that can create the iter-only treemodel.

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

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Use epc_shell_set_progress_hooks()
	to show some UI while generating certificates during a first run.

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

	* glom/libglom/connectionpool.cc: stop_self_hosting():
	Use the -m fast option with pg_ctl to avoid waiting for clients to
	disconnect first.
	This seems to fix bug #420962 (Craig Keogh, Denis Leroy, Perriman)

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

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Added get/set_try_other_ports().
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Added get/set_connection_try_other_ports(),
	and saved it.
	* glom/dialog_connection.cc: connect_to_server_with_connection_settings():
	Use try_other_ports from the document.
	* glom/application.cc: open_browsed_document(): Set try_other_ports in the
	document (It is not really needed in the on-disk XML, but this is the easiest
	place to pass that information).
	This should prevent us from opening a different postgres server on the same
	host when connecting via browse network.

2007-11-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: on_document_load(): When starting self-hosting,
	remember the port used and specify it again when connecting to the self-hosted
	postgres database, to avoid connecting to another postgres server running on
	the same machine which happens to have the same database name in it.
	Confused the hell out of me.

2007-11-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: open_browsed_document(): Check for
	SOUP_STATUS_UNAUTHORIZED as well as SOUP_STATUS_FORBIDDEN because I
	have started getting this.
	* glom/application.h: Remove some unnecessary virtuals from methods.

2007-11-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Added get/set_port().
	Store the port after it has been used successfully.
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Added get/set_connection_port(),
	so we can try to use the same port as last time, to save time, and to
	avoid connecting to some other postgres server on the same host.

2007-11-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/dialog_connection.cc:
	* glom/dialog_connection.h: Added set_connect_to_browsed(), which dims the
	host name.
	* glom/application.cc:
	* glom/application.h: ui_file_select_open_with_browse(): Store the service name
	(the database name) and show it in the connection dialog in open_browsed_document().

2007-11-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: open_browsed_document(): Replace the host name
	if it is localhost, because our localhost is not the same as the localhost of
	the publisher.

2007-11-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc:
	on_publisher_document_authentication(): Try to connect to the database
	with the username/password, so we know whether they are correct.

	* glom/dialog_connection.cc:
	* glom/dialog_connection.h: Added set_username() and
	set_password(), so we can reuse this code to connect,
	even without showing the dialog.
	* glom/application.cc:
	* glom/application.h: open_browsed_document():
	Ask for the usernmame and password before trying to
	get the document over the network. Store the
	username and password temporarily so we do not need
	to ask the user again in on_document_load().
	* glom/frame_glom.cc:
	* glom/frame_glom.h: connection_request_password_and_attempt():
	Added known_username and known_password string parameters, and do not
	show the dialog if they are known already.
	This seems to work.

	* glom/libglom/Makefile.am:
	* glom/libglom/glade_utils.h: Added this and moved the
	glade_* convenience templates into it.

2007-11-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/glomconversions.cc:
	convert_value(): Deal with gint values specially, because
	we usually really do want to convert gints to GdaNumerics,
	though we do use gints for some serial keys.
        (I think, but maybe not anymore.)
	* glom/python_embed/glom_python.cc:
	glom_evaluate_python_function_implementation(): Make sure that
	the we return an appropriate value type, by calling
	convert_value(), because pygda_value_from_pyobject() would not
	necessarily return exactly what we want.
	This seems to fix bug #499459 (Perriman) so that numeric
	calculations do not cause SQL errors in non-English locales.

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

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Connected an authentication handler for the
	publisher, but it needs the full password to try a postgres connection.

2007-11-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: get/set_userlevel(): Do not
	allow developer mode if the document was opened over the network via browse.
	That would require writing of the original document. That is a feature for the
	future maybe.
	* glom/frame_glom.cc: on_menu_userlevel_Developer(): Warn when trying to
	enter developer mode.
	* glom/application.cc: When opening from browse, explicitly set the user
	level to operator and update the UI, though I feel this should be automatic.

2007-11-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Added get/set_opened_from_browse().
	* glom/application.cc: on_menu_file_open(): Use set_opened_from_browse().
	offer_new_or_existing(): Check get_opened_from_browse() so we don't think it
	failed just because there is no URI, so we don't offer the window again.

2007-11-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: Fix the double free, but for some reason it shows the initial
	dialog again.

2007-11-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Added save_and_get_content(),
	so I can manipulate a temporary copy of the document and then load it properly.
	* glom/application.cc:
	on_menu_file_open(): When openeing a browsed document, use a temporary instance
	of the document class (incredibly inefficiently) to mark the document as
	not self-hosted. This now actually opens the file, but then it crashes with a
	double free warning.

2007-11-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: Don't provide the service type twice to
	aui_service_dialog_set_browse_service_types(), so we don't get
	an unnecessary type column.
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: avahi_start_publishing():
	Mention the document name in the published service name, to make
	browsing more sensible.

2007-11-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Added set_get_document_func().
	This avoids us having to link to the application (not in libglom)
	to get the document from it.
	avahi_start_publishing(): Publish the document contents via a
	callback, though this needs a change in libepc to copy the data.

	* configure.in: Depend on avahi-ui, so we can show the
	browse dialog.
	* glom/application.cc:
	* glom/application.h:
	Added ui_file_select_open_with_browse() which adds a browse
	network button to the file chooser dialog and then gets the server
	details after asking the user to browse.
	on_menu_file_open(): Use ui_file_select_open_with_browse() instead
	of regular ui_file_select_open(). Use the new
	Bakery::App_WithDoc::open_document_from_data() if opening over the
	network.

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

	* glom/application.cc:
	* glom/application.h: Rearrange code to reduce the number of
	ifdefs.
	* glom/utility_widgets/Makefile.am: Do not build
	filechooserdialog_saveextras.[h|cc] in client-only mode.

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

	* glom/application.cc:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/filechooserdialog.cc:
	* glom/utility_widgets/filechooserdialog.h: Rename this to:
	* glom/utility_widgets/filechooserdialog_saveextras.cc:
	* glom/utility_widgets/filechooserdialog_saveextras.h:
	because I want to add another custom one for loading.

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

	* configure.in:
	* glom/libglom/Makefile.am:
	* glom/libglom/avahi_publisher.cc:
	* glom/libglom/avahi_publisher.h: Remove this.
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Replace the old
	AvahiPublisher with use of libepc.
	As before, it currently just advertizes the service,
	but soon it will publish the .glom file.

2007-11-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/layout_item_dialogs/Makefile.am:
	* glom/libglom/Makefile.am:
	* glom/libglom/data_structure/Makefile.am:
	* glom/libglom/data_structure/layout/Makefile.am:
	* glom/libglom/data_structure/layout/report_parts/Makefile.am:
	* glom/libglom/document/Makefile.am:
	* glom/libglom/python_embed/Makefile.am:
	* glom/mode_data/Makefile.am:
	* glom/mode_design/Makefile.am:
	* glom/mode_design/fields/Makefile.am:
	* glom/mode_design/print_layouts/Makefile.am:
	* glom/mode_design/script_library/Makefile.am:
	* glom/mode_design/users/Makefile.am:
	* glom/mode_find/Makefile.am:
	* glom/navigation/Makefile.am:
	* glom/python_embed/Makefile.am:
	* glom/python_embed/python_module/Makefile.am:
	* glom/relationships_overview/Makefile.am:
	* glom/reports/Makefile.am:
	* glom/translation/Makefile.am:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/adddel/Makefile.am:
	* glom/utility_widgets/adddel/eggcolumnchooser/Makefile.am:
	* glom/utility_widgets/canvas/Makefile.am:
	* glom/utility_widgets/db_adddel/Makefile.am:
	Use AM_CPPFLAGS instead of the deprecated INCLUDES.

2007-11-19  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Depend on the latest Bakery.

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

	* glom/libglom/data_structure/layout/layoutgroup.cc:
	* glom/libglom/data_structure/layout/layoutgroup.h:
	Remove add_item(item, sequence). Added add_item(item, item at position);
        Removed remove_item(). Removed m_sequence.
	Use a vector of items instead of a map.
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Do not load or save the
	layout item sequence number. Just use the sequence in the XML file.

	* glom/application.cc:
	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/filechooser_export.cc:
	* glom/filechooser_export.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/layout_item_dialogs/dialog_group_by.cc:
	* glom/layout_item_dialogs/dialog_groupby_secondaryfields.cc:
	* glom/layout_item_dialogs/dialog_groupby_secondaryfields.h:
	* glom/layout_item_dialogs/dialog_groupby_sortfields.cc:
	* glom/layout_item_dialogs/dialog_notebook.cc:
	* glom/libglom/data_structure/layout/layoutitem.cc:
	* glom/libglom/data_structure/layout/layoutitem.h:
	* glom/libglom/data_structure/layout/layoutitem_portal.cc:
	* glom/libglom/sharedptr.h:
	* glom/libglom/test_sharedptr_layoutitem.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_export.cc:
	* glom/mode_data/dialog_layout_export.h:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_user.cc:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/reports/dialog_layout_report.cc:
	* glom/reports/report_builder.cc:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h:
	Adapt to the new LayoutGroup API. This is now much simpler - we don't have
	to worry about the sequence number of keeping the two copies of it in sync.

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

	* glom/utility_widgets/flowtablewithfields.cc:
	on_dnd_add_layout_item(): Copy/adjust lots of already-ugly
	ugly code from on_datawidget_layout_item_added() to update
	the group's list of child items, so that the layout is really
	saved in the document.
	Both these functions need to be improved and partly combined.

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

	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	More whitespace fixes.

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

	* glom/application.cc:
	* glom/application.h:
	* glom/utility_widgets/dragbar.cc:
	* glom/utility_widgets/dragbar.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/placeholder-glom.cc:
	* glom/utility_widgets/placeholder-glom.h:
	* glom/utility_widgets/sidebar.cc:
	* glom/utility_widgets/sidebar.h: Corrected inconsistent
	whitespace. Do not use tabs.

2007-11-16  Andre Klapper  <a9016009@gmx.de>

	* glom/box_db_table_relationships.cc:
	* glom/glom_developer.glade:
	Added translator comments to fix bug #497188.

2007-11-16  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/application.cc:
	* glom/application.h:
	* glom/glom.glade:

	Added SideBar API

	* glom/frame_glom.cc:
	* glom/frame_glom.h:

	Show drag sidebar when in developer mode

	* glom/libglom/data_structure/layout/Makefile.am:
	* glom/libglom/data_structure/layout/layoutitem_placeholder.cc:
	* glom/libglom/data_structure/layout/layoutitem_placeholder.h:

	Added Placeholder Layoutitem for use in drag & drop preview code

	* glom/utility_widgets/sidebar.cc:
	* glom/utility_widgets/sidebar.h:
	* glom/utility_widgets/dragbar.cc:
	* glom/utility_widgets/dragbar.h:
	* glom/utility_widgets/dragbutton.cc:
	* glom/utility_widgets/dragbutton.h:
	Added sidebar base class and sidebar for dnd code

	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h:
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h:
	* glom/utility_widgets/placeholder-glom.cc:
	* glom/utility_widgets/placeholder-glom.h:
	* glom/utility_widgets/test_flowtable.cc:

	Drag & Drop layout
	(see http://www.glom.org/wiki/index.php?title=Development/Plans/DragAndDropLayout)
	and #358092)

	* icons/16x16/Makefile.am:
	* icons/glom-field.png:
	* icons/glom-group.png:

	Added sidebar icons (stolen from glade-3...)

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

	* glom/glom_developer.glade:
	* glom/libglom/data_structure/layout/layoutitem_notebook.cc:
	* glom/libglom/spawn_with_feedback.cc:
	* glom/main.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/translation/window_translations.cc:
	* glom/utility_widgets/flowtablewithfields.cc:
	Added translator comments and fixed typos from bug #497188.
	(Andre Klapper)

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

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	construct_specified_columns(): Use the font, foreground-color,
	and background-color settings for the list view too.

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

	* glom/utility_widgets/layoutwidgetbase.cc:
	apply_formatting(): Use the correct widget color
	properties to really set the foreground text color and
	background color.

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

	* glom/Makefile.am: Add an extra repeated link line.
	* glom/frame_glom.h: Remove the horrible extra member
	variable hack around that linker strangeness.

	* glom/utility_widgets/canvas/Makefile.am: Correct some filenames to
	fix the distcheck.

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

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	Handle the drag-motion signal to show a temporary canvas item while dragging.
	But this does not work - the cursor is grabbed and no further motion events
	occur, so this is partly commented out.

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

	* glom/frame_glom.cc:
	* glom/frame_glom.h: Move dialog creation from the constructor to
	where they are first used. This reduces start-up time slightly, and stops
	wasting memory, at the cost of slightly (impercetible, hopefully) longer
	time to open menus.

2007-11-12  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom_developer.glade: Make the toolbar pack_end and non-expand
	so that it acts as expected.
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	Call set_default_position() with the drop coordinates, so that all items
	are dropped at the correct place.

2007-11-12  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	on_canvas_drag_drop(): Do not call drag_get_data(). It does not seem
	necessary - it causes two drops to happen instead of one.

2007-11-12  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/print_layouts/box_print_layouts.cc:
	on_adddel_changed();
	* glom/navigation/box_tables.cc: on_adddel_changed():
	Fix the rename confirmation dialog to actually have two buttons.

2007-11-12  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	fill_with_data(): Do not try to get data for fields that were
	not yet chosen.

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

	* glom/mode_design/print_layouts/Makefile.am:
	* glom/mode_design/print_layouts/action_layout_item.cc:
	* glom/mode_design/print_layouts/action_layout_item.h:
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	Added a toolbar whose items can be dragged to the canvas.
	It is not working perfectly and it is not pretty, but it is a
	start.

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

	* glom/glom_developer.glade:
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	Added an undockable vertical toolbar to replace the Insert menu.
	It is not very attractive, and it needs to work as a drag source,
	rather than being clickable items.

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

	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.h:
	add_layout_group(): added an is_top_level parameter, so we can
	avoid adding a canvas item for the canvas's own layout group.

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

	* glom/libglom/data_structure/print_layout.cc: Copy constructor
	and operator=(): Copy the page_setup.
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	get_print_layout(), set_print_layout(): Actually load/save the
	page setup.

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

	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	fill_with_data(): Don't crash if no fields are on the layout.
	* glom/printoperation_printlayout.cc:
	* glom/printoperation_printlayout.h: Handle the paginate
	signal, though this probably requires the GTK+ patch in
	bug #345345.

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

	* glom/libglom/utils.cc:
	* glom/libglom/utils.h:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	Some very minor comments next to some maemo-ifdefs.

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

	* glom/libglom/data_structure/layout/layoutitem.cc:
	* glom/libglom/data_structure/layout/layoutitem.h: Added
	get/set_print_layout_split_across_pages() for future use.

	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h:
	get/set_node_attribute_value_as_decimal(): Added a default parameter,
	defaulting to 0, so we can use other values as defaults to avoid
	superfluous attributes.
	Used this when loading and saving groups, because 1 column is
	the default, and 0 is meaningless.

	* glom/utility_widgets/canvas/canvas_group_movable.cc:
	* glom/utility_widgets/canvas/canvas_group_movable.h:
	Store the x and y even before there is a child.

	* glom/utility_widgets/canvas/Makefile.am:
	* glom/utility_widgets/canvas/canvas_table_movable.cc:
	* glom/utility_widgets/canvas/canvas_table_movable.h:
	Added this canvas item.
	* glom/utility_widgets/canvas/canvas_item_movable.cc:
	Support the table item in the cast functions.
	Return false from some signal handlers, so that other objects
	can handle them too.
	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	set_layout_item(): Create a table canvas item for a portal layout
	item, though it is currently just a useless test table.
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	Handle the loading and saving of the portal layout item.
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	Added an Insert Related Records menu item.

2007-11-06  Armin Burgmeier  <armin@openismus.com>

	* several files: Merged changes from GLOM_CLIENTONLY branch. This
	polished up the maemo port a bit.

2007-11-04  Gabor Kelemen  <kelemeng@gnome.hu>

	*glom/glom_developer.glade: Remove translatable property from stock items. Fixes #493202

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

	* glom/libglom/data_structure/layout/Makefile.am:
	* glom/libglom/data_structure/layout/layoutitem_line.cc:
	* glom/libglom/data_structure/layout/layoutitem_line.h:
	Added this new layout item, only for print layouts.
	* glom/libglom/document/document_glom.cc: load and save the
	new layout item.
	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	set_layout_item(): Handle the new layout item type, creating
	a canvas line for it.
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	Added Insert menu items, to add horizontal and vertical lines.
	* glom/utility_widgets/canvas/canvas_group_resizable.cc:
	* glom/utility_widgets/canvas/canvas_group_resizable.h:
	Create (and handle) different manipulators if the child is a line.
	* glom/utility_widgets/canvas/canvas_line_movable.cc:
	set_coordinates(): Set the x/y/width/height too, for generic code.

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

	* po/POTFILES.in: Added new files.

2007-10-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc:
	* glom/frame_glom.h: Added bool get_viewing_details().
	Handled the notebook's page_switch to refresh the
	print sub-menu.
	* glom/application.cc: fill_menu_print_layouts():
	Do not list print layouts if we are viewing the list,
	because they are (currently) only for details.

2007-10-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h: Set m_FoundSet
	whenever the primary key value is set, so we really print
	the layout for the current record.
	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	set_db_data(): Avoid triggering a crash in goocanvas
	when setting a NULL pixbuf. Patch sent.

2007-10-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/canvas/canvas_group_resizable.cc:
	set_child(): Really remove the old item.

2007-10-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/canvas/canvas_group_resizable.cc:
	* glom/utility_widgets/canvas/canvas_group_resizable.h:
	Re-enable hiding of the corner and edge manipulators when the
	cursor is not over the item. Add a Rect so we can drag and
	mouse-over the entire area, not just the part occupied by
	the text.
	Store and use the position even when there is no child yet.
	set_child(): Ignore the initial position of the child:
	set it to that of self. Document that.
	Put the manipulators in a group, to simplify the code that
	ensures their z position.
	I am gradually more certain that I should have just used
	a GooCanvasTable for this.

	* glom/utility_widgets/canvas/canvas_editable.cc:
	* glom/utility_widgets/canvas/canvas_editable.h:
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.h:
	Override set_grid_gap() so we can make sure that it is above
	our page bounds rect.

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

	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	Added a View/Fit To Page menu item, and defaulted to this,
	rescaling as the window is resized.

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

	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.h:
	Draw lines to indiciate the page margins (the parts on which
	the printer cannot print).
	* glom/printoperation_printlayout.cc: Call set_use_full_page(),
	because we include the margin space our canvas.

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

	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	fill_with_data(): Use the correct field index, so that the
	field data is shown correctly.

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

	* glom/utility_widgets/canvas/canvas_editable.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.h:
	Add the items to a group, so we can remove them without removing
	other canvas items.
	set_page_setup(): Make the canvas gray and put a white rectangle
	on the bottom to show the page bounds.

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

	* glom/glom_developer.glade:
	* glom/base_db.cc: offer_textobject(): Return the starting
	text if cancel was clicked, so that cancel doesn't clear the
	text.
	* glom/layout_item_dialogs/box_formatting.cc:
	* glom/layout_item_dialogs/box_formatting.h: Replaced the
	3 hide* functions with set_is_for_print_layout().
	Replace the checkboxes with labels in this case.
	This is still quite unpleasant but we will eventually have
	an editor on the layout window, when selection is implemented.
	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	* glom/mode_design/print_layouts/canvas_layout_item.h:
	Make sure that layout items have a font_desc set by default.

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

	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	Fix a typo so that the positions really are preserved.

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

	* glom/glom_developer.glade:
	* glom/layout_item_dialogs/dialog_textobject.cc:
	* glom/layout_item_dialogs/dialog_textobject.h:
	set_textobject(): Added a bool show_title parameter.
	* glom/base_db.cc:
	* glom/base_db.h: offer_textobject(): Added a bool show_title
	parameter.
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	update the position before showing edit or formatting dialogs,
	to avoid losing the position when resetting the layout item.

	* glom/utility_widgets/canvas/canvas_editable.cc:
	* glom/utility_widgets/canvas/canvas_editable.h: Added an
	add_item(item, group) overload, so we can group items together
	instead of putting them directly in the root group.

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

	* glom/printoperation_printlayout.cc: Call set_unit(), because
	this apparently affects the cairo context that will be provided
	to us.
	* glom/utility_widgets/canvas/canvas_text_movable.cc:
	* glom/utility_widgets/canvas/canvas_text_movable.h: Rename
	set_font() to set_font_points(), and convert from mm to points,
	using Pango::FontDescription to manipulate the font_desc string.

	Text is now an appropriate size, though there is plenty of
	other weirdness still.

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

	* glom/glom_developer.glade:
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	Added rulers around the canvas, which update appropriately, like
	in Inkscape.
	* glom/printoperation_printlayout.cc: Do not scale the context.
	Everything should already be exactly correct on the canvas.

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

	* glom/libglom/data_structure/layout/layoutitem_text.cc:
	* glom/libglom/data_structure/layout/layoutitem_text.h:
	Added m_formatting and get_formatting_used() here, as in
	LayoutItem_Field. They should probably share a base class if
	this gets silly.
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: load and save the
	formatting for text items as well as just fields.
	* glom/layout_item_dialogs/box_formatting.cc:
	* glom/layout_item_dialogs/box_formatting.h: Added default
	arguments for set_formatting() parameters, so we can ignore
	stuff that is only relevant to fields.
	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	* glom/mode_design/print_layouts/canvas_layout_item.h:
	set_layout_item(): Use set_text() rather than property_text(),
	so that the markup is constructed. Use markup for text items as well
	as fields.
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	on_context_menu(): Show formatting options for text items as well as
	fields.
	* glom/utility_widgets/layoutwidgetbase.cc:
	* glom/utility_widgets/layoutwidgetbase.h: Added the
	apply_formatting(widget, formatting) convenience method.
	* glom/utility_widgets/datawidget.cc: Constructor: Use the
	apply_formatting() convenience method.
	* glom/utility_widgets/flowtablewithfields.cc: add_textobject():
	Use formatting for text items.

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

	* glom/libglom/document/document_glom.cc: Save the font and color
	formatting for all field types, not just text.
	* glom/layout_item_dialogs/box_formatting.cc:
	* glom/layout_item_dialogs/box_formatting.h: Added
	hide_choices(), hide_multiline(), set_force_show_text_formatting().
	enforce_constraints(): Show the font and color options for all
	field types except booleans, not just text.
	* glom/mode_design/print_layouts/dialog_text_formatting.cc:
	* glom/mode_design/print_layouts/dialog_text_formatting.h:
	Use the new functions to show appropriate options for the print
	layout items.

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

	* glom/glom_developer.glade:
	* glom/layout_item_dialogs/box_formatting.cc:
	* glom/layout_item_dialogs/box_formatting.h: Put the
	numeric, text, and choices sections in a notebook, to
	make the dialog smaller and less scary.
	Add checkboxes so that the user can choose not to use
	any special font or colors (to get the defaults).

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

	* glom/glom_developer.glade: Added window_text_format.
	* glom/layout_item_dialogs/box_formatting.cc:
	* glom/layout_item_dialogs/box_formatting.h:
	Added font and color properties.
	* glom/libglom/data_structure/layout/fieldformatting.cc:
	* glom/libglom/data_structure/layout/fieldformatting.h:
	Added get/set for font and foreground/background colors.
	* glom/libglom/data_structure/layout/layoutitem.cc:
	* glom/libglom/data_structure/layout/layoutitem.h:
	Removed get/set_print_layout_text_size() - We use the new
	stuff in FieldFormatting instead.
	* glom/libglom/document/document_glom.cc: Load and save the
	new field formatting.
	* glom/mode_design/print_layouts/Makefile.am:
	* glom/mode_design/print_layouts/dialog_text_formatting.cc:
	* glom/mode_design/print_layouts/dialog_text_formatting.h:
	Added a dialog for text formatting, containing the same
	text formatting options as the field properties layout
	(via box_formatting.[h|cc] and its glade definition.
	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	Use the field formatting to change the font and colors.
	* glom/utility_widgets/canvas/canvas_text_movable.cc:
	* glom/utility_widgets/canvas/canvas_text_movable.h: Added
	set_font(), and set_text(), so we can build the pango markup.
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.h:
	on_context_menu_formatting(): Show the font format dialog,
	though I need to figure out why the inner box is not visible.
	* glom/utility_widgets/datawidget.cc: Use the formatting font
	and properties here, so weird styles can be used on the on-screen
	layout too.

2007-10-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/data_structure/layout/layoutitem.cc:
	* glom/libglom/data_structure/layout/layoutitem.h:
	Added get_print_layout_text_size(), though we should have this for
	on-screen text too.
	* glom/utility_widgets/canvas/canvas_text_movable.cc:
	* glom/utility_widgets/canvas/canvas_text_movable.h: Added set_text()
	and set_text_size(), so we can use pango markup.
	* glom/mode_design/print_layouts/canvas_layout_item.cc: set_layout_item():
	Set the text size from the layout item.
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.h: Constructor:
	Set the units to mm, and set the page setup to a default.
	set_page_setup(): Change the canvas bounds to match the page setup.
	* glom/mode_design/print_layouts/window_print_layout_edit.cc:
	* glom/mode_design/print_layouts/window_print_layout_edit.h:
	init_menu(): Added zoom items to the view menu, and start with 50%.

2007-10-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/canvas/Makefile.am:
	* glom/utility_widgets/canvas/canvas_image_movable.cc:
	* glom/utility_widgets/canvas/canvas_image_movable.h:
	* glom/utility_widgets/canvas/canvas_item_movable.cc:
	Added an image item.
	* glom/utility_widgets/canvas/canvas_group_resizable.cc:
	* glom/utility_widgets/canvas/canvas_group_resizable.h:
	Added get_child().
	* glom/mode_design/print_layouts/canvas_layout_item.cc:
	* glom/mode_design/print_layouts/canvas_layout_item.h:
	Create an image item for image fields, and text items for
	the other field types.
	Added set_db_data() which changes the item contents to show
	real data instead of, for instance, a field name.
	* glom/mode_design/print_layouts/canvas_print_layout.cc:
	* glom/mode_design/print_layouts/canvas_print_layout.h:
	Added fill_with_data().
	* glom/mode_data/box_data_details.cc: init_db_details():
	Set the m_found_set where_clause from the primary key details
	so we can use it later.
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h: Added get_found_set_details().
	* glom/frame_glom.cc: on_menu_print_layout_selected():
	Fill the canvas with data before printing, from the currently
	viewed details record.

2007-10-23  Murray Cumming  <murrayc@murrayc.com>

	* Merged from the glom-precise-printing branch, because I have
	made most of the large changes, and I want to reduce the number
	of branches that we are working on.

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

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h:
	Added check_user_is_not_root().
	* glom/main.cc: Do not allow the user to start glom
	as root (or sudo) because postgres cannot start as root,
	and it is generally a bad idea for a networked application.
	Thanks to Norman for identifying the problem.

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

	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.h:
	on_button_test(): Warn if there is no return statement because it
	is easy to forget this for simple calculations.
	Thanks to Federico Munerotto for showing that this check is
	helpful.

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

	* glom/libglom/data_structure/field.cc:
	* glom/libglom/data_structure/field.h: Copy constructor:
	copy m_field_info instead of sharing one reference-counted instance.
	get_field_info(): Add a const overload and make the existing one non-const.
	This const correctness should prevent us from using the same instance when
	we actually want to explicitly take a copy.
	This errors were probably caused during the port to libgda 3.0, when
	Gda::Column became a reference-counted object.
	* glom/mode_design/fields/box_db_table_definition.cc:
	get_field_definition(): copy the field_info instead of just reusing the
	existing one, to avoid changing the original field_info accidentally.

	These changes make field type changes actually work again in 1.6.

2007-10-16  Murray Cumming  <murrayc@murrayc.com>

	* configure.in:
	* glom/main.cc:
	* glom/relationships_overview/dialog_relationships_overview.h:
	* glom/relationships_overview/printoperation_relationshipsoverview.
	h: Use the latest goocanvasmm API, with different pgk-config and
	include path.

2007-10-14  Yannig Marchegay  <yannig@marchegay.org>

	* configure.in: Added 'oc' to ALL_LINGUAS.

2007-10-12  Armin Burgmeier  <armin@openismus.com>

	* glom/libglom/connectionpool.cc: Fixed #ifdef from last commit, it is
	supposed to be #ifndef.

2007-10-11  Armin Burgmeier  <armin@openismus.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/adddel/adddel.cc: Don't use deprecated gtkmm
	API.

	* glom/libglom/connectionpool.cc:
	(ConnectionPool::check_postgres_gda_with_warning): Use Hildon::Note
	instead of Gtk::MessageDialog in maemo version.

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

	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/relationships_overview/printoperation_relationshipsoverview.
	cc: Fix the build for the latest goocanvasmm API, though all this
	code has been reworked in the glom-precise-printouts branch.

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

	* glom/relationships_overview/printoperation_relationshipsoverview.
	cc: Get the bounds of the root item rather than of the whole canvas,
	for more suitable scaling.

2007-10-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/relationships_overview/dialog_relationships_overview.h:
	* glom/relationships_overview/printoperation_relationshipsoverview.
	cc: scale before printing, because that is how cairo works.

2007-10-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade:
	* glom/relationships_overview/Makefile.am:
	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/relationships_overview/dialog_relationships_overview.h:
	* glom/relationships_overview/printoperation_relationshipsoverview.
	cc:
	* glom/relationships_overview/printoperation_relationshipsoverview.
	h: Some basic printing support for the relationships overview
        (via a menu item in the dialog, which
	is probably bad UI, but I don't like the idea of extra buttons either).
	It currently does not scale to fit the page, and does not offer
	landscape printing.

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

	* configure.in: Depend on goocanvasmm.
	* glom/main.cc: initialize goocanvasmm if not in client-only mode.
	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/relationships_overview/dialog_relationships_overview.h:
	Use C++ types as much as possible (often using Glib::wrap() instead of
	the goocanvasmm constructors, because they are currently broken), and
	generally clean up this code a bit.

2007-10-01  Armin Burgmeier  <armin@openismus.com>

	* several files: Merged changes from the GLOM_CLIENTONLY branch. This
	adds an --enable-maemo configure option that builds a clientonly
	version of glom for the maemo platform. See the ChangeLog in the
	GLOM_CLIENTONLY branch for a detailed list of changes.

2007-10-01  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: get_record_counts():
	Return the stored record count (from the extra COUNT query), instead of using
	DataModel::get_n_rows(), because that returns -1 when using the iter-only model.

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

	* glom/libglom/data_structure/layout/layoutitem_field.cc:
	* glom/libglom/data_structure/layout/layoutitem_field.h: Added get_sql_name(),
	to get the fully qualified field name (with the table name and .).
	* glom/libglom/utils.cc: build_sql_select_with_where_clause():
	Use get_sql_name() instead of building the name here, to simplify that code
	slightly.

	* glom/libglom/connectionpool.cc: handle_error(): When getting the text of
	errors, ignore any events that are not Gnome::Gda::CONNECTION_EVENT_ERROR,
	to avoid showing other irrelevant warnings. This requires the latest libgdamm.

	* glom/utility_widgets/db_adddel/glom_db_treemodel.h: Remove the useless
	m_column_record member variable.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	refresh_from_database(), fill_values_if_necessary(): Create an iter-only
	model (needs the latest libgda, glibmm, and rebuilt libgdamm), to
	hopefully only get the data that we actually want.

2007-09-27  Armin Burgmeier  <armin@openismus.com>

	* glom/glom.glade: Make the entry_quickfind not activate the default
	button when pressing enter because glom already connects
	signal_activate(). When no find criteria was entered, two error
	dialogs were shown at the same time.

2007-09-20  Armin Burgmeier  <armin@openismus.com>

	* glom/frame_glom.cc: Load "connection failed" dialog also in client
	only mode to prevent a crash when that dialog is supposed to be
	displayed.

	* glom/main.cc: Don't include <gtksourceviewmm/init.h> in client only
	mode.

2007-09-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/main.cc: initialize gtksourceviewmm so that the GType is available
	to libglade, to avoid a warning (and possibly a crash).

2007-09-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc: create_layout(): Do not try to
	add the previously-used primary key if there is no primary key in the
	table (for instance, if there are no fields in the table). This avoids
	an internal postgres warning about a non-existant field.
	* glom/utility_widgets/db_adddel/db_adddel.cc: Clear the model if there
	are no fields. This prevents a crash at startup if a table has no fields.

2007-09-14  Armin Burgmeier  <armin@openismus.com>

	* several files: Merged changes from the GLOM_CLIENTONLY branch. This
	adds an --enable-client-only configure option that disables support
	for developer mode and self-hosting. See the ChangeLog in the
	GLOM_CLIENTONLY branch for a detailed list of changes.

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

	* configure.in:
	* glom/layout_item_dialogs/dialog_buttonscript.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	* glom/mode_design/script_library/dialog_script_library.cc:
	Ported to the latest gtksourceviewmm, using the gtksourceview-2.0
	API.

This is svn trunk. See also the glom-1-6 branch.

1.6.0:

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

	* glom/base_db.cc:
	* glom/base_db.h: Added a handle_error(Glib::Exception) overload.
	* glom/frame_glom.cc:
	* glom/main.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/reports/report_builder.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: Catch
	Glib::Exceptions as well as std::exception, hopefully allowing us to
	catch more errors without crashing.

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

	* glom/glom_privs.cc: Fix a warning. std::string::find() returns npos,
	not -1 when it fails.

1.5.3:

2007-09-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc: Fix an if, adding a !, stopping us from
	updating the fields in the document unnecessarily. This avoid a
	warning about unsaved changes when closing, even in operator mode.
	* glom/libglom/document/document_glom.cc: set_modified(): Do nothing
	if the user is not in developer mode, because there are legitimate
	times when things can change temporarily in operator mode.

2007-09-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc: When the first postgres shutdown
	fails (as happens under valgrind, and in bug #420962) try again,
	though that seems to fail too.

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

	* glom/libglom/document/document_glom.cc:
	save_before_layout_item_field_formatting(),
	load_after_layout_item_field_formatting(),
	* glom/utility_widgets/datawidget.cc: constructor:
	Ignore the multiline formatting options for non-text fields,
	so that these will not be used for number fields if they were used
	before changing the field from text to number.
	Bug #443360 (Harry Mills)

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

	* glom/libglom/connectionpool.cc: start_self_hosting(): Specify a
	Linux/Unix SIGSEGV signal handler so we stop postgres when we
	crash. I wonder if there is a way to still have bug-buddy's
	crash reports while doing this.

1.5.2 (unstable):

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

	* glom/libglom/spawn_with_feedback.cc:
	execute_command_line_on_thread_create(): Do not delete the data
	before using it, to avoid a crash.
	* configure.ac: Depend on the latest versions of libgdamm and libxml++,
	which also have fixes for crashes in Glom.

2007-06-05  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>

	* configure.in: Added 'gl' to ALL_LINGUAS.

1.5.1 (unstable):

2007-05-22  Yselkowitz  <yselkowitz@users.sourceforge.net>

	* glom/libglom/Makefile.am:
	* glom/libglom/connectionpool.cc:
	Cygwin/Windows fix: Expect the EXEEXT file extension when searching for
	postmaster. Bug #440335.

2007-05-20  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Check for the pgk-config file of the libgda
	postgres providers.
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h:
	* glom/main.cc: Added and used
	check_postgres_gda_client_is_available_with_warning() to do
	a runtime check for the presence of the libgda postgres provider.

2007-05-14  Johannes Schmid <johannes.schmid@openismus.com>

	* glom/python_embed/glom_python.cc:
	#361171 - Show Python errors in a dialog

2007-05-14  Armin Burgmeier  <armin@openismus.com>

	* glom/relationships_overview/relationships_canvas.cc:
	* glom/relationships_overview/relationships_canvas.h:
	* glom/relationships_overview/relationshipscanvas_tablewidget.cc:
	* glom/relationships_overview/relationshipscanvas_tablewidget.h:
	* glom/relationships_overview/table_canvasitem.h:
	* glom/relationships_overview/table_canvasitem.cc: Removed these files
	since they are no longer used.

	* glom/relationships_overview/Makfile.am: Removed aforementioned files
	from build.

	* glom/relationships_overview/dialog_relationships_overview.h:
	* glom/main.cc: Do not initialize/include libgnomecanvasmm anymore.

	* configure.in: Dropped dependency on libgnomecanvasmm.

2007-05-13  Armin Burgmeier  <armin@openismus.com>

	* glom/glom.glade: Sort most recently used files first.

	* glom/application.h:
	* glom/appliaction.cc: Added m_example_uri field that stores the URI
	of the opened example file. This is checked against in
	document_history_ad() to prevent adding of example files into the
	recent files list.

2007-05-10  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Require libgda 3.0.1, which is the first version that works
	enough for Glom.

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

	* glom/application.cc:
	* glom/application.h: Override document_history_add from the Bakery App_WithDoc
	class, to try (unsuccessfully so far) to prevent adding of example files to
	the recent files list.
	offer_new_or_existing(): Do not shown non-existing recent files.

2007-05-08  Armin Burgmeier  <armin@openismus.com>

	* several files: Merged changes from the GLOM_LIBGDA3 branch. Glom now
	builds against the new libgda and pygda API. See the ChangeLog in that
	branch for a more detailed view of what has exactly changed.

2007-05-01  Armin Burgmeier  <armin@openismus.com>

	* glom/application.cc: Do not leak the file chooser dialog in
	ui_file_select_save().

2007-04-23  Armin Burgmeier  <armin@openismus.com>

	* glom/glade.glom: Fixed the dialog so that the recent chooser is
	below the text and in its own frame.

	* glom/application.cc: Hide the recent chooser when they are no
	recently used items.

2007-04-23  Murray Cumming  <murrayc@murrayc.com>

	* configure.in:
	* icons/16x16/Makefile.am:
	* icons/22x22/Makefile.am:
	* icons/24x24/Makefile.am:
	* icons/32x32/Makefile.am:
	* icons/48x48/Makefile.am:
	* icons/Makefile.am:
	* icons/scalable/Makefile.am: Used build rules like the ones in totem,
	to install these icons.

2007-04-23  Andreas Nilsson  <nisses.mail@home.se>

	* icons/16x16/glom.png
	* icons/16x16/glom.svg
	* icons/22x22/glom.png
	* icons/22x22/glom.svg
	* icons/24x24/glom.png
	* icons/32x32/glom.png
	* icons/32x32/glom.svg
	* icons/48x48/glom.png
	* icons/scalable/glom.svg: New icons following the tango style guidelines.

2007-04-22  Armin Burgmeier  <armin@openismus.com>

	* glom/application.cc:
	* glom/glom.glade: Added a RecentChooser widget to the initial dialog
	that allows to open quickly a recently used file, as requested in
	bug #349355.

	* configure.in: Depend on gtkmm-2.10 to make use of the new
	RecentChooser API in GTK+.

	However, this needs some more work to make it look less awkward. murrayc.

2007-04-10  Armin Burgmeier  <armin@openismus.om>

	* glom/libglom/document/document_glom.cc: Added support for a new
	example rows format where the value of each field is identified by the
	field name rather than the field index, to be more robust against
	changes.

	* glom/libglom/utils.cc: string_separate): For each quoted occurence,
	do no longer put an empty string in the result vector when
	ignore_quoted_separator is set.

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

	po/en_GB.po: Restore the date printf format that was removed by
	David Lodge <dave@cirt.net> on 2006-09-12.
	This date format translation corrects the parsing and display of
	4-digit dates.
	Bug #425116

2007-03-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* glom/libglom/connectionpool.cc: Modify the default pg_hba.conf to
	allow TCP/IP connections from any host when doing self-hosting.
	Previously it had mistakenly only allowed connections from 127.0.0.1 (localhost).
	Interestingly, not all local computers can be identified as 127.0.0.1  either,
	so the connection was failing for some local computers too.
        (ChangeLog comments from Murray)

2007-03-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/utils.cc:
	* glom/libglom/utils.h: Added a show_ok_dialog() method, becasue it is silly to
	always call the on in Frame_Glom.

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: create_self_hosting(): Take a parent window so we
	can show some warning dialogs if something goes wrong. None of these have actually
	been experienced though.

	* glom/application.cc: ui_file_select_save(): If doing self-hosting then check that the
	directory does not exist already, and warn the user.
	For instance, you might specify test.glom, which would then creat test/test.glom, so it
	will warn if test/ already exists.
	Bug # 420482 (Mathias Hasselmann)


2007-03-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc: connection_request_password_and_choose_new_database_name():
	Do not redeclare response variable, so we do not mistakenly think we failed later.
	This is just a fix of the last commit.

2007-03-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/dialog_new_self_hosted_connection.cc:
	* glom/dialog_new_self_hosted_connection.h:
	* glom/frame_glom.cc:
	* glom/glom.glade:
	* glom/mode_design/users/dialog_user.cc: Add a password confirm entry to the dialog,
	check it, and check that the user name is not empty. As well as being obviously useful,
	this will make it more obvious that you are entering a new user/password confirmation,
	instead of an existing one.

2007-03-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/utils.cc: Removed an unnessary static keyword on a typedef, which broke the
	build with some compilers.

2007-02-16  Murray Cumming  <murrayc@murrayc.com>

	* configure.in:
	* glom/Makefile.am:
	* glom/frame_glom.cc: Enable the Relationships Overview code.

1.4.0:

2007-03-10  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/users/dialog_user.cc:
	* glom/mode_design/users/dialog_user.h: Added check_password(), which warns about
	an empty password or a password confirmation failure.
	* glom/mode_design/users/dialog_users_list.cc: When adding or editing a user,
	check the password, using check_password().

1.3.12:

2007-03-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom_privs.cc: Privs::get_table_privileges(): Cope with the changed
	pg_class.relacl format in Postgres 8.x (8.2, maybe >=8.0), which does not have
	the "group " prefix, now that users and groups are both just roles to Postgres.
	The user/group distinction will remain in the Glom UI, because it is a sensible
	way to organise the access rights.
	This should still be able to cope with earlier versions of Postgres, such as
	Postgres 7.4, but I have not tested that myself.

	* glom/main.cc: Stop when there is a problem parsing the command line options,
	and give a hint about using --help.

2007-03-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc: Commented-out the use of avahi, because
	our use of it seems to be unstable, and it does not do anything useful yet
	anyway.

2007-03-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/Makefile.am:
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Moved the avahi code into its own class,
	to keep the ConnectionPool class simpler.
	The async stuff might mean that we cannot tie the avahi publishing to an
	instance lifetime, but lets see.
	* glom/libglom/test_avahi_publisher.cc: Added a test case for just the
	avahi utility class.

1.3.11:

2007-03-04  Armin Burgmeier  <armin@openismus.com>

	* glom/utilitiy_widgets/db_adddel/db_adddel.h:
	* glom/utilitiy_widgets/db_adddel/db_adddel.cc: Added a
	signal_script_button_clicked that is emitted when the user
	clicks on a list button.

	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data.cc: Added a execute_button_script()
	function.

	* glom/mode_data/box_data_details.cc: Make use of it.

	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_list.cc: Listen on
	signal_script_button_clicked from m_AddDel and execute the script.
	Refresh the list because the script may have altered it. This is done
	in an idle handler because it crashes Glom otherwise.

2007-03-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc: Add a comment about the hope of using just the pg_ctl
	result code in future.

2007-03-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc: When checking if the postgres instance
	has finished starting, check for "is running" rather than "postmaster is running",
	because this message has changed in postgres 8.2.
	Yes, this is a nasty hack anyway, and we need a better way to programatically
	know when the local server is running.

2007-03-02  Armin Burgmeier  <armin@arbur.net>

	* glom/mode_data/box_data_details.cc: Remove shadow from Viewport that
	is created by Gtk::ScrolledWindow::add().

2007-03-02  Murray Cumming  <murrayc@murrayc-desktop>

	* autogen.sh: Use --copy with gnome-doc-prepare, because that is
	what gnome-common does.
	* configure.in: Specify 0.9.0 to GNOME_DOC_INIT()
	Change the default postgres tools path to use 8.2, as used on Ubuntu Feisty,
	to make my life easier.

1.3.10:

2007-02-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/connectionpool.cc: Add 5434 to the list of ports to try, because this
	is used in the current Ubuntu Feisty beta for Postgres 8.2, though this might be changed
	in later Ubuntu Feisty betas. Also added 5435 and 5436 for the future.

2007-02-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade: Corrected the title of the relationships overview
	window.

2007-02-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/relationships_overview/dialog_relationships_overview.h:
	More cleanup.

2007-02-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/relationships_overview/dialog_relationships_overview.h:
	More syntax corrections.

2007-02-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/relationships_overview/dialog_relationships_overview.h:
	Remember the windows size between instantiations, temporarily for the lifetime of the
	application.

2007-02-16  Rasmus Toftdahl Olesen  <halfdan@halfdans.net>

	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/relationships_overview/dialog_relationships_overview.h:
	Patch in Bug #408408 to correct the source code formatting.

2007-02-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/box_data_list_find.cc: fill_from_database() methods:
	Do not try to open a connection if the document is NULL, to stop a connection error dialog
	while closing, after we have stopped self-hosting.

2007-02-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc:
	* glom/frame_glom.cc:
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: When starting self-hosting, double-check that the directory
	is there so we can fail more pleasantly, in this rare case.

2007-02-16  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_music_collection.glom: Publishers table: Correct the Albums relationship,
	and add a list of related albums to the details view.

2007-02-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/relationships_overview/dialog_relationships_overview.h: Added an override of
	load_from_document() so that the tables are actually shown on the canvas.

2007-02-16  Rasmus Toftdahl Olesen  <halfdan@halfdans.net>

	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/relationships_overview/dialog_relationships_overview.h:
	Updated for latest goocanvas API. Note that this code is disabled by default.
	Bug #408408.

1.3.9:

2007-02-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/Makefile.am:
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Added check_postgres_is_available_with_warning(),
	and install_postgress(). That latter may be patched by distros that choose (wrongly,
	I believe) not to make Glom depend on Postgres at install-time.
	There is some commented-out example code, with many helpful comments, implementing
	the install-at-runtime code for Ubuntu/Debian.
	* glom/libglom/gst-package.c:
	* glom/libglom/gst-package.h: ifdefed-out helper code, taken from the Ubuntu/Debian patches
	for gnome-system-tools.
	* glom/main.cc:  main(): Call check_postgres_is_available_with_warning().
	If Postgres is not installed, and cannot be installed, then Glom will quit.

1.3.8:

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

	* configure.in: Depend on avahi-glib.
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Added avahi_start_publishing() and
	avahi_stop_publishing() and use them to advertise the database server when self-hosting,
	with a made-up avahi service type name. This is rough code based on the avahi examples.
	I want to clean it up and maybe separate it into a separate class.

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

	* glom/application.cc: When creating a new database (not from an example) show the extended
	FileChooserDialog again, by setting our new boolean.

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

	* glom/libglom/document/document_glom.cc: get_connection_self_hosted_directory_uri():
	Use just glom_postgres_data for the subdirectory name, to create and to look for, for
	self hosting, instead of prefixing it by the glom file name. This is less ugly, and it should
	be safe enough because it is all inside the directory.
	* glom/application.cc: get_file_uri_without_extension(): Do not ignore the return value of
	Gnome::Vfs::Uri::append_string(). This should not have worked before, and still seems to work
	now. Odd.

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

	* glom/libglom/connectionpool.cc: Always use a dynamically-found port number when starting
	self-hosting, instead of only determining it when creating the file, by using the -p and -h
	arguments to postmaster instead of specifying the same information in a postgresql.conf file.

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

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Add discover_first_free_port() helper function, based on
	recommendation from Lennart Poettering. Use it to try a series of ports when deciding what port
	to use for self-hosting. However, this should be tested every time we start the server, not just
	when creating the files.

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

	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h: Remove the Gtk::Paned parent widget. Its functionality
	was not used. It was just a relic from a previous nasty UI. Replaced it with a ScrolledWindow
	that does vertical scrolling when necessary. Hopefully this will prevent the window from sometimes
	being too high for the screen. Layout is variable height rather than variable width, so this makes
	sense.
	I also need to make the window take as much vertical space as it can.

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

	* NEWS:
	* glom/Makefile.am:
	* glom/application.cc:
	* glom/frame_glom.cc:
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h:
	* glom/relationships_overview/dialog_relationships_overview.cc:
	* glom/relationships_overview/dialog_relationships_overview.h: Added unfinished
	code for Relationships Overview feature, by Rasmus Toftdahl Olesen.
	(See http://halfdans.net/index.py/89 )
	The actual use of goocanvas is disabled in configure.ac, frame_glom.cc, and glom/Makefile.am,
	because the code must be updated to build against the latest goocanvas API.

1.3.7:

2007-02-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/python_embed/py_glom_relatedrecord.cc: Made the same changes here -
	see the previous ChangeLog entry.

2007-02-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/python_embed/py_glom_record.cc:
	* glom/libglom/python_embed/py_glom_related.cc: PyMappingMethods: Remove (inquiry)
	and (binaryfunc) casts because they should no longer be necessary and this might
	help the build with Python 2.5.

2007-02-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/python_embed/py_glom_record.cc:
	* glom/libglom/python_embed/py_glom_related.cc: ifdef with PY_VERSION_HEX to
	adapt to the changed function pointer signature of the tp_as_mapping_length
	callbacks for PyMappingMethods in Python 2.5, which now have a Py_ssize_t
	return type. This broke the build on 64-bit systems.
	Also, take a PyObject* object instead of our derived struct, and cast inside
	our functions, to avoid errors from more fussy compiler versions.
	(Problems found by Daniel Holbach)

2007-02-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc:
	* glom/application.h: Add m_ui_save_extra_showextras so we can turn off use of
	the custom filechooser dialog completely in on_menu_file_save_as_example().
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Added append_newline() and used it in
	save_before() to break up the incredibly long lines. This is not as nice as
	newlines plus indenting, but it is a start.
	* examples/example_smallbusiness.glom: Resaved this, using the newlines.

1.3.6:

2007-01-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/combobox_fields.cc:
	* glom/combobox_fields.h: Added derived ComboBox for
	showing a list of fields, with an optional None item.
	* po/POTFILES.in: Added the new file.
	* glom/layout_item_dialogs/box_formatting.cc:
	* glom/layout_item_dialogs/box_formatting.h:
	Use ComboBox_Fields instead of Combo_TextGlade for the
	choices fields combo boxes, so we can show a None item
	for the Also Show field combo box, so the user can clear it
	after choosing something and then changing his mind.
	Bug #365051 from L Davison.

2007-01-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/spawn_with_feedback.cc:
	execute_command_line_and_wait_until_second_command_returns_success():
	When waiting for the specific text output from a second command,
	temporarily set the LANG and LANGUAGE environment variables to C,
	so that we get the same text in all locales.
	This is not pretty, but neither is this whole command-line spawning idea anyway.
	Bug #395511 from Aurelien.

2007-01-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h: Actually show fixed text and button items
	in the list view. This needed us to know when the column index was for the view or for the
	model, to prevent us from trying to get a value for the wrong column.
	At the moment, nothing happens when you click on a button, and the button appears like text.

2007-01-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/dialog_layout.cc:
	* glom/mode_data/dialog_layout.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list.h:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_data/dialog_layout_list_related.h:
	Use the same layout and code for details, lists, and portals, reusing
	the UI and the implementation, just hiding some widgets for some dialogs.

2007-01-21  Murray Cumming  <murrayc@murrayc.com>

	* po/POTFILES.in: Added glom/utility_widgets/filechooserdialog.cc

2007-01-19  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Require libgda 1.2.4, which has a fix for database and table
	encoding problem. Requiring this should encourage distro packagers to also update libgda,
	which should fix crashes when creating databases, tables, fields, etc, with unusual
	characters, which happens quite often.

1.3.5:

2007-01-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade: dialog_new_self_hosted_connection: Start with the focus in
	the user name instead of the password, because both are empty to start with.

2007-01-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc:
	* glom/application.h: ui_file_select_save():
	When self-hosting, create a directory and put the file and the data directory
	inside the directory, so that they are not separated easily.

2007-01-10  Murray Cumming  <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/glom.glade:
	* glom/dialog_new_database.cc:
	* glom/dialog_new_database.h: Removed this class and dialog.
	* glom/utility_widgets/filechooserdialog.cc:
	* glom/utility_widgets/filechooserdialog.h: Add widgets from the
	DialogNewDatabase dialog (asking for the title, and whether to self-host).
	* glom/application.cc:
	* glom/application.h: Add new m_ui_save_extra member variables for getting the
	result of the extended save dialog while still using the Bakery file save API.
	ui_file_select_save(): Set and get the new member variables.
	on_document_load(): Use the new member variables (with values previously set by the
	extended save dialog) instead of showing a new dialog to get the information.

	This removes one dialog, making new file creation simpler.

2007-01-10  Pema Geyleg  <pema.geyleg@gmail.com>

	* configure.in: Added 'dz' to ALL_LINGUAS.

2006-12-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/filechooserdialog.cc:
	* glom/utility_widgets/filechooserdialog.h: Add a derived Gtk::FileChooserDialog,
	which can show our extra widgets. At the moment it can just show an extra text
	message.
	* glom/application.cc:
	* glom/application.h: Override Bakery::App_WithDoc::ui_file_select_save(), so
	we can use our custom file chooser dialog, using member variables to set the title
	and extra message if necessary.
	on_document_load(): Set the member variables so that we show the message about
	saving an example file in the file chooser dialog, instead of in a separate dialog.
	This removes one of the many dialogs.

2006-12-27  Murray Cumming  <murrayc@murrayc.com>

        * glom/libglom/Makefile.am:
        * glom/python_embed/python_module/Makefile.am: Fix the cygwin (win32) build.
        Bug #338844 from Yselkowitz.

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

	* glom/translation/window_translations.cc:
	* glom/translation/window_translations.h: Added get_translatable_type_name_nontranslated()
	for in po message context strings.
	* glom/libglom/data_structure/translatable_item.cc:
	* glom/libglom/data_structure/translatable_item.h:
	on_button_export(): Write context strings to the .po file to distinguish similar strings,
	and provide hints to translators.
	on_button_import(): Compare the context strings to more precisely identify the items.

1.3.5:

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

	* glom/application.cc: offer_new_or_existing(): Fix a recent typo that stopped files being
	created from examples.
	* glom/libglom/spawn_with_feedback.cc:
	execute_command_line_and_wait_until_second_command_returns_success(): Sleep for an extra
	3 seconds, because I think that pg_ctl status sometimes reports success too early.

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

	* configure.in: Do an extra sanity check on the postgres utils path, and complain if
	we can't find postmaster.

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

	* glom/libglom/connectionpool.cc:
	* glom/libglom/spawn_with_feedback.cc:
	* glom/libglom/spawn_with_feedback.h:
	Replaced execute_command_line_and_wait_fixed_seconds() with
	execute_command_line_and_wait_until_second_command_returns_success(), so we
	can use pg_ctl status to check whether postmaster has started, instead of
	waiting an arbitrary number of seconds. This actually checks the stdout output (!)
	from pg_ctl, because I think that it always returns a success code, but I am
	not sure about that anymore.

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

	* glom/Makefile.am:
	* glom/glom.glade:
	* glom/libglom/Makefile.am:
	* glom/libglom/dialog_progress_creating.cc:
	* glom/libglom/dialog_progress_creating.h: Moved this class here,
	so we can use it from libglom, add add a set_message() method, so we can
	change the text for each use.
	* glom/libglom/connectionpool.cc:
	* glom/libglom/spawn_with_feedback.cc:
	* glom/libglom/spawn_with_feedback.h: Moved the spawn utility functions
	here from connectionpool.cc.
	execute_command_line_and_wait(): Added message parameter, shown in a
	dialog with a pulsing progress bar. The command-line command is run in a
	separate thread, which signals us with a Glib::Cond condition when it is
	finished, so we can update the UI in the meantime.
	* glom/application.cc:
	* glom/main.cc: Call g_threads_init(), so we can use mutexes.

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

	* glom/libglom/connectionpool.cc: execute_command_line_and_wait(): Take a human-readable message,
	and show it in a dialog while we are waiting. This is not ideal, but better than nothing. What
	we really need is to do the spawn_command_line_sync() in another thread, and wait for that thread
	to finish.

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

	* glom/dialog_new_database.cc:
	* glom/dialog_new_database.h: Added show_dialog_new_database() helper function.
	* glom/application.cc: on_document_load(): When opening from an example, which always requires
	database creation, show the self-host question dialog. This also allows the user to change the
	database title, which is OK.

2006-12-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/dialog_new_database.cc:
	* glom/dialog_new_database.h: Added radio buttons, so the user can choose to self-host the
	database, or create it on an external server.
	* glom/Makefile.am:
	* glom/dialog_new_self_hosted_connection.cc:
	* glom/dialog_new_self_hosted_connection.h:
	* glom/glom.glade: Added a new dialog, asking for the name and password for the first super user,
	when creating a new self-hosted database.
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Added set_connection_is_self_hosted().
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Added create_self_hosting(), which creates
	the postgres files in a folder.
	* glom/frame_glom.cc: connection_request_password_and_choose_new_database_name():
	If the database should be self-hosted, ask for the initial details, and create it.
	* glom/dialog_connection.cc:
	* glom/dialog_connection.h: Added set_self_hosted_user_and_password(), because
	we currently use the connect_to_server_with_connection_settings() method from this
	class to actually connect. I should refactor that.


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

	* glom/dialog_connection.cc: load_from_document(): Disable the hostname entry
	when the document is marked as being self-hosting.
	connect_to_server_with_connection_settings(): Always use localhost as the hostname
	when opening a self-hosted document.

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

	* configure.in:
	* config.h.in: Add a --with-postgres-utils option, so we can specify the
	location of postmaster and pg_ctl.
	* glom/application.cc:
	* glom/application.h: Added stop_self_hosting_of_document_database().
	on_document_load(): Start self-hosting before asking for connection details,
	if the document is marked as self-hosting. Stop self-hosting if the connection
	fails.
	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: Added set_self_hosting(),
	start_self_hosting(), stop_self_hosting();
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Added get_connection_is_self_hosted(),
	and get_connection_self_hosted_directory_uri(). This bool is loaded from and
	saved to the document, though it is not yet changed to true by anything in the UI.
	Destructor: Stop self-hosting.

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

	* glom/libglom/document/document_glom.h: Remove unnecessary virtuals.

2006-12-15  Murray Cumming  <murrayc@murrayc.com>

	* docs/user-guide/C/glom.xml: Add text for the help sections for the connection and connection error
	dialogs, with a link to the web page for setting up Postgres. Otherwise, people who have never seen
	the Download web page will have no idea what to do.

1.3.4:

2006-12-11  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/utils.cc: Fix SQL error when sorting doubly-related records, by always putting the
	GROUP BY in the correct position.

1.3.3:

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

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/frame_glom.cc:
	* glom/libglom/utils.cc:
	* glom/libglom/utils.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: For child relationships, add an extra
	GROUP_BY (on the key of the target table) to ensure that we only get distinct records, with
	no repeats.

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

	* glom/glom.glade:
	* glom/mode_data/dialog_layout_list_related.cc: Hide the title label and entry. They are too
	confusing here.

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

	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_data/dialog_layout_list_related.h:
	* glom/glom.glade: Add a checkbox that allows us to use child (related) relationships,
	which are then shown in the combobox.
	* glom/combobox_relationship.cc:
	* glom/combobox_relationship.h: set_relationships(): Add boolean parameter allowing
	us to show related relationships without showing the parent table name too.
	* glom/frame_glom.cc:
	* glom/libglom/document/document_glom.cc: When saving/loading portals, save/load all levels
	of relationships, by using the existing utiltity function for saving UsesRelationship objects.
	* glom/libglom/data_structure/layout/usesrelationship.cc:
	* glom/libglom/data_structure/layout/usesrelationship.h:
	Added get_title_used(), get_to_field_used(), get_relationship_name_used(),
	get_relationship_used_allows_edit(), so we can use this generically, regardless
	of the level of relationships used by, for instance, a portal or layoutitem_field.
	* glom/base_db.cc:
	* glom/base_db.h: Add m_extra_join to FoundSet, for use when viewing records in a related relationship.
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h: refresh_data_from_database_with_foreign_key():
	When viewing a related relationship, specify an extra SQL join to make that possible, and adjust the
	WHERE clause too, providing these to the FoundSet object.
	* glom/libglom/utils.cc:
	* glom/libglom/utils.h: build_sql_select_with_where_clause(): Add extra_join parameter, specified when
	doing view of related relationship records.

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: refresh_from_database(): Provide the FoundSet
	extra_join to build_sql_select_with_where_clause().
	* glom/reports/report_builder.cc:
	* glom/utility_widgets/flowtablewithfields.cc: Use the generic UsesRelationship methods rather than
	extracting the main relationship and using that specifically, so we can adapt to related realationship
	portals, and even in future support >2 levels of relationships.

1.3.2:

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

	* glom/mode_data/box_data.cc: get_related_record_exists():
	* glom/mode_data/box_data_list_related.cc: refresh_data_from_database():
	In WHERE clauses, specify the table name, to avoid ambiguity when two of
	the tables have the same field names. This avoids a SQL error.

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

	* glom/glom.glade: Start dialog: Change the packing options for the Entry, to
	try to stop the lines from breaking unnecessarily, but this does not seem to
	have any effect on it. Bug #369602 from Javier F. Serrador.

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

	* glom/mode_data/box_data_list.cc: create_layout_add_group(): Check that fields
	exist before adding them as columns, to avoid SQL errors when we have failed
	(we should not fail) to rename something everywhere.

2006-11-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/python_embed/glom_python.cc: glom_evaluate_python_function_implementation():
	Use Py_CompileString() and PyImport_ExecCodeModule() to make library scripts available
	for import. It works too.

2006-11-19  Murray Cumming  <murrayc@murrayc.com>

	* po/POTFILES.in: Added new files so they can be translated.

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

	* glom/python_embed/glom_python.cc: Added some commented-out experiments into
	making the script library importable from our Python scripts.

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

	* configure.in:
	* glom/Makefile.am:
	* glom/frame_glom.cc:
	* glom/glom.glade:
	* glom/mode_data/box_data.cc:
	* glom/mode_design/Makefile.am:
	* glom/mode_design/script_library/Makefile.am:
	* glom/mode_design/script_library/dialog_new_script.cc:
	* glom/mode_design/script_library/dialog_new_script.h:
	* glom/mode_design/script_library/dialog_script_library.cc:
	* glom/mode_design/script_library/dialog_script_library.h:
	The UI for a script library now works, and it is saved and loaded in the
	document. Now I just need to make the embedded python able to import these
	modules.

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

	* glom/frame_glom.cc:
	* glom/glom.glade:
	* glom/libglom/document/document_glom.cc:
	* glom/mode_design/dialog_script_library.cc:
	* glom/mode_design/dialog_script_library.h: Works slightly more.
	Yes, I shouldn't check stuff in before it is finished.

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

	* glom/application.cc:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/glom.glade:
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h:
	* glom/mode_design/Makefile.am:
	* glom/mode_design/dialog_script_library.cc:
	* glom/mode_design/dialog_script_library.h: Partial implementation of the UI
	for a reusable python script library.

1.3.1:

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

	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Added get_document_format_version()
	and get_latest_known_document_format_version().
	load_after(): Check the document format version, and fail if it is higher than
	we know about.
	save_before(): Save the document format version (as the latest known) when
	saving changes.
	* glom/frame_glom.cc: on_menu_userlevel_Developer(): When going into developer
	mode, warn that you might not be able to open the changed document with older
	versions of Glom.

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

	* glom/libglom/connectionpool.cc: connect(): Remember the port after the first
	successful connection (even to the default database), and always try that first
	when connecting again, only trying the extra ports if it fails or if no port
	was remembered. This halves the number of connection attempts made.
	Bug #368787 (Craig Keogh).

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

	* glom/base_db.cc: get_find_where_clause_quick():
	* glom/mode_data/box_data.cc: get_find_where_clause():
	Put quotes around the table names and field names, to avoid SQL errors when
	using names with, for instance, capital letters.
	Bug #375605 from William Manley.

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

	* glom/glom.glade: Revert unrelated changes introduced by the patch from
	Johannes. The left-alignment of labels had been removed. I guess that this
	might have been caused by glade-3.

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

	* glom/glom.glade: Translations window: Use a regular HBox instead of
	a ButtonBox, because the ButtonBox leaves lots of empty space so it
	looks odd.
	* glom/translation/window_translations.cc: on_button_export():
	Append the .po extension if it is not already in the filename.

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

	* configure.in: Added an AC_CHECK_MEMBER() check for the latest
	libggettextpo error-handling API, defining HAVE_GETTEXTPO_XERROR,
	so we can build with both the old and new APIs.
	* config.h.in: Added HAVE_GETTEXTPO_XERROR,
	defined in configure.
	* glom/translation/window_translations.cc: Use ifdefs to add
	alternative code for the older libgettextpo API.

2006-10-26  Johannes Schmid <jhs@gnome.org>

  Openismus Gmbh:

	* glom/Makefile.am:
	Added -lgettext-po

	* glom/glom.glade:
	Added Import/Export buttons to translation_window in a new buttonbox

	* glom/translation/window_translations.cc:
	* glom/translation/window_translations.h:
	on_button_import(), on_button_export()
	Added the feature to export and import translation in po format using libgettext-po

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

	* glom/mode_data/box_data_list.cc: create_layout(): Do not call
	m_AddDel.set_columns_ready() because we do that in fill_from_database(),
	and we do not want to do it twice.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	Constructor: Call refresh_from_database(), and make
	refresh_from_database() a protected method, so that model creation is
	the only time that the SQL query is run.
	* glom/utility_widgets/db_adddel/db_adddel.cc: refresh_from_database():
	Just call construct_specified_columns(), to recreate the model, instead
	of trying to reuse the existing model via refresh_from_database(),
	because that was having some strange side-effects and seems complex to fix.

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

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h: Remove (empty) remove_all() method. It
	does not make sense for a TreeModel that just shows what is in a database result.
	* glom/mode_data/box_data_list.cc:
	* glom/mode_find/box_data_list_find.cc: Do not use DbAddDel::remove_all().

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

	* glom/libglom/data_structure/layout/layoutitem_button.cc:
	* glom/libglom/data_structure/layout/layoutitem_button.h: Added get_has_script()
	method for efficient convenience.
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Added set/get_child_text_node() utility
	methods.
	load_after(), load_after_layout_group(): Load button scripts, field calculations,
	and example row data from child text nodes instead of attribute values, to avoid
	problems with newlines in attributes when using the .glom file with a different
	XML parser.
	Fall back to the now-deprecated attribute values if no child text node was found.
	save_before(), save_before_layout_group(): Save as child text nodes.
	Bug #357567.

2006-10-19  Johannes Schmid <jhs@gnome.org>

	* glom/main.cc: Added --debug_sql argument

	* glom/application.cc:
	* glom/application.h:
	Added a global application instance which is available to all modules via the static
	Application::get_application() method
	Added get/set_sql_debug()
	Remove File->Exit, to simplify Glom by not supporting muliple documents per instance.

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/libglom/python_embed/Makefile.am:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	Added debugging code for sql statements.

	* glom/libglom/python_embed/py_glom_relatedrecord.cc:
	Added debugging code but commented out for now because of linking issues. The debug
	flag needs to link against application.lo

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

	* configure.in: Check for libgtksourceviewmm-1.0.
	* glom/main.cc: Initialize gtksourceviewmm.
	* glom/glom.glade: Use a GtkSourceView instead of a TextView for
	calculated fields and the buttons script.
	* glom/layout_item_dialogs/dialog_buttonscript.h:
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.h:
	* glom/mode_design/fields/dialog_fielddefinition.h: Use a GtkSourceView
	instead of a TextView for calculated fields and the buttons script, and
	set the language as python.
	Patch from bug #346896, with much help from Johannes Schmid and
	Dodji Seketeli.

This is the HEAD branch for new features.
See the glom-1-2 branch for bug-fixes without new features.

1.2.0:

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

	* examples/example_film_manager.glom: Mark this as an example, so users are
	asked to save a copy. I think this had example data once too, but it is gone
	now.

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

	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list.h: Remove warn_about_images()
	and don't use it in on_button_add_field() and on_button_edit_field().
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/imageglom.h: Make scale_keeping_ratio() public,
	so we can use it from elsewhere, and check for null pixbufs.
	* glom/utility_widgets/db_adddel/db_adddel.cc: treeviewcolumn_on_cell_data():
	Show pixbufs too, so that Image fields show up in the list view too.

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

	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/box_db_table_definition.h: Added field_has_non_unique_values().
	change_definition(): If a field is being set to primary key,
	use field_has_non_unique_values() to check and warn, to avoid an error from Postgres.
	Bug #362895.

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

	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Added forget_layout_record_viewed().
	* glom/mode_design/fields/box_db_table_definition.cc: change_definition(): When
	changing whether a field is the primary key, use forget_layout_record_viewed()
	so that we do not try to use an inappropriate key value with a different field.

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

	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/box_db_table_definition.h: Added field_has_null_values().
	change_definition(): If a field is being set to primary key,
	use field_has_null_values() to check and warn, to avoid an error from Postgres.
	Bug #362838.

1.1.7:

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

	* docs/user-guide/C/glom.xml: Added the section on the use of the full pygda
	API, from the wiki. We need to just publish the docbook to the web somehow
	instead.

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

	* glom/mode_data/box_data_details.cc: on_flowtable_script_button_clicked():
	Check whether the current record still exists after the script has run,
	and signal that it was deleted if necessary.

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

	* glom/libglom/document/document_glom.cc: load_after_layout_group(): When
	loading the portal navigation relationship, create the object before passing
	it to load_after_layout_item_usesrelationship(). This should have crashed
	before. Also, pass in the related table name, not the parent table name,
	so that the relationship can be found.

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

	* glom/mode_design/fields/box_db_table_definition.cc: on_adddel_edit():
	Make sure that the details dialog is transient for the current window.
	* glom/utility_widgets/dialog_properties.cc: Constructor: Call set_modal(),
	so that these windows are actually usuable when opened from other modal
	windows, such as dialogs. This was a bug that I introduced when I changed the
	base class from Dialog to Window. Fixed now.

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

	* glom.desktop.in.in: Added MimeType entry, so Glom should really be used
	to open .glom documents. Thanks to Denis Leroy.

2006-10-12  Johannes Schmid <jhs@gnome.org>

	* glom/main.cc: Fixed gnome_program_init to use PACKAGE and VERSION
	instead of PACKAGE_NAME and PACKAGE_VERSION

	Fixes (#349357) with special thanks to Don Scorgie

2006-10-12  Johannes Schmid <jhs@gnome.org>

	For Openismus Gmbh (now that it's finally in place ;-)

	* docs/user-guide/C/glom.xml:
	Added ids for all dialogs to be filled with a documentation

	* docs/user-guide/Makefile.am:
	* docs/user-guide/glom.omf.in:
	* docs/user-guide/glom-C.omf.in (removed):
	Mostly fixed documentation generation. There is still an issue with
	scrollkeeper but I hope I get this fixed soon.

	* glom/application.cc:
	* glom/base_db.cc:
	* glom/dialog_invalid_data.cc:
	* glom/frame_glom.cc:
	* glom/layout_item_dialogs/dialog_group_by.cc:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/translation/window_translations.cc:
	* glom/utility_widgets/datawidget.cc:
	Use dialog_run_with_help for all dialogs that contain help
	buttons.

	* glom/libglom/utils.h:
	* glim/libglom/utils.c:
	Added Utils::show_help which calls gnome_help_display and does
	some error handling.
	Added Utils::dialog_run_with_help with runs a dialog and return the
	Gtk::Reponse. If the user clicked help the dialog is kept up and a
	help browser is launched.

1.1.6:

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

	* glom/libglom/python_embed/py_glom_record.cc: Actually implement the
	record.connection attribute. This is incredibly easy with pyobject_new().
	Added a record.table_name attribute.
	See http://www.glom.org/wiki/index.php?title=Calculated_Fields_API#Using_the_full_pygda_API
	to see the wonderful things this makes possible.

2006-10-09  Daniel Holbach  <daniel.holbach@ubuntu.com>

	* glom/mode_data/dialog_layout_list_related.h: Removed the class prefix from
	the method declaration, to fix the build.

2006-10-09  Murray Cumming  <murrayc@murrayc.com

	* glom/mode_data/notebook_data.cc: init_db_details(): Do not bother
	checking that the remembered record is in the found set if we are looking
	at all records.

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

	* glom/base_db.cc:
	* glom/base_db.h: Added get_primary_key_is_in_foundset().
	* glom/mode_data/notebook_data.cc: init_db_details(): Do not bother
	checking whether the found set has changed, because it has always
	changed when we are navigating to a different table. Therfore, always
	try to view the last-viewed record for the table. But use
	get_primary_key_is_in_foundset() to prevent showing a not-found record
	when doing a find.
	* glom/reports/report_builder.cc: Put parts of the where clause in
	brackets, so that the AND has the desired effect, though I do not know
	of any bug caused by this.

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

	* glom/python_embed/glom_python.cc:
	* glom/python_embed/glom_python.h:
	glom_execute_python_function_implementation(): Added Gda::Connection parameter,
 	which is passed to PyGlomRecord_SetFields().
	* glom/libglom/python_embed/py_glom_record.cc:
	* glom/libglom/python_embed/py_glom_record.h:
	Record_getseters(): Added connection attribute to the python object, so
	that scripts can use the pygda API on the underlying database.
	BUT: This just returns None at the moment.
	PyGlomRecord_SetFields(): Take an extra connection parameter.
	* glom/base_db.cc: calculate_field():
	* glom/layout_item_dialogs/dialog_buttonscript.cc: on_button_test():
	* glom/mode_data/box_data.cc: set_primary_key_value():
	* glom/mode_data/box_data_details.cc: on_flowtable_script_button():
	* glom/mode_design/fields/dialog_fieldcalculation.cc: on_button_test():
	Pass the extra connection parameter when calling
	glom_evaluate_python_function_implementation().

1.1.5:

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

	* glom/mode_data/box_data_details.cc: on_flowtable_script_button_clicked():
	Refresh the view after the script has run, in case the script changed the data,
	so we can see the new data.

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

	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_data/dialog_layout_list_related.h:
	* glom/glom.glade: Related Records layout: Add a Navigation frame,
	allowing the user to choose the default navigation (based on the shown
	fields and whether their tables are hidden, or manually choosing a relationship.
	This is needed when the automatic choice is not appropriate, though it often is.
	* glom/libglom/data_structure/layout/layoutitem_portal.cc:
	* glom/libglom/data_structure/layout/layoutitem_portal.h:
	Added set/get_navigation_relationship_specific().
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Saved the extra portal information.
	* glom/base_db.cc:
	* glom/base_db.h: get_field_is_from_non_hidden_related_record(),
	get_field_identifies_non_hidden_related_record():  Move these here
	from Box_Data_List_Related.
	Added get_portal_navigation_relationship_automatic(),
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h: get_suitable_record_to_view_details():
	Use the specified relationship if appropriate, and reuse the methods used to show
	the automatic navigation choice in the layout dialog.
	* glom/mode_data/dialog_layout.cc:
	* glom/mode_data/dialog_layout.h: Added the make_sensitivity_depend_on_toggle_button()
	convenience method.

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

	* glom/utility_widgets/db_adddel/Makefile.am:
	* glom/utility_widgets/imageglom.cc: Moved value->pixbuf
	conversion code from here to:
	* glom/libglom/data_structure/glomconversions.cc:
	* glom/libglom/data_structure/glomconversions.h:
	* glom/utility_widgets/db_adddel/cellrenderer_button.cc:
	* glom/utility_widgets/db_adddel/cellrenderer_button.h: renamed
	to
        * glom/utility_widgets/db_adddel/cellrenderer_buttonimage.cc:
	* glom/utility_widgets/db_adddel/cellrenderer_buttonimage.h:
 	Added:
        * 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/db_adddel/db_adddel.h: add_column() now
	take a LayoutItem rather than only a LayoutItem_Field, so that
	the list can in future show other items, such as buttons.
	* glom/libglom/data_structure/layout/layoutgroup.cc:
	* glom/libglom/data_structure/layout/layoutitem.cc:
	* glom/libglom/data_structure/layout/layoutitem.h:
	* glom/libglom/data_structure/layout/layoutitem_field.cc:
	* glom/libglom/data_structure/layout/layoutitem_field.h:
	* glom/libglom/data_structure/layout/layoutitem_image.h:
	* glom/libglom/data_structure/layout/layoutitem_portal.cc:
	* glom/libglom/data_structure/layout/layoutitem_portal.h:
	* glom/libglom/utils.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h: Adapted.

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

	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc: append_column():
	Use set_fixed_width(), followed by set_resizable(), instead of
	set_min_width, so columns can be made smaller too.

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

	* glom/libglom/utils.cc: build_sql_select_with_where_clause():
	Define the first-level relationship (via a LEFT OUTER JOIN) of
	a related relationship, even if no fields from the intermediate
	relationship are shown, to avoid a SQL error and subsequent
	crash.

1.1.4:

2006-10-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/sharedptr.h: cast_*(): Make the new sharedptr
	share the refcount with the original, avoiding early deletions of
	the object that they share. That was stupid of me.
	* glom/libglom/test_sharedptr_layoutitem.cc: More testing.

2006-10-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/Makefile.am:
	* glom/libglom/test_sharedptr_layoutitem.cc: Added test.

2006-10-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.cc: add_column(): Do an extra,
	probably unnecessary, check for a null field before dereferencing it.
	construct_specified_columns(): Do not clone the field - just use it.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	get_data_layout_groups_plus_new_fields(): When building a default
	layout, because no layout is defined, store that layout in the
	document (saving it to disk when in developer mode). This fixes a
	dereference of a deleted field, though that should not be necessary
	so I suspect a fundamental sharedptr problem. But luckily, this
	is the correct thing to do anyway, for efficiency, and so that
	layout data is preserved.

2006-10-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: get_table_fields_to_show_for_sequence_add_group(),
	Do not clone the layout items - just supply the originals, so that
	we can store some data in them and have that data preserved for next
	time. This should also be more efficient because it does less
	object copying and therefore less memory copying.
	* glom/libglom/data_structure/layout/layoutitem_field.cc:
	* glom/libglom/data_structure/layout/layoutitem_field.h: Added
	get/set_display_width() which is not saved in the document for now.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h: add_column() Take a
	non-const layout item, so that we can store the display_width
	in it, in property changed signal for the ViewColumn width
	property. Use any previously set display_width when creating the
	columns.
	This means that columns widths are remembered when navigating
	between tables. Bug #358089 from Peter Williams.

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

	* glom/mode_data/box_data.cc: get_find_where_clause():
	When multiple fields are specified in a Find, join them together
	in the SQL where clause with AND, instead of just joining them
	together, because that would be an invalid SQL statement. Obviously.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	refresh_from_database(): When the SQL command fails, output it to
	stdcerr, to help debugging.

1.1.3:

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

	* glom/libglom/utils.cc: string_separate(): Correct an if so that
	we really check for quoted separators when specified. This fixes a loss
	of rows when adding example data from an example glom file.

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

	* glom/mode_design/dialog_add_related_table.cc:
	* glom/mode_design/dialog_add_related_table.h:
	* glom/base_db.cc:
	* glom/base_db.h: Moved get_relationship_exists() here
	so it can be used from frame_glom.cc.
	* glom/frame_glom.cc: on_dialog_add_related_table_response():
	Check the inputs here instead of in on_response() of the dialog,
	because we can not stop a dialog from finishing. Instead we
	show it again.
	* glom/glom.glade: Change the dialog text slightly.
	* po/POTFILES.in: Mentioned dialog_add_related_table.cc.

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

	* glom/mode_design/dialog_design.cc:
	* glom/mode_design/dialog_design.h: Derive from Window instead
	of Dialog, because that is what it is in the .glade file, and
	that is how it is used.
	* glom/application.cc:
	* glom/base_db.cc:
	* glom/base_db.h: Added create_table_with_default_fields(),
	moving code from box_tables.cc.
	* glom/navigation/box_tables.cc: on_adddel_Add(): Call
	create_table_with_default_fields() to simplify code.
	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Added add_table((),
	so that create_table_with_default_fields() can update the
	document immediately each time.
	* glom/libglom/utils.cc:
	* glom/libglom/utils.h: Added string_remove_prefix().
	* glom/frame_glom.cc:
	* glom/frame_glom.h: Added do_menu_developer_fields() and
	called it from on_menu_developer_fields(), so we can show the
	fields dialog from other places.
	* glom/mode_design/Makefile.am:
	* glom/glom.glade:
	* glom/mode_design/dialog_add_related_table.cc:
	* glom/mode_design/dialog_add_related_table.h:
	Added Tables/Add-Related-Table menu item, to quickly create
	a related table and a relationship to it. Bug #355975.

1.1.2:

2006-09-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	get_field_identifies_non_hidden_related_record(): Return the relationship
	used by the field, and use this to navigate to the related record
	even if no doubly-related field is show. For instance, this allows
	navigation when showing a product id, but not showing the product
	description.

2006-09-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list_related.cc:
	get_suitable_record_to_view_details(): If the ID is invalid, because
	no such record exists, warn the user with a dialog.
	* glom/utility_widgets/flowtablewithfields.cc:
	on_portal_user_requested_details(): Do not bother signalling further if
	the primary key is empty.

1.1.1:

2006-09-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h: Add show_hints_model(), which
	shows a single row, with a hint about editing the layout of the list or
	related records portal, if no fields have been specified yet.
	Bug #354073 from Peter Williams.

2006-09-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/document/document_glom.cc:
	* glom/libglom/document/document_glom.h: Override set_file_uri() to avoid
	the call to set_modified() triggering a save of the file to the old filename.
	This is necessary because we override/hack set_modified().

2006-09-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: App_Glom::recreate_database(): Add the standard groups
	after creating the tables, instead of once for every table. This should be
	more efficient.

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

	* glom/glom.glade: Field calculation editor, and button script editor:
	Mark the label with the first part of the calculation as not for translation.
	Layout editors: Add tooltips to explain what the buttons do.
	This partly addreses bug #354073 from Peter Williams.

2006-09-17  Murray Cumming  <murrayc@murrayc.com>

        * glom/utility_widgets/db_adddel/db_adddel.cc:
        * glom/utility_widgets/db_adddel/db_adddel.h: Added get_fixed_cell_height().
        construct_specified_columns() Use CellRenderer::set_fixed_size(), using
        get_fixed_cell_height(), which asks Pango how high some example text should
        be. This should prevent multiline rows, and might be necessary for optimization

2006-09-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/glom.glade: Field Formatting: For text fields, added a
	spin button to specify the number of lines to show.
	* glom/libglom/data_structure/layout/fieldformatting.cc:
	* glom/libglom/data_structure/layout/fieldformatting.h: Added
	get/set_text_format_multiline_height_lines(), which defaults to
	6.
	* glom/layout_item_dialogs/box_formatting.cc:
	* glom/layout_item_dialogs/box_formatting.h:
	enforce_constraints(): Only make the new spin button sensitive
	when the multiline checkbox is checked.
	get/set_formatting(): get/set the new value to interpret and
	present it.
	* glom/libglom/document/document_glom.cc:
	save_before_layout_item_field_formatting(),
	load_after_layout_item_field_formatting(): Handle the new option.
	* glom/utility_widgets/datawidget.cc: Constructor: If the
	field is multiline text, ask pango how high it should be,
	based on the new option.
	* glom/utility_widgets/db_adddel/db_adddel.cc: construct_specified_columns():
	Use an ellipsize on text cells when their text is too long. This will be
	more likely with multiline fields.

This is the HEAD branch, for Glom 1.2.
There is also a glom 1.0 branch for maintenance.

1.0.5:

2006-09-11  Murray Cumming,  <murrayc@murrayc.com>

	* glom/base_db.cc:  Base_DB::create_table(): Quote the field names to avoid a postgres error when
	creating the table with an id field based on a table name with special characters such as -.

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

	* docs/user-guide/C/glom.xml: Fixed some validation problems.
	* examples/Makefile.am: Add all example files to EXTRA_DIST, to fix distcheck.

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

	* glom/mode_design/fields/box_db_table_definition.h:
	* glom/mode_design/fields/box_db_table_definition.cc: Moved some checks from on_adddel_changed()
	to check_field_change(), and added a check for an existing primary key, so we can give a nice
	refusal warning to the user instead of a postgres error. This is then used from on_adddel_changed()
	and on_Properties_apply(). Bug #350636.

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

	* glom/glom.glade: dialog_connection: Use underline mnemonics for the labels
	and mark them as labels for the entries, for accessibility. Also use an underline
	mnemonic for the Connect button. Bug #349357 from Ryan Paul.

2006-09-09  Fryderyk Dziarmagowski  <freetz@gmx.net>

	* configure.in: Added update-mime-database configure option which sets/unsets UPDATE_MIME_DATABASE.
	* Makefile.am: Do not update the mime database if UPDATE_MIME_DATABASE is not set.
	This is apparently helpful for distro packagers, and other GNOME source tarballs have the same thing.
	Bug #351989.

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

	* glom/base_db.cc: insert_example_data(): Use the new ignore_quoted_separators
	option with Utils::string_separate() so we are not confused by nested newlines.
	And check for newlines in the resulting row so we can ignore those rows as errors.
	* glom/libglom/utils.cc: string_separate(): More efficient implementation when ignoring
	quoted separators, doing less memory copying.

2006-09-08  Johannes Schmid <jhs@gnome.org>

	* glom/utility_widgets/datawidget.cc: DataWidget::on_button_choose_date():
	Fixed #349359 (Dates added with the calendar dialog are not preserved), by
	emitting the edited signal.

2006-08-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/utils.cc:
	* glom/libglom/utils.h: separate_strings(): Added optional
	ignore_quoted_separators bool parameter. Added incredibly slow
	implementation, allowing us to handle example_rows data with
	newlines in text data. This is necessary because the newlines are also
	used to separate the field values. This is really slow and must be
	improved.

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

	* glom/mode_data/box_data_details.cc: on_button_new(): Do not
	dereference a null field, to avoid crashing when adding a record when
	there is no primary key.

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

	* glom/frame_glom.cc: Frame_Glom::create_database():
	When Gda::Connection::create_database() fails, output a more exact
	error message for debugging. Added comment mentioning that,
	when this fails, it might be due to installation of the unstable
	libgda, which might not do a completely parallel install.

2006-06-25  Murray Cumming <murrayc@murrayc.com>

	* glom/application.cc: App_Glom::App_Glom(): Catch the exception if
	the icon file is not found, though it will not happen if Glom is
	properly installed.
	* glom/frame_glom.cc: create_database(): Print a debug message if
	this fails, as well as showing the dialog.
	* icons/glom_icon_large.png: Updated.

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

	* examples/Makefile.am:
	* examples/example_music_collection.glom: Added a new simple example.

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

	* docs/user-guide/C/figures/glom_design_fields.png:
	* docs/user-guide/C/figures/glom_design_fields_dialog_calculated.pn
	g: Added screenshots for use in the user guide.
	* docs/user-guide/C/figures/start.png: Updated.
	* docs/user-guide/C/glom.xml: Added Calculated Fields appendix, based
	on the content in the Wiki.

2006-06-20  Murray Cumming  <murrayc@murrayc.com>

	* gnome-doc-utils.make: Hmm, now gnome-doc-utils.make _does_ seem
	to be being autogenerated, by gnome-doc-prepare --force.
	So I removed it from cvs again. Bug #345458.

2006-06-20  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Fixed typo to fix the build.
	* examples/example_project_manager.glom: Added some tables and
	relationships and related records portals.

2006-06-19  Murray Cumming  <murrayc@murrayc.com>

	* gnome-doc-utils.make: Restore this file, because it does
	not in fact seem to be autogenerated by anything.
	* configure.in: Added AM_CONDITIONAL for SK_ENABLE, needed by the
	new (copied from gnome-doc-utls) version of gnome-doc-utils.make.
	* examples/Makefile.am:
	* examples/example_film_manager.glom:
	* examples/example_project_manager.glom: Added new examples.
	The project manager one is not started yet.

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

	* add1000.patch: Removed old test patch from cvs.
	* gnome-doc-utils.make: Removed generated file from cvs.

2006-06-14  Elijah Newren  <newren gmail com>

	* glom/base_db.cc:
	* glom/combobox_relationship.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/reports/report_builder.cc:
	* glom/utility_widgets/comboglom.cc:
	* glom/utility_widgets/flowtablewithfields.cc:
	Fix unused variable warnings.  #344815

2006-06-14  Elijah Newren  <newren gmail com>

	* autogen.sh: Don't hardcode for autoheader2.50 and autoconf2.50
	especially since it works with newer versions too.  #344807.

2006-05-29  Kjartan Maraas  <kmaraas@gnome.org>

	* configure.in: Added nb to ALL_LINGUAS.

2006-05-27  Murray Cumming  <murrayc@murrayc.com>

	* Changed namespaces:
	GlomUtils to Glom::Utils.
	GlomConversions to Glom::Conversions.
	GlomPrivs to Glom::Privs.

2006-05-27  Murray Cumming  <murrayc@murrayc.com>

	Almost all files: Put everthing in the Glom namespace.

2006-05-26  Murray Cumming  <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/application.cc:
	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/frame_glom.cc:
	* glom/glom_postgres.cc:
	* glom/glom_postgres.h:
	* glom/glom_privs.cc:
	* glom/glom_privs.h:
	* glom/libglom/utils.cc:
	* glom/libglom/utils.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_design/box_db_table_relationships.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: Moved static methods from
	Base_DB to GlomPrivs, GlomPostgres and GlomUtils.

2006-05-26  Murray Cumming  <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/glom_postgres.cc:
	* glom/glom_postgres.h:
	* glom/mode_design/fields/box_db_table_definition.cc: Moved
	Base_DB::postgres_*() methods into Glom_Postgres class which has
	only static methods. Just to keep things separate.

2006-05-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/frame_glom.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/reports/Makefile.am:
	* glom/reports/report_builder.cc:
	* glom/reports/report_builder.h: Moved the Base_DB::report_*()
	methods into a ReportBuilder object and use an instantiation of
	that object wherever we would call report_builder. This is a start on
	reducing the insane size of base_db.[h|cc].

1.0.4:

2006-05-21  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom: Contacts reports: Restore the
	group-by fields. I wonder why these were lost.

2006-05-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: report_build(): Try to catch the exception here,
	but it still crashes if there is a SQL error during report building.

2006-05-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: report_build_records(): Add a space before LIMIT,
	to avoid it ever clashing with the ASC before it.

2006-05-21  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Use IT_PROG_INTLTOOL instead of AC_PROG_INTLTOOL
	for intltool. It is apparently the new way.

2006-05-21  Murray Cumming  <murrayc@murrayc.com>

	* glom.desktop.in.in: Remove the .png extension from the
	icon name, as advised by http://live.gnome.org/GnomeGoals/AppIcon .
	* glom/mode_design/fields/dialog_fieldcalculation.cc: Remove the [?]
	* icons/Makefile.am: Add EXTRA_DIST stuff to fix distcheck
	from the list of dependent relationships. It looks like an errror.

2006-05-21  Murray Cumming  <murrayc@murrayc.com>

	* Makefile.am:
	* configure.in:
	* glom.png: Removed. We use the stuff in icons/ instead.
	* icons/Makefile.am:
	* icons/glom.png:
	* icons/glom.svg:
	* icons/glom_icon_large.png:
	* logo/glom_icon.png:
	* logo/glom_icon.svg:
	* logo/glom_icon.xcf:
	* logo/glom_icon_large.png: Moved files from logo/ to icons/ and
	used the Makefile snippet from
	http://live.gnome.org/GnomeGoals/AppIcon .
	Among other things, this means that the scalable icon is installed.
	glom.svg: I increased the size of the window shape and removed the
	database-cylinder shadow to prevent wasted space.
	glom.png was regenerated from the svg.

2006-05-21  Murray Cumming  <murrayc@murrayc.com>

	* logo/glom_icon.svg: Change canvas size to 480x480, so I can use 10px sizes
	that will be 1px in the 48x48px icon.

2006-05-21  Murray Cumming  <murrayc@murrayc.com>

	* logo/glom_icon.svg: Use the Tango color palette, though there is surely more
	to do to make it a tango icon.

2006-05-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: refresh_from_database():
	Handle Gda exceptions here so we can fail a bit more gracefully.

2006-05-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: get_calculation_fields(): Check the relationships used by the
	calculation. If a relationship is used, report that the from-field should trigger the
	calculation.
	This did not actually need the big changes below, though they might be useful some
	time.

2006-05-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: Added predicate_LayoutItemIsEqual class for std::find_if.
	calculate_field(), set_field_value_in_database(), get_field_value_in_database(),
	do_calculations(), get_calculated_fields(), get_calculation_fields(),
	do_lookups(), refresh_related_fields(): Deal in LayoutItem_Field rather than Field,
	so we can trigger recalculations from related fields.
	Added LayoutFieldInRecord to replace FieldInRecord in most places. It preserves the
	parent table information.
	* glom/libglom/utils.cc:
	* glom/libglom/utils.h: Added build_sql_select_with_where_clause() and
	build_sql_select_with_key() that takes lists of non-const LayoutItems. This is
	annoying, but better than removing const from everywhere else.
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.cc: Adapted to API changes.

2006-05-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: Rename get_record_field_values() to
	get_record_field_values_for_calculation() to make things clearer.
	* glom/libglom/python_embed/py_glom_related.cc: Related_tp_as_mapping_getitem():
	Leave key_value_sqlized as empty if there is no key value to find related records.
	* glom/libglom/python_embed/py_glom_relatedrecord.cc:
	PyGlomRelatedRecord_SetRelationship(): Leave key_value_sqlized as null if there is
	no key value to find related records.
	RelatedRecord_generic_aggregate(), RelatedRecord_tp_as_mapping_getitem(): Do not
	try to get related records if the key is empty. This then returns a Py_None when
	the python calculation tries to get related records. It could test for it, or just
	let the error cause an overall Py_None return result.
	* glom/python_embed/glom_python.cc: glom_execute_python_function_implementation:
	Check whether the result is Py_None. If it
	is then return a suitable empty value, instead of converting it to a string.
	* glom/libglom/data_structure/glomconversions.cc:
	* glom/libglom/data_structure/glomconversions.h:
	Remove get_empty_value_suitable_for_python().
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc: Use get_empty_value() instead of
	get_empty_value_suitable_for_python() because the python calculations
	(and our code for getting related records from python) do need to know whether non-text
	fields are empty.

2006-05-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h: Added virtual set_primary_key_value(),
	so that record_new() can set the primary key as soon as it has been
	set in the database.
	record_new(): Take a row iterator, so we can update the list row.
	After inserting the record, set the primary key value,
	and do lookups and refresh-related so that the other row fields update.
	Return the datamodel.
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h: Override set_primary_key_value()
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h: Override set_primary_key_value().
	on_adddel_user_added(): Provide the row iterator to record_new() and to
	on_record_added().
	on_record_added(): Take the row iterator
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h: on_record_added(): Take the row iterator,
	to avoid a slow lookup to discover it.

2006-05-15  Murray Cumming  <murrayc@murrayc.com>

	* autogen.sh: Use specific versions of aclocal, autoheader, autoconf, and automake,
	because the default version on Ubuntu Dapper (and probably Debian) does not have
	AM_PATH_PYTHON(). This should help people not using jhbuild, though I guess it might
	make life worse for others if those versioned executables are not present. Tell me if
	it is a problem.

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

	* glom/libglom/connectionpool.cc:
	* glom/libglom/connectionpool.h: connect(): Attempt the connection on both
	port 5433 and 5432, to make life easier for Ubuntu Dapper users, because it
	defaults postgres 8.1 to port 5433. Bug #340836 from Paul Schulz.

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

	* examples/example_smallbusiness.glom: Invoices: Mark the invoice lines relationship as allowing
	editing, so that people can actually edit the invoice lines portal. Bug #340919 from Hendrik Richter.

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

	* glom/mode_data/box_data_details.cc: refresh_from_database(): Check for a null m_primary_key_field,
	to prevent a crash when editing the fields so that no field is a primary key.

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

	* glom/libglom/data_structure/relationship.cc:
	* glom/libglom/data_structure/relationship.h: Added clone() methods, though we do not use them
	yet.
	* glom/libglom/sharedptr.h: operator==() check for equality, though this did not stop the crash.
	* glom/mode_data/dialog_choose_relationship.cc: select_item(): If the relationship is null,
	unselect all items.
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h: offer_relationship_list(): Optionally take the current
	relationship as a parameter so that the current one is highlighted in the dialog. Just change the
	existing portal, instead of setting the portal in the model row, because this causes some kind of
	memory management confusion that caused a crash, and it is inefficient anyway. Bug #340888 from
	Hendrik Richter.
	Call row_changed() to tell the TreeView to update the display.

2006-05-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: get_fields_for_table_from_database(): Report all primary keys are also
	being unique, because they all must be.
	postgres_change_column_extras(): When changing whether a field is a primary key, deal with
	the fact that the uniqueness was a side-effect of it being a primary key, and do not try
	to add/drop a non-existant uniqueness constraint, or specify uniqueness with both constraints.
	Also, use the correct postgres SQL syntax  for setting/unsetting whether a field is a primary
	key. It is very postgres specific.
	Return a modified version of the field definition, so that callers can display the new
	field definition correctly, so the constraints can be witnessed by the user.
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/box_db_table_definition.h: on_adddel_changed(): Update the row to
	show any constraints enforced when changing the field definition. This makes primary keys always
	unique and unchecks unique when it removes primary key, though uniquness can then be specified
	separately.
	* glom/mode_data/box_data_list.cc: get_record_counts(): Avoid a segfault when the model is
	null, which happens at the moment when there is no primary key.

2006-05-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: postgres_change_column_extras(): Really set/unset the uniqueness
 	constraint. This is very Postgres specific. We should do this with libgda one day, if it
	can do it.

2006-05-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/python_embed/python_module/Makefile.am: Put some stuff in LIBADD instead of LDFLAGS.
	This seems to work, and seems to be necessary on cygwin. Bug #338844 from
	Yselkowitz.

2006-05-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/adddel/adddel.cc: on_button_press_event_Popup(): Do not edit
	on double-click because it is annoying/confusing when the cells are editable on
	single click as well. This affects the table list, and the field list, all of which
	have a separate Open/Edit button.

2006-05-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/libglom/Makefile.am: Put everything in LIBADD instead of some in LDFLAGS.
	This seems to work, and seems to be necessary on cygwin. Bug #338844 from
	Yselkowitz.

2006-05-05  Murray Cumming  <murrayc@murrayc.com>

	* Makefile.am: Define ACLOCAL_AMFLAGS so that autoreconf works. Bug #338844 from
	Yselkowitz.

2006-05-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtablewithfields.cc: Do not make notebook tab titles bold. It gets
	annoying when there are many tabs, and is not that helpful, as well as being non-HIG.

2006-05-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h: Do not put the labels in Gtk::Alignments.
	They are not necessary. This should save a little memory and speed.

2006-05-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h: on_size_allocate(): Give the full max first-item width to
	first items, instead of just what they request, so that labels can expand and align in the
	actually-available space, so that xalign is useful.
	* glom/utility_widgets/flowtablewithfields.cc: add_field_at_position():
	Use label xalign and yalign instead of the Gtk::Aligment alignment, because it is not
	needed. Align labels left, though I previously was trying to align them right. Right alignment
	is untidy when using groups, because the entries do not line up across groups, and that would be
	very difficult to implement. The vertical alignment of labels seems to be neater now.

2006-04-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc:
	* glom/frame_glom.h: show_table(): init_db_details(): Added optional primary_key_value_for_details
	parameter. Pass it to show_table().
	on_notebook_data_record_details_requested(): Pass the primary key value to show_table() instead of
	calling show_details() afterwards, so that Glom does not show intermediate layouts.
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h: Added optional primary_key_value_for_details parameter and
	show the details layout with this record when it is specified.

2006-04-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/notebook_data.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.cc: Changes select_item() to
	take a LayoutItem_Field instead of an index, to simplify things.
	get_view_column_index(): Take the button column into account, so that, for instance,
	clicking Add on the list view doesn't sometimes activate the button, taking us to the
	details view instead.

2006-04-29  Murray Cumming  <murrayc@murrayc.com>

	* regexxered some method names to all lowercase.

2006-04-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: Added check_entered_value_for_uniqueness()
	and get_field_value_is_unique() and get_field_value_in_database().
	set_entered_field_data(): Catch exceptions here, and return false, so that the
	caller can handle errors more easily and more immediately.
	* glom/mode_data/box_data_details.cc: on_flowtable_field_edited():
	* glom/mode_data/box_data_list.cc: on_adddel_user_added(), on_adddel_user_changed():
	Warn the user if the new value would not be unique, if it needs to be. This adds a new
	translatable string, but the new string replaces an untranslated error message from
	Postgres.

1.0.3:

2006-04-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc:  on_notebook_find_criteria(): Show a busy cursor while waiting
	for the results.
	on_menu_Mode_Find(): Show a busy cursor while showing the appropriate view, because it
	takes a long time to do that, unfortunately.

2006-04-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtablewithfields.cc: add_layout_notebook_at_position():
	Use add_layoutwidgetbase(portal) so that we connect signals, so that we save portal
	layout changes to the document.

2006-04-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: handle_error():
	* glom/libglom/connectionpool.cc: handle_error(): Print more detailed information about
	exceptions to stderr.

2006-04-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: refresh_from_database():
	Return false if the query returns no records, so that on_notebook_find_criteria()
	can offer a new find if none are found.
	* glom/application.cc: set_mode_find(): Actually activate the find action, not the
	data action, so that a second find really works.

2006-04-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/dialog_layout_details.cc: on_button_field_formatting():
	Set m_modified so that the new formatting is actually used.

2006-04-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtablewithfields.cc: on_datawidget_layout_item_added():
	Add a LayoutItem to the LayoutGroup of the flowtable, which is shared with the document,
	and just let the parent rebuild the layout, instead of adding the actual widget here,
	and expecting the parent to read layout from that. This makes right-click adding work
	again.

2006-04-28  Murray Cumming  <murrayc@murrayc.com>

	* configure.in:
	* glom/Makefile.am:
	* po/POTFILES.in:
	* many files: Moved data_structure, document, and part of python_embed directories
	into libglom, so that the glom python module does not need to use symbols in the
	glom executable, because this is not allowed in cygwin, using --no-undefined.
	In future, this can be used as public API to make the document/database structure
	available to separate utilities and a web UI.

2006-04-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/field.cc: get_type_name_ui(): Actually return
	the translated string instead of the string for SQL. This prevents an error+crash
	when adding a field in any locale that has been translated. Kind of important.

2006-04-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/layout_item_dialogs/Makefile.am:
	* glom/layout_item_dialogs/dialog_buttonscript.cc:
	* glom/layout_item_dialogs/dialog_buttonscript.h:
	* glom/layout_item_dialogs/dialog_textobject.cc:
	* glom/layout_item_dialogs/dialog_textobject.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_design/Makefile.am:
	* glom/mode_design/dialog_buttonscript.cc:
	* glom/mode_design/dialog_buttonscript.h:
	* glom/mode_design/dialog_textobject.cc:
	* glom/mode_design/dialog_textobject.h: Moved these dialog classes into
	the layout_item_dialogs/ directory where they belong.

2006-04-26  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/dialog_choose_id.cc: on_box_find_criteria:
	Set the table name in the FoundSet, so that the init_db_details() can succeed,
	and not falsely say that there are no results.

2006-04-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/glomconversions.cc: Use memset to zero the tm structures,
	to fix a build problem with cygwin. Bug #338844 from Yselkowitz.

1.0.2:

2006-04-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/Makefile.am:
	* glom/glom.glade:
	* glom/utility_widgets/dialog_choose_date.cc:
	* glom/utility_widgets/dialog_choose_date.h: New dialog, for choosing a date
	from a calendar.
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h: Constructor: Add a ... button next to
	dates so people can choose the date from a calendar. This might help to give clues
	about a strange locale bug that someone is experiencing with date fields.

1.0.1:

2006-04-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: add_standard_groups(): Do not grant developer access to a
	table if the table does not exist yet. This avoids the failure during the first
	creation of the first example (though a second try worked.)

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

	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Added get_table_names(), using get_tables().
	* glom/base_db.cc:
	* glom/base_db.h: Renamed get_table_names() to get_table_names_from_database(),
	to be more explicit.
	* glom/mode_design/box_db_table_relationships.cc:
	* glom/navigation/box_tables.cc: Call the appropriate get_table_names*(), so we
	never show table names that are not in the document, because that usually leads to
	problems later.

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

	* glom/navigation/box_tables.cc: on_adddel_Add(): If the table exists on the server,
	then try to reuse it and store it in the document. This should never happen, but it
	was just useful to me when I lost a more recent copy of my .glom document. It adds a
	translatable string, but users should never see this dialog anyway.

1.0.0:

2006-03-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list_related.cc: get_fields_to_show() Really make fields
	non-editable if the relationship does not allow editing.

2006-03-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/dialog_connection.cc: load_from_document(): Use localhost if the host name is
	empty.
	* glom/frame_glom.cc: connection_request_password_and_choose_new_database_name():
	Store the successfully-used entered server host name in the document, so it is the
	default when the document is reopened.

2006-03-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc: Call set_field_value_in_database() with the optional
	use_current_calculations value instead of mistakenly casting the window pointer to bool.

2006-03-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade: window_layout_report:
	* glom/reports/dialog_layout_report.cc:
	* glom/reports/dialog_layout_report.h: Add a show_table_title checkbutton, because the
	table title is sometimes superfluous.
	* glom/document/document_glom.cc: load_after(), save_before(): load and save
	the new report property.
	* glom/base_db.cc: build_report(): Put show_table_title in the xml.
	* xslt/print_report_to_html.xsl: Interepret show_table_title in the xml.
	* glom/data_structure/report.cc:
	* glom/data_structure/report.h: Added get/set_show_table_title().

2006-03-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc: Use TreeView::set_fixed_height_mode() and
	TreeViewColumn::set_fixed_width(), so that the TreeView does not request values that are
	not visible in the scrolled window. If libgda does things properly then this should mean
	that we do not get data from the database that we never see.

2006-03-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h: Added get_suitable_record_to_view_details()
	and get_has_suitable_record_to_view_details() so that the row button can go to a
	doubly-related record if the related table is hidden, based on the first related field
	in the portal.
	* glom/utility_widgets/flowtablewithfields.cc: on_portal_user_requested_details():
	If the related table is hidden, use get_has_suitable_record_to_view_details() instead.

2006-03-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtablewithfields.cc: create_related(): Connect to signals
	here, instead of from the caller. This makes the row details button work in Notebooks.

2006-03-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	get_table_fields(): Hide the hidden system field, though it
	should never be in the document anyay.
	Added set_parent_window() so that the load/save methods can
	show a busy cursor, though this does not work yet.
	* glom/application.cc: init_create_document(): Call set_parent_window() on
	the document.
	* glom/standard_table_prefs_fields.h:
	Added GLOM_STANDARD_FIELD_LOCK - a hidden system field for
	each table, not used yet.
	* glom/base_db.h: get_fields_for_table_from_database():
	Optionally hide the hidden system field.
	* glom/base_db.cc: connect_to_server(), Query_Execute(): Added optional
	parent_window parameter, so they can show the busy cursor.
	* glom/box_db_table.cc:
	* glom/dialog_connection.cc:
	* glom/dialog_database_preferences.cc:
	* glom/frame_glom.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_design/box_db_table_relationships.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: Use the new parameters to show busy cursors.
	* glom/utility_widgets/db_adddel/db_adddel.cc: treeview_append_column():
	Escape underlines in column titles so that they are not interpreted as
	mnemmonics.
	* po/POTFILES.in: Added missing file.

2006-03-25  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Depend on latest Bakery, for BusyCursor API addition.
	* glom/application.cc:
	* glom/base_db.cc:
	* glom/box_reports.cc:
	* glom/dialog_connection.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_design/box_db_table_relationships.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/box_data_list_find.cc:
	* glom/navigation/box_tables.cc: Correct the BusyCursor
	declarations so that they actually instantiate an object, so that they
	work.

2006-03-25  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: offer_new_or_existing(): If creation of a new database
	fails, offer again.
	* glom/frame_glom.cc: create_database(): Warn the user if creation failed.

2006-03-25  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: set_table_privileges(): When granting
	create privileges, make sure to also grant edit privileges in the
	hidden autoincrement table.
	add_standard_groups(): Give them access to the standard prefs table too.
	auto_increment_insert_first_if_necessary(): Check that the user is allowed
	to edit the autoincrement table, and warn the user about this serious error if not.
	get_database_prefefrences(): Check that the user is allowed to view this table.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Added create_table_system_preferences() with
	no arguments.
	get_tables(): Added optional plus_system_prefs boolean.
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_groups_list.h: Show the table title instead of the
	name, and show the system prefs table too.
	on_button_group_new(): Grant access to the autoincrements table too.

2006-03-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/users/dialog_groups_list.cc: fill_group_list():
	Avoid a warning when using selection on a treeview with no model yet.

2006-03-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: get_database_users():
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/utils.cc: build_sql_select_with_where_clause():
	Quote the table, group, and user names, because they otherwise fail
	when using reserved names, such as cast.

2006-03-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc:
	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/data_structure/layout/report_parts/layoutitem_groupby.h:
	* glom/frame_glom.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utils.cc:
	* glom/utils.h: Pass sort_clause as a list of
	LayoutItem_Fields, so that build_sql_select_with_where_clause() can define
	the relationships used by the sort clause.
	* glom/data_structure/layout/usesrelationship.cc:
	* glom/data_structure/layout/usesrelationship.h:
	get_sql_join_alias_definition(): Put quotes around the relationship names, in
	some places where I forgot to do that.

2006-03-24  Peter Williams  <peter@newton.cx>

	* glom/frame_glom.h: Remove Frame_Glom:: from the
	connection_request_password_and_choose_new_database_name() declaration,
	to fix the build with g++ 4.1 (in Fedora Core 5).

2006-03-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/application.cc: Call set_icon_from_file() so that metacity
	shows the Glom icon in various places.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h: Connect to the clicked
	signal of the TreeViewColumns, and change the sort order accordingly.

2006-03-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: Added FoundSet class, instead of
	passing table_name, where_clause, and sort_clause
	around separately.
	* glom/application.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h:
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/box_data_list_find.cc:
	* glom/mode_find/box_data_list_find.h:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	* glom/utility_widgets/dialog_choose_id.cc:
	* glom/utils.cc: Use FoundSet instead of separate
	parameters.
	* glom/frame_glom.cc:
	* glom/frame_glom.h: show_table(): Sort the list by
	primary key by default, so that the order is at least
	predictable.

0.9.92:

2006-03-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/standard_table_prefs_fields.h:
	* glom/document/document_glom.cc:
	create_table_system_preferences(): Added a logo image
	field to the system preferences table.
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/box_db_table_definition.h:
	* glom/base_db.cc:
	* glom/base_db.h: Moved postgres_add_column() and
	postgres_change_column_extras() to Base_DB.
	Added create_table_add_missing_fields() and called it from
	add_standard_tables() to make sure that existing databases
	get new fields.
	Added get_field_exists_in_database()
	get_database_preferences(), set_database_preferences():
	Check that the new field is in the database and do not try
	to use if it is it not there.
	* glom/data_structure/system_prefs.h: Added logo as a
	Gda::Value.
	* glom/glom.glade:
	* glom/dialog_database_preferences.cc:
	* glom/dialog_database_preferences.h: Add a new notebook
	tab for the logo.

2006-03-21  Murray Cumming  <murrayc@murrayc.com>

	* xslt/print_report_to_html.xsl: field: Correct the xpaths to get the
	correct border-widths. Use more specific apply-templates pattern, to put
	the header above the title.

2006-03-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: report_build_headerfooter(): Handle images, so they
	appear on header/footer parts of reports.
	* glom/reports/dialog_layout_report.cc: on_button_edit(): Handle images, so
	they can be edited.
	* xslt/print_report_to_html.xsl: Use xsl:variable and xsl:copy-of to reduce
	some copy and paste of node creation.

2006-03-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/glomconversions.cc: parse_value(): Handle images,
	assuming that the text is the escaped SQL image format. This means that
	the image layout items are actually loaded from the document.
	* glom/utility_widgets/flowtablewithfields.cc: add_textobject_at_position(),
	add_imageobject_at_position(): Pass true to add(), so that these widgets
	take up the full available width when they have no titles.

2006-03-21  Murray Cumming  <murrayc@murrayc.com>

        * po/POTFILES.in:
	* glom/data_structure/layout/Makefile.am:
	* glom/data_structure/layout/layoutitem_image.cc:
	* glom/data_structure/layout/layoutitem_image.h:
	Added new image type, for arbitrary images on
	layouts and reports.
	* glom/base_db.cc:
	* glom/base_db.h: Added build_records_imageobject() and
	offer_imageobject(). Handle image fields in
	report_build_records_field().
	* glom/glom.glade:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h: Added Add Image
	button and handled it.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Load/Save the new layout
	item.
	* glom/layout_item_dialogs/Makefile.am:
	* glom/layout_item_dialogs/dialog_imageobject.cc:
	* glom/layout_item_dialogs/dialog_imageobject.h:
	New dialog for editing the new layout item.
	* glom/reports/dialog_layout_report.cc: Constructor:
	Add new image item to available parts.
	* glom/utils.cc:
	* glom/utils.h: Added create_local_image_uri(), to
	save a temporary copy of the image to the filesystem,
	for use in HTML report.
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/imageglom.h: Added set_read_only().
	* xslt/print_report_to_html.xsl: Handle field nodes that
	have image_uri instead of value.

2006-03-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: report_build_records_field(): Handle fields in headers
	and footers, assuming that they are to single records, such as system preferences.

2006-03-20  Murray Cumming  <murrayc@murrayc.com>
	* glom/base_db.cc:
	* glom/base_db.h: report_build_records_text(): Take bool vertical parameter,
	like report_build_records_field(), so we can handle these properly in
	vertical groups.
	* glom/data_structure/layout/report_parts/layoutitem_verticalgroup.
	cc: Correct node name for XML/XSL reports.
	* xslt/print_report_to_html.xsl: Handle headers and footers.

2006-03-20  Murray Cumming  <murrayc@murrayc.com>

	* po/POTFILES.in: Added some missing files.

2006-03-20  Murray Cumming  <murrayc@murrayc.com>

	* configure.in:
	* glom/Makefile.am:
	* glom/reports/Makefile.am:
	* glom/reports/dialog_layout_report.cc:
	* glom/reports/dialog_layout_report.h: Moved this dialog into
	a sub directory. Show different (less) available items for headers
	and footers, to avoid some confusion.
	* glom/reports/treestore_report_layout.cc:
	* glom/reports/treestore_report_layout.h: Added a custom treemodel,
	so that we can override row_drop_possible_vfunc(), to control
	what can be dropped where.

2006-03-18  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade:
	* glom/dialog_layout_report.cc:
	* glom/dialog_layout_report.h: Put the report
	parts into a Notebook, with extra tabs, with extra treeviews
	for the header and footer, because there is no point in
	allowing them to be added by the user anywhere but the start and end.
	* glom/base_db.cc: report_build(): Handle the Header and Footer parts,
	though it is reusing some datemodel-row-based functions in a hacky way,
	and it needs to create an equivalent of the HTML table and tr for the
	header parts.
	* xslt/print_report_to_html.xsl: Initial handling of header and footer
	parts.

2006-03-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutgroup.h:
	* glom/data_structure/layout/layoutitem.cc:
	* glom/data_structure/layout/layoutitem.h:
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	* glom/data_structure/layout/layoutitem_text.cc:
	* glom/data_structure/layout/layoutitem_text.h:
	* glom/data_structure/layout/report_parts/layoutitem_fieldsummary.c
	c:
	* glom/data_structure/layout/report_parts/layoutitem_fieldsummary.h
	:
	* glom/data_structure/layout/report_parts/layoutitem_groupby.cc:
	* glom/data_structure/layout/report_parts/layoutitem_groupby.h:

	* glom/data_structure/layout/report_parts/layoutitem_summary.cc:
	* glom/data_structure/layout/report_parts/layoutitem_summary.h:
	* glom/data_structure/layout/report_parts/layoutitem_verticalgroup.
	cc:
	* glom/data_structure/layout/report_parts/layoutitem_verticalgroup.
	h: Added virtual get_report_path_id() instead of hard-coding the
	node IDs in build_report() and friends.
	* glom/dialog_layout_report.cc:
	* glom/data_structure/layout/report_parts/layoutitem_footer.cc:
	* glom/data_structure/layout/report_parts/layoutitem_footer.h:
	* glom/data_structure/layout/report_parts/layoutitem_header.cc:
	* glom/data_structure/layout/report_parts/layoutitem_header.h:
	New layout report parts, not used yet.
	* glom/document/document_glom.cc: Load/Save the new report parts.
	* xslt/print_report_to_html.xsl: Some XSL to handle headers and footers.
	Might even work.
	* glom/base_db.cc:
	* glom/base_db.h: Added report_build_headerfooter(). Needs work.

2006-03-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc: on_menu_report_selected(): Build the report with
	the current found set only.

2006-03-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/utils.cc: Added #includes to fix the build.

2006-03-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/report_parts/Makefile.am:
	* glom/data_structure/layout/report_parts/layoutitem_footer.cc:
	* glom/data_structure/layout/report_parts/layoutitem_footer.h:
	* glom/data_structure/layout/report_parts/layoutitem_header.cc:
	* glom/data_structure/layout/report_parts/layoutitem_header.h: Add
	header and footer parts for reports, though they are not used yet.
	* po/POTFILES.in: Add the new files.

2006-03-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: report_build(): Take extra Gtk::Window* parameter.
	* glom/frame_glom.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc: Call report_build() with extra
	Gtk::Window* parameter so that the dialog can be transient.
	* glom/utils.cc:
	* glom/utils.h: transform_and_open(): Show a dialog to hint to the user
	that they should look in their open web browser to see the report.
	* po/POTFILES.in: Added utils.c

0.9.91

2006-03-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h: format_date(): Takes a char* format, instead
	of a char format, so we can use a greater variety of formats. Mark the locale-specific
	x format as translated, and advise translators to translate it if their locales (stupidly)
	represent/parse dates as only 2 digits.
	parse_date(): If the format was translated, then it's useless here too, so just use
	the Glib::Date fallback.
	* po/en_GB.po: Translate the date format, so that dates are shown and parsed with
	4-digit years. Bug found by Phill Gillespie.

2006-03-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: add_standard_groups(): Add the current user to the developer group
	here, rather than expecting the caller to do it (it did not always do it), so that
	people who create databases successfully are always marked as developers, so they can
	always change their databases. Bug found by Ryan Paul.
        * glom/applicationcc: recreate_database(): Do not make the user a developer here -
	let add_standard_groups() do it.

2006-03-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/comboentryglom.cc: check_changes(): Do not allow any
	changes when the Entry is set to sensitive, to prevent changes via the
	combo menu. GtkComboBox has no set_editable() of its own. Show and informative dialog
	when changing the value back to the original one, so it does not just seem broken.
	* glom/utility_widgets/datawidget.cc: Do not make read-only comboboxentries insensitive,
	now that we can make them non-editable instead.

2006-03-14  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc: record_new(): Do not ignore entered field data for
	related fields, because we just calculated them, and they are correct. Somehow or
	other this fixes the bug that caused calculated field values from the last-shown
	record to be inserted into new records.

2006-03-14  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/imageglom.cc: set_value(): When clearing the image,
	also clear m_pixbuf_original, so that it doesn't come back when the image
	is rescaled. For instance, this makes sure that picture fields are empty when
	adding new records on the detail view.

2006-03-14  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc: set_userlevel(): Add some debug output.
	* glom/frame_glom.cc: on_menu_userlevel_Developer(): Add some debug output,
	because someone has reported that they can not go to developer mode. This
	might help us find out exactly why.
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h: init_db(): Add optional
	show_title parameter.
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h: add_layout_notebook_at_position():
	Support Related Records portals as direct children of Notebook parts, putting their
	titles in the tab instead of having an alignment tab, and instead of requiring them
	to be inside a group.

2006-03-14  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: Moved some code into report_build_records_field() and
	report_build_records_text(). Added report_build_records_verticalgroup().
	report_build() and report_build_records(): Handle vertical groups (recursively).
	* glom/data_structure/layout/report_parts/Makefile.am:
	* glom/data_structure/layout/report_parts/layoutitem_verticalgroup.cc:
	* glom/data_structure/layout/report_parts/layoutitem_verticalgroup.h:
	Added new report part, for stacked rows of fields in one cell of a record,
	for fitting more stuff into one row of a report.
	* glom/document/document_glom.cc: Load/Save the new layout item.
	* glom/dialog_layout_report.cc:
	* xslt/print_report_to_html.xsl: Handle vertical_group and field_vertical.
	* glom/utility_widgets/flowtablewithfields.cc:
	add_layout_notebook_at_position(): Make the notebook tabs bold, so they
	are as visible as group titles, which is what they are really. Make sure
	that the notebook pages have border spacing.

2006-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/data_structure/layout/Makefile.am:
	* glom/data_structure/layout/layoutitem_notebook.cc:
	* glom/data_structure/layout/layoutitem_notebook.h:
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	* glom/glom.glade:
	* glom/layout_item_dialogs/Makefile.am:
	* glom/layout_item_dialogs/dialog_notebook.cc:
	* glom/layout_item_dialogs/dialog_notebook.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h:
	* glom/utility_widgets/layoutwidgetbase.cc:
	* glom/utility_widgets/layoutwidgetbase.h:
	* glom/utility_widgets/notebookglom.cc:
	* glom/utility_widgets/notebookglom.h:
	* po/POTFILES.in: Added Notebook part, which has Groups as child items for tabs.

2006-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: get_table_fields_to_show_for_sequence_add_group(): When getting
	full field details for related fields, use get_table_used() instead of the single-related to_table,
	so that this works with doubly-related fields. This makes doubly-related fields work in portals.
	* glom/mode_data/dialog_layout_list_related.cc: on_button_edit_field(): Show fields to the to_table,
	not the parent table.
	* glom/utility_widgets/db_adddel/db_adddel.cc: get_column_index(): Use is_same_field(), so that it
	works for doubly-related fields too.

2006-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/custom_title.cc:
	* glom/data_structure/layout/custom_title.h: Added get/set_use_custom_title().
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h: Added get_title_or_name_no_custom().
	get_title_or_name(): Return an empty custom title if use_custom_title is set.
	* glom/data_structure/translatable_item.cc:
	* glom/data_structure/translatable_item.h: get_translatable_type_name(): Add a result for
	custom field titles.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: load_after_layout_item_field(), save_before_layout_item_field():
	Load/Save a bool use_custom_title attribute, to allow for empty custom titles.
	Added get_translatable_report_items().
	get_translatable_layout_items(): Handle GroupBy group-by fields and secondary fields.
	* glom/layout_item_dialogs/dialog_field_layout.cc: set_field(): Show the non-custom
	title as the default title, so it does not change if there is a custom title.
	* glom/translation/window_translations.cc: Use get_translatable_report_items() to get
	custom titles and GroupBy fields.

2006-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc: load_after_layout_group(), save_before_layout_group():
	For GroupBy parts, save a whole LayoutItem node for the group-by field, so we can use
	related fields and custom formatting for it.
	* glom/glom.glade: dialog_group_by: Rename the Select button for Sort Fields to
	Edit, to match the button for secondary fields, which also has more than one field.
	* glom/layout_item_dialogs/dialog_group_by.cc:
	* glom/layout_item_dialogs/dialog_group_by.h: Added Formatting button, to allow us,
	for instance, to change the title of the group-by field.

2006-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: report_build_groupby_children():
	In the ORDER BY clause, use the relationship alias name, instead of
	the table name, to avoid getting extra records because we would not be using
	the join.
	* glom/data_structure/layout/usesrelationship.cc:
	* glom/data_structure/layout/usesrelationship.h: Added get_sql_table_or_join_alias_name()
	for convenience.
	* glom/utils.cc: build_sql_select_with_where_clause(): Use get_sql_table_or_join_alias_name()
	to simplify the code.
	* glom/document/document_glom.cc: load_after_layout_group(): Fill the full field details for
	secondary fields of GroupBy parts.
	* glom/layout_item_dialogs/dialog_group_by.cc: update_labels(): Show the list of secondary fields.
	* xslt/print_report_to_html.xsl: Only indent child group_by divs, to avoid wasting space at the left
	margin.

2006-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc: treeviewcolumn_on_cell_data():
	Check the type of the GdaValue before calling get_bool, to avoid warnings about
	it not being bool. It seems to be null sometimes. Not sure why.

2006-03-13  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc: report_build_groupby(): Use the border width also
	when using the group_by node for non-grouped records.
	* glom/layout_item_dialogs/comboentry_borderwidth.cc:
	Constructor add a 0.05em border width choice, for a finer line.

2006-03-13  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/layout/report_parts/layoutitem_groupby.cc:
	* glom/data_structure/layout/report_parts/layoutitem_groupby.h: Use a list of
	sort fields, instead of just one, for multiple sort levels.
	* glom/base_db.cc:
	* glom/dialog_layout_report.cc:
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	* glom/glom.glade:
	* glom/layout_item_dialogs/Makefile.am:
	* glom/layout_item_dialogs/dialog_group_by.cc:
	* glom/layout_item_dialogs/dialog_group_by.h:
	* glom/layout_item_dialogs/dialog_groupby_sortfields.cc:
	* glom/layout_item_dialogs/dialog_groupby_sortfields.h:
	* glom/utils.cc: Handle the lsit of sort fields.
	* glom/data_structure/layout/layoutitem.cc:
	* glom/data_structure/layout/layoutitem.h: Add get_layout_display_name() as virtual
	method here, so we can call it polymorphically.

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

	* glom/layout_item_dialogs/dialog_groupby_secondaryfields.cc:
	* glom/mode_data/dialog_layout_export.cc:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list_related.cc: More removal of copy/pasted code. Using
	get_layout_display_name() instead.

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

	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/mode_data/dialog_layout_details.cc: on_cell_data_name(): Move the code to
	create the field display name (with the :: separators) into LayoutItem_Field::get_layout_display_name(),
	to avoid copy/paste wasteage and to make it show up properly in the Reports layout dialog.

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

	* glom/combobox_relationship.cc: set_selected_relationship() Fix a crash caused by use of wrong
	iterator.
	* glom/mode_data/dialog_choose_field.cc: set_document(): Specify the related_relationship if there is
	one, and make sure that the full list is visible if it's needed by the current field.

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

	* glom/glom.glade:
	* glom/combobox_relationship.cc:
	* glom/combobox_relationship.h:
	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_choose_field.h: Optionally show related relationships, to
	allow specifying doubly-related fields.
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h: Added get_is_same_field() to check the name,
	and both relationships easily.
	* glom/utility_widgets/flowtablewithfields.cc: get_field(): Use get_is_same_field()
	to handle doubly-related fields.
	* glom/data_structure/layout/usesrelationship.cc:
	* glom/data_structure/layout/usesrelationship.h: Added get/set_related_relationship()
	and associated methods.
	Added get_sql_join_alias_name() and get_sql_join_alias_definition(), moving SQL generation
	code from GlomUtils::build_sql_select_with_where_clause().
	* glom/utils.cc: GlomUtils::build_sql_select_with_where_clause(): Simplify by using the
	UsesRelationships methods. This can now support doubly-related fields by creating aliases in
	terms of other aliases.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Load/Save the related_relationship. Load layouts after all other
	table information has been loaded for all tables, because the layouts need the full information.
	* glom/data_structure/layout/fieldformatting.cc:
	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutitem_portal.cc:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/box_data.cc: Update appropriately.

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

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/layout_item_dialogs/dialog_field_summary.cc:
	* glom/layout_item_dialogs/dialog_group_by.cc:
	* glom/layout_item_dialogs/dialog_groupby_secondaryfields.cc:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h:
	* glom/mode_data/dialog_layout_export.cc:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list_related.cc: Remove a lot of copying and pasting
	of near-identical offer_field_list() and offer_field_formatting() functions. Just use
	the one in Base_DB. Also made sure that these dialogs are always transient, by adding a
	Window* parameter.
	* glom/glom.glade:
	* glom/dialog_layout_report.cc:
	* glom/dialog_layout_report.h: Added a Formatting button. For instance, this allows
	the field titles to be changed (or removed) on reports.

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

	* glom/base_db.cc:
	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutgroup.h: Added get/set_border_width() for use
	when creating reports, for some slight formatting choice.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: load_after_layout_group(), save_before_layout_group():
	Handle the border_width.
	* glom/glom.glade:
	* glom/layout_item_dialogs/dialog_group_by.cc:
	* glom/layout_item_dialogs/dialog_group_by.h: Allow the user to choose a border width
	for the rows in the group.
	* glom/layout_item_dialogs/Makefile.am:
	* glom/layout_item_dialogs/comboentry_borderwidth.cc:
	* glom/layout_item_dialogs/comboentry_borderwidth.h: New widget for choosing the
	border width.
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h: Simplify the if/ifelse blocks that deal with
	layout parts.
	* xslt/print_report_to_html.xsl: Reduce copy/paste by using xsl::variables (though those
	xsl::variable blocks are copy/pasted). Use xsl::variables to apply a border-width style to
	td and the HTML blocks, depending on the border_width of the group-by. Add a horizontal line
	after the group-by titles.

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

	* glom/data_structure/layout/layoutitem_field.cc: get_layout_display_name(): Return the
	name even if the full details cache is invalid.
	* glom/document/document_glom.cc: load_after(): Fill the full field details when loading
	report items, so that they show up in the report when it is edited.

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

	* glom/dialog_layout_report.cc: enable_buttons(): Enable the Add button even if the item
	can not be a parent of the new item, so that the new item can become a sibling instead, if
	parent would allow that.

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

	* glom/base_db.cc: report_build_records(): Instead of generating different
	node names for numeric field headings and field values, just add a field_type
	attribute.
	* xslt/print_report_to_html.xsl: In <xsl:template match="field_heading"> and
	<xsl:template match="field">: Use xls:choose to do align="right" if the node has
	a field_type="numeric" attribute.

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

	* glom/base_db.cc:
	* glom/base_db.h: report_build_groupby(): Move child record generation into
	new report_build_groupby_children() method. Output child records even if there is no
	group_by field in the GroupBy part, so users can use it just to sort records, though
	that's a bit of a hack. I think adding an explicit SortBy part would confuse things,
	because it might not be clear what group of records are being sorted. But maybe it
	would work.
	* xslt/print_report_to_html.xsl: In <xsl:template match="group_by">:
	Do not print the group-by field title and value (with the : separator) if there is no
	group-by field, to avoid a lone :.

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

	* glom/dialog_layout_report.cc: set_report(), get_report(): Allow non-group
	LayoutItems at the top level, instead of putting them inside an automatically-created
	group.

2006-03-10  Murray Cumming  <murrayc@murrayc.com>

	* po/POTFILES.in: Added data_structure/layout/layoutitem_text.cc

2006-03-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/box_reports.cc: on_adddel_Add(): Set the new report name in the
	row key, so we know what row to edit in subsequent steps.

2006-03-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutgroup.h: Added get_items_count().
	* glom/dialog_layout_report.cc: get_original_report_name(): Do not crash if
	there are top-level fields. Still need to handle this properly though.
	* glom/utility_widgets/datawidget.cc: set_editable():
	Call set_sensitive() on ComboBoxes, because the menu still changes the
	value if we just call set_editable on its Entry.

2006-03-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: report_build_records() takes a vector of LayoutItem
	instead of LayoutItem_Field, so it can handle text items. So text objects
	now work on record rows of reports.

2006-03-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: Added offer_textobject().
	* glom/data_structure/layout/Makefile.am:
	* glom/data_structure/layout/layoutitem_text.cc:
	* glom/data_structure/layout/layoutitem_text.h:
	Added Text layout part, for adding arbitrary text or empty text
	with a title, to a details layout. Does not work on reports yet.
	* glom/data_structure/translatable_item.cc:
	* glom/data_structure/translatable_item.h: get_translatable_type_name():
	Update.
	* glom/dialog_layout_report.cc: Constructor: Add the Text object as a
	possible part to add.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: load_after_group(), save_before_group():
	Handle the text object layout part.
	* glom/glom.glade:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h: Added Add Text button and
	handled it.
	* glom/mode_design/Makefile.am:
        * glom/mode_design/dialog_textobject.h
        * glom/mode_design/dialog_textobject.cc: New dialog for editing the
	text object.
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h:
	add_layout_item_at_position(): Add a LabelGlom for text objects.
	* glom/utility_widgets/labelglom.cc:
	* glom/utility_widgets/labelglom.h: New widget for the text object.

0.9.8:

2006-03-08  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: do_lookups(): Do not pass a instance constructor its own member
	variables. Avoids occasional crash and occasional non-working lookups.

2006-03-08  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	get_table_fields_to_show_for_sequence_add_group(): Do not recurse into portals,
	to avoid adding their fields to the SQL query for the parent table details view.
	* glom/document/document_glom.cc: load_after_layout_group(): In portals,
	load related (related from the related table) fields properly, so we remember
	the relationship.

0.9.7:

2006-03-08  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/glomconversions.cc: parse_date(): Fix incorrect sanity check
	of the month, so that January is not changed to February. tm.tm_mon _does_ start
	with 0.

2006-03-08  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/glomconversions.cc: parse_value(): If parsing of the time
	fails, fall back to trying the C locale. This is usually necessary. No idea why.

2006-03-08  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc: on_cell_button_clicked():
	Do not interpret an edit request on a placeholder row as a request to add. This
	means that Glom switches to an empty details view instead, as you would expect.

2006-03-08  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc: refresh_from_database():
	If there are no rows it is not an error. There are just no records in the table
	yet.

2006-03-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutitem_field.cc: get_editable_and_allowed():
	Report calculated fields as always non-editable.
	* glom/layout_item_dialogs/dialog_field_layout.cc: set_field(): Do not allow
	calculated fields to be editable, by graying-out the checkbox.
	* glom/main.cc: Translate the command-line options, and add a --version
	option.
	* glom/utility_widgets/comboglomchoicesbase.cc: set_choices_with_second():
	For the optional second column in the popdown, use the correct formatting,
	instead of reusing the formatting from the first column.
	* glom/utility_widgets/datawidget.cc: set_editable(): For ComboBoxEntry
	widgets, set the child entry as non-editable.

2006-03-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/main.cc: Call PySys_SetArgv, to prevent use of pygtk from
	crashing when using pygtk 2.9/2.10.
	* glom/mode_data/dialog_layout_details.cc: on_cell_data_name(): Name buttons as
	buttons in the name column, instead of leaving it blank.

2006-03-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: on_document_load(): When saving from an example, temporarily increase
	the user level, so that save_changes() always saves.
	* glom/document/document_glom.cc:
	set_modified(): Save even if modified is already set, because this can happen
	after unblocking save-on-modified. If there are endless loops then we need to
	fix them elsewhere instead.
	load_after(): Block setting of modified state while loading.

2006-03-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/box_reports.cc:
	* glom/data_structure/report.cc:
	* glom/dialog_layout_report.cc:
	* glom/document/document_glom.cc: Prevent crashes when adding reports,
	or editing them.

2006-03-02  Ilkka Tuohela  <hile@iki.fi>

	* configure.in: Added "fi" to ALL_LINGUAS

2006-02-24  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/adddel/adddel.h: Added set_prevent_duplicates() and
	set_prevent_duplicates_warning().
	* glom/mode_design/box_db_table_relationships.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/navigation/box_tables.cc: Use the new AddDel methods to prevent, and warn about,
	duplicate tables, fields, and relationships, to prevent crashes.

2006-02-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/fields/box_db_table_definition.cc: postgres_change_column_type():
	Data conversion commands: Fix crashes when converting from text to boolean, and from
	boolean to number. Preserve information when converting from anything to boolean.

2006-02-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list.h: Do not allow people to put image
	fields on the list view, because it can not show them yet.
	* glom/utility_widgets/db_adddel/db_adddel.cc: Some skeleton code to
	support (very scaled-down) images on the list view. But I have not actually
	implemented it because I do not want yet more versions of the code that
	works around the libgda 1.2 binary escaping problem.

2006-02-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/fields/box_db_table_definition.cc:
	postgres_change_column_type(): Use textcat() to add a preceding 0 when
	using to_number(), so that it always succeeds. Now I can not make glom
	crash or error when converting field types, though the results are a bit
	strange for text<->to date.

2006-02-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: Add override of
	calculate_field_in_all_records() that does not need the primary key
	spoon-fed to it. Get all the primary key values, not all the calculated
	field values.
	* glom/mode_design/fields/box_db_table_definition.cc:
	on_Properties_apply(): Warn about necessary recalculation and
	allow the user to cancel the change of field definition.
	change_definition(): Recalculate all values if necessary. This
	even works.

2006-02-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/field.cc:
	* glom/data_structure/field.h:
	* glom/base_db.cc:
	* glom/base_db.h: Move get_calculation_fields() to Base_DB,
	so it can return a LayoutItem_Field, instead of a field name,
	so it can refer to related fields, though we are not using them
	yet.
	* glom/mode_data/box_data_details.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.cc: Adapt.

2006-02-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: FieldInRecord: Change primary_key*
	to key*, so we can use this for foreign keys for
	related records.
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc: Adapt.
	* glom/utils.cc:
	* glom/utils.h: Rename build_sql_select_with_primary_key() to
	build_sql_select_with_key

2006-02-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/utils.cc:
	* glom/utils.h: Added build_sql_select_with_primary_key().
	* glom/base_db.cc:
	* glom/base_db.h: Added FieldInRecord inner class and
	used it to reduce the number of parameters for
	do_calculations(), do_lookups(), refresh_related_field(),
	calculate_field(), set_field_value_in_database().
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc: Change the method
	overrides and implementations to match.

2006-02-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/box_db_table.cc:
	* glom/box_db_table.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/base_db.cc:
	* glom/base_db.h: Moved calculate_field(), get_record_field_values(),
	set_entered_field_data(), set_field_value_in_database(), build_sql_select(),
	do_calculations(), get_calculated_fields(), do_lookups(), get_lookup_fields(),
	get_lookup_value(), and refresh_related_fields() down to the Base_DB class,
	with extra table_name arguments, so we can recalculate/lookup fields even if they
	the tables or records are not being shown currently.

2006-02-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/connectionpool.cc:
	* glom/connectionpool.h: connect(): Parse the result of SELECT version() and return
	it from get_postgres_server_version(), so we can optionally use some new features,
 	behind the scenes.

2006-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/combobox_relationship.cc:
	* glom/combobox_relationship.h: set_display_parent_table(): Add a separator after
	the table title, so that relationships are special.
	* glom/mode_data/dialog_choose_field.cc: set_document(): Scroll the current field
	into view, so it is always visible.

2006-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/dialog_choose_field.cc: set_document(): Supply the table title as
	well as the name, so it shows up.

2006-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/fields/dialog_fielddefinition.cc: set_field(): Do not show the
	current table name in the list of relationships for lookups.

2006-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/glom.glade:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/fields/dialog_fielddefinition.h: Rename the Default Value tab
	to Value. Use radiobuttons to make the calculation and the rest mutually exclusive.

0.9.6:

2006-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.h: Make on_flowtable_field_edited()
	virtual again so that the override in BoxDataDetails_Find works again,
	to avoid odd regressions when finding.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utils.cc:
	* glom/base_db.cc: Try to print the SQL command on stdout when there
	is a problem with it.

2006-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc: on_notebook_find_criteria(): Show all records if
	the find was not successful, and the user did not want to try again.

2006-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc: on_menu_Mode_Find(): Start the Find mode
	on the same layout (Details or List) as the Data mode was in.
	Add a little hack to make sure that we go back into Data mode in List
	view at first, to make sure that the first result will show up
	properly in the Details mode.
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h: Added set_current_view().
	* glom/mode_find/notebook_find.cc:
	* glom/mode_find/notebook_find.h: Added set_current_view().

2006-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/imageglom.cc: scale(): Call Gtk::Image::get_storage_type()
	before Gtk::Image::get_pixbuf(), to avoid a critical warning.

2006-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/imageglom.h: Override on_expose_event() so we can
	scale the image when we actually have a real (>1) allocation.
	scale(): Do not call set_image() if the scaled pixbuf has exactly the same
	dimensions as the existing image. And do not try to scale the image if the
	allocation is very small, because this will generally fail. This fixes the
	disappearing image problem.

2006-02-18  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/relationship.cc:
	* glom/data_structure/relationship.h: Added get_has_to_table(), for
	performance, to avoid string copying.
	* glom/utils.cc: build_sql_select_with_where_clause(): Add to_table to the
	FROM list for non-key-linked relationships. libpq adds the implicit FROM if we
	do not do this, but it prints a warning on stdout.
	* glom/mode_data/dialog_layout_list_related.cc: on_combo_relationship_changed():
	Clear the list of fields when the relationship changes, so that there are no
	invalid fields.


2006-02-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc: get_translatable_items(): Return the CustomTitles of
	LayoutItem_Fields.
	* glom/translation/window_translations.cc: load_from_document(): Do not try to get the
	custom titles here, because get_translatable_items() gets them instead.

2006-02-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/Makefile.am:
	* glom/data_structure/layout/custom_title.cc:
	* glom/data_structure/layout/custom_title.h: New translatable
	item, for use when layout items can optionally have special
	titles, when the default (such as Street for contacts::address_street),
	is not appropriate.
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h: Add get/set_title_custom().
	* glom/data_structure/translatable_item.cc:
	* glom/data_structure/translatable_item.h: Add new item type and name.
	* glom/document/document_glom.cc: load_after_layout_item_field(),
	save_before_layout_item_field(): Load/Save the custom_title of
	LayoutItem_Field items.
	* glom/glom.glade: dialog_layout_field_properties.
	* glom/layout_item_dialogs/dialog_field_layout.cc:
	* glom/layout_item_dialogs/dialog_field_layout.h: Add widgets to allow
	a custom title.
	* glom/translation/window_translations.cc: load_from_document():
	Add the custom titles to the list.
	* glom/utility_widgets/datawidget.cc: on_menupopup_activate_layout():
	Save the new field properties, instead of replacing the whole item,
	so that the document gets the new information. Makes this work again.

2006-02-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/combobox_relationship.cc: Do not show the
	Triggered By information if there are not linking key
	fields for a relationship.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: get_relationships():
	Optionally also return the extra System Properties
	relationship.
	get_relationship(): Return the extra System Properties
	relationship if it is asked for by name, even though it
	is not saved in the document.
	* glom/mode_data/dialog_choose_field.cc: Show the extra
	System Properties relationship too.
	* po/POTFILES.in: Added document_glom.cc

2006-02-14  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/relationship.cc:
	* glom/data_structure/relationship.h: Added
	get_has_fields() to identify relationships that
	actually link fields in tables.
	* glom/mode_data/box_data_list_related.cc: init_db_details(),
	fill_from_database(): Get all rows (with no where clause) if the
	relationship does not specify linking fields.
	* glom/mode_design/box_db_table_relationships.cc:
	* glom/utils.cc: build_sql_select_with_where():
	If a related field's relationship doesn't specify
	linking fields, don't attempt a JOIN.

2006-02-14  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/box_db_table.cc:
	* glom/box_db_table.h:
	* glom/box_reports.cc:
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h:
	* glom/mode_design/box_db_table_relationships.cc:
	* glom/mode_design/dialog_design.cc:
	* glom/mode_design/dialog_design.h:
	* glom/mode_design/dialog_fields.cc:
	* glom/mode_design/dialog_fields.h:
	* glom/mode_design/dialog_relationships.cc:
	* glom/mode_design/dialog_relationships.h:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/notebook_find.cc:
	* glom/mode_find/notebook_find.h:
	* glom/utils.cc: Code style uniformity: Change
	strTableName to table_name and strWhereClause to
	where_clause.

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

	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h: Added
	get_empty_value_suitable_for_python().
	* glom/mode_data/box_data.cc: get_record_field_values():
	Get full set of suitable empty values if there is no primary key,
	and replace null values with suitable non-null empty values, with
	get_empty_value_suitable_for_python(). This avoids warnings on the
	command line when adding records.

0.9.5:

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

	* glom/data_structure/layout/layoutitem_button.cc:
	* glom/data_structure/layout/layoutitem_button.h:
	Added get/set_script().
	* glom/document/document_glom.cc: load_after_layout_group(),
	save_before_layout_group(): Load/Save the scripts for buttons.
	* glom/utility_widgets/buttonglom.cc:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h: Handle button clicks and
	run the python code.
	* glom/glom.glade: Add a script editing dialog.
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h: on_button_edit():
	Allow editing of buttons and start editing of the title column
	if the item is a group.
	* glom/mode_design/Makefile.am:
	* glom/mode_design/dialog_buttonscript.cc:
	* glom/mode_design/dialog_buttonscript.h: Added button script
	editing dialog.
	* glom/python_embed/glom_python.cc:
	* glom/python_embed/glom_python.h: Added
	glom_execute_python_function_implementation() because we buttons
	do not care about the result.
	* examples/example_smallbusiness.glom: Add a Test Button to the
	Contacts layout, with a pygtk hello world script behind it.

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

	* glom/data_structure/layout/layoutitem_button.cc:
	* glom/data_structure/translatable_item.cc:
	* glom/data_structure/translatable_item.h: Give it a
	translatable item type and name so it shows up properly in the
	translations list.
	* glom/document/document_glom.cc: save_before_layout_item_field():
	Load the sequence number of child items. It was pure luck that this
	worked sometimes without this.
	* glom/document/document_glom.h:
	* glom/mode_data/dialog_layout_details.cc: on_button_*(): Set m_modified,
	so that all changes are always saved. I am surprised that this worked before.
	on_cell_data_name(): Mark buttons as such.
	on_cell_data_title(): Allow button titles to be edited.
	* glom/utility_widgets/flowtablewithfields.cc:
	add_button_at_position(): Set the button title and really show the widget.

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

	* po/POTFILES.in:
	* glom/Makefile.am:
	* glom/data_structure/layout/Makefile.am:
	* glom/data_structure/layout/layoutitem_button.cc:
	* glom/data_structure/layout/layoutitem_button.h: Add Button
	layout item.
	* glom/glom.glade: Details Layout:
	Put the Add buttons vertically at the right-hand side Add
	an Add Button button.
	* glom/mode_data/treestore_layout.cc:
	* glom/mode_data/treestore_layout.h:
	* glom/mode_data/dialog_layout_details.h:
	* glom/mode_data/dialog_layout_details.cc:
	Use the LayoutItems only in the model, simplifying this
	dramatically, and making it easier to add new types of
	layout items.
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/buttonglom.cc:
	* glom/utility_widgets/buttonglom.h: Add a (not yet useful)
	button widget.

2006-02-10  Murray Cumming  <murrayc@murrayc.com

	* Makefile.am: Install the logo used by the desktop file.

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

	* glom/application.cc: on_document_load(): When saving from an
	example, do not open the Save As dialog box in the examples directory,
	because it is usually read-only and it is not a wise place to put your
	own stuff. Also see the latest Bakery 2.3.17 for fixes to prevent Save As
	in read-only paths.

0.9.4:

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

	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutgroup.h:
	Added remove_relationship(), to remove any
	child items that use the relationship.
	* glom/document/document_glom.cc:
	remove_relationship(): Also remove any layout or report
	parts that use the relationship.

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

	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutgroup.h: Added remove_field().
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Added remove_field().
	* glom/mode_design/fields/box_db_table_definition.cc:
	on_adddel_delete(): Call Document_Glom::remove_field() to prevent
	a crash when deleting a field that is used on a layout.

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

	* glom/mode_data/box_data.cc: get_lookup_value():
	Convert the key field value, in case the relationship's keys
	have different types.

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

	* glom/mode_design/box_db_table_relationships.cc:
	save_to_document(): Actually add new relationships.

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

	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h: Added convert_value(),
	which attemps to convert between differing value types if
	necessary.
	* glom/mode_data/box_data_details.cc:  do_lookups():
	* glom/mode_data/box_data_list.cc: do_lookups(): Use
	convert_value() to avoid errors when looking up a value from
	a field with a different field type.

0.9.3:

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

	* glom/data_structure/translatable_item.cc: get_title(): Really
	fall back to related translations. For instance, if you are in
	the German (Austria) locale, and there is no German (Austria)
	translation for a title, but there is one for German (Germany),
	use it.

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

	* glom/document/document_glom.cc:
	set_translation_original_locale(): Mark the document
	as modified so that this is saved.
	* glom/glom.glade: Use language everywhere instead of
	locale.
	* glom/translation/Makefile.am:
	* glom/translation/dialog_change_language.h:
	* glom/translation/dialog_identify_original.cc:
	* glom/translation/dialog_identify_original.h: Show the
	locale name, not the ID.
	* glom/translation/dialog_copy_translation.cc:
	* glom/translation/dialog_copy_translation.h:
	* glom/translation/window_translations.cc:
	* glom/translation/window_translations.h: Implement
	original locale identification and translation copying.

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

	* glom/document/document_glom.cc: Constructor:
	Call TranslatableItem::set_original_locale() so that
	TranslatableItem::set_title() does the right thing as early
	as possible. This means that the automatically-generated
	table titles will be visible when loading the document.

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

	* glom/data_structure/field.cc:
	* glom/data_structure/groupinfo.cc:
	* glom/data_structure/numeric_format.cc:
	* glom/data_structure/privileges.cc:
	* glom/data_structure/relationship.cc:
	* glom/data_structure/translatable_item.cc:
	Optimize the operator==() implementations, fixing
	Field::operator==() along the way, so that entered field titles
	when in non-original locales are used as translations for that
	locale.
	* glom/translation/combobox_locale.cc: Constructor:
	Hide the locale IDs because they are not human-readable.

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

	* glom/data_structure/iso_codes.cc:
	* glom/data_structure/iso_codes.h: Added get_locale_name(),
	moving some of get_list_of_locales() into it.
	* glom/data_structure/translatable_item.cc: get_title():
	If there is no translation then use the first translation with
	the same language (ignoring the country).
	* glom/translation/window_translations.cc: load_from_document():
	Use get_locale_name() to show the (believed) locale of the original
	strings.
	* glom/utils.cc:
	* glom/utils.h: Added locale_language_id() so we can reuse the code.

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

	* glom/base_db.cc:
	* glom/dialog_database_preferences.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/python_embed/python_module/py_glom_relatedrecord.cc:
	* glom/utils.cc: Put all field names in quotes too, to avoid
	crashes when using uppercase characters in field names.

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

	* glom/base_db.cc:
	* glom/connectionpool.cc:
	* glom/dialog_database_preferences.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/navigation/box_tables.cc:
	* glom/python_embed/python_module/py_glom_relatedrecord.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utils.cc: Put all table names in quotes in SQL statements,
	to avoid errors/crashes when using non-lowercase table names, and SQL keywords
	as table names.

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

	* glom/data_structure/iso_codes.cc: get_list_of_locales():
	Instead of just listing languages, get the full list of locale IDs from
	/usr/share/i18n/locales/ (hopefully this works everywhere. If not, let's
	have some configure.in stuff), and build the locale name from the language
	part and country part. So it now also parses iso_3166.xml from iso-codes
	to get translated country names.
	* glom/utils.cc:
	* glom/utils.h: Added locale_simplify() so we can ignore weird parts of
	locale IDs.
	* glom/data_structure/translatable_item.cc: get_current_locale(): Return
	a locale instead of just a language.
	* glom/translation/combobox_locale.cc: Try (unsuccessfully) to align the
	second column. Sort it by name.
	* glom/translation/window_translations.cc: load_from_document(): Prevent
	a crash when the document is 0.

2006-02-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: Use string_escape_underscores when building
	the reports and tables menus.
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/adddel/adddel.h:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	* glom/utils.cc:
	* glom/utils.h: Move string_escape_underscores() to here.

2006-01-24  Clytie Siddall <clytie@riverland.net.au>

	* configure.in	Added vi in ALL_LINGUAS line.

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

	* examples/example_smallbusiness.glom: Add German translations.
	* glom/navigation/box_tables.cc: Avoid a null-sharedptr crash when
	doing a Save As Example.

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

	* Many: Use LayoutItems via sharedptr so we can translate the titles of
	groups, portals, and report parts. LayoutItems are now created during
	document loading, and by layout editing dialogs, but then just shared by the
	various widgets. This means that we no longer need to rebuild the whole layout
	from the widgets when a widget is changed - it is just shared, so we just
	mark the document as modified.

2006-01-26  Murray Cumming  <murrayc@murrayc.com>

	* Many: Use relationship via sharedptr so we can translate its title too.
        Derive LayoutItem_Field, LayoutItem_Portal, LayoutItem_Group, FieldFormatting
	from new UsesRelationship class to simplify the code.

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

	* glom/application.cc: Reuse the Translations window, so it shows the
	last-used locale when shown again.

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

	* glom/application.cc:
	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/box_reports.cc:
	* glom/box_reports.h:
	* glom/dialog_layout_report.cc:
	* glom/dialog_layout_report.h:
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	* glom/frame_glom.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/translation/window_translations.cc: Use Report via
	sharedptr<> so that Report title translations are used.

2006-01-25  Murray Cumming  <murray@murrayc.com>

	* glom/application.cc:
	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/dialog_database_preferences.cc:
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	* glom/glom.glade:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/navigation/box_tables.cc:
	* glom/navigation/box_tables.h:
	* glom/relationships_overview/relationships_canvas.cc:
	* glom/relationships_overview/table_canvasitem.cc:
	* glom/relationships_overview/table_canvasitem.h:
	* glom/translation/window_translations.cc: Use TableInfo via
	sharedptr<> so that Table title translations are used.

2006-01-24  Murray Cumming  <murray@murrayc.com>

	* glom/data_structure/translatable_item.h: Copy m_title
	(the original) in copy constructor and operator=(). This makes
	the table titles show up again and be saved.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Save/load titles in
	load_after_translations() and save_before_translations() instead
	of separately.
	* glom/sharedptr.h: Added cast_dynamic<>, cast_static<>, and
	cast_const<>, based on RefPtr.
	* glom/glom.glade:
	* glom/translation/Makefile.am:
	* glom/translation/combobox_locale.cc:
	* glom/translation/combobox_locale.h: Added set_locale().
	* glom/application.cc:
	* glom/application.h:
	* glom/translation/dialog_change_language.cc:
	* glom/translation/dialog_change_language.h: New dialog
	used to choose a language to test temporarily.
	* po/POTFILES.in: Added dialog_change_language.cc.

2006-01-24  Murray Cumming  <murray@murrayc.com>

	* glom/data_structure/translatable_item.cc:
	* glom/data_structure/translatable_item.h: Added a new
	base class for all items that have a non-translated ID name and
	a translated title. This base class has a map of translated titles
	for locales.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Added load_after_translations()
	and save_before_translations() and used it for fields, reports,
	tables, and layout items, so these XML nodes get a translations
	node if they have any translations.
	* glom/application.cc:
	* glom/base_db.cc:
	* glom/box_reports.cc:
	* glom/data_structure/Makefile.am:
	* glom/data_structure/field.cc:
	* glom/data_structure/field.h:
	* glom/data_structure/groupinfo.cc:
	* glom/data_structure/groupinfo.h:
	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutgroup.h:
	* glom/data_structure/layout/layoutitem.cc:
	* glom/data_structure/layout/layoutitem.h:
	* glom/data_structure/relationship.cc:
	* glom/data_structure/relationship.h:
	* glom/data_structure/report.cc:
	* glom/data_structure/report.h:
	* glom/data_structure/tableinfo.cc:
	* glom/data_structure/tableinfo.h:
	* glom/dialog_database_preferences.cc:
	* glom/dialog_layout_report.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/navigation/box_tables.cc:
	* glom/utility_widgets/flowtablewithfields.cc: Use the base class
	API, removing superfluous API.
	* glom/translation/window_translations.cc:
	* glom/translation/window_translations.h: Store sharedptr<TranslatableItem>
	in the tree model.
	* po/POTFILES.in: Added the new files.

2006-01-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Just store a const reference (sharedptr) to the
	Field, instead of copying it.

2006-01-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Remove set_full_field_data_empty(). Instead, allow
	the field cache to be null and use m_name when
	there is no full data. Use a bool to mark when the
	cache is up-to-date, and do no try to use it when it
	is not up-to-date.
	* glom/mode_data/dialog_layout_details.cc:
	* glom/utils.cc: build_sql_select_with_where_clause():
	Cope with fields with no names, in case that happens.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: load_after_layout_item_field()
	and load_after_layout_item_field_formatting(): These functions
	now take the field type, and the table name that can be used to
	discover the field type if necessary. This is necessary in order
	to interperet default values and choices.

2006-01-23  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/fields/box_db_table_definition.cc:
	on_adddel_add(): Call on_adddel_changed() to save the
	guessed title into the document, even when the title is
	not edited by the user.

2006-01-23  Murray Cumming  <murrayc@murrayc.com>

	* Many files: Use Field via sharedptr<Field>, to
	avoid unnecessary copying. However, LayoutItem_Field still
	copies it for now, to avoid conflicts.
	* glom/sharedptr.h: Various improvements, particularly to
	the nonconst->const cast, based on Glib::RefPtr.

2006-01-21  Murray Cumming  <murrayc@murrayc.com>

	* po/POTFILES.in: Mention the desktop file.

2006-01-21  Murray Cumming  <murrayc@murrayc.com>

	* configure.in:
	* glom.desktop: Removed
	* glom.desktop.in.in: Added .in.in file instead, based on
	the same thing in gnome-terminal, so that intltool can
	translate strings prefixed by underscores (_Name and _Comment),
	and so that configure.in can substitute the VERSION for
	bug-buddy.
	* glom.png:
	* Makefile.am: Actually install the application icon, and
	correct the install location for the .desktop file.

2006-01-21  Murray Cumming  <murrayc@murrayc.com>

	* Makefile.am:
	* glom.applications: Removed .applications file because it is
	apparently the old way, for versions of GNOME with which Glom
	is not likely to work anyway.

2006-01-20  Murray Cumming  <murrayc@murrayc.com>

  * glom/data_structure/iso_codes.cc:
  * glom/data_structure/iso_codes.h: Added get_list_of_locales().
  The names will be translated.
	* configure.in:
	* glom/Makefile.am:
	* glom/application.cc:
	* glom/application.h:
	* glom/data_structure/field.h:
	* glom/data_structure/tableinfo.h:
	* glom/document/document_glom.cc:
	* glom/glom.glade:
	* glom/translation/Makefile.am:
	* glom/translation/combobox_locale.cc:
	* glom/translation/combobox_locale.h:
	* glom/translation/window_translations.cc:
	* glom/translation/window_translations.h: The beginnings of some UI
  to allow translation of field titles, table titles, etc. Not yet
  available via menus.

0.9.2:

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

	* docs/website/screenshots/glom_data_details.png:
	* docs/website/screenshots/glom_data_details_related.png:
	* docs/website/screenshots/glom_data_list.png: Updated.
	* examples/example_smallbusiness.glom: Added more example data, and
	added a Position field to the Staff table.

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

	* glom/application.cc: init_menu_file(): Make the Save As Example menu
	item only available in Developer mode, to avoid confusing operators.

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

	* glom/Makefile.am:
	* glom/application.cc:
	* glom/glom.glade:
	* glom/dialog_progress_creating.cc:
	* glom/dialog_progress_creating.h: Try to show a pulsing progress dialog
	while recreating the example database, but it does not show up until the
	end.
	* glom/frame_glom.cc: alert_no_table(): Correct the message. It is about a
	lack of tables, not of databases, and it is not an error.

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

	* glom/application.cc: offer_new_or_existing(): Tell the document and the
	connection about the actually-used database name.
	* glom/base_db.cc: add_standard_tables(): Set the title from the document,
	if the document already has a database title.
	* glom/frame_glom.h:
	* glom/frame_glom.cc: set_databases_selected(): Show the database title
	when showing a new database.
	create_database(): Re-connect to the new database, instead of staying in
	template1, before creating the glom system tables. Set the title as
	provided in a function parameter.

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

	* NEWS:
	* glom/application.cc: offer_new_or_existing(): When creating a new file,
	discover and use an unused database name, based on the title.
	* glom/utils.cc:
	* glom/utils.h: Added create_name_from_title().
	* glom/dialog_new_database.cc:
	* glom/dialog_new_database.h:
	* glom/glom.glade: When creating a new file/database, do not ask the user
	for a database name - just guess one based on the human-readable title.

2006-01-17  Murray Cumming <murrayc@murrayc.com>

        * glom/exception.[h|cc]: Make what() const and throw(), so that it really
	overrides std::exception::what() so we get real text in the error dialogs.
	* glom/frame_glom.cc: create_database(): Call add_standard_tables() and
	add_standard_groups() to avoid the error/crash when adding a record to a new
	table in a new database.

2006-01-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/field.cc: sql(): Move text escaping code into
	glom_escape_text() so it can be reused. For IMAGE fields, assume that
	get_binary() is already the escaped binary format, but escape it
	again as text, so we get the \\ needed for SQL commands.
	* glom/data_structure/glomconversions.cc: get_escaped_binary_data():
	Use one \, not \\ to separate byte numbers, because that's the format
	used by get/set_binary() in libgda at the moment.
	* glom/utility_widgets/imageglom.cc:
	get_value(): Use GlomConversions::get_escaped_binary_data() before
	set_binary() because Glom must assume elsewhere that it is escaped
	in all GdaValues. This workaround will all be unnecessary in libgda-2.0,
	which properly unescapes binary buffers.
	Images are now saved properly into examples, and inserted properly into
	the new databases that are created when examples are opened.

2006-01-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/imageglom.cc:
	on_menupopup_activate_clear(): Emit the signal to actually update the database.
	on_menupopup_activate_paste(): Prevent crash when the received pixbuf is NULL.
	on_menupopup_activate_copy(): Prevent crash when the pixbuf is NULL.

2006-01-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc: export_data_to_*(): Use specified table name,
	not the current table name, so that all tables are properly exported.
	* glom/base_db.[h|cc]: Add recalculate_next_auto_increment_value(),
	which does a SELECT MAX() on the table.
        * glom/application.cc: recreate_database():  Recalculate next auto-increment
	values, and create glom system tables and groups before adding data.

2006-01-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/application.cc: on_menu_file_save_as_example():
	Put the example data in a string instead of a stringstream,
	because it was somehow truncating the data.
	* glom/base_db.cc: insert_example_data(): Really return true
	for success.

2006-01-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc:
	* glom/dialog_connection.cc:
	* glom/dialog_connection.h:
	* glom/document/document_glom.cc:
	* glom/frame_glom.cc:
	* glom/frame_glom.h: When opening example documents,
	always save a copy and always create a database, choosing
	a new unused database name. Mark documents explicitly as examples.
	* glom/glom.glade: Rename Open Example button to
	New From Example.

2006-01-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc:
	* glom/application.h:
	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h: Added half-working
	File / Save As Example menu item, which stores the
	data  in the .glom file, for use when creating the
	database from an example.

2006-01-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/dialog_layout.cc:
	* glom/mode_data/dialog_layout_export.cc:
	* glom/mode_data/dialog_layout_export.h:
	* glom/glom.glade: Remove formatting button,
        so we _always_ export in iso format.
	* glom/filechooser_export.cc:
	* glom/filechooser_export.h: The Define Data Format
	button now works, though it opens in the background.
	It now exports only the requested fields.

2006-01-14  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc:
	* glom/frame_glom.h: Add a File/Export menu item, for exporting the found set as
	comma-separated text.
	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/box_db_table.cc:
	* glom/box_db_table.h:
	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	* glom/filechooser_export.cc:
	* glom/filechooser_export.h:
	* glom/mode_data/Makefile.am:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h:
	* glom/base_db.cc:
	* glom/base_db.h:Moved various folders into Base_DB so that Frame_Glom can use them.
	* glom/Makefile.am:
	* glom/mode_data/dialog_layout_export.cc:
	* glom/mode_data/dialog_layout_export.h: New layout UI for export field sequences,
	not yet finished or used.

2006-01-13  Murray Cumming   <murrayc@murrayc.com>

	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/base_db.cc:
	* glom/base_db.h: Move get_find_where_clause_quick() from Frame_Glom to
	Base_DB so we can use it in Dialog_ChooseID.
	* glom/glom.glade:
	* glom/utility_widgets/dialog_choose_id.cc:
	* glom/utility_widgets/dialog_choose_id.h: Add the Quick Find feature
	to this dialog too.

2006-01-13  Murray Cumming   <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom: Contacts: Add the web site
	field to the layout, and change it to text.
	* glom/mode_data/dialog_layout_details.cc: enable_buttons(): Properly
	enable/disable Up and Down for the first and last _child_ items.
	* glom/mode_data/dialog_layout_list.cc: enable_buttons(): Properly
	enable/disable Up and Down when adding fields.

2006-01-12  Murray Cumming   <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	Define the placeholder row as the last row, whose existance we
	cause just by increasing the number of rows, so that iter_next_vfunc() gives
	one more row, instead of marking a boolean. This simplifies things and
	prevents extra placeholder rows being generated.
	* glom/base_db.cc:
	* glom/frame_glom.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_find/box_data_list_find.cc:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/imageglom.cc: Adapt to new API. And some changes to
	ensure that find results are shown in the appropriate view depending on whether
	there are >1 records found.

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

	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/glom.glade: Added widgets at bottom-right to show
	the number of total and found records, with a Find All button
	when appropriate.
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h: Added get_record_counts().
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h: Added get_record_counts().

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

	* glom/frame_glom.cc: Connect explicitly to the activate
	signal of the quick find entry, instead of using default widgets.

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

	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/glom.glade: Add a Quick Find entry and button, only
	shown when in Find mode. It is probably inefficient, because
	it just ORs over all the fields.

2006-01-10  Murray Cumming  <murrayc@murrayc.com>

	* .cvsignore:
	* Makefile.am:
	* autogen.sh:
	* configure.in:
	* docs/user-guide/.cvsignore:
	* docs/user-guide/C/Makefile.am:
	* docs/user-guide/C/glom-C.omf:
	* docs/user-guide/C/glom.xml:
	* docs/user-guide/Makefile.am:
	* docs/user-guide/de/de.po:
	* docs/user-guide/glom-C.omf.in:
	* gnome-doc-utils.make: Convert to the new
	gnome-doc-utils (xml2po) system, with a
	dummy de translation, though I get warnings about
	the path to the images in figures.

2006-01-10  Murray Cumming  <murrayc@murrayc.com>

	* docs/postgres_gda_test.c: (main):
	* glom/base_db.cc:
	* glom/document/document_glom.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/navigation/box_tables.cc:
	* glom/python_embed/python_module/pygdavalue_conversions.c:
	(pygda_value_from_pyobject):
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/combo_textglade.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	* glom/utility_widgets/flowtablewithfields.cc: Change all
	instances of can not to cannot. Bug #300139 from Adam Weinberger.
	This may or maynot be necessary.

2006-01-10  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc: get_row():
	Do not crash if there is not model yet.
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h: Added set_primary_key_value_selected().
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h: on_switch_page_handler():
	Refresh the list when showing it, trying to keep the same row selected.
	This means that new records (added in Details) show up. Thanks to
	Daniel Holbach and Greg Breland.

2006-01-10  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/field.cc:
	Field::sql(): Also escape ; characters, because
	libgda seems to cause postgres to be confused by these.
	And allocate a big enough string for PQescapeString(), to
	avoid crashes. Now bug #323266 seems to really be fixed.
	* glom/utils.cc:
	* glom/utils.h: Added inefficient string_replace() for use
	by Field::sql().

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

	* docs/user-guide/C/glom.xml: Add IDs for
	sections, to make sub-menu links work.
	Patch from Jorge Gonzalez in bug #313107.

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

	* glom/data_structure/field.cc: Field::sql():
	Use a copy of the PQescapeString() function from
	Posrgres, instead of gda_value_stringify() to really
	escape text for SQL. This should fix bug #323266
	(crash when typing quote) from Nicolas Chevreux.

2005-12-20  Murray Cumming  <murrayc@murrayc.com>

	* po/POTFILES.in: Added glom/connectionpool.cc.

2005-09-04  Josep Puigdemont  <josep.puigdemont@gmail.com>

	* configure.in: Added 'ca' to ALL_LINGUAS.

2005-08-24  Pawan Chitrakar  <pchitrakar@gmail.com>

	* configure.in: Added ne in ALL_LINGUAS

2005-08-17  Murray Cumming <murrayc@murrayc.com>

	* docs/user-guide/Makefile.am: Removed new es SUBDIR because it
	does not have a Makefile.am and that breaks the build. This
	might need changing to the new gnome-doc-utils system anyway.

2005-08-16  Murray Cumming  <murrayc@murrayc.com>

	* po/POTFILES.in: Added glomconversions.cc, because it now
	contains translatable strings.

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

	* glom/base_db.cc:
	* glom/base_db.h: connect(): Reimplement with
	get_and_connect().
	handle_error(): Reimplement with
	ConnectionPool::handle_error().
	* glom/connectionpool.cc:
	* glom/connectionpool.h: Added get_and_connect().
	Added handle_error().
	* glom/frame_glom.cc: Frame_Glom::create_database():
	Do not show the error dialog here because it is already shown
	by the calling function in application.cc.
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/python_embed/python_module/py_glom_relatedrecord.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	Call handle_error() to show a dialog when there is a
	database error.

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

	* docs/postgres_gda_test.c: (main): call get_errors()
	when database creation fails, so we know why.

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

	* docs/postgres_gda_test.c: (main): Try to create a
	database, because that seems to fail sometimes, possibly
	depending on the type of authentication used, and possibly
	not failing in the psql command-line tool.

2005-07-30  Daniel Holbach <dh@mailempfang.de>

	* glom/main.cc: Changed the gnome_program_init() call again.
	Apparently it was crashing on AMD64, though we do not know
	why.

0.9.0:

2005-07-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/frame_glom.cc: show_table_title():
	Use pango markup to show a big title.
	* glom/utility_widgets/imageglom.cc:
	on_menupopup_activate_select_file(): Give the filter a name.

2005-07-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: Added show_warning_no_records_found(),
	using the code from Frame_Glom::on_notebook_find_criteria(),
	so it can be reused.
	* glom/frame_glom.cc:
	* glom/mode_data/box_data.cc: on_Button_Find(): Warn the user
	if they have not entered any criteria.
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/box_data_details_find.h: Override
	on_flowtable_field_edited(), to stop it adding new records during
	finds.
	* glom/utility_widgets/dialog_choose_id.cc: on_box_find_criteria():
	show a warning if no records were found.

2005-07-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc: on_flowtable_field_edited():
	Really add a new record when entering data on a blank record.

2005-07-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h: Added
	confirm_delete_record() based on the code
	in box_data_list.cc
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h: on_button_del():
	Use confirm_delete_record(), already used in list view.
	fill_from_database(): When no primary key value is
	specified, fill the fields with empty values, instead
	of preserving whatever was there last time.
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h: Use
	confirm_delete_record() in the base class instead of
	the existing code.

2005-07-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/fieldformatting.h:
	Removed unimplemented get_editable_and_allowed() function.
	* glom/mode_data/dialog_layout_details.cc: on_button_field_formatting():
	get/set the editableness from the specific column, not from the formatting
	column, so we actually save the change.

2005-07-29  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Added
	get/set_layout_current() and
	get/set_layout_record_viewed() for remembering
	(not saving in the document) information about
	the last-viewed records and layouts.
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h: Added get_layout_name().
	* glom/mode_data/box_data_details.cc: fill_from_database():
	Remember the record.
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h: Override on_switch_page_handler()
	so we can remember the last-viewed layout.
	init_db_details(): Open the last-viewed record and switch to the
	last-viewed layout.
	* glom/notebook_glom.h: Make on_switch_page_handler() virtual.

2005-07-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h: Added
	get_primary_key_value_first()
	* glom/mode_data/notebook_data.cc: init_db_details(): Show the first
	record from the list in the detauls.
	* glom/notebook_glom.cc: on_switch_page_handler():
	Do not call load_from_document() on the child page. It is
	superfluous.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	get_key_value(): Retrieve the data from the database
	if necessary. Previously we always called get_value()
	first.

2005-07-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/field.cc:
	* glom/data_structure/field.h: Added sql_find(), like sql(),
	but with wildcards.
	* glom/glom.glade: Added a dialog for finding an ID.
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/dialog_choose_id.cc:
	* glom/utility_widgets/dialog_choose_id.h: Added dialog.
	* glom/mode_data/box_data.cc: get_find_where_clause():
	Use sql_find() to do a substring search.
	* po/POTFILES.in: Added the new .cc file.
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h: Added set_read_only()
	to prevent editing when the list is only for selection.
	Added set_open_button_title() which delegates to the DbAddDel.
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/box_data_details_find.h:
	* glom/mode_find/notebook_find.cc: Override init_db_details(),
	without a primary key parameter.
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h: Added
	offer_related_record_id_find() and a Find button next to
	fields used in relationships. This opens a secondary dialog
	with the Find UI.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	Added set_open_button_title() so we can use Select instead
	of Open in the Find ID dialog.
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.cc:
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.h:
	Override set_allow_view_details() to show/hide the open
	button.

0.8.37:

2005-07-26  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc: fill_layout_field_details():
	Handle portals, so we do not lose field information for portals
	when editing the whole layout.
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/dialog_layout_details.cc:
	Dialog_Layout_Details::fill_group(): Handle portals.
	* glom/utility_widgets/flowtablewithfields.cc:

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

	* configure.in: Depend on latest libgdamm.
	* glom/utility_widgets/imageglom.cc:
	* glom/data_structure/field.cc: Change for latest libgdamm
	API change.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Remove unused
	set_relationship_data_layout_groups().
	* glom/mode_data/box_data_details.cc: on_flowtable_layout_changed():
	Actually save the new layout in the document. For instance, really
	save portal layout changes.

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

	* glom/utility_widgets/db_adddel/cellrenderer_button.cc:
	* glom/utility_widgets/db_adddel/cellrenderer_button.h:
	signal_clicked(): Add path parameter, so we know what row
	was clicked.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	Open the clicked row, not just the selected row.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h: Add an Open
	button next to foreign keys, when a unique non-hidden record is
	indicated.

2005-07-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h: Added virtual
	enable_buttons(), and moved some code there to stop the
	base class from making the Open button visible again for
	hidden-table related records.
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.cc:
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.h:
	Added a show_all_vfunc() implementation in case a
	show_all() would show the hidden buttons.

2005-07-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/cellrenderer_button.cc:
	Constructor: Use the OPEN stock item instead of EDIT for
	viewing details. Set mode to activatable so it actually
	responds to clicks.

2005-07-22  Murray Cumming  <set EMAIL_ADDRESS environment variable>

	* glom/mode_data/box_data_list.cc: Call
	DbAddDel::set_allow_view_details() so we get the open button
	and the row open button.
	* glom/mode_data/box_data_list_related.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h: Change
	*use_row_button to *allow_view_details.
	on_button_press_event_Popup(): Do not handle double-click on
	the row to open the details, because it is too easy to
	double-click when single-clicking to edit a cell.
	* glom/utility_widgets/db_adddel/db_adddel_withbuttons.cc:
	setup_buttons(): Just hide the buttons when necessary,
	instead of adding and removing them.

2005-07-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Added get_table_is_hidden().
	* glom/frame_glom.cc:
	* glom/frame_glom.h: Handle signal_record_details_requested on the
	Notebook_Data, to show a specific record in another table.
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h: Added
	signal_requested_related_details, emitted when a FlowTable emits
	its own signal_requested_related_details.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h: Added
	set_use_row_button().
	* glom/mode_data/box_data_list_related.cc: init_db_details():
	If the related table is not hidden, then add a button on each
	row, to navigate to the related record.
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h: Catch the signal from
	Box_Data_Details, and emit
	signal_details_requested signal_record_details_requested.
	Added show_details(), so the parent Frame can specify a
	record.
	* glom/utility_widgets/db_adddel/Makefile.am:
	* glom/utility_widgets/db_adddel/cellrenderer_button.cc:
	* glom/utility_widgets/db_adddel/cellrenderer_button.h: New
	derived CellRenderer, which is just an icon at the moment.
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h: Added
	signal_requested_related_details.

0.8.36:

2005-07-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/fieldformatting.cc:
	* glom/data_structure/layout/fieldformatting.h:
	Added change_field_name() and change_relationship_name(),
	to update choices when these change.
	* glom/data_structure/layout/layoutgroup.cc:
	Update field formatting too.
	* glom/document/document_glom.cc:
	change_relationship_name(), change_field_name():
	Update all the default formatting too.
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	on_adddel_user_requested_add(): Do not try to add
	related records to portals that have no columns,
	avoiding a database error.

2005-07-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutgroup.h:
	* glom/data_structure/layout/layoutitem_portal.cc:
	* glom/data_structure/layout/layoutitem_portal.h:
	Inherit from LayoutGroup instead of LayoutItem, so we
	can store the related records layout inside it, instead
	of in a separate hacked-up layout node in the document.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	Save LayoutItem_Portal layout groups.
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_data/dialog_layout_list_related.h:
	* glom/mode_data/treestore_layout.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	Pass the whole LayoutItem_Portal around instead of just
	the relationship name, and don't try to store the
	portal layout separately in the document.

2005-07-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutgroup.h: Added
	change_relationship_name() to update the layout
	when a relationship is renamed.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Added
	change_relationship_name().
	* glom/mode_design/box_db_table_relationships.cc:
	save_to_document(): Detect a rename and call
	Document_Glom::change_relationship_name() so it does not
	break the layout.

2005-07-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutgroup.h: Added
	change_related_field_item_name(). change_field_item_name():
	Process child groups and self-related fields.
	* glom/document/document_glom.cc: change_field_name():
	Process all tables, to change related fields in layouts and
	reports.

2005-07-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/dialog_choose_field.cc: Constructor:
	The list is now sorted alphabetically.
	* glom/utils.cc: build_sql_select_with_where_clause():
	Prefix aliases with relationship_ to avoid conflicts with table
	names.

2005-07-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc: Base_DB::set_database_preferences(): Save
	the title into the document as well as the database, for the
	window title, and for database recreation.

2005-07-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/relationship.cc:
	* glom/data_structure/relationship.h: Added get/set_allow_edit()
	* glom/data_structure/layout/layoutitem_field.cc:
	get_editable_and_allowed(): Also check the relationship, if any.
	* glom/document/document_glom.cc: Load/Save the allow_edit of
	the relationship.
	* glom/mode_design/box_db_table_relationships.cc:
	* glom/mode_design/box_db_table_relationships.h: Add a column
	for allow_edit, so relationships can prevent editing of
	related fields.

2005-07-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc: fill_layout_field_details():
	Get field details from the appropriate table, even if it is a
	related field. This stops us losing related fields on layouts.

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

	* glom/utils.cc: build_sql_select(): Use AS to create an
	alias name for the related table, so we can use two
	relationships to the same table.

0.8.35:

2005-07-18  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc: set_field_value_in_database():
	Use the related table name if it is a related table.
	add_related_record_for_field(): Added some warnings.
	* glom/mode_data/box_data_details.cc:
	get_primary_key_value_selected(): Actually return the field,
	instead of a null field.
	get_field_primary_key(): Return true instead of false, to
	indicate success. This fixes automatic related-field setting.
	* glom/utility_widgets/imageglom.cc:

2005-07-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/box_db_table_relationships.cc:
	* glom/mode_design/box_db_table_relationships.h: Add a suitable
	capitalized title when adding a relationship name.

2005-07-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc:
	get_data_layout_groups_plus_new_fields(): Create a more useful
	default details layout, with overview and details sections.
	* glom/utility_widgets/flowtable.cc:
	get_minimum_column_height(): Change a < to <= so we check
	all widgets, so that multi-column FlowTables work when they
	have only one item.

2005-07-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutgroup.h: add_item():
	Return a pointer to the added item.
	* glom/navigation/box_tables.cc: on_adddel_Add(): Add
	a description and comments field as well as an ID field
	when creating new tables.

2005-07-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/treestore_layout.cc: Prevent items from being
	dragged directly under themselves, preventing a crash.

2005-07-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc: get_suitable_width()
	* glom/utility_widgets/datawidget.cc: constructor:
	Give images the same width as text fields, with an equal height,
	so they line up more, though this might be too big.

2005-07-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/imageglom.cc: Do not crash when reading bad
	image data from the database.

0.8.34:

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

	* examples/example_smallbusiness.cc: Contacts table: Made the ID
	autoincrement again and added choice for Title. This got lost
	somehow. Changed database name again to avoid clash with already-
	created examples.
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/imageglom.h: Added a Clear context menu item.

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

	* glom/base_db.cc: Comment out the debug query output on
	stdout, because it slows us down when we use lots of image data.
	* glom/data_structure/glomconversions.cc: Tried to use
	PQescapeBytea() instead of my custom (slow) encoding code, without
	success, so left that code commented-out.
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/imageglom.h: Implemented copy/paste.

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

	* glom/mode_data/box_data_details.cc:on_flowtable_field_edited():
	Special case to avoid calling set_value() with a _correct_
	GdaValue, because we expect the current broken binary GdaValue.
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/imageglom.h: Images show up again after
	loading, and after retrieval from database. Nifty.

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

	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/imageglom.h: Put the Gtk::Image in a
	Gtk::Frame so we can see it when it is empty. Added a context
	menu for user mode, and restricted the file chooser to pixbuf
	types.

2005-07-14  Murray Cumming  <murrayc.com>

	* glom/data_structure/field.cc: sql(): Handle TYPE_IMAGE
	fields.
	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h: Add
	get_escaped_binary_data() and parse_escaped_binary_data(),
	using a a copy of the PQunescapeBytea() function from
	Postgres, because gda_value_get_binary() does not unescape
	the data yet.
	* glom/utility_widgets/datawidget.cc: Connect to the
	LayoutWidgetField signals for the ImageGlom widget.
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/imageglom.h: set_value():
	Use our copy of PQunescapeBytea().
	* glom/utility_widgets/layoutwidgetfield.cc:
	* glom/utility_widgets/layoutwidgetfield.h: Added
	get_has_original_data() for later optimisation.

2005-07-12  Murray Cumming  <murrayc@murryac.com>

	* glom/data_structure/field.h: Document the IMAGE type
	as always being stored as PNG.
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/imageglom.h: Implement set_value(),
	though I'm still not sure how to get/set it in SQL.

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

	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/imageglom.h: Scale images down to fit the
	allocated size of the Image widget.

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

	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/imageglom.cc:
	* glom/utility_widgets/imageglom.h: Use a derived Image widget
	so we can catch button_press_events on it.

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

	* glom/data_structure/field.cc:
	* glom/data_structure/field.h:
	- Added map of possible field conversions, and
	get_conversion_possible().
	- Added TYPE_IMAGE, which maps to "bytea" in SQL and
	Gnome::Gda::Value::TYPE_BINARY.
	* glom/mode_design/fields/box_db_table_definition.cc:
	Don't cast the data if it is not possible.
	* glom/utility_widgets/datawidget.cc: Constructor: Create a
	Gtk::Image widget for image fields.

2005-07-11  Daniel Holbach <dh@mailempfang.de>

	* glom/main.cc: Pass G_PARAM_NONE to gnome_program_init() to
	avoid a crash at startup.

0.8.33:

2005-07-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/dialog_layout_details.cc: on_cell_data_name():
	Allow group names to be changed.

2005-07-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h: get_table_names(): Added optional bool
	ignore_system_tables parameter
	* glom/mode_design/box_db_table_relationships.cc:
	fill_from_database(): Hide the system tables.

2005-07-09  Murray Cumming  <set EMAIL_ADDRESS environment variable>

	* configure.in: Depend on gnome-vfsmm 2.11, instead of just
	the version that bakery needs, because we need
	Uri::make_from_shell_arg().
	* glom/navigation/box_tables.cc: load_from_document(): Really
	hide the glom_system_* tables.

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

	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: Added get_first_table().
	* glom/frame_glom.cc: on_dialog_tables_hide(): If the current
	table was deleted, show the default or first table.

0.8.32:

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

	* glom/data_structure/glomconversions.cc: Really use GDate
	to parse dates that the C++ facet can not parse.

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

	* glom/main.cc: Allow the filename to be specified
	even without a --file option name. And convert
	the filename to a URI so it actually works.

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

	* glom/document/document_glom.cc: remove_table():
	Prevent infinite loop.

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

	* glom/application.h: Made fill_tables_menu() public.
	* glom/frame_glom.cc:
	* glom/frame_glom.h: When the tables dialog is hidden,
	in developer mode, update the tables menu, in case the
	list has changed.

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

	* docs/Makefile.am:
	* docs/postgres_gda_test.c: Added a libgda test
	to test whether the installed libgda works.

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

	* glom/applications.cc:
	App_Glom::on_document_load(): Add a Save As button
	to the dialog that warns when an example is
	read only.

0.8.31:

2005-06-16  Murray Cumming <murrayc@murrayc.com>

	* examples/Makefile.am:
	Install the examples in <prefix>/share/glom/doc/,
	which I guess is correct.
	* glom/Makefile.am:
	* glom/application.cc: offer_new_or_existing():
	* glom/glom.glade:
	Add an Open Examples button that goes straight to
	the installed examples.
	* configure.in: Depend on bakery 2.3.14, to get
	changed API for this.

2005-05-25  Murray Cumming <murrayc@murrayc.com>

	* glom/utility_widgets/flowtable.cc: Commented out
	a g_warning that was causing a compiler warning.

0.8.30:

2005-05-25  Murray Cumming <murrayc@murrayc.com>

	* glom/layout_item_dialogs/box_formatting.cc:
	* glom/layout_item_dialogs/dialog_field_layout.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	Make Box_Formatting a sub-view so it has access
	to the document, so we can use choices from
	related tables again.

0.8.29:

2005-05-18  Murray Cumming <murrayc@murrayc.com>

	* glom/document/document_glom.cc:
        set_node_attribute_value_as_bool/as_decimal():
	Save lots of space by writing/interpreting
	non-existant attributes as false or zero.

2005-05-18  Murray Cumming <murrayc@murrayc.com>

	* glom/dialog_layout_report.cc: constructor:
	Position the available parts hierarchically, to
	indicate their expected relationship.

2005-05-18  Murray Cumming <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom: Add default
	field formatting, instead of custom formatting.
	* glom/base_db.cc:
	* glom/data_structure/field.cc:
	* glom/data_structure/field.h: Added default_formatting.
	* glom/data_structure/layout/Makefile.am:
	* glom/data_structure/layout/fieldformatting.cc:
	* glom/data_structure/layout/fieldformatting.h:
	Added FieldFormatting to hold numeric formatting,
	text formatting, and the various choices.
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Replace individual formatting members with a
	FieldFormatting, and added boolean to specify
	use of the default.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	Save/load the formatting as a whole node, and save
	Field default formatting.
	* glom/glom.glade: Move field formatting into a
	VBox that can be used in both the field definition
	dialog and the field layout dialog for custom
	formatting.
	* glom/layout_item_dialogs/Makefile.am:
	* glom/layout_item_dialogs/box_formatting.cc:
	* glom/layout_item_dialogs/box_formatting.h:
	Added derived VBox for the formatting.
	* glom/layout_item_dialogs/dialog_field_layout.cc:
	* glom/layout_item_dialogs/dialog_field_layout.h:
	Use Box_Formatting instead of the individual
	formatting widgets.
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	Use the appropriate formatting, using custom formatting
	if specified.
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/fields/dialog_fielddefinition.h:
	Moved Extras tab into the main tab. Added Default
	Formatting tab.
	* glom/utility_widgets/comboentryglom.cc:
	* glom/utility_widgets/comboglom.cc:
	* glom/utility_widgets/comboglomchoicesbase.cc:
	* glom/utility_widgets/comboglomchoicesbase.h:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/entryglom.cc:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/textviewglom.cc:
	* glom/utils.cc:
	Use the default formatting, if specified.

0.8.28:

2005-05-16  Murray Cumming <murrayc@murrayc.com>

	* xslt/print_report_to_html.xsl:
	* glom/base_db.cc: build_report(): Left align most fields and
        right-align numeric fields, though this is a bit of a hack.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h: load_after_layout_group():
	Corrected loading of groupby secondary fields.
        update_cached_relationships(): Do not save the document while
	doing this.

2005-05-16  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/box_db_table.cc:
	* glom/layout_item_dialogs/dialog_group_by.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	Do not call fill_from_database() if the connection is not
	ready, to prevent misleading g_warnings.

2005-05-15  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/data_structure/layout/report_parts/layoutitem_groupby.cc:
	* glom/data_structure/layout/report_parts/layoutitem_groupby.h:
	* glom/document/document_glom.cc:
	* glom/glom.glade:
	* glom/layout_item_dialogs/Makefile.am:
	* glom/layout_item_dialogs/dialog_group_by.cc:
	* glom/layout_item_dialogs/dialog_group_by.h:
	* glom/layout_item_dialogs/dialog_groupby_secondaryfields.cc:
	* glom/layout_item_dialogs/dialog_groupby_secondaryfields.h:
	* glom/mode_data/dialog_layout.cc:
	* glom/utility_widgets/comboglomchoicesbase.cc:
	* xslt/print_report_to_html.xsl:
	Added secondary_fields to the GroupBy report part, so we can show,
	for instance, a contact name as well as the contact id that we
        group by.

2005-05-15  Murray Cumming <murrayc@murrayc.com>

	* po/POTFILES.in: Mention new files.

2005-05-15  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc: build_report_fields(): For numeric fields
	create a <field_numeric> instead of <field> node.
	* xslt/print_report_to_html.xsl: Handle <field_numeric>, like
	<field>, but with align=right in the HTML <td>. Hopefully there is
	a better way to do this.

2005-05-15  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	report_build_summary(): Implemented, so summary parts show up in
	reports.
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Added get_title_or_name(), delegating to the member Field.
	* glom/data_structure/layout/report_parts/layoutitem_fieldsummary.cc:
	* glom/data_structure/layout/report_parts/layoutitem_fieldsummary.h:
	Override get_title_or_name() to mention the summary type. Added
	get_layout_display_name_field() to get just the field part. Corrected
	the copy constructor and operator== to use the summary type too.
	* glom/dialog_layout_report.cc:
	Show the field name and summary type properly.
	* glom/document/document_glom.cc:
	Save the summary type of LayoutItem_FieldSummary parts.
	* glom/layout_item_dialogs/dialog_field_summary.cc:
	* glom/utils.cc: build_sql_select_with_where_clause(): If the LayoutItem_Field
	is actually a LayoutItem_FieldSummary, use a summary function instead of just
	getting the field value.
	* xslt/print_report_to_html.xsl: Added a block for the summary part.

2005-05-14  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/data_structure/field.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/dialog_layout.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	* glom/utils.cc:
	* glom/utils.h:
	type_vecLayoutItems now stores sharedptr<LayoutItem_Field>s
	instead of by-value copying. This allows us to use the
        LayoutItem_Field polymorphically as well as improving
        performance.

2005-05-14  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	Moved report_build_* methods from Frame_Glom to
	Base_DB, so they can be used in Box_Data_List.
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	Overrode print_layout() and created a non-grouping
	report on the fly, to implement File/Print for Lists.
	* xslt/print_report_to_html.xsl:
	Handle ungrouped_fields, a bit like group_by.

2005-05-14  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/layout/report_parts/Makefile.am:
	* glom/data_structure/layout/report_parts/layoutitem_fieldsummary.c
	c:
	* glom/data_structure/layout/report_parts/layoutitem_fieldsummary.h
	: Add a LayoutPart for the field summary report parts.
	* glom/dialog_layout_report.cc:
	* glom/dialog_layout_report.h:
	Disable the Add button when inappropriate parts are selected.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	Save/Load the Summary parts.
	* glom/glom.glade:
	* glom/layout_item_dialogs/Makefile.am:
	* glom/layout_item_dialogs/combo_summarytype.cc:
	* glom/layout_item_dialogs/combo_summarytype.h:
	* glom/layout_item_dialogs/dialog_field_summary.cc:
	* glom/layout_item_dialogs/dialog_field_summary.h:
	Added UI fo rthe summary parts.
	* po/POTFILES.in: Mention the new files.

2005-05-11  Murray Cumming <murrayc@murrayc.com>

	* glom/glom.glade:
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/textviewglom.cc:
	Use SHADOW_IN for ScrolledWindows. The HIG
	wants that.

0.8.27:

2005-05-11  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/layout/report_parts/Makefile.am:
	Fixed a distcheck problem.
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	on_menu_report_selected(): Add field headings, and
	recurse into sub-groupbys.
	* po/POTFILES.in: Updated.
	* xslt/print_report_to_html.xsl: Added class names for
	the various parts, and added a little inline css to
	use them. Used select with apply-templates to put
	sub-groupbys in the right place.

2005-05-11  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/base_db.cc:
	* glom/base_db.h:
	Moved get_layout_item_table_name() here from
	box_data. Added fill_full_field_details().
	* glom/document/document_glom.cc:
	update_cached_relationships(): Fill in the
	relationships in the report layouts too.
        Also call this at the start of save_before(),
	to ensure that relationships are always up to
	date.
	* glom/frame_glom.cc: on_menu_report_selected():
	Do a GROUP BY sql SELECT and then a WHERE sql
	SELECT for each value, creating nodes for each
	value.
	* xslt/print_report_to_html.xsl: Show field
	headings, and group-by details.

2005-05-11  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutgroup.cc:
	* glom/dialog_layout_report.cc:
	* glom/dialog_layout_report.h:
	* glom/document/document_glom.cc:
	* glom/frame_glom.cc:
	* glom/mode_data/dialog_layout.h:
	Fix various problems with loading/saving
	report parts.

2005-05-10  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	Added offer_field_list(), moved from B
	* glom/data_structure/layout/report_parts/layoutitem_groupby.cc:
	* glom/data_structure/layout/report_parts/layoutitem_groupby.h:
	Added set_field_group_by() and set_field_sort_by().
	* glom/dialog_layout_report.cc:
	* glom/dialog_layout_report.h:
	on_button_edit(): show Dialog_GroupBy to change properties.
	* glom/document/document_glom.cc:
	load_after_layout_group(), save_before_layout_group(): Handle
	the GroupBy part so we really save the report items.
	* glom/glom.glade:
	* glom/layout_item_dialogs/Makefile.am:
	* glom/layout_item_dialogs/dialog_group_by.cc:
	* glom/layout_item_dialogs/dialog_group_by.h:
	Added dialog for GroupBy part properties.

2005-05-10  Murray Cumming <murrayc@murrayc.com>

	* Makefile.am:
	* configure.in:
	* glom/Makefile.am:
	* glom/dialog_layout_report.cc:
	* glom/layout_item_dialogs/Makefile.am:
	* glom/layout_item_dialogs/dialog_field_layout.cc:
	* glom/layout_item_dialogs/dialog_field_layout.h:
	* glom/mode_data/Makefile.am:
	* glom/mode_data/dialog_field_layout.cc:
	* glom/mode_data/dialog_field_layout.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/utility_widgets/datawidget.cc:
	Moved dialog_field_layout.[h|cc] from mode_data/
	to the new layout_item_dialogs/ directory.

2005-05-10  Murray Cumming,,,  <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h:
	* glom/utils.cc:
	* glom/utils.h: Added utils.[h|cc] with some functions from
	GlomConversions:: and some from xsl stuff from Box_Data.
	* glom/data_structure/layout/report_parts/layoutitem_groupby.cc:
	* glom/data_structure/layout/report_parts/layoutitem_groupby.h:
	Add sort_by field.
	* glom/frame_glom.cc: on_menu_report_selected():
	Beginnings of report generation.
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	Use functions from GlomUtils::.
	* xslt/Makefile.am:
	* xslt/print_report_to_html.xsl:
	Added xsl transformation for reports.

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

	* glom/application.cc:
	* glom/application.h:
	fill_menu_tables(), fill_menu_reports(): Use UIManager::remove_ui()
 	to remove the previous tables, so we really lose removed/renamed
	report names.
	* glom/box_reports.cc:
	Handle, and save, title changes.
	* glom/data_structure/layout/report_parts/layoutitem_groupby.cc:
	* glom/data_structure/layout/report_parts/layoutitem_groupby.h:
	* glom/data_structure/layout/report_parts/layoutitem_summary.cc:
	* glom/data_structure/layout/report_parts/layoutitem_summary.h:
	Add get_layout_part_name() overrides so they show up in the
	list of available parts.
	* glom/dialog_layout_report.cc:
	* glom/dialog_layout_report.h:
	Added get_report() and get_original_name().
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	Added signal_hide handlers for the report list and report layout
	dialogs, to rebuild the report menu and save the report details.

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

	* glom/application.cc:
	* glom/box_reports.cc:
	Set changes in the document.
	* glom/data_structure/report.cc:
	* glom/data_structure/report.h:
	Added get_title_or_name().
	* glom/data_structure/tableinfo.cc:
	* glom/data_structure/tableinfo.h:
	Added get_title_or_name().
	* glom/frame_glom.cc: fill_menu_tables(),
 	fill_menu_reports():
	Show the name if the title is empty.
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/adddel/adddel.h:
	Added remove_item_by_key().

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

	* glom/application.cc:
	* glom/application.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h: Added Reports menu,
	like the new Tables menu.

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

	* glom/application.cc:
	* glom/application.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	Changed the Navigation menu to a Tables menu,
	with dynamic menu items for each non-hidden
	table. The full tables dialog is now only for
	developers, available from the Edit Tables
	menu item.

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

	* configure.in:
	* glom/Makefile.am:
	* glom/glom.glade:
	* glom/box_reports.cc:
	* glom/box_reports.h:
	* glom/dialog_layout_report.cc:
	* glom/dialog_layout_report.h:
	Beginnings of UI to add/remove reports, and to edit them.
	* glom/data_structure/Makefile.am:
	* glom/data_structure/layout/Makefile.am:
	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/report_parts/Makefile.am:
	* glom/data_structure/layout/report_parts/layoutitem_groupby.cc:
	* glom/data_structure/layout/report_parts/layoutitem_groupby.h:
	* glom/data_structure/layout/report_parts/layoutitem_summary.cc:
	* glom/data_structure/layout/report_parts/layoutitem_summary.h:
	* glom/data_structure/report.cc:
	* glom/data_structure/report.h:
	Beginnings of data structure for reports and their parts.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	API to get/set reports, and load/save them.
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	Use the new UI bits for reports.

2005-05-06  Murray Cumming <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/application.cc:
	* glom/data_structure/layout/layoutgroup.cc:
	* glom/data_structure/layout/layoutgroup.h:
	* glom/data_structure/layout/layoutitem.h:
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	* glom/data_structure/layout/layoutitem_portal.cc:
	* glom/data_structure/layout/layoutitem_portal.h:
	* glom/dialog_layout_report.cc:
	* glom/dialog_layout_report.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/glom.glade:
	* glom/main.cc:
	* glom/mode_data/dialog_layout.cc:
	* glom/mode_data/dialog_layout.h:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* po/POTFILES.in:
	Added a Developer/Reports menu item, with non-working
	beginnings of a simple layout dialog, with available
	parts on the left, and chosen parts on the right.

2005-05-04  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc: get_table_privileges(): Really give full
	rights to members of the developer group, whatever rights
	that group has saved.

2005-05-04  Murray Cumming <murrayc@murrayc.com>

	* glom/frame_glom.cc: Show the organisation name as well as
	the system name.
	* glom/navigation/box_tables.cc: Check for glom_system_*
 	tables and do not show them.

2005-05-04  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	Pass the where_clause when calling refresh_from_database()
	on the model.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	refresh_from_database(): Take where_clause parameter as
	well as in the constructor. clear() existing records before
	getting them again.

2005-05-04  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc: get_next_autoincrement_value():
	Really increment the value.

2005-05-04  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	Added auto_increment_insert_first_if_necessary()
	by moving some code from get_auto_increment_next_value().
	* glom/dialog_database_preferences.cc:
	* glom/dialog_database_preferences.h:
	load_from_document(): Iterate over all fields and
	call auto_increment_insert_first_if_necessary() for all
	primary keys, so they all show up in the dialog.

2005-05-04  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc: get_table_privileges():
	Reverted a search/replace that broke parsing of
	user rights.

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

	* glom/base_db.cc:
	* glom/base_db.h: Added
        get_next_auto_increment_value()
 	add_standard_table(): add the
	glom_system_autoincrements table.
	* glom/dialog_database_preferences.cc:
	* glom/dialog_database_preferences.h:
	Read and write to the autoincrement table.
	* glom/mode_data/box_data.cc:
	* glom/standard_table_prefs_fields.h:
	Added structure for glom_system_autoincrements
	table.

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

	* glom/application.cc:
	* glom/application.h:
	* glom/base_db.cc:
	* glom/box_db.cc:
	* glom/box_db.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/glom.glade:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/box_data_list_find.cc:
	* glom/notebook_glom.cc:
	* glom/notebook_glom.h:
	Move Mode label to the bottom of the window.
	Show the system name at the top, from the
	database preferences. Remove crufty hints
	stuff.

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

	* glom/Makefile.am:
	* glom/dialog_database_preferences.cc:
	* glom/dialog_database_preferences.h:
	* glom/glom.glade:
	Added dialog to show system-wide details
	and next auto-increment values.
	* glom/data_structure/Makefile.am:
	* glom/data_structure/system_prefs.cc:
	* glom/data_structure/system_prefs.h:
	New class to hold system-wide preferences.
	* glom/standard_table_prefs_fields.h:
 	Added list of #defines for the standard
	table database structure.
	* glom/application.cc: recreate_database():
	Call new add_standard_tables() method to
	hold system-wide preferences.
	* glom/base_db.cc:
	* glom/base_db.h:
	Move some of recreate_database() into
	create_table() and reused it in new
	add_standard_tables() method.
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	Add Developer/Database Preferences menu
	item and handle it.

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

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	Use ScrolledWindow::set_policy(POLICY_AUTOMATIC) so
	we do not get useless scrollbars.

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

	* glom/mode_find/box_data_list_find.cc:
	* glom/mode_find/box_data_list_find.h:
	Override some signal handlers from the base class, to
	prevent adding new rows to the database.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	get_value_vfunc(): Check the count of columns, not the
	count of columns in the data model, so we can show
	an empty placeholder row without database data, for
	instance in Find mode.

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

	* glom/application.cc:
	* glom/application.h:
	Added set_mode_find().
	* glom/frame_glom.cc:
	on_notebook_find_criteria(): Show a dialog
	when no records were found, and offer to
	return to find mode. Show the mode in the
	Mode menu when programatically changing mode.

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

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/box_db_table.cc:
	* glom/box_db_table.h:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/main.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h:
	* glom/mode_design/box_db_table_relationships.cc:
	* glom/mode_design/box_db_table_relationships.h:
	* glom/mode_design/dialog_design.cc:
	* glom/mode_design/dialog_design.h:
	* glom/mode_design/dialog_fields.cc:
	* glom/mode_design/dialog_fields.h:
	* glom/mode_design/dialog_relationships.cc:
	* glom/mode_design/dialog_relationships.h:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/box_db_table_definition.h:
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/box_data_details_find.h:
	* glom/mode_find/box_data_list_find.cc:
	* glom/mode_find/box_data_list_find.h:
	* glom/mode_find/notebook_find.cc:
	* glom/mode_find/notebook_find.h:
	* glom/navigation/box_tables.cc:
	* glom/navigation/box_tables.h:
	init_from_database(), fill_from_database(), and
	refresh_from_database() now return a bool. This should
	let us detect empty results from finds.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	Add AddDel::refresh_from_database(), and
	DbTreeModel::refresh_from_database() so we can build
	the structure separately and refill it repeatedly with
	data.

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

	* glom/data_structure/field.cc:
	* glom/data_structure/field.h: Added
	sql_find_operator()
	* glom/mode_data/box_data.cc: Use it instead
	of LIKE.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	Fix crash due to use of old key column.

0.8.25:

2005-04-29  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/field.cc:
	* glom/data_structure/field.h:
	Added get_has_calculation() for performance.
	* glom/mode_data/Makefile.am:
	* glom/mode_data/calcinprogress.cc:
	* glom/mode_data/calcinprogress.h:
 	Added data structure for fields being calculated.
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	- Added m_FieldsCalculationInProgress, so we can
	maintain the state of all ongoing calculations
	when calculating fields.
	- Added calculate_field() which calculates and
	sets a calculated field and any calculated fields
	that it needs. Whenc called recursively, it
	is aware of existing calculations in
	m_FieldsCalculationInProgress.
	- do_calculations(),
	* glom/mode_data/box_data_details.cc:
 	- recalculate_fields_for_related_records():
	Use calculate_field() to simplify the code.

2005-04-26  Murray Cumming <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	construct_columns(): Right-align numeric fields.

2005-04-26  Murray Cumming <murrayc@murrayc.com>

	* glom/utility_widgets/comboentryglom.cc:
	* glom/utility_widgets/comboentryglom.h:
	* glom/utility_widgets/entryglom.cc:
	* glom/utility_widgets/entryglom.h:
	Right-align number fields.
	* glom/utility_widgets/layoutwidgetbase.h:
	Make set_layout_item() virtual so we can
	change parts of the derived widget according to
	the layout details.

2005-04-26  Murray Cumming <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom: Make comments
	multiline formatted on Details views.
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Added get/set_text_format_multiline().
	* glom/document/document_glom.cc:
	load_after(), save_before(): load/save the multiline
	text formatting bool.
	* glom/mode_data/dialog_field_layout.cc:
	load/save the multiline checkbox setting.
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/textviewglom.cc:
	* glom/utility_widgets/textviewglom.h:
	Added TextViewGlom which is a TextView in a
	ScrolledWindow. Use it for multiline text.
	* glom/utility_widgets/flowtable.cc:
	Expand the second item to take the remaining
	columns width, like single items already do,
	where specified.

2005-04-26  Murray Cumming <murrayc@murrayc.com>

	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/comboentryglom.h:
	* glom/utility_widgets/comboglomchoicesbase.cc:
	* glom/utility_widgets/comboglomchoicesbase.h:
	* glom/utility_widgets/entryglom.cc:
	* glom/utility_widgets/entryglom.h:
	* glom/utility_widgets/layoutwidgetfield.cc:
	* glom/utility_widgets/layoutwidgetfield.h:
	Move get/set_value() and signal_edited() into
	a new LayoutWidgetField base class.
	* glom/utility_widgets/datawidget.cc: Use
	LayoutWidgetField instances polymorphically via
	the base class, simplifying the code.

2005-04-25  Murray Cumming <murrayc@murrayc.com>

	* glom/document/document_glom.cc: Use #defines
	for XML node and attribute names, to avoid
	errors when repeating them.

0.8.24:

2005-04-23  Murray Cumming <murrayc@murrayc.com>

	* glom/main.cc:
	Remove debug code that hardcoded one filepath.
	* glom/utility_widgets/cellrendererlist.cc:
	* glom/utility_widgets/comboentryglom.cc:
	* glom/utility_widgets/comboglom.cc:
	Attempt to left-align second combo column,
        unsuccessfully.

0.8.23:

2005-04-23  Murray Cumming <murrayc@murrayc.com>

	* glom/utility_widgets/comboentryglom.cc:
	* glom/utility_widgets/comboentryglom.h:
	* glom/utility_widgets/comboglomchoicesbase.cc:
	* glom/utility_widgets/datawidget.cc:
	Actually use the Combo* constructors that take
	a second LayoutItem_Field column.

2005-04-23  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/dialog_layout_details.cc:
	on_button_add_field(): Make fields editable
	by default.

2005-04-23  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/box_db_table.cc:
	* glom/box_db_table.h:
	* glom/dialog_invalid_data.cc:
	* glom/dialog_invalid_data.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/box_data_list_find.cc:
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/comboentryglom.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/entryglom.cc:
	* glom/utility_widgets/flowtablewithfields.cc:
	Rename fill_from_database_layout() to
	create_layout(), refresh_db_details() to
	refresh_data_from_database() and describe how
	these and the other 2 methods work together in
	the class documentation for Box_Data.

2005-04-23  Murray Cumming<murrayc@murrayc.com>

	* glom/box_db_table.cc:
	* glom/box_db_table.h:
	Remove fill_fields(). It has no use here.
	Its equivalent is the new fill_database_layout()
 	in Box_Data, a derived class.
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	Add virtual fill_database_layout() so the
	derived implementations can be called from
	init_db_details().
	* glom/mode_data/box_data_details.cc:
	fill_database_layout() is now called by the
	base class, at the appropriate time, so we
        do not need to call it from fill_database().
	refresh_db_details(): Call fill_from_database()
	instead of init_db_details() so we do not
	unnecessarily rebuild the whole layout UI.
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
        fill_fields(): Rename to fill_database_layout(),
	which is now called from the base class.
	fill_from_database(): Do not call fill_fields/
	fill_database_layout() unnecessarily here.
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h:
	Rename on_Details_user_requested_details() to
	on_list_user_requested_details() because that it is
	a signal on list, not details.
	* glom/mode_design/fields/box_db_table_definition.cc:
	fill_from_database(): Call fill_fields() because
	the base class does not call it anymore.
	* glom/utility_widgets/flowtablewithfields.cc:
	add_layout_item_at_position(). When adding
	a Box_Data_List_Related portal, call add_view()
	before init_db_details() because the latter needs
	the document.

2005-04-22  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc:
	Add the DbAddDel as a view with add_view(), so
	it has the document.
	* glom/utility_widgets/cellrendererlist.cc:
	* glom/utility_widgets/cellrendererlist.h:
	Handle the editing_started signal to add the
	second column.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	Fill the second choices column of the
	CellRendererList.

2005-04-22  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/glomconversions.cc:
	Added some warnings for when relationships are
	unexpectedly empty.
	* glom/data_structure/layout/layoutitem_field.cc:
	get_has_choices(). Return false if the choices
	information is empty, so we have no empty dropdown
	menus.
	* glom/data_structure/layout/layoutitem_portal.cc:
	* glom/data_structure/layout/layoutitem_portal.h:
	Store the whole Relationship information here.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	Use a more explicit data structure for layouts,
	clearly marking related (portal) layouts.
	update_relationships(): Update related (portal)
	layouts too.
	* glom/mode_data/dialog_layout_list_related.cc:
	on_button_formatting(): Specify the correct
	table name, so we get choices from the
	related table, not the parent table.

2005-04-22  Murray Cumming <murrayc@murrayc.com>

	* glom/glom.glade:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h:
	* glom/mode_data/treestore_layout.h:
	Details Layout: Add a Formatting button,
	because I can not yet implement a context
	menu for a GtkComboBox, and because nothing
	should be available only via a context menu
	anyway.

2005-04-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/adddel/Makefile.am:
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/adddel/cellrendererlist.cc:
	* glom/utility_widgets/adddel/cellrendererlist.h:
	Move cellrendererlist out of adddel into
	utlity_widgets, because it is also used by
	DbAddDel.
	* glom/utility_widgets/cellrendererlist.cc:
	* glom/utility_widgets/cellrendererlist.h:
	* glom/utility_widgets/comboentryglom.cc:
	* glom/utility_widgets/comboentryglom.h:
	* glom/utility_widgets/comboglomchoicesbase.cc:
	* glom/utility_widgets/comboglomchoicesbase.h:
	Add ComboGlom and ComboGlomChoicesBase which is
	a base class for ComboGlom and ComboEntryGlom.
	* glom/utility_widgets/datawidget.cc:
	Use ComboGlom instead of ComboEntryGlom when
	the choices should be restricted.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	Restrict the choices when specified, using
	CellRendererCombo::property_has_entry().

2005-04-21  Murray Cumming <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	Add drop down choices for name_title.
	* glom/data_structure/field.h:
	* glom/data_structure/glomconversions.cc:
	get_text_for_gda_value(): Prevent use of
	values that do not have the expected type.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	Added get/set_attribute_value_as_value()
	for convenience.
	load_after(), save_before(): load/save the
	custom choices.
	* glom/mode_data/dialog_field_layout.cc:
	* glom/mode_data/dialog_field_layout.h:
	Really save/load the custom choices, by
	storing and using the correct column index.

2005-04-21  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h:
	Add get_choice_values(), with code moved
	from DataWidget.
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	Use a CellRendererCombo on the List view,
	if the field layout has choices. However, it
	only shows the first column so far.
	* glom/base_db.cc:
	* glom/box_db.cc:
	* glom/dialog_connection.cc:
	* glom/dialog_connection.h:
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	* glom/frame_glom.cc:
	* glom/main.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/dialog_field_layout.cc:
	* glom/mode_data/dialog_layout.cc:
	* glom/mode_data/dialog_layout.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_design/box_db_table_relationships.cc:
	* glom/mode_find/box_data_details_find.cc:
	* glom/navigation/box_tables.cc:
	Use get_document() from the View base class
	instead of another member variable. Use add_view()
	and remove_view() in some more places.

2005-04-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	Added update_cache_relationship() and call it from
	set_relationship() and load_after() instead of
	filling-in relationship details along the way.
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/utility_widgets/comboentryglom.cc:
	* glom/utility_widgets/comboentryglom.h:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	Show data from the second related field in the
	drop down choice.

2005-04-21  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	Invoice details: Added choice of contacts dropdown.
	* glom/data_structure/glomconversions.cc:
	util_trim(): reverse iterate from rbegin to rend,
	not the other way around. This avoids accessing
	invalid memory too.
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Add members and methods for choices drop-downs.
	* glom/document/document_glom.cc:
	Load/Save the choices details for LayoutItem_Fields.
	* glom/glom.glade:
	* glom/main.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/dialog_choose_relationship.cc:
	* glom/mode_data/dialog_choose_relationship.h:
	* glom/mode_data/dialog_field_layout.cc:
	* glom/mode_data/dialog_field_layout.h:
	* glom/mode_data/dialog_layout.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/adddel/adddel.h:
	* glom/utility_widgets/adddel/adddel_withbuttons.cc:
	* glom/utility_widgets/adddel/adddel_withbuttons.h:
	* glom/utility_widgets/comboentryglom.cc:
	* glom/utility_widgets/comboentryglom.h:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h:
	* glom/utility_widgets/entryglom.cc:
	* glom/utility_widgets/entryglom.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/layoutwidgetbase.cc:
	* glom/utility_widgets/layoutwidgetbase.h:
	In the Layout Properties dialog, show a second tab
	for choices, either a custom list or a list from
	a related record. Only works on Details so far.
	* glom/frame_glom.cc:on_menu_developer_users(),
	* glom/mode_data/box_data_list_related.cc: destructor,
	* glom/mode_data/box_data.cc: destructor,
	Call remove_view() before deleting the dialog.


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

	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	Add m_TableFields and fill it in
	fill_database(), as a cache instead of
	repeatedly getting it from the document.
        get_lookup_fields(), get_calculated_fields(),
	* glom/mode_data/box_data_details.cc:
	recalculate_fields_for_related_records(),
        Examine all table fields, via m_TableFields,
        instead of just shown fields.

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

	* glom/application.cc:
	* glom/box_db_table.cc:
	* glom/document/document_glom.cc:
	* glom/frame_glom.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/box_data_list_find.cc:
	* glom/navigation/box_tables.cc:
	More use of Field methods instead of getting the
	FieldAttributes and using its methods. This should be
	more efficient.

2005-04-19  Murray Cumming,,,  <murrayc@murrayc.com>

	* glom/data_structure/field.cc:
	* glom/data_structure/field.h:
	Add get_primary_key(), get_unique_key(),
        get_default_value(), etc, so we do not always need
	to copy the whole FileAttributes member just to get
	a little information.
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/flowtablewithfields.cc:
	Use the Field methods instead of getting the
	FieldAttributes and using its methods. This should be
	more efficient.

0.8.22:

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

	* examples/example_smallbusiness.glom:
	Remove 0 and NULL default values.
	* glom/document/document_glom.cc:
	Save default values with
	GlomConversions::get_text_for_gda_value(), in
	iso-format, instead of Gda::Value::to_string().
	This stops empty default values being changed
	to 0s and NULLs.
	* glom/mode_data/box_data_list.cc:
	Specify the list row when calling
        set_field_value_in_database() so that lookups/
	calcs actually happen.

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

	* examples/example_smallbusiness.glom:
	product: Add vat_percent field.
	invoice_lines: Lookup vat_percent along with
	the other product information.
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	Always use set_field_value_in_database()
	instead of custom UPDATE sql queries,
	and do all dependent recalcs/lookups/etc in
	set_field_value_in_database().

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

	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_design/dialog_fields.cc:
	* glom/mode_design/dialog_relationships.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_find/notebook_find.cc:
	Added View_Composite::remove_view() calls before
	deleting widgets that have been add_view()ed. This
	fixes a crash when reopening the field definition
	details dialog.

2005-04-17  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	Add VAT fields to invoice_lines and invoices,
	with calculations.
	* glom/data_structure/layout/layoutitem.cc:
	* glom/data_structure/layout/layoutitem.h:
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Add operator==().
	* glom/glom.glade:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_data/dialog_layout_list_related.h:
	Add a Formatting button, as already in the regular
	List Layout dialog.
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	do_calculations(),
	* glom/mode_data/box_data_details.cc:
	recalculate_fields_for_related_records(): Recalculated
	fields that depend on the just-recalculated fields, with
	some attempt to prevent circular fields. The dependency-
	sequence needs to be figured out all at once, however -
	see the TODO>
	* glom/python_embed/python_module/pygdavalue_conversions.c:
	(pygda_value_as_pyobject): Return a PyFloat for a GdaNumeric,
	instead of a PyLong.

2005-04-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	Emit the signal_record_changed signal when
	deleting related records, to cause
	field recalculations.

2005-04-17  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc: record_new(): Iterate
	from begin to end, not begin to begin, so we actually
	set default values and calculate initial values.
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	set_field(): Monitor changes to the dynamically-created
	default value widget, not just the rest, so that
	changes to the default value enable the Save button.

2005-04-17  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc:
	fill_from_database(): Call
 	DbAddDel::set_where_clause(), so that
	related records portals show only the related
	records instead of all records.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	Added set_where_clause(), and used it when
	creating the treemodel.
	get_is_placeholder(): Cope with invalid
	iterators.
	* po/POTFILES.in:
	Updated.

2005-04-17  Murray Cumming <murrayc@murrayc.com>

	* docs/website/index.html: Updated.
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h:
	Add FlowTable::signal_related_record_changed() and
	Box_Data_List_Related::signal_record_changed() to allow
	the Box_Data_Details to recalculate fields that use
	the relationship whose records have changed.

2005-04-16  Murray Cumming <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	Add count and total_price (calculated) fields to invoice_lines.
	Add price_total (calculated) field to invoices.
	* glom/data_structure/field.cc:
	* glom/data_structure/field.h:
	Add get_calculation_relationships() to discover what relationships
	are used by a calculation.
	* glom/data_structure/glomconversions.cc:
	Change example value for numbers to 1 from 123, so we are more
	likely to find related records when testing calculations.
	* glom/python_embed/python_module/py_glom_record.cc:
	* glom/python_embed/python_module/py_glom_record.h:
	Remove the unused m_gda_connection member variable.
	* glom/python_embed/python_module/py_glom_relatedrecord.cc:
	Add sum(), count(), min(), and max() python methods. For instance,
	record["invoice_lines"].sum("total_price");

2005-04-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Forward get/set_name() to m_field instead of
	using m_name from the base class.
	* glom/document/document_glom.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	Remove set_name() where we also set m_field with
	an identical name.

2005-04-16  Murray Cumming <murrayc@murrayc.com>

	* glom/python_embed/python_module/py_glom_relatedrecord.cc:
	RelatedRecord_tp_as_mapping_getitem():
	Actually execute the SQL so that it actually gets the data.
	And also handle various errors and give interesting warnings.

2005-04-16  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	* glom/python_embed/glom_python.cc:
	* glom/python_embed/glom_python.h:
	* glom/python_embed/python_module/Makefile.am:
	* glom/python_embed/python_module/py_glom_module.cc:
	* glom/python_embed/python_module/py_glom_module.h:
	* glom/python_embed/python_module/py_glom_record.cc:
	* glom/python_embed/python_module/py_glom_record.h:
	* glom/python_embed/python_module/py_glom_related.cc:
	* glom/python_embed/python_module/py_glom_related.h:
	* glom/python_embed/python_module/py_glom_relatedrecord.cc:
	* glom/python_embed/python_module/py_glom_relatedrecord.h:
	Added record.related[relationship_name][field_name] syntax for
	calculated fields, though it is not working yet.
	* glom/python_embed/python_module/pygdavalue_conversions.c:
	* glom/utility_widgets/adddel/eggcolumnchooser/eggcolumnchooserdial
	og.c:
	* glom/utility_widgets/adddel/eggcolumnchooser/eggcolumnmodel.c:
	Extra C casts needed for g++ 3.4.

2005-04-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/python_embed/glom_python.cc:
	* glom/python_embed/python_module/py_glom_record.cc:
	* glom/python_embed/python_module/py_glom_record.h:
	Access field values via record[] instead of
	record.fields[].get().
	* glom/data_structure/field.cc:
        get_calculation_fields(): Revise for the new syntax.
	* glom/python_embed/python_module/
	Added py_glom_related.[h|cc], which will, soon,
	provide access to related records.
	Added py_glom_module.[h|cc]: Added, and moved the
	module init stuff into here.

0.8.21:

2005-04-14  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: Updated copyright year.
	* glom/frame_glom.cc: Use US spelling of
	canceled. Bug #300139.

2005-04-14  Murray Cumming <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	Invoice details: Show the related, calculated,
        Full Name instead of the individual name parts, now that
       calculated fields work.
	* glom/data_structure/layout/layoutgroup.h:
	Make the items map public so we can change it more
	efficiently.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	Add fill_layout_field_details() to fill layout groups
	with full field information.
	* glom/glom.glade:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list.h:
	Added a Formatting button to show the now-separate
	formatting dialog.
	set_document(): Get the full field information from
	the document.
	* glom/mode_data/box_data_list.cc:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/entryglom.cc:
	* glom/utility_widgets/layoutwidgetbase.cc:
	Move action creation into the base class instead of
	duplicating it.

2005-04-14  Murray Cumming <murrayc@murrayc.com>

	* docs/website/screenshots/glom_data_details.png:
	* docs/website/screenshots/glom_design_layout_field_formatting.png:
	* docs/website/screenshots/glom_select_field.png:
	* docs/website/screenshots/index.html:
	Updated some screenshots and pictures.
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	Added get_record_field_values(), get_calculated_fields(), and
	do_calculations() which use them.
	* glom/mode_data/box_data_details.cc: on_flowtable_field_changed():
	* glom/mode_data/box_data_list.cc: on_adddel_user_changed():
	Call do_calculations() to update calculated field values.

2005-04-13  Murray Cumming  <murrayc@murrayc.com>

	* docs/website/screenshots/glom_design_fields_dialog_calculated.png
	: Updated the screenshot to show these changes.
	* examples/example_smallbusiness.glom:
	Added a name_full fields to contacts, as a simple calculated-field
	test.
	* glom/data_structure/field.cc:
	* glom/data_structure/field.h:
	Added get_caculation_fields() - it parses the python code and
	guesses what fields are used in the calculation.
	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h:
	Added get_example_value(), so we have some field values for the
	calculation test dialog.
	* glom/glom.glade:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.h:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	Show the (according to our parsing) used fields, and show that
	we import the glom module implicitly.

2005-04-13  Murray Cumming <murrayc@murrayc.com>

	* glom/python_embed/glom_python.cc:
	glom_evaluate_python_function_implementation()
	Correctly check whether the result is a gda.Value
	and process it appropriately. This now works.

2005-04-13  Murray Cumming <murrayc@murrayc.com>

	* glom/python_embed/python_module/Makefile.am:
	Link the module to the glom dependencies, to
	avoid undefined symbols when using it from python.

2005-04-13  Murray Cumming <murrayc@murrayc.com>

	* glom/python_embed/python_module/Makefile.am:
	Use pyexec_* instead of pkpyexec_* so that the
	module is not installed in a package sub-directory,
	so that it can be imported.

2005-04-13  Murray Cumming <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/python_embed/python_module/Makefile.am:
	Create glom.la, not libglom.la. That seems to be what
	python modules do.
	* glom/python_embed/python_module/py_glom_record.cc:
	* glom/python_embed/python_module/py_glom_record.h:
	Rename the initglomRecord() method to initglom(), in
	case that is what python is looking for. Still does
	not work though.

2005-04-13  Murray Cumming <murrayc@murrayc.com>

	* configure.in:
	* glom/Makefile.am:
	* glom/python_embed/Makefile.am:
	* glom/python_embed/glom_python.cc:
	* glom/python_embed/python_module/Makefile.am:
	* glom/python_embed/python_module/py_glom_record.cc:
	* glom/python_embed/python_module/py_glom_record.h:
	Put the python module in a sub directory, making the
	build easiert. Rename the python module from pyglom
	to glom, and import that. But python still says that
	the module does not exist when we import it.

2005-04-13  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc: record_new(),
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	on_button_test(): Pass some test fields values to
	glom_evaluate_python_function_implementation().
	* glom/python_embed/Makefile.am:
	Try to actually build and install the glom python
	module.
	* glom/python_embed/glom_python.cc:
	* glom/python_embed/glom_python.h:
	glom_evaluate_python_function_implementation() now
	receives a map of field values to be used by the
	python function.
	* glom/python_embed/py_glom_record.cc:
	Add the fields attribute.

2005-04-12  Murray Cumming <murrayc@murrayc.com>

	* glom/python_embed/glom_python.cc: Get access to
	the python gda.Value type and use it instead of
	the hack.

2005-04-12  Murray Cumming <murrayc@murrayc.com>

	* configure.in: pkg-config check for pygtk-2.0,
	because we need the header to access the internals
	of the gda.Value object.
	* glom/python_embed/glom_python.cc:
	Handle the result as a gda.Value.

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

	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	on_adddel_user_added(): Call
	on_adddel_user_changed() to do lookups.
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	DbAddDel::signal_user_added(): Pass the column
	index of the field that was filled-in to create
	the new row.

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

	* po/POTFILES.in: Added files that I think
	Christian Rose removed accidentally.

2005-04-09  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Add get/set_hidden(), so we can add a hidden list
	column for keys, without showing them in the UI.
	* glom/mode_data/box_data_list.cc:
	Do not create rows in the AddDel from the database -
	allow it (the model) to fill itself.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	Use the new explicit get_last_row() method of the model
	instead of iterating back from end().
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	Constructor: create rows from the database automatically,
	as well as allowing creating of new empty rows.

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

	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	* glom/data_structure/relationship.cc:
	* glom/data_structure/relationship.h:
	Added Relationship::get_name_not_empty() and used it,
	for performance, instead of getting the whole string
	just to see if it is empty.
	* glom/glom.glade:
	* glom/mode_data/Makefile.am:
	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_choose_field.h:
	* glom/mode_data/dialog_field_layout.cc:
	* glom/mode_data/dialog_field_layout.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h:
	Moved formatting options to their own dialog.
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h:
	* glom/utility_widgets/entryglom.cc:
	* glom/utility_widgets/entryglom.h:
	* glom/utility_widgets/layoutwidgetbase.h:
	Added a context menu item for the new layout
	properties dialog.

0.8.20:

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

	* glom/python_embed/: Remove the (huge) boost
	directory. boost::python is not worth the trouble for now,
	so I will use the C API instead.

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

	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	Add set_columns_ready(). Only when this is called will
	the columns actually be constructed. This prevents
	multiple unnecessary data retrievals.
	* glom/mode_data/box_data_list.cc: fill_column_titles():
	Call DbAddDel::set_columns_ready().
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	create(): Add a where_clause parameter. Add a datamodel
	member variable and fill it from a SQL SELECT statement.
	The result is not actually used yet, but could be used to
	get rows only on demand when iterating.

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

	* glom/python_embed/Makefile.am:
	Do not try to build the boost sub-directory. We do not
	use it anymore.

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

	* Makefile.am:
	* configure.in:
	Depend explicitly on libxslt. Stop using boost::python.
	* glom/python_embed/py_glom_record.cc:
	* glom/python_embed/py_glom_record.h:
	Stop using boost::python, because it is too difficult to build ,
	inside glom, and is huge, and is not really necessary here.
	Add some more code for the PyGlomRecord object.
	* glom/python_embed/glom_python.cc:
	Pass a PyGlomRecord object to the python method.
	* glom/application.cc:
	App_Glom::init(): Add a print menu item. It is just a
	proof of concept at the moment.
	* glom/mode_data/box_data_details.cc:
	Added print_layout_group(), which creates an XML format
	for the data, and then converts it to HTML using an XSLT
	stylesheet, using libxslt.
	* xslt/ Added this directory, with .xslt which is
	installed for use by the application.
	* glom/base_db.cc:
	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h:
	Add util_build_sql_select_with_where_clause(), moved from
	Box_Data(), so that the Db_AddDel can use it in future, to
	do on-demand data retrieval.
	* glom/data_structure/iso_codes.cc:
	Catch the exception if the iso_codes XML file can not be
	found, and then just return an empty list. This prevents
	a crash when iso_codes is not properly installed. For instance,
	Ubuntu Hoary currently installs an (obviously) incorrect .pc file.
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Cache the whole Relationship details here, instead of just storing
	the relationship_name. This means that code that uses this does not
	need to access the document to lookup the full details.
	* glom/dialog_connection.cc:
	* glom/document/document_glom.cc:
	* glom/frame_glom.cc:
	* glom/frame_glom.h:
	* glom/glom.glade:
	Made ScrolledWindows use automatic mode for scrollbars,
	so they are only shown when necessary. Remove the unused
	information dialog.
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	Make methods const.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
	Store LayoutItem_Fields for each column, not just Fields.
	* glom/main.cc:
	* glom/mode_data/Makefile.am:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_choose_relationship.cc:
	* glom/mode_data/dialog_layout.cc:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_data/notebook_data.cc:
	* glom/mode_data/notebook_data.h:
	* glom/mode_data/treestore_layout.h:
	* glom/mode_design/box_db_table_relationships.cc:
	* glom/mode_design/dialog_design.cc:
	* glom/mode_design/dialog_fields.cc:
	* glom/mode_design/dialog_relationships.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/combo_fieldtype.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_user.cc:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/box_data_list_find.cc:
	* glom/mode_find/notebook_find.cc:
	* glom/navigation/box_tables.cc:
	* glom/notebook_glom.cc:
	* glom/notebook_glom.h:
	* glom/utility_widgets/adddel/adddel.cc:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/entryglom.cc:
	* glom/data_structure/field.cc:
	Include glibmm/i18n.h instead of libintl.h in .cc files,
	so we can use _() instead of gettext().

2005-04-01  Steve Murphy  <murf@e-tools.com>

        * configure.in: Added "rw" to ALL_LINGUAS.

0.8.19:

2005-03-31  Murray Cumming <murrayc@murrayc.com>

	* glom/python/embed/boost/mpl/: Added extra directories
	from boost, to fix the build.

2005-03-31  Murray Cumming <murrayc@murrayc.com>

	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	The optional add() expand parameter now works for first
	items, so related records portals now take up the full
	column width.

2005-03-31  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/iso_codes.cc:
	Use the correct name with dgettext(), using a _
	instead of a -. Currency names are therefore now
	translated.
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	Add optional expand parameter to FlowTable::add() and
	use it for portals and groups in FlowTableWithFields.
	Does not quite work yet though.

2005-03-30  Murray Cumming <murrayc@murrayc.com>

	* configure.in:
	Depend on latest bakery, so we can use util_bold_message().
	* glom/application.cc:
	* glom/base_db.cc:
	* glom/frame_glom.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_design/dialog_fields.cc:
	* glom/mode_design/dialog_relationships.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/utility_widgets/flowtablewithfields.cc:
	Use util_bold_message() to avoid marking pango markup for
	translation.

2005-03-30  Christian Rose  <menthos@menthos.com>

	* glom/glom.glade: Removed unnecessary trailing spaces from
	translateable messages (bug #172109).

2005-03-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/python_embed/py_glom_record.h:
	Comment-out the boost python stuff until I can get it to build.

2005-03-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/python_embed/: Added boost/, containing lots of the
	boost files, needed by the boot::python library. We must
	copy the files instead of depending on a shared library,
	because the API is unstable.

2005-03-30  Murray Cumming <murrayc@murrayc.com>

	* configure.in:
	* glom/Makefile.am:
	* glom/box_db_table.cc:
	* glom/glom_python.cc:
	* glom/glom_python.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_design/fields/dialog_fieldcalculation.cc:
	* glom/python_embed/Makefile.am:
	* glom/python_embed/glom_python.cc:
	* glom/python_embed/glom_python.h:
	Move glom_python.* to the python_emded subdirectory,
	where I plan to put more stuff.

2005-03-30  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h:
	Added util_trim_string().
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	on_treeview_cell_edited(): Use the numeric_format
	when parsing.
	* glom/utility_widgets/entryglom.cc:
	get_value(), check_for_change(): Use the
	numeric_format when parsing the value, so that currency
	symbols can be ignored.

2005-03-30  Murray Cumming  <murrayc@murrayc.com>

	* config.h.in:
	* configure.in:
	Depend on iso-codes and define the prefix for its files in
	config.h.
	* glom/Makefile.am:
	* glom/data_structure/Makefile.am:
	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h:
	* glom/data_structure/iso_codes.cc:
	* glom/data_structure/iso_codes.h:
	Added a Currency class, and get_list_of_currency_symbols().
	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_choose_field.h:
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/comboentry_currency.cc:
	* glom/utility_widgets/comboentry_currency.h:
	Use a ComboBoxEntry for the currencies on the
	Field Layout dialog.
	* glom/utility_widgets/entry_numerical.cc:
	* glom/utility_widgets/entry_numerical.h:
	Removed this, because it's not used.

2005-03-29  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	* glom/data_structure/numeric_format.cc:
	* glom/data_structure/numeric_format.h:
	Add a currency_symbol member.
	* glom/document/document_glom.cc:
	Load/Save the currency symbol part of the
	numeric format.
	* glom/glom.glade:
	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_choose_field.h:
	Add a currency_symbol ComboBoxEntry. It
	is not used yet.

2005-03-29  Murray Cumming <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	* glom/glom.glade:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_data/dialog_layout_list_related.h:
	Allow layout field editing (editable, numeric formatting,
	etc) of related records lists, like we already have for
	normal lists.

2005-03-29  Murray Cumming <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	* glom/base_db.cc:
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_data/dialog_layout_list_related.h:
	When creating default related records layouts, get
	the list of fields from the related table, not the
	parent table. Store the related records layout in
	the parent table's table part of the document,
	instead of pretending that it is a special table.

2005-03-29  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc: get_table_fields_to_show():
	When creating default layouts, do not use the 1000s
	separator with primary key IDs.

2005-03-29  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/Makefile.am:
	* glom/data_structure/numeric_format.cc:
	* glom/data_structure/numeric_format.h:
	New class to represent the numeric format.
	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h:
	Do special std:: stream stuff to format numbers
	as needed by the NumericFormat.
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Add a NumericFormat member.
	* glom/document/document_glom.cc:
	Load/Save the numeric format information with the
	LayoutItem.
	* glom/glom.glade:
	Add UI for the Numeric Format.
	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_choose_field.h:
	Use the Numeric Format UI. It is only shown for
	numeric fields.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	Use the Numeric format for the list.
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/entryglom.cc:
	Use the numeric format for details views.

2005-03-24  Murray Cumming <murrayc@murrayc.com>

	* glom/glom.glade:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/mode_design/users/dialog_users_list.h:
	The beginnings of UI for numeric formatting,
	hidden for now.
	* glom/utility_widgets/Makefile.am:
	* glom/utility_widgets/combo_textglade.cc:
	* glom/utility_widgets/combo_textglade.h:
	Moved these here from glom/mode_design/fields/.

2005-03-24  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_design/users/dialog_users_list.cc:
	on_button_user_add(): Revoke all user
	privileges when adding a user to a group, so
	that all the user privileges come from the group.

0.8.18:

2005-03-23  Murray Cumming <murrayc@murrayc.com>

	* glom/Makefile.am: Install the glom file.
	In 0.8.16 I mistakenly made it not install,
	when preventing the installation of a test.

0.8.17:

2005-03-22  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	Change the database name, adding v2 at the
	end, to force the database to be recreated
	when previous glom users open the example
	again.

2005-03-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	fill_from_database(): Disable the Add and Delete
	buttons if the current user does not have those
	priviliges.

2005-03-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	Store priv_view when we store priv_edit.
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	Do not get records if the table may not be viewed
	by the current user.
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h:
	Make field contents non-visible if necessary,
	though we do not even fill them with data in
	that case anyway.
	* glom/mode_design/users/dialog_groups_list.cc:
	When setting view to false, set everything else
	to false too, because anything else would be
	stupid.

2005-03-22  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/frame_glom.cc:
	on_menu_userlevel_Developer(): Prevent
	developer mode if the user is not in the
	developer group.

2005-03-22  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_design/users/dialog_user.cc:
	* glom/mode_design/users/dialog_user.h:
	* glom/mode_design/users/dialog_users_list.cc:
	When editing a user, show the group (though
	we can not edit it here yet), and update the
	password in the connection if it is the
	current user.

2005-03-22  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_groups_list.h:
	Add a description of the special developers group.
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/mode_design/users/dialog_users_list.h:
	Prevent removal of the last developer.

2005-03-22  Murray Cumming <murrayc@murrayc.com>

	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/data_structure/layout/layoutitem.h:
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	Store the privileges in the LayoutItem_Field,
	filling them in when we get the field information
	from the database. Make widgets for non-editable
	fields to non-editable.
	* glom/frame_glom.cc:
	Update the layout when the Users window closes,
	to show changes.

2005-03-22  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	Added the table_privs.
	* glom/document/document_glom.cc:
	Do not use an invalid map iterator, to
	prevent a crash.

2005-03-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: recreate_database():
	Add the developer group and make the user a
	member of it.
	* glom/base_db.cc:
	* glom/base_db.h:
	Added get_current_privs().
	* glom/data_structure/Makefile.am:
	* glom/data_structure/groupinfo.cc:
	* glom/data_structure/groupinfo.h:
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	Moved GroupInfo class out of Document_Glom.
	* glom/mode_design/users/dialog_groups_list.cc:
	Set the groups in the document when we get
	them from the database. But just in case
	we need to recreate the database from the
	document.

2005-03-21  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	* glom/glom_document.dtd:
	Add API to get/set the groups, and load/save
	them in the XML. Not used yet.

2005-03-21  Murray Cumming <murrayc@murrayc.com>

	* docs/website/screenshots/glom_design_groups.png:
	* docs/website/screenshots/index.html:
	Add a section to show the Groups window.
	* glom/glom.glade:
	Use SCROLLBARS_AUTOMATIC on some ScrolledWindows.

2005-03-21  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	Remove nonsense table information.
	* glom/base_db.cc:
	* glom/base_db.h:
	Add add_standard_groups() - it ensures that
	there is always a developer group.
	* glom/mode_design/users/dialog_groups_list.cc:
	load_from_document(): Call add_standard_groups() to ensure
	that the developer group always exists.
	on_button_group_new(): Provide sensible default privilieges
	for new groups.
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	Add remove_table() and remove_relationship().
	* glom/navigation/box_tables.cc: on_adddel_Delete():
	Remove tables from the document as well as the database
	server.

2005-03-21  Murray Cumming <murrayc@murrayc.com>

	* configure.in:
	* glom/Makefile.am:
	* glom/application.cc:
	* glom/base_db.cc:
	* glom/base_db.h:
	* glom/box_db.h:
	* glom/data_structure/Makefile.am:
	* glom/data_structure/tableinfo.h:
	* glom/document/document_glom.cc:
	* glom/document/document_glom.h:
	* glom/frame_glom.cc:
	* glom/glom.glade:
	* glom/mode_design/Makefile.am:
	* glom/mode_design/dialog_user.cc:
	* glom/mode_design/dialog_user.h:
	* glom/mode_design/dialog_users_list.cc:
	* glom/mode_design/dialog_users_list.h:
	* glom/mode_design/fields/combo_textglade.cc:
	* glom/mode_design/fields/combo_textglade.h:
	* glom/mode_design/users/Makefile.am:
	* glom/mode_design/users/dialog_choose_user.cc:
	* glom/mode_design/users/dialog_choose_user.h:
	* glom/mode_design/users/dialog_groups_list.cc:
	* glom/mode_design/users/dialog_groups_list.h:
	* glom/mode_design/users/dialog_new_group.cc:
	* glom/mode_design/users/dialog_new_group.h:
	* glom/mode_design/users/dialog_user.cc:
	* glom/mode_design/users/dialog_user.h:
	* glom/mode_design/users/dialog_users_list.cc:
	* glom/mode_design/users/dialog_users_list.h:
	* glom/navigation/box_tables.cc:
	* glom/utility_widgets/adddel/adddel.cc:
	User management is now group-based, with
	users in groups, and permissions for each group.

2005-03-19  Murray Cumming <murrayc@murrayc.com>

	* glom/Makefile.am:
	* glom/frame_glom.cc:
	* glom/glom.glade:
	* glom/mode_data/box_data.cc:
	* glom/mode_design/Makefile.am:
	* glom/mode_design/dialog_user.cc:
	* glom/mode_design/dialog_user.h:
	* glom/mode_design/dialog_users_list.cc:
	* glom/mode_design/dialog_users_list.h:
	Added very simple user administration, available
	from the Developer menu.

2005-03-18  Murray Cumming <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	* glom/Makefile.am:
	* glom/data_structure/layout/layoutitem_portal.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/treestore_layout.h:
	* glom/mode_design/dialog_relationships.cc:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h:
	* glom/utility_widgets/entryglom.cc:
	* glom/utility_widgets/entryglom.h:
	* glom/utility_widgets/flowtable.cc:
	* glom/utility_widgets/flowtable.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h:
	* glom/utility_widgets/layoutwidgetbase.cc:
	* glom/utility_widgets/layoutwidgetbase.h:
	Details view: You can now right-click on a Field
	Entry, to add a field, group, or related records
	portal after the clicked field.

0.8.16:

2005-03-15 Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	Moved the related record creation/warning
	code from
	Box_Data_Details::on_flowtable_field_edited()
	into the base Box_Data class, as
	Box_Data::add_related_record_for_field(), and
	used it from
	Box_Data_List::on_adddell_user_changed().
	This means that automatic creation of related
	records works from the List view too.

2005-03-15  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc:
	confirm_discard_unstored_data(): The buttons
	argument of MessageDialog is not a flag - really
	show both buttons.
	* glom/mode_data/box_data_details.cc:
	fill_from_database(): Call set_unstored_data(false)
	at the end. If there really is some unstored data
	then it is too late at this point.

2005-03-15  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc:
	on_adddel_user_requested_add(): When the primary
	key value does not exist yet, call
	on_adddel_user_added() regardless of whether the
	field is autoincremented. This makes record
	adding work again if the primary key is not
	auto-increment.

2005-03-15  Murray Cumming <murrayc@murrayc.com>

	* glom/data_structure/glomconversions.cc:
	* glom/data_structure/glomconversions.h:
	* glom/mode_data/box_data.cc:
	generate_next_auto_increment(): unbreak
	this, so that adding records works again
	if the primary key is auto incremented.

2005-03-14  Murray Cumming <murrayc@murrayc.com>

	* glom/document/document_glom.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.cc:
	* glom/utility_widgets/db_adddel/glom_db_treemodel.h:
        Glom_Db_TreeModel::on_treeview_cell_edited():
	Do not set a bogus key value when a column is the
	first to get a value, and do not mark it as no
	longer a placeholder. This prevents a crash
	when adding two field values without yet entereing
	a primary value. But the primary key value is still
	not used when it is entered.

2005-03-14  Murray Cumming <murrayc@murrayc.com>

	* glom/box_db_table.h:
	* glom/data_structure/field.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
        Box_Data_Details::on_flowtable_field_edited():
        When it's a related field that was edited,
	create a related record, where allowed by the
	relationship, and where possible, with warnings
	where not. This is quite a lot of code - it
	should be abstracted so it can be used for the
	list too.

2005-03-14  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	* glom/glom_document.dtd:
	* glom/document/document_glom.cc:
	* glom/data_structure/relationship.cc:
	* glom/data_structure/relationship.h:
	Add get/set_auto_create() to specify whether
	details and lists view should automatically
	create related fields when the user enters
	data into a record that does not yet exist.
	* glom/mode_design/box_db_table_relationships.cc:
	* glom/mode_design/box_db_table_relationships.h:
	on_adddel_user_activated(): Do not clear the
	to_field when the user clicks on it.
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	If allow_add is false, deactivate the Add
	context menu item, and do not add new-record
	placeholder rows.
	* glom/mode_data/box_data_list_related.cc:
        Set DbAddDel::set_allow_add() according to the
	relationship.

0.8.15:

2005-03-14  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	Box_Data_List::refresh_related_fields(): Now
	related fields are updated in the details view
	when the key value changes in the record.
	Dialog_Layout_List: The edit button now edits the
	properties of the current layout field.

2005-03-14  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc:
        refresh_related_fields(): The list view now updates
	the displayed value of related fields when you
	change the related key value in the current record.

2005-03-14  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	Db_AddDel::get_column_index() now returns a
	list of indexes, so that set_value() updates
	the value in all columns when a field is present
	more than once.

2005-03-14  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	Db_AddDel::set_value(), and get_value() now
	identify the column by a LayoutItem_Field
	instead of a numerical index, so at least
	the inefficient index discovery is restricted
	to one method in Db_AddDel.

2005-03-14  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
 	on_adddel_user_changed(): Editing of related fields
	in the list view now works, using mostly copy/pasted
	code from Box_Data_List::on_flowtable_field_edited().

2005-03-14  Murray Cumming, <murrayc@murrayc.com>

	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_design/box_db_table_relationships.cc:
	LayoutItem_Field: Add get_has_relationship_name()
	and use it instead of !get_has_relationship().empty()
	to reduce unnecessary string copying.

2005-03-14  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/utility_widgets/flowtablewithfields.cc:
	Editing of related fields on the details view
	now works.

2005-03-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/box_db_table.cc:
	* glom/box_db_table.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_details.h:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_design/box_db_table_relationships.cc:
	* glom/utility_widgets/db_adddel/db_adddel.cc:
	* glom/utility_widgets/db_adddel/db_adddel.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h:
	FlowTableWithFields and Db_AddDel: Now identify
	fields via LayoutItem_Field rather than just Field,
	so related fields do not get confused with regular
	fields. This should allow me to make editing of
	related fields work soon.

2005-03-13  Murray Cumming <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	* glom/mode_data/box_data.cc:
	build_sql_select_with_where_clause():
	Use a LEFT OUTER JOIN for the related fields,
	because this does not hide records from
	the parent table when the key values are bogus,
	and does not give us duplicate records.

2005-03-13  Murray Cumming <murrayc@murrayc.com>

	* examples/example_smallbusiness.glom:
	* glom/data_structure/layout/layoutitem.h:
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	* glom/document/document_glom.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list.h:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_data/dialog_layout_list_related.h:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h:
	* glom/utility_widgets/flowtablewithfields.cc:
	* glom/utility_widgets/flowtablewithfields.h:
	* glom/utility_widgets/layoutwidgetbase.cc:
	* glom/utility_widgets/layoutwidgetbase.h:
	Stop storing the table name in the layoutitem,
	and saving it in the document.
	It was a nasty hack, and it's better to cache it
	in the LayoutWidgetBase. It's only needed anyway
	for right-click layout editing.
	Moved SQL-building code into a reusable method
	in Box_Data and used it from both Box_Data_List and
	Box_Data_Details. This means that the List view can
	now also show related fields. Editing of related
	fields does not work yet, and the SELECT statement
	is not quite right - it sometimes gets duplicate
	records.

2005-03-13  Murray Cumming <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_list_related.cc:
        get_fields_to_show(): Reduce code duplication
	by calling the code in Box_Data.

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

	* examples/example_smallbusiness.glom:
	* glom/box_db_table.cc:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h:
	* glom/utility_widgets/flowtablewithfields.cc:
        The Field Chooser dialog now offers fields from
	relationships, and the field data will be properly
	displayed on the details view. Editing of related
	fields does not work yet, and the list view can not
	do this yet.

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

	* glom/box_db.cc:
	* glom/box_db_table.cc:
	* glom/box_db_table.h:
	* glom/mode_data/box_data.cc:
	* glom/mode_data/box_data.h:
	* glom/mode_data/box_data_details.cc:
	* glom/mode_data/box_data_list.cc:
	* glom/mode_data/box_data_list.h:
	* glom/mode_data/box_data_list_related.cc:
	* glom/mode_data/box_data_list_related.h:
	* glom/mode_data/dialog_layout.cc:
	* glom/mode_data/dialog_layout.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list.h:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_design/fields/box_db_table_definition.cc:
	* glom/mode_design/fields/box_db_table_definition.h:
	* glom/mode_find/box_data_details_find.cc:
	* glom/mode_find/box_data_list_find.cc:
        Store vector of layouts instead of vector of fields
        for list and details views. Field Chooser dialog
        also uses layout items so it can edit the full
        field information, including the relationship,
        and the formatting in future.

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

	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_choose_field.h:
	* glom/mode_data/dialog_layout_list_related.cc:
	Changing the selected relationship when
	choosing a field now changes the list of
	available fields.

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

	* examples/example_smallbusiness.glom:
	* glom/data_structure/layout/layoutgroup.h:
	* glom/data_structure/layout/layoutitem_field.cc:
	* glom/data_structure/layout/layoutitem_field.h:
	* glom/document/document_glom.cc:
	* glom/glom.glade:
	* glom/glom_document.dtd:
	* glom/mode_data/dialog_choose_field.cc:
	* glom/mode_data/dialog_choose_field.h:
	* glom/mode_data/dialog_layout.h:
	* glom/mode_data/dialog_layout_details.cc:
	* glom/mode_data/dialog_layout_details.h:
	* glom/mode_data/dialog_layout_list.cc:
	* glom/mode_data/dialog_layout_list.h:
	* glom/mode_data/dialog_layout_list_related.cc:
	* glom/mode_data/dialog_layout_list_related.h:
	* glom/mode_data/treestore_layout.h:
	* glom/mode_design/fields/combo_textglade.cc:
	* glom/mode_design/fields/combo_textglade.h:
	* glom/utility_widgets/datawidget.cc:
	* glom/utility_widgets/datawidget.h:
        LayoutItem_Fields now contain an optional relationship_name.
        When choosing fields, you can choose the relationship.

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

	* Lots of use of Gtk::MessageDialog::set_secondary_text() to make
	dialogs more HIGy, plus use of set_transient_for().

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

	* glom/main.cc: Attempt to use Glib::Option from glibmm 2.6, to
	provide a --file option, for debugging. But it does not work,
	probably because of conflicts with the libgnomeui and libgda uses of
	argc and argv.

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

	* glom now depends on gtkmm 2.6.
	* glom/utility_widgets/adddel/cellrendererlist.[h|cc]: Derive from
	the Gtk::CellRendererCombo in gtkmm 2.6, instead of implementing
	all this ourselves.

0.8.14:

2005-03-10  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc: get_primary_key(): Return true
	for success, so that Box_Data::record_delete() works again, so that
	deleting records really deletes them from the database again.

2005-03-10  Murray Cumming  <murrayc@murrayc.com>

	* docs/website/: Redid the screenshots and put them on a page.

2005-03-10  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data.cc: record_new(): Avoid specifying the same
	field data twice to the database.

0.8.13:

2005-03-10  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_small_business.glom: Invoices Lines: Lookup up the
	product name and price from the products table.

2005-03-10  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtable_withfields.[h|cc]: Use a list of
	field info instead of a map, and search through it all instead of
	using the map key, so we can have the same field more than once in
	a group. Otherwise, people change a field and see it disappear if it
	is already there.

2005-03-10  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc: on_flowtable_layout_changed():
	Update the data as well as the structure, because updating the
	structure clears the widgets.

2005-03-10  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/entry_glom.[h|cc]: Show a Choose Field context menu
	when in developer mode, and signal to the DataWidget when it has been
	selected.
	* glom/mode_data/dialog_choose_field.[h|cc]: set_document(): Select
	the current field at the start. Make double-click choose a field.

2005-03-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/datawidget.[h|cc]: Attempt to add a context menu
	to choose the field. Not working yet. Some EventBox problem maybe.

2005-03-08  Murray Cumming  <murrayc@murrayc.com>

	* examples/example_small_business.glom: Invoices table: Make the
	contact name lookup a name from the contacts table.

2005-03-08  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/: More use of the stored primary key fields
	instead of getting them from the list of fields via their index. This
	means that the primary key can still be used when it is not shown.
	* glom/mode_data/box_data_list_related.cc: Set the foreign key value
	even if it is not shown. This means that related records portals
	no longer need to show the primary key or the foreign key, both of
	which are uninteresting to most operators.

2005-03-08  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]: Remove as_value
	from method names because they are all by value. Added
	get/set_key_field() so it is easy to know the primary key for the
	table.
	* glom/utility_widgets/db_adddel/glom_db_treemodel.[h|cc]: create()
	now takes a list of fields - one for each column. This should allow
	us to construct a SQL query from the model itself in future.
	* glom/mode_data/box_data_list.[h|cc]: Store the primary key field
	in the AddDel.
	* glom/mode_data/box_data_details.[h|cc]: Store the primary key field
	in a member variable, instead of iterating for it every time.

2005-03-08  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtable_withfields.cc: get_portals():
	Actually add relevant portals to the list.
	* glom/mode_data/box_data_list_related.cc: on_record_added(): When
	the to_field key is not auto-generated, really set it to the
	foreign key value, not to null. This makes adding of related records
	work, but so far only when all key fields are shown in the layout.

2005-03-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/adddel/adddel.cc, db_adddel/db_adddel.cc:
	on_treeview_button_press_event(): Test the bool return from
	TreeView::get_path_at_pos to avoid using an invalid path. This
	stops the warning when right clicking where there is no row.

2005-03-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/box_db_table_relationship.[h|cc]: Show/edit the
	relationship titles here too.
	* glom/mode_data/box_data_list_related.cc: on_dialog_layout_hide():
	Update the relationship title in case it has changed.

2005-03-07  Murray Cumming  <murrayc@murrayc.com>

	* glom/Document/document_glom.[h.cc]: Load/save relationship titles.
	* glom/data_structure/Relationship.[h|cc]: Added get/set_title() and
	get_title_or_name().
	* glom/mode_data/dialog_layout_list_related.[h|cc]: Actually choose
	fields from the related table.


2005-03-06  Murray Cumming  <murrayc@localhost.localdomain>

	* glom/mode_data/box_data_list_related.cc: Constructor: Set a new
	layout name, so that the portals layouts are not confused with the
	standard layouts for those tables in the document. Use the new
	layout dialog.
	* glom/mode_data/: Add dialog_layout_list_related.[h|cc].
	* glom/glom.glade: Define the new dialog.

2005-03-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_db_list.cc: on_adddel_user_requested_delete():
	Ask the user whether he really wants to delete the record.
	* glom/utilities/db_adddel.[h|cc]: Add a layout item to the right
	click menu, so that people can right click to edit list layouts and
	related records layouts. Still need to give related records layouts
	an id other than their underlying table.

2005-03-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: on_document_load(): Warn if the user recreates
	a database using a read-only installed example file.
	* glom/frame_glom.cc: on_menu_userlevel_Developer(): If developer
	mode is not possible then warn the user and set it back to operator
	mode.

0.8.12:

2005-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/connection_pool.cc: connect(): Do not forget the DATABASE=
	part of the connection string when connecting to the default templat1
	database. Otherewise it gets added to the password. Stupid me.
	* glom/application.cc: recreate_database() Added a user_cancelled
	output parameter, so we only show the error dialog when it's a real
	error.
	* glom/glom_frame.cc: create_database(): Added more error checking
	and debug output to investigate problems.

2005-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_addel/glom_db_treemodel.[h|cc]: Make this
	actually work, by calling row_inserted(), row_deleted(), and
	row_changed() in the appropriate places. This needs some speed
	optimisation and probably has some memory leaks of the GlueItems.

2005-02-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/db_adddel.[h|cc]: Use the
	Gda::Value-based treemodel. It almost works.

2005-02-18  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_addel/: Added a Gda::Value-based custom
	treemodel, but it's not used yet.

2005-02-18  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/db_adddel/: Removed sources that are duplicated
	in adddel, and just include them from there. We can not using the
	custom popup cellrenderer anyway when we start using gtkmm 2.6.

2005-02-17  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/adddel/: No longer uses Fields and Gda::Values
	at all.
	* glom/utility_widgets/db_addel/: A version of AddDel that deals with
	Fields and their Gda::Values, and nothing else.
	* glom/mode_data/box_data_list.[h|cc]: Use DbAddDel instead of AddDel,
	which deals with Values directly.
	* glom/data_structure/glomconversions.cc: parse_data() Prevent
	0 days and months, to avoid postgres errors.

0.8.11:

2005-02-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list.cc, box_data_details.cc:
	init_db_details(): Get shared connection earlier and keep it longer,
	so that we make fewer individual connections when getting data from
	the database. This make things faster.

2005-02-16  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/addedel/adddel.cc: get_column_field(): Return
	the id, which is the field name, not the name, which is the field
	title. This allows data entry in the list view when field titles
	are not equal to the names.

2005-02-15  Murray Cumming  <murrayc@murrayc.com>

	* glom/connectionpool.cc: Actually use the host details, so people
	can connect to postgres servers that are not on the local host.

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

	* glom/connection_pool.cc: connect(): Specify the template1 default
	database when we do not want to specify a database, because that seems
	to fail with newer versions of postgres, or on some systems, though
	I am not sure where it works and where it does not. Hopefully this
	template1 name is used on all distros.

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

	* Makefile.am: Add intltool-extract.in, intltool-merge.in,
	intltool-update.in to EXTRA_DIST, possibly fixing the build on some
	platforms. Bug #162932.

2004-12-26  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_list_related.cc: constructor: Show the
	AddDel widget so that it actually appears on the Details layout.
	Put the AddDel in a HIG-style frame.

2004-12-25  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtable.[h|cc]: Added a remove() override, so
	we remove the widget from the list in flowtable as well as from the
	base GtkContainer list. Do an extra reference() before calling
	gtk_widget_parent() if the widget is managed, like
	Gtk::Container::remove() does, so that this container acts like other
	gtkmm containers.

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

	* glom/utility_widgets/flowtable_withfields.[h|cc]: Keep a list of
	the portals, so we don't have to dynamic_cast the standard children()
	list so much. Use Bakery::View::remove_view() and delete in
	remove_all().

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

	* glom/dialog_connection.cc: #included libintl.h to fix build on some
	systems. Bug 161936 from Mike Castle.

2004-12-22  Murray Cumming  <murrayc@murrayc.com>

	* glom/base_db.[h|]cc], and all its derived classes:
	init_db_details(): Remove the database_name parameter, because we
	only every use one database now, and it is specified in the connection.
	Also split init_db_details() into init_db_details() and
	refresh_init_details(), so we can refresh the data without
	rebuilding the whole structure.
	* glom/mode_data/box_data_list_related.[h|cc]: Added
	get_relationship().
	* glom/utility_widgets/flowtable_withfields.[h|cc]: Added protected
	get_portals() to get all the related records portals whose from_key
	is the specified field. set_field_value(): Look for portals that
	should refresh when the field value changes, and refresh them.
	Make FlowTableWithFields inherit from View_Composite_Glom, so that
	it can be a sub-view, so that it can access the document, so that it
	can get the full Relationship details instead of just the relationship
	name.

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

	* glom/mode_data/dialog_layout_details.cc: save_to_document(): Set
	the sequences of top-level groups, so they do not all get the default
	zero, so that they all get loaded again, without replacing each other.
	* glom/glom.glade: dialog_design_layout: Added an Add Related button.
	Added dialog_choose_relationship.
	* glom/mode_data/treestore_layout.[h|cc]: Change the is_group model
	column to a enumed type column, so that items can be 1 of more than
	2 things.
	* glom/mode_data/dialog_layout_details.cc: Use the Add Related button,
	and the changed model column type.
	* glom/mode_data/: Added dialog_choose_relationship.[h|cc].
	* glom/data_structures/: Added layoutitem_related.[h|cc].
	* glom/document/document_glom.[h|cc]: save_before(), load_after():
	Load and save the new layout item type.
	* glom/navigation/box_tables.cc: fill_from_database(): Show the table
	title instead of the name when in operator mode.

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

	* docs/Makefile: Upload to my dreamhost account instead of sourceforge,
	so I can stop using sourceforge altogether.

2004-12-08  Christian Krause  <chkr@plauener.de>

	* Patch to fix Glib::wrap() build error with gcc 3.4.3.
	Bug #160245.

0.8.10:

2004-12-06  Murray Cumming  <murrayc@murrayc_debian>

	* glom/glom.glade: Gave lots of dialogs default buttons.

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

	* glom/data_structure/glom_conversions.cc: get_text_for_gda_value():
	return empty string instead of NULL, because this the result is meant
	for user display, not for SQL.
	* glom/data_structure/field.cc: sql(): Return NULL for non-text null.

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

	* glom/Document/document_glom.cc: load_after_layout_group(): Check for
	null pointers to avoid crash when opening some documents.

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

	* glom/application.cc: offer_new_or_existing(): Remove double delete
	of the dialog, to stop crash when creating new documents.

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

	* glom/application.[h|cc]: Add recreate_database() and use it from
	on_document_load() instead of showing the not-yet-implemented dialog.

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

	* glom/connection_pool.[h|cc]: Define ExceptionConnection, derived
	from std::exception. connect(): When attempting to connect to a
	specific database, try to connect to the server in general. Throw
	an exception that tells the caller that the connection details are OK,
	but that the database does not exist yet.
	* glom/application.cc: on_document_load(): If the connection fails
	only because the database does not exist yet, then offer to recreate
	it. Recreation is not actually implemented, however.
	Return true/false (requires bakery 2.3.11) so that the document
	will be closed if the user cancels a dialog during loading.

0.8.9:

2004-11-30  Murray Cumming  <murrayc@murrayc_debian>

	* glom/application.cc: offer_new_or_existing(): Respond to cancel of
	the new-database dialog.
	* glom/frame_glom.cc: alert_no_table(): Update the message. See the
	TODO.

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

	* glom/frame.cc create_database(): Show an informative dialog if the
	connection fails.
	* glom/glom.glade: Add the dialog_error_connection dialog.
	* glom/mode_data/box_data_list.cc: on_adddel_user_requested_add():
	Prevent crash when there is only one field and it is auto-generating.
	And actually add a row in this case without requiring data entry.

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

	* glom/connection_pool.cc: connect(): specify the database name in the
	connection string, when it is wanted, instead of using
	change_database(), because libgda needs that.

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

	* glom/connection_pool.[h|cc]: Added get/set_database()
	because postgres seems to need this specified at connection time.
	* glom/dialog_connection.cc: Use ConnectionPool::set_database().
	* Removed several extra ;s that g++ 3.4 complains about.

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

	* glom/application.[h|cc]: Override Bakery::App::init_menus_file to
	remove useless Save and Save-As menu items.
	offer_new_or_existing(): Prefix new databases with glom_. The whole
	name could maybe be autogenerated in future. Start with an unprefixed
	name based on the filename.
	Offer a database name and title based on the filename.
	* glom/Document/document_glom.[h|cc]: Added get/set_database_title(), and
	save/load it in save_before() and load_after().
	* configure.in: Depend on bakery 2.3.9 because we need the new
	behaviour of Bakery::Document::get_name() for the default database
	name. Increase version.

2004-11-19  Murray Cumming  <murrayc@murrayc.com>

	* glom/: Added dialog_new_database.[h|cc], to request database name
	and title.
	* glom/: Added dialog_connection.[h|cc]: to replace
	glom/navigation/box_databases.[h|cc].
	* glom/frame.[h|cc]: Added create_database().
	* glom/application.[h|cc]: Ask for a new database name when creating
	new documents, and do not allow the user to navigate to a different
	database.
	* glom/glom.glade: UI for the 2 new dialogs.

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

	* utility_widgets/Makefile.am: Use noinst_PROGRAMS instead of
	bin_PROGRAMS so that my little test does not get installed.

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

	* utility_widgets/flowtable.[h|cc]: Draw some simple dotted lines
	between the items to make the design mode look different than the data
	mode.
	* mode_data/box_data_details.[h|cc]: Override on_userlevel_changed()
	to call FlowTable::set_design_mode(), to show or hide the lines. This
	doesn't quite work - it draws more lines immediately after switching
	to developer mode, but less when just switching tabs.
	* Document_Glom::get_table_info_with_add(): Set the table name of the
	new info when it adds, so that we actually remember new tables.

2004-11-06  Amanpreet Singh Alam <aalam@redhat.com>

	* configure.in: pa [Punjabi] is added tp ALL_LINGUAS

2004-10-29  Mike Castle  <dalgoda@ix.netcom.com>

	* Added lots of libintl.h includes to fix build on some platforms.

2004-10-18  Baris Cicek <baris@teamforce.name.tr>

	* configure.in:  Added tr to ALL_LINGUAS

2004-08-20  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* configure.in: Added es to ALL_LINGUAS

2004-08-11  Ankit Patel <ankit@redhat.com>

	* configure.in : Added "gu" to ALL_LINGUAS.

0.8.8:

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

	* glom/data_structure/: Added layouts sub-directory, and moved layout
	classes into it. Created a polymorphic heirarchy of layout items -
	currently LayoutItem_Field and LayoutGroup for fields and groups of
	fields.
	* glom/data_structure/layoutgroup.[h|cc]: Removed m_others. Designers
	must put fields in a top-level group with no title, and that's the
	default.
        * glom/document/document_glom.[h}cc]: Allow nested layout groups.
	* glom/mode_data/dialog_layout_details.[h|cc]: Use only one TreeView
	instead of 2, using a TreeStore instead of a ListStore, to show fields
	inside groups, and with nested groups. Allow the user to specify the
	number of columns for the groups.
	* glom/mode_data/: Added treestore_layout.[h|cc], so that we can
	override the vfunc to control whether items can be dragged into other
	items.

2004-07-28  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtablewithfields.cc: add_field():
	Right-align the labels. TODO: Does not actually work.

2004-07-18  Murray Cumming  <murrayc@murrayc.com>

	* docs/user-guide/C/glom.xml: Explain how to use glom as an Operator
	and as a Developer.

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

	* glom/data_structure/field.cc: sql(): Create sql text representation
	depending on the expected value type rather than the actual value
	type, to prevent SQL errors when using relationships between fields of
	different types.

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

	* glom/mode_design/tables_relationships.[h|cc]: Actually delete
	relationships when the Delete button is pressed.

0.8.7:

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

	* configure.in: Depend on bakery 2.3.8, because that has a fix to
	prevent the crash when changing user levels on the details view when
	there are related records.

2004-07-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtable.cc: get_item_max_width(): Don't
	ignore the vertical padding between widgets, so that this does not
	incorrectly report that more items could be in the column.
	on_size_allocate(): Use = instead of += when using the single_items
	width to get the maximum width, to prevent a big gap between the
	first and second columns.

2004-07-09  Murray Cumming  <murrayc@murrayc.com>

	* glom/document/document_glom.cc: save_before(): Store the layout item
	sequence, so that the layout is not lost after a couple of saves.

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

	* glom/document/document_glom.cc: load_after(): Load the field
	calculation from the field node rather than the lookup node, because
	that is where we saved it.

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

	* glom/main.cc, application.[h|cc]: Make the application quit if the
	user presses cancel on the new-or-existing dialog.

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

	* glom/glom_python.cc: Make
	glom_evaluate_python_function_implementation() return a Value instead
	of a string, and take a field type parameter.
	* glom/box_db_table.cc: Remove record_new().
	* glom/mode_data/box_data.cc: Rename record_new_from_entered() to
	record_new() with an optional use_entered bool parameter, and use this
	everywhere instead of record_new_from_entered. This means that the
	first value entered in a new record in the list view will not be
	forgotten. Also, this now sets the default value from calculations
	where that is specified.

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

	* glom/utility_widgets/: Added datawidget.[h|cc]: This widget can hold
	either an EntryGlom or a checkbox, depending on the field type. Used
	this in the Field Definition dialog and the FlowTableWithFields for the
	Details view.

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

	* glom/data_structure/glomconversions: parse_value(): Return success
	when parsing empty date, time, and numbers as nulls.
	* glom/mode_design/fields/dialog_fielddefinition.cc:
	on_combo_lookup_relationship_changed(): Clear the list of fields
	before adding more.
	* glom/utility_widgets/flowtablewithfields.cc: Add a checkbox instead
	of an entryglom if it is a boolean field.

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

	* glom/navigation/box_tables.cc: fill_from_database(): make the window
	bigger when in developer mode, because there is more to see.
	* glom/mode_design/fields/dialog_fielddefinition.[h|cc]: Use an
	EntryGlom instead of an Entry for the default value, so that it gets
	validated and internationalized and so that the value does not get
	interpreted as a string. This should deal with NULL properly.
	* glom/utilty_widgets/entryglom.[h|cc]: Add methods to get and set
	values so that code does not need to get the specific widget.
	* glom/data_structure/field.[h|cc]: Have both canonical and
	translated field type names, and make this clearer in the API. This
	allows us to use the english names in the XML document, but show the
	translated names in the user-interface.

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

	* Embed python for calculated fields:
	* scripts/macros.m4: GLOM_ARG_ENABLE_WARNINGS: Add -Wno-long-long so
	that the C++ compiler does not complain about the long longs in the
	python headers.
	* Added acinclude.m4, copied from pygtk, with additions from the
	version in Plannet. Used the AM_CHECK_PYTHON_INCLUDES macro in
	configure.in to detect the python headers and libs.
	* glom/glade.glom: Added widgets for field calculation to the
	Field Definition dialog.
	* glom/mode_design/fields/dialog_fielddefinition.[h|cc]: Load and save
	the field calculation.
	* glom/mode_design/fields/: Added dialog_fieldcalculation.[h|cc] that
	can be opened from the Field Definition window to edit and test the
	python code.
	* glom/: Added glom_python.[h|cc]: With a function that can evaluate
	arbitrary python code as if it is a python function definition.
	* glom/main.cc: Intialize and terminate the python runtime.

0.8.6:

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

	* glom/main.cc: Accept a URI on the command line, and use it
	to open an existing document if any.
	* glom/application.[h|cc]: Add URI parameter to init(), and use it.
	* glom/data_structure/layoutgroup.[h|cc]: Add boolean m_others
	member variable and use it instead of checking the group name.

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

	* glom/navigation/box_databases.cc: Use the UNIX user name by default,
	because it is often the same as the postgres user name.

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

	* glom/application.[h|cc]: Add intermediate signal handlers for the
	User Level menu items because use of sigc::bind with RefPtrs might be
	causing crashes.

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

	* glom/navigation/box_tables.cc: fill_from_database(): Correct typo so
	that the hidden status is shown correctly.

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

	* glom/glade.glom: In Table Navigation, change Cancel button to a close
	button, because this window is opened to edit as well as to navigate.
	* glom/navigatin/box_tables.cc: Make sure that changes are saved to
	the document immediately, because we no longer automatically ask
	all views to save into the document before writing to disk.

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

	* glom/document/Document_Glom.cc: set_modified(): Call save_before()
	and write_to_disk() instead of save() because that gets all the data
	from the views again.

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

	* glom/document/Document_Glom.cc: set_modified(): Do nothing if the
	modified status is already what it would be set to, to prevent
	infinite loops.
	* glom/application.cc offer_new_or_existing(): Keep offering if the
	user cancels at some stage.

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

	* glom/document/Document_Glom.cc: When in developer mode, save all
	changes immediately and automatically. Lets see how much disk activity
	this creates.

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

	* glom/applciation,cc init_layout(): Do not create the toolbar,
	because it is not useful for this application.

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

	* glom/navigation/box_db_tables.cc: save_to_document(): Only save
	something when something has been modified.

2004-07-04  Christophe Merlet  <redfox@redfoxcenter.org>

	* configure.in: Added "fr" (French) to ALL_LINGUAS.

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

	* glom/document/Document_Glom.[h|cc]: Cache all the data in
	member variables and only deal with the XML DOM when loading and
	saving, in overrides of load_before() and save_after(). This makes the
	code nicer and faster.

2004-07-02  Murray Cumming  <murrayc@murrayc.com>

	* Renamed all the ugly on_AddDel_* methods to slightly less ugly
	on_adddel_* methods.

2004-07-02  Murray Cumming  <murrayc@murrayc.com>

	* Added glom.keys and glom.mime, and added rules in Makefile.am to
	install them. This is for the old MIME-type registration system,
	because GNOME 2.6 seems to need both the old and new systems.

0.8.5:

2004-07-02  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/adddel/adddel_withbuttons.cc: Use a stock
	Open button instead of one that says Edit. It's nicer.
	* glom/mode_find/box_data_list_find.cc: Make the Find button position
	sensible.

2004-07-02  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_find/box_data_list_find.cc fill_from_database(): Save the
	fields into m_Fields, so that get_WhereClause() knows about them. Find
	in the List view now works.

2004-07-02  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtablewithfields: Handle field_edited
	signal of sub-flowtables so that glom responds to editing of a field
	in a group on the Details view.

2004-07-02  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data.[h|cc] and derived classes: Change
	get_Entered_Field to get_entered_field_data() which takes a Field and
	returns a Gnome::Gda::Value. This makes Find mode work for the Details
	view at least.

2004-07-02  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_find/: Make the find mode show some widgets, by
	re-activating some old code and adding the boxes and notebooks to the
	Bakery composite View so that they know about the document.

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

	* glom/navigation/box_db_tables.cc: on_AddDel_changed(): Update the
	document properly when a table is renamed, so that glom does not
	complain that it knows nothing about the table. Also, update the
	AddDel with the new table name as they key, so that it does not try
	to operate on the old table name.

0.8.4:

2004-06-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtable.cc on_size_allocate(): Correct x
	posititioning of 2nd column when using single items.
	get_field(): Put the recursive stuff in the field(sting id) overload,
	because that's the one that gets called by the field(field) overload.

2004-06-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtablewithfields.cc: Added add_group() and
	used it in mode_data/box_table_data.cc fill_layout(). Layout groups
	are now shown inside a HIG-style frame.
	* glom/navigation/box_tables.cc on_AddDel_add(), and
	  glom/mode_design/fields/box_db_tabledefnition.cc on_AddDel_add():
	Create a default title for tables and fields.

2004-06-29  Gareth Owen  <gowen72@yahoo.com>

	* configure.in: Added en_GB to ALL_LINGUAS

2004-06-27  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/flowtable.cc: get_minimum_column_height(),
	get_column_height(): Make single items take up the whole width,
	instead of affecting the width of the first sub-column.

2004-06-26  Murray Cumming  <murrayc@murrayc.com>

	* glom/box_db.[h|cc]: Add get_default_button() virtual method, and
	add implementation in glom/navigation/box_databases.cc, and used it in
	constructor Dialog_Glom, so that the connect button is the default
	button, so you can just press return in the password box to connect.

2004-06-25  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Removed AC_CONFIG_AUX_DIRS(), which was causing
	problems.

2004-06-24  Duarte Loreto <happyguy_pt@hotmail.com>

	* configure.in: Added Portuguese (pt) to ALL_LINGUAS.

0.8.2:

2004-06-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.[h|cc]: Added on override of on_menu_help_init() to
	merge in a menu item for the user guide. Called gnome_help_display() in
	the menu signal handler to show the docs.
	* glom/main.cc: Call gnome_program_init() so that gnome_help_display()
	has the information that it needs. Hopefully this coexists with our
	Gtk::Main initialisation.
	* configure.in: Depend on libgnome, because that is where
	gnome_help_display is. That is not good but at least it is not
	libgnomeui.
	* Makefile.am: Add some defines needed by gnome_program_init() - see
	comments in Makefile.am.

2004-06-20  Murray Cumming  <murrayc@murrayc.com>

	* configure.in, docs/user-guide: Added skeleton for the user guide.

2004-06-20  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_design/fields/box_db_table_definition.cc:
	get_field_definition(): Prevent crash - do not try to use a
	TreeModel::iterator as the index to a vector.

2004-06-19  Murray Cumming  <murrayc@murrayc.com>

	* Added glom.applications, to register glom as capable of opening
	glom files.
	* Makefile.am: Install glom.applications in the applications-registry.
	* glom/navigation/box_tables.cc: fill_from_database(): Show tables
	that are in the database, but not in the document, as hidden, if in
	developer mode.
	* glom/utility_widgets/adddel/adddel.cc : set_column_choices(): Get the
	cellrenderer for the view column, not the model column. Among other
	things, this makes the Relationships dialog work again.
	* glom/mode_design/dialog_relationships.[h|cc]: Add an on_hide()
	override to actually save the relationships when the dialog is closed.

0.8.2:

2004-06-18  Murray Cumming  <murrayc@murrayc.com>

	* glom/mode_data/box_data_details.cc fill_from_database(): Make
	auto-increment fields non-editable.

2004-06-18  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/adddel.cc add_column(Field): Make the column
	non-editable if it is an auto-increment field, because the user should
	never change or create those values.
	* glom/glom.glade: Create a HIG information dialog. Use it in
	glom/frame_glom.cc show_ok_dialog().
	* glom/mode_design/box_db_tabledefinition.cc: on_AddDel_del(): Correct
	for loop, so that we actually delete the field.
	* glom/base_db: get_fields_for_table(): Ignore any fields that are no
	longer in the database. Among other things, this makes the field
	definition window update correctly after deleting a field.
	* glom/frame_glom.cc: Update the data view when the fields window
	is closed, because the structure might have changed.
	* glom/data_structure/glomconversions.cc: parse_value(): When parsing
	a string as a number, create a GdaNumeric-based GdaValue instead of a
	float, because that is the numeric type that we are using eveywhere.
	Actually, maybe it's not the best type.
	* All over the place: Fixed lots of primary_key arguments to be
	Gnome::Gda::Values rather than strings, and therefore made sure that
	Field::sql() was used with them.

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

	* glom/document/document_glom.[h|cc]: Added get_default_table().
	* glom/frame_glom.cc: on_Box_Databases_selected(): open the default
	table instead of showing the list of tables, if there is a default
	table.

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

	* glom/glade.glom, glom/mode_design/fields/dialog_fielddefinition.cc:
	Moved Default Value into its own Notebook tab, with new Lookup widgets.
	* glom/mode_data/box_data_list.cc: Make the rows have alternating
	colors when the theme does that. Among other things, this makes the
	data list look different to the field list.
	* The lookup details are not actually used yet to do any lookups.

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

	* glom/utility_widgets/adddel/adddel.[h|cc]: Simplifified the code for
	the placeholder row a bit.
	* glom/navigation/box_db_tables.cc,
	glom/mode_design/fields/box_table_field_definitions.cc: Fixed some odd
	focus errors (hopefully) caused by rebuilding the TreeModel in a
	CellRenderer signal handler.
	* glom/mode_design/fields/box_table_field_definitions.cc:
	get_field_definition(): Store the field title in the result, not in
	the temporary field instance, so that new titles are really saved.

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

	* glom/navigation/box_tables.cc: on_AddDel_changed(): Implement
	renaming of tables.

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

	* glom/mode_data/box_data_list.cc: Corrected problems with the
	AddDel changes: Adding a record works again, and editing a list record
	shows the correct record in the Details view.

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

	* glom/utility_widgets/adddel.[h|cc]: add_item(), remove_item(),
	get_row() now use a key value instead of the value in the first column.
	This is a hidden TreeModel column. There is also a bool placeholder
	column, used to mark the blank row that is for the user to add a new
	row. This scheme should make it easier to handle reorderered rows, and
	it allows us to get a unique identifier for a changed row even when
	responding to a change an it is the first row (such as a field name)
	that has changed.

2004-06-14  Murray Cumming  <murrayc@murrayc.com>

	* glom/utility_widgets/adddel.[h|cc]: The API now uses Gtk::TreeModel
	iterators instead of integer indexes. The previous API was an
	abstraction layer that is no longer required now that we have
	Gtk::TreeView and plan to keep using it.
	* other files: Adapted accordingly.

0.8.1:

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

	* glom/application.cc: show_hint(): Do not show the help hints at the
	bottom - they are just annoying and not really necessary anymore.

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

	* glom/data_structure/glomconversions.cc: Simplify the time_get and
	time_put code by using the default template iterators.

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

	* glom/data_structure/glomconversions.cc: Various corrections from
	Daniel Elstner (king of C++). Also fallback to parsing time in the C
	locale, because parsing in the current locale never seems to work.
	* glom/utility_widgets/adddel/adddel.cc: on_treeview_celledited(),
	  glom/utility)widgets/entryglom: check_changed(): Update the entry
	with the text as it would be displayed in the locale, after editing,
	so that the user gets immediate feedback.

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

	* glom/dialog_data_invalid.[h|cc}, glom.glade: New dialog to show
	when the user enters incorrect data, with advice, and offer to revert.
	glom/utility_widgets/entryglom.cc: check_for_changes(): Show the new
	dialog, and put the focus back in the entry if the user tries again.
	* glom/utility_widgets/adddel/adddel.cc: on_treeview_cell_edited():
	Do the same, though the cell is obviously not reactivated properly.

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

	* glom/utility_widgets/entryglom.cc: check_for_change(): Complain
	about unparseable data (such as dates and times) instead of sending
	garbage to the database. This dialog should be improved (see comments)
	and we need the same thing for the List view.

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

	* Moved generic parse/format routines to
	glom/data_structure/glomconversions.[h|cc] from
	glom/utility_widgets/entryglom.[h|cc].
	* glom/utility_widgets/adddel/adddel.[h|cc]: Add add_column() override
	that takes a Field. Add set_value(Gda::Value) and get_value_as_value()
	methods that use the glomconversions.
	* glom/mode_data/box_data_list.cc: fill_from_database(),
	on_adddel_changed(): Use the GdaValue-based AddDel API so that dates,
	times, and numbers are shown and parsed as per the locale.

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

	* glom/utility_widgets/flowtable_withfields.cc: Change all parsing to
	use C++ streams and facets, and rearranged them into generic
	conversion routines that can be used elsewhere and should be moved
	elsewhere too. Added conversions to ISO formats, fo use in SQL
	statments.
	* glom/data_structure/field.cc: sql(): Use these conversion routines
	to get text representations for SQL.

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

	* glom/utility_widgets/flowtable_withfields.cc: get_suitable_width():
	Use static locale-specific conversion function from EntryGlom to get
	example text so that the number, date, and time fields have suitable
	widths in all locales.

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

	* po/: Update it.po from Albert Paro.
	* configure.in: Re-enabled it.po now that the invalid multibyte
	sequences are fixed.

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

	* Do locale-specific display and parsing of dates, times, and numbers
	in the Data Details.
	* glom/utility_widgets/entryglom.[h|cc]: Added Gda::Value-based
	get_value() and set_value(), which show and parse the text based on
	the field type and the locale, though there are still some TODOS in
	the code.
	* glom/mode_data/box_data_details.cc: Use EntryGlom::set/get_value()
	instead of set/get_text(), so we delegate parsing/representation to
	the EntryGlom.

2004-06-10  Adam Weinberger  <adamw@gnome.org>

	* configure.in: Added en_CA to ALL_LINGUAS.

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

	* glom/utility_widgets/entryglom.[h|cc]: Started to add validation,
	depending on the field type.

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

	* glom/data_structure/: Removed fieldtype.[h|cc] to simplify things,
	moving some of the static functions into the Field class.

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

	* glom/utility_widgets/flowtable_withstyles.[h|cc]: Use PangoLayout to
	calculate an appropriate width for fields of different types. Need to
	do locale-specific stuff here though.

2004-06-10  Gustavo Noronha Silva  <kov@debian.org>

	* configure.in: added pt_BR to ALL_LINGUAS

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

	* Added macros/macros.m4, and used the macro in configure.in, to add
	--enable-warnings configure options, and used them by default in
	autogen.sh. So now it builds with warnings by default.

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

	* glom/navigation/box_tables.cc: Handle AddDel::signal_user_changed so
	that changes are saved immediately. It does not update the list of
	non-hidden tables properly yet though. The AddDel columns are no
	longer editable when in operator mode.
	* glom/frame_glom.[h|cc]: Do not allow the user to design fields,
	relationships, or layouts if no table has been selected.
	* glom/application.cc, frame_glom.[h|cc]: on_menu_userlevel_*():
	Use sigc::bind to send the RadioAction to the signal handler, so we
	can check if it is active, because the signal seems to be sent both
	when the menu item is un-activated (as a result of another radioaction
	being activated) and when it is activated.

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

	* glom/box_db.[h|cc]: Move the database stuff into the Base_DB class to
	make the code a bit clearer. Connect to the signal of the document in
	a set_document() override instead of the on_load_document() override.

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

	* po/il.po: Italian translation from Alberto Paro.
	* various headers: Alberto Paro added includes for libintl.h because
	he says gettext() is not defined without them. It is strange that it
	works for me, but they do no harm. I need to look at this properly.

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

	* po/de.po: German translation from Hendrik Brandt.

2004-06-09  Murray Cumming  <murrayc@murrayc.com>

	* Mode menu: removed the Design Mode.
	* Developer menu: Added Fields, Relatationships, Users, and Layout, to
	show the same functionality in secondary windows.

2004-06-09  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "sv" to ALL_LINGUAS.

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

	* glom/application.[h|cc], glom/Document/Document_Glom.[h|cc], and
	others: The AppState (User Level) is now dependent on the document so
	different instances (each with 1 document) can have different
	user levels. And the user level is Operator if the file is read-only.
	* glom/Navigation/Box_DB_Tables.cc: Enable/Disable the extra UI in
	fill_from_database() instead of the constructor, so that they are
	changed when the user level changes. The table title is not yet shown
	instead of the table name when in operator mode.

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

	* Changed all source code filenames to lowercase, because it was
	getting ugly, and imported into GNOME cvs.

0.8.0:

2004-06-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/application.cc: init_menus(): Give Mode/Find a control-F
	shortcut. Find does not work yet.
	* glom/Mode_Design/Box_Table_FieldDefinitions: Show the field titles
	in the list of fields.
	* Changed all std::strings to Glib::ustrings. Thanks regexxer.
	* glom/Document/Document_Glom.cc set_data_layout_groups(): Really save
	the groups.

2004-06-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/Data_Structure/Field.cc: sql(): Put quotes around dates and
	time, so that entering them works in Date mode.

2004-06-06  Murray Cumming  <murrayc@murrayc.com>

	* glom/Document/Document_Glom.cc: set_tables(): Removed old code that
	caused tables to always be marked as hidden.
	* glom/Mode_Data/Box_Data_Details.cc: Change Related Records frame to
	HIG-style.

2004-06-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/Mode_Data/Box_Data.cc: get_fields_to_show(): Remove any fields
	that are no longer in the database. This method is horribly
	inefficient.
	* glom/Mode_Data/Box_Data_Details.cc: fill_related(): Do not try to
	show records from a relationship that uses a field that does not exist
	any longer in the other table.
	* Detail and List use Filed::value_to_string(), which deals with NULLs
	instead of filling them with the text NULL.

2004-06-05  Murray Cumming  <murrayc@murrayc.com>

	* glom/Frame_Glom.cc: on_userlevel_changed(): Really switch to data
	mode if the current mode is not allowed for the new userlevel.

2004-06-04  Murray Cumming  <murrayc@murrayc.com>

	* glom/Utility_Widgets/: Added EntryGlom, which is an Entry with an
	edited signal that is only emitted when the user finishes editing.
	* glom/Utility_Widgets/flowtable_withfields.[h|cc]: Use EntryGlom
	instead of Gtk::Entry.
	* glom/application.cc: init_menus(): Put the standard bakery save and
	saveas actions in the list of developer-mode actions, so that they
	will be disabled when in operator mode. Actually, I need to remove
	save anyway, because it should save automatically.
	* Added standard GPL copyright headers to all files.

2004-06-04  Murray Cumming  <murrayc@murrayc.com>

	* Data Details changing of data now works, though it is doing an
	insane amount of UPDATE commands.

2004-06-04  Murray Cumming  <murrayc@murrayc.com>

	* Data Layouts now show newly-added fields.

2004-06-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/Mode_Data/Box_Data_Details.cc: Reordering the fields in the
	Data Layout really works now.

2004-06-03  Murray Cumming  <murrayc@murrayc.com>

	* Show the table title in the Data Layout dialog, and on the main
	window.

2004-06-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/Utility_Widgets/flow_table.cc: on_allocate(): Fixed awful
	calculation bug, so the Data Details view now shows itself properly.

2004-06-03  Murray Cumming  <murrayc@murrayc.com>

	* glom/Document/Document_Glom.h: Changed get/set_hidden_tables() to
	get/set_tables(), using the new TableInfo class, so that we can
	save table titles.

2004-06-03  Murray Cumming  <murrayc@murrayc.com>

	* application.cc: init(): If it is a default empty document, offer
	a choice of opening an existing document, or starting a new document,
	to make it clearer that you need a document to work with the database.

2004-06-03  Murray Cumming  <murrayc@murrayc.com>

	* Navigation: The user can not open a table that the document does not
	know about. We really need up-to-date information in the document, so
	in future we must automatically-save it.
	* List entry: Works again. Instead of using the postgres
	serial/auto-increment field type, I have added a hack that does a
	max() to get the next value. Maybe we can fix libgda to make it
	work with serial.

2004-06-02  Murray Cumming  <murrayc@murrayc.com>

	* Box_DB_Data::get_fields_for_table() now gets some information from
	the document - the information that libgda does not tell us.

2004-06-01  Murray Cumming  <murrayc@murrayc.com>

	* All field information is now saved in the document when a table is
	opened, and auto_increment information from the database is ignored,
	because libgda does not give us that information.

2004-05-31  Murray Cumming  <murrayc@.com>

	* glom/Mode_Data/Box_Data_List::Fill(): Fixed some awful bugs - the
	list view now shows all the fields and stores changes properly.

2004-05-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/Document/Document_Glom.[h|cc]: get/set_data_layout*(): Removed
	the hidden_fields argument - now the LayoutItems have a m_hidden
	member instead.

2004-05-30  Murray Cumming  <murrayc@murrayc.com>

	* glom/Mode_Design/Box_DB_Table_Definition.cc:postgres_change_column():
	Use to_date(), to_number(), and to_timestamp(), when CAST does not
	work. So now all field type conversions work.

2004-05-30  Murray Cumming  <murrayc@murrayc.com>

	* Layout groups can not have duplicate names.

2004-05-29  Murray Cumming  <murrayc@murrayc.com>

	* Layout groups are now saved too.

2004-05-28  Murray Cumming  <murrayc@murrayc.com>

	* Layouts are now saved.

2004-05-28  Murray Cumming  <murrayc@murrayc.com>

	* The beginnings of the Data Layout dialog.

2004-05-28  Murray Cumming  <murrayc@murrayc.com>

	* Added Notebook_Glom::merge_special_menus() so that modes can have
	their own extra menus.
	* Added Box_Data::show_layout_dialog().

2004-05-16  Murray Cumming  <murrayc@murrayc.com>

	* FlowTable: Fixed several position problems.

2004-05-14  Murray Cumming  <murrayc@murrayc.com>

	* Combo_FieldType: made get give what you set.

2004-05-13  Murray Cumming  <murrayc@murrayc.com>

	* The Field Definition dialog is now done via libglademm.

2004-05-13  Murray Cumming  <murrayc@murrayc.com>

	* glom/Mode_Design/Fields/Combo_Type: Now derives from ComboBox instead
	of Combo.

2004-05-13  Murray Cumming  <murrayc@murrayc.com>

	* Added Data_Structure/FieldType, which defines some simple Glom-only
	types, and what underlying types to use for these. From now on, Glom
	can not be used on databases that do not use these simple types. It
	will refuse to edit fields that use other types.

2004-05-10  Murray Cumming  <murrayc@murrayc.com>

	* Box_Data_List: Gets specific fields (specified by document) instead
	of all fields.

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

	* FlowTable now has 2 widgets in each row of each column. Kind of
	works.

2004-05-06  Murray Cumming  <murrayc@murrayc.com>

	* AppState: Added userlevel_changed signal.

2004-05-05  Murray Cumming  <murrayc@murrayc.com>

	* Changing the field type works sometimes.

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

	* Added FlowTableWithFields, and used it a bit.

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

	* glom/Utility_Widgets:/ Addded FlowTable container.

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

	* App_Glom and Frame_Glom are now instantiated from glom.glade,
	with get_widget_derived().

2004-04-30  Murray Cumming  <murrayc@murrayc.com>

	* Information about which tables are hidden is now saved in the
	document.

2004-04-30  Murray Cumming  <murrayc@murrayc.com>

	* Replaced Connection with ConnectionPool which does more appropriate
	sharing of the connection.

2004-04-29  Murray Cumming  <murrayc@murrayc.com>

	* AddDel: Used an AddDelColumnInfo field to simplify it a bit.

2004-04-28  Murray Cumming  <murrayc@murrayc.com>

	* Box_Databases now loads its UI from a libglade file.

2004-04-28  Murray Cumming  <murrayc@murrayc.com>

	* Added FieldTypes class and used it to get the actual GdaValueTypes
	and therefore show the correct field type in the Table Definition.
	* Added User Level menu.

2004-04-27  Murray Cumming  <murrayc@murrayc.com>

	* AddDel: Used derived TreeViewColumn so we can store extra column
	information, so we can deal with reordered view columns.

2004-04-24  Murray Cumming  <murrayc@murrayc.com>

	* Creating tables works, though defining them does not. Creating
	databases does not work.

2004-04-23  Murray Cumming  <murrayc@murrayc.com>

	* Initial port from mysqlcppapi to libgdamm. It doesn't do much but
	you can navigate to a table with postgressql.

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

	* Updated for gtkmm 2.4 API.

0.7.0:

2003-02-15  Murray Cumming  <murrayc@usa.net>

	* glom/Dialog_Glom.[h|cc]: Inherit from Gtk::Dialog instead of
	Gtk::Window and use the action_area.

2003-02-15  Murray Cumming  <murrayc@usa.net>

	* Users can now see full Details of Related Records by choosing Edit.

2003-02-15  Murray Cumming  <murrayc@usa.net>

	* glom/Utility_Widgets/AddDel/AddDel.cc: Respected m_bHasRowTitles in
	get_value() and set_value(). This means that the Related Records pane
	in Data/Details now works again.

2003-02-15  Murray Cumming  <murrayc@usa.net>

	* Updated for latest mysqlcppapi API - using shared, reference-counted
	objects.

0.6.0:

2003-01-20  Murray Cumming <murrayc@usa.net>

	* Did some funky TreeView on_button_press_event() stuff to fix the
	context-menu and Design/Relationships popups.

2003-01-20  Murray Cumming  <murrayc@usa.net>

	* Now uses true bool model column types. This was achieved with some
	unpleasantly lengthy new/delete and switch/case stuff.

2003-01-14  Murray Cumming <murrayc@usa.net>

	* Data_Details works.
	* Adding new records works.
	* Used more stock buttons.

2003-01-13  Murray Cumming  <murrayc@usa.net>

	* Opening of database when opening old documents works again - the
	Bakery API had changed so on_Document_load() needed to be changed to
	on_document_load() so that it was an override.
	* Data_Details kind of works.

2003-01-13  Murray Cumming  <murrayc@usa.net>

	* popup columns now work.

2003-01-13  Murray Cumming  <murrayc@usa.net>

	* Column titles are now set properly.
	* Field definition editing works via the Edit dialog.
	* Added CellRendererList, from the gtkmm examples - doesn't quite
	work yet.

2003-01-12  Murray Cumming  <murrayc@usa.net>

	* Updated for Bakery 1.3.7, with no gnomemm dependency.

2002-12-26  Murray Cumming  <murrayc@usa.net>

	* configure.in, Makefile.am: Used intltool, like the gnomemm_hello
	build files. The intl, macros, and scripts directories are no longer
	used.
	* Updated for latest libxml++ API.
	* Added std:: prefixes where necessary.

2002-11-19  Murray Cumming  <murrayc@usa.net>

	* Used Bakery::Document_XML now that it is part of Bakery itself, and
	use libxml++ API instead of Xerces-C++ because that is what it uses.
	This means that there are no more --with- options needed by the
	configure script.

2002-09-20  Murray Cumming  <murrayc@usa.net>

	* Disabled part of Notebook_Find to prevent warnings and segfault
	on exit. It didn't do anything yet anyway.

2002-09-19  Murray Cummign  <murrayc@usa.net>

	* Dialog_FieldDefinition: Show()ed the child notebook, so field
	definition editing works again.

2002-09-18  Murray Cumming  <murrayc@usa.net>

	* Notebook_Glom: The signal handlers were hiding the base class
	implementations.
	* Frame_Glom::show_ok_dialog(): Now use Gtk::MessageDialog.

2002-09-13  Murray Cumming  <murrayc@usa.net>

	* AddDel widget: Adding of items now works, so Glom can create new
	databases and tables again.

2002-08-07  Murray Cummign  <murrayc@usa.net>

	* Updated for latest Menu::popup() API.

2002-07-27  Murray Cumming  <murrayc@localhost.localdomain>

	* Updated for latest pack_start enum and use new TreeView editable
	cells method.

2002-07-12  Murray Cumming  <murrayc@usa.net>

	* Updated for changed gtkmm2 pack_start() and TreeView APIs.

2002-03-19  Murray Cumming  <murrayc@usa.net

	* Used pkg-config checks instead of the various old .m4 macros,
	and changed Xerces C++ version to 1.7.
	* Replaced gtk-- 1.2 includes with gtkmm2 includes.
	* Prefixed Xerces C++ includes with xercesc, as required by 1.7.
	* Changed e.g. clicked.connect(SigC::slot(this to
	signal_clicked.connect(SigC::slot(*this.
	* Replaced use of Gnome::Dialog with Gtk::MessageDialog.
	* Replaced use of Gnome::PropertyBox with a similar, but custom Window
	class.
	* Changed Gtk::wrap() to Glib::wrap(), and gtkobj() to gobj().
   * Changed Gtk::Widget::set_usize() to set_default_size().
