[glom] Print Layout: Use the correct numeric formatting.



commit f2bfeccae19f54e1cd4e6fc700ec0250ee1247dc
Author: Murray Cumming <murrayc murrayc com>
Date:   Mon Sep 19 22:37:22 2011 +0200

    Print Layout: Use the correct numeric formatting.
    
    * glom/print_layout/canvas_print_layout.cc: set_canvas_item_field_value():
    For instance, use the default field formatting. Otherwise numbers tend
    to have thousands separators and no decimal places by default.

 ChangeLog                                |   16 ++++++++++++----
 glom/print_layout/canvas_print_layout.cc |   26 +++++++++++++++++++-------
 2 files changed, 31 insertions(+), 11 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 644e147..0a0aafc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,17 @@
-2011-09-19  Murray Cumming  <murrayc murrayc-desktop>
+2011-09-19  Murray Cumming  <murrayc murrayc com>
 
-	reviewed by: <delete if not using a buddy>
+	Print Layout: Use the correct numeric formatting.
 
-	* glom/utility_widgets/canvas/canvas_image_movable.cc:
-	* glom/utility_widgets/imageglom.cc:
+	* glom/print_layout/canvas_print_layout.cc: set_canvas_item_field_value():
+	For instance, use the default field formatting. Otherwise numbers tend 
+	to have thousands separators and no decimal places by default.
+
+2011-09-19  Murray Cumming  <murrayc murrayc com>
+
+	Images: Avoid a warning when choosing.
+    
+        * glom/utility_widgets/imageglom.cc: on_menupopup_activate_select_file():
+        Avoid a warning about reinitializing a GValue when choosing an image file.
 
 2011-09-13  Murray Cumming  <murrayc murrayc com>>
 
diff --git a/glom/print_layout/canvas_print_layout.cc b/glom/print_layout/canvas_print_layout.cc
index ded230b..dc23405 100644
--- a/glom/print_layout/canvas_print_layout.cc
+++ b/glom/print_layout/canvas_print_layout.cc
@@ -799,10 +799,10 @@ void Canvas_PrintLayout::fill_with_data_portal(const Glib::RefPtr<CanvasLayoutIt
   //TODO: Add a function to goocanvas for this.
   //TODO: Move the child stuff into group in goocanvas.
 
-  LayoutGroup::type_list_items child_layout_items = portal->get_items();
+  const LayoutGroup::type_list_items child_layout_items = portal->get_items();
 
   //Build and run the SQL query for this portal:
-  type_vecConstLayoutFields fields_shown = get_portal_fields_to_show(portal);
+  const type_vecConstLayoutFields fields_shown = get_portal_fields_to_show(portal);
 
   FoundSet found_set;
   found_set.m_table_name = portal->get_table_used(Glib::ustring() /* parent table_name, not used. */);
@@ -830,7 +830,7 @@ void Canvas_PrintLayout::fill_with_data_portal(const Glib::RefPtr<CanvasLayoutIt
   for(int row = 0; row < rows_count; ++row)
   {
     int db_col = 0;
-    LayoutGroup::type_list_items::iterator iter_child_layout_items = child_layout_items.begin();
+    LayoutGroup::type_list_items::const_iterator iter_child_layout_items = child_layout_items.begin();
     for(int col = 0; col < cols_count; ++col)
     {
       //Glib::RefPtr<Goocanvas::Item> canvas_child = base_item->get_cell_child(row, col); //TODO: Add this to Goocanvas::Table.
@@ -885,10 +885,22 @@ void Canvas_PrintLayout::set_canvas_item_field_value(const Glib::RefPtr<Goocanva
       return;
     }
 
-    //FieldFormatting& formatting = field->m_formatting;
-    //apply_formatting(canvas_item, formatting);
-    const Glib::ustring text =
-      Conversions::get_text_for_gda_value(field->get_glom_type(), value, field->m_formatting.m_numeric_format);
+    Glib::ustring text;
+
+    sharedptr<LayoutItem_WithFormatting> with_formatting = 
+      sharedptr<LayoutItem_WithFormatting>::cast_dynamic(field);
+    if(with_formatting)
+    {
+      const FieldFormatting& formatting = with_formatting->get_formatting_used();
+      text = Conversions::get_text_for_gda_value(field->get_glom_type(), 
+        value, formatting.m_numeric_format);
+    }
+    else
+    {
+      text = Conversions::get_text_for_gda_value(field->get_glom_type(), 
+        value);
+    }
+
     canvas_text->set_text(text);
   }
 }



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