[gtk+/gtk-2-24] filechooserentry: Reorganize function



commit aff9158d4156dadb6fb8ddbd5edcd8d0c7f7e17b
Author: Benjamin Otte <otte redhat com>
Date:   Fri Oct 28 05:38:11 2011 -0700

    filechooserentry: Reorganize function
    
    Setter functions the way I code it look like this (in order):
    1) Figure out if the value changed. If not, exit early.
    2) Clear the old value (ie unref stuff, disconnect signals
    3) Copy the new value
    4) Set up things about the new value
    
    This reorganization does that.
    
    And by doing that, it even reduces the amount of code and the amount of
    branches (and with it, nesting) needed.

 gtk/gtkfilechooserentry.c |   33 +++++++++++----------------------
 1 files changed, 11 insertions(+), 22 deletions(-)
---
diff --git a/gtk/gtkfilechooserentry.c b/gtk/gtkfilechooserentry.c
index 9c8d683..170305e 100644
--- a/gtk/gtkfilechooserentry.c
+++ b/gtk/gtkfilechooserentry.c
@@ -1489,34 +1489,23 @@ reload_current_folder (GtkFileChooserEntry *chooser_entry,
                       GFile               *folder_file,
                       gboolean             force_reload)
 {
-  gboolean reload = FALSE;
-
   g_assert (folder_file != NULL);
 
-  if (chooser_entry->current_folder_file)
-    {
-      if ((!(g_file_equal (folder_file, chooser_entry->current_folder_file)
-            && chooser_entry->load_folder_cancellable))
-         || force_reload)
-       {
-         reload = TRUE;
-
-          discard_current_folder (chooser_entry);
-         discard_loading_and_current_folder_file (chooser_entry);
+  if (chooser_entry->current_folder_file
+      && g_file_equal (folder_file, chooser_entry->current_folder_file)
+      && chooser_entry->load_folder_cancellable
+      && !force_reload)
+    return REFRESH_OK;
 
-         chooser_entry->current_folder_file = g_object_ref (folder_file);
-       }
-    }
-  else
+  if (chooser_entry->current_folder_file)
     {
-      chooser_entry->current_folder_file = g_object_ref (folder_file);
-      reload = TRUE;
+      discard_current_folder (chooser_entry);
+      discard_loading_and_current_folder_file (chooser_entry);
     }
+  
+  chooser_entry->current_folder_file = g_object_ref (folder_file);
 
-  if (reload)
-    return start_loading_current_folder (chooser_entry);
-  else
-    return REFRESH_OK;
+  return start_loading_current_folder (chooser_entry);
 }
 
 static RefreshStatus


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