summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2010-09-21 11:37:00 +0100
committerBastien Nocera <hadess@hadess.net>2010-09-21 11:40:45 +0100
commit62c677d2ade43334e4323f4921a210bfdc6b8fa2 (patch)
tree5ce00fa108b694268d98c27d38480a41998a9059 /src
parentfa4be2725acf38cbf40e06eedfb42773f7bbf24d (diff)
downloadnautilus-sendto-62c677d2ade43334e4323f4921a210bfdc6b8fa2.tar.gz
Fix sending when plugin implements multiple pages
We can't get the plugin from its ID, because IDs are attached to pages, not plugins, so store info about the plugin in the treeview.
Diffstat (limited to 'src')
-rw-r--r--src/nautilus-sendto-command.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/nautilus-sendto-command.c b/src/nautilus-sendto-command.c
index 0fefc52..ddcc194 100644
--- a/src/nautilus-sendto-command.c
+++ b/src/nautilus-sendto-command.c
@@ -42,6 +42,7 @@ enum {
COLUMN_IS_SEPARATOR,
COLUMN_ICON,
COLUMN_ID,
+ COLUMN_EXT,
COLUMN_PAGE_NUM,
COLUMN_DESCRIPTION,
COLUMN_CAN_SEND,
@@ -128,7 +129,6 @@ send_button_cb (GtkWidget *widget, NautilusSendto *nst)
GtkTreeSelection *treeselection;
GtkTreeIter iter;
char *id;
- PeasPluginInfo *info;
PeasExtension *ext;
treeselection = gtk_tree_view_get_selection (GTK_TREE_VIEW (nst->options_treeview));
@@ -139,16 +139,14 @@ send_button_cb (GtkWidget *widget, NautilusSendto *nst)
gtk_tree_model_get (model, &iter,
COLUMN_ID, &id,
+ COLUMN_EXT, &ext,
-1);
g_settings_set_string (nst->settings,
NAUTILUS_SENDTO_LAST_MEDIUM,
id);
- info = peas_engine_get_plugin_info (engine, id);
- ext = peas_extension_set_get_extension (exten_set, info);
-
- if (peas_extension_call (ext, "send_files", nst->file_list, send_callback, nst) == FALSE) {
+ if (peas_extension_call (ext, "send_files", id, nst->file_list, send_callback, nst) == FALSE) {
/* FIXME report the error in the UI */
g_warning ("Failed to send files");
make_sensitive_for_send (nst, TRUE);
@@ -163,7 +161,7 @@ static void
can_send_cb (NautilusSendtoPlugin *plugin,
const char *id,
gboolean can_send,
- NautilusSendto *nst)
+ NautilusSendto *nst)
{
GtkTreeModel *model;
GtkTreeIter iter;
@@ -280,6 +278,7 @@ add_widget_cb (NautilusSendtoPlugin *plugin,
COLUMN_IS_SEPARATOR, FALSE,
COLUMN_ICON, pixbuf,
COLUMN_ID, id,
+ COLUMN_EXT, plugin,
COLUMN_PAGE_NUM, page_num,
COLUMN_DESCRIPTION, name,
-1);
@@ -309,7 +308,7 @@ set_model_for_options_treeview (NautilusSendto *nst)
/* Disable this call if you want to debug */
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (nst->contacts_notebook), FALSE);
- model = gtk_list_store_new (NUM_COLUMNS, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN);
+ model = gtk_list_store_new (NUM_COLUMNS, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_OBJECT, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN);
gtk_tree_view_set_model (GTK_TREE_VIEW (nst->options_treeview),
GTK_TREE_MODEL (model));