shell: Remove TpClient
With the telepathy component now being implemented purely in JS, we can drop the C helper class. https://bugzilla.gnome.org/show_bug.cgi?id=771721
This commit is contained in:
parent
7c96b39bef
commit
3c828c8387
@ -50,7 +50,6 @@
|
|||||||
<xi:include href="xml/shell-util.xml"/>
|
<xi:include href="xml/shell-util.xml"/>
|
||||||
<xi:include href="xml/shell-mount-operation.xml"/>
|
<xi:include href="xml/shell-mount-operation.xml"/>
|
||||||
<xi:include href="xml/shell-polkit-authentication-agent.xml"/>
|
<xi:include href="xml/shell-polkit-authentication-agent.xml"/>
|
||||||
<xi:include href="xml/shell-tp-client.xml"/>
|
|
||||||
</chapter>
|
</chapter>
|
||||||
<chapter id="object-tree">
|
<chapter id="object-tree">
|
||||||
<title>Object Hierarchy</title>
|
<title>Object Hierarchy</title>
|
||||||
|
@ -104,7 +104,6 @@ shell_public_headers_h = \
|
|||||||
shell-perf-log.h \
|
shell-perf-log.h \
|
||||||
shell-screenshot.h \
|
shell-screenshot.h \
|
||||||
shell-stack.h \
|
shell-stack.h \
|
||||||
shell-tp-client.h \
|
|
||||||
shell-tray-icon.h \
|
shell-tray-icon.h \
|
||||||
shell-tray-manager.h \
|
shell-tray-manager.h \
|
||||||
shell-util.h \
|
shell-util.h \
|
||||||
@ -148,7 +147,6 @@ libgnome_shell_base_la_SOURCES = \
|
|||||||
shell-secure-text-buffer.c \
|
shell-secure-text-buffer.c \
|
||||||
shell-secure-text-buffer.h \
|
shell-secure-text-buffer.h \
|
||||||
shell-stack.c \
|
shell-stack.c \
|
||||||
shell-tp-client.c \
|
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
if HAVE_NETWORKMANAGER
|
if HAVE_NETWORKMANAGER
|
||||||
@ -335,7 +333,7 @@ INTROSPECTION_GIRS += ShellMenu-0.1.gir
|
|||||||
CLEANFILES += ShellMenu-0.1.gir
|
CLEANFILES += ShellMenu-0.1.gir
|
||||||
|
|
||||||
Shell-0.1.gir: gnome-shell St-1.0.gir ShellMenu-0.1.gir
|
Shell-0.1.gir: gnome-shell St-1.0.gir ShellMenu-0.1.gir
|
||||||
Shell_0_1_gir_INCLUDES = Clutter-$(LIBMUTTER_API_VERSION) ClutterX11-$(LIBMUTTER_API_VERSION) Meta-$(LIBMUTTER_API_VERSION) TelepathyGLib-0.12 Soup-2.4
|
Shell_0_1_gir_INCLUDES = Clutter-$(LIBMUTTER_API_VERSION) ClutterX11-$(LIBMUTTER_API_VERSION) Meta-$(LIBMUTTER_API_VERSION) Soup-2.4
|
||||||
if HAVE_NETWORKMANAGER
|
if HAVE_NETWORKMANAGER
|
||||||
Shell_0_1_gir_INCLUDES += NetworkManager-1.0 NMClient-1.0
|
Shell_0_1_gir_INCLUDES += NetworkManager-1.0 NMClient-1.0
|
||||||
endif
|
endif
|
||||||
|
@ -1,244 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
#include "shell-tp-client.h"
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include <telepathy-glib/telepathy-glib.h>
|
|
||||||
|
|
||||||
struct _ShellTpClientPrivate
|
|
||||||
{
|
|
||||||
ShellTpClientObserveChannelsImpl observe_impl;
|
|
||||||
gpointer user_data_obs;
|
|
||||||
GDestroyNotify destroy_obs;
|
|
||||||
|
|
||||||
ShellTpClientApproveChannelsImpl approve_channels_impl;
|
|
||||||
gpointer user_data_approve_channels;
|
|
||||||
GDestroyNotify destroy_approve_channels;
|
|
||||||
|
|
||||||
ShellTpClientHandleChannelsImpl handle_channels_impl;
|
|
||||||
gpointer user_data_handle_channels;
|
|
||||||
GDestroyNotify destroy_handle_channels;
|
|
||||||
};
|
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_PRIVATE (ShellTpClient, shell_tp_client, TP_TYPE_BASE_CLIENT)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ShellTpClientObserveChannelsImpl:
|
|
||||||
* @client: a #ShellTpClient instance
|
|
||||||
* @account: a #TpAccount having %TP_ACCOUNT_FEATURE_CORE prepared if possible
|
|
||||||
* @connection: a #TpConnection having %TP_CONNECTION_FEATURE_CORE prepared
|
|
||||||
* if possible
|
|
||||||
* @channels: (element-type TelepathyGLib.Channel): a #GList of #TpChannel,
|
|
||||||
* all having %TP_CHANNEL_FEATURE_CORE prepared if possible
|
|
||||||
* @dispatch_operation: (nullable): a #TpChannelDispatchOperation or %NULL;
|
|
||||||
* the dispatch_operation is not guaranteed to be prepared
|
|
||||||
* @requests: (element-type TelepathyGLib.ChannelRequest): a #GList of
|
|
||||||
* #TpChannelRequest, all having their object-path defined but are not
|
|
||||||
* guaranteed to be prepared.
|
|
||||||
* @context: a #TpObserveChannelsContext representing the context of this
|
|
||||||
* D-Bus call
|
|
||||||
*
|
|
||||||
* Signature of the implementation of the ObserveChannels method.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ShellTpClientApproveChannelsImpl:
|
|
||||||
* @client: a #ShellTpClient instance
|
|
||||||
* @account: a #TpAccount having %TP_ACCOUNT_FEATURE_CORE prepared if possible
|
|
||||||
* @connection: a #TpConnection having %TP_CONNECTION_FEATURE_CORE prepared
|
|
||||||
* if possible
|
|
||||||
* @channels: (element-type TelepathyGLib.Channel): a #GList of #TpChannel,
|
|
||||||
* all having %TP_CHANNEL_FEATURE_CORE prepared if possible
|
|
||||||
* @dispatch_operation: (nullable): a #TpChannelDispatchOperation or %NULL;
|
|
||||||
* the dispatch_operation is not guaranteed to be prepared
|
|
||||||
* @context: a #TpAddDispatchOperationContext representing the context of this
|
|
||||||
* D-Bus call
|
|
||||||
*
|
|
||||||
* Signature of the implementation of the AddDispatchOperation method.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ShellTpClientHandleChannelsImpl:
|
|
||||||
* @client: a #ShellTpClient instance
|
|
||||||
* @account: a #TpAccount having %TP_ACCOUNT_FEATURE_CORE prepared if possible
|
|
||||||
* @connection: a #TpConnection having %TP_CONNECTION_FEATURE_CORE prepared
|
|
||||||
* if possible
|
|
||||||
* @channels: (element-type TelepathyGLib.Channel): a #GList of #TpChannel,
|
|
||||||
* all having %TP_CHANNEL_FEATURE_CORE prepared if possible
|
|
||||||
* @requests_satisfied: (element-type TelepathyGLib.ChannelRequest): a #GList of
|
|
||||||
* #TpChannelRequest having their object-path defined but are not guaranteed
|
|
||||||
* to be prepared.
|
|
||||||
* @user_action_time: the time at which user action occurred, or one of the
|
|
||||||
* special values %TP_USER_ACTION_TIME_NOT_USER_ACTION or
|
|
||||||
* %TP_USER_ACTION_TIME_CURRENT_TIME
|
|
||||||
* (see #TpAccountChannelRequest:user-action-time for details)
|
|
||||||
* @context: a #TpHandleChannelsContext representing the context of this
|
|
||||||
* D-Bus call
|
|
||||||
*
|
|
||||||
* Signature of the implementation of the HandleChannels method.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void
|
|
||||||
shell_tp_client_init (ShellTpClient *self)
|
|
||||||
{
|
|
||||||
GHashTable *filter;
|
|
||||||
|
|
||||||
self->priv = shell_tp_client_get_instance_private (self);
|
|
||||||
|
|
||||||
/* We only care about single-user text-based chats */
|
|
||||||
filter = tp_asv_new (
|
|
||||||
TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
|
|
||||||
TP_IFACE_CHANNEL_TYPE_TEXT,
|
|
||||||
TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT,
|
|
||||||
TP_HANDLE_TYPE_CONTACT,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
/* Observer */
|
|
||||||
tp_base_client_set_observer_recover (TP_BASE_CLIENT (self), TRUE);
|
|
||||||
|
|
||||||
tp_base_client_add_observer_filter (TP_BASE_CLIENT (self), filter);
|
|
||||||
|
|
||||||
/* Approver */
|
|
||||||
tp_base_client_add_approver_filter (TP_BASE_CLIENT (self), filter);
|
|
||||||
|
|
||||||
/* Handler */
|
|
||||||
tp_base_client_add_handler_filter (TP_BASE_CLIENT (self), filter);
|
|
||||||
|
|
||||||
g_hash_table_unref (filter);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
observe_channels (TpBaseClient *client,
|
|
||||||
TpAccount *account,
|
|
||||||
TpConnection *connection,
|
|
||||||
GList *channels,
|
|
||||||
TpChannelDispatchOperation *dispatch_operation,
|
|
||||||
GList *requests,
|
|
||||||
TpObserveChannelsContext *context)
|
|
||||||
{
|
|
||||||
ShellTpClient *self = (ShellTpClient *) client;
|
|
||||||
|
|
||||||
g_assert (self->priv->observe_impl != NULL);
|
|
||||||
|
|
||||||
self->priv->observe_impl (self, account, connection, channels,
|
|
||||||
dispatch_operation, requests, context, self->priv->user_data_obs);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
add_dispatch_operation (TpBaseClient *client,
|
|
||||||
TpAccount *account,
|
|
||||||
TpConnection *connection,
|
|
||||||
GList *channels,
|
|
||||||
TpChannelDispatchOperation *dispatch_operation,
|
|
||||||
TpAddDispatchOperationContext *context)
|
|
||||||
{
|
|
||||||
ShellTpClient *self = (ShellTpClient *) client;
|
|
||||||
|
|
||||||
g_assert (self->priv->approve_channels_impl != NULL);
|
|
||||||
|
|
||||||
self->priv->approve_channels_impl (self, account, connection, channels,
|
|
||||||
dispatch_operation, context, self->priv->user_data_approve_channels);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
handle_channels (TpBaseClient *client,
|
|
||||||
TpAccount *account,
|
|
||||||
TpConnection *connection,
|
|
||||||
GList *channels,
|
|
||||||
GList *requests_satisfied,
|
|
||||||
gint64 user_action_time,
|
|
||||||
TpHandleChannelsContext *context)
|
|
||||||
{
|
|
||||||
ShellTpClient *self = (ShellTpClient *) client;
|
|
||||||
|
|
||||||
g_assert (self->priv->handle_channels_impl != NULL);
|
|
||||||
|
|
||||||
self->priv->handle_channels_impl (self, account, connection, channels,
|
|
||||||
requests_satisfied, user_action_time, context,
|
|
||||||
self->priv->user_data_handle_channels);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
shell_tp_client_dispose (GObject *object)
|
|
||||||
{
|
|
||||||
ShellTpClient *self = SHELL_TP_CLIENT (object);
|
|
||||||
void (*dispose) (GObject *) =
|
|
||||||
G_OBJECT_CLASS (shell_tp_client_parent_class)->dispose;
|
|
||||||
|
|
||||||
if (self->priv->destroy_obs != NULL)
|
|
||||||
{
|
|
||||||
self->priv->destroy_obs (self->priv->user_data_obs);
|
|
||||||
self->priv->destroy_obs = NULL;
|
|
||||||
self->priv->user_data_obs = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (self->priv->destroy_approve_channels != NULL)
|
|
||||||
{
|
|
||||||
self->priv->destroy_approve_channels (self->priv->user_data_approve_channels);
|
|
||||||
self->priv->destroy_approve_channels = NULL;
|
|
||||||
self->priv->user_data_approve_channels = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (self->priv->destroy_handle_channels != NULL)
|
|
||||||
{
|
|
||||||
self->priv->destroy_handle_channels (self->priv->user_data_handle_channels);
|
|
||||||
self->priv->destroy_handle_channels = NULL;
|
|
||||||
self->priv->user_data_handle_channels = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dispose != NULL)
|
|
||||||
dispose (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
shell_tp_client_class_init (ShellTpClientClass *cls)
|
|
||||||
{
|
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (cls);
|
|
||||||
TpBaseClientClass *base_clt_cls = TP_BASE_CLIENT_CLASS (cls);
|
|
||||||
|
|
||||||
object_class->dispose = shell_tp_client_dispose;
|
|
||||||
|
|
||||||
base_clt_cls->observe_channels = observe_channels;
|
|
||||||
base_clt_cls->add_dispatch_operation = add_dispatch_operation;
|
|
||||||
base_clt_cls->handle_channels = handle_channels;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
shell_tp_client_set_observe_channels_func (ShellTpClient *self,
|
|
||||||
ShellTpClientObserveChannelsImpl observe_impl,
|
|
||||||
gpointer user_data,
|
|
||||||
GDestroyNotify destroy)
|
|
||||||
{
|
|
||||||
g_assert (self->priv->observe_impl == NULL);
|
|
||||||
|
|
||||||
self->priv->observe_impl = observe_impl;
|
|
||||||
self->priv->user_data_obs = user_data;
|
|
||||||
self->priv->destroy_obs = destroy;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
shell_tp_client_set_approve_channels_func (ShellTpClient *self,
|
|
||||||
ShellTpClientApproveChannelsImpl approve_channels_impl,
|
|
||||||
gpointer user_data,
|
|
||||||
GDestroyNotify destroy)
|
|
||||||
{
|
|
||||||
g_assert (self->priv->approve_channels_impl == NULL);
|
|
||||||
|
|
||||||
self->priv->approve_channels_impl = approve_channels_impl;
|
|
||||||
self->priv->user_data_approve_channels = user_data;
|
|
||||||
self->priv->destroy_approve_channels = destroy;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
shell_tp_client_set_handle_channels_func (ShellTpClient *self,
|
|
||||||
ShellTpClientHandleChannelsImpl handle_channels_impl,
|
|
||||||
gpointer user_data,
|
|
||||||
GDestroyNotify destroy)
|
|
||||||
{
|
|
||||||
g_assert (self->priv->handle_channels_impl == NULL);
|
|
||||||
|
|
||||||
self->priv->handle_channels_impl = handle_channels_impl;
|
|
||||||
self->priv->user_data_handle_channels = user_data;
|
|
||||||
self->priv->destroy_handle_channels = destroy;
|
|
||||||
}
|
|
@ -1,90 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
#ifndef __SHELL_TP_CLIENT_H__
|
|
||||||
#define __SHELL_TP_CLIENT_H__
|
|
||||||
|
|
||||||
#include <dbus/dbus-glib.h>
|
|
||||||
#include <glib-object.h>
|
|
||||||
|
|
||||||
#include <telepathy-glib/telepathy-glib.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
typedef struct _ShellTpClient ShellTpClient;
|
|
||||||
typedef struct _ShellTpClientClass ShellTpClientClass;
|
|
||||||
typedef struct _ShellTpClientPrivate ShellTpClientPrivate;
|
|
||||||
|
|
||||||
struct _ShellTpClientClass {
|
|
||||||
/*<private>*/
|
|
||||||
TpBaseClientClass parent_class;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _ShellTpClient {
|
|
||||||
/*<private>*/
|
|
||||||
TpBaseClient parent;
|
|
||||||
ShellTpClientPrivate *priv;
|
|
||||||
};
|
|
||||||
|
|
||||||
GType shell_tp_client_get_type (void);
|
|
||||||
|
|
||||||
#define SHELL_TYPE_TP_CLIENT \
|
|
||||||
(shell_tp_client_get_type ())
|
|
||||||
#define SHELL_TP_CLIENT(obj) \
|
|
||||||
(G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_TP_CLIENT, \
|
|
||||||
ShellTpClient))
|
|
||||||
#define SHELL_TP_CLIENT_CLASS(klass) \
|
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_TP_CLIENT, \
|
|
||||||
ShellTpClientClass))
|
|
||||||
#define SHELL_IS_TP_CLIENT(obj) \
|
|
||||||
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_TP_CLIENT))
|
|
||||||
#define SHELL_IS_TP_CLIENT_CLASS(klass) \
|
|
||||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_TP_CLIENT))
|
|
||||||
#define SHELL_TP_CLIENT_GET_CLASS(obj) \
|
|
||||||
(G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_TP_CLIENT, \
|
|
||||||
ShellTpClientClass))
|
|
||||||
|
|
||||||
typedef void (*ShellTpClientObserveChannelsImpl) (ShellTpClient *client,
|
|
||||||
TpAccount *account,
|
|
||||||
TpConnection *connection,
|
|
||||||
GList *channels,
|
|
||||||
TpChannelDispatchOperation *dispatch_operation,
|
|
||||||
GList *requests,
|
|
||||||
TpObserveChannelsContext *context,
|
|
||||||
gpointer user_data);
|
|
||||||
|
|
||||||
void shell_tp_client_set_observe_channels_func (ShellTpClient *self,
|
|
||||||
ShellTpClientObserveChannelsImpl observe_impl,
|
|
||||||
gpointer user_data,
|
|
||||||
GDestroyNotify destroy);
|
|
||||||
|
|
||||||
typedef void (*ShellTpClientApproveChannelsImpl) (
|
|
||||||
ShellTpClient *client,
|
|
||||||
TpAccount *account,
|
|
||||||
TpConnection *connection,
|
|
||||||
GList *channels,
|
|
||||||
TpChannelDispatchOperation *dispatch_operation,
|
|
||||||
TpAddDispatchOperationContext *context,
|
|
||||||
gpointer user_data);
|
|
||||||
|
|
||||||
void shell_tp_client_set_approve_channels_func (ShellTpClient *self,
|
|
||||||
ShellTpClientApproveChannelsImpl approve_impl,
|
|
||||||
gpointer user_data,
|
|
||||||
GDestroyNotify destroy);
|
|
||||||
|
|
||||||
typedef void (*ShellTpClientHandleChannelsImpl) (
|
|
||||||
ShellTpClient *client,
|
|
||||||
TpAccount *account,
|
|
||||||
TpConnection *connection,
|
|
||||||
GList *channels,
|
|
||||||
GList *requests_satisfied,
|
|
||||||
gint64 user_action_time,
|
|
||||||
TpHandleChannelsContext *context,
|
|
||||||
gpointer user_data);
|
|
||||||
|
|
||||||
void shell_tp_client_set_handle_channels_func (ShellTpClient *self,
|
|
||||||
ShellTpClientHandleChannelsImpl handle_channels_impl,
|
|
||||||
gpointer user_data,
|
|
||||||
GDestroyNotify destroy);
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
#endif /* __SHELL_TP_CLIENT_H__ */
|
|
Loading…
Reference in New Issue
Block a user