[glom] Print Layout: Related Records: Do not show editing formatting options.



commit da4706f186b5cfa0e89fbb1fc8e52f48c944a8b0
Author: Murray Cumming <murrayc murrayc com>
Date:   Tue Sep 20 11:47:53 2011 +0200

    Print Layout: Related Records: Do not show editing formatting options.
    
    * glom/mode_design/layout/dialog_layout.[h|cc]: Add m_editable_layout,
      defaulting to true.
    * glom/mode_design/layout/dialog_layout_details.cc: on_button_formatting():
    Use m_editable_layout to avoid showing some formatting options.
    * glom/mode_design/layout/dialog_layout_list_related.cc: set_document():
    Set m_editable_layout to false for print layout.

 ChangeLog                                          |   11 +++++++++++
 glom/mode_design/layout/dialog_layout.cc           |    1 +
 glom/mode_design/layout/dialog_layout.h            |    4 ++++
 glom/mode_design/layout/dialog_layout_details.cc   |    2 +-
 .../layout/dialog_layout_list_related.cc           |    7 +++++--
 glom/print_layout/canvas_print_layout.cc           |    2 +-
 6 files changed, 23 insertions(+), 4 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 0a0aafc..b1ce121 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2011-09-20  Murray Cumming  <murrayc murrayc com>
+
+	Print Layout: Related Records: Do not show editing formatting options.
+
+	* glom/mode_design/layout/dialog_layout.[h|cc]: Add m_editable_layout, 
+  defaulting to true.
+	* glom/mode_design/layout/dialog_layout_details.cc: on_button_formatting():
+	Use m_editable_layout to avoid showing some formatting options.
+	* glom/mode_design/layout/dialog_layout_list_related.cc: set_document():
+	Set m_editable_layout to false for print layout.
+
 2011-09-19  Murray Cumming  <murrayc murrayc com>
 
 	Print Layout: Use the correct numeric formatting.
diff --git a/glom/mode_design/layout/dialog_layout.cc b/glom/mode_design/layout/dialog_layout.cc
index 1479b2c..4620b80 100644
--- a/glom/mode_design/layout/dialog_layout.cc
+++ b/glom/mode_design/layout/dialog_layout.cc
@@ -29,6 +29,7 @@ Dialog_Layout::Dialog_Layout(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Bu
 : Gtk::Dialog(cobject),
   m_entry_table_title(0),
   m_label_table_title(0),
+  m_editable_layout(true),
   m_modified(false)
 {
   Gtk::Button* button = 0;
diff --git a/glom/mode_design/layout/dialog_layout.h b/glom/mode_design/layout/dialog_layout.h
index 0cb538d..2e5bcd9 100644
--- a/glom/mode_design/layout/dialog_layout.h
+++ b/glom/mode_design/layout/dialog_layout.h
@@ -72,6 +72,10 @@ protected:
   Glib::ustring m_table_name;
   Glib::ustring m_layout_name, m_layout_platform; //As in the document.
 
+  //Whether the layout is for a view that allows editing.
+  //If so, various editing options will be available in the formatting.
+  bool m_editable_layout;
+  
   bool m_modified;
 };
 
diff --git a/glom/mode_design/layout/dialog_layout_details.cc b/glom/mode_design/layout/dialog_layout_details.cc
index e608b9d..6c81370 100644
--- a/glom/mode_design/layout/dialog_layout_details.cc
+++ b/glom/mode_design/layout/dialog_layout_details.cc
@@ -895,7 +895,7 @@ void Dialog_Layout_Details::on_button_formatting()
       if(field)
       {
         //Handle field formatting, which includes more than the generic formatting stuff:
-        sharedptr<LayoutItem_Field> chosenitem = offer_field_formatting(field, get_fields_table(), this);
+        sharedptr<LayoutItem_Field> chosenitem = offer_field_formatting(field, get_fields_table(), this, m_editable_layout);
         if(chosenitem)
         {
           *field = *chosenitem; //TODO_Performance.
diff --git a/glom/mode_design/layout/dialog_layout_list_related.cc b/glom/mode_design/layout/dialog_layout_list_related.cc
index f68ae3e..cea7ccf 100644
--- a/glom/mode_design/layout/dialog_layout_list_related.cc
+++ b/glom/mode_design/layout/dialog_layout_list_related.cc
@@ -48,7 +48,7 @@ Dialog_Layout_List_Related::Dialog_Layout_List_Related(BaseObjectType* cobject,
   m_spinbutton_row_line_width(0),
   m_spinbutton_column_line_width(0),
   m_colorbutton_line(0)
-{
+{  
   // Show the appropriate alternate widgets:
   m_box_table_widgets->hide();
   m_box_related_table_widgets->show();
@@ -146,8 +146,11 @@ void Dialog_Layout_List_Related::set_document(const Glib::ustring& layout_name,
 
     Gdk::Color color( portal->get_print_layout_line_color() );
     m_colorbutton_line->set_color(color);
+
+    //Avoid showing formatting options that are about editing:
+    m_editable_layout = false;
   }
-  
+
   update_ui();
 }
 
diff --git a/glom/print_layout/canvas_print_layout.cc b/glom/print_layout/canvas_print_layout.cc
index dc23405..8ddcf02 100644
--- a/glom/print_layout/canvas_print_layout.cc
+++ b/glom/print_layout/canvas_print_layout.cc
@@ -480,7 +480,7 @@ void Canvas_PrintLayout::on_context_menu_formatting()
   m_dialog_format->signal_hide().connect( sigc::mem_fun(*this, &Canvas_PrintLayout::on_dialog_format_hide) );
 
   //We need an if here, because they have no common base class.
-  //TODO: Maybe they should.
+  //TODO: Maybe they should. TODO: Maybe they already do.
   if(layout_item_field)
   {
     const FieldFormatting& formatting = layout_item_field->m_formatting;



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