0.9.7: 2006-03-08 Murray Cumming * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * configure.in: Added "fi" to ALL_LINGUAS 2006-02-24 Murray Cumming * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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.