====== Thunarx API clean-up ====== Since the API soname had to bumped to avoid conflicts with GTK3 symbols, it's an appropriate opportunity to remove deprecated Widgets from the Thunar Extension Framework (thunarx), specifically [[https://developer.gnome.org/gtk3/stable/GtkAction.html|GtkAction]]. Considering the effort it would that take replace all GtkAction/GtkUiManager related code with [[https://wiki.gnome.org/HowDoI/GAction|GAction]]/GtkBuilder/[[https://wiki.gnome.org/HowDoI/GMenu|GMenu]], and realising this is [[https://wiki.gnome.org/Projects/GTK/Menus#Comments|not a straightforward task]], we decided to keep these deprecated widget internally and deal with them by the time of the GTK4 port. Based on [[https://github.com/linuxmint/nemo/tree/master/libnemo-extension|Nemo's approach]], the **ThunarxMenuItem** and **ThunarxMenu** classes were designed as drop-in replacements for GtkAction yielded by providers, hence updating plugins should be an easy task. ==== Provider interfaces affected ==== * ThunarxMenuProvider - The interface to extensions that provide additional menu items * ThunarxPreferencesProvider - The interface to extensions that provide preferences * ThunarxRenamerProvider - The interface to extensions that provide additional bulk renamers ==== Functions changed ==== * thunarx_menu_provider_get_file_actions -> thunarx_menu_provider_get_file_menu_items * thunarx_menu_provider_get_folder_actions -> thunarx_menu_provider_get_folder_menu_items * thunarx_menu_provider_get_dnd_actions -> thunarx_menu_provider_get_dnd_menu_items * thunarx_preferences_provider_get_actions -> thunarx_preferences_provider_get_menu_items * thunarx_renamer_get_actions -> thunarx_renamer_get_menu_items ==== Plugins/components to update ==== * [X] thunar-advanced-properties ("apr", bundled with thunar) * [X] thunar-simple-builtin-renamers ("sbr", bundled with thunar) * [X] thunar-sendto-email (bundled with thunar) * [X] thunar-trash-panel-applet ("tpa, bundled with thunar) * [X] thunar-user-customizable-actions ("uca", bundled with thunar) * [X] thunar-wallpaper-plugin (bundled with thunar) * [X] thunar-actions-plugin (unmaintained, moved to archive) * [X] thunar-archive-plugin * [X] thunar-media-tags-plugin * [X] thunar-shares-plugin * [X] thunar-vcs-plugin * [X] xfdesktop (merged, will be available in 4.13.2) * [X] thunarx-python ==== Compatibility Matrix ==== ^ Component ^ Thunar 1.6.x ^ Thunar 1.7.x+ ^ Works with both ^ | xfdesktop | 4.12 | 4.13.2+ | No | | thunar-archive-plugin | 0.3.1 | 0.4.0 | No | | thunar-media-tags-plugin | 0.2.1 | 0.3.0 | No | | thunar-shares-plugin | 0.2.0 | 0.3.0 | No | | thunar-vcs-plugin | 0.1.5 | 0.2.0 | No | | thunarx-python | 0.3.0 | 0.5.0 | No |