0.9.3: 2006-02-08 Murray Cumming * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * configure.in Added vi in ALL_LINGUAS line. 2006-01-27 Murray Cumming * 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 * 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 * 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 * glom/application.cc: Reuse the Translations window, so it shows the last-used locale when shown again. 2006-01-25 Murray Cumming * 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 * 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 * 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 * 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 in the tree model. * po/POTFILES.in: Added the new files. 2006-01-23 Murray Cumming * 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 * 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 * 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 * Many files: Use Field via sharedptr, 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 * po/POTFILES.in: Mention the desktop file. 2006-01-21 Murray Cumming * 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 * 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 * 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.