glom r1605 - in trunk: . glom/mode_data
- From: murrayc svn gnome org
- To: svn-commits-list gnome org
- Subject: glom r1605 - in trunk: . glom/mode_data
- Date: Tue, 6 May 2008 15:12:46 +0100 (BST)
Author: murrayc
Date: Tue May 6 14:12:46 2008
New Revision: 1605
URL: http://svn.gnome.org/viewvc/glom?rev=1605&view=rev
Log:
2008-05-06 Murray Cumming <murrayc murrayc com>
* glom/mode_data/notebook_data.cc: on_list_user_requested_details():
Improve my fix from 2008-04-30:
Call refresh_data_from_database_with_primary_key() again, but stop the
switch-page handler from running, so that we really see the details for
the row when clicking on the record in the list view.
Modified:
trunk/ChangeLog
trunk/glom/mode_data/notebook_data.cc
Modified: trunk/glom/mode_data/notebook_data.cc
==============================================================================
--- trunk/glom/mode_data/notebook_data.cc (original)
+++ trunk/glom/mode_data/notebook_data.cc Tue May 6 14:12:46 2008
@@ -167,11 +167,10 @@
if(document)
{
const Glib::ustring current_layout = get_document()->get_layout_current(m_table_name);
- if( (current_layout.empty() || (current_layout == "list"))
- && (current_view != DATA_VIEW_List) )
- set_current_view(DATA_VIEW_List);
- else if( (current_layout == "details") && (current_view != DATA_VIEW_Details) )
- set_current_view(DATA_VIEW_Details);
+ if( (current_layout.empty() || (current_layout == "list")) && (current_view != DATA_VIEW_List) )
+ set_current_view(DATA_VIEW_List);
+ else if( (current_layout == "details") && (current_view != DATA_VIEW_Details) )
+ set_current_view(DATA_VIEW_Details);
}
}
@@ -195,8 +194,18 @@
void Notebook_Data::on_list_user_requested_details(const Gnome::Gda::Value& primary_key_value)
{
- //on_switch_page_handler() does this: m_Box_Details.refresh_data_from_database_with_primary_key(primary_key_value);
- set_current_page(m_iPage_Details);
+ //Prevent n_switch_page_handler() from doing the same thing:
+ if(m_connection_switch_page)
+ m_connection_switch_page.block();
+
+ m_Box_Details.refresh_data_from_database_with_primary_key(primary_key_value);
+
+ if(get_current_view() != DATA_VIEW_Details)
+ set_current_view(DATA_VIEW_Details);
+
+ //Re-enable this handler, so we can respond to notebook page changes:
+ if(m_connection_switch_page)
+ m_connection_switch_page.unblock();
}
void Notebook_Data::on_details_user_requested_related_details(const Glib::ustring& table_name, Gnome::Gda::Value primary_key_value)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]