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

