glom r1897 - in trunk: . glom/mode_data glom/utility_widgets/db_adddel



Author: arminb
Date: Sun Feb 15 13:59:00 2009
New Revision: 1897
URL: http://svn.gnome.org/viewvc/glom?rev=1897&view=rev

Log:
2009-02-15  Armin Burgmeier  <armin openismus com>

	* glom/mode_data/box_data_details.cc (on_flowtable_field_edited):
	Revert the changed value if set_field_value_in_database() throws a
	glib exception.


Modified:
   trunk/ChangeLog
   trunk/glom/mode_data/box_data_details.cc
   trunk/glom/utility_widgets/db_adddel/db_adddel.cc

Modified: trunk/glom/mode_data/box_data_details.cc
==============================================================================
--- trunk/glom/mode_data/box_data_details.cc	(original)
+++ trunk/glom/mode_data/box_data_details.cc	Sun Feb 15 13:59:00 2009
@@ -760,6 +760,10 @@
       bTest = set_field_value_in_database(field_in_record, field_value, false /* don't use current calculations */, get_app_window());
     }
 #ifdef GLIBMM_EXCEPTIONS_ENABLED
+    catch(const Glib::Exception& ex)
+    {
+      handle_error(ex);
+    }
     catch(const std::exception& ex)
     {
       handle_error(ex);
@@ -773,7 +777,9 @@
       if(!bTest)
       {
         //Update failed.
-        fill_from_database(); //Replace with correct values.
+        //Replace with correct values.
+        const Gnome::Gda::Value value_old = get_field_value_in_database(field_in_record, window);
+        set_entered_field_data(layout_field, value_old);
       }
       else
       {

Modified: trunk/glom/utility_widgets/db_adddel/db_adddel.cc
==============================================================================
--- trunk/glom/utility_widgets/db_adddel/db_adddel.cc	(original)
+++ trunk/glom/utility_widgets/db_adddel/db_adddel.cc	Sun Feb 15 13:59:00 2009
@@ -2265,6 +2265,7 @@
     {
       handle_error(ex);
 
+      //Replace with correct values.
       if(primary_key_field)
       {
         LayoutFieldInRecord field_in_record(layout_field, m_found_set.m_table_name /* parent */, primary_key_field, primary_key_value);
@@ -2276,6 +2277,7 @@
     {
       handle_error(ex);
 
+      //Replace with correct values.
       if(primary_key_field)
       {
         LayoutFieldInRecord field_in_record(layout_field, m_found_set.m_table_name /* parent */, primary_key_field, primary_key_value);



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