The source project of this merge request has been removed.
filechooserwidget: Disconnect settings signal on dispose
Settings signal was not being disconnected on dispose causing application crash when user changed icon theme after dialog disposal.
First commit from this MR is an actual bug fix, while second is a code optimization aimed to reduce duplicated part of that disconnect settings code and not getting display for widget if there isn't any need to do so.
This is what happens (without this MR) when trying to change icon theme AFTER filechooser disposal:
Thread 1 received signal SIGSEGV, Segmentation fault.
0x00007fffe1103b4e in _gtk_file_system_model_clear_cache (model=0x555555a3af48, column=8) at ../gtk/gtkfilesystemmodel.c:2040
2040 g_return_if_fail (GTK_IS_FILE_SYSTEM_MODEL (model));
(gdb) bt full
#0 0x00007fffe1103b4e in _gtk_file_system_model_clear_cache (model=0x555555a3af48, column=8) at ../gtk/gtkfilesystemmodel.c:2040
__inst = 0x555555a3af48
Python Exception <class 'gdb.error'> No type named TypeNode.:
__t =
__r = <optimized out>
_g_boolean_var_ = <optimized out>
i = <optimized out>
start = <optimized out>
end = <optimized out>
changed = <optimized out>
__func__ = "_gtk_file_system_model_clear_cache"
#1 0x00007fffe0f0596e in clear_model_cache (column=8, impl=0x5555566f9d20) at ../gtk/gtkfilechooserwidget.c:1543
name = <optimized out>
#2 change_icon_theme (impl=0x5555566f9d20) at ../gtk/gtkfilechooserwidget.c:3181
name = <optimized out>
#3 settings_notify_cb (object=<optimized out>, pspec=<optimized out>, impl=0x5555566f9d20) at ../gtk/gtkfilechooserwidget.c:3196
name = <optimized out>