[glom] Fixed a crash when Glom was lanuched via LDTP



commit 8fd58e7f8ca441de0efc79deca68f5082434efd7
Author: Armin Burgmeier <armin arbur net>
Date:   Mon May 25 19:47:19 2009 +0200

    Fixed a crash when Glom was lanuched via LDTP
    
    	* glom/dialog_existing_or_new.cc (constructor): Create the top level
    	list elements before setting the cell data func, to avoid the cell
    	data func being called before all the list elements have been added.
    	This happended when Glom was launched via LDTP, leading to a crash.
---
 ChangeLog                      |    7 +++++++
 glom/dialog_existing_or_new.cc |   36 +++++++++++++++++-------------------
 2 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a67bca0..447cd75 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-05-25  Armin Burgmeier  <armin openismus com>
+
+	* glom/dialog_existing_or_new.cc (constructor): Create the top level
+	list elements before setting the cell data func, to avoid the cell
+	data func being called before all the list elements have been added.
+	This happended when Glom was launched via LDTP, leading to a crash.
+
 2009-05-20  Armin Burgmeier  <armin openismus com>
 
 	* glom/libglom/connectionpool_backends/backend.h:
diff --git a/glom/dialog_existing_or_new.cc b/glom/dialog_existing_or_new.cc
index 5d06191..c9e7882 100644
--- a/glom/dialog_existing_or_new.cc
+++ b/glom/dialog_existing_or_new.cc
@@ -115,6 +115,23 @@ Dialog_ExistingOrNew::Dialog_ExistingOrNew(BaseObjectType* cobject, const Glib::
   m_new_model = Gtk::TreeStore::create(m_new_columns);
   m_new_view->set_model(m_new_model);
 
+  m_iter_existing_other = m_existing_model->append();
+  (*m_iter_existing_other)[m_existing_columns.m_col_title] = _("Select File");
+
+#ifndef G_OS_WIN32
+  m_iter_existing_network = m_existing_model->append();
+  (*m_iter_existing_network)[m_existing_columns.m_col_title] = _("Local Network");
+#endif
+
+  m_iter_existing_recent = m_existing_model->append();
+  (*m_iter_existing_recent)[m_existing_columns.m_col_title] = _("Recently Opened");
+  
+  m_iter_new_empty = m_new_model->append();
+  (*m_iter_new_empty)[m_new_columns.m_col_title] = _("New Empty Document");
+
+  m_iter_new_template = m_new_model->append();
+  (*m_iter_new_template)[m_new_columns.m_col_title] = _("New From Template");
+
   m_existing_column_title.set_expand(true);
   m_existing_column_title.pack_start(m_existing_icon_renderer, false);
   m_existing_column_title.pack_start(m_existing_title_renderer, true);
@@ -122,7 +139,6 @@ Dialog_ExistingOrNew::Dialog_ExistingOrNew(BaseObjectType* cobject, const Glib::
   m_existing_column_title.set_cell_data_func(m_existing_title_renderer, sigc::mem_fun(*this, &Dialog_ExistingOrNew::existing_title_data_func));
   m_existing_view->append_column(m_existing_column_title);
 
-
   m_new_column_title.set_expand(true);
   m_new_column_title.pack_start(m_new_icon_renderer, false);
   m_new_column_title.pack_start(m_new_title_renderer, true);
@@ -135,24 +151,6 @@ Dialog_ExistingOrNew::Dialog_ExistingOrNew(BaseObjectType* cobject, const Glib::
   m_new_view->set_headers_visible(false);
   m_new_view->signal_row_activated().connect(sigc::mem_fun(*this, &Dialog_ExistingOrNew::on_new_row_activated));
 
-  m_iter_existing_other = m_existing_model->append();
-  (*m_iter_existing_other)[m_existing_columns.m_col_title] = _("Select File");
-
-#ifndef G_OS_WIN32
-  m_iter_existing_network = m_existing_model->append();
-  (*m_iter_existing_network)[m_existing_columns.m_col_title] = _("Local Network");
-#endif
-
-  m_iter_existing_recent = m_existing_model->append();
-  (*m_iter_existing_recent)[m_existing_columns.m_col_title] = _("Recently Opened");
-  
-  m_iter_new_empty = m_new_model->append();
-  (*m_iter_new_empty)[m_new_columns.m_col_title] = _("New Empty Document");
-
-  m_iter_new_template = m_new_model->append();
-  (*m_iter_new_template)[m_new_columns.m_col_title] = _("New From Template");
-
-
  // Load example files:
 #ifndef GLOM_ENABLE_CLIENT_ONLY
 



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