glom r1492 - in branches/glom-1-6: . glom/navigation
- From: murrayc svn gnome org
- To: svn-commits-list gnome org
- Subject: glom r1492 - in branches/glom-1-6: . glom/navigation
- Date: Mon, 31 Mar 2008 10:45:57 +0100 (BST)
Author: murrayc
Date: Mon Mar 31 10:45:57 2008
New Revision: 1492
URL: http://svn.gnome.org/viewvc/glom?rev=1492&view=rev
Log:
2008-03-31 Murray Cumming <murrayc murrayc com>
* glom/navigation/box_tables.cc: on_adddel_changed(): When changing the
default-table column, make sure that only one row can have this checked.
It should really be a radio column, but that would be more work
(to work around the AddDel widget).
Bug #525186 (Jani Monoses)
Modified:
branches/glom-1-6/ChangeLog
branches/glom-1-6/glom/navigation/box_tables.cc
Modified: branches/glom-1-6/glom/navigation/box_tables.cc
==============================================================================
--- branches/glom-1-6/glom/navigation/box_tables.cc (original)
+++ branches/glom-1-6/glom/navigation/box_tables.cc Mon Mar 31 10:45:57 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 + ", " +
@@ -365,10 +367,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);
}
@@ -389,15 +391,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]