packages (DEVEL): empathy/empathy.spec, empathy/git.patch (NEW) - added git...

wiget wiget at pld-linux.org
Tue Mar 15 16:56:42 CET 2011


Author: wiget                        Date: Tue Mar 15 15:56:42 2011 GMT
Module: packages                      Tag: DEVEL
---- Log message:
- added git.patch to fix building with folks 0.4.0

---- Files affected:
packages/empathy:
   empathy.spec (1.77.2.3 -> 1.77.2.4) , git.patch (NONE -> 1.1.2.1)  (NEW)

---- Diffs:

================================================================
Index: packages/empathy/empathy.spec
diff -u packages/empathy/empathy.spec:1.77.2.3 packages/empathy/empathy.spec:1.77.2.4
--- packages/empathy/empathy.spec:1.77.2.3	Wed Mar  9 14:35:02 2011
+++ packages/empathy/empathy.spec	Tue Mar 15 16:56:37 2011
@@ -3,12 +3,13 @@
 Summary(pl.UTF-8):	Bardzo łatwy w użyciu klient Telepathy dla GNOME
 Name:		empathy
 Version:	2.91.91
-Release:	1
+Release:	2
 License:	GPL v2
 Group:		Applications/Communications
 Source0:	http://ftp.gnome.org/pub/GNOME/sources/empathy/2.91/%{name}-%{version}.tar.bz2
 # Source0-md5:	c134716adfc30aec7acf87b39dbb4ef5
 Patch0:		configure.patch
+Patch1:		git.patch
 URL:		http://live.gnome.org/Empathy
 BuildRequires:	NetworkManager-devel >= 0.7.0
 BuildRequires:	autoconf >= 2.59
@@ -19,7 +20,7 @@
 BuildRequires:	enchant-devel >= 1.2.0
 BuildRequires:	evolution-data-server-devel >= 2.91.90
 BuildRequires:	farsight2-devel
-BuildRequires:	folks-devel >= 0.3.5
+BuildRequires:	folks-devel >= 0.4.0
 BuildRequires:	geoclue-devel >= 0.11
 BuildRequires:	gettext-devel
 BuildRequires:	glib2-devel >= 1:2.28.0
@@ -96,6 +97,7 @@
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %{__rm} po/en at shaw.po
 sed -i 's/^en at shaw//' po/LINGUAS
@@ -171,6 +173,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.77.2.4  2011/03/15 15:56:37  wiget
+- added git.patch to fix building with folks 0.4.0
+
 Revision 1.77.2.3  2011/03/09 13:35:02  wiget
 - up to 2.91.91
 

================================================================
Index: packages/empathy/git.patch
diff -u /dev/null packages/empathy/git.patch:1.1.2.1
--- /dev/null	Tue Mar 15 16:56:42 2011
+++ packages/empathy/git.patch	Tue Mar 15 16:56:37 2011
@@ -0,0 +1,22404 @@
+diff --git a/configure.ac b/configure.ac
+index 7dc0b11..9011061 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1,5 +1,5 @@
+ dnl If not 1, append datestamp to the version number
+-m4_define(empathy_released, 1)
++m4_define(empathy_released, 0)
+ 
+ m4_define([empathy_major_version], [2])
+ m4_define([empathy_minor_version], [91])
+@@ -31,7 +31,7 @@ AC_COPYRIGHT([
+ # Minimal version required
+ 
+ # Hardp deps
+-FOLKS_REQUIRED=0.3.5
++FOLKS_REQUIRED=0.4.0
+ GLIB_REQUIRED=2.27.2
+ GNUTLS_REQUIRED=2.8.5
+ GTK_REQUIRED=3.0.2
+diff --git a/data/Empathy.Auth.client b/data/Empathy.Auth.client
+index 6e19153..3aef27d 100644
+--- a/data/Empathy.Auth.client
++++ b/data/Empathy.Auth.client
+@@ -1,6 +1,9 @@
+ [org.freedesktop.Telepathy.Client]
+ Interfaces=org.freedesktop.Telepathy.Client.Handler;org.freedesktop.Telepathy.Client.Observer
+ 
++[org.freedesktop.Telepathy.Client.Observer]
++DelayApprovers=true
++
+ [org.freedesktop.Telepathy.Client.Handler.HandlerChannelFilter 0]
+ org.freedesktop.Telepathy.Channel.ChannelType s=org.freedesktop.Telepathy.Channel.Type.ServerTLSConnection
+ org.freedesktop.Telepathy.Channel.TargetHandleType u=0
+diff --git a/extensions/Connection_Interface_Contact_Blocking.xml b/extensions/Connection_Interface_Contact_Blocking.xml
+new file mode 100644
+index 0000000..543d43a
+--- /dev/null
++++ b/extensions/Connection_Interface_Contact_Blocking.xml
+@@ -0,0 +1,172 @@
++<?xml version="1.0" ?>
++<node name="/Connection_Interface_Contact_Blocking" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
++  <tp:copyright>Copyright © 2009-2010 Collabora Ltd.</tp:copyright>
++  <tp:copyright>Copyright © 2009 Nokia Corporation</tp:copyright>
++  <tp:license xmlns="http://www.w3.org/1999/xhtml">
++    <p>This library is free software; you can redistribute it and/or
++      modify it under the terms of the GNU Lesser General Public
++      License as published by the Free Software Foundation; either
++      version 2.1 of the License, or (at your option) any later version.</p>
++
++    <p>This library is distributed in the hope that it will be useful,
++      but WITHOUT ANY WARRANTY; without even the implied warranty of
++      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++      Lesser General Public License for more details.</p>
++
++    <p>You should have received a copy of the GNU Lesser General Public
++      License along with this library; if not, write to the Free Software
++      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
++      USA.</p>
++  </tp:license>
++  <interface name="org.freedesktop.Telepathy.Connection.Interface.ContactBlocking.DRAFT"
++    tp:causes-havoc="experimental">
++    <tp:requires interface="org.freedesktop.Telepathy.Connection"/>
++
++    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
++      <p>An interface for connections where contacts can be blocked from
++        communicating with this user and receiving this user's presence.</p>
++
++      <p>When this interface becomes stable, it will replace the <tp:dbus-ref
++          namespace="org.freedesktop.Telepathy.Channel.Type"
++          >ContactList</tp:dbus-ref> channel with TargetHandleType
++        Handle_Type_List and TargetID 'deny'.</p>
++    </tp:docstring>
++
++    <method name="BlockContacts" tp:name-for-bindings="Block_Contacts">
++      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
++        <p>Direct the server to block some contacts. The precise effect is
++          protocol-dependent, but SHOULD include ignoring all current and
++          subsequent communications from the given contacts, avoiding sending
++          presence to them in future, and if they were already receiving the
++          local user's presence, behaving as if the local user went
++          offline.</p>
++
++        <p><em>FIXME: do we need to allow this on protocols where it won't
++            persist, or where we can't edit the block lists?</em></p>
++      </tp:docstring>
++
++      <arg name="Contacts" type="au" direction="in" tp:type="Contact_Handle[]">
++        <tp:docstring>Some contacts to block.</tp:docstring>
++      </arg>
++
++      <arg name="Report_Abusive" type="b" direction="in">
++        <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
++          <p>In addition to blocking, report these contacts as abusive to the
++            server administrators.</p>
++
++          <p>Clients can determine whether this capability is available by
++            checking the
++            <tp:member-ref>ContactBlockingCapabilities</tp:member-ref>
++            property. If the capability is not present and this argument is
++            true, the error <tp:error-ref>NotCapable</tp:error-ref> SHOULD
++            be raised.</p>
++
++          <tp:rationale>
++            Some protocol libraries, in their conformance requirements,
++            require the ability to report blocked contacts as abusive.
++          </tp:rationale>
++        </tp:docstring>
++      </arg>
++
++      <tp:possible-errors>
++        <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
++        <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle"/>
++        <tp:error name="org.freedesktop.Telepathy.Error.NetworkError"/>
++        <tp:error name="org.freedesktop.Telepathy.Error.NotCapable"/>
++      </tp:possible-errors>
++    </method>
++
++    <method name="UnblockContacts" tp:name-for-bindings="Unblock_Contacts">
++      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
++        <p>Reverse the effects of a previous call to
++          <tp:member-ref>BlockContacts</tp:member-ref>.</p>
++      </tp:docstring>
++
++      <arg name="Contacts" type="au" direction="in" tp:type="Contact_Handle[]">
++        <tp:docstring>Some contacts to unblock.</tp:docstring>
++      </arg>
++
++      <tp:possible-errors>
++        <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
++        <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle"/>
++        <tp:error name="org.freedesktop.Telepathy.Error.NetworkError"/>
++      </tp:possible-errors>
++    </method>
++
++    <method name="RequestBlockedContacts"
++      tp:name-for-bindings="Request_Blocked_Contacts">
++      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
++        <p>List the contacts that are blocked.</p>
++
++        <p>Clients SHOULD allow a relatively long timeout for calls to this
++          method, since on some protocols contact blocking is part of the
++          contact list, which can take a significant time to retrieve.</p>
++      </tp:docstring>
++
++      <arg name="Contacts" type="au" direction="out" tp:type="Contact_Handle[]">
++        <tp:docstring>The list of blocked contacts.</tp:docstring>
++      </arg>
++
++      <tp:possible-errors>
++        <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
++        <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle"/>
++        <tp:error name="org.freedesktop.Telepathy.Error.NetworkError"/>
++      </tp:possible-errors>
++    </method>
++
++    <signal name="BlockedContactsChanged"
++      tp:name-for-bindings="Blocked_Contacts_Changed">
++      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
++        <p>Emitted when the list of blocked contacts is first retrieved
++          (before returning from any pending calls to
++          <tp:member-ref>RequestBlockedContacts</tp:member-ref>), and
++          whenever the list of blocked contacts subsequently changes.</p>
++      </tp:docstring>
++
++      <arg name="BlockedContacts" type="au" tp:type="Contact_Handle[]">
++        <tp:docstring>Contacts added to the result of
++          <tp:member-ref>RequestBlockedContacts</tp:member-ref>.</tp:docstring>
++      </arg>
++
++      <arg name="UnblockedContacts" type="au" tp:type="Contact_Handle[]">
++        <tp:docstring>Contacts removed from the result of
++          <tp:member-ref>RequestBlockedContacts</tp:member-ref>.</tp:docstring>
++      </arg>
++    </signal>
++
++    <tp:contact-attribute name="blocked" type="b">
++      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
++        <p>True if the contact would be in the result of
++          <tp:member-ref>RequestBlockedContacts</tp:member-ref>;
++          False or omitted if the contact is not blocked, or if it is
++          unknown whether the contact is blocked.</p>
++      </tp:docstring>
++    </tp:contact-attribute>
++
++    <property name="ContactBlockingCapabilities"
++              tp:name-for-bindings="Contact_Blocking_Capabilities"
++              tp:type="Contact_Blocking_Capabilities" type="u" access="read"
++              tp:immutable="yes">
++      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
++        <p>Additional capabilities for contact blocking (i.e. whether we can
++          report abusive contacts).</p>
++
++        <p><b>Note:</b> there is no capability for supporting blocking itself,
++          the presence of this interface indicates that contact blocking is
++          supported.</p>
++      </tp:docstring>
++    </property>
++
++    <tp:flags name="Contact_Blocking_Capabilities" type="u"
++              value-prefix="Contact_Blocking_Capability">
++      <tp:flag suffix="Can_Report_Abusive" value="1">
++        <tp:docstring>
++          This protocol is capable of reporting abusive contacts to the server
++          administrators.
++        </tp:docstring>
++      </tp:flag>
++    </tp:flags>
++
++  </interface>
++</node>
++<!-- vim:set sw=2 sts=2 et ft=xml: -->
+diff --git a/extensions/Makefile.am b/extensions/Makefile.am
+index d0f1048..b3147f3 100644
+--- a/extensions/Makefile.am
++++ b/extensions/Makefile.am
+@@ -18,6 +18,7 @@ EXTRA_DIST = \
+     Authentication_TLS_Certificate.xml \
+     Channel_Interface_Credentials_Storage.xml \
+     Channel_Type_Server_TLS_Connection.xml \
++    Connection_Interface_Contact_Blocking.xml \
+     $(NULL)
+ 
+ noinst_LTLIBRARIES = libemp-extensions.la
+diff --git a/extensions/misc.xml b/extensions/misc.xml
+index b1f6e88..9b153f1 100644
+--- a/extensions/misc.xml
++++ b/extensions/misc.xml
+@@ -10,5 +10,6 @@
+ <xi:include href="Authentication_TLS_Certificate.xml" />
+ <xi:include href="Channel_Interface_Credentials_Storage.xml" />
+ <xi:include href="Channel_Type_Server_TLS_Connection.xml" />
++<xi:include href="Connection_Interface_Contact_Blocking.xml" />
+ 
+ </tp:spec>
+diff --git a/libempathy-gtk/Makefile.am b/libempathy-gtk/Makefile.am
+index 47b416f..18f9a1c 100644
+--- a/libempathy-gtk/Makefile.am
++++ b/libempathy-gtk/Makefile.am
+@@ -39,6 +39,7 @@ libempathy_gtk_handwritten_source =            	\
+ 	empathy-chat-text-view.c		\
+ 	empathy-chat-view.c			\
+ 	empathy-chat.c				\
++	empathy-contact-blocking-dialog.c	\
+ 	empathy-contact-dialogs.c		\
+ 	empathy-contact-list-store.c		\
+ 	empathy-contact-list-view.c		\
+@@ -98,6 +99,7 @@ libempathy_gtk_headers =			\
+ 	empathy-chat-text-view.h		\
+ 	empathy-chat-view.h			\
+ 	empathy-chat.h				\
++	empathy-contact-blocking-dialog.h	\
+ 	empathy-contact-dialogs.h		\
+ 	empathy-contact-list-store.h		\
+ 	empathy-contact-list-view.h		\
+@@ -177,6 +179,7 @@ uidir = $(datadir)/empathy
+ ui_DATA = 					\
+ 	empathy-contact-widget.ui		\
+ 	empathy-contact-dialogs.ui		\
++	empathy-contact-blocking-dialog.ui	\
+ 	empathy-account-widget-generic.ui	\
+ 	empathy-account-widget-jabber.ui	\
+ 	empathy-account-widget-msn.ui		\
+diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c
+index 72e9060..b696963 100644
+--- a/libempathy-gtk/empathy-chat.c
++++ b/libempathy-gtk/empathy-chat.c
+@@ -3590,7 +3590,8 @@ empathy_chat_get_contact_menu (EmpathyChat *chat)
+ 		menu = empathy_contact_menu_new (priv->remote_contact,
+ 						 EMPATHY_CONTACT_FEATURE_CALL |
+ 						 EMPATHY_CONTACT_FEATURE_LOG |
+-						 EMPATHY_CONTACT_FEATURE_INFO);
++						 EMPATHY_CONTACT_FEATURE_INFO |
++						 EMPATHY_CONTACT_FEATURE_BLOCK);
+ 	}
+ 
+ 	return menu;
+diff --git a/libempathy-gtk/empathy-contact-blocking-dialog.c b/libempathy-gtk/empathy-contact-blocking-dialog.c
+new file mode 100644
+index 0000000..a46820c
+--- /dev/null
++++ b/libempathy-gtk/empathy-contact-blocking-dialog.c
+@@ -0,0 +1,791 @@
++/*
++ * empathy-contact-blocking-dialog.c
++ *
++ * EmpathyContactBlockingDialog
++ *
++ * Copyright (C) 2011 Collabora Ltd.
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
++ *
++ * Authors: Danielle Madeley <danielle.madeley at collabora.co.uk>
++ */
++
++#include <glib/gi18n.h>
++
++#include <libempathy/empathy-utils.h>
++
++#include <libempathy/empathy-contact-manager.h>
++#include <libempathy/empathy-tp-contact-list.h>
++
++#include <libempathy-gtk/empathy-account-chooser.h>
++#include <libempathy-gtk/empathy-ui-utils.h>
++
++#include "empathy-contact-blocking-dialog.h"
++
++#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
++#include <libempathy/empathy-debug.h>
++
++#define GET_PRIVATE(o) (EMPATHY_CONTACT_BLOCKING_DIALOG (o)->priv)
++#define DECLARE_CALLBACK(func) \
++  static void func (GObject *, GAsyncResult *, gpointer);
++
++G_DEFINE_TYPE (EmpathyContactBlockingDialog, empathy_contact_blocking_dialog,
++    GTK_TYPE_DIALOG);
++
++struct _EmpathyContactBlockingDialogPrivate
++{
++  /* a map of all active connections to their 'deny' channel */
++  GHashTable *channels; /* reffed TpConnection* -> reffed TpChannel* */
++
++  guint block_account_changed;
++
++  GtkListStore *blocked_contacts;
++  GtkListStore *completion_contacts;
++  GtkTreeSelection *selection;
++
++  GtkWidget *account_chooser;
++  GtkWidget *add_button;
++  GtkWidget *add_contact_entry;
++  GtkWidget *info_bar;
++  GtkWidget *info_bar_label;
++  GtkWidget *remove_button;
++};
++
++enum /* blocked-contacts columns */
++{
++  COL_IDENTIFIER,
++  COL_HANDLE,
++  N_COLUMNS
++};
++
++static const char *
++get_pretty_conn_name (TpConnection *conn)
++{
++  return tp_proxy_get_object_path (conn) + strlen (TP_CONN_OBJECT_PATH_BASE);
++}
++
++static void
++contact_blocking_dialog_filter_account_chooser (TpAccount *account,
++    EmpathyAccountChooserFilterResultCallback callback,
++    gpointer callback_data,
++    gpointer user_data)
++{
++  EmpathyContactBlockingDialog *self = user_data;
++  TpConnection *conn = tp_account_get_connection (account);
++  gboolean enable;
++
++  enable =
++    conn != NULL &&
++    g_hash_table_lookup (self->priv->channels, conn) != NULL;
++
++  callback (enable, callback_data);
++}
++
++static void contact_blocking_dialog_account_changed (GtkWidget *,
++    EmpathyContactBlockingDialog *);
++
++static void
++contact_blocking_dialog_refilter_account_chooser (
++    EmpathyContactBlockingDialog *self)
++{
++  EmpathyAccountChooser *chooser =
++    EMPATHY_ACCOUNT_CHOOSER (self->priv->account_chooser);
++  TpConnection *conn;
++  gboolean enabled;
++
++  DEBUG ("Refiltering account chooser");
++
++  /* set the filter to refilter the account chooser */
++  self->priv->block_account_changed++;
++  empathy_account_chooser_set_filter (chooser,
++      contact_blocking_dialog_filter_account_chooser, self);
++  self->priv->block_account_changed--;
++
++  conn = empathy_account_chooser_get_connection (chooser);
++  enabled = (empathy_account_chooser_get_account (chooser) != NULL &&
++             conn != NULL &&
++             g_hash_table_lookup (self->priv->channels, conn) != NULL);
++
++  if (!enabled)
++    DEBUG ("No account selected");
++
++  gtk_widget_set_sensitive (self->priv->add_button, enabled);
++  gtk_widget_set_sensitive (self->priv->add_contact_entry, enabled);
++
++  contact_blocking_dialog_account_changed (self->priv->account_chooser, self);
++}
++
++static void contact_blocking_dialog_inspected_handles (TpConnection *,
++    const char **, const GError *, gpointer, GObject *);
++
++static void
++contact_blocking_dialog_add_contacts_to_list (
++    EmpathyContactBlockingDialog *self,
++    TpConnection *conn,
++    GArray *handles)
++{
++  if (handles->len > 0)
++    tp_cli_connection_call_inspect_handles (conn, -1,
++        TP_HANDLE_TYPE_CONTACT, handles,
++        contact_blocking_dialog_inspected_handles,
++        g_boxed_copy (DBUS_TYPE_G_UINT_ARRAY, handles),
++        (GDestroyNotify) g_array_unref, G_OBJECT (self));
++}
++
++static void
++contact_blocking_dialog_inspected_handles (TpConnection *conn,
++    const char **identifiers,
++    const GError *in_error,
++    gpointer user_data,
++    GObject *self)
++{
++  EmpathyContactBlockingDialogPrivate *priv = GET_PRIVATE (self);
++  GArray *handles = user_data;
++  guint i;
++
++  if (in_error != NULL)
++    {
++      DEBUG ("Failed to inspect handles: %s", in_error->message);
++      return;
++    }
++
++  DEBUG ("Adding %u identifiers", handles->len);
++
++  for (i = 0; i < handles->len; i++)
++    {
++      const char *identifier = identifiers[i];
++      TpHandle handle = g_array_index (handles, TpHandle, i);
++
++      gtk_list_store_insert_with_values (priv->blocked_contacts, NULL, -1,
++          COL_IDENTIFIER, identifier,
++          COL_HANDLE, handle,
++          -1);
++    }
++}
++
++DECLARE_CALLBACK (contact_blocking_dialog_connection_prepared);
++
++static void
++contact_blocking_dialog_connection_status_changed (TpAccount *account,
++    guint old_status,
++    guint new_status,
++    guint reason,
++    const char *dbus_reason,
++    GHashTable *details,
++    EmpathyContactBlockingDialog *self)
++{
++  TpConnection *conn = tp_account_get_connection (account);
++
++  switch (new_status)
++    {
++      case TP_CONNECTION_STATUS_DISCONNECTED:
++        DEBUG ("Connection %s invalidated", get_pretty_conn_name (conn));
++
++        /* remove the channel from the hash table */
++        g_hash_table_remove (self->priv->channels, conn);
++        contact_blocking_dialog_refilter_account_chooser (self);
++        break;
++
++      case TP_CONNECTION_STATUS_CONNECTING:
++        break;
++
++      case TP_CONNECTION_STATUS_CONNECTED:
++        DEBUG ("Connection %s reconnected", get_pretty_conn_name (conn));
++
++        tp_proxy_prepare_async (conn, NULL,
++            contact_blocking_dialog_connection_prepared, self);
++    }
++}
++
++static void
++contact_blocking_dialog_deny_channel_members_changed (TpChannel *channel,
++    const char *message,
++    GArray *added,
++    GArray *removed,
++    GArray *local_pending,
++    GArray *remote_pending,
++    TpHandle actor,
++    guint reason,
++    EmpathyContactBlockingDialog *self)
++{
++  TpConnection *conn = tp_channel_borrow_connection (channel);
++  GtkTreeModel *model = GTK_TREE_MODEL (self->priv->blocked_contacts);
++  GtkTreeIter iter;
++  TpIntset *removed_set;
++  gboolean valid;
++
++  /* we only care about changes to the selected connection */
++  /* FIXME: can we compare proxy pointers directly? */
++  if (tp_strdiff (
++        tp_proxy_get_object_path (tp_channel_borrow_connection (channel)),
++        tp_proxy_get_object_path (empathy_account_chooser_get_connection (
++            EMPATHY_ACCOUNT_CHOOSER (self->priv->account_chooser)))))
++    return;
++
++  DEBUG ("deny list changed: %u added, %u removed", added->len, removed->len);
++
++  /* add contacts */
++  contact_blocking_dialog_add_contacts_to_list (self, conn, added);
++
++  /* remove contacts */
++  removed_set = tp_intset_from_array (removed);
++
++  valid = gtk_tree_model_get_iter_first (model, &iter);
++  while (valid)
++    {
++      TpHandle handle;
++
++      gtk_tree_model_get (model, &iter,
++          COL_HANDLE, &handle,
++          -1);
++
++      if (tp_intset_is_member (removed_set, handle))
++        valid = gtk_list_store_remove (self->priv->blocked_contacts, &iter);
++      else
++        valid = gtk_tree_model_iter_next (model, &iter);
++    }
++
++  tp_intset_destroy (removed_set);
++}
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/empathy/empathy.spec?r1=1.77.2.3&r2=1.77.2.4&f=u



More information about the pld-cvs-commit mailing list