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.