[vinagre] Added an toolbar in bookmarks panel.
- From: Jonh Wendell <jwendell src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [vinagre] Added an toolbar in bookmarks panel.
- Date: Mon, 26 Oct 2009 12:07:36 +0000 (UTC)
commit 8a91311b5cfe8e3982c6aee5a6ffb54783c64238
Author: Jonh Wendell <jwendell gnome org>
Date: Mon Oct 26 09:05:15 2009 -0300
Added an toolbar in bookmarks panel.
Removed edit/delete entries from the bookmarks menu and moved them
to a toolbar in the side panel.
As a side effect, this fixes #581855.
data/Makefile.am | 2 +-
data/vinagre-fav-ui.xml | 54 +++++++
data/vinagre-ui.xml | 26 ----
vinagre/vinagre-commands.c | 54 -------
vinagre/vinagre-commands.h | 12 +--
vinagre/vinagre-fav.c | 303 ++++++++++++++++++++++++++++++--------
vinagre/vinagre-fav.h | 8 +-
vinagre/vinagre-ui.h | 12 --
vinagre/vinagre-window-private.h | 3 -
vinagre/vinagre-window.c | 78 +---------
10 files changed, 307 insertions(+), 245 deletions(-)
---
diff --git a/data/Makefile.am b/data/Makefile.am
index 8f7b4cd..d2e3294 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -9,7 +9,7 @@ vinagre- VINAGRE_API_VERSION@.pc: vinagre.pc
cp vinagre.pc vinagre- VINAGRE_API_VERSION@.pc
uidir = $(datadir)/vinagre
-ui_DATA = vinagre-ui.xml GNOME_VinagreApplet.xml vinagre.ui
+ui_DATA = vinagre-ui.xml GNOME_VinagreApplet.xml vinagre.ui vinagre-fav-ui.xml
@INTLTOOL_DESKTOP_RULE@
desktopdir = $(datadir)/applications
diff --git a/data/vinagre-fav-ui.xml b/data/vinagre-fav-ui.xml
new file mode 100644
index 0000000..5b8bdd8
--- /dev/null
+++ b/data/vinagre-fav-ui.xml
@@ -0,0 +1,54 @@
+<!--
+ * vinagre-fav-ui.xml
+ * This file is part of vinagre
+ *
+ * Copyright (C) 2009 - Jonh Wendell <wendell bani com br>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<ui>
+
+ <toolbar name="FavToolBar">
+ <placeholder name="Tool_Opt1"/>
+ <toolitem action="BookmarksNewFolder"/>
+ <separator/>
+ <placeholder name="Tool_Opt2"/>
+ <toolitem action="BookmarksEdit"/>
+ <toolitem action="BookmarksDel"/>
+ <separator/>
+ <placeholder name="Tool_Opt3"/>
+ </toolbar>
+
+ <popup name="FavPopupConn" action="FavPopupActionConn">
+ <menuitem action="BookmarksOpen"/>
+ <separator/>
+ <menuitem action="BookmarksEdit"/>
+ <menuitem action="BookmarksDel"/>
+ <separator/>
+ <menuitem action="BookmarksNewFolder"/>
+ </popup>
+
+ <popup name="FavPopupFolder" action="FavPopupActionFolder">
+ <menuitem action="BookmarksEdit"/>
+ <menuitem action="BookmarksDel"/>
+ <separator/>
+ <menuitem action="BookmarksNewFolder"/>
+ </popup>
+
+ <popup name="FavPopupEmpty" action="FavPopupActionEmpty">
+ <menuitem action="BookmarksNewFolder"/>
+ </popup>
+
+</ui>
diff --git a/data/vinagre-ui.xml b/data/vinagre-ui.xml
index 1f3fddc..81d6095 100644
--- a/data/vinagre-ui.xml
+++ b/data/vinagre-ui.xml
@@ -38,9 +38,7 @@
<menu name="EditMenu" action="Edit">
<menuitem name="EditPreferencesMenu" action="EditPreferences"/>
- <!--FIXME: Study this dialog for next release
<menuitem name="EditPluginsMenu" action="EditPlugins"/>
- -->
</menu>
<menu name="ViewMenu" action="View">
@@ -54,10 +52,6 @@
<menu name="BookmarksMenu" action="Bookmarks">
<menuitem name="BookmarksAddMenu" action="BookmarksAdd"/>
<separator/>
- <menuitem name="BookmarksNewFolderMenu" action="BookmarksNewFolder"/>
- <menuitem name="BookmarksEditMenu" action="BookmarksEdit"/>
- <menuitem name="BookmarksDelMenu" action="BookmarksDel"/>
- <separator/>
<placeholder name="BookmarksList"/>
<separator/>
<placeholder name="AvahiList"/>
@@ -78,24 +72,4 @@
<separator/>
</toolbar>
- <popup name="FavPopupConn" action="FavPopupActionConn">
- <menuitem action="BookmarksOpen"/>
- <separator/>
- <menuitem action="BookmarksEdit"/>
- <menuitem action="BookmarksDel"/>
- <separator/>
- <menuitem action="BookmarksNewFolder"/>
- </popup>
-
- <popup name="FavPopupFolder" action="FavPopupActionFolder">
- <menuitem action="BookmarksEdit"/>
- <menuitem action="BookmarksDel"/>
- <separator/>
- <menuitem action="BookmarksNewFolder"/>
- </popup>
-
- <popup name="FavPopupEmpty" action="FavPopupActionEmpty">
- <menuitem action="BookmarksNewFolder"/>
- </popup>
-
</ui>
diff --git a/vinagre/vinagre-commands.c b/vinagre/vinagre-commands.c
index 0d45927..077fb20 100644
--- a/vinagre/vinagre-commands.c
+++ b/vinagre/vinagre-commands.c
@@ -227,8 +227,6 @@ vinagre_cmd_edit_preferences (GtkAction *action,
vinagre_prefs_dialog_show (window);
}
-/*
-FIXME: Study this dialog for next release
void
vinagre_cmd_edit_plugins (GtkAction *action,
VinagreWindow *window)
@@ -237,7 +235,6 @@ vinagre_cmd_edit_plugins (GtkAction *action,
vinagre_plugin_dialog_show (GTK_WINDOW (window));
}
-*/
/* View Menu */
void
@@ -340,57 +337,6 @@ vinagre_cmd_bookmarks_add (GtkAction *action,
}
}
-void
-vinagre_cmd_bookmarks_new_folder (GtkAction *action,
- VinagreWindow *window)
-{
- g_return_if_fail (VINAGRE_IS_WINDOW (window));
-
- vinagre_bookmarks_new_folder (vinagre_bookmarks_get_default (),
- GTK_WINDOW (window));
-}
-
-void
-vinagre_cmd_bookmarks_edit (GtkAction *action,
- VinagreWindow *window)
-{
- g_return_if_fail (VINAGRE_IS_WINDOW (window));
- g_return_if_fail (VINAGRE_IS_BOOKMARKS_ENTRY (window->priv->fav_entry_selected));
-
- vinagre_bookmarks_edit (vinagre_bookmarks_get_default (),
- window->priv->fav_entry_selected,
- GTK_WINDOW (window));
-}
-
-void
-vinagre_cmd_bookmarks_del (GtkAction *action,
- VinagreWindow *window)
-{
- g_return_if_fail (VINAGRE_IS_WINDOW (window));
- g_return_if_fail (VINAGRE_IS_BOOKMARKS_ENTRY (window->priv->fav_entry_selected));
-
- vinagre_bookmarks_del (vinagre_bookmarks_get_default (),
- window->priv->fav_entry_selected,
- GTK_WINDOW (window));
-}
-
-void
-vinagre_cmd_bookmarks_open (GtkAction *action,
- VinagreWindow *window)
-{
- VinagreConnection *conn;
-
- g_return_if_fail (VINAGRE_IS_WINDOW (window));
-
- conn = g_object_get_data (G_OBJECT (action), "conn");
- if (!conn)
- conn = vinagre_bookmarks_entry_get_conn (window->priv->fav_entry_selected);
-
- g_return_if_fail (VINAGRE_IS_CONNECTION (conn));
-
- vinagre_cmd_open_bookmark (window, conn);
-}
-
/* Help Menu */
void
diff --git a/vinagre/vinagre-commands.h b/vinagre/vinagre-commands.h
index ec5cacd..adc3b75 100644
--- a/vinagre/vinagre-commands.h
+++ b/vinagre/vinagre-commands.h
@@ -46,10 +46,10 @@ void vinagre_cmd_machine_quit (GtkAction *action,
void vinagre_cmd_edit_preferences (GtkAction *action,
VinagreWindow *window);
-/*FIXME: Study this dialog for next release
+
void vinagre_cmd_edit_plugins (GtkAction *action,
VinagreWindow *window);
-*/
+
void vinagre_cmd_view_show_toolbar (GtkAction *action,
VinagreWindow *window);
void vinagre_cmd_view_show_statusbar (GtkAction *action,
@@ -63,14 +63,6 @@ void vinagre_cmd_open_bookmark (VinagreWindow *window,
VinagreConnection *conn);
void vinagre_cmd_bookmarks_add (GtkAction *action,
VinagreWindow *window);
-void vinagre_cmd_bookmarks_open (GtkAction *action,
- VinagreWindow *window);
-void vinagre_cmd_bookmarks_new_folder(GtkAction *action,
- VinagreWindow *window);
-void vinagre_cmd_bookmarks_edit (GtkAction *action,
- VinagreWindow *window);
-void vinagre_cmd_bookmarks_del (GtkAction *action,
- VinagreWindow *window);
void vinagre_cmd_help_contents (GtkAction *action,
VinagreWindow *window);
diff --git a/vinagre/vinagre-fav.c b/vinagre/vinagre-fav.c
index b4f633e..396063b 100644
--- a/vinagre/vinagre-fav.c
+++ b/vinagre/vinagre-fav.c
@@ -35,17 +35,21 @@
#ifdef VINAGRE_ENABLE_AVAHI
#include "vinagre-mdns.h"
#endif
-
+
+#define VINAGRE_FAV_UI_XML_FILE "vinagre-fav-ui.xml"
#define VINAGRE_FAV_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), VINAGRE_TYPE_FAV, VinagreFavPrivate))
struct _VinagreFavPrivate
{
- VinagreWindow *window;
- GtkWidget *tree;
- GtkTreeModel *model;
+ VinagreWindow *window;
+ GtkWidget *tree;
+ GtkTreeModel *model;
+ GtkActionGroup *action_group, *always_sensitive_action_group;
+ VinagreBookmarksEntry *selected;
+ GtkBox *box;
};
-G_DEFINE_TYPE(VinagreFav, vinagre_fav, GTK_TYPE_VBOX)
+G_DEFINE_TYPE(VinagreFav, vinagre_fav, GTK_TYPE_FRAME)
/* Signals */
enum
@@ -116,48 +120,6 @@ vinagre_fav_get_property (GObject *object,
}
}
-static void
-vinagre_fav_class_init (VinagreFavClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- object_class->get_property = vinagre_fav_get_property;
- object_class->set_property = vinagre_fav_set_property;
-
- g_object_class_install_property (object_class,
- PROP_WINDOW,
- g_param_spec_object ("window",
- "Window",
- "The VinagreWindow this panel is associated with",
- VINAGRE_TYPE_WINDOW,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY));
-
- signals[FAV_ACTIVATED] =
- g_signal_new ("fav-activated",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (VinagreFavClass, fav_activated),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE,
- 1,
- G_TYPE_OBJECT);
-
- signals[FAV_SELECTED] =
- g_signal_new ("fav-selected",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (VinagreFavClass, fav_selected),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE,
- 1,
- G_TYPE_OBJECT);
-
- g_type_class_add_private (object_class, sizeof (VinagreFavPrivate));
-}
-
static void
vinagre_fav_row_activated_cb (GtkTreeView *treeview,
GtkTreePath *path,
@@ -185,6 +147,9 @@ vinagre_fav_row_activated_cb (GtkTreeView *treeview,
return;
}
+ vinagre_cmd_open_bookmark (fav->priv->window,
+ vinagre_bookmarks_entry_get_conn (entry));
+
/* Emits the signal saying that user has activated a bookmark */
g_signal_emit (G_OBJECT (fav),
signals[FAV_ACTIVATED],
@@ -211,6 +176,11 @@ vinagre_fav_selection_changed_cb (GtkTreeSelection *selection,
entry = NULL;
}
+ fav->priv->selected = entry;
+
+ gtk_action_group_set_sensitive (fav->priv->action_group,
+ entry != NULL);
+
/* Emits the signal saying that user has selected a bookmark */
g_signal_emit (G_OBJECT (fav),
signals[FAV_SELECTED],
@@ -541,6 +511,110 @@ vinagre_fav_title_cell_data_func (GtkTreeViewColumn *column,
}
static void
+vinagre_fav_bookmarks_new_folder (GtkAction *action,
+ VinagreFav *fav)
+{
+ vinagre_bookmarks_new_folder (vinagre_bookmarks_get_default (),
+ GTK_WINDOW (fav->priv->window));
+}
+
+static void
+vinagre_fav_bookmarks_edit (GtkAction *action,
+ VinagreFav *fav)
+{
+ vinagre_bookmarks_edit (vinagre_bookmarks_get_default (),
+ fav->priv->selected,
+ GTK_WINDOW (fav->priv->window));
+}
+
+static void
+vinagre_fav_bookmarks_del (GtkAction *action,
+ VinagreFav *fav)
+{
+ vinagre_bookmarks_del (vinagre_bookmarks_get_default (),
+ fav->priv->selected,
+ GTK_WINDOW (fav->priv->window));
+}
+
+void
+vinagre_fav_bookmarks_open (GtkAction *action,
+ VinagreFav *fav)
+{
+ VinagreConnection *conn;
+
+ conn = g_object_get_data (G_OBJECT (action), "conn");
+ if (!conn)
+ conn = vinagre_bookmarks_entry_get_conn (fav->priv->selected);
+
+ g_return_if_fail (VINAGRE_IS_CONNECTION (conn));
+
+ vinagre_cmd_open_bookmark (fav->priv->window, conn);
+}
+
+static const GtkActionEntry always_sensitive_actions[] =
+{
+ {"BookmarksNewFolder", "folder-new", N_("_New Folder"), NULL,
+ N_("Create a new folder"), G_CALLBACK (vinagre_fav_bookmarks_new_folder) },
+};
+
+static const GtkActionEntry actions[] =
+{
+ { "BookmarksOpen", GTK_STOCK_CONNECT, N_("_Open bookmark"), NULL,
+ N_("Connect to this machine"), G_CALLBACK (vinagre_fav_bookmarks_open) },
+ {"BookmarksEdit", GTK_STOCK_EDIT, N_("_Edit bookmark"), NULL,
+ N_("Edit the details of selected bookmark"), G_CALLBACK (vinagre_fav_bookmarks_edit) },
+ {"BookmarksDel", GTK_STOCK_DELETE, N_("_Remove from bookmarks"), NULL,
+ N_("Remove current selected connection from bookmarks"), G_CALLBACK (vinagre_fav_bookmarks_del) },
+};
+
+static void
+vinagre_fav_create_toolbar (VinagreFav *fav)
+{
+ GtkWidget *toolbar;
+ GtkActionGroup *action_group;
+ GtkAction *action;
+ GtkUIManager *manager;
+ GError *error = NULL;
+
+ manager = fav->priv->window->priv->manager;
+ gtk_ui_manager_add_ui_from_file (manager,
+ vinagre_fav_get_ui_xml_filename (),
+ &error);
+ if (error != NULL)
+ {
+ g_critical (_("Could not merge UI XML file: %s"), error->message);
+ g_error_free (error);
+ return;
+ }
+
+ action_group = gtk_action_group_new ("BookmarksActionGroup");
+ gtk_action_group_set_translation_domain (action_group, NULL);
+ gtk_action_group_add_actions (action_group,
+ actions,
+ G_N_ELEMENTS (actions),
+ fav);
+ gtk_ui_manager_insert_action_group (manager, action_group, 0);
+ gtk_action_group_set_sensitive (action_group, FALSE);
+ fav->priv->action_group = action_group;
+
+ action_group = gtk_action_group_new ("BookmarksAlwaysSensitiveActionGroup");
+ gtk_action_group_set_translation_domain (action_group, NULL);
+ gtk_action_group_add_actions (action_group,
+ always_sensitive_actions,
+ G_N_ELEMENTS (always_sensitive_actions),
+ fav);
+ gtk_ui_manager_insert_action_group (manager, action_group, 0);
+ fav->priv->always_sensitive_action_group = action_group;
+
+ toolbar = gtk_ui_manager_get_widget (manager, "/FavToolBar");
+ gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS);
+ gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_MENU);
+
+ gtk_widget_show (toolbar);
+ gtk_box_pack_start (fav->priv->box, toolbar, FALSE, FALSE, 0);
+}
+
+static void
vinagre_fav_create_tree (VinagreFav *fav)
{
GtkCellRenderer *cell;
@@ -557,7 +631,7 @@ vinagre_fav_create_tree (VinagreFav *fav)
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll),
GTK_SHADOW_ETCHED_OUT);
- gtk_box_pack_start (GTK_BOX(fav), scroll, TRUE, TRUE, 0);
+ gtk_box_pack_start (fav->priv->box, scroll, TRUE, TRUE, 0);
/* Create the model */
fav->priv->model = GTK_TREE_MODEL (gtk_tree_store_new (NUM_COLS,
@@ -722,11 +796,75 @@ drag_drop_handl (GtkWidget *widget,
static void
vinagre_fav_init (VinagreFav *fav)
{
- GtkWidget *label_box, *label, *close_button;
-
fav->priv = VINAGRE_FAV_GET_PRIVATE (fav);
+ fav->priv->selected = NULL;
- /* setup the tree */
+ gtk_frame_set_shadow_type (GTK_FRAME (fav), GTK_SHADOW_ETCHED_IN);
+ fav->priv->box = GTK_BOX (gtk_vbox_new (FALSE, 0));
+ gtk_container_add (GTK_CONTAINER (fav), GTK_WIDGET (fav->priv->box));
+}
+
+GtkWidget *
+vinagre_fav_new (VinagreWindow *window)
+{
+ g_return_val_if_fail (VINAGRE_IS_WINDOW (window), NULL);
+
+ return GTK_WIDGET (g_object_new (VINAGRE_TYPE_FAV,
+ "window", window,
+ NULL));
+}
+
+static void
+vinagre_fav_hide (GtkButton *button, VinagreFav *fav)
+{
+ GtkAction *action;
+
+ action = gtk_action_group_get_action (fav->priv->window->priv->always_sensitive_action_group,
+ "ViewSidePanel");
+ gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), FALSE);
+}
+
+static void
+vinagre_fav_create_title (VinagreFav *fav)
+{
+ GtkWidget *box, *label, *close_button, *image, *frame;
+
+ box = gtk_hbox_new (FALSE, 0);
+
+ /* setup image */
+ image = gtk_image_new_from_icon_name ("user-bookmarks", GTK_ICON_SIZE_SMALL_TOOLBAR);
+ gtk_misc_set_alignment (GTK_MISC (image), 0.0, 0.5);
+ gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 0);
+
+ /* setup label */
+ label = gtk_label_new (_("Bookmarks"));
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+ gtk_misc_set_padding (GTK_MISC (label), 6, 0);
+ gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
+
+ /* setup small close button */
+ close_button = vinagre_utils_create_small_close_button ();
+ gtk_box_pack_start (GTK_BOX (box), close_button, FALSE, FALSE, 0);
+ gtk_widget_set_tooltip_text (close_button, _("Hide panel"));
+ g_signal_connect (close_button,
+ "clicked",
+ G_CALLBACK (vinagre_fav_hide),
+ fav);
+
+ gtk_box_pack_start (fav->priv->box, box, FALSE, FALSE, 0);
+ gtk_widget_show_all (box);
+}
+
+static void
+vinagre_fav_constructed (GObject *object)
+{
+ VinagreFav *fav = VINAGRE_FAV (object);
+
+ if (G_OBJECT_CLASS (vinagre_fav_parent_class)->constructed)
+ G_OBJECT_CLASS (vinagre_fav_parent_class)->constructed (object);
+
+ vinagre_fav_create_title (fav);
+ vinagre_fav_create_toolbar (fav);
vinagre_fav_create_tree (fav);
gtk_drag_dest_set (fav->priv->tree,
@@ -756,14 +894,47 @@ vinagre_fav_init (VinagreFav *fav)
#endif
}
-GtkWidget *
-vinagre_fav_new (VinagreWindow *window)
+static void
+vinagre_fav_class_init (VinagreFavClass *klass)
{
- g_return_val_if_fail (VINAGRE_IS_WINDOW (window), NULL);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- return GTK_WIDGET (g_object_new (VINAGRE_TYPE_FAV,
- "window", window,
- NULL));
+ object_class->get_property = vinagre_fav_get_property;
+ object_class->set_property = vinagre_fav_set_property;
+ object_class->constructed = vinagre_fav_constructed;
+
+ g_object_class_install_property (object_class,
+ PROP_WINDOW,
+ g_param_spec_object ("window",
+ "Window",
+ "The VinagreWindow this panel is associated with",
+ VINAGRE_TYPE_WINDOW,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY));
+
+ signals[FAV_ACTIVATED] =
+ g_signal_new ("fav-activated",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (VinagreFavClass, fav_activated),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_OBJECT);
+
+ signals[FAV_SELECTED] =
+ g_signal_new ("fav-selected",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (VinagreFavClass, fav_selected),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_OBJECT);
+
+ g_type_class_add_private (object_class, sizeof (VinagreFavPrivate));
}
static void
@@ -850,14 +1021,6 @@ vinagre_fav_update_list (VinagreFav *fav)
/* bookmarks */
list = vinagre_bookmarks_get_all (vinagre_bookmarks_get_default ());
- gtk_tree_store_append (store, &parent_iter, NULL);
- gtk_tree_store_set (store, &parent_iter,
- NAME_COL, _("Bookmarks"),
- IS_GROUP_COL, TRUE,
- IS_FOLDER_COL, FALSE,
- IS_AVAHI_COL, FALSE,
- -1);
-
vinagre_fav_fill_bookmarks (store, list, NULL, FALSE);
#ifdef VINAGRE_ENABLE_AVAHI
@@ -878,4 +1041,14 @@ vinagre_fav_update_list (VinagreFav *fav)
return FALSE;
}
+
+const gchar *
+vinagre_fav_get_ui_xml_filename (void)
+{
+ if (g_file_test (VINAGRE_FAV_UI_XML_FILE, G_FILE_TEST_EXISTS))
+ return VINAGRE_FAV_UI_XML_FILE;
+ else
+ return VINAGRE_DATADIR "/" VINAGRE_FAV_UI_XML_FILE;
+}
+
/* vim: set ts=8: */
diff --git a/vinagre/vinagre-fav.h b/vinagre/vinagre-fav.h
index a22579d..1bcfe3a 100644
--- a/vinagre/vinagre-fav.h
+++ b/vinagre/vinagre-fav.h
@@ -41,13 +41,13 @@ typedef struct _VinagreFavClass VinagreFavClass;
struct _VinagreFav
{
- GtkVBox vbox;
+ GtkFrame frame;
VinagreFavPrivate *priv;
};
struct _VinagreFavClass
{
- GtkVBoxClass parent_class;
+ GtkFrameClass parent_class;
/* Signals */
void (* fav_activated) (VinagreFav *fav,
@@ -63,6 +63,10 @@ GtkWidget *vinagre_fav_new (VinagreWindow *window);
gboolean vinagre_fav_update_list (VinagreFav *fav);
+void vinagre_fav_bookmarks_open (GtkAction *action, VinagreFav *fav);
+
+const gchar * vinagre_fav_get_ui_xml_filename (void);
+
G_END_DECLS
#endif /* __VINAGRE_FAV_H__ */
diff --git a/vinagre/vinagre-ui.h b/vinagre/vinagre-ui.h
index 58e7a11..bcc8d73 100644
--- a/vinagre/vinagre-ui.h
+++ b/vinagre/vinagre-ui.h
@@ -47,20 +47,8 @@ static const GtkActionEntry vinagre_always_sensitive_entries[] =
/* Edit menu */
{ "EditPreferences", GTK_STOCK_PREFERENCES, NULL, NULL,
N_("Edit the application preferences"), G_CALLBACK (vinagre_cmd_edit_preferences) },
-/*FIXME: Study this dialog for next release
{ "EditPlugins", GTK_STOCK_EXECUTE, N_("_Plugins"), NULL,
N_("Select plugins"), G_CALLBACK (vinagre_cmd_edit_plugins) },
-*/
-
- /* Bookmarks menu */
- { "BookmarksOpen", GTK_STOCK_CONNECT, N_("_Open bookmark"), NULL,
- N_("Connect to this machine"), G_CALLBACK (vinagre_cmd_bookmarks_open) },
- { "BookmarksEdit", GTK_STOCK_EDIT, N_("_Edit bookmark"), NULL,
- N_("Edit the details of selected bookmark"), G_CALLBACK (vinagre_cmd_bookmarks_edit) },
- { "BookmarksDel", GTK_STOCK_DELETE, N_("_Remove from bookmarks"), NULL,
- N_("Remove current selected connection from bookmarks"), G_CALLBACK (vinagre_cmd_bookmarks_del) },
- { "BookmarksNewFolder", "folder-new", N_("_New Folder"), NULL,
- N_("Create a new folder"), G_CALLBACK (vinagre_cmd_bookmarks_new_folder) },
/* Help menu */
{"HelpContents", GTK_STOCK_HELP, N_("_Contents"), "F1",
diff --git a/vinagre/vinagre-window-private.h b/vinagre/vinagre-window-private.h
index bae6cb0..cca409e 100644
--- a/vinagre/vinagre-window-private.h
+++ b/vinagre/vinagre-window-private.h
@@ -22,7 +22,6 @@
#define __VINAGRE_WINDOW_PRIVATE_H__
#include "vinagre-window.h"
-#include "vinagre-bookmarks-entry.h"
#include "vinagre-notebook.h"
G_BEGIN_DECLS
@@ -56,8 +55,6 @@ struct _VinagreWindowPrivate
GtkWidget *toolbar;
GtkWidget *menubar;
- VinagreBookmarksEntry *fav_entry_selected;
-
gint width;
gint height;
GdkWindowState window_state;
diff --git a/vinagre/vinagre-window.c b/vinagre/vinagre-window.c
index aa28653..bd86127 100644
--- a/vinagre/vinagre-window.c
+++ b/vinagre/vinagre-window.c
@@ -56,12 +56,6 @@ vinagre_window_dispose (GObject *object)
{
VinagreWindow *window = VINAGRE_WINDOW (object);
- if (window->priv->fav_entry_selected)
- {
- g_object_unref (window->priv->fav_entry_selected);
- window->priv->fav_entry_selected = NULL;
- }
-
if (!window->priv->dispose_has_run)
{
vinagre_plugins_engine_deactivate_plugins (vinagre_plugins_engine_get_default (),
@@ -401,8 +395,9 @@ create_menu_bar_and_toolbar (VinagreWindow *window,
gtk_ui_manager_add_ui_from_file (manager, vinagre_utils_get_ui_xml_filename (), &error);
if (error != NULL)
{
- g_warning (_("Could not merge vinagre-ui.xml: %s"), error->message);
+ g_critical (_("Could not merge UI XML file: %s"), error->message);
g_error_free (error);
+ return;
}
/* Bookmarks */
@@ -486,49 +481,6 @@ fav_panel_size_allocate (GtkWidget *widget,
}
static void
-fav_panel_activated (VinagreFav *fav,
- VinagreBookmarksEntry *entry,
- VinagreWindow *window)
-{
- g_return_if_fail (vinagre_bookmarks_entry_get_node (entry) == VINAGRE_BOOKMARKS_ENTRY_NODE_CONN);
-
- vinagre_cmd_open_bookmark (window, vinagre_bookmarks_entry_get_conn (entry));
-}
-
-static void
-fav_panel_selected (VinagreFav *fav,
- VinagreBookmarksEntry *entry,
- VinagreWindow *window)
-{
- GtkAction *action1, *action2;
-
- action1 = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
- "BookmarksDel");
- action2 = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
- "BookmarksEdit");
-
- if (window->priv->fav_entry_selected)
- {
- g_object_unref (window->priv->fav_entry_selected);
- window->priv->fav_entry_selected = NULL;
- }
-
- if (entry)
- {
- window->priv->fav_entry_selected = g_object_ref (entry);
- gtk_action_set_sensitive (action1, TRUE);
- gtk_action_set_sensitive (action2, TRUE);
- /* TODO: Change the menuitem label */
- }
- else
- {
- /* TODO: Change the menuitem label */
- gtk_action_set_sensitive (action1, FALSE);
- gtk_action_set_sensitive (action2, FALSE);
- }
-}
-
-static void
vinagre_window_populate_bookmarks (VinagreWindow *window,
const gchar *group,
GSList *entries,
@@ -605,8 +557,8 @@ vinagre_window_populate_bookmarks (VinagreWindow *window,
action);
g_signal_connect (action,
"activate",
- G_CALLBACK (vinagre_cmd_bookmarks_open),
- window);
+ G_CALLBACK (vinagre_fav_bookmarks_open),
+ window->priv->fav_panel);
path = g_strdup_printf ("/MenuBar/BookmarksMenu/%s%s", group, parent?parent:"");
gtk_ui_manager_add_ui (p->manager,
@@ -645,8 +597,8 @@ vinagre_window_update_bookmarks_list_menu (VinagreWindow *window)
for (l = actions; l != NULL; l = l->next)
{
g_signal_handlers_disconnect_by_func (GTK_ACTION (l->data),
- G_CALLBACK (vinagre_cmd_bookmarks_open),
- window);
+ G_CALLBACK (vinagre_fav_bookmarks_open),
+ window->priv->fav_panel);
gtk_action_group_remove_action (p->bookmarks_list_action_group,
GTK_ACTION (l->data));
}
@@ -682,14 +634,6 @@ create_side_panel (VinagreWindow *window)
"size-allocate",
G_CALLBACK (fav_panel_size_allocate),
window);
- g_signal_connect (window->priv->fav_panel,
- "fav-activated",
- G_CALLBACK (fav_panel_activated),
- window);
- g_signal_connect (window->priv->fav_panel,
- "fav-selected",
- G_CALLBACK (fav_panel_selected),
- window);
}
static void
@@ -701,15 +645,6 @@ init_widgets_visibility (VinagreWindow *window)
gboolean visible;
VinagrePrefs *prefs = vinagre_prefs_get_default ();
- /* Remove and Edit bookmarks starts disabled */
- action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
- "BookmarksDel");
- gtk_action_set_sensitive (action, FALSE);
-
- action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
- "BookmarksEdit");
- gtk_action_set_sensitive (action, FALSE);
-
/* side panel visibility */
action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
"ViewSidePanel");
@@ -784,7 +719,6 @@ vinagre_window_init (VinagreWindow *window)
gtk_window_set_default_icon_name ("vinagre");
window->priv = VINAGRE_WINDOW_GET_PRIVATE (window);
- window->priv->fav_entry_selected = NULL;
window->priv->fullscreen = FALSE;
window->priv->dispose_has_run = FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]