Commit d5e5ca3e authored by Benjamin Otte's avatar Benjamin Otte

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.
parent 7b51ca9a
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment