]> Pileus Git - ~andy/gtk/commitdiff
filechooserentry: Reorganize function
authorBenjamin Otte <otte@redhat.com>
Fri, 28 Oct 2011 12:38:11 +0000 (05:38 -0700)
committerBenjamin Otte <otte@redhat.com>
Fri, 16 Dec 2011 19:09:11 +0000 (20:09 +0100)
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

index 829b529c900c6e0cde906d54d377c78d3cd3eaeb..d365d7136f971289b33716651798d2ddb5e74461 100644 (file)
@@ -1497,34 +1497,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