[glom/feature_choices_related_layout] In progress



commit 788dfe840af70eaeb2343fd7214a0624a6a758ff
Author: Murray Cumming <murrayc murrayc com>
Date:   Tue Sep 7 13:19:12 2010 +0200

    In progress

 glom/libglom/utils.cc                              |    8 ++++++++
 glom/libglom/utils.h                               |    4 ++++
 .../layout/layout_item_dialogs/box_formatting.cc   |    8 +++++---
 .../layout_item_dialogs/dialog_fieldslist.cc       |    1 +
 .../layout/layout_item_dialogs/dialog_group_by.cc  |    2 +-
 5 files changed, 19 insertions(+), 4 deletions(-)
---
diff --git a/glom/libglom/utils.cc b/glom/libglom/utils.cc
index 8fb125c..2691fa0 100644
--- a/glom/libglom/utils.cc
+++ b/glom/libglom/utils.cc
@@ -1157,4 +1157,12 @@ Glib::ustring Utils::get_list_of_layout_items_for_display(const LayoutGroup::typ
   return result;
 }
 
+Glib::ustring Utils::get_list_of_layout_items_for_display(const sharedptr<const LayoutGroup>& layout_group)
+{
+  if(layout_group)
+    return get_list_of_layout_items_for_display(layout_group->m_list_items);
+  else
+    return Glib::ustring();
+}
+
 } //namespace Glom
diff --git a/glom/libglom/utils.h b/glom/libglom/utils.h
index e50e350..4415e08 100644
--- a/glom/libglom/utils.h
+++ b/glom/libglom/utils.h
@@ -181,6 +181,10 @@ Glib::ustring get_directory_child_with_suffix(const Glib::ustring& uri_directory
  */
 Glib::ustring get_list_of_layout_items_for_display(const LayoutGroup::type_list_items& list_layout_fields);
 
+/** Get a string to display to the user, as a representation of a list of layout items.
+ */
+Glib::ustring get_list_of_layout_items_for_display(const sharedptr<const LayoutGroup>& layout_group);
+
 } //namespace Utils
 
 } //namespace Glom
diff --git a/glom/mode_design/layout/layout_item_dialogs/box_formatting.cc b/glom/mode_design/layout/layout_item_dialogs/box_formatting.cc
index 174f91a..a85ca73 100644
--- a/glom/mode_design/layout/layout_item_dialogs/box_formatting.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/box_formatting.cc
@@ -275,14 +275,16 @@ void Box_Formatting::set_formatting(const FieldFormatting& format, bool show_num
 
     //Show the list of fields in a label:
     const Glib::ustring text_extra_fields =
-      Utils::get_list_of_layout_items_for_display(choices_field_extras->m_list_items);
+      Utils::get_list_of_layout_items_for_display(choices_field_extras);
      m_label_choices_extra_fields->set_text(text_extra_fields);
 
     //Update the contents of the dialog that will be shown if Edit is clicked:
+    const Glib::ustring related_to_table =
+      (choices_relationship ? choices_relationship->get_to_table() : Glib::ustring());
     if(choices_field_extras)
-      m_dialog_choices_extra_fields->set_fields(m_table_name, choices_field_extras->m_list_items);
+      m_dialog_choices_extra_fields->set_fields(related_to_table, choices_field_extras->m_list_items);
     else
-      m_dialog_choices_extra_fields->set_fields(m_table_name, LayoutGroup::type_list_items());
+      m_dialog_choices_extra_fields->set_fields(related_to_table, LayoutGroup::type_list_items());
 
 
 
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc b/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc
index 17c4f39..ca146e7 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc
@@ -218,6 +218,7 @@ void Dialog_FieldsList::on_treeview_fields_selection_changed()
 
 void Dialog_FieldsList::on_button_add_field()
 {
+  std::cout << "debug: " << m_table_name << std::endl;
   //Get the chosen fields:
   type_list_field_items fields_list = offer_field_list(m_table_name, this);
   for(type_list_field_items::iterator iter_chosen = fields_list.begin(); iter_chosen != fields_list.end(); ++iter_chosen)
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc b/glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc
index dce12be..147b550 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc
@@ -210,7 +210,7 @@ void Dialog_GroupBy::update_labels()
 
   //Secondary Fields:
   const Glib::ustring text_secondary_fields =
-    Utils::get_list_of_layout_items_for_display(m_layout_item->m_group_secondary_fields->m_list_items);
+    Utils::get_list_of_layout_items_for_display(m_layout_item->m_group_secondary_fields);
   m_label_secondary_fields->set_text(text_secondary_fields);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]