[glom] Design: Related Records: Allow the developer to specify how many rows to show.



commit 2d1cfeb934e8d297496b377251550d9f8c719954
Author: Murray Cumming <murrayc murrayc com>
Date:   Mon Jul 25 11:56:30 2011 +0200

    Design: Related Records: Allow the developer to specify how many rows to show.
    
    * glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: Add
    set/get_rows_count() to specify how many rows to show.
    * glom/libglom/document/document.cc: Load and save that rows count.
    * ui/developer/window_data_layout.glade: Add a SpinButton to specify the
    number of rows to show in related records portals.
    * glom/mode_design/layout/dialog_layout_details.[h|cc]: Get that widget,
    but hide it in this base class.
    * glom/mode_design/layout/dialog_layout_list_related.[h|cc]:
    Constructor: Show and setup the spinbutton.
    set_document(): Set the spinbuttons's contents.
    save_to_document(): Save it back to the portal layout item.
    * glom/mode_data/box_data_list_related.cc: create_layout():
    Use DbAddDel::set_height_rows() to try to show the correct number of rows.

 ChangeLog                                          |   18 ++
 .../data_structure/layout/layoutitem_portal.cc     |   17 +-
 .../data_structure/layout/layoutitem_portal.h      |   10 +
 glom/libglom/document/document.cc                  |   12 +-
 glom/mode_data/box_data_list_related.cc            |    8 +-
 glom/mode_design/layout/dialog_layout_details.cc   |   11 +-
 glom/mode_design/layout/dialog_layout_details.h    |    3 +
 .../layout/dialog_layout_list_related.cc           |   19 ++-
 .../layout/dialog_layout_list_related.h            |    2 +-
 ui/developer/window_data_layout.glade              |  297 ++++++++++++++-----
 10 files changed, 310 insertions(+), 87 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 69b07c2..34fdb57 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2011-07-25  Murray Cumming  <murrayc murrayc com>
+
+	Design: Related Records: Allow the developer to specify how many rows to show.
+
+	* glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: Add 
+	set/get_rows_count() to specify how many rows to show.
+	* glom/libglom/document/document.cc: Load and save that rows count.
+	* ui/developer/window_data_layout.glade: Add a SpinButton to specify the 
+	number of rows to show in related records portals.
+	* glom/mode_design/layout/dialog_layout_details.[h|cc]: Get that widget, 
+	but hide it in this base class.
+	* glom/mode_design/layout/dialog_layout_list_related.[h|cc]:
+	Constructor: Show and setup the spinbutton.
+	set_document(): Set the spinbuttons's contents.
+	save_to_document(): Save it back to the portal layout item.
+	* glom/mode_data/box_data_list_related.cc: create_layout():
+	Use DbAddDel::set_height_rows() to try to show the correct number of rows.
+	
 2011-07-20  Murray Cumming  <murrayc murrayc com>
 
 	ImageGlom: Ignore warning about invalid GdaBinary GValue.
diff --git a/glom/libglom/data_structure/layout/layoutitem_portal.cc b/glom/libglom/data_structure/layout/layoutitem_portal.cc
index fe8a9a2..b1ea335 100644
--- a/glom/libglom/data_structure/layout/layoutitem_portal.cc
+++ b/glom/libglom/data_structure/layout/layoutitem_portal.cc
@@ -26,7 +26,8 @@ namespace Glom
 
 LayoutItem_Portal::LayoutItem_Portal()
 : m_print_layout_row_height(20), //arbitrary default.
-  m_navigation_type(LayoutItem_Portal::NAVIGATION_AUTOMATIC)
+  m_navigation_type(LayoutItem_Portal::NAVIGATION_AUTOMATIC),
+  m_rows_count(6) //Sensible default.
 {
 }
 
@@ -36,7 +37,8 @@ LayoutItem_Portal::LayoutItem_Portal(const LayoutItem_Portal& src)
   //HasTitleSingular(src),
   m_navigation_relationship_specific(src.m_navigation_relationship_specific),
   m_print_layout_row_height(src.m_print_layout_row_height),
-  m_navigation_type(src.m_navigation_type)
+  m_navigation_type(src.m_navigation_type),
+  m_rows_count(src.m_rows_count)
 {
 }
 
@@ -59,6 +61,7 @@ LayoutItem_Portal& LayoutItem_Portal::operator=(const LayoutItem_Portal& src)
   m_navigation_relationship_specific = src.m_navigation_relationship_specific;
   m_print_layout_row_height = src.m_print_layout_row_height;
   m_navigation_type = src.m_navigation_type;
+  m_rows_count = src.m_rows_count;
 
   return *this;
 }
@@ -167,6 +170,16 @@ void LayoutItem_Portal::set_navigation_type(LayoutItem_Portal::navigation_type t
   m_navigation_type = type;
 }
 
+double LayoutItem_Portal::get_rows_count() const
+{
+  return m_rows_count;
+}
+  
+void LayoutItem_Portal::set_rows_count(double rows_count)
+{
+  m_rows_count = rows_count;
+}
+
 /*
 void LayoutItem_Portal::debug(guint level) const
 {
diff --git a/glom/libglom/data_structure/layout/layoutitem_portal.h b/glom/libglom/data_structure/layout/layoutitem_portal.h
index 962a1d8..d1272eb 100644
--- a/glom/libglom/data_structure/layout/layoutitem_portal.h
+++ b/glom/libglom/data_structure/layout/layoutitem_portal.h
@@ -98,6 +98,14 @@ public:
 
   /// This is used only for the print layouts.
   void set_print_layout_row_height(double row_height);
+  
+  /** Get the number of rows that should be displayed.
+   */
+  double get_rows_count() const;
+  
+  /** Set the number of rows that should be displayed.
+   */
+  void set_rows_count(double rows_count);
 
 
 private:
@@ -109,6 +117,8 @@ private:
 
   //If no navigation relationship has been specified then it will be automatically chosen or navigation will be disabled:
   navigation_type m_navigation_type;
+  
+  double m_rows_count;
 };
 
 } //namespace Glom
diff --git a/glom/libglom/document/document.cc b/glom/libglom/document/document.cc
index 78b3c65..6914f01 100644
--- a/glom/libglom/document/document.cc
+++ b/glom/libglom/document/document.cc
@@ -73,6 +73,7 @@ static const char GLOM_NODE_DATA_LAYOUT_NOTEBOOK[] = "data_layout_notebook";
 
 static const char GLOM_NODE_DATA_LAYOUT_PORTAL[] = "data_layout_portal";
 static const char GLOM_NODE_DATA_LAYOUT_PORTAL_NAVIGATIONRELATIONSHIP[] = "portal_navigation_relationship";
+static const char GLOM_ATTRIBUTE_PORTAL_ROWS_COUNT[] = "portal_rows_count";
 static const char GLOM_ATTRIBUTE_PORTAL_NAVIGATION_TYPE[] = "navigation_type";
 static const char GLOM_ATTRIBUTE_PORTAL_NAVIGATION_TYPE_AUTOMATIC[] = "automatic";
 static const char GLOM_ATTRIBUTE_PORTAL_NAVIGATION_TYPE_SPECIFIC[] = "specific";
@@ -2309,6 +2310,12 @@ void Document::load_after_layout_group(const xmlpp::Element* node, const Glib::u
         }
 
         load_after_layout_item_usesrelationship(element, table_name, portal);
+        
+        const double rows_count = 
+          get_node_attribute_value_as_decimal_double(element, 
+            GLOM_ATTRIBUTE_PORTAL_ROWS_COUNT);
+        if(rows_count) //0 is both a useless value and possible with older files that didn't have this attribute.
+          portal->set_rows_count(rows_count);
 
         xmlpp::Element* elementNavigationRelationshipSpecific = get_node_child_named(element, GLOM_NODE_DATA_LAYOUT_PORTAL_NAVIGATIONRELATIONSHIP);
         if(elementNavigationRelationshipSpecific)
@@ -3260,7 +3267,10 @@ void Document::save_before_layout_group(xmlpp::Element* node, const sharedptr<co
                 set_node_attribute_value(child_navigation_relationship,
                   GLOM_ATTRIBUTE_PORTAL_NAVIGATION_TYPE, navigation_type_string);
               }
-
+              
+              std::cout << "document: saving rows_count=" << portal->get_rows_count() << std::endl;
+              set_node_attribute_value_as_decimal_double(child, 
+                GLOM_ATTRIBUTE_PORTAL_ROWS_COUNT, portal->get_rows_count());
 
               //Print Layout specific stuff:
               set_node_attribute_value_as_decimal(child, GLOM_ATTRIBUTE_PORTAL_PRINT_LAYOUT_ROW_HEIGHT, portal->get_print_layout_row_height());
diff --git a/glom/mode_data/box_data_list_related.cc b/glom/mode_data/box_data_list_related.cc
index aa7095f..91a30d9 100644
--- a/glom/mode_data/box_data_list_related.cc
+++ b/glom/mode_data/box_data_list_related.cc
@@ -390,7 +390,13 @@ void Box_Data_List_Related::create_layout()
   //m_AddDel.set_columns_count(m_Fields.size());
 
   m_AddDel.set_table_name(Base_DB_Table::m_table_name);
-
+  
+  if(m_portal)
+  {
+    const double rows_count = m_portal->get_rows_count();
+    if(rows_count) //0 is a silly value.
+      m_AddDel.set_height_rows(rows_count);
+  }
 
   sharedptr<Field> field_primary_key = get_field_primary_key_for_table(Base_DB_Table::m_table_name);
   if(!field_primary_key)
diff --git a/glom/mode_design/layout/dialog_layout_details.cc b/glom/mode_design/layout/dialog_layout_details.cc
index ce93fba..1cd8cce 100644
--- a/glom/mode_design/layout/dialog_layout_details.cc
+++ b/glom/mode_design/layout/dialog_layout_details.cc
@@ -57,7 +57,9 @@ Dialog_Layout_Details::Dialog_Layout_Details(BaseObjectType* cobject, const Glib
   m_button_field_delete(0),
   m_button_formatting(0),
   m_button_edit(0),
-  m_label_table_name(0)
+  m_label_table_name(0),
+  m_hbox_rows_count(0),
+  m_spinbutton_rows_count(0)
 {
   // Get the alternate sets of widgets, only one of which should be shown:
   // Derived classes will hide one and show the other:
@@ -73,7 +75,12 @@ Dialog_Layout_Details::Dialog_Layout_Details(BaseObjectType* cobject, const Glib
   box_calendar->hide();
 
   builder->get_widget("label_table_name", m_label_table_name);
-
+  
+  //This is only shown in Dialog_Layout_List_Related:
+  builder->get_widget("hbox_rows_count", m_hbox_rows_count);
+  builder->get_widget("spinbutton_rows_count", m_spinbutton_rows_count);
+  m_hbox_rows_count->hide();
+  
   builder->get_widget("treeview_fields", m_treeview_fields);
   if(m_treeview_fields)
   {
diff --git a/glom/mode_design/layout/dialog_layout_details.h b/glom/mode_design/layout/dialog_layout_details.h
index 92c0f9d..70285f8 100644
--- a/glom/mode_design/layout/dialog_layout_details.h
+++ b/glom/mode_design/layout/dialog_layout_details.h
@@ -120,6 +120,9 @@ protected:
   Gtk::Button* m_button_formatting;
   Gtk::Button* m_button_edit;
   Gtk::Label* m_label_table_name;
+  
+  Gtk::Box* m_hbox_rows_count;
+  Gtk::SpinButton* m_spinbutton_rows_count;
 
   Glib::RefPtr<TreeStore_Layout> m_model_items;
 };
diff --git a/glom/mode_design/layout/dialog_layout_list_related.cc b/glom/mode_design/layout/dialog_layout_list_related.cc
index 85e8a34..19f7411 100644
--- a/glom/mode_design/layout/dialog_layout_list_related.cc
+++ b/glom/mode_design/layout/dialog_layout_list_related.cc
@@ -50,6 +50,12 @@ Dialog_Layout_List_Related::Dialog_Layout_List_Related(BaseObjectType* cobject,
   m_box_table_widgets->hide();
   m_box_related_table_widgets->show();
   m_box_related_navigation->show();
+  m_hbox_rows_count->show();
+  
+  m_spinbutton_rows_count->set_range(0, 100); //Otherwise only 0 would be allowed.
+  m_spinbutton_rows_count->set_increments(1, 10); //Otherwise the buttons do nothing.
+  m_spinbutton_rows_count->signal_value_changed().connect(
+    sigc::mem_fun(*this, &Dialog_Layout_List_Related::on_spinbutton_rows_count_changed));
 
   builder->get_widget_derived("combo_relationship_name", m_combo_relationship);
   m_combo_relationship->signal_changed().connect(sigc::mem_fun(*this, &Dialog_Layout_List_Related::on_combo_relationship_changed));
@@ -107,6 +113,8 @@ void Dialog_Layout_List_Related::set_document(const Glib::ustring& layout_name,
     m_portal = glom_sharedptr_clone(portal);
   else
     m_portal = sharedptr<LayoutItem_Portal>::create(); //The rest of the class assumes that this is not null.
+    
+  m_spinbutton_rows_count->set_value( m_portal->get_rows_count() );
 
   type_vecConstLayoutFields empty_fields; //Just to satisfy the base class.
   Dialog_Layout::set_document(layout_name, layout_platform, document, actual_from_table, empty_fields);
@@ -264,7 +272,7 @@ void Dialog_Layout_List_Related::save_to_document()
   if(m_modified)
   {
     //Get the data from the TreeView and store it in the document:
-
+    
     //Get the groups and their fields:
     Document::type_list_layout_groups mapGroups;
 
@@ -320,7 +328,9 @@ void Dialog_Layout_List_Related::save_to_document()
       uses_rel->set_related_relationship(sharedptr<Relationship>());
       m_portal->set_navigation_type(LayoutItem_Portal::NAVIGATION_NONE);
     }
-
+    
+    std::cout << "debug: saving rows_count=" << m_spinbutton_rows_count->get_value() << std::endl;
+    m_portal->set_rows_count( m_spinbutton_rows_count->get_value() );
   }
 }
 
@@ -400,6 +410,11 @@ void Dialog_Layout_List_Related::on_combo_relationship_changed()
   m_modified = true;
 }
 
+void Dialog_Layout_List_Related::on_spinbutton_rows_count_changed()
+{
+  m_modified = true;
+}
+
 sharedptr<Relationship> Dialog_Layout_List_Related::get_relationship() const
 {
   std::cout << "debug: I wonder if this function is used." << std::endl;
diff --git a/glom/mode_design/layout/dialog_layout_list_related.h b/glom/mode_design/layout/dialog_layout_list_related.h
index 161af86..57ed7f4 100644
--- a/glom/mode_design/layout/dialog_layout_list_related.h
+++ b/glom/mode_design/layout/dialog_layout_list_related.h
@@ -65,7 +65,7 @@ protected:
   
   void on_combo_navigation_specific_changed();
   void on_checkbutton_show_child_relationships();
-
+  void on_spinbutton_rows_count_changed();
 
   ComboBox_Relationship* m_combo_relationship;
   Gtk::CheckButton* m_checkbutton_show_child_relationships;
diff --git a/ui/developer/window_data_layout.glade b/ui/developer/window_data_layout.glade
index c77277d..6b2404e 100644
--- a/ui/developer/window_data_layout.glade
+++ b/ui/developer/window_data_layout.glade
@@ -1,10 +1,9 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <requires lib="gtk+" version="2.16"/>
-  <!-- interface-requires gtksourceview 0.0 -->
   <!-- interface-naming-policy toplevel-contextual -->
-
   <object class="GtkWindow" id="window_data_layout">
+    <property name="can_focus">False</property>
     <property name="border_width">12</property>
     <property name="title" translatable="yes">Layout</property>
     <property name="default_width">400</property>
@@ -12,19 +11,22 @@
     <child>
       <object class="GtkVBox" id="vbox7">
         <property name="visible">True</property>
-        <property name="orientation">vertical</property>
+        <property name="can_focus">False</property>
         <property name="spacing">6</property>
         <child>
           <object class="GtkHBox" id="hbox9">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <property name="spacing">6</property>
             <child>
               <object class="GtkHBox" id="hbox_table_widgets">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel" id="label264">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="label" translatable="yes">&lt;b&gt;Table:&lt;/b&gt;</property>
                     <property name="use_markup">True</property>
                   </object>
@@ -37,6 +39,7 @@
                 <child>
                   <object class="GtkLabel" id="label_table_name">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="label" translatable="yes">table name</property>
                   </object>
                   <packing>
@@ -55,10 +58,12 @@
             <child>
               <object class="GtkHBox" id="hbox_related_table_widgets">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel" id="label263">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="label" translatable="yes">&lt;b&gt;Relationship:&lt;/b&gt;</property>
                     <property name="use_markup">True</property>
                   </object>
@@ -71,6 +76,7 @@
                 <child>
                   <object class="GtkComboBox" id="combo_relationship_name">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -84,6 +90,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="receives_default">False</property>
+                    <property name="use_action_appearance">False</property>
                     <property name="use_underline">True</property>
                     <property name="draw_indicator">True</property>
                   </object>
@@ -104,28 +111,33 @@
               </packing>
             </child>
             <child>
-              <object class="GtkLabel" id="label_title">
+              <object class="GtkEntry" id="entry_table_title">
                 <property name="visible">True</property>
-                <property name="label" translatable="yes">&lt;b&gt;Title:&lt;/b&gt;</property>
-                <property name="use_markup">True</property>
+                <property name="can_focus">True</property>
+                <property name="primary_icon_activatable">False</property>
+                <property name="secondary_icon_activatable">False</property>
+                <property name="primary_icon_sensitive">True</property>
+                <property name="secondary_icon_sensitive">True</property>
               </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="pack_type">end</property>
-                <property name="position">3</property>
+                <property name="position">2</property>
               </packing>
             </child>
             <child>
-              <object class="GtkEntry" id="entry_table_title">
+              <object class="GtkLabel" id="label_title">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">&lt;b&gt;Title:&lt;/b&gt;</property>
+                <property name="use_markup">True</property>
               </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="pack_type">end</property>
-                <property name="position">2</property>
+                <property name="position">3</property>
               </packing>
             </child>
           </object>
@@ -138,15 +150,18 @@
         <child>
           <object class="GtkFrame" id="frame3">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
               <object class="GtkAlignment" id="alignment7">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="left_padding">12</property>
                 <child>
                   <object class="GtkTable" id="table11">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="n_rows">2</property>
                     <property name="n_columns">2</property>
                     <property name="column_spacing">6</property>
@@ -169,27 +184,31 @@
                     <child>
                       <object class="GtkVBox" id="vbox93">
                         <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
+                        <property name="can_focus">False</property>
                         <property name="spacing">6</property>
                         <child>
-                          <object class="GtkButton" id="button_add_image">
+                          <object class="GtkButton" id="button_add_text">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">False</property>
-                            <property name="tooltip_text" translatable="yes">Add an image to the layout, such as a logo. The image will be the same for every record viewed. To show an image field from a record, to show different images for each field, use the field layout item.</property>
+                            <property name="tooltip_text" translatable="yes">Add text to a layout, such as an explanation or a warning. The text will be the same for every record viewed.</property>
+                            <property name="use_action_appearance">False</property>
                             <child>
-                              <object class="GtkAlignment" id="alignment86">
+                              <object class="GtkAlignment" id="alignment81">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xscale">0</property>
                                 <property name="yscale">0</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox110">
+                                  <object class="GtkHBox" id="hbox103">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
                                     <property name="spacing">2</property>
                                     <child>
-                                      <object class="GtkImage" id="image47">
+                                      <object class="GtkImage" id="image43">
                                         <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
                                         <property name="stock">gtk-add</property>
                                       </object>
                                       <packing>
@@ -199,9 +218,10 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkLabel" id="label240">
+                                      <object class="GtkLabel" id="label231">
                                         <property name="visible">True</property>
-                                        <property name="label">Add Image</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Add Text</property>
                                         <property name="use_underline">True</property>
                                       </object>
                                       <packing>
@@ -219,28 +239,32 @@
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="pack_type">end</property>
-                            <property name="position">5</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkButton" id="button_add_field">
+                          <object class="GtkButton" id="button_add_button">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">False</property>
-                            <property name="tooltip_text" translatable="yes">Add a layout item that shows the data from a field in the record, and allows the user to edit that value.</property>
+                            <property name="tooltip_text" translatable="yes">Add a button. Edit the button to define the script that will be run when the button is clicked.</property>
+                            <property name="use_action_appearance">False</property>
                             <child>
-                              <object class="GtkAlignment" id="alignment77">
+                              <object class="GtkAlignment" id="alignment78">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xscale">0</property>
                                 <property name="yscale">0</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox99">
+                                  <object class="GtkHBox" id="hbox100">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
                                     <property name="spacing">2</property>
                                     <child>
-                                      <object class="GtkImage" id="image41">
+                                      <object class="GtkImage" id="image42">
                                         <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
                                         <property name="stock">gtk-add</property>
                                       </object>
                                       <packing>
@@ -250,9 +274,10 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkLabel" id="label227">
+                                      <object class="GtkLabel" id="label228">
                                         <property name="visible">True</property>
-                                        <property name="label">Add Field</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Add Button</property>
                                         <property name="use_underline">True</property>
                                       </object>
                                       <packing>
@@ -270,28 +295,31 @@
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="pack_type">end</property>
-                            <property name="position">6</property>
+                            <property name="position">2</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkButton" id="button_add_group">
-                            <property name="visible">True</property>
+                          <object class="GtkButton" id="button_add_notebook">
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">False</property>
-                            <property name="tooltip_text" translatable="yes">Add a group which can contain other layout items. Use this to group items together, such as fields.</property>
+                            <property name="tooltip_text" translatable="yes">Add a tabbed notebook. Each page of the notebook may contain several other layout items, but only one page will be visible at one time.</property>
+                            <property name="use_action_appearance">False</property>
                             <child>
-                              <object class="GtkAlignment" id="alignment17">
+                              <object class="GtkAlignment" id="alignment85">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xscale">0</property>
                                 <property name="yscale">0</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox17">
+                                  <object class="GtkHBox" id="hbox109">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
                                     <property name="spacing">2</property>
                                     <child>
-                                      <object class="GtkImage" id="image8">
+                                      <object class="GtkImage" id="image46">
                                         <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
                                         <property name="stock">gtk-add</property>
                                       </object>
                                       <packing>
@@ -301,9 +329,10 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkLabel" id="label56">
+                                      <object class="GtkLabel" id="label236">
                                         <property name="visible">True</property>
-                                        <property name="label" translatable="yes">Add _Group</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Add Notebook</property>
                                         <property name="use_underline">True</property>
                                       </object>
                                       <packing>
@@ -321,28 +350,32 @@
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="pack_type">end</property>
-                            <property name="position">5</property>
+                            <property name="position">3</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkButton" id="button_add_related_calendar">
+                          <object class="GtkButton" id="button_add_related">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">False</property>
-                            <property name="tooltip_text" translatable="yes">Add a related records calendar portal. This is a calendar showing records from a related table. Remember to edit this layout item to specify the relationship to use, and the fields to show from the related table.</property>
+                            <property name="tooltip_text" translatable="yes">Add a related records portal. This is a list of records in a related table. Remember to edit this layout item to specify the relationship to use, and the fields to show from the related table.</property>
+                            <property name="use_action_appearance">False</property>
                             <child>
-                              <object class="GtkAlignment" id="alignment1">
+                              <object class="GtkAlignment" id="alignment22">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xscale">0</property>
                                 <property name="yscale">0</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox1">
+                                  <object class="GtkHBox" id="hbox29">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
                                     <property name="spacing">2</property>
                                     <child>
-                                      <object class="GtkImage" id="image1">
+                                      <object class="GtkImage" id="image19">
                                         <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
                                         <property name="stock">gtk-add</property>
                                       </object>
                                       <packing>
@@ -352,9 +385,10 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkLabel" id="label1">
+                                      <object class="GtkLabel" id="label74">
                                         <property name="visible">True</property>
-                                        <property name="label" translatable="yes">Add Related Calendar</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Add Related Records</property>
                                         <property name="use_underline">True</property>
                                       </object>
                                       <packing>
@@ -376,24 +410,28 @@
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkButton" id="button_add_related">
+                          <object class="GtkButton" id="button_add_related_calendar">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">False</property>
-                            <property name="tooltip_text" translatable="yes">Add a related records portal. This is a list of records in a related table. Remember to edit this layout item to specify the relationship to use, and the fields to show from the related table.</property>
+                            <property name="tooltip_text" translatable="yes">Add a related records calendar portal. This is a calendar showing records from a related table. Remember to edit this layout item to specify the relationship to use, and the fields to show from the related table.</property>
+                            <property name="use_action_appearance">False</property>
                             <child>
-                              <object class="GtkAlignment" id="alignment22">
+                              <object class="GtkAlignment" id="alignment1">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xscale">0</property>
                                 <property name="yscale">0</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox29">
+                                  <object class="GtkHBox" id="hbox1">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
                                     <property name="spacing">2</property>
                                     <child>
-                                      <object class="GtkImage" id="image19">
+                                      <object class="GtkImage" id="image1">
                                         <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
                                         <property name="stock">gtk-add</property>
                                       </object>
                                       <packing>
@@ -403,9 +441,10 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkLabel" id="label74">
+                                      <object class="GtkLabel" id="label1">
                                         <property name="visible">True</property>
-                                        <property name="label" translatable="yes">Add Related Records</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Add Related Calendar</property>
                                         <property name="use_underline">True</property>
                                       </object>
                                       <packing>
@@ -427,23 +466,28 @@
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkButton" id="button_add_notebook">
+                          <object class="GtkButton" id="button_add_image">
+                            <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">False</property>
-                            <property name="tooltip_text" translatable="yes">Add a tabbed notebook. Each page of the notebook may contain several other layout items, but only one page will be visible at one time.</property>
+                            <property name="tooltip_text" translatable="yes">Add an image to the layout, such as a logo. The image will be the same for every record viewed. To show an image field from a record, to show different images for each field, use the field layout item.</property>
+                            <property name="use_action_appearance">False</property>
                             <child>
-                              <object class="GtkAlignment" id="alignment85">
+                              <object class="GtkAlignment" id="alignment86">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xscale">0</property>
                                 <property name="yscale">0</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox109">
+                                  <object class="GtkHBox" id="hbox110">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
                                     <property name="spacing">2</property>
                                     <child>
-                                      <object class="GtkImage" id="image46">
+                                      <object class="GtkImage" id="image47">
                                         <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
                                         <property name="stock">gtk-add</property>
                                       </object>
                                       <packing>
@@ -453,9 +497,10 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkLabel" id="label236">
+                                      <object class="GtkLabel" id="label240">
                                         <property name="visible">True</property>
-                                        <property name="label" translatable="yes">Add Notebook</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label">Add Image</property>
                                         <property name="use_underline">True</property>
                                       </object>
                                       <packing>
@@ -473,28 +518,32 @@
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="pack_type">end</property>
-                            <property name="position">3</property>
+                            <property name="position">5</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkButton" id="button_add_button">
+                          <object class="GtkButton" id="button_add_group">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">False</property>
-                            <property name="tooltip_text" translatable="yes">Add a button. Edit the button to define the script that will be run when the button is clicked.</property>
+                            <property name="tooltip_text" translatable="yes">Add a group which can contain other layout items. Use this to group items together, such as fields.</property>
+                            <property name="use_action_appearance">False</property>
                             <child>
-                              <object class="GtkAlignment" id="alignment78">
+                              <object class="GtkAlignment" id="alignment17">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xscale">0</property>
                                 <property name="yscale">0</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox100">
+                                  <object class="GtkHBox" id="hbox17">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
                                     <property name="spacing">2</property>
                                     <child>
-                                      <object class="GtkImage" id="image42">
+                                      <object class="GtkImage" id="image8">
                                         <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
                                         <property name="stock">gtk-add</property>
                                       </object>
                                       <packing>
@@ -504,9 +553,10 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkLabel" id="label228">
+                                      <object class="GtkLabel" id="label56">
                                         <property name="visible">True</property>
-                                        <property name="label" translatable="yes">Add Button</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Add _Group</property>
                                         <property name="use_underline">True</property>
                                       </object>
                                       <packing>
@@ -524,28 +574,32 @@
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="pack_type">end</property>
-                            <property name="position">2</property>
+                            <property name="position">5</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkButton" id="button_add_text">
+                          <object class="GtkButton" id="button_add_field">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">False</property>
-                            <property name="tooltip_text" translatable="yes">Add text to a layout, such as an explanation or a warning. The text will be the same for every record viewed.</property>
+                            <property name="tooltip_text" translatable="yes">Add a layout item that shows the data from a field in the record, and allows the user to edit that value.</property>
+                            <property name="use_action_appearance">False</property>
                             <child>
-                              <object class="GtkAlignment" id="alignment81">
+                              <object class="GtkAlignment" id="alignment77">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xscale">0</property>
                                 <property name="yscale">0</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox103">
+                                  <object class="GtkHBox" id="hbox99">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
                                     <property name="spacing">2</property>
                                     <child>
-                                      <object class="GtkImage" id="image43">
+                                      <object class="GtkImage" id="image41">
                                         <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
                                         <property name="stock">gtk-add</property>
                                       </object>
                                       <packing>
@@ -555,9 +609,10 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkLabel" id="label231">
+                                      <object class="GtkLabel" id="label227">
                                         <property name="visible">True</property>
-                                        <property name="label" translatable="yes">Add Text</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label">Add Field</property>
                                         <property name="use_underline">True</property>
                                       </object>
                                       <packing>
@@ -575,7 +630,7 @@
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="pack_type">end</property>
-                            <property name="position">1</property>
+                            <property name="position">6</property>
                           </packing>
                         </child>
                       </object>
@@ -588,10 +643,12 @@
                     <child>
                       <object class="GtkHBox" id="hbox5">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="spacing">6</property>
                         <child>
                           <object class="GtkHButtonBox" id="hbuttonbox9">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="spacing">6</property>
                             <property name="layout_style">start</property>
                             <child>
@@ -601,6 +658,7 @@
                                 <property name="can_focus">True</property>
                                 <property name="can_default">True</property>
                                 <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_stock">True</property>
                               </object>
                               <packing>
@@ -616,6 +674,7 @@
                                 <property name="can_focus">True</property>
                                 <property name="can_default">True</property>
                                 <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_stock">True</property>
                               </object>
                               <packing>
@@ -626,12 +685,15 @@
                             </child>
                           </object>
                           <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
                             <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
                           <object class="GtkHButtonBox" id="hbuttonbox5">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="spacing">6</property>
                             <property name="layout_style">end</property>
                             <child>
@@ -642,6 +704,7 @@
                                 <property name="can_default">True</property>
                                 <property name="receives_default">False</property>
                                 <property name="tooltip_text" translatable="yes">Remove the item from the layout. If you remove a field layout item, it will not remove the field from the table itself. It just will not be seen on the layout.</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_stock">True</property>
                               </object>
                               <packing>
@@ -656,18 +719,22 @@
                                 <property name="can_focus">True</property>
                                 <property name="can_default">True</property>
                                 <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <child>
                                   <object class="GtkAlignment" id="alignment42">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
                                     <property name="xscale">0</property>
                                     <property name="yscale">0</property>
                                     <child>
                                       <object class="GtkHBox" id="hbox54">
                                         <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
                                         <property name="spacing">2</property>
                                         <child>
                                           <object class="GtkImage" id="image28">
                                             <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
                                             <property name="stock">gtk-edit</property>
                                           </object>
                                           <packing>
@@ -679,6 +746,7 @@
                                         <child>
                                           <object class="GtkLabel" id="label121">
                                             <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
                                             <property name="label" translatable="yes">Formatting</property>
                                             <property name="use_underline">True</property>
                                           </object>
@@ -706,6 +774,7 @@
                                 <property name="can_focus">True</property>
                                 <property name="can_default">True</property>
                                 <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_stock">True</property>
                               </object>
                               <packing>
@@ -716,6 +785,8 @@
                             </child>
                           </object>
                           <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
@@ -737,32 +808,38 @@
             <child type="label">
               <object class="GtkLabel" id="label28">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">&lt;b&gt;Fields&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
               </object>
             </child>
           </object>
           <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
             <property name="position">1</property>
           </packing>
         </child>
         <child>
           <object class="GtkFrame" id="frame_related_table_navigation">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
               <object class="GtkAlignment" id="alignment93">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="left_padding">12</property>
                 <child>
                   <object class="GtkVBox" id="vbox105">
                     <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
+                    <property name="can_focus">False</property>
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel" id="label261">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">Clicking the row button takes the user to the table specified by this relationship:</property>
                       </object>
@@ -775,6 +852,7 @@
                     <child>
                       <object class="GtkHBox" id="hbox130">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="spacing">6</property>
                         <child>
                           <object class="GtkRadioButton" id="radiobutton_navigation_automatic">
@@ -782,6 +860,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
+                            <property name="use_action_appearance">False</property>
                             <property name="use_underline">True</property>
                             <property name="draw_indicator">True</property>
                           </object>
@@ -794,6 +873,7 @@
                         <child>
                           <object class="GtkLabel" id="label_navigation_automatic">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="label">the relationship name</property>
                           </object>
                           <packing>
@@ -812,6 +892,7 @@
                     <child>
                       <object class="GtkHBox" id="hbox130b">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="spacing">6</property>
                         <child>
                           <object class="GtkRadioButton" id="radiobutton_navigation_none">
@@ -819,6 +900,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
+                            <property name="use_action_appearance">False</property>
                             <property name="use_underline">True</property>
                             <property name="draw_indicator">True</property>
                             <property name="group">radiobutton_navigation_automatic</property>
@@ -839,11 +921,13 @@
                     <child>
                       <object class="GtkHBox" id="hbox131">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <child>
                           <object class="GtkRadioButton" id="radiobutton_navigation_specify">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
+                            <property name="use_action_appearance">False</property>
                             <property name="use_underline">True</property>
                             <property name="draw_indicator">True</property>
                             <property name="group">radiobutton_navigation_automatic</property>
@@ -857,14 +941,18 @@
                         <child>
                           <object class="GtkComboBox" id="combobox_navigation_specify">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                           </object>
                           <packing>
                             <property name="expand">False</property>
+                            <property name="fill">True</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
                         <property name="position">3</property>
                       </packing>
                     </child>
@@ -875,6 +963,7 @@
             <child type="label">
               <object class="GtkLabel" id="frame_navigation">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">&lt;b&gt;Navigation&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
               </object>
@@ -882,25 +971,30 @@
           </object>
           <packing>
             <property name="expand">False</property>
+            <property name="fill">True</property>
             <property name="position">2</property>
           </packing>
         </child>
         <child>
           <object class="GtkFrame" id="frame_calendar">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
               <object class="GtkAlignment" id="alignment25">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="left_padding">12</property>
                 <child>
                   <object class="GtkHBox" id="hbox44">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel" id="label26">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="label" translatable="yes">Date Field:</property>
                       </object>
                       <packing>
@@ -912,9 +1006,11 @@
                     <child>
                       <object class="GtkComboBox" id="combobox_date_field">
                         <property name="visible">True</property>
-                        <property name="tooltip_text" translatable="yes">This field will be used to decide which records to show in the calendar.</property>
+                        <property name="can_focus">False</property>
                       </object>
                       <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
@@ -925,6 +1021,7 @@
             <child type="label">
               <object class="GtkLabel" id="frame_navigation1">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">&lt;b&gt;Dates&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
               </object>
@@ -932,12 +1029,14 @@
           </object>
           <packing>
             <property name="expand">False</property>
-            <property name="position">4</property>
+            <property name="fill">True</property>
+            <property name="position">3</property>
           </packing>
         </child>
         <child>
           <object class="GtkHButtonBox" id="hbuttonbox7">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <property name="spacing">6</property>
             <property name="layout_style">end</property>
             <child>
@@ -947,6 +1046,7 @@
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
                 <property name="use_stock">True</property>
               </object>
               <packing>
@@ -958,10 +1058,51 @@
           </object>
           <packing>
             <property name="expand">False</property>
+            <property name="fill">True</property>
             <property name="pack_type">end</property>
             <property name="position">3</property>
           </packing>
         </child>
+        <child>
+          <object class="GtkHBox" id="hbox_rows_count">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Number of rows to show:</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkSpinButton" id="spinbutton_rows_count">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="invisible_char">â</property>
+                <property name="primary_icon_activatable">False</property>
+                <property name="secondary_icon_activatable">False</property>
+                <property name="primary_icon_sensitive">True</property>
+                <property name="secondary_icon_sensitive">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">5</property>
+          </packing>
+        </child>
       </object>
     </child>
   </object>



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