1.8.7:

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

	* glom/mode_data/flowtablewithfields.cc (add_field_at_position): Don't
	leak the Gtk::EventBox.

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-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.

1.8.6:

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-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-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.

1.8.5:

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

	* glom/mode_design/users/dialog_groups_list.cc: Added a missing quote 
	to fix the build.

2009-01-02  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.
	This should fix bug #566102 (Iain Lane)

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

	* configure.in:
	* 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.
	This requires goocanvasmm 0.13.

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.

1.8.4:

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-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/utility_widgets/canvas/canvas_group_grid.cc: create_lines():
	Do not create the grid lines with 0 steps, to avoid a hang.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/303453
	(elmergato)

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)

	This was backported from svn trunk because it also allows the sort to 
	be used for the top-level of reports.
	Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/glom/+bug/303425
	(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.

1.8.3:

2008-11-29  Armin Burgmeier  <armin@openismus.com>

	* Makefile.am: Changed DISTCLEAN_FILES to DISTCLEANFILES, to fix make
	distcheck.

2008-11-29  Armin Burgmeier  <armin@openismus.com>

	* configure.in: Depend on libgda-postgres-3.0 instead of
	libgda-postgres-4.0.

2008-11-28  Armin Burgmeier  <armin@openismus.com>

	* win32/build-installer:
	* win32/glom.iss.in: Update for Glom 1.8.

1.8.2:

2008-11-26  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Revert the dependency on libgda-4.0. I am not sure how 
	that got into this branch.

	* 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  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:
	Revert back to the old goocanvasmm enum names to avoid the need for a 
	new goocanvasmm release.

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-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 label 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/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  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-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.

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(),
        Glom.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
	  (Glom.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(), Glom.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 (Glom.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:
	Glom.construct_specified_columns(): Connect to the start_editing 
	signal., Glom.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(), Glom.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 (Glom.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 (Glom.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(),
	  Glom.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 Glom.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:
	Glom.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().

