[gnome-photos] preview-menu: Add "Set as Background"
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] preview-menu: Add "Set as Background"
- Date: Sat, 13 Apr 2013 09:14:22 +0000 (UTC)
commit 82383edbab2dd472d5513f685e5c385865238bf5
Author: Debarshi Ray <debarshir gnome org>
Date: Fri Apr 12 21:32:23 2013 +0200
preview-menu: Add "Set as Background"
src/photos-application.c | 32 ++++++++++++++++++++++++++++++++
src/photos-preview-menu.ui | 4 ++++
2 files changed, 36 insertions(+)
---
diff --git a/src/photos-application.c b/src/photos-application.c
index 2698c3f..cc20cf4 100644
--- a/src/photos-application.c
+++ b/src/photos-application.c
@@ -29,6 +29,7 @@
#include <gio/gio.h>
#include <glib.h>
#include <glib/gi18n.h>
+#include <libgnome-desktop/gnome-bg.h>
#include "eog-debug.h"
#include "photos-application.h"
@@ -42,6 +43,7 @@
struct _PhotosApplicationPrivate
{
GResource *resource;
+ GSettings *settings;
GSimpleAction *fs_action;
GSimpleAction *gear_action;
GSimpleAction *open_action;
@@ -49,6 +51,7 @@ struct _PhotosApplicationPrivate
GSimpleAction *properties_action;
GSimpleAction *sel_all_action;
GSimpleAction *sel_none_action;
+ GSimpleAction *set_bg_action;
GtkWidget *main_window;
PhotosBaseManager *item_mngr;
PhotosModeController *mode_cntrlr;
@@ -154,6 +157,26 @@ photos_application_quit (PhotosApplication *self, GVariant *parameter)
static void
+photos_application_set_bg (PhotosApplication *self)
+{
+ PhotosApplicationPrivate *priv = self->priv;
+ PhotosBaseItem *item;
+ const gchar *uri;
+
+ item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (priv->item_mngr));
+ if (item == NULL)
+ return;
+
+ uri = photos_base_item_get_uri (item);
+ g_settings_set_string (priv->settings, "picture-uri", uri);
+ g_settings_set_enum (priv->settings, "picture-options", G_DESKTOP_BACKGROUND_STYLE_ZOOM);
+ g_settings_set_enum (priv->settings, "color-shading-type", G_DESKTOP_BACKGROUND_SHADING_SOLID);
+ g_settings_set_string (priv->settings, "primary-color", "#000000000000");
+ g_settings_set_string (priv->settings, "secondary-color", "#000000000000");
+}
+
+
+static void
photos_application_window_mode_changed (PhotosApplication *self, PhotosWindowMode mode, PhotosWindowMode
old_mode)
{
PhotosApplicationPrivate *priv = self->priv;
@@ -170,6 +193,7 @@ photos_application_window_mode_changed (PhotosApplication *self, PhotosWindowMod
g_simple_action_set_enabled (priv->open_action, enable);
g_simple_action_set_enabled (priv->print_action, enable);
g_simple_action_set_enabled (priv->properties_action, enable);
+ g_simple_action_set_enabled (priv->set_bg_action, enable);
}
@@ -199,6 +223,8 @@ photos_application_startup (GApplication *application)
gegl_init (NULL, NULL);
+ priv->settings = g_settings_new ("org.gnome.desktop.background");
+
priv->resource = photos_get_resource ();
g_resources_register (priv->resource);
@@ -250,6 +276,10 @@ photos_application_startup (GApplication *application)
priv->sel_none_action = g_simple_action_new ("select-none", NULL);
g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->sel_none_action));
+ priv->set_bg_action = g_simple_action_new ("set-background", NULL);
+ g_signal_connect_swapped (priv->set_bg_action, "activate", G_CALLBACK (photos_application_set_bg), self);
+ g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->set_bg_action));
+
g_signal_connect_swapped (priv->mode_cntrlr,
"window-mode-changed",
G_CALLBACK (photos_application_window_mode_changed),
@@ -304,6 +334,7 @@ photos_application_dispose (GObject *object)
priv->resource = NULL;
}
+ g_clear_object (&priv->settings);
g_clear_object (&priv->fs_action);
g_clear_object (&priv->gear_action);
g_clear_object (&priv->open_action);
@@ -311,6 +342,7 @@ photos_application_dispose (GObject *object)
g_clear_object (&priv->properties_action);
g_clear_object (&priv->sel_all_action);
g_clear_object (&priv->sel_none_action);
+ g_clear_object (&priv->set_bg_action);
g_clear_object (&priv->item_mngr);
g_clear_object (&priv->mode_cntrlr);
diff --git a/src/photos-preview-menu.ui b/src/photos-preview-menu.ui
index 2c2a982..ebd9cd9 100644
--- a/src/photos-preview-menu.ui
+++ b/src/photos-preview-menu.ui
@@ -10,6 +10,10 @@
<attribute name="label" translatable="yes">Print…</attribute>
<attribute name="accel"><Primary>p</attribute>
</item>
+ <item>
+ <attribute name="action">app.set-background</attribute>
+ <attribute name="label" translatable="yes">Set as Background</attribute>
+ </item>
</section>
<section>
<item>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]