This is an automated email from the git hooks/post-receive script. l a n d r y p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository apps/gigolo.
commit d73b49a66b86cc8750cc1a5fe8039d007bc34a9b Author: Sean Davis <smd.seanda...@gmail.com> Date: Mon Oct 22 21:57:47 2018 -0400 Port to GtkBuilder, replace GtkAction, clear out remaining deprecations --- .gitignore | 2 + TODO | 62 ----- configure.ac.in | 1 + src/Makefile.am | 13 +- src/gigolo.ui | 609 +++++++++++++++++++++++++++++++++++++++++++++++++ src/menubuttonaction.c | 119 ++-------- src/menubuttonaction.h | 9 +- src/window.c | 568 ++++++++++++++++++++++----------------------- 8 files changed, 917 insertions(+), 466 deletions(-) diff --git a/.gitignore b/.gitignore index 8384052..a3ad8fd 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,6 @@ po/stamp-it src/*.o src/.deps/ src/gigolo +src/gigolo.ui~ +src/gigolo_ui.h stamp-h1 diff --git a/TODO b/TODO index 4511eda..55a3d8d 100644 --- a/TODO +++ b/TODO @@ -2,65 +2,3 @@ - libnotify - to notify about new mounts or disappeared mounts (ftp timeout, etc.) - split GigoloApp from GigoloWindow - Samba mounts with set credentials can fail - -=== GtkUiManager deprecations === -window.c:1333:2: warning: ‘gtk_ui_manager_insert_action_group’ is deprecated -window.c:1334:2: warning: ‘gtk_ui_manager_get_accel_group’ is deprecated -window.c:1344:2: warning: ‘gtk_ui_manager_add_ui_from_string’ is deprecated -window.c:1579:2: warning: ‘gtk_ui_manager_new’ is deprecated -window.c:1581:2: warning: ‘gtk_ui_manager_get_widget’ is deprecated -window.c:1582:2: warning: ‘gtk_ui_manager_get_widget’ is deprecated -window.c:1583:2: warning: ‘gtk_ui_manager_get_widget’ is deprecated -window.c:1584:2: warning: ‘gtk_ui_manager_get_widget’ is deprecated - -=== GtkAction deprecations === -window.c:337:2: warning: ‘gtk_toggle_action_get_active’ is deprecated -window.c:1116:2: warning: ‘gtk_toggle_action_set_active’ is deprecated -window.c:1116:2: warning: ‘gtk_toggle_action_get_type’ is deprecated - -window.c:356:2: warning: ‘gtk_radio_action_get_current_value’ is deprecated -window.c:1125:2: warning: ‘gtk_radio_action_set_current_value’ is deprecated -window.c:1125:2: warning: ‘gtk_radio_action_get_type’ is deprecated - -window.c:340:2: warning: ‘gtk_action_get_name’ is deprecated -window.c:340:2: warning: ‘gtk_action_get_type’ is deprecated -window.c:342:2: warning: ‘gtk_action_get_name’ is deprecated -window.c:342:2: warning: ‘gtk_action_get_type’ is deprecated -window.c:344:2: warning: ‘gtk_action_get_name’ is deprecated -window.c:344:2: warning: ‘gtk_action_get_type’ is deprecated -window.c:693:2: warning: ‘gtk_action_set_sensitive’ is deprecated -window.c:695:3: warning: ‘gtk_action_set_label’ is deprecated -window.c:697:3: warning: ‘gtk_action_set_label’ is deprecated -window.c:716:3: warning: ‘gtk_action_set_sensitive’ is deprecated -window.c:718:3: warning: ‘gtk_action_set_sensitive’ is deprecated -window.c:719:3: warning: ‘gtk_action_set_sensitive’ is deprecated -window.c:720:3: warning: ‘gtk_action_set_sensitive’ is deprecated -window.c:725:3: warning: ‘gtk_action_set_sensitive’ is deprecated -window.c:726:3: warning: ‘gtk_action_set_sensitive’ is deprecated -window.c:727:3: warning: ‘gtk_action_set_sensitive’ is deprecated -window.c:728:3: warning: ‘gtk_action_set_sensitive’ is deprecated -window.c:729:3: warning: ‘gtk_action_set_sensitive’ is deprecated -window.c:1340:3: warning: ‘gtk_action_set_icon_name’ is deprecated -window.c:1342:3: warning: ‘gtk_action_set_icon_name’ is deprecated -menubuttonaction.c:49:1: warning: ‘gtk_action_get_type’ is deprecated -menubuttonaction.c:112:2: warning: ‘gtk_action_get_proxies’ is deprecated -menubuttonaction.c:112:2: warning: ‘gtk_action_get_type’ is deprecated -menubuttonaction.c:151:2: warning: ‘gtk_action_get_type’ is deprecated -menubuttonaction.c:182:2: warning: ‘gtk_action_get_type’ is deprecated - -window.c:1114:2: warning: ‘gtk_action_group_get_action’ is deprecated -window.c:1123:2: warning: ‘gtk_action_group_get_action’ is deprecated -window.c:1326:2: warning: ‘gtk_action_group_new’ is deprecated -window.c:1327:2: warning: ‘gtk_action_group_set_translation_domain’ is deprecated -window.c:1328:2: warning: ‘gtk_action_group_add_actions’ is deprecated -window.c:1329:2: warning: ‘gtk_action_group_add_toggle_actions’ is deprecated -window.c:1330:2: warning: ‘gtk_action_group_add_radio_actions’ is deprecated -window.c:1332:2: warning: ‘gtk_action_group_add_action’ is deprecated -window.c:1337:2: warning: ‘gtk_action_group_get_action’ is deprecated -window.c:1593:2: warning: ‘gtk_action_group_get_action’ is deprecated -window.c:1594:2: warning: ‘gtk_action_group_get_action’ is deprecated -window.c:1595:2: warning: ‘gtk_action_group_get_action’ is deprecated -window.c:1596:2: warning: ‘gtk_action_group_get_action’ is deprecated -window.c:1597:2: warning: ‘gtk_action_group_get_action’ is deprecated -window.c:1598:2: warning: ‘gtk_action_group_get_action’ is deprecated -window.c:1601:2: warning: ‘gtk_action_group_get_action’ is deprecated diff --git a/configure.ac.in b/configure.ac.in index 97f0501..9dee7e5 100644 --- a/configure.ac.in +++ b/configure.ac.in @@ -7,6 +7,7 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_CONFIG_SRCDIR([src/main.c]) AC_CONFIG_HEADER(config.h) +AM_MAINTAINER_MODE() AC_GNU_SOURCE AC_AIX diff --git a/src/Makefile.am b/src/Makefile.am index d96b04b..d4fb303 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -14,7 +14,8 @@ gigolo_SOURCES = \ bookmarkdialog.c bookmarkdialog.h \ bookmarkeditdialog.c bookmarkeditdialog.h \ browsenetworkpanel.c browsenetworkpanel.h \ - preferencesdialog.c preferencesdialog.h + preferencesdialog.c preferencesdialog.h \ + gigolo_ui.h AM_CFLAGS = -DLOCALEDIR=\""$(localedir)"\" @@ -23,3 +24,13 @@ AM_CFLAGS = -DLOCALEDIR=\""$(localedir)"\" INCLUDES = @GTK_CFLAGS@ gigolo_LDADD = @GTK_LIBS@ $(INTLLIBS) + +if MAINTAINER_MODE + +BUILT_SOURCES = \ + gigolo_ui.h + +gigolo_ui.h: gigolo.ui + exo-csource --static --strip-comments --strip-content --name=gigolo_ui $< >$@ + +endif diff --git a/src/gigolo.ui b/src/gigolo.ui new file mode 100644 index 0000000..036b4ec --- /dev/null +++ b/src/gigolo.ui @@ -0,0 +1,609 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.1 --> +<interface> + <requires lib="gtk+" version="3.20"/> + <object class="GtkWindow" id="gigolo_window"> + <property name="name">GigoloWindow</property> + <property name="can_focus">False</property> + <property name="title" translatable="yes">Gigolo</property> + <property name="icon_name">gtk-network</property> + <child> + <placeholder/> + </child> + <child> + <object class="GtkBox" id="vbox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkMenuBar" id="menubar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="menu_File"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_File</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="menuitem_Quit"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Quit</property> + <property name="use_underline">True</property> + <accelerator key="q" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menu_Edit"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Edit</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="menuitem_EditBookmarks"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Edit Bookmarks</property> + <property name="use_underline">True</property> + <accelerator key="b" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> + </child> + <child> + <object class="GtkSeparatorMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem_Preferences"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Preferences</property> + <property name="use_underline">True</property> + <accelerator key="p" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menu_View"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_View</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkCheckMenuItem" id="menuitem_ShowToolbar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Toolbar</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkCheckMenuItem" id="menuitem_ShowPanel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Side _Panel</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkCheckMenuItem" id="menuitem_ShowInSystray"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Status _Icon</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkSeparatorMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + </child> + <child> + <object class="GtkRadioMenuItem" id="menuitem_ViewSymbols"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">View as _Symbols</property> + <property name="use_underline">True</property> + <property name="draw_as_radio">True</property> + </object> + </child> + <child> + <object class="GtkRadioMenuItem" id="menuitem_ViewDetailed"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">View as _Detailed List</property> + <property name="use_underline">True</property> + <property name="draw_as_radio">True</property> + <property name="group">menuitem_ViewSymbols</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menu_Actions"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Actions</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="menuitem_Connect"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Connect</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem_Disconnect"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Disconnect</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menu_Bookmarks"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">Bookmarks</property> + <property name="label" translatable="yes">_Bookmarks</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkSeparatorMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem_Open"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Open</property> + <property name="use_underline">True</property> + <accelerator key="o" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem_OpenTerminal"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Open in _Terminal</property> + <property name="use_underline">True</property> + <accelerator key="t" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem_CopyURI"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Copy URI</property> + <property name="use_underline">True</property> + <accelerator key="c" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menu_Help"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Help</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="menuitem_OnlineHelp"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Online Help</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem_SupportedSchemes"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Supported Protocols</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkSeparatorMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem_About"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">About</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkToolbar" id="toolbar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuToolButton" id="toolitem_Bookmarks"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Choose a bookmark to connect to</property> + <property name="label" translatable="yes">_Bookmarks</property> + <property name="use_underline">True</property> + <property name="icon_name">gtk-connect</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">False</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="toolitem_Disconnect"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Disconnect the selected resource</property> + <property name="label" translatable="yes">_Disconnect</property> + <property name="use_underline">True</property> + <property name="icon_name">gtk-disconnect</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">False</property> + </packing> + </child> + <child> + <object class="GtkSeparatorToolItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="toolitem_EditBookmarks"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Open the bookmark manager to add, edit or delete bookmarks</property> + <property name="label" translatable="yes">_Edit Bookmarks</property> + <property name="use_underline">True</property> + <property name="icon_name">gtk-edit</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkSeparatorToolItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="toolitem_Open"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Open the selected resource with a file manager</property> + <property name="label" translatable="yes">_Open</property> + <property name="use_underline">True</property> + <property name="icon_name">document-open</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="toolitem_OpenTerminal"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Start a terminal from here</property> + <property name="label" translatable="yes">Open _Terminal</property> + <property name="use_underline">True</property> + <property name="icon_name">utilities-terminal</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkSeparatorToolItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="toolitem_Quit"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Quit Gigolo</property> + <property name="label" translatable="yes">_Quit</property> + <property name="use_underline">True</property> + <property name="icon_name">application-exit</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkPaned" id="panel_pane"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="position">200</property> + <child> + <object class="GtkNotebook" id="notebook_panel"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tab_pos">left</property> + <property name="show_border">False</property> + <child> + <placeholder/> + </child> + <child type="tab"> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child type="tab"> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child type="tab"> + <placeholder/> + </child> + </object> + <packing> + <property name="resize">False</property> + <property name="shrink">True</property> + </packing> + </child> + <child> + <object class="GtkNotebook" id="notebook_store"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="show_tabs">False</property> + <property name="show_border">False</property> + <child> + <object class="GtkScrolledWindow" id="swin_treeview"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <child> + <placeholder/> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">page 1</property> + </object> + <packing> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="swin_iconview"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child type="tab"> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">page 2</property> + </object> + <packing> + <property name="position">1</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child type="tab"> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">page 3</property> + </object> + <packing> + <property name="position">2</property> + <property name="tab_fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="resize">True</property> + <property name="shrink">True</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> + <object class="GtkMenu" id="systray_icon_popup_menu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="systray_Connect"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Connect</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="systray_Bookmarks"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Bookmarks</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="systray_EditBookmarks"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Edit Bookmarks</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="systray_Preferences"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Preferences</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="systray_Quit"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Quit</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + <object class="GtkMenu" id="tree_popup_menu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="popupitem_Open"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Open</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="popupitem_OpenTerminal"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Open in _Terminal</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="popupitem_CopyURI"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Copy URI</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="popupitem_EditBookmark"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Edit Bookmark</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkSeparatorMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="popupitem_Connect"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Connect</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="popupitem_Disconnect"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Disconnect</property> + <property name="use_underline">True</property> + </object> + </child> + </object> +</interface> diff --git a/src/menubuttonaction.c b/src/menubuttonaction.c index 531d2f3..86aa6aa 100644 --- a/src/menubuttonaction.c +++ b/src/menubuttonaction.c @@ -46,7 +46,7 @@ static guint signals[LAST_SIGNAL]; -G_DEFINE_TYPE(GigoloMenubuttonAction, gigolo_menu_button_action, GTK_TYPE_ACTION); +G_DEFINE_TYPE(GigoloMenubuttonAction, gigolo_menu_button_action, GTK_TYPE_MENU); static void delegate_item_activated(GtkMenuItem *item, GigoloMenubuttonAction *action) @@ -55,106 +55,24 @@ static void delegate_item_activated(GtkMenuItem *item, GigoloMenubuttonAction *a } -static void delegate_button_clicked(G_GNUC_UNUSED GtkToolButton *button, GtkAction *action) -{ - g_signal_emit(action, signals[BUTTON_CLICKED], 0); -} - - -static GtkWidget *gigolo_menu_button_action_create_menu_item(G_GNUC_UNUSED GtkAction *action) -{ - GtkWidget *menuitem; - - menuitem = g_object_new(GTK_TYPE_MENU_ITEM, NULL); - - return menuitem; -} - - -static GtkWidget *gigolo_menu_button_action_create_tool_item(GtkAction *action) -{ - GtkWidget *toolitem; - - toolitem = g_object_new(GTK_TYPE_MENU_TOOL_BUTTON, NULL); - g_signal_connect(toolitem, "clicked", G_CALLBACK(delegate_button_clicked), action); - - return toolitem; -} - - -static void set_menu(GtkWidget *item, GtkWidget *menu) -{ - if (GTK_IS_MENU_ITEM(item)) - gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu); - else - gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(item), menu); -} - - -static GtkWidget *get_menu(GtkWidget *item) -{ - if (GTK_IS_MENU_ITEM(item)) - return gtk_menu_item_get_submenu(GTK_MENU_ITEM(item)); - else - return gtk_menu_tool_button_get_menu(GTK_MENU_TOOL_BUTTON(item)); -} - - -static void update_menus(GigoloMenubuttonAction *action, GigoloSettings *settings) +static void update_menus(GigoloMenubuttonAction *menu, GigoloSettings *settings) { GSList *l; - GtkWidget *menu; guint i; GtkWidget *item; GigoloBookmark *bm; GigoloBookmarkList *bml = gigolo_settings_get_bookmarks(settings); - for (l = gtk_action_get_proxies(GTK_ACTION(action)); l; l = l->next) - { - menu = get_menu(l->data); - - if (GTK_IS_MENU_ITEM(l->data)) - gtk_widget_set_sensitive(l->data, (bml->len > 0)); - - if (bml->len == 0) - { - if (menu != NULL) - set_menu(l->data, NULL); - continue; - } - - if (menu != NULL) - { /* clear the old menu items */ - gtk_container_foreach(GTK_CONTAINER(menu), (GtkCallback) gtk_widget_destroy, NULL); - } - else - { /* create new menu */ - menu = gtk_menu_new(); - set_menu(l->data, menu); - } - - for (i = 0; i < bml->len; i++) - { - bm = g_ptr_array_index(bml, i); - item = gtk_menu_item_new_with_label(gigolo_bookmark_get_name(bm)); - g_object_set_data(G_OBJECT(item), "bookmark", bm); - gtk_container_add(GTK_CONTAINER(menu), item); - gtk_widget_show(item); - g_signal_connect(item, "activate", G_CALLBACK(delegate_item_activated), action); - } - } -} - + gtk_container_foreach(GTK_CONTAINER(menu), (GtkCallback) gtk_widget_destroy, NULL); -static void gigolo_menu_button_action_connect_proxy(GtkAction *action, GtkWidget *widget) -{ - GTK_ACTION_CLASS(gigolo_menu_button_action_parent_class)->connect_proxy(action, widget); - - /* Overwrite the icon and label of the toolbar button */ - if (GTK_IS_TOOL_BUTTON(widget)) + for (i = 0; i < bml->len; i++) { - gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON(widget), "gtk-connect"); - gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), _("Connect")); + bm = g_ptr_array_index(bml, i); + item = gtk_menu_item_new_with_label(gigolo_bookmark_get_name(bm)); + g_object_set_data(G_OBJECT(item), "bookmark", bm); + gtk_container_add(GTK_CONTAINER(menu), item); + gtk_widget_show(item); + g_signal_connect(item, "activate", G_CALLBACK(delegate_item_activated), menu); } } @@ -179,16 +97,9 @@ static void gigolo_menu_button_action_set_property(GObject *object, guint prop_i static void gigolo_menu_button_action_class_init(GigoloMenubuttonActionClass *klass) { GObjectClass *g_object_class = G_OBJECT_CLASS(klass); - GtkActionClass *action_class = GTK_ACTION_CLASS(klass); g_object_class->set_property = gigolo_menu_button_action_set_property; - action_class->connect_proxy = gigolo_menu_button_action_connect_proxy; - action_class->create_menu_item = gigolo_menu_button_action_create_menu_item; - action_class->create_tool_item = gigolo_menu_button_action_create_tool_item; - action_class->menu_item_type = GTK_TYPE_MENU_ITEM; - action_class->toolbar_item_type = GTK_TYPE_MENU_TOOL_BUTTON; - g_object_class_install_property(g_object_class, PROP_SETTINGS, g_param_spec_object ( @@ -222,12 +133,12 @@ static void gigolo_menu_button_action_init(G_GNUC_UNUSED GigoloMenubuttonAction } -GtkAction *gigolo_menu_button_action_new(const gchar *name, const gchar *label, - const gchar *tooltip, const gchar *icon_name) +GtkMenu *gigolo_menu_button_action_new(const gchar *name) { - GtkAction *action = g_object_new(GIGOLO_MENU_BUTTON_ACTION_TYPE, - "name", name, "label", label, "tooltip", tooltip, "icon-name", icon_name, NULL); + GtkMenu *menu = g_object_new(GIGOLO_MENU_BUTTON_ACTION_TYPE, + "name", name, + NULL); - return action; + return menu; } diff --git a/src/menubuttonaction.h b/src/menubuttonaction.h index 57bc10b..06f1060 100644 --- a/src/menubuttonaction.h +++ b/src/menubuttonaction.h @@ -38,19 +38,16 @@ typedef struct _GigoloMenubuttonActionClass GigoloMenubuttonActionClass; struct _GigoloMenubuttonAction { - GtkAction parent; + GtkMenu parent; }; struct _GigoloMenubuttonActionClass { - GtkActionClass parent_class; + GtkMenuClass parent_class; }; GType gigolo_menu_button_action_get_type (void); -GtkAction* gigolo_menu_button_action_new (const gchar *name, - const gchar *label, - const gchar *tooltip, - const gchar *icon_name); +GtkMenu* gigolo_menu_button_action_new (const gchar *name); G_END_DECLS diff --git a/src/window.c b/src/window.c index 4f7b6d0..a422a94 100644 --- a/src/window.c +++ b/src/window.c @@ -39,6 +39,8 @@ #include "browsenetworkpanel.h" #include "bookmarkpanel.h" +#include "gigolo_ui.h" + typedef struct _GigoloWindowPrivate GigoloWindowPrivate; @@ -50,30 +52,23 @@ struct _GigoloWindowPrivate { GigoloSettings *settings; GigoloBackendGVFS *backend_gvfs; + GtkBuilder *builder; GtkWidget *vbox; - GtkWidget *hbox_pane; GtkWidget *hbox_view; GtkWidget *panel_pane; GtkWidget *browse_panel; GtkWidget *bookmark_panel; GtkWidget *notebook_panel; + GtkWidget *notebook_store; GtkWidget *treeview; GtkWidget *iconview; GtkWidget *swin_treeview; GtkWidget *swin_iconview; GtkListStore *store; GtkWidget *tree_popup_menu; - GtkAction *action_connect; - GtkAction *action_disconnect; - GtkAction *action_bookmarks; - GtkAction *action_bookmark_create; - GtkAction *action_open; - GtkAction *action_open_terminal; - GtkAction *action_copyuri; - - GtkActionGroup *action_group; + GtkMenu *bookmarks_menu; GtkWidget *toolbar; GtkStatusIcon *systray_icon; @@ -142,7 +137,6 @@ static void gigolo_window_destroy(GigoloWindow *window) gtk_widget_destroy(priv->swin_treeview); gtk_widget_destroy(priv->swin_iconview); g_object_unref(priv->toolbar); - g_object_unref(priv->action_group); g_object_unref(priv->systray_icon); g_object_unref(priv->systray_icon_popup_menu); g_object_unref(priv->backend_gvfs); @@ -270,7 +264,7 @@ void gigolo_window_mount_from_bookmark(GigoloWindow *window, GigoloBookmark *boo } -static void action_mount_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *window) +static void mount_cb(G_GNUC_UNUSED GtkWidget *widget, GigoloWindow *window) { GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); GtkTreeIter iter; @@ -311,7 +305,7 @@ static void action_mount_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *windo } -static void action_preferences_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *window) +static void preferences_cb(GtkWidget *widget, GigoloWindow *window) { GtkWidget *dialog; GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); @@ -326,35 +320,30 @@ static void action_preferences_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow } -static void action_toggle_view_cb(GtkToggleAction *action, GigoloWindow *window) +static void toggle_view_cb(GtkWidget *item, GigoloWindow *window) { GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); - gboolean active = gtk_toggle_action_get_active(action); - const gchar *property = NULL; - - if (gtk_action_get_name(GTK_ACTION(action)) == g_intern_string("ShowPanel")) - property = "show-panel"; - else if (gtk_action_get_name(GTK_ACTION(action)) == g_intern_string("ShowToolbar")) - property = "show-toolbar"; - else if (gtk_action_get_name(GTK_ACTION(action)) == g_intern_string("ShowInSystray")) - property = "show-in-systray"; + gboolean active = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (item)); + gchar *property = (gchar *) g_object_get_data (G_OBJECT (item), "opt-view"); if (property != NULL) g_object_set(priv->settings, property, active, NULL); } -static void action_view_mode_change_cb(G_GNUC_UNUSED GtkRadioAction *action, - GtkRadioAction *current, GigoloWindow *window) +static void view_mode_change_cb(GtkWidget *widget, + GigoloWindow *window) { GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); - gint mode = gtk_radio_action_get_current_value(current); - + gint mode = VIEW_MODE_ICONVIEW; + if (!gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { + mode = VIEW_MODE_TREEVIEW; + } g_object_set(priv->settings, "view-mode", mode, NULL); } -static void action_unmount_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *window) +static void unmount_cb(GtkWidget *widget, GigoloWindow *window) { GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); GtkTreeIter iter; @@ -385,13 +374,13 @@ static void action_unmount_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *win } -static void action_quit_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *window) +static void quit_cb(GtkWidget *widget, GigoloWindow *window) { gigolo_window_destroy(window); } -static void action_bookmark_edit_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *window) +static void bookmark_edit_cb(GtkWidget *widget, GigoloWindow *window) { GtkWidget *dialog; GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); @@ -405,7 +394,7 @@ static void action_bookmark_edit_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindo } -static void action_about_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *window) +static void about_cb(GtkWidget *widget, GigoloWindow *window) { const gchar *authors[]= { "Enrico Tröger <enr...@xfce.org>", NULL }; @@ -434,13 +423,13 @@ static void action_about_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *windo } -static void action_help_cb(G_GNUC_UNUSED GtkAction *action, G_GNUC_UNUSED GigoloWindow *window) +static void help_cb(GtkWidget *widget, G_GNUC_UNUSED GigoloWindow *window) { gigolo_show_uri("http://www.uvena.de/gigolo/help.html"); } -static void action_supported_schemes_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *window) +static void supported_schemes_cb(GtkWidget *widget, GigoloWindow *window) { const gchar* const *supported; const gchar *description; @@ -473,7 +462,7 @@ static void action_supported_schemes_cb(G_GNUC_UNUSED GtkAction *action, GigoloW } -static void action_copy_uri_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *window) +static void copy_uri_cb(GtkWidget *widget, GigoloWindow *window) { GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); GtkTreeIter iter; @@ -528,7 +517,7 @@ static gpointer get_selected_mount(GigoloWindow *window) } -static void action_open_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *window) +static void open_cb(GtkWidget *widget, GigoloWindow *window) { GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); gpointer mnt; @@ -575,7 +564,7 @@ static void action_open_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *window } -static void action_open_terminal_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *window) +static void open_terminal_cb(GtkWidget *widget, GigoloWindow *window) { GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); gpointer mnt; @@ -683,13 +672,53 @@ static gboolean iter_is_mount(GtkTreeModel *model, GtkTreeIter *iter) } -static void update_create_edit_bookmark_action_label(GtkAction *action, gboolean is_bookmark) +static void set_action_sensitive (GtkBuilder *builder, const gchar *action, gboolean is_sensitive) { - gtk_action_set_sensitive(action, TRUE); + GObject *object; + gchar *id; + + id = g_strconcat ("menuitem_", action, NULL); + object = gtk_builder_get_object (builder, id); + if (object != NULL) + { + gtk_widget_set_sensitive (GTK_WIDGET (object), is_sensitive); + } + g_free (id); + + id = g_strconcat ("toolitem_", action, NULL); + object = gtk_builder_get_object (builder, id); + if (object != NULL) + { + gtk_widget_set_sensitive (GTK_WIDGET (object), is_sensitive); + } + g_free (id); + + id = g_strconcat ("systray_", action, NULL); + object = gtk_builder_get_object (builder, id); + if (object != NULL) + { + gtk_widget_set_sensitive (GTK_WIDGET (object), is_sensitive); + } + g_free (id); + + id = g_strconcat ("popupitem_", action, NULL); + object = gtk_builder_get_object (builder, id); + if (object != NULL) + { + gtk_widget_set_sensitive (GTK_WIDGET (object), is_sensitive); + } + g_free (id); +} + + +static void update_create_edit_bookmark_action_label(GtkBuilder *builder, gboolean is_bookmark) +{ + GtkWidget *widget = GTK_WIDGET (gtk_builder_get_object (builder, "popupitem_EditBookmark")); + gtk_widget_set_sensitive (widget, TRUE); if (is_bookmark) - gtk_action_set_label(action, _("Edit _Bookmark")); + gtk_menu_item_set_label(GTK_MENU_ITEM (widget), _("Edit _Bookmark")); else - gtk_action_set_label(action, _("Create _Bookmark")); + gtk_menu_item_set_label(GTK_MENU_ITEM (widget), _("Create _Bookmark")); } @@ -707,21 +736,21 @@ static void update_sensitive_buttons(GigoloWindow *window, GtkTreeModel *model, open_possible = is_mount && gigolo_settings_has_file_manager(priv->settings); open_terminal_possible = is_mount && gigolo_settings_has_terminal(priv->settings); - /* gtk_action_set_sensitive(priv->action_connect, (ref_type != GIGOLO_WINDOW_REF_TYPE_MOUNT));*/ - gtk_action_set_sensitive(priv->action_disconnect, (ref_type == GIGOLO_WINDOW_REF_TYPE_MOUNT)); - update_create_edit_bookmark_action_label(priv->action_bookmark_create, is_bookmark); - gtk_action_set_sensitive(priv->action_open, open_possible); - gtk_action_set_sensitive(priv->action_open_terminal, open_terminal_possible); - gtk_action_set_sensitive(priv->action_copyuri, (ref_type == GIGOLO_WINDOW_REF_TYPE_MOUNT)); + /* set_action_sensitive (priv->builder, "Connect", (ref_type != GIGOLO_WINDOW_REF_TYPE_MOUNT));*/ + set_action_sensitive (priv->builder, "Disconnect", (ref_type == GIGOLO_WINDOW_REF_TYPE_MOUNT)); + update_create_edit_bookmark_action_label(priv->builder, is_bookmark); + set_action_sensitive (priv->builder, "Open", open_possible); + set_action_sensitive (priv->builder, "OpenTerminal", open_terminal_possible); + set_action_sensitive (priv->builder, "CopyURI", (ref_type == GIGOLO_WINDOW_REF_TYPE_MOUNT)); } else { - /* gtk_action_set_sensitive(priv->action_connect, FALSE); */ - gtk_action_set_sensitive(priv->action_disconnect, FALSE); - gtk_action_set_sensitive(priv->action_bookmark_create, FALSE); - gtk_action_set_sensitive(priv->action_open, FALSE); - gtk_action_set_sensitive(priv->action_open_terminal, FALSE); - gtk_action_set_sensitive(priv->action_copyuri, FALSE); + /* set_action_sensitive (priv->builder, "Connect", FALSE); */ + set_action_sensitive (priv->builder, "Disconnect", FALSE); + set_action_sensitive (priv->builder, "EditBookmark", FALSE); + set_action_sensitive (priv->builder, "Open", FALSE); + set_action_sensitive (priv->builder, "OpenTerminal", FALSE); + set_action_sensitive (priv->builder, "CopyURI", FALSE); } } @@ -796,11 +825,11 @@ static void tree_row_activated_cb(G_GNUC_UNUSED GtkTreeView *treeview, GtkTreePa GIGOLO_WINDOW_COL_REF_TYPE, &ref_type, -1); if (ref_type == GIGOLO_WINDOW_REF_TYPE_MOUNT) { /* action_unmount_cb(NULL, data); */ - action_open_cb(NULL, window); + open_cb(NULL, window); } else { - action_mount_cb(NULL, window); + mount_cb(NULL, window); } } } @@ -900,7 +929,7 @@ void gigolo_window_update_bookmarks(GigoloWindow *window) g_ptr_array_sort(bookmarks, sort_bookmarks); /* writing to the 'settings' property will update the menus */ - g_object_set(priv->action_bookmarks, "settings", priv->settings, NULL); + g_object_set(priv->bookmarks_menu, "settings", priv->settings, NULL); g_object_set(priv->bookmark_panel, "settings", priv->settings, NULL); /* update the popup menu items */ @@ -950,7 +979,7 @@ gboolean gigolo_window_do_autoconnect(gpointer data) } -static void action_create_bookmark_cb(G_GNUC_UNUSED GtkAction *button, GigoloWindow *window) +static void create_bookmark_cb(GtkWidget *widget, GigoloWindow *window) { GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); GtkTreeIter iter; @@ -1023,9 +1052,9 @@ static void gigolo_window_show_side_panel(GigoloWindow *window, gboolean show) GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); if (show) - gtk_widget_show(priv->hbox_pane); + gtk_widget_show(priv->notebook_panel); else - gtk_widget_hide(priv->hbox_pane); + gtk_widget_hide(priv->notebook_panel); } @@ -1090,36 +1119,46 @@ static void gigolo_window_set_view_mode(GigoloWindow *window, gint mode) { GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); - if (mode == VIEW_MODE_ICONVIEW && priv->hbox_view != gtk_widget_get_parent(priv->swin_iconview)) + if (mode == VIEW_MODE_ICONVIEW) { gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->treeview))); - gtk_container_remove(GTK_CONTAINER(priv->hbox_view), priv->swin_treeview); - gtk_container_add(GTK_CONTAINER(priv->hbox_view), priv->swin_iconview); + gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook_store), 1); } - else if (mode == VIEW_MODE_TREEVIEW && priv->hbox_view != gtk_widget_get_parent(priv->swin_treeview)) + else if (mode == VIEW_MODE_TREEVIEW) { gtk_icon_view_unselect_all(GTK_ICON_VIEW(priv->iconview)); - gtk_container_remove(GTK_CONTAINER(priv->hbox_view), priv->swin_iconview); - gtk_container_add(GTK_CONTAINER(priv->hbox_view), priv->swin_treeview); + gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook_store), 0); } } -static void toggle_action_set_active(GigoloWindow *window, const gchar *name, gboolean set) +static void toggle_set_active(GigoloWindow *window, const gchar *name, gboolean set) { GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); - GtkAction *action = gtk_action_group_get_action(priv->action_group, name); + GtkBuilder *builder = priv->builder; + GtkWidget *widget; + gchar *widget_name; + + widget_name = g_strconcat ("menuitem_", name, NULL); + widget = GTK_WIDGET (gtk_builder_get_object (builder, widget_name)); - gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), set); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), set); } static void view_mode_action_set_active(GigoloWindow *window, gint val) { GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); - GtkAction *action = gtk_action_group_get_action(priv->action_group, "ViewSymbols"); + GtkBuilder *builder = priv->builder; + GtkWidget *widget; - gtk_radio_action_set_current_value(GTK_RADIO_ACTION(action), val); + if (val == VIEW_MODE_ICONVIEW) { + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_ViewSymbols")); + } else { + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_ViewDetailed")); + } + + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), TRUE); } @@ -1163,13 +1202,13 @@ static void gigolo_window_settings_notify_cb(GigoloSettings *settings, GParamSpe { gboolean state = g_value_get_boolean(value); gigolo_window_show_toolbar(window, state); - toggle_action_set_active(window, "ShowToolbar", state); + toggle_set_active(window, "ShowToolbar", state); } else if (name == g_intern_string("show-in-systray")) { gboolean state = g_value_get_boolean(value); gigolo_window_show_systray_icon(window, state); - toggle_action_set_active(window, "ShowInSystray", state); + toggle_set_active(window, "ShowInSystray", state); } else if (name == g_intern_string("toolbar-style")) gigolo_window_set_toolbar_style(window, g_value_get_int(value)); @@ -1185,7 +1224,7 @@ static void gigolo_window_settings_notify_cb(GigoloSettings *settings, GParamSpe { gboolean state = g_value_get_boolean(value); gigolo_window_show_side_panel(window, state); - toggle_action_set_active(window, "ShowPanel", state); + toggle_set_active(window, "ShowPanel", state); } else if (! g_object_class_find_property(G_OBJECT_GET_CLASS(settings), name)) verbose("Unexpected setting '%s'", name); @@ -1194,154 +1233,163 @@ static void gigolo_window_settings_notify_cb(GigoloSettings *settings, GParamSpe } -static void create_ui_elements(GigoloWindow *window, GtkUIManager *ui_manager) -{ - const gchar *ui_markup = - "<ui>" - "<menubar>" - "<menu action='File'>" - "<menuitem action='Quit'/>" - "</menu>" - "<menu action='Edit'>" - "<menuitem action='EditBookmarks'/>" - "<separator/>" - "<menuitem action='Preferences'/>" - "</menu>" - "<menu action='View'>" - "<menuitem action='ShowToolbar'/>" - "<menuitem action='ShowPanel'/>" - "<menuitem action='ShowInSystray'/>" - "<separator/>" - "<menuitem action='ViewDetailed'/>" - "<menuitem action='ViewSymbols'/>" - "</menu>" - "<menu action='Actions'>" - "<menuitem action='Connect'/>" - "<menuitem action='Disconnect'/>" - "<menuitem action='Bookmarks'/>" - "<separator/>" - "<menuitem action='Open'/>" - "<menuitem action='OpenTerminal'/>" - "<menuitem action='CopyURI'/>" - "</menu>" - "<menu action='Help'>" - "<menuitem action='OnlineHelp'/>" - "<menuitem action='SupportedSchemes'/>" - "<separator/>" - "<menuitem action='About'/>" - "</menu>" - "</menubar>" - - "<popup name='systraymenu'>" - "<menuitem action='Connect'/>" - "<menuitem action='Bookmarks'/>" - "<separator/>" - "<menuitem action='EditBookmarks'/>" - "<menuitem action='Preferences'/>" - "<separator/>" - "<menuitem action='Quit'/>" - "</popup>" - - "<popup name='treemenu'>" - "<menuitem action='Open'/>" - "<menuitem action='OpenTerminal'/>" - "<menuitem action='CopyURI'/>" - "<menuitem action='CreateBookmark'/>" - "<separator/>" - "<menuitem action='Connect'/>" - "<menuitem action='Disconnect'/>" - "</popup>" - - "<toolbar>" - "<toolitem action='Bookmarks'/>" - "<toolitem action='Disconnect'/>" - "<separator/>" - "<toolitem action='EditBookmarks'/>" - "<separator/>" - "<toolitem action='Open'/>" - "<toolitem action='OpenTerminal'/>" - "<separator/>" - "<toolitem action='Quit'/>" - "</toolbar>" - "</ui>"; - const GtkActionEntry entries[] = { - {"File", NULL, N_("_File"), NULL, NULL, NULL}, - {"Edit", NULL, N_("_Edit"), NULL, NULL, NULL}, - {"Actions", NULL, N_("_Actions"), NULL, NULL, NULL}, - {"View", NULL, N_("_View"), NULL, NULL, NULL}, - {"Help", NULL, N_("_Help"), NULL, NULL, NULL}, - {"Preferences", "preferences-system", - N_("_Preferences"), "<Ctrl>p", NULL, G_CALLBACK(action_preferences_cb)}, - {"CreateBookmark", "list-add", - N_("Create _Bookmark"), "<Ctrl>n", NULL, G_CALLBACK(action_create_bookmark_cb)}, - {"EditBookmarks", "gtk-edit", - N_("_Edit Bookmarks"), "<Ctrl>b", - N_("Open the bookmark manager to add, edit or delete bookmarks"), - G_CALLBACK(action_bookmark_edit_cb)}, - {"Connect", "gtk-connect", N_("_Connect"), NULL, NULL, G_CALLBACK(action_mount_cb)}, - {"Disconnect", "gtk-disconnect", N_("_Disconnect"), NULL, - N_("Disconnect the selected resource"), G_CALLBACK(action_unmount_cb)}, - {"Open", "document-open", N_("_Open"), "<Ctrl>o", - N_("Open the selected resource with a file manager"), G_CALLBACK(action_open_cb)}, - {"OpenTerminal", NULL, _("Open in _Terminal"), "<Ctrl>t", - N_("Start a terminal from here"), G_CALLBACK(action_open_terminal_cb)}, - {"CopyURI", "edit-copy", N_("Copy _URI"), "<Ctrl>c", NULL, G_CALLBACK(action_copy_uri_cb)}, - {"Quit", "application-exit", N_("_Quit"), "<Ctrl>q", N_("Quit Gigolo"), G_CALLBACK(action_quit_cb)}, - {"OnlineHelp", "go-home", _("Online Help"), NULL, NULL, G_CALLBACK(action_help_cb)}, - {"SupportedSchemes", NULL, _("Supported Protocols"), NULL, NULL, G_CALLBACK(action_supported_schemes_cb)}, - {"About", "help-about", N_("_About"), NULL, NULL, G_CALLBACK(action_about_cb)}}; - const guint entries_n = G_N_ELEMENTS(entries); - - const GtkToggleActionEntry toggle_entries[] = { - { "ShowPanel", NULL, N_("Side _Panel"), - NULL, NULL, G_CALLBACK(action_toggle_view_cb), FALSE }, - { "ShowToolbar", NULL, N_("_Toolbar"), - NULL, NULL, G_CALLBACK(action_toggle_view_cb), FALSE }, - { "ShowInSystray", NULL, N_("Status _Icon"), - NULL, NULL, G_CALLBACK(action_toggle_view_cb), FALSE } - }; - const guint toggle_entries_n = G_N_ELEMENTS(toggle_entries); - - const GtkRadioActionEntry radio_entries[] = { - { "ViewDetailed", NULL, N_("View as _Symbols"), NULL, NULL, 0 }, - { "ViewSymbols", NULL, N_("View as _Detailed List"), NULL, NULL, 1 }, - }; - const guint radio_entries_n = G_N_ELEMENTS(radio_entries); - GError *error = NULL; +static void bind_actions (GigoloWindow *window) +{ GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); - GtkAction *open_terminal; - GtkIconTheme *icon_theme; + GtkBuilder *builder = priv->builder; + GtkWidget *widget; + + /* Preferences (Ctrl + P) */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_Preferences")); + g_signal_connect (widget, "activate", G_CALLBACK(preferences_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "systray_Preferences")); + g_signal_connect (widget, "activate", G_CALLBACK(preferences_cb), window); + + /* Bookmarks */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menu_Bookmarks")); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (widget), GTK_WIDGET (priv->bookmarks_menu)); + gtk_widget_set_sensitive (widget, TRUE); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "toolitem_Bookmarks")); + gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (widget), GTK_WIDGET (priv->bookmarks_menu)); + + /* Create (Edit) Bookmark (Ctrl + N) */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "popupitem_EditBookmark")); + g_signal_connect (widget, "activate", G_CALLBACK(create_bookmark_cb), window); + + /* Edit Bookmarks (Ctrl + B) */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_EditBookmarks")); + g_signal_connect (widget, "activate", G_CALLBACK(bookmark_edit_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "toolitem_EditBookmarks")); + g_signal_connect (widget, "clicked", G_CALLBACK(bookmark_edit_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "systray_EditBookmarks")); + g_signal_connect (widget, "activate", G_CALLBACK(bookmark_edit_cb), window); + + /* Connect */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_Connect")); + g_signal_connect (widget, "activate", G_CALLBACK(mount_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "toolitem_Bookmarks")); + g_signal_connect (widget, "clicked", G_CALLBACK(mount_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "systray_Connect")); + g_signal_connect (widget, "activate", G_CALLBACK(mount_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "popupitem_Connect")); + g_signal_connect (widget, "activate", G_CALLBACK(mount_cb), window); + + /* Disconnect */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_Disconnect")); + g_signal_connect (widget, "activate", G_CALLBACK(unmount_cb), window); - priv->action_bookmarks = gigolo_menu_button_action_new( - "Bookmarks", _("_Bookmarks"), _("Choose a bookmark to connect to"), - gigolo_find_icon_name("bookmark-new", "gtk-edit")); - g_signal_connect(priv->action_bookmarks, "item-clicked", + widget = GTK_WIDGET (gtk_builder_get_object (builder, "toolitem_Disconnect")); + g_signal_connect (widget, "clicked", G_CALLBACK(unmount_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "popupitem_Disconnect")); + g_signal_connect (widget, "activate", G_CALLBACK(unmount_cb), window); + + /* Open */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_Open")); + g_signal_connect (widget, "activate", G_CALLBACK(open_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "toolitem_Open")); + g_signal_connect (widget, "clicked", G_CALLBACK(open_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "popupitem_Open")); + g_signal_connect (widget, "activate", G_CALLBACK(open_cb), window); + + /* Open Terminal (Ctrl + T) */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_OpenTerminal")); + g_signal_connect (widget, "activate", G_CALLBACK(open_terminal_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "toolitem_OpenTerminal")); + g_signal_connect (widget, "clicked", G_CALLBACK(open_terminal_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "popupitem_OpenTerminal")); + g_signal_connect (widget, "activate", G_CALLBACK(open_terminal_cb), window); + + /* Copy URI (Ctrl + C) */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_CopyURI")); + g_signal_connect (widget, "activate", G_CALLBACK(copy_uri_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "popupitem_CopyURI")); + g_signal_connect (widget, "activate", G_CALLBACK(copy_uri_cb), window); + + /* Quit (Ctrl + Q) */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_Quit")); + g_signal_connect (widget, "activate", G_CALLBACK(quit_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "toolitem_Quit")); + g_signal_connect (widget, "clicked", G_CALLBACK(quit_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "systray_Quit")); + g_signal_connect (widget, "activate", G_CALLBACK(quit_cb), window); + + /* Online Help (Ctrl + H) */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_OnlineHelp")); + g_signal_connect (widget, "activate", G_CALLBACK(help_cb), window); + + /* Supported Schemes */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_SupportedSchemes")); + g_signal_connect (widget, "activate", G_CALLBACK(supported_schemes_cb), window); + + /* About */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_About")); + g_signal_connect (widget, "activate", G_CALLBACK(about_cb), window); + + /* Views */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_ShowPanel")); + g_object_set_data_full (G_OBJECT (widget), "opt-view", g_strdup("show-panel"), (GDestroyNotify) g_free); + g_signal_connect (widget, "toggled", G_CALLBACK(toggle_view_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_ShowToolbar")); + g_object_set_data_full (G_OBJECT (widget), "opt-view", g_strdup("show-toolbar"), (GDestroyNotify) g_free); + g_signal_connect (widget, "toggled", G_CALLBACK(toggle_view_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_ShowInSystray")); + g_object_set_data_full (G_OBJECT (widget), "opt-view", g_strdup("show-in-systray"), (GDestroyNotify) g_free); + g_signal_connect (widget, "toggled", G_CALLBACK(toggle_view_cb), window); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "menuitem_ViewSymbols")); + g_signal_connect (widget, "toggled", G_CALLBACK(view_mode_change_cb), window); +} + + +static void create_ui_elements(GigoloWindow *window) +{ + GError *error = NULL; + GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); + priv->builder = gtk_builder_new(); + gtk_builder_add_from_string(priv->builder, gigolo_ui, + gigolo_ui_length, &error); + + priv->vbox = GTK_WIDGET (gtk_builder_get_object (priv->builder, "vbox")); + priv->hbox_view = GTK_WIDGET (gtk_builder_get_object (priv->builder, "hbox_view")); + priv->notebook_panel = GTK_WIDGET (gtk_builder_get_object (priv->builder, "notebook_panel")); + priv->panel_pane = GTK_WIDGET (gtk_builder_get_object (priv->builder, "panel_pane")); + priv->swin_treeview = GTK_WIDGET (gtk_builder_get_object (priv->builder, "swin_treeview")); + priv->swin_iconview = GTK_WIDGET (gtk_builder_get_object (priv->builder, "swin_iconview")); + priv->tree_popup_menu = GTK_WIDGET (gtk_builder_get_object (priv->builder, "tree_popup_menu")); + priv->toolbar = GTK_WIDGET (gtk_builder_get_object (priv->builder, "toolbar")); + priv->systray_icon_popup_menu = GTK_WIDGET (gtk_builder_get_object (priv->builder, "systray_icon_popup_menu")); + priv->notebook_store = GTK_WIDGET (gtk_builder_get_object (priv->builder, "notebook_store")); + + gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook_store), 0); + + g_object_ref (priv->vbox); + gtk_container_remove (GTK_CONTAINER (gtk_builder_get_object (priv->builder, "gigolo_window")), priv->vbox); + gtk_container_add (GTK_CONTAINER (window), priv->vbox); + g_object_unref (priv->vbox); + + priv->bookmarks_menu = gigolo_menu_button_action_new("Bookmarks"); + g_signal_connect(priv->bookmarks_menu, "item-clicked", G_CALLBACK(action_bookmark_activate_cb), window); - g_signal_connect(priv->action_bookmarks, "button-clicked", G_CALLBACK(action_mount_cb), window); - - priv->action_group = gtk_action_group_new("UI"); - gtk_action_group_set_translation_domain(priv->action_group, GETTEXT_PACKAGE); - gtk_action_group_add_actions(priv->action_group, entries, entries_n, window); - gtk_action_group_add_toggle_actions(priv->action_group, toggle_entries, toggle_entries_n, window); - gtk_action_group_add_radio_actions(priv->action_group, radio_entries, radio_entries_n, -1, - G_CALLBACK(action_view_mode_change_cb), window); - gtk_action_group_add_action(priv->action_group, priv->action_bookmarks); - gtk_ui_manager_insert_action_group(ui_manager, priv->action_group, 0); - gtk_window_add_accel_group(GTK_WINDOW(window), gtk_ui_manager_get_accel_group(ui_manager)); - - /* set terminal icon for the "OpenTerminal" action */ - open_terminal = gtk_action_group_get_action(priv->action_group, "OpenTerminal"); - icon_theme = gtk_icon_theme_get_for_screen(gtk_widget_get_screen(GTK_WIDGET(window))); - if (gtk_icon_theme_has_icon(icon_theme, "utilities-terminal")) - gtk_action_set_icon_name(open_terminal, "utilities-terminal"); - else - gtk_action_set_icon_name(open_terminal, "document-open"); + g_signal_connect(priv->bookmarks_menu, "button-clicked", G_CALLBACK(mount_cb), window); - if (! gtk_ui_manager_add_ui_from_string(ui_manager, ui_markup, -1, &error)) - { - verbose("User interface couldn't be created: %s", error->message); - g_error_free(error); - } + bind_actions (window); } @@ -1357,9 +1405,9 @@ static void tree_mounted_col_toggled_cb(GtkCellRendererToggle *cell, gchar *pth, gtk_tree_selection_select_path(selection, path); if (gtk_cell_renderer_toggle_get_active(cell)) - action_unmount_cb(NULL, window); + unmount_cb(NULL, window); else - action_mount_cb(NULL, window); + mount_cb(NULL, window); gtk_tree_path_free(path); } @@ -1471,18 +1519,11 @@ static void create_icon_view(GigoloWindow *window) } -static GtkWidget *gigolo_window_create_panel(GigoloWindow *window) +static void gigolo_window_create_panel(GigoloWindow *window) { - GtkWidget *panel_pane, *label; + GtkWidget *label; GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); - panel_pane = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL); - gtk_paned_set_position(GTK_PANED(panel_pane), 200); - - priv->notebook_panel = gtk_notebook_new(); - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(priv->notebook_panel), GTK_POS_LEFT); - gtk_widget_show(priv->notebook_panel); - label = gtk_label_new(_("Bookmarks")); gtk_label_set_angle(GTK_LABEL(label), 90.0); gtk_widget_show(label); @@ -1498,15 +1539,6 @@ static GtkWidget *gigolo_window_create_panel(GigoloWindow *window) priv->browse_panel = gigolo_browse_network_panel_new(window); gtk_widget_show(priv->browse_panel); gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook_panel), priv->browse_panel, label); - - priv->hbox_view = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - priv->hbox_pane = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - - gtk_paned_add1(GTK_PANED(panel_pane), priv->hbox_pane); - gtk_paned_add2(GTK_PANED(panel_pane), priv->hbox_view); - gtk_box_pack_start(GTK_BOX(priv->hbox_pane), priv->notebook_panel, TRUE, TRUE, 0); - - return panel_pane; } @@ -1533,8 +1565,6 @@ static void update_side_panel(GigoloWindow *window) static void gigolo_window_init(GigoloWindow *window) { - GtkWidget *menubar, *panel_pane; - GtkUIManager *ui_manager; GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window); priv->autoconnect_timeout_id = (guint) -1; @@ -1550,19 +1580,9 @@ static void gigolo_window_init(GigoloWindow *window) create_tree_view(window); create_icon_view(window); + create_ui_elements(window); - priv->swin_treeview = gtk_scrolled_window_new(NULL, NULL); - gtk_widget_set_hexpand(GTK_WIDGET(priv->swin_treeview), TRUE); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(priv->swin_treeview), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(priv->swin_treeview), GTK_SHADOW_IN); gtk_container_add(GTK_CONTAINER(priv->swin_treeview), priv->treeview); - - priv->swin_iconview = gtk_scrolled_window_new(NULL, NULL); - gtk_widget_set_hexpand(GTK_WIDGET(priv->swin_iconview), TRUE); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(priv->swin_iconview), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(priv->swin_iconview), GTK_SHADOW_IN); gtk_container_add(GTK_CONTAINER(priv->swin_iconview), priv->iconview); /* Init the GVfs backend */ @@ -1571,49 +1591,13 @@ static void gigolo_window_init(GigoloWindow *window) g_signal_connect(priv->backend_gvfs, "operation-failed", G_CALLBACK(mount_operation_failed_cb), window); - /* UI Manager */ - ui_manager = gtk_ui_manager_new(); - create_ui_elements(window, ui_manager); - menubar = gtk_ui_manager_get_widget(ui_manager, "/menubar"); - priv->toolbar = gtk_ui_manager_get_widget(ui_manager, "/toolbar"); - priv->systray_icon_popup_menu = gtk_ui_manager_get_widget(ui_manager, "/systraymenu"); - priv->tree_popup_menu = gtk_ui_manager_get_widget(ui_manager, "/treemenu"); - /* increase refcount to keep the widgets after the ui manager is destroyed */ - g_object_ref(priv->systray_icon_popup_menu); - g_object_ref(priv->tree_popup_menu); - g_object_ref(priv->toolbar); - g_object_ref(priv->swin_treeview); - g_object_ref(priv->swin_iconview); - - /* Buttons */ - priv->action_connect = gtk_action_group_get_action(priv->action_group, "Connect"); - priv->action_disconnect = gtk_action_group_get_action(priv->action_group, "Disconnect"); - priv->action_bookmark_create = gtk_action_group_get_action(priv->action_group, "CreateBookmark"); - priv->action_open = gtk_action_group_get_action(priv->action_group, "Open"); - priv->action_open_terminal = gtk_action_group_get_action(priv->action_group, "OpenTerminal"); - priv->action_copyuri = gtk_action_group_get_action(priv->action_group, "CopyURI"); - - g_object_set(priv->action_bookmarks, "is-important", TRUE, NULL); - g_object_set(gtk_action_group_get_action(priv->action_group, "EditBookmarks"), - "is-important", TRUE, NULL); - /* Panel */ - priv->panel_pane = panel_pane = gigolo_window_create_panel(window); - - /* Pack the widgets altogether */ - priv->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - - gtk_box_pack_start(GTK_BOX(priv->vbox), menubar, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(priv->vbox), priv->toolbar, FALSE, FALSE, 0); - - gtk_box_pack_start(GTK_BOX(priv->hbox_view), priv->swin_iconview, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(priv->vbox), panel_pane, TRUE, TRUE, 0); - - gtk_container_add(GTK_CONTAINER(window), priv->vbox); + gigolo_window_create_panel(window); /* Show everything */ gtk_widget_show_all(priv->vbox); gtk_widget_show_all(priv->swin_treeview); + gtk_widget_show_all(priv->swin_iconview); /* Status icon */ G_GNUC_BEGIN_IGNORE_DEPRECATIONS /* Gtk 3.14 */ @@ -1623,8 +1607,6 @@ static void gigolo_window_init(GigoloWindow *window) g_signal_connect(priv->systray_icon, "activate", G_CALLBACK(systray_icon_activate_cb), window); g_signal_connect(priv->systray_icon, "popup-menu", G_CALLBACK(systray_icon_popup_menu_cb), window); g_signal_connect(priv->systray_icon, "notify", G_CALLBACK(gigolo_window_systray_notify_cb), window); - - g_object_unref(ui_manager); } @@ -1641,7 +1623,7 @@ GtkWidget *gigolo_window_new(GigoloSettings *settings) priv->settings = settings; g_signal_connect(settings, "notify", G_CALLBACK(gigolo_window_settings_notify_cb), window); - g_object_set(priv->action_bookmarks, "settings", settings, NULL); + g_object_set(priv->bookmarks_menu, "settings", settings, NULL); g_object_set(priv->backend_gvfs, "parent", window, "store", priv->store, NULL); @@ -1652,16 +1634,16 @@ GtkWidget *gigolo_window_new(GigoloSettings *settings) /* Show Panel */ state = gigolo_settings_get_boolean(settings, "show-panel"); gigolo_window_show_side_panel(GIGOLO_WINDOW(window), state); - toggle_action_set_active(GIGOLO_WINDOW(window), "ShowPanel", state); + toggle_set_active(GIGOLO_WINDOW(window), "ShowPanel", state); update_side_panel(GIGOLO_WINDOW(window)); /* Show Toolbar */ state = gigolo_settings_get_boolean(settings, "show-toolbar"); gigolo_window_show_toolbar(GIGOLO_WINDOW(window), state); - toggle_action_set_active(GIGOLO_WINDOW(window), "ShowToolbar", state); + toggle_set_active(GIGOLO_WINDOW(window), "ShowToolbar", state); /* Show Status Icon */ state = gigolo_settings_get_boolean(settings, "show-in-systray"); gigolo_window_show_systray_icon(GIGOLO_WINDOW(window), state); - toggle_action_set_active(GIGOLO_WINDOW(window), "ShowInSystray", state); + toggle_set_active(GIGOLO_WINDOW(window), "ShowInSystray", state); /* View Mode */ value = gigolo_settings_get_integer(settings, "view-mode"); gigolo_window_set_view_mode(GIGOLO_WINDOW(window), value); -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits