0.9.3:

2006-02-08  Murray Cumming  <[email protected]>

       * 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  <[email protected]>

       * 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 <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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 <[email protected]>

       * configure.in  Added vi in ALL_LINGUAS line.

2006-01-27  Murray Cumming  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * glom/application.cc: Reuse the Translations window, so it shows the
       last-used locale when shown again.

2006-01-25  Murray Cumming  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

       * po/POTFILES.in: Mention the desktop file.

2006-01-21  Murray Cumming  <[email protected]>

       * 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  <[email protected]>

       * 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  <[email protected]>

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