[glom/gtkmm4v4: 26/37] gtkmm4: Dereferencing TreeModel::iterator: Use auto.



commit 6450c2d2d4e1565b0bf245d54fd21f009d7000bd
Author: Murray Cumming <murrayc murrayc com>
Date:   Wed Mar 15 10:54:11 2017 +0100

    gtkmm4: Dereferencing TreeModel::iterator: Use auto.
    
    Instead of assuming that the returned row will be non-const.

 glom/import_csv/dialog_import_csv.cc               |    2 +-
 glom/mode_data/datawidget/combo.cc                 |    6 +-
 .../datawidget/combochoiceswithtreemodel.cc        |    8 ++--
 glom/mode_data/db_adddel/db_adddel.cc              |   16 +++---
 glom/mode_design/fields/combo_fieldtype.cc         |    7 ++-
 glom/mode_design/layout/combobox_fields.cc         |    6 +-
 glom/mode_design/layout/combobox_relationship.cc   |   12 +++---
 glom/mode_design/layout/dialog_choose_field.cc     |    8 ++--
 .../layout/dialog_choose_relationship.cc           |    4 +-
 glom/mode_design/layout/dialog_layout.cc           |    8 ++--
 .../layout/dialog_layout_calendar_related.cc       |    6 +-
 glom/mode_design/layout/dialog_layout_details.cc   |   48 ++++++++++----------
 glom/mode_design/layout/dialog_layout_export.cc    |    8 ++--
 .../layout/dialog_layout_list_related.cc           |    6 +-
 .../layout_item_dialogs/combo_summarytype.cc       |    2 +-
 .../layout_item_dialogs/dialog_fieldslist.cc       |   10 ++--
 .../layout_item_dialogs/dialog_sortfields.cc       |    8 ++--
 glom/mode_design/layout/treestore_layout.cc        |    8 ++--
 .../report_layout/dialog_layout_report.cc          |   20 ++++----
 .../report_layout/treestore_report_layout.cc       |    6 +-
 glom/mode_design/translation/combobox_locale.cc    |    2 +-
 .../mode_design/translation/window_translations.cc |    6 +-
 glom/mode_design/users/dialog_groups_list.cc       |   12 +++---
 glom/mode_design/users/dialog_users_list.cc        |    6 +-
 glom/utility_widgets/adddel/adddel.cc              |   19 ++++----
 25 files changed, 122 insertions(+), 122 deletions(-)
---
diff --git a/glom/import_csv/dialog_import_csv.cc b/glom/import_csv/dialog_import_csv.cc
index 920afa1..08e3f03 100644
--- a/glom/import_csv/dialog_import_csv.cc
+++ b/glom/import_csv/dialog_import_csv.cc
@@ -107,7 +107,7 @@ Dialog_Import_CSV::Dialog_Import_CSV(BaseObjectType* cobject, const Glib::RefPtr
       continue;
 
     iter = m_encoding_model->append();
-    Gtk::TreeModel::Row row = *iter;
+    auto row = *iter;
     row[m_encoding_columns.m_col_name] = encoding.get_name();
     row[m_encoding_columns.m_col_charset] = encoding.get_charset();
   }
diff --git a/glom/mode_data/datawidget/combo.cc b/glom/mode_data/datawidget/combo.cc
index c56839a..43437ad 100644
--- a/glom/mode_data/datawidget/combo.cc
+++ b/glom/mode_data/datawidget/combo.cc
@@ -67,8 +67,8 @@ void ComboGlom::on_fixed_cell_data(const Gtk::TreeModel::iterator& iter, Gtk::Ce
     return;
 
   Gnome::Gda::Value value;
-  Gtk::TreeModel::Row treerow = *iter;
-  treerow->get_value(model_column_index, value);
+  const auto treerow = *iter;
+  treerow.get_value(model_column_index, value);
 
   set_cell_for_field_value(cell, field, value);
 }
@@ -289,7 +289,7 @@ Gnome::Gda::Value ComboGlom::get_value() const
 
    if(iter)
    {
-     const Gtk::TreeModel::Row row = *iter;
+     const auto row = *iter;
      Gnome::Gda::Value value;
      row.get_value(0, value);
      return value;
diff --git a/glom/mode_data/datawidget/combochoiceswithtreemodel.cc 
b/glom/mode_data/datawidget/combochoiceswithtreemodel.cc
index 2e91e7a..d57ca9f 100644
--- a/glom/mode_data/datawidget/combochoiceswithtreemodel.cc
+++ b/glom/mode_data/datawidget/combochoiceswithtreemodel.cc
@@ -139,7 +139,7 @@ void ComboChoicesWithTreeModel::set_choices_with_second(const type_list_values_w
   for(const auto& the_pair : list_values)
   {
     auto iterTree = list_store->append();
-    Gtk::TreeModel::Row row = *iterTree;
+    auto row = *iter;Tree;
 
     if(layout_choice_first)
     {
@@ -194,7 +194,7 @@ void ComboChoicesWithTreeModel::set_choices_fixed(const Formatting::type_list_va
   for(const auto& choicevalue : list_values)
   {
     auto iterTree = list_store->append();
-    Gtk::TreeModel::Row row = *iterTree;
+    auto row = *iterTree;
 
     auto layout_item = std::dynamic_pointer_cast<LayoutItem_Field>(get_layout_item());
     if(!layout_item)
@@ -396,8 +396,8 @@ void ComboChoicesWithTreeModel::on_cell_data(const Gtk::TreeModel::iterator& ite
     return;
 
   Gnome::Gda::Value value;
-  Gtk::TreeModel::Row treerow = *iter;
-  treerow->get_value(model_column_index, value);
+  const auto treerow = *iter;
+  treerow.get_value(model_column_index, value);
 
   set_cell_for_field_value(cell, field, value);
 }
diff --git a/glom/mode_data/db_adddel/db_adddel.cc b/glom/mode_data/db_adddel/db_adddel.cc
index 58a0602..beca583 100644
--- a/glom/mode_data/db_adddel/db_adddel.cc
+++ b/glom/mode_data/db_adddel/db_adddel.cc
@@ -318,13 +318,13 @@ Gtk::TreeModel::iterator DbAddDel::get_item_placeholder()
    return Gtk::TreeModel::iterator();
 }
 
-Gnome::Gda::Value DbAddDel::get_value(const Gtk::TreeModel::iterator& iter, const LayoutItem_Field& 
layout_item) const
+Gnome::Gda::Value DbAddDel::get_value(const Gtk::TreeModel::const_iterator& iter, const LayoutItem_Field& 
layout_item) const
 {
   Gnome::Gda::Value value;
 
   if(m_list_store)
   {
-    Gtk::TreeModel::Row treerow = *iter;
+    const auto treerow = *iter;
 
     if(treerow)
     {
@@ -395,7 +395,7 @@ Gtk::TreeModel::iterator DbAddDel::get_row(const Gnome::Gda::Value& key)
 
   for(auto iter = m_list_store->children().begin(); iter != m_list_store->children().end(); ++iter)
   {
-    //Gtk::TreeModel::Row row = *iter;
+    //auto row = *iter;
     const auto valTemp = get_value_key(iter);
     if(valTemp == key)
     {
@@ -816,7 +816,7 @@ void DbAddDel::set_value(const Gtk::TreeModel::iterator& iter, const LayoutItem_
   }
 
   //Show the value in any columns:
-  Gtk::TreeModel::Row treerow = *iter;
+  auto treerow = *iter;
   if(treerow)
   {
     const auto list_indexes = get_data_model_column_index(layout_item, set_specified_field_layout);
@@ -1266,7 +1266,7 @@ void DbAddDel::on_treeview_cell_edited_bool(const Glib::ustring& path_string, in
   auto iter = m_list_store->get_iter(path);
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    auto row = *iter;
 
     const int tree_model_column_index = data_model_column_index + get_count_hidden_system_columns();
 
@@ -1385,7 +1385,7 @@ void DbAddDel::on_treeview_cell_edited(const Glib::ustring& path_string, const G
   auto iter = m_list_store->get_iter(path);
   if(iter != get_model()->children().end())
   {
-    Gtk::TreeModel::Row row = *iter;
+    auto row = *iter;
 
     const int treemodel_column_index = data_model_column_index + get_count_hidden_system_columns();
 
@@ -1793,7 +1793,7 @@ bool DbAddDel::get_is_placeholder_row(const Gtk::TreeModel::iterator& iter) cons
   }
 
   return  m_list_store->get_is_placeholder(iter);
-  //Gtk::TreeModel::Row row = *iter;
+  //auto row = *iter;
   //return row[*m_modelcolumn_placeholder];
 }
 
@@ -1854,7 +1854,7 @@ void DbAddDel::treeviewcolumn_on_cell_data(Gtk::CellRenderer* renderer, const Gt
     if(field)
     {
       const guint col_real = data_model_column_index + get_count_hidden_system_columns();
-      Gtk::TreeModel::Row treerow = *iter;
+      auto treerow = *iter;
       Gnome::Gda::Value value;
       treerow->get_value(col_real, value);
 
diff --git a/glom/mode_design/fields/combo_fieldtype.cc b/glom/mode_design/fields/combo_fieldtype.cc
index 2b3ab89..d0746aa 100644
--- a/glom/mode_design/fields/combo_fieldtype.cc
+++ b/glom/mode_design/fields/combo_fieldtype.cc
@@ -47,7 +47,7 @@ void Combo_FieldType::init()
     auto iterModel = m_tree_model->append();
     if(iterModel)
     {
-      Gtk::TreeModel::Row row = *iterModel;
+      auto row = *iterModel;
       row[m_columns.m_col_name] = the_pair.second;
       row[m_columns.m_col_type] = the_pair.first;
 
@@ -85,10 +85,11 @@ Field::glom_field_type Combo_FieldType::get_field_type() const
   auto active_row  = get_active();
   if(active_row)
   {
-    Gtk::TreeModel::Row row = *active_row;
+    const auto row = *active_row;
     result = row[m_columns.m_col_type];
 
-    Glib::ustring temp = row[m_columns.m_col_name];
+    // TODO: What was this?
+    // Glib::ustring temp = row[m_columns.m_col_name];
   }
 
   return result;
diff --git a/glom/mode_design/layout/combobox_fields.cc b/glom/mode_design/layout/combobox_fields.cc
index e1b6a84..9599f22 100644
--- a/glom/mode_design/layout/combobox_fields.cc
+++ b/glom/mode_design/layout/combobox_fields.cc
@@ -53,7 +53,7 @@ std::shared_ptr<Field> ComboBox_Fields::get_selected_field() const
   auto iter = get_active();
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    const auto row = *iter;
     return row[m_model_columns.m_field];
   }
   else
@@ -187,7 +187,7 @@ void ComboBox_Fields::set_fields(const type_vec_fields& fields, bool with_none_i
 
 void ComboBox_Fields::on_cell_data_title(const Gtk::TreeModel::const_iterator& iter)
 {
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   std::shared_ptr<Field> field = row[m_model_columns.m_field];
   if(field)
   {
@@ -208,7 +208,7 @@ void ComboBox_Fields::on_cell_data_title(const Gtk::TreeModel::const_iterator& i
 
 bool ComboBox_Fields::on_row_separator(const Glib::RefPtr<Gtk::TreeModel>& /* model */, const 
Gtk::TreeModel::const_iterator& iter)
 {
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   const bool separator = row[m_model_columns.m_separator];
   return separator;
 }
diff --git a/glom/mode_design/layout/combobox_relationship.cc 
b/glom/mode_design/layout/combobox_relationship.cc
index c5cca5e..767f156 100644
--- a/glom/mode_design/layout/combobox_relationship.cc
+++ b/glom/mode_design/layout/combobox_relationship.cc
@@ -58,7 +58,7 @@ std::shared_ptr<Relationship> ComboBox_Relationship::get_selected_relationship()
   auto iter = get_active();
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    const auto row = *iter;
     return row[m_model_columns.m_relationship];
   }
   else
@@ -70,7 +70,7 @@ std::shared_ptr<Relationship> ComboBox_Relationship::get_selected_relationship(s
   auto iter = get_active();
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    const auto row = *iter;
     auto iterParent = row.parent();
     if(iterParent)
     {
@@ -208,7 +208,7 @@ void ComboBox_Relationship::set_relationships_excluding_triggered_by(const type_
 /*
 void ComboBox_Relationship::on_cell_data_name(const Gtk::TreeModel::const_iterator& iter)
 {
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   std::shared_ptr<Relationship> relationship = row[m_model_columns.m_relationship];
   if(relationship)
     m_renderer_name->property_text() = relationship->get_name();
@@ -227,7 +227,7 @@ bool ComboBox_Relationship::get_cell_is_sensitive(const std::shared_ptr<const Re
 
 void ComboBox_Relationship::on_cell_data_title(const Gtk::TreeModel::const_iterator& iter)
 {
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   Glib::ustring title;
   bool sensitive = true;
   std::shared_ptr<Relationship> relationship = row[m_model_columns.m_relationship];
@@ -265,14 +265,14 @@ void ComboBox_Relationship::on_cell_data_title(const Gtk::TreeModel::const_itera
 
 bool ComboBox_Relationship::on_row_separator(const Glib::RefPtr<Gtk::TreeModel>& /* model */, const 
Gtk::TreeModel::const_iterator& iter)
 {
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   const bool separator = row[m_model_columns.m_separator];
   return separator;
 }
 
 void ComboBox_Relationship::on_cell_data_fromfield(const Gtk::TreeModel::const_iterator& iter)
 {
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   Glib::ustring text;
   bool sensitive = true;
   std::shared_ptr<Relationship> relationship = row[m_model_columns.m_relationship];
diff --git a/glom/mode_design/layout/dialog_choose_field.cc b/glom/mode_design/layout/dialog_choose_field.cc
index c650a59..240979e 100644
--- a/glom/mode_design/layout/dialog_choose_field.cc
+++ b/glom/mode_design/layout/dialog_choose_field.cc
@@ -162,7 +162,7 @@ void Dialog_ChooseField::set_document(const std::shared_ptr<Document>& document,
     for(const auto& field : document->get_table_fields(table_name))
     {
       auto iterRow = m_model->append();
-      Gtk::TreeModel::Row row = *iterRow;
+      auto row = *iterRow;
 
       row[m_ColumnsFields.m_col_name] = field->get_name();
       row[m_ColumnsFields.m_col_title] = item_get_title(field);
@@ -179,7 +179,7 @@ void Dialog_ChooseField::select_item(const Field& field)
   //Find any items with the same name:
   auto iter = m_model->children().begin(); iter != m_model->children().end(); ++iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    const auto row = *iter;
     const Field& field_item = row[m_ColumnsFields.m_col_field];
     if(field_item.get_name() == field.get_name())
     {
@@ -315,7 +315,7 @@ void Dialog_ChooseField::on_combo_relationship_changed()
     for(const auto& field : vecFields)
     {
       auto iterRow = m_model->append();
-      Gtk::TreeModel::Row row = *iterRow;
+      auto row = *iterRow;
 
       row[m_ColumnsFields.m_col_name] = field->get_name();
       row[m_ColumnsFields.m_col_title] = item_get_title(field);
@@ -335,7 +335,7 @@ void Dialog_ChooseField::on_treeview_selection_changed()
     if(iter)
     {
       /*
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
       const Field& field = row[m_ColumnsFields.m_col_field];
       const auto is_numeric = (field.get_glom_type() == Field::glom_field_type::NUMERIC);
       if(is_numeric)
diff --git a/glom/mode_design/layout/dialog_choose_relationship.cc 
b/glom/mode_design/layout/dialog_choose_relationship.cc
index 9e6591e..2a4ab5b 100644
--- a/glom/mode_design/layout/dialog_choose_relationship.cc
+++ b/glom/mode_design/layout/dialog_choose_relationship.cc
@@ -73,7 +73,7 @@ void Dialog_ChooseRelationship::set_document(const std::shared_ptr<Document>& do
     for(const auto& relationship : document->get_relationships(table_name))
     {
       auto iterRow = m_model->append();
-      Gtk::TreeModel::Row row = *iterRow;
+      auto row = *iterRow;
 
       if(relationship)
         row[m_ColumnsRelationships.m_col_name] = glom_get_sharedptr_name(relationship);
@@ -119,7 +119,7 @@ std::shared_ptr<Relationship> Dialog_ChooseRelationship::get_relationship_chosen
     auto iter = refTreeSelection->get_selected();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
       result =  row[m_ColumnsRelationships.m_col_relationship];
     }
   }
diff --git a/glom/mode_design/layout/dialog_layout.cc b/glom/mode_design/layout/dialog_layout.cc
index 079c675..5e62bcc 100644
--- a/glom/mode_design/layout/dialog_layout.cc
+++ b/glom/mode_design/layout/dialog_layout.cc
@@ -67,8 +67,8 @@ void Dialog_Layout::move_treeview_selection_up(Gtk::TreeView* treeview, const Gt
         auto iterBefore = iter;
         --iterBefore;
 
-        Gtk::TreeModel::Row row = *iter;
-        Gtk::TreeModel::Row rowBefore = **iterBefore;
+        auto row = *iter;
+        auto rowBefore = *iterBefore;
 
         //Swap the sequence values, so that the one before will be after:
         guint tempBefore = rowBefore[sequence_column];
@@ -101,8 +101,8 @@ void Dialog_Layout::move_treeview_selection_down(Gtk::TreeView* treeview, const
       auto model = treeview->get_model();
       if(iterNext != model->children().end()) //If it is not the last one.
       {
-        Gtk::TreeModel::Row row = *iter;
-        Gtk::TreeModel::Row rowNext = *iterNext;
+        auto row = *iter;
+        auto rowNext = *iterNext;
 
         //Swap the sequence values, so that the one before will be after:
         guint tempNext = rowNext[sequence_column];
diff --git a/glom/mode_design/layout/dialog_layout_calendar_related.cc 
b/glom/mode_design/layout/dialog_layout_calendar_related.cc
index 81a6622..f77c2ac 100644
--- a/glom/mode_design/layout/dialog_layout_calendar_related.cc
+++ b/glom/mode_design/layout/dialog_layout_calendar_related.cc
@@ -189,7 +189,7 @@ void Dialog_Layout_Calendar_Related::update_ui(bool including_relationship_list)
           {
             //Add the item to the treeview:
             auto iter = m_model_items->append();
-            Gtk::TreeModel::Row row = *iter;
+            auto row = *iter;
             row[m_model_items->m_columns.m_col_layout_item] = glom_sharedptr_clone(item);
           }
         }
@@ -377,7 +377,7 @@ void Dialog_Layout_Calendar_Related::on_button_add_field()
     auto iter =  m_model_items->append();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      auto row = *iter;
       row[m_model_items->m_columns.m_col_layout_item] = field;
 
       //Scroll to, and select, the new row:
@@ -399,7 +399,7 @@ void Dialog_Layout_Calendar_Related::on_button_edit()
     auto iter = refTreeSelection->get_selected();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      auto row = *iter;
       std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
       auto field = std::dynamic_pointer_cast<LayoutItem_Field>(layout_item);
 
diff --git a/glom/mode_design/layout/dialog_layout_details.cc 
b/glom/mode_design/layout/dialog_layout_details.cc
index d2cae8c..131042d 100644
--- a/glom/mode_design/layout/dialog_layout_details.cc
+++ b/glom/mode_design/layout/dialog_layout_details.cc
@@ -213,7 +213,7 @@ void Dialog_Layout_Details::fill_group(const Gtk::TreeModel::iterator& iter, std
 
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    auto row = *iter;
     std::shared_ptr<LayoutItem> layout_item_top = row[m_model_items->m_columns.m_col_layout_item];
     auto group_row = std::dynamic_pointer_cast<LayoutGroup>(layout_item_top);
     if(!group_row)
@@ -284,7 +284,7 @@ void Dialog_Layout_Details::add_group(const Gtk::TreeModel::iterator& parent, co
 
   if(iterNewGroup)
   {
-    Gtk::TreeModel::Row rowGroup = *iterNewGroup;
+    auto rowGroup = *iterNewGroup;
 
     auto group_inserted = glom_sharedptr_clone(group);
     group_inserted->remove_all_items();
@@ -299,7 +299,7 @@ void Dialog_Layout_Details::add_group(const Gtk::TreeModel::iterator& parent, co
       {
         //Handle this differently to regular groups, so we do not also add its children:
         auto iter = m_model_items->append(iterNewGroup->children());
-        Gtk::TreeModel::Row row = *iter;
+        auto row = *iter;
         row[m_model_items->m_columns.m_col_layout_item] = glom_sharedptr_clone(portal);
       }
       else
@@ -311,7 +311,7 @@ void Dialog_Layout_Details::add_group(const Gtk::TreeModel::iterator& parent, co
         {
           //Add the item to the treeview:
           auto iter = m_model_items->append(iterNewGroup->children());
-          Gtk::TreeModel::Row row = *iter;
+          auto row = *iter;
           row[m_model_items->m_columns.m_col_layout_item] = glom_sharedptr_clone(item);
         }
       }
@@ -529,7 +529,7 @@ void Dialog_Layout_Details::on_button_add_field()
     auto iter = append_appropriate_row();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      auto row = *iter;
       row[m_model_items->m_columns.m_col_layout_item] = glom_sharedptr_clone(layout_item);
 
       //Scroll to, and select, the new row:
@@ -618,7 +618,7 @@ Gtk::TreeModel::iterator Dialog_Layout_Details::append_appropriate_row()
     auto iter_first = m_model_items->children().begin();
     if(iter_first)
     {
-      Gtk::TreeModel::Row row = *iter_first;
+      const auto row = *iter_first;
 
       std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
       auto layout_group = std::dynamic_pointer_cast<LayoutGroup>(layout_item);
@@ -643,7 +643,7 @@ void Dialog_Layout_Details::on_button_add_button()
   auto iter = append_appropriate_row();
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    auto row = *iter;
 
     //Add a new button:
     auto button = std::make_shared<LayoutItem_Button>();
@@ -668,7 +668,7 @@ void Dialog_Layout_Details::on_button_add_text()
   auto iter = append_appropriate_row();
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    auto row = *iter;
 
     //Add a new button:
     auto textobject = std::make_shared<LayoutItem_Text>();
@@ -693,7 +693,7 @@ void Dialog_Layout_Details::on_button_add_image()
   auto iter = append_appropriate_row();
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    auto row = *iter;
 
     //Add a new button:
     auto imageobject = std::make_shared<LayoutItem_Image>();
@@ -718,7 +718,7 @@ void Dialog_Layout_Details::on_button_add_notebook()
   auto iter = append_appropriate_row();
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    auto row = *iter;
 
     auto notebook = std::make_shared<LayoutItem_Notebook>();
     notebook->set_name(_("notebook"));
@@ -747,7 +747,7 @@ void Dialog_Layout_Details::on_button_add_related()
     auto iter = append_appropriate_row();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      auto row = *iter;
 
       auto portal = std::make_shared<LayoutItem_Portal>();
       //portal->set_relationship(relationship);
@@ -779,7 +779,7 @@ void Dialog_Layout_Details::on_button_add_related_calendar()
     auto iter = append_appropriate_row();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      auto row = *iter;
 
       auto portal = std::make_shared<LayoutItem_CalendarPortal>();
       //portal->set_relationship(relationship);
@@ -811,7 +811,7 @@ Gtk::TreeModel::iterator Dialog_Layout_Details::get_selected_group_parent() cons
     auto iter = refTreeSelection->get_selected();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
 
       std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
       auto layout_group = std::dynamic_pointer_cast<LayoutGroup>(layout_item);
@@ -850,7 +850,7 @@ void Dialog_Layout_Details::on_button_add_group()
 
   if(iterNewGroup)
   {
-    Gtk::TreeModel::Row row = *iterNewGroup;
+    auto row = *iterNewGroup;
     auto layout_item = std::make_shared<LayoutGroup>();
     layout_item->set_name(_("group"));
     row[m_model_items->m_columns.m_col_layout_item] = layout_item;
@@ -879,7 +879,7 @@ void Dialog_Layout_Details::on_button_formatting()
     auto iter = refTreeSelection->get_selected();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
 
       std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
       auto field = std::dynamic_pointer_cast<LayoutItem_Field>(layout_item);
@@ -921,7 +921,7 @@ void Dialog_Layout_Details::on_button_edit()
       //Do something different for each type of item:
       //This is unpleasant, but so is this whole dialog.
       //This whole dialog is just a temporary way to edit the layout before we have a visual DnD way.
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
 
       std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
 
@@ -1100,7 +1100,7 @@ void Dialog_Layout_Details::on_cell_data_name(Gtk::CellRenderer* renderer, const
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
 
   std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
 
@@ -1188,7 +1188,7 @@ void Dialog_Layout_Details::on_cell_data_title(Gtk::CellRenderer* renderer, cons
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
   auto layout_notebook = std::dynamic_pointer_cast<LayoutItem_Notebook>(layout_item);
   if(layout_notebook)
@@ -1216,7 +1216,7 @@ void Dialog_Layout_Details::on_cell_data_column_width(Gtk::CellRenderer* rendere
   if(iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
 
   guint column_width = 0;
@@ -1248,7 +1248,7 @@ void Dialog_Layout_Details::on_cell_data_group_columns(Gtk::CellRenderer* render
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
 
   auto layout_group = std::dynamic_pointer_cast<LayoutGroup>(layout_item);
@@ -1283,7 +1283,7 @@ void Dialog_Layout_Details::on_treeview_cell_edited_title(const Glib::ustring& p
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
   if(!layout_item)
     return;
@@ -1307,7 +1307,7 @@ void Dialog_Layout_Details::on_treeview_cell_edited_name(const Glib::ustring& pa
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
   if(!layout_item)
     return;
@@ -1330,7 +1330,7 @@ void Dialog_Layout_Details::on_treeview_cell_edited_column_width(const Glib::ust
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
   if(!layout_item)
     return;
@@ -1357,7 +1357,7 @@ void Dialog_Layout_Details::on_treeview_cell_edited_group_columns(const Glib::us
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
   auto layout_group = std::dynamic_pointer_cast<LayoutGroup>(layout_item);
   auto layout_portal = std::dynamic_pointer_cast<LayoutItem_Portal>(layout_item);
diff --git a/glom/mode_design/layout/dialog_layout_export.cc b/glom/mode_design/layout/dialog_layout_export.cc
index 7789cfa..c0b7b77 100644
--- a/glom/mode_design/layout/dialog_layout_export.cc
+++ b/glom/mode_design/layout/dialog_layout_export.cc
@@ -141,7 +141,7 @@ void Dialog_Layout_Export::set_layout_groups(Document::type_list_const_layout_gr
         if(item)
         {
           auto iterTree = m_model_fields->append();
-          Gtk::TreeModel::Row row = *iterTree;
+          auto row = *iterTree;
 
           auto layout_item = glom_sharedptr_clone(item);
           if(document)
@@ -259,7 +259,7 @@ void Dialog_Layout_Export::on_button_add_field()
 
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      auto row = *iter;
       row[m_ColumnsFields.m_col_layout_item] = field;
 
       //Scroll to, and select, the new row:
@@ -305,7 +305,7 @@ void Dialog_Layout_Export::on_cell_data_name(Gtk::CellRenderer* renderer, const
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
 
   //Indicate that it's a field in another table.
   std::shared_ptr<LayoutItem_Field> item = row[m_ColumnsFields.m_col_layout_item];
@@ -326,7 +326,7 @@ void Dialog_Layout_Export::on_button_edit_field()
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  auto row = *iter;
   std::shared_ptr<LayoutItem_Field> field = row[m_ColumnsFields.m_col_layout_item];
 
   //Get the chosen field:
diff --git a/glom/mode_design/layout/dialog_layout_list_related.cc 
b/glom/mode_design/layout/dialog_layout_list_related.cc
index ec1ceff..0f77d16 100644
--- a/glom/mode_design/layout/dialog_layout_list_related.cc
+++ b/glom/mode_design/layout/dialog_layout_list_related.cc
@@ -245,7 +245,7 @@ void Dialog_Layout_List_Related::update_ui(bool including_relationship_list)
           {
             //Add the item to the treeview:
             auto iter = m_model_items->append();
-            Gtk::TreeModel::Row row = *iter;
+            auto row = *iter;
             row[m_model_items->m_columns.m_col_layout_item] = glom_sharedptr_clone(item);
           }
         }
@@ -499,7 +499,7 @@ void Dialog_Layout_List_Related::on_button_add_field()
     auto iter = m_model_items->append();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      auto row = *iter;
       row[m_model_items->m_columns.m_col_layout_item] = field;
 
       //Scroll to, and select, the new row:
@@ -521,7 +521,7 @@ void Dialog_Layout_List_Related::on_button_edit()
     auto iter = refTreeSelection->get_selected();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      auto row = *iter;
       std::shared_ptr<LayoutItem> layout_item = row[m_model_items->m_columns.m_col_layout_item];
       auto field = std::dynamic_pointer_cast<LayoutItem_Field>(layout_item);
 
diff --git a/glom/mode_design/layout/layout_item_dialogs/combo_summarytype.cc 
b/glom/mode_design/layout/layout_item_dialogs/combo_summarytype.cc
index dcaf37e..e71eff9 100644
--- a/glom/mode_design/layout/layout_item_dialogs/combo_summarytype.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/combo_summarytype.cc
@@ -73,7 +73,7 @@ LayoutItem_FieldSummary::summaryType Combo_SummaryType::get_summary_type() const
   auto active_row = get_active();
   if(active_row)
   {
-    Gtk::TreeModel::Row row = *active_row;
+    const auto row = *active_row;
     return row[m_model_columns.m_summary_type];
   }
 
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc
index 8038844..7879ed4 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc
@@ -116,7 +116,7 @@ void Dialog_FieldsList::set_fields(const Glib::ustring& table_name, const Layout
         continue;
 
       auto iterTree = m_model_fields->append();
-      Gtk::TreeModel::Row row = *iterTree;
+      auto row = *iterTree;
 
       row[m_ColumnsFields.m_col_layout_item] = item;
       row[m_ColumnsFields.m_col_sequence] = field_sequence;
@@ -246,7 +246,7 @@ void Dialog_FieldsList::on_button_add_field()
 
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      auto row = *iter;
       row[m_ColumnsFields.m_col_layout_item] = field;
 
       //Scroll to, and select, the new row:
@@ -288,7 +288,7 @@ void Dialog_FieldsList::on_cell_data_name(Gtk::CellRenderer* renderer, const Gtk
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
 
   std::shared_ptr<const LayoutItem_Field> item = row[m_ColumnsFields.m_col_layout_item]; //TODO_performance: 
Reduce copying.
   if(item)
@@ -316,7 +316,7 @@ void Dialog_FieldsList::on_button_edit_field()
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  auto row = *iter;
   std::shared_ptr<const LayoutItem_Field> field = row[m_ColumnsFields.m_col_layout_item];
 
   //Get the chosen field:
@@ -350,7 +350,7 @@ void Dialog_FieldsList::on_button_formatting()
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  auto row = *iter;
   std::shared_ptr<const LayoutItem_Field> field = row[m_ColumnsFields.m_col_layout_item];
   if(field)
   {
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_sortfields.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_sortfields.cc
index 176e3fa..82d880d 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_sortfields.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_sortfields.cc
@@ -111,7 +111,7 @@ void Dialog_SortFields::set_fields(const Glib::ustring& table_name, const Layout
       auto item = std::dynamic_pointer_cast<const LayoutItem_Field>(the_pair.first);
 
       auto iterTree = m_model_fields->append();
-      Gtk::TreeModel::Row row = *iterTree;
+      auto row = *iterTree;
 
       row[m_ColumnsFields.m_col_layout_item] = item;
       row[m_ColumnsFields.m_col_ascending] = the_pair.second;
@@ -219,7 +219,7 @@ void Dialog_SortFields::on_button_add_field()
 
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      auto row = *iter;
       row[m_ColumnsFields.m_col_layout_item] = field;
       row[m_ColumnsFields.m_col_ascending] = true; //Default to this so that alphabetical searches go from A 
to Z by default.
 
@@ -262,7 +262,7 @@ void Dialog_SortFields::on_cell_data_name(Gtk::CellRenderer* renderer, const Gtk
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
 
   std::shared_ptr<const LayoutItem_Field> item = row[m_ColumnsFields.m_col_layout_item]; //TODO_performance: 
Reduce copying.
   renderer_text->property_markup() = item->get_layout_display_name();
@@ -281,7 +281,7 @@ void Dialog_SortFields::on_button_edit_field()
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  auto row = *iter;
   std::shared_ptr<const LayoutItem_Field> field = row[m_ColumnsFields.m_col_layout_item];
 
   //Get the chosen field:
diff --git a/glom/mode_design/layout/treestore_layout.cc b/glom/mode_design/layout/treestore_layout.cc
index 1a6e7c5..ec9947b 100644
--- a/glom/mode_design/layout/treestore_layout.cc
+++ b/glom/mode_design/layout/treestore_layout.cc
@@ -75,7 +75,7 @@ bool TreeStore_Layout::row_drop_possible_vfunc(const Gtk::TreeModel::Path& dest,
 
     if(iter_dragged)
     {
-      Gtk::TreeModel::Row row = *iter_dragged;
+      const auto row = *iter_dragged;
 
       std::shared_ptr<LayoutItem> layout_item = row[m_columns.m_col_layout_item];
       auto layout_group = std::dynamic_pointer_cast<LayoutGroup>(layout_item);
@@ -96,7 +96,7 @@ bool TreeStore_Layout::row_drop_possible_vfunc(const Gtk::TreeModel::Path& dest,
     //const auto iter_dest_parent = get_iter(dest);
     if(iter_dest_parent)
     {
-      Gtk::TreeModel::Row row_parent = *iter_dest_parent;
+      const auto row_parent = *iter_dest_parent;
 
       std::shared_ptr<LayoutItem> layout_item = row_parent[m_columns.m_col_layout_item];
       auto layout_group = std::dynamic_pointer_cast<LayoutGroup>(layout_item);
@@ -115,7 +115,7 @@ void TreeStore_Layout::fill_sequences()
   guint sequence = 1;
   for(auto iter_children = children().begin(); iter_children != children().end(); ++iter_children)
   {
-    Gtk::TreeModel::Row row = *iter_children;
+    auto row = *iter_children;
     row[m_columns.m_col_sequence] = sequence;
     ++sequence;
 
@@ -129,7 +129,7 @@ void TreeStore_Layout::fill_sequences(const iterator& iter)
   guint sequence = 1;
   for(auto iter_children = iter->children().begin(); iter_children != iter->children().end(); 
++iter_children)
   {
-    Gtk::TreeModel::Row row = *iter_children;
+    auto row = *iter_children;
     row[m_columns.m_col_sequence] = sequence;
     ++sequence;
 
diff --git a/glom/mode_design/report_layout/dialog_layout_report.cc 
b/glom/mode_design/report_layout/dialog_layout_report.cc
index d84c617..08253b8 100644
--- a/glom/mode_design/report_layout/dialog_layout_report.cc
+++ b/glom/mode_design/report_layout/dialog_layout_report.cc
@@ -234,7 +234,7 @@ std::shared_ptr<LayoutGroup> Dialog_Layout_Report::fill_group(const Gtk::TreeMod
 {
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    const auto row = *iter;
 
     std::shared_ptr<LayoutItem> pItem = row[model->m_columns.m_col_item];
     auto pGroup = std::dynamic_pointer_cast<LayoutGroup>(pItem);
@@ -254,7 +254,7 @@ void Dialog_Layout_Report::fill_group_children(const std::shared_ptr<LayoutGroup
 {
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    const auto row = *iter;
 
     group->remove_all_items();
     for(const auto& child_row : row.children())
@@ -296,7 +296,7 @@ void Dialog_Layout_Report::add_group_children(const Glib::RefPtr<type_model>& mo
     else
     {
       auto iter = model_parts->append(parent->children());
-      Gtk::TreeModel::Row row = *iter;
+      auto row = *iter;
       row[model_parts->m_columns.m_col_item] = glom_sharedptr_clone(item);
     }
   }
@@ -319,7 +319,7 @@ void Dialog_Layout_Report::add_group(const Glib::RefPtr<type_model>& model_parts
 
   if(iterNewItem)
   {
-    Gtk::TreeModel::Row row = *iterNewItem;
+    auto row = *iterNewItem;
 
     row[model_parts->m_columns.m_col_item] = glom_sharedptr_clone(group);
 
@@ -728,7 +728,7 @@ Gtk::TreeModel::iterator Dialog_Layout_Report::get_selected_group_parent() const
     auto iter = refTreeSelection->get_selected();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
       std::shared_ptr<LayoutItem> layout_item = row[model->m_columns.m_col_item];
       if(std::dynamic_pointer_cast<LayoutGroup>(layout_item))
       {
@@ -777,7 +777,7 @@ void Dialog_Layout_Report::on_button_formatting()
     auto iter = refTreeSelection->get_selected();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
       std::shared_ptr<LayoutItem> item = row[model->m_columns.m_col_item];
 
       auto field = std::dynamic_pointer_cast<LayoutItem_Field>(item);
@@ -810,7 +810,7 @@ void Dialog_Layout_Report::on_button_edit()
     if(iter)
     {
       //Do something different for each type of item:
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
       std::shared_ptr<LayoutItem> item = row[model->m_columns.m_col_item];
 
       auto fieldsummary = std::dynamic_pointer_cast<LayoutItem_FieldSummary>(item);
@@ -957,7 +957,7 @@ void Dialog_Layout_Report::on_cell_data_part(Gtk::CellRenderer* renderer, const
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
 
   std::shared_ptr<LayoutItem> pItem = row[model->m_columns.m_col_item];
   const auto part = pItem->get_part_type_name();
@@ -982,7 +982,7 @@ void Dialog_Layout_Report::on_cell_data_details(Gtk::CellRenderer* renderer, con
 
   Glib::ustring text;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   std::shared_ptr<LayoutItem> pItem = row[model->m_columns.m_col_item];
   renderer_text->property_text() = pItem->get_layout_display_name();
   renderer_text->property_editable() = false;
@@ -1001,7 +1001,7 @@ void Dialog_Layout_Report::on_cell_data_available_part(Gtk::CellRenderer* render
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
   auto model = Glib::RefPtr<type_model>::cast_dynamic(m_treeview_available_parts->get_model());
   std::shared_ptr<LayoutItem> pItem = row[model->m_columns.m_col_item];
   Glib::ustring part = pItem->get_part_type_name();
diff --git a/glom/mode_design/report_layout/treestore_report_layout.cc 
b/glom/mode_design/report_layout/treestore_report_layout.cc
index 3b0f589..a58025f 100644
--- a/glom/mode_design/report_layout/treestore_report_layout.cc
+++ b/glom/mode_design/report_layout/treestore_report_layout.cc
@@ -94,7 +94,7 @@ bool TreeStore_ReportLayout::row_drop_possible_vfunc(const Gtk::TreeModel::Path&
     //const auto iter_dest_parent = get_iter(dest);
     if(iter_dest_parent)
     {
-      Gtk::TreeModel::Row row_parent = *iter_dest_parent;
+      const auto row_parent = *iter_dest_parent;
       std::shared_ptr<LayoutItem> item_parent = (row_parent)[m_columns.m_col_item];
 
       return may_be_child_of(item_parent, item_dragged_row);
@@ -110,7 +110,7 @@ void TreeStore_ReportLayout::fill_sequences()
   guint sequence = 1;
   for(auto iter_children = children().begin(); iter_children != children().end(); ++iter_children)
   {
-    Gtk::TreeModel::Row row = *iter_children;
+    auto row = *iter_children;
     row[m_columns.m_col_sequence] = sequence;
     ++sequence;
 
@@ -124,7 +124,7 @@ void TreeStore_ReportLayout::fill_sequences(const iterator& iter)
   guint sequence = 1;
   for(auto iter_children = iter->children().begin(); iter_children != iter->children().end(); 
++iter_children)
   {
-    Gtk::TreeModel::Row row = *iter_children;
+    auto row = *iter_children;
     row[m_columns.m_col_sequence] = sequence;
     ++sequence;
 
diff --git a/glom/mode_design/translation/combobox_locale.cc b/glom/mode_design/translation/combobox_locale.cc
index ed886ab..1f63ec4 100644
--- a/glom/mode_design/translation/combobox_locale.cc
+++ b/glom/mode_design/translation/combobox_locale.cc
@@ -59,7 +59,7 @@ Glib::ustring ComboBox_Locale::get_selected_locale() const
   auto iter = get_active();
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    const auto row = *iter;
     return row[m_model_columns.m_identifier];
   }
   else
diff --git a/glom/mode_design/translation/window_translations.cc 
b/glom/mode_design/translation/window_translations.cc
index 27b07b6..dd41362 100644
--- a/glom/mode_design/translation/window_translations.cc
+++ b/glom/mode_design/translation/window_translations.cc
@@ -181,7 +181,7 @@ void Window_Translations::on_cell_data_original(Gtk::CellRenderer* renderer, con
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
 
   Glib::ustring text;
   std::shared_ptr<TranslatableItem> item = row[m_columns.m_col_item];
@@ -207,7 +207,7 @@ void Window_Translations::on_cell_data_item_itemhint(Gtk::CellRenderer* renderer
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
 
   Glib::ustring item_type_name;
   std::shared_ptr<TranslatableItem> item = row[m_columns.m_col_item];
@@ -241,7 +241,7 @@ void Window_Translations::load_from_document()
       continue;
 
     auto iterTree = m_model->append();
-    Gtk::TreeModel::Row row = *iterTree;
+    auto row = *iterTree;
 
     row[m_columns.m_col_item] = item;
     row[m_columns.m_col_translation] = item->get_title_translation(m_translation_locale, false);
diff --git a/glom/mode_design/users/dialog_groups_list.cc b/glom/mode_design/users/dialog_groups_list.cc
index 0c0de30..ae177c8 100644
--- a/glom/mode_design/users/dialog_groups_list.cc
+++ b/glom/mode_design/users/dialog_groups_list.cc
@@ -201,7 +201,7 @@ void Dialog_GroupsList::on_button_group_delete()
     auto iter = refTreeSelection->get_selected();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
 
       const Glib::ustring group = row[m_model_columns_groups.m_col_name];
       if(!group.empty())
@@ -271,7 +271,7 @@ void Dialog_GroupsList::on_button_group_users()
     auto iter = refTreeSelection->get_selected();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
       const Glib::ustring group_name = row[m_model_columns_groups.m_col_name];
 
       Dialog_UsersList* dialog = nullptr;
@@ -318,7 +318,7 @@ Glib::ustring Dialog_GroupsList::get_selected_group() const
     auto iter = refSelection->get_selected();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
       return row[m_model_columns_groups.m_col_name];
     }
   }
@@ -344,7 +344,7 @@ void Dialog_GroupsList::fill_group_list()
   for(const auto& group : Privs::get_database_groups())
   {
     auto iterTree = m_model_groups->append();
-    Gtk::TreeModel::Row row = *iterTree;
+    auto row = *iterTree;
 
     row[m_model_columns_groups.m_col_name] = group;
 
@@ -390,7 +390,7 @@ void Dialog_GroupsList::fill_table_list(const Glib::ustring& group_name)
     for(const auto& table : table_list)
     {
       auto iterTree = m_model_tables->append();
-      Gtk::TreeModel::Row row = *iterTree;
+      auto row = *iterTree;
 
       const auto table_name = table->get_name();
 
@@ -600,7 +600,7 @@ void Dialog_GroupsList::on_cell_data_group_name(Gtk::CellRenderer* renderer, con
   if(!iter)
     return;
 
-  Gtk::TreeModel::Row row = *iter;
+  const auto row = *iter;
 
   Glib::ustring name = row[m_model_columns_groups.m_col_name];
 
diff --git a/glom/mode_design/users/dialog_users_list.cc b/glom/mode_design/users/dialog_users_list.cc
index 5754272..333192f 100644
--- a/glom/mode_design/users/dialog_users_list.cc
+++ b/glom/mode_design/users/dialog_users_list.cc
@@ -120,7 +120,7 @@ void Dialog_UsersList::on_button_user_remove()
     {
       if(warn_about_empty_standard_group())
       {
-        Gtk::TreeModel::Row row = *iter;
+        const auto row = *iter;
 
         const Glib::ustring user = row[m_model_columns_users.m_col_name];
         if(!user.empty())
@@ -147,7 +147,7 @@ void Dialog_UsersList::on_button_user_delete()
     {
       if(warn_about_empty_standard_group())
       {
-        Gtk::TreeModel::Row row = *iter;
+        const auto row = *iter;
 
         const Glib::ustring user = row[m_model_columns_users.m_col_name];
         if(!user.empty())
@@ -274,7 +274,7 @@ void Dialog_UsersList::on_button_user_edit()
     auto iter = refTreeSelection->get_selected();
     if(iter)
     {
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
 
       Dialog_User* dialog = nullptr;
       Utils::get_glade_widget_derived_with_warning(dialog);
diff --git a/glom/utility_widgets/adddel/adddel.cc b/glom/utility_widgets/adddel/adddel.cc
index a60a7bb..ccbdc43 100644
--- a/glom/utility_widgets/adddel/adddel.cc
+++ b/glom/utility_widgets/adddel/adddel.cc
@@ -730,7 +730,7 @@ void AddDel::set_value(const Gtk::TreeModel::iterator& iter, guint col, const Gl
     std::cerr << G_STRFUNC << ": No model.\n";
   else
   {
-    Gtk::TreeModel::Row treerow = *iter;
+    auto treerow = *iter;
     if(treerow)
     {
       //Different model columns have different types of data:
@@ -780,7 +780,7 @@ void AddDel::set_value(const Gtk::TreeModel::iterator& iter, guint col, bool val
     std::cerr << G_STRFUNC << ": No model.\n";
   else
   {
-    Gtk::TreeModel::Row treerow = *iter;
+    auto treerow = *iter;
     if(treerow)
     {
       //Different model columns have different types of data:
@@ -1013,14 +1013,13 @@ AddDel::InnerIgnore::~InnerIgnore()
   m_outer = nullptr;
 }
 
-Glib::ustring AddDel::treeview_get_key(const Gtk::TreeModel::iterator& row)
+Glib::ustring AddDel::treeview_get_key(const Gtk::TreeModel::const_iterator& row)
 {
   Glib::ustring value;
 
   if(m_list_store)
   {
-    Gtk::TreeModel::Row treerow = *row;
-
+    const auto treerow = *row;
     if(treerow)
       treerow.get_value(m_col_key, value);
   }
@@ -1039,7 +1038,7 @@ void AddDel::on_treeview_cell_edited_bool(const Glib::ustring& path_string, int
   auto iter = m_list_store->get_iter(path);
   if(iter)
   {
-    Gtk::TreeModel::Row row = *iter;
+    auto row = *iter;
 
     bool value_old = false;
     row.get_value(model_column_index, value_old);
@@ -1114,7 +1113,7 @@ void AddDel::on_treeview_cell_edited(const Glib::ustring& path_string, const Gli
   auto iter = m_list_store->get_iter(path);
   if(iter != get_model()->children().end())
   {
-    Gtk::TreeModel::Row row = *iter;
+    auto row = *iter;
 
     Glib::ustring strTextOld;
     row.get_value(model_column_index, strTextOld);
@@ -1507,14 +1506,14 @@ void AddDel::set_prevent_duplicates_warning(const Glib::ustring& warning_text)
   m_prevent_duplicates_warning = warning_text;
 }
 
-bool AddDel::row_has_duplicates(const Gtk::TreeModel::iterator& iter) const
+bool AddDel::row_has_duplicates(const Gtk::TreeModel::const_iterator& iter) const
 {
   const auto cols_count = m_column_types.size();
   for(type_ColumnTypes::size_type col = 0; col < cols_count; ++col)
   {
     if(m_column_types[col].m_prevent_duplicates)
     {
-      Gtk::TreeModel::Row row = *iter;
+      const auto row = *iter;
 
       //We can't just use Value, because Gnome::Gda::Value has no operator==, because there is no 
g_value_equal
       //Gnome::Gda::Value value_this_row;
@@ -1539,7 +1538,7 @@ bool AddDel::row_has_duplicates(const Gtk::TreeModel::iterator& iter) const
       {
         if(iterCheck != iter) //Don't compare the row with itself
         {
-          Gtk::TreeModel::Row check_row = *iterCheck;
+          const auto check_row = *iterCheck;
           ////Gnome::Gda::Value has no operator==, because there is no g_value_equal
           //Gnome::Gda::Value value_check_row;
           //TODO: Actually, Gnome::Gda::Value has an operator==



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