glom r1697 - trunk/glom/mode_design/print_layouts



Author: murrayc
Date: Fri Oct  3 10:09:40 2008
New Revision: 1697
URL: http://svn.gnome.org/viewvc/glom?rev=1697&view=rev

Log:
Some unfinished stuff so I can get it easily on my laptop. Sorry

Modified:
   trunk/glom/mode_design/print_layouts/canvas_print_layout.cc
   trunk/glom/mode_design/print_layouts/canvas_print_layout.h

Modified: trunk/glom/mode_design/print_layouts/canvas_print_layout.cc
==============================================================================
--- trunk/glom/mode_design/print_layouts/canvas_print_layout.cc	(original)
+++ trunk/glom/mode_design/print_layouts/canvas_print_layout.cc	Fri Oct  3 10:09:40 2008
@@ -540,17 +540,22 @@
 
 void Canvas_PrintLayout::fill_with_data(const FoundSet& found_set)
 {
+  fill_with_data(m_items_group, found_set);
+}
+
+void Canvas_PrintLayout::fill_with_data(const Glib::RefPtr<Goocanvas::Group>& layout_group, const FoundSet& found_set)
+{
   //A map of the text representation (e.g. field_name or relationship::field_name) to the index:
   typedef std::map<Glib::ustring, guint> type_map_layout_fields_index;
   type_map_layout_fields_index map_fields_index;
   
   //Get list of fields to get from the database.
   Utils::type_vecLayoutFields fieldsToGet;
-  const int count = m_items_group->get_n_children();
+  const int count = layout_group->get_n_children();
   guint field_i = 0;
   for(int i = 0; i < count; ++i)
   {
-    Glib::RefPtr<Goocanvas::Item> base_canvas_item = m_items_group->get_child(i);
+    Glib::RefPtr<Goocanvas::Item> base_canvas_item = layout_group->get_child(i);
     Glib::RefPtr<CanvasLayoutItem> canvas_item = Glib::RefPtr<CanvasLayoutItem>::cast_dynamic(base_canvas_item);
     if(!canvas_item)
       continue;
@@ -568,7 +573,13 @@
       //to get the data for this column from the query results:
       map_fields_index[ layoutitem_field->get_layout_display_name() ] = field_i;
       ++field_i;
-    } 
+    }
+    else
+    {
+      sharedptr<LayoutItem_Portal> layoutitem_portal = sharedptr<LayoutItem_Portal>::cast_dynamic(layout_item);
+      if(layoutitem_portal)
+        fill_with_data(canvas_item, found_set);
+    }
   }
 
   if(fieldsToGet.empty())
@@ -612,7 +623,7 @@
   //(and clear the no-image pixbuf from images):
   for(int i = 0; i < count; ++i)
   {
-    Glib::RefPtr<Goocanvas::Item> base_canvas_item = m_items_group->get_child(i);
+    Glib::RefPtr<Goocanvas::Item> base_canvas_item = layout_group->get_child(i);
     Glib::RefPtr<CanvasLayoutItem> canvas_item = Glib::RefPtr<CanvasLayoutItem>::cast_dynamic(base_canvas_item);
     if(!canvas_item)
       continue;
@@ -641,6 +652,12 @@
   }
 }
 
+
+void Canvas_PrintLayout::fill_with_data_portal(const sharedptr<CanvasLayoutItem>& layout_portal, const FoundSet& found_set)
+{
+  //TODO.
+}
+
 void Canvas_PrintLayout::set_zoom_percent(guint percent)
 {
   if(percent == 0)

Modified: trunk/glom/mode_design/print_layouts/canvas_print_layout.h
==============================================================================
--- trunk/glom/mode_design/print_layouts/canvas_print_layout.h	(original)
+++ trunk/glom/mode_design/print_layouts/canvas_print_layout.h	Fri Oct  3 10:09:40 2008
@@ -71,6 +71,9 @@
   void add_layout_group_children(const sharedptr<LayoutGroup>& group);
   void fill_layout_group(const sharedptr<LayoutGroup>& group);
 
+  static void fill_with_data(const Glib::RefPtr<Goocanvas::Group>& layout_group, const FoundSet& found_set);
+  static void fill_with_data_portal(const sharedptr<CanvasLayoutItem>& layout_portal, const FoundSet& found_set);
+
   sharedptr<LayoutItem_Portal> offer_related_records(const sharedptr<LayoutItem_Portal>& portal, Gtk::Window* parent);
 
   void on_item_show_context_menu(guint button, guint32 activate_time, Glib::RefPtr<CanvasLayoutItem> item);



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