Convert the view buttons in the toolbar into radio buttons (Issue #925)
Hi @alexxcons, I am happy to present my latest work to you
Fixes #925 (closed)
Some notes regarding the implementation:
In #925 (closed) @lastonestanding wrote:
The "Search for Files..." button already has the described behavior, so looking up its code may help to implement this enhancement.
I thought that myself and then wondered why this is so difficult to implement. After a while I recognized I have to use another button type called GtkRadioToolButton
. Maybe it's possible to implement the buttons as GtkToggleToolButton
by disabling the signals temporarily but I have done it the official way without any workarounds now.
In function thunar_window_location_toolbar_create()
I have to determine which radio view button is active on thunar startup. I tried to get this info by window->view_type
and also by calling thunar_window_view_type_for_directory()
. But that didn't work because I assume the values aren't initialised that early. Because of that I compare directly the string stored in xfconf like for example !g_strcmp0 (type_name, "ThunarIconView")
.
The function thunar_window_create_toolbar_radio_item_from_action()
is a bit bigger regarding lines of code than the similar function thunar_window_create_toolbar_toggle_item_from_action()
. That is because the is no helper function in libxfce4ui like xfce_gtk_toggle_tool_button_new_from_action_entry()
.
The radio buttons also behave correctly when the view changes with different tabs and also when the focus changes in the split view.