glom r1493 - in trunk: . glom/navigation



Author: murrayc
Date: Mon Mar 31 10:46:16 2008
New Revision: 1493
URL: http://svn.gnome.org/viewvc/glom?rev=1493&view=rev

Log:
2008-03-31  Murray Cumming  <murrayc murrayc com>

* glom/libglom/data_structure/field.cc: Field::init_map():
Comment out some previously-allowed conversions because postgres 8.3 
has become less tolerant of conversions that could not produce useful 
data, such as date-to-number, causing postgres errors at runtime.
Bug #525188 (Jani Monoses)

Modified:
   trunk/ChangeLog
   trunk/glom/navigation/box_tables.cc

Modified: trunk/glom/navigation/box_tables.cc
==============================================================================
--- trunk/glom/navigation/box_tables.cc	(original)
+++ trunk/glom/navigation/box_tables.cc	Mon Mar 31 10:46:16 2008
@@ -117,7 +117,9 @@
 
   m_colHidden = m_AddDel.add_column(_("Hidden"), AddDelColumnInfo::STYLE_Boolean, editable, visible_extras);
   m_colTitle =  m_AddDel.add_column(_("Title"), AddDelColumnInfo::STYLE_Text, editable, true);
-  m_colDefault =  m_AddDel.add_column(_("Default"), AddDelColumnInfo::STYLE_Boolean,  editable, visible_extras);
+
+  //TODO: This should really be a radio, but the use of AddDel makes it awkward to change that CellRenderer property.
+  m_colDefault =  m_AddDel.add_column(_("Default"), AddDelColumnInfo::STYLE_Boolean, editable, visible_extras);
 
 
   //_("Server: ") +  m_strServerName + ", " + 
@@ -364,10 +366,10 @@
 
         if(!table_info->get_name().empty())
         {
-          table_info->m_hidden  = m_AddDel.get_value_as_bool(iter, m_colHidden);
+          table_info->m_hidden = m_AddDel.get_value_as_bool(iter, m_colHidden);
           table_info->set_title( m_AddDel.get_value(iter, m_colTitle) ); //TODO_Translations: Store the TableInfo in the TreeView.
           //std::cout << "save_to_document(): title=" << table_info->get_title() << std::endl;
-          table_info->m_default  = m_AddDel.get_value_as_bool(iter, m_colDefault);
+          table_info->m_default = m_AddDel.get_value_as_bool(iter, m_colDefault);
 
           listTables.push_back(table_info);
         }
@@ -388,15 +390,32 @@
 {
   if(get_userlevel() == AppState::USERLEVEL_DEVELOPER)
   {
-    if( (column == m_colHidden) )
+    if(column == m_colHidden)
     {
       save_to_document();
       //TODO: This causes a crash. fill_from_database(); //Hide/show the table.
     }
-    else if( (column == m_colTitle) || (column == m_colDefault) )
+    else if(column == m_colTitle)
     {
       save_to_document();
     }
+    else if(column == m_colDefault)
+    {
+      //Only one table can be the default, so ensure that:
+      const bool is_default = m_AddDel.get_value_as_bool(row, m_colDefault);
+      if(is_default)
+      {
+        //Set all the other rows to false:
+        Glib::RefPtr<Gtk::TreeModel> model = m_AddDel.get_model();
+        for(Gtk::TreeModel::iterator iter = model->children().begin(); iter != model->children().end(); ++iter)
+        {
+          if(iter != row)
+            m_AddDel.set_value(iter, m_colDefault, false);
+        }
+      }
+
+      save_to_document();
+    }
     else if(column == m_colTableName)
     {
       Glib::ustring table_name = m_AddDel.get_value_key(row);



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