[glom] Replace most uses of g_object_set() with C++ code.



commit f2caba6beb8d3e4a34ac8eb3aaa7bdf0efe3784a
Author: Murray Cumming <murrayc murrayc com>
Date:   Fri Jan 6 16:52:31 2012 +0100

    Replace most uses of g_object_set() with C++ code.
    
    * glom/mode_data/datawidget/cellcreation.cc:
    * glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
    * glom/mode_data/db_adddel/db_adddel.cc:
    * glom/mode_design/layout/dialog_layout_export.cc:
    * glom/utility_widgets/adddel/adddel.cc:
    Apart from some uses, due to GTK+ bug #667415 .
    
    These were probably using C code due to the reduced API on Maemo,
    but we remove the Maemo code a while ago.

 ChangeLog                                          |   14 ++++++++++++++
 glom/mode_data/datawidget/cellcreation.cc          |    2 +-
 .../datawidget/combochoiceswithtreemodel.cc        |    5 +++--
 glom/mode_data/db_adddel/db_adddel.cc              |    9 ++++-----
 glom/mode_design/layout/dialog_layout_export.cc    |    2 +-
 .../print_layouts/window_print_layout_edit.cc      |    1 +
 glom/utility_widgets/adddel/adddel.cc              |    4 ++--
 7 files changed, 26 insertions(+), 11 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 10f6267..8a6d83a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2012-01-06  Murray Cumming  <murrayc murrayc com>
 
+	Replace most uses of g_object_set() with C++ code.
+
+	* glom/mode_data/datawidget/cellcreation.cc:
+	* glom/mode_data/datawidget/combochoiceswithtreemodel.cc:
+	* glom/mode_data/db_adddel/db_adddel.cc:
+	* glom/mode_design/layout/dialog_layout_export.cc:
+	* glom/utility_widgets/adddel/adddel.cc:
+	Apart from some uses, due to GTK+ bug #667415 .
+
+	These were probably using C code due to the reduced API on Maemo,
+	but we remove the Maemo code a while ago.
+
+2012-01-06  Murray Cumming  <murrayc murrayc com>
+
 	List: Custom choices: Make them work here too.
 
 	* glom/libglom/data_structure/layout/fieldformatting.[h|cc]:
diff --git a/glom/mode_data/datawidget/cellcreation.cc b/glom/mode_data/datawidget/cellcreation.cc
index 5011b1b..ec3c2dd 100644
--- a/glom/mode_data/datawidget/cellcreation.cc
+++ b/glom/mode_data/datawidget/cellcreation.cc
@@ -177,7 +177,7 @@ Gtk::CellRenderer* create_cell(const sharedptr<const LayoutItem>& layout_item, c
     //Use an ellipze to indicate excessive text,
     //so that similar values do not look equal,
     //and to avoid multi-line comments. TODO: Is there a better way to restrict the height? This doesn't actually truncate multilines anyway.
-    g_object_set(cell_text->gobj(), "ellipsize", PANGO_ELLIPSIZE_END, (gpointer)0);
+    cell_text->property_ellipsize() = Pango::ELLIPSIZE_END;
 
     //Restrict the height, to prevent multiline text cells,
     //and to allow TreeView performance optimisation:
diff --git a/glom/mode_data/datawidget/combochoiceswithtreemodel.cc b/glom/mode_data/datawidget/combochoiceswithtreemodel.cc
index c4a3ade..b75faab 100644
--- a/glom/mode_data/datawidget/combochoiceswithtreemodel.cc
+++ b/glom/mode_data/datawidget/combochoiceswithtreemodel.cc
@@ -352,7 +352,7 @@ void ComboChoicesWithTreeModel::set_cell_for_field_value(Gtk::CellRenderer* cell
         //Scale it down to a sensible size.
         //TODO: if(pixbuf)
         //  pixbuf = Utils::image_scale_keeping_ratio(pixbuf,  get_fixed_cell_height(), pixbuf->get_width());
-        g_object_set(pDerived->gobj(), "pixbuf", pixbuf ? pixbuf->gobj() : 0, (gpointer)0);
+        pDerived->property_pixbuf() = pixbuf;
       }
       else
         std::cerr << "Field::sql(): glom_type is TYPE_IMAGE but gda type is not VALUE_TYPE_BINARY" << std::endl;
@@ -380,8 +380,9 @@ void ComboChoicesWithTreeModel::set_cell_for_field_value(Gtk::CellRenderer* cell
         const Glib::ustring fg_color =
         field->get_formatting_used().get_text_format_color_foreground_to_use(value);
         if(!fg_color.empty())
-          g_object_set(pDerived->gobj(), "foreground", fg_color.c_str(), (gpointer)0);
+          pDerived->property_foreground() = fg_color;
         else
+          //TODO: Remove this when this GTK+ bug is fixed: https://bugzilla.gnome.org/show_bug.cgi?id=667415
           g_object_set(pDerived->gobj(), "foreground", (const char*)0, (gpointer)0);
       }
 
diff --git a/glom/mode_data/db_adddel/db_adddel.cc b/glom/mode_data/db_adddel/db_adddel.cc
index ed2590f..cd2e8f26 100644
--- a/glom/mode_data/db_adddel/db_adddel.cc
+++ b/glom/mode_data/db_adddel/db_adddel.cc
@@ -1961,7 +1961,7 @@ void DbAddDel::treeviewcolumn_on_cell_data(Gtk::CellRenderer* renderer, const Gt
             if(pixbuf)
               pixbuf = Utils::image_scale_keeping_ratio(pixbuf,  get_fixed_cell_height(), pixbuf->get_width());
 
-            g_object_set(pDerived->gobj(), "pixbuf", pixbuf ? pixbuf->gobj() : 0, (gpointer)0);
+            pDerived->property_pixbuf() = pixbuf;
           }
           else
             g_warning("Field::sql(): glom_type is TYPE_IMAGE but gda type is not VALUE_TYPE_BINARY");
@@ -1991,8 +1991,7 @@ void DbAddDel::treeviewcolumn_on_cell_data(Gtk::CellRenderer* renderer, const Gt
                text = text_to_show;
             }
 
-            //TODO: Use the C++ API here and elsewhere:
-            g_object_set(pDerived->gobj(), "text", text.c_str(), (gpointer)0);
+            pDerived->property_text() = text;
           }
 
           //Show a different color if the value is numeric, if that's specified:
@@ -2001,8 +2000,8 @@ void DbAddDel::treeviewcolumn_on_cell_data(Gtk::CellRenderer* renderer, const Gt
              const Glib::ustring fg_color =
                field->get_formatting_used().get_text_format_color_foreground_to_use(value);
              if(!fg_color.empty())
-                 g_object_set(pDerived->gobj(), "foreground", fg_color.c_str(), (gpointer)0);
-             else
+                 pDerived->property_foreground() = fg_color;
+             else //TODO: Remove this when this GTK+ bug is fixed: https://bugzilla.gnome.org/show_bug.cgi?id=667415
                  g_object_set(pDerived->gobj(), "foreground", (const char*)0, (gpointer)0);
           }
 
diff --git a/glom/mode_design/layout/dialog_layout_export.cc b/glom/mode_design/layout/dialog_layout_export.cc
index 8d34ec9..dea08e6 100644
--- a/glom/mode_design/layout/dialog_layout_export.cc
+++ b/glom/mode_design/layout/dialog_layout_export.cc
@@ -322,7 +322,7 @@ void Dialog_Layout_Export::on_cell_data_name(Gtk::CellRenderer* renderer, const
       sharedptr<LayoutItem_Field> item = row[m_ColumnsFields.m_col_layout_item];
 
       //Names can never be edited.
-      g_object_set(renderer_text->gobj(), "markup", item->get_layout_display_name().c_str(), "editable", FALSE, (gpointer)0);
+      renderer_text->property_markup() = item->get_layout_display_name();
     }
   }
 }
diff --git a/glom/mode_design/print_layouts/window_print_layout_edit.cc b/glom/mode_design/print_layouts/window_print_layout_edit.cc
index ffe9cff..74fbcbe 100644
--- a/glom/mode_design/print_layouts/window_print_layout_edit.cc
+++ b/glom/mode_design/print_layouts/window_print_layout_edit.cc
@@ -117,6 +117,7 @@ Window_PrintLayout_Edit::Window_PrintLayout_Edit(BaseObjectType* cobject, const
     sigc::mem_fun(*this, &Window_PrintLayout_Edit::on_vruler_button_press_event), false);
  
   //Add the ruler widgets to the table at the left and top:
+  //TODO: Use C++ API here:
   Gtk::Grid* grid = 0;
   builder->get_widget("grid_canvas", grid);
   gtk_grid_attach(grid->gobj(), GTK_WIDGET(m_vruler), 
diff --git a/glom/utility_widgets/adddel/adddel.cc b/glom/utility_widgets/adddel/adddel.cc
index ca18b4a..13c9a81 100644
--- a/glom/utility_widgets/adddel/adddel.cc
+++ b/glom/utility_widgets/adddel/adddel.cc
@@ -682,7 +682,7 @@ void AddDel::construct_specified_columns()
           if(pCellRenderer)
           {
             //Make it editable:
-            g_object_set(pCellRenderer->gobj(), "editable", TRUE, (gpointer)0);
+            pCellRenderer->property_editable() = true;
 
             //Connect to its signal:
             pCellRenderer->signal_edited().connect(
@@ -694,7 +694,7 @@ void AddDel::construct_specified_columns()
            Gtk::CellRendererToggle* pCellRenderer = dynamic_cast<Gtk::CellRendererToggle*>(m_TreeView.get_column_cell_renderer(view_column_index));
            if(pCellRenderer)
            {
-             g_object_set(pCellRenderer->gobj(), "activatable", TRUE, (gpointer)0);
+             pCellRenderer->property_activatable() = true;
 
              //Connect to its signal:
              pCellRenderer->signal_toggled().connect(



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