[Xfce4-commits] [xfce/xfce4-panel] 10/24: Port panel actions plugin to gdbus
noreply at xfce.org
noreply at xfce.org
Tue Jul 4 00:03:41 CEST 2017
This is an automated email from the git hooks/post-receive script.
o c h o s i p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository xfce/xfce4-panel.
commit cae0fd3be52c29a4998ef9afb5f4b85106f94461
Author: Ali Abdallah <ali at xfce.org>
Date: Fri Jun 23 13:43:12 2017 +0200
Port panel actions plugin to gdbus
---
plugins/actions/actions.c | 99 ++++++++++++++++++++++++++++++++---------------
1 file changed, 68 insertions(+), 31 deletions(-)
diff --git a/plugins/actions/actions.c b/plugins/actions/actions.c
index dba9b94..20bfc32 100644
--- a/plugins/actions/actions.c
+++ b/plugins/actions/actions.c
@@ -25,7 +25,8 @@
#include <libxfce4panel/libxfce4panel.h>
#include <libxfce4util/libxfce4util.h>
#include <libxfce4ui/libxfce4ui.h>
-#include <dbus/dbus-glib.h>
+
+#include <gio/gio.h>
#include <common/panel-private.h>
#include <common/panel-xfconf.h>
@@ -749,13 +750,17 @@ actions_plugin_action_confirmation (ActionsPlugin *plugin,
-static DBusGProxy *
-actions_plugin_action_dbus_proxy_session (DBusGConnection *conn)
+static GDBusProxy *
+actions_plugin_action_dbus_proxy_session (GDBusConnection *conn)
{
- return dbus_g_proxy_new_for_name (conn,
- "org.xfce.SessionManager",
- "/org/xfce/SessionManager",
- "org.xfce.Session.Manager");
+ return g_dbus_proxy_new_sync (conn,
+ G_DBUS_PROXY_FLAGS_NONE,
+ NULL,
+ "org.xfce.SessionManager",
+ "/org/xfce/SessionManager",
+ "org.xfce.Session.Manager",
+ NULL,
+ NULL);
}
@@ -766,11 +771,11 @@ actions_plugin_action_dbus_xfsm (const gchar *method,
gboolean allow_save,
GError **error)
{
- DBusGConnection *conn;
- DBusGProxy *proxy;
- gboolean retval = FALSE;
+ GDBusConnection *conn;
+ GDBusProxy *proxy;
+ GVariant *retval;
- conn = dbus_g_bus_get (DBUS_BUS_SESSION, error);
+ conn = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, error);
if (conn == NULL)
return FALSE;
@@ -779,45 +784,77 @@ actions_plugin_action_dbus_xfsm (const gchar *method,
{
if (g_strcmp0 (method, "Logout") == 0)
{
- retval = dbus_g_proxy_call (proxy, method, error,
- G_TYPE_BOOLEAN, show_dialog,
- G_TYPE_BOOLEAN, allow_save,
- G_TYPE_INVALID, G_TYPE_INVALID);
+ retval = g_dbus_proxy_call_sync (proxy, method,
+ g_variant_new ("(bb)",
+ show_dialog,
+ allow_save),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL,
+ error);
}
else if (g_strcmp0 (method, "Suspend") == 0
|| g_strcmp0 (method, "Hibernate") == 0)
{
- retval = dbus_g_proxy_call (proxy, method, error,
- G_TYPE_INVALID, G_TYPE_INVALID);
+ retval = g_dbus_proxy_call_sync (proxy, method,
+ NULL,
+ G_DBUS_PROXY_FLAGS_NONE,
+ -1,
+ NULL,
+ error);
}
else
{
- retval = dbus_g_proxy_call (proxy, method, error,
- G_TYPE_BOOLEAN, allow_save,
- G_TYPE_INVALID, G_TYPE_INVALID);
+ retval = g_dbus_proxy_call_sync (proxy, method,
+ g_variant_new ("(b)",
+ show_dialog),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL,
+ error);
}
g_object_unref (G_OBJECT (proxy));
}
- return retval;
+ if (retval)
+ {
+ g_variant_unref (retval);
+ return TRUE;
+ }
+
+ return FALSE;
}
static gboolean
-actions_plugin_action_dbus_can (DBusGProxy *proxy,
+actions_plugin_action_dbus_can (GDBusProxy *proxy,
const gchar *method)
{
+ GVariant *retval;
gboolean allowed = FALSE;
+ GError *error = NULL;
- if (dbus_g_proxy_call (proxy, method, NULL,
- G_TYPE_INVALID,
- G_TYPE_BOOLEAN, &allowed,
- G_TYPE_INVALID))
- return allowed;
+ retval = g_dbus_proxy_call_sync (proxy, method,
+ NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL,
+ error);
- return FALSE;
+ if (G_LIKELY (retval))
+ {
+ g_variant_get (retval, "(b)", &allowed);
+ g_variant_unref (retval);
+ }
+ else if (error)
+ {
+ g_warning ("Calling %s failed %s", method, error->message);
+ g_error_free (error);
+ }
+
+ return allowed;
}
@@ -825,10 +862,10 @@ actions_plugin_action_dbus_can (DBusGProxy *proxy,
static ActionType
actions_plugin_actions_allowed (void)
{
- DBusGConnection *conn;
+ GDBusConnection *conn;
ActionType allow_mask = ACTION_TYPE_SEPARATOR;
gchar *path;
- DBusGProxy *proxy;
+ GDBusProxy *proxy;
GError *error = NULL;
/* check for commands we use */
@@ -843,7 +880,7 @@ actions_plugin_actions_allowed (void)
g_free (path);
/* session bus for querying the managers */
- conn = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ conn = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
if (conn != NULL)
{
/* xfce4-session */
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list