2005-03-14 Murray Cumming * 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 * 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 * 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 * 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 * 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, * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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.