diff --git a/data/cheese-ui.xml b/data/cheese-ui.xml
index 5407824..fc40347 100644
--- a/data/cheese-ui.xml
+++ b/data/cheese-ui.xml
@@ -40,5 +40,6 @@
+
diff --git a/src/cheese-window.c b/src/cheese-window.c
index 48974c4..e24cb1c 100644
--- a/src/cheese-window.c
+++ b/src/cheese-window.c
@@ -160,6 +160,7 @@ typedef struct
GtkActionGroup *actions_sendto;
GtkActionGroup *actions_flickr;
GtkActionGroup *actions_fspot;
+ GtkActionGroup *actions_gwibber;
GtkActionGroup *actions_mail;
GtkActionGroup *actions_main;
GtkActionGroup *actions_photo;
@@ -440,6 +441,7 @@ cheese_window_cmd_close (GtkWidget *widget, CheeseWindow *cheese_window)
g_object_unref (cheese_window->actions_sendto);
g_object_unref (cheese_window->actions_flickr);
g_object_unref (cheese_window->actions_fspot);
+ g_object_unref (cheese_window->actions_gwibber);
g_object_unref (cheese_window->actions_mail);
g_object_unref (cheese_window->actions_photo);
g_object_unref (cheese_window->actions_toggle);
@@ -907,6 +909,22 @@ cheese_window_cmd_command_line (GtkAction *action, CheeseWindow *cheese_window)
command_line = g_strdup_printf ("f-spot -i %s", dirname);
g_free (dirname);
}
+ else if (strcmp (action_name, "ShareOnGwibber") == 0)
+ {
+ // FIXME: Supporting only one file
+ l = files;
+ char *path = g_file_get_path (l->data);
+
+ command_line = g_strdup_printf ("gwibber-share -w -f %s", path);
+ g_free (path);
+
+ for (; l != NULL; l = l->next)
+ {
+ g_object_unref (l->data);
+ }
+ g_list_free (l);
+ g_list_free (files);
+ }
else if (strcmp (action_name, "ExportToFlickr") == 0)
{
char *path;
@@ -1127,6 +1145,7 @@ cheese_window_button_press_event_cb (GtkWidget *iconview, GdkEventButton *event,
gtk_action_group_set_sensitive (cheese_window->actions_fspot, TRUE);
gtk_action_group_set_sensitive (cheese_window->actions_account_photo, TRUE);
}
+ gtk_action_group_set_sensitive (cheese_window->actions_gwibber, TRUE);
gtk_menu_popup (GTK_MENU (cheese_window->thumb_view_popup_menu),
NULL, iconview, NULL, NULL, button, event_time);
@@ -1441,6 +1460,10 @@ static const GtkActionEntry action_entries_fspot[] = {
{"ExportToFSpot", NULL, N_("Export to F-_Spot"), NULL, NULL, G_CALLBACK (cheese_window_cmd_command_line)},
};
+static const GtkActionEntry action_entries_gwibber[] = {
+ {"ShareOnGwibber", NULL, N_("Share on _Gwibber"), NULL, NULL, G_CALLBACK (cheese_window_cmd_command_line)},
+};
+
static const GtkActionEntry action_entries_flickr[] = {
{"ExportToFlickr", NULL, N_("Export to _Flickr"), NULL, NULL, G_CALLBACK (cheese_window_cmd_command_line)},
};
@@ -1758,6 +1781,14 @@ cheese_window_create_window (CheeseWindow *cheese_window)
gtk_action_group_set_visible (cheese_window->actions_fspot, path != NULL);
g_free (path);
+ cheese_window->actions_gwibber = cheese_window_action_group_new (cheese_window,
+ "ActionsGwibber",
+ action_entries_gwibber,
+ G_N_ELEMENTS (action_entries_gwibber));
+ path = g_find_program_in_path ("gwibber-share");
+ gtk_action_group_set_visible (cheese_window->actions_gwibber, path != NULL);
+ g_free (path);
+
cheese_window->actions_flickr = cheese_window_action_group_new (cheese_window,
"ActionsFlickr",