[brasero/gnome-2-32] Revert to libunique from GApplication
- From: Luis Medinas <lmedinas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [brasero/gnome-2-32] Revert to libunique from GApplication
- Date: Mon, 13 Sep 2010 00:41:56 +0000 (UTC)
commit 3029bfa854c8f7c88f986f810735bc9b66b94b15
Author: Luis Medinas <lmedinas gnome org>
Date: Mon Sep 13 01:45:11 2010 +0100
Revert to libunique from GApplication
Thanks to Christian Persch <chpe gnome org> for the patch
configure.in | 6 +++++
src/Makefile.am | 4 ++-
src/brasero-app.c | 54 ++++++++++++++++++++++++++--------------------------
src/main.c | 24 +++++++++++++++++-----
4 files changed, 54 insertions(+), 34 deletions(-)
---
diff --git a/configure.in b/configure.in
index 9f07a93..d9b7a12 100644
--- a/configure.in
+++ b/configure.in
@@ -147,6 +147,7 @@ GCONF_REQUIRED=2.31.1
GSTREAMER_REQUIRED=0.10.15
GSTREAMER_BASE_REQUIRED=0.10.0
LIBXML2_REQUIRED=2.6.0
+LIBUNIQUE_REQUIRED=1.0.0
dnl ** used by brasero and one plugin
PKG_CHECK_MODULES(BRASERO_GSTREAMER, \
@@ -173,6 +174,11 @@ PKG_CHECK_MODULES(BRASERO_LIBXML, \
AC_SUBST(BRASERO_LIBXML_CFLAGS)
AC_SUBST(BRASERO_LIBXML_LIBS)
+dnl ** used by brasero
+PKG_CHECK_MODULES([BRASERO_LIBUNIQUE],[unique-1.0 >= $LIBUNIQUE_REQUIRED])
+AC_SUBST([BRASERO_LIBUNIQUE_CFLAGS])
+AC_SUBST([BRASERO_LIBUNIQUE_LIBS])
+
dnl ** used by brasero and both libraries
PKG_CHECK_MODULES(BRASERO_GTHREAD, \
gthread-2.0 >= $GTHREAD_REQUIRED)
diff --git a/src/Makefile.am b/src/Makefile.am
index 7f91e6a..a8587b2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -21,6 +21,7 @@ INCLUDES = \
$(BRASERO_GTK_CFLAGS) \
$(BRASERO_DBUS_CFLAGS) \
$(BRASERO_LIBXML_CFLAGS) \
+ $(BRASERO_LIBUNIQUE_CFLAGS) \
$(BRASERO_SEARCH_CFLAGS) \
$(BRASERO_PL_PARSER_CFLAGS) \
$(BRASERO_SM_CFLAGS)
@@ -167,6 +168,7 @@ brasero_LDADD = \
$(BRASERO_GMODULE_LIBS) \
$(BRASERO_DBUS_LIBS) \
$(BRASERO_LIBXML_LIBS) \
+ $(BRASERO_LIBUNIQUE_LIBS) \
$(BRASERO_SEARCH_LIBS) \
$(BRASERO_PL_PARSER_LIBS) \
$(BRASERO_SM_LIBS)
@@ -176,6 +178,6 @@ EXTRA_DIST = \
CLEANFILES = \
$(RECMARSHALFILES)
-
+
-include $(top_srcdir)/git.mk
diff --git a/src/brasero-app.c b/src/brasero-app.c
index 3413410..7375afc 100644
--- a/src/brasero-app.c
+++ b/src/brasero-app.c
@@ -67,7 +67,7 @@
typedef struct _BraseroAppPrivate BraseroAppPrivate;
struct _BraseroAppPrivate
{
- GApplication *gapp;
+ UniqueApp *gapp;
BraseroSetting *setting;
@@ -1999,21 +1999,24 @@ brasero_app_create_mainwin (BraseroApp *app)
brasero_app_load_window_state (app);
}
-static void
-brasero_app_prepare_activation (GApplication *gapp,
- GVariant *arguments,
- GVariant *platform_data,
- BraseroApp *app)
+static UniqueResponse
+brasero_app_unique_message (UniqueApp *uapp,
+ gint command,
+ UniqueMessageData *message_data,
+ BraseroApp *app)
{
BraseroAppPrivate *priv;
priv = BRASERO_APP_PRIVATE (app);
- /* Except if we are supposed to quit show the window */
- if (priv->mainwin_running) {
- gtk_widget_show (priv->mainwin);
- gtk_window_present (GTK_WINDOW (priv->mainwin));
- }
+ if (command == UNIQUE_ACTIVATE) {
+ if (priv->mainwin_running) {
+ gtk_widget_show (priv->mainwin);
+ gtk_window_present (GTK_WINDOW (priv->mainwin));
+ }
+ }
+
+ return UNIQUE_RESPONSE_OK;
}
gboolean
@@ -2029,11 +2032,6 @@ brasero_app_run_mainwin (BraseroApp *app)
priv->mainwin_running = 1;
gtk_widget_show (GTK_WIDGET (priv->mainwin));
- if (priv->gapp)
- g_signal_connect (priv->gapp,
- "prepare-activation",
- G_CALLBACK (brasero_app_prepare_activation),
- app);
gtk_main ();
return TRUE;
}
@@ -2104,16 +2102,17 @@ brasero_app_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
- BraseroAppPrivate *priv;
-
- g_return_if_fail (BRASERO_IS_APP (object));
-
- priv = BRASERO_APP_PRIVATE (object);
+ BraseroApp *app = BRASERO_APP (object);
+ BraseroAppPrivate *priv = BRASERO_APP_PRIVATE (object);
switch (prop_id)
{
case PROP_GAPP:
priv->gapp = g_value_dup_object (value);
+ g_signal_connect (priv->gapp,
+ "message-received",
+ G_CALLBACK (brasero_app_unique_message),
+ app);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -2157,15 +2156,16 @@ brasero_app_class_init (BraseroAppClass *klass)
g_object_class_install_property (object_class,
PROP_GAPP,
- g_param_spec_object("gapp",
- "GApplication",
- "The GApplication object",
- G_TYPE_APPLICATION,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ g_param_spec_object("gapp",
+ "UniqueApplication",
+ "The UniqueApp object",
+ UNIQUE_TYPE_APP,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
}
BraseroApp *
-brasero_app_new (GApplication *gapp)
+brasero_app_new (UniqueApp *gapp)
{
return g_object_new (BRASERO_TYPE_APP,
"gapp", gapp,
diff --git a/src/main.c b/src/main.c
index 6ae4f50..82be5d1 100644
--- a/src/main.c
+++ b/src/main.c
@@ -39,6 +39,7 @@
#include <gst/gst.h>
+#include <unique/unique.h>
#include "eggsmclient.h"
@@ -63,7 +64,7 @@ brasero_app_get_default (void)
int
main (int argc, char **argv)
{
- GApplication *gapp = NULL;
+ UniqueApp *uapp = NULL;
GOptionContext *context;
#ifdef ENABLE_NLS
@@ -101,16 +102,27 @@ main (int argc, char **argv)
g_option_context_free (context);
if (cmd_line_options.not_unique == FALSE) {
- /* Create GApplication and check if there is a process running already */
- gapp = g_application_new ("org.gnome.Brasero", argc, argv);
- if (g_application_is_remote (gapp))
- return 0;
+ /* Create UniqueApp and check if there is a process running already */
+ uapp = unique_app_new ("org.gnome.Brasero", NULL);
+ if (unique_app_is_running (uapp))
+ {
+ UniqueResponse response;
+
+ response = unique_app_send_message (uapp, UNIQUE_ACTIVATE, NULL);
+ g_object_unref (uapp);
+ uapp = NULL;
+
+ /* FIXME: we should tell the user why it did not work. Or is it
+ * handled by libunique? */
+ return (response == UNIQUE_RESPONSE_OK);
+ }
}
brasero_burn_library_start (&argc, &argv);
brasero_enable_multi_DND ();
- current_app = brasero_app_new (gapp);
+ current_app = brasero_app_new (uapp);
+ g_object_unref (uapp);
if (current_app == NULL)
return 1;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]