]> git.0d.be Git - empathy.git/commitdiff
Fix a leaked ref.
authorXavier Claessens <xclaesse@gmail.com>
Sat, 30 Jun 2007 21:12:20 +0000 (21:12 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Sat, 30 Jun 2007 21:12:20 +0000 (21:12 +0000)
2007-06-30 Xavier Claessens  <xclaesse@gmail.com>

* libempathy-gtk/empathy-account-widget-generic.c: Fix a leaked ref.

* src/empathy.c: If we get a chatroom we have to create an
EmpathyTpChatroom object.

* src/Makefile.am: Fix build system, programs links to libempathy-gtk
and libempathy.

* configure.ac: libempathy does not depends on libgnome-vfs.

* libempathy-gtk/empathy-status-icon.c:
* libempathy-gtk/empathy-chat.c:
* libempathy/empathy-tp-chat.c:
* libempathy/empathy-tp-chat.h:
* libempathy/empathy-filter.c:
* libempathy/empathy-filter.h:
* libempathy/empathy-filter.xml:
* libempathy/Makefile.am: Filter incoming text channels and make
status icon flash when there we receive a new message. Dispatch the
channel only when we get a message and the user click on the icon.

svn path=/trunk/; revision=175

17 files changed:
ChangeLog
configure.ac
libempathy-gtk/empathy-account-widget-generic.c
libempathy-gtk/empathy-chat.c
libempathy-gtk/empathy-group-chat.c
libempathy-gtk/empathy-private-chat.c
libempathy-gtk/empathy-status-icon.c
libempathy/Makefile.am
libempathy/empathy-filter.c [new file with mode: 0644]
libempathy/empathy-filter.h [new file with mode: 0644]
libempathy/empathy-filter.xml [new file with mode: 0644]
libempathy/empathy-tp-chat.c
libempathy/empathy-tp-chat.h
po/ChangeLog
po/pl.po
src/Makefile.am
src/empathy.c

index a1721468970a73e3364365cdddf2c9d99e741aa3..2ca348e5750476cc32247292e161b196ebd585de 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2007-06-30 Xavier Claessens  <xclaesse@gmail.com>
+
+       * libempathy-gtk/empathy-account-widget-generic.c: Fix a leaked ref.
+
+       * src/empathy.c: If we get a chatroom we have to create an
+       EmpathyTpChatroom object.
+
+       * src/Makefile.am: Fix build system, programs links to libempathy-gtk
+       and libempathy.
+
+       * configure.ac: libempathy does not depends on libgnome-vfs.
+
+       * libempathy-gtk/empathy-status-icon.c:
+       * libempathy-gtk/empathy-chat.c:
+       * libempathy/empathy-tp-chat.c:
+       * libempathy/empathy-tp-chat.h:
+       * libempathy/empathy-filter.c:
+       * libempathy/empathy-filter.h:
+       * libempathy/empathy-filter.xml:
+       * libempathy/Makefile.am: Filter incoming text channels and make
+       status icon flash when there we receive a new message. Dispatch the
+       channel only when we get a message and the user click on the icon.
+
 2007-06-22 Xavier Claessens  <xclaesse@gmail.com>
 
        * libempathy-gtk/libempathy-gtk.pc.in:
index 22fce88dd5f1bcde8dbd8b142216337e1837fe43..2920aa2364a934ddb83e54c432590c9b1abadbbe 100644 (file)
@@ -56,7 +56,6 @@ PKG_CHECK_MODULES(LIBEMPATHY,
    gobject-2.0
    gconf-2.0 >= $GCONF_REQUIRED
    libxml-2.0
-   gnome-vfs-2.0
    libtelepathy >= $TELEPATHY_REQUIRED
    libmissioncontrol >= $MISSION_CONTROL_REQUIRED
 ])
index 4f9ea03b0a87a2a6d52267fe8e8c70d167144e3e..73b579a55f4c8a4e180df7286faa074290c273f7 100644 (file)
@@ -258,6 +258,8 @@ accounts_widget_generic_setup (EmpathyAccountWidgetGeneric *settings)
                         settings);
 
        g_slist_free (params);
+       g_object_unref (profile);
+       g_object_unref (protocol);
 }
 
 static void
index 0000e5d5ab9ae2e0144c80438c37a8ad9878fdf1..8f6ca3705d189aa00659df23f6a3f5aa5bb8943d 100644 (file)
@@ -392,7 +392,7 @@ chat_input_text_view_send (EmpathyChat *chat)
 }
 
 static void
-chat_message_received_cb (EmpathyTpChat *tp_chat,
+chat_message_received_cb (EmpathyTpChat  *tp_chat,
                          EmpathyMessage *message,
                          EmpathyChat    *chat)
 {
@@ -1288,10 +1288,11 @@ empathy_chat_load_geometry (EmpathyChat *chat,
 }
 
 void
-empathy_chat_set_tp_chat (EmpathyChat    *chat,
-                        EmpathyTpChat *tp_chat)
+empathy_chat_set_tp_chat (EmpathyChat   *chat,
+                         EmpathyTpChat *tp_chat)
 {
        EmpathyChatPriv *priv;
+       GList           *messages, *l;
 
        g_return_if_fail (EMPATHY_IS_CHAT (chat));
        g_return_if_fail (EMPATHY_IS_TP_CHAT (tp_chat));
@@ -1332,7 +1333,14 @@ empathy_chat_set_tp_chat (EmpathyChat    *chat,
                          G_CALLBACK (chat_destroy_cb),
                          chat);
 
-       empathy_tp_chat_request_pending (tp_chat);
+       /* Get pending messages */
+       empathy_tp_chat_set_acknowledge (tp_chat, TRUE);
+       messages = empathy_tp_chat_get_pendings (tp_chat);
+       for (l = messages; l; l = l->next) {
+               chat_message_received_cb (tp_chat, l->data, chat);
+               g_object_unref (l->data);
+       }
+       g_list_free (messages);
 
        if (!priv->sensitive) {
                gtk_widget_set_sensitive (chat->input_text_view, TRUE);
index 623547d9b362e45df890263db851d86e770b21dd..6861dd5cd1c6cd2650aa46bc5ebffb00e2dd241b 100644 (file)
@@ -75,39 +75,36 @@ struct _EmpathyGroupChatPriv {
 };
 
 static void          group_chat_finalize                 (GObject           *object);
-static void          group_chat_create_ui                (EmpathyGroupChat   *chat);
+static void          group_chat_create_ui                (EmpathyGroupChat  *chat);
 static void          group_chat_widget_destroy_cb        (GtkWidget         *widget,
-                                                         EmpathyGroupChat   *chat);
+                                                         EmpathyGroupChat  *chat);
 static void          group_chat_contact_added_cb         (EmpathyTpChatroom *tp_chat,
-                                                         EmpathyContact     *contact,
-                                                         EmpathyGroupChat   *chat);
+                                                         EmpathyContact    *contact,
+                                                         EmpathyGroupChat  *chat);
 static void          group_chat_contact_removed_cb       (EmpathyTpChatroom *tp_chat,
-                                                         EmpathyContact     *contact,
-                                                         EmpathyGroupChat   *chat);
-/*static void          group_chat_topic_changed_cb         (EmpathyTpChatroom *tp_chat,
-                                                         const gchar       *new_topic,
-                                                         EmpathyGroupChat   *chat);*/
+                                                         EmpathyContact    *contact,
+                                                         EmpathyGroupChat  *chat);
 static void          group_chat_topic_entry_activate_cb  (GtkWidget         *entry,
                                                          GtkDialog         *dialog);
 static void          group_chat_topic_response_cb        (GtkWidget         *dialog,
                                                          gint               response,                        
-                                                         EmpathyGroupChat   *chat);
-static const gchar * group_chat_get_name                 (EmpathyChat        *chat);
-static gchar *       group_chat_get_tooltip              (EmpathyChat        *chat);
-static const gchar * group_chat_get_status_icon_name     (EmpathyChat        *chat);
-static GtkWidget *   group_chat_get_widget               (EmpathyChat        *chat);
-static gboolean      group_chat_is_group_chat            (EmpathyChat        *chat);
-static void          group_chat_set_tp_chat              (EmpathyChat        *chat,
+                                                         EmpathyGroupChat  *chat);
+static const gchar * group_chat_get_name                 (EmpathyChat       *chat);
+static gchar *       group_chat_get_tooltip              (EmpathyChat       *chat);
+static const gchar * group_chat_get_status_icon_name     (EmpathyChat       *chat);
+static GtkWidget *   group_chat_get_widget               (EmpathyChat       *chat);
+static gboolean      group_chat_is_group_chat            (EmpathyChat       *chat);
+static void          group_chat_set_tp_chat              (EmpathyChat       *chat,
                                                          EmpathyTpChat     *tp_chat);
 static void          group_chat_subject_notify_cb        (EmpathyTpChat     *tp_chat,
                                                          GParamSpec        *param,
-                                                         EmpathyGroupChat   *chat);
+                                                         EmpathyGroupChat  *chat);
 static void          group_chat_name_notify_cb           (EmpathyTpChat     *tp_chat,
                                                          GParamSpec        *param,
-                                                         EmpathyGroupChat   *chat);
+                                                         EmpathyGroupChat  *chat);
 /*static gboolean      group_chat_key_press_event          (GtkWidget         *widget,
                                                          GdkEventKey       *event,
-                                                         EmpathyGroupChat   *chat);*/
+                                                         EmpathyGroupChat  *chat);*/
 static gint          group_chat_contacts_completion_func (const gchar       *s1,
                                                          const gchar       *s2,
                                                          gsize              n);
@@ -173,7 +170,7 @@ group_chat_finalize (GObject *object)
 
 EmpathyGroupChat *
 empathy_group_chat_new (McAccount *account,
-                      TpChan    *tp_chan)
+                       TpChan    *tp_chan)
 {
        EmpathyGroupChat     *chat;
        EmpathyGroupChatPriv *priv;
index ddc0633e4099aa19b1518d699bcc7c1cf40e82db..81f93c02147548f36dc08d5c568cc8239211e598 100644 (file)
@@ -37,7 +37,6 @@
 #include <libempathy/empathy-tp-chat.h>
 #include <libempathy/empathy-tp-contact-list.h>
 #include <libempathy/empathy-contact-manager.h>
-//#include <libempathy/empathy-log.h>
 
 #include "empathy-private-chat.h"
 #include "empathy-chat-view.h"
 
 struct _EmpathyPrivateChatPriv {   
        EmpathyContact *contact;
-       gchar         *name;
-
-       gboolean       is_online;
-
-       GtkWidget     *widget;
-       GtkWidget     *text_view_sw;
+       gchar          *name;
+       gboolean        is_online;
+       GtkWidget      *widget;
+       GtkWidget      *text_view_sw;
 };
 
 static void           empathy_private_chat_class_init            (EmpathyPrivateChatClass *klass);
@@ -328,13 +325,13 @@ private_chat_setup (EmpathyPrivateChat *chat,
 
 EmpathyPrivateChat *
 empathy_private_chat_new (McAccount *account,
-                        TpChan    *tp_chan)
+                         TpChan    *tp_chan)
 {
-       EmpathyPrivateChat     *chat;
+       EmpathyPrivateChat    *chat;
        EmpathyTpChat         *tp_chat;
        EmpathyContactManager *manager;
        EmpathyTpContactList  *list;
-       EmpathyContact         *contact;
+       EmpathyContact        *contact;
 
        g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
        g_return_val_if_fail (TELEPATHY_IS_CHAN (tp_chan), NULL);
@@ -359,7 +356,7 @@ EmpathyPrivateChat *
 empathy_private_chat_new_with_contact (EmpathyContact *contact)
 {
        EmpathyPrivateChat *chat;
-       EmpathyTpChat     *tp_chat;
+       EmpathyTpChat      *tp_chat;
 
        g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL);
 
index b9c1af7904ab14a2049cb1082fd8bba1db4218be..6ec17ecc0eb63926aa981b2c078fd80c22691560 100644 (file)
 #include <libempathy/empathy-contact-list.h>
 #include <libempathy/empathy-contact-manager.h>
 #include <libempathy/empathy-contact.h>
+#include <libempathy/empathy-tp-chat.h>
 #include <libempathy/empathy-debug.h>
 #include <libempathy/empathy-utils.h>
 #include <libempathy/empathy-conf.h>
 #include <libempathy/empathy-idle.h>
+#include <libempathy/empathy-filter.h>
 
 #include "empathy-status-icon.h"
 #include "empathy-contact-dialogs.h"
@@ -44,6 +46,7 @@
 #include "empathy-preferences.h"
 #include "empathy-ui-utils.h"
 #include "empathy-accounts-dialog.h"
+#include "empathy-images.h"
 
 
 #define GET_PRIV(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
@@ -59,9 +62,11 @@ typedef struct _StatusIconEvent StatusIconEvent;
 struct _EmpathyStatusIconPriv {
        GtkStatusIcon         *icon;
        EmpathyContactManager *manager;
+       EmpathyFilter         *text_filter;
        EmpathyIdle           *idle;
+       MissionControl        *mc;
        GList                 *events;
-       GList                 *current_event;
+       gboolean               showing_event_icon;
        StatusIconEvent       *flash_state_event;
        guint                  blink_timeout;
 
@@ -85,6 +90,10 @@ struct _StatusIconEvent {
 static void       empathy_status_icon_class_init  (EmpathyStatusIconClass *klass);
 static void       empathy_status_icon_init        (EmpathyStatusIcon      *icon);
 static void       status_icon_finalize            (GObject                *object);
+static void       status_icon_filter_new_channel  (EmpathyFilter          *filter,
+                                                  TpConn                 *tp_conn,
+                                                  TpChan                 *tp_chan,
+                                                  EmpathyStatusIcon      *icon);
 static void       status_icon_idle_notify_cb      (EmpathyStatusIcon      *icon);
 static void       status_icon_update_tooltip      (EmpathyStatusIcon      *icon);
 static void       status_icon_set_from_state      (EmpathyStatusIcon      *icon);
@@ -111,6 +120,7 @@ static void       status_icon_local_pending_cb    (EmpathyContactManager  *manag
                                                   EmpathyStatusIcon      *icon);
 static void       status_icon_event_subscribe_cb  (StatusIconEvent        *event);
 static void       status_icon_event_flash_state_cb (StatusIconEvent       *event);
+static void       status_icon_event_msg_cb        (StatusIconEvent        *event);
 static StatusIconEvent * status_icon_event_new    (EmpathyStatusIcon      *icon,
                                                   const gchar            *icon_name,
                                                   const gchar            *message);
@@ -142,10 +152,19 @@ empathy_status_icon_init (EmpathyStatusIcon *icon)
        priv->icon = gtk_status_icon_new ();
        priv->idle = empathy_idle_new ();
        priv->manager = empathy_contact_manager_new ();
+       priv->mc = empathy_mission_control_new ();
+       priv->text_filter = empathy_filter_new ("org.gnome.Empathy.Chat",
+                                               "/org/freedesktop/Telepathy/Filter",
+                                               TP_IFACE_CHANNEL_TYPE_TEXT,
+                                               MC_FILTER_PRIORITY_DIALOG,
+                                               MC_FILTER_FLAG_INCOMING);
 
        status_icon_create_menu (icon);
        status_icon_idle_notify_cb (icon);
 
+       g_signal_connect (priv->text_filter, "new-channel",
+                         G_CALLBACK (status_icon_filter_new_channel),
+                         icon);
        g_signal_connect_swapped (priv->idle, "notify",
                                  G_CALLBACK (status_icon_idle_notify_cb),
                                  icon);
@@ -190,6 +209,7 @@ status_icon_finalize (GObject *object)
        g_object_unref (priv->window);
        g_object_unref (priv->idle);
        g_object_unref (priv->manager);
+       g_object_unref (priv->mc);
 }
 
 EmpathyStatusIcon *
@@ -223,6 +243,51 @@ empathy_status_icon_new (GtkWindow *window)
        return icon;
 }
 
+static void
+status_icon_filter_new_channel (EmpathyFilter     *filter,
+                               TpConn            *tp_conn,
+                               TpChan            *tp_chan,
+                               EmpathyStatusIcon *icon)
+{
+       EmpathyStatusIconPriv *priv;
+       McAccount             *account;
+       EmpathyTpChat         *tp_chat;
+       EmpathyContact        *sender;
+       GList                 *messages;
+       gchar                 *msg;
+       StatusIconEvent       *event;
+
+       priv = GET_PRIV (icon);
+
+       empathy_debug (DEBUG_DOMAIN, "New text channel to be filtered");
+
+       account = mission_control_get_account_for_connection (priv->mc, tp_conn, NULL);
+       tp_chat = empathy_tp_chat_new (account, tp_chan);
+       g_object_unref (account);
+
+       messages = empathy_tp_chat_get_pendings (tp_chat);
+       if (!messages) {
+               empathy_debug (DEBUG_DOMAIN, "There is no message pending, "
+                                            "don't dispatch the channel");
+               empathy_filter_process (filter, tp_chan, FALSE);
+               g_object_unref (tp_chat);
+               return;
+       }
+
+       sender = empathy_message_get_sender (messages->data);
+       msg = g_strdup_printf (_("New message from %s:\n%s"),
+                              empathy_contact_get_name (sender),
+                              empathy_message_get_body (messages->data));
+
+       g_object_set_data (G_OBJECT (tp_chat), "filter", filter);
+       event = status_icon_event_new (icon, EMPATHY_IMAGE_NEW_MESSAGE, msg);
+       event->func = status_icon_event_msg_cb;
+       event->user_data = tp_chat;
+
+       g_list_foreach (messages, (GFunc) g_object_unref, NULL);
+       g_list_free (messages);
+}
+
 static void
 status_icon_idle_notify_cb (EmpathyStatusIcon *icon)
 {
@@ -241,7 +306,6 @@ status_icon_idle_notify_cb (EmpathyStatusIcon *icon)
                        priv->flash_state_event = status_icon_event_new (icon, icon_name, NULL);
                        priv->flash_state_event->user_data = icon;
                        priv->flash_state_event->func = status_icon_event_flash_state_cb;
-
                } else {
                        /* We are still flashing but with another state */
                        g_free (priv->flash_state_event->icon_name);
@@ -254,7 +318,7 @@ status_icon_idle_notify_cb (EmpathyStatusIcon *icon)
                priv->flash_state_event = NULL;
        }
 
-       if (!priv->current_event) {
+       if (!priv->showing_event_icon) {
                status_icon_set_from_state (icon);
        }
 
@@ -498,6 +562,21 @@ status_icon_event_flash_state_cb (StatusIconEvent *event)
        empathy_idle_set_flash_state (priv->idle, MC_PRESENCE_UNSET);
 }
 
+static void
+status_icon_event_msg_cb (StatusIconEvent *event)
+{
+       EmpathyFilter *filter;
+       EmpathyTpChat *tp_chat;
+
+       empathy_debug (DEBUG_DOMAIN, "Dispatching text channel");
+
+       tp_chat = event->user_data;
+       filter = g_object_get_data (G_OBJECT (tp_chat), "filter");
+       empathy_filter_process (filter,
+                               empathy_tp_chat_get_channel (tp_chat),
+                               TRUE);
+       g_object_unref (tp_chat);
+}
 
 static StatusIconEvent *
 status_icon_event_new (EmpathyStatusIcon *icon,
@@ -515,7 +594,7 @@ status_icon_event_new (EmpathyStatusIcon *icon,
 
        priv->events = g_list_append (priv->events, event);
        if (!priv->blink_timeout) {
-               priv->current_event = NULL;
+               priv->showing_event_icon = FALSE;
                priv->blink_timeout = g_timeout_add (BLINK_TIMEOUT,
                                                     (GSourceFunc) status_icon_event_timeout_cb,
                                                     icon);
@@ -538,7 +617,7 @@ status_icon_event_remove (EmpathyStatusIcon *icon,
        }
        priv->events = g_list_remove (priv->events, event);
        status_icon_event_free (event);
-       priv->current_event = NULL;
+       priv->showing_event_icon = FALSE;
        status_icon_update_tooltip (icon);
        status_icon_set_from_state (icon);
 
@@ -559,18 +638,14 @@ status_icon_event_timeout_cb (EmpathyStatusIcon *icon)
 
        priv = GET_PRIV (icon);
 
-       if (priv->current_event) {
-               priv->current_event = priv->current_event->next;
-       } else {
-               priv->current_event = priv->events;
-       }
+       priv->showing_event_icon = !priv->showing_event_icon;
 
-       if (!priv->current_event) {
+       if (!priv->showing_event_icon) {
                status_icon_set_from_state (icon);
        } else {
                StatusIconEvent *event;
 
-               event = priv->current_event->data;
+               event = priv->events->data;
                gtk_status_icon_set_from_icon_name (priv->icon, event->icon_name);
        }
        status_icon_update_tooltip (icon);
index c30f62fa5f5f25ff4b21a0c346c20b3636536029..3f73265cf2377686a189a61fd5f804957f03693f 100644 (file)
@@ -8,6 +8,7 @@ AM_CPPFLAGS =                                           \
 BUILT_SOURCES =                                        \
        empathy-marshal.h                               \
        empathy-marshal.c                               \
+       empathy-filter-glue.h                           \
        empathy-chandler-glue.h
 
 lib_LTLIBRARIES = libempathy.la
@@ -30,6 +31,7 @@ libempathy_la_SOURCES =                                       \
        empathy-tp-chat.c                               \
        empathy-tp-chatroom.c                           \
        empathy-chandler.c                              \
+       empathy-filter.c                                \
        empathy-idle.c                                  \
        empathy-log-manager.c                           \
        empathy-marshal-main.c
@@ -56,6 +58,7 @@ libempathy_HEADERS =                          \
        empathy-tp-chat.h                       \
        empathy-tp-chatroom.h                   \
        empathy-chandler.h                      \
+       empathy-filter.h                        \
        empathy-idle.h                          \
        empathy-log-manager.h
 
@@ -69,6 +72,8 @@ libempathy_HEADERS =                          \
 
 empathy-chandler-glue.h: empathy-chandler.xml
        $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) --prefix=empathy_chandler --mode=glib-server --output=$@ $<
+empathy-filter-glue.h: empathy-filter.xml
+       $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) --prefix=empathy_filter --mode=glib-server --output=$@ $<
 
 dtddir = $(datadir)/empathy
 dtd_DATA =                                     \
@@ -84,6 +89,7 @@ pkgconfig_DATA = libempathy.pc
 EXTRA_DIST =                   \
        empathy-marshal.list    \
        empathy-chandler.xml    \
+       empathy-filter.xml      \
        $(stylesheet_DATA)      \
        $(dtd_DATA)
 
diff --git a/libempathy/empathy-filter.c b/libempathy/empathy-filter.c
new file mode 100644 (file)
index 0000000..c811991
--- /dev/null
@@ -0,0 +1,232 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2007 Collabora Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program 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
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ * 
+ * Authors: Xavier Claessens <xclaesse@gmail.com>
+ */
+
+#include <config.h>
+
+#include <dbus/dbus-glib.h>
+
+#include <libtelepathy/tp-helpers.h>
+#include <libtelepathy/tp-conn.h>
+
+#include "empathy-filter.h"
+#include "empathy-debug.h"
+#include "empathy-utils.h"
+#include "empathy-marshal.h"
+
+#define GET_PRIV(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
+                      EMPATHY_TYPE_FILTER, EmpathyFilterPriv))
+
+#define DEBUG_DOMAIN "EmpathyFilter"
+
+struct _EmpathyFilterPriv {
+       GHashTable *table;
+};
+
+static void     empathy_filter_class_init     (EmpathyFilterClass *klass);
+static void     empathy_filter_init           (EmpathyFilter      *filter);
+static void     filter_finalize               (GObject            *object);
+static gboolean empathy_filter_filter_channel (EmpathyFilter      *filter,
+                                              const gchar        *bus_name,
+                                              const gchar        *connection,
+                                              const gchar        *channel_type,
+                                              const gchar        *channel,
+                                              guint               handle_type,
+                                              guint               handle,
+                                              guint               id,
+                                              GError            **error);
+
+#include "empathy-filter-glue.h"
+
+enum {
+       PROCESS,
+       NEW_CHANNEL,
+       LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL];
+
+G_DEFINE_TYPE (EmpathyFilter, empathy_filter, G_TYPE_OBJECT)
+
+static void
+empathy_filter_class_init (EmpathyFilterClass *klass)
+{
+       GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+       object_class->finalize = filter_finalize;
+
+       signals[NEW_CHANNEL] =
+               g_signal_new ("new-channel",
+                             G_OBJECT_CLASS_TYPE (klass),
+                             G_SIGNAL_RUN_LAST,
+                             0,
+                             NULL, NULL,
+                             empathy_marshal_VOID__OBJECT_OBJECT,
+                             G_TYPE_NONE,
+                             2, TELEPATHY_CONN_TYPE, TELEPATHY_CHAN_TYPE);
+
+       signals[PROCESS] =
+               g_signal_new ("process",
+                             G_OBJECT_CLASS_TYPE (klass),
+                             G_SIGNAL_RUN_LAST,
+                             0,
+                             NULL, NULL,
+                             empathy_marshal_VOID__UINT_BOOLEAN,
+                             G_TYPE_NONE,
+                             2, G_TYPE_UINT, G_TYPE_BOOLEAN);
+
+       g_type_class_add_private (object_class, sizeof (EmpathyFilterPriv));
+}
+
+static void
+empathy_filter_init (EmpathyFilter *filter)
+{
+       EmpathyFilterPriv *priv;
+
+       priv = GET_PRIV (filter);
+
+       priv->table = g_hash_table_new_full (g_direct_hash, g_direct_equal,
+                                            (GDestroyNotify) g_object_unref,
+                                            NULL);
+}
+
+static void
+filter_finalize (GObject *object)
+{
+       EmpathyFilterPriv *priv;
+
+       priv = GET_PRIV (object);
+
+       g_hash_table_destroy (priv->table);
+}
+
+EmpathyFilter *
+empathy_filter_new (const gchar *bus_name,
+                   const gchar *object_path,
+                   const gchar *channel_type,
+                   guint        priority,
+                   guint        flags)
+{
+       static gboolean  initialized = FALSE;
+       MissionControl  *mc;
+       EmpathyFilter   *filter;
+       DBusGProxy      *proxy;
+       guint            result;
+       GError          *error = NULL;
+
+       if (!initialized) {
+               dbus_g_object_type_install_info (EMPATHY_TYPE_FILTER,
+                                                &dbus_glib_empathy_filter_object_info);
+               initialized = TRUE;
+       }
+
+       proxy = dbus_g_proxy_new_for_name (tp_get_bus (),
+                                          DBUS_SERVICE_DBUS,
+                                          DBUS_PATH_DBUS,
+                                          DBUS_INTERFACE_DBUS);
+
+       if (!dbus_g_proxy_call (proxy, "RequestName", &error,
+                               G_TYPE_STRING, bus_name,
+                               G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE,
+                               G_TYPE_INVALID,
+                               G_TYPE_UINT, &result,
+                               G_TYPE_INVALID)) {
+               empathy_debug (DEBUG_DOMAIN,
+                              "Failed to request name: %s",
+                              error ? error->message : "No error given");
+               g_clear_error (&error);
+
+               return NULL;
+       }
+       g_object_unref (proxy);
+
+       filter = g_object_new (EMPATHY_TYPE_FILTER, NULL);
+       dbus_g_connection_register_g_object (tp_get_bus (),
+                                            object_path,
+                                            G_OBJECT (filter));
+
+       mc = empathy_mission_control_new ();
+       mission_control_register_filter (mc,
+                                        bus_name,
+                                        object_path,
+                                        channel_type,
+                                        priority,
+                                        flags,
+                                        NULL);
+       g_object_unref (mc);
+
+       return filter;
+}
+
+void
+empathy_filter_process (EmpathyFilter *filter,
+                       TpChan        *tp_chan,
+                       gboolean       process)
+{
+       EmpathyFilterPriv *priv;
+       guint              id;
+
+       priv = GET_PRIV (filter);
+
+       id = GPOINTER_TO_UINT (g_hash_table_lookup (priv->table, tp_chan));
+       if (id != 0) {
+               g_signal_emit (filter, signals[PROCESS], 0, id, process);
+               g_hash_table_remove (priv->table, tp_chan);
+       }
+}
+
+static gboolean
+empathy_filter_filter_channel (EmpathyFilter  *filter,
+                              const gchar    *bus_name,
+                              const gchar    *connection,
+                              const gchar    *channel_type,
+                              const gchar    *channel,
+                              guint           handle_type,
+                              guint           handle,
+                              guint           id,
+                              GError        **error)
+{
+       EmpathyFilterPriv *priv;
+       TpChan            *tp_chan;
+       TpConn            *tp_conn;
+
+       priv = GET_PRIV (filter);
+
+       tp_conn = tp_conn_new (tp_get_bus (),
+                              bus_name,
+                              connection);
+
+       tp_chan = tp_chan_new (tp_get_bus(),
+                              bus_name,
+                              channel,
+                              channel_type,
+                              handle_type,
+                              handle);
+
+       g_hash_table_insert (priv->table, tp_chan, GUINT_TO_POINTER (id));
+
+       g_signal_emit (filter, signals[NEW_CHANNEL], 0, tp_conn, tp_chan);
+
+       g_object_unref (tp_conn);
+
+       return TRUE;
+}
+
diff --git a/libempathy/empathy-filter.h b/libempathy/empathy-filter.h
new file mode 100644 (file)
index 0000000..53c8593
--- /dev/null
@@ -0,0 +1,63 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2007 Collabora Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program 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
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Authors: Xavier Claessens <xclaesse@gmail.com>
+ */
+
+#ifndef __EMPATHY_FILTER_H__
+#define __EMPATHY_FILTER_H__
+
+#include <glib.h>
+
+#include <libtelepathy/tp-chan.h>
+
+G_BEGIN_DECLS
+
+#define EMPATHY_TYPE_FILTER         (empathy_filter_get_type ())
+#define EMPATHY_FILTER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), EMPATHY_TYPE_FILTER, EmpathyFilter))
+#define EMPATHY_FILTER_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), EMPATHY_TYPE_FILTER, EmpathyFilterClass))
+#define EMPATHY_IS_FILTER(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), EMPATHY_TYPE_FILTER))
+#define EMPATHY_IS_FILTER_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), EMPATHY_TYPE_FILTER))
+#define EMPATHY_FILTER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_FILTER, EmpathyFilterClass))
+
+typedef struct _EmpathyFilter      EmpathyFilter;
+typedef struct _EmpathyFilterClass EmpathyFilterClass;
+typedef struct _EmpathyFilterPriv  EmpathyFilterPriv;
+
+struct _EmpathyFilter {
+       GObject parent;
+};
+
+struct _EmpathyFilterClass {
+       GObjectClass parent_class;
+};
+
+GType          empathy_filter_get_type (void) G_GNUC_CONST;
+EmpathyFilter *empathy_filter_new      (const gchar   *bus_name,
+                                       const gchar   *object_path,
+                                       const gchar   *channel_type,
+                                       guint          priority,
+                                       guint          flags);
+void           empathy_filter_process  (EmpathyFilter *filter,
+                                       TpChan        *tp_chan,
+                                       gboolean       process);
+
+G_END_DECLS
+
+#endif /* __EMPATHY_FILTER_H__ */
diff --git a/libempathy/empathy-filter.xml b/libempathy/empathy-filter.xml
new file mode 100644 (file)
index 0000000..0223fef
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<node name="/">
+  <interface name="org.freedesktop.Telepathy.MissionControl.Filter">
+    <method name="FilterChannel">
+      <arg direction="in" type="s" name="bus_name" />
+      <arg direction="in" type="o" name="connection" />
+      <arg direction="in" type="s" name="channel_type" />
+      <arg direction="in" type="o" name="channel" />
+      <arg direction="in" type="u" name="handle_type" />
+      <arg direction="in" type="u" name="handle" />
+      <arg direction="in" type="u" name="id" />
+    </method>
+    <signal name="Process">
+      <arg type="u" name="id"/>
+      <arg type="b" name="process"/>
+    </signal>
+  </interface>
+</node>
index e97b5d641720281a7f1864a89196df563cd491c9..e52b4a0869b801afdd7ae2c81096dce7cfc7f920 100644 (file)
@@ -49,6 +49,7 @@ struct _EmpathyTpChatPriv {
        McAccount             *account;
        gchar                 *id;
        MissionControl        *mc;
+       gboolean               acknowledge;
 
        TpChan                *tp_chan;
        DBusGProxy            *props_iface;
@@ -56,56 +57,57 @@ struct _EmpathyTpChatPriv {
        DBusGProxy            *chat_state_iface;
 };
 
-static void      empathy_tp_chat_class_init    (EmpathyTpChatClass        *klass);
-static void      empathy_tp_chat_init          (EmpathyTpChat             *chat);
-static void      tp_chat_finalize              (GObject                   *object);
-static GObject * tp_chat_constructor           (GType                      type,
-                                               guint                      n_props,
-                                               GObjectConstructParam     *props);
-static void      tp_chat_get_property          (GObject                   *object,
-                                               guint                      param_id,
-                                               GValue                    *value,
-                                               GParamSpec                *pspec);
-static void      tp_chat_set_property          (GObject                   *object,
-                                               guint                      param_id,
-                                               const GValue              *value,
-                                               GParamSpec                *pspec);
-static void      tp_chat_destroy_cb            (TpChan                    *text_chan,
-                                               EmpathyTpChat             *chat);
-static void      tp_chat_closed_cb             (TpChan                    *text_chan,
-                                               EmpathyTpChat             *chat);
-static void      tp_chat_received_cb           (DBusGProxy                *text_iface,
-                                               guint                      message_id,
-                                               guint                      timestamp,
-                                               guint                      from_handle,
-                                               guint                      message_type,
-                                               guint                      message_flags,
-                                               gchar                     *message_body,
-                                               EmpathyTpChat             *chat);
-static void      tp_chat_sent_cb               (DBusGProxy                *text_iface,
-                                               guint                      timestamp,
-                                               guint                      message_type,
-                                               gchar                     *message_body,
-                                               EmpathyTpChat             *chat);
-static void      tp_chat_state_changed_cb      (DBusGProxy                *chat_state_iface,
-                                               guint                      handle,
-                                               TelepathyChannelChatState  state,
-                                               EmpathyTpChat             *chat);
-static void      tp_chat_emit_message          (EmpathyTpChat             *chat,
-                                               guint                      type,
-                                               guint                      timestamp,
-                                               guint                      from_handle,
-                                               const gchar               *message_body);
-static void      tp_chat_properties_ready_cb   (TpPropsIface              *props_iface,
-                                               EmpathyTpChat             *chat);
-static void      tp_chat_properties_changed_cb (TpPropsIface              *props_iface,
-                                               guint                      prop_id,
-                                               TpPropsChanged             flag,
-                                               EmpathyTpChat             *chat);
+static void             empathy_tp_chat_class_init    (EmpathyTpChatClass        *klass);
+static void             empathy_tp_chat_init          (EmpathyTpChat             *chat);
+static void             tp_chat_finalize              (GObject                   *object);
+static GObject *        tp_chat_constructor           (GType                      type,
+                                                      guint                      n_props,
+                                                      GObjectConstructParam     *props);
+static void             tp_chat_get_property          (GObject                   *object,
+                                                      guint                      param_id,
+                                                      GValue                    *value,
+                                                      GParamSpec                *pspec);
+static void             tp_chat_set_property          (GObject                   *object,
+                                                      guint                      param_id,
+                                                      const GValue              *value,
+                                                      GParamSpec                *pspec);
+static void             tp_chat_destroy_cb            (TpChan                    *text_chan,
+                                                      EmpathyTpChat             *chat);
+static void             tp_chat_closed_cb             (TpChan                    *text_chan,
+                                                      EmpathyTpChat             *chat);
+static void             tp_chat_received_cb           (DBusGProxy                *text_iface,
+                                                      guint                      message_id,
+                                                      guint                      timestamp,
+                                                      guint                      from_handle,
+                                                      guint                      message_type,
+                                                      guint                      message_flags,
+                                                      gchar                     *message_body,
+                                                      EmpathyTpChat             *chat);
+static void             tp_chat_sent_cb               (DBusGProxy                *text_iface,
+                                                      guint                      timestamp,
+                                                      guint                      message_type,
+                                                      gchar                     *message_body,
+                                                      EmpathyTpChat             *chat);
+static void             tp_chat_state_changed_cb      (DBusGProxy                *chat_state_iface,
+                                                      guint                      handle,
+                                                      TelepathyChannelChatState  state,
+                                                      EmpathyTpChat             *chat);
+static EmpathyMessage * tp_chat_build_message         (EmpathyTpChat             *chat,
+                                                      guint                      type,
+                                                      guint                      timestamp,
+                                                      guint                      from_handle,
+                                                      const gchar               *message_body);
+static void             tp_chat_properties_ready_cb   (TpPropsIface              *props_iface,
+                                                      EmpathyTpChat             *chat);
+static void             tp_chat_properties_changed_cb (TpPropsIface              *props_iface,
+                                                      guint                      prop_id,
+                                                      TpPropsChanged             flag,
+                                                      EmpathyTpChat             *chat);
 enum {
        PROP_0,
        PROP_ACCOUNT,
        PROP_TP_CHAN,
+       PROP_ACKNOWLEDGE,
 
        PROP_ANONYMOUS,
        PROP_INVITE_ONLY,
@@ -162,6 +164,15 @@ empathy_tp_chat_class_init (EmpathyTpChatClass *klass)
                                                              G_PARAM_READWRITE |
                                                              G_PARAM_CONSTRUCT_ONLY));
 
+       /* Normal properties */
+       g_object_class_install_property (object_class,
+                                        PROP_ACKNOWLEDGE,
+                                        g_param_spec_boolean ("acknowledge",
+                                                              "acknowledge",
+                                                              "acknowledge",
+                                                              FALSE,
+                                                              G_PARAM_READWRITE));
+
        /* Properties of Text Channel */
        g_object_class_install_property (object_class,
                                         PROP_ANONYMOUS,
@@ -320,17 +331,17 @@ tp_chat_finalize (GObject *object)
        priv = GET_PRIV (chat);
 
        if (priv->tp_chan) {
-               empathy_debug (DEBUG_DOMAIN, "Closing channel...");
-
                g_signal_handlers_disconnect_by_func (priv->tp_chan,
                                                      tp_chat_destroy_cb,
                                                      object);
-
-               if (!tp_chan_close (DBUS_G_PROXY (priv->tp_chan), &error)) {
-                       empathy_debug (DEBUG_DOMAIN, 
-                                     "Error closing text channel: %s",
-                                     error ? error->message : "No error given");
-                       g_clear_error (&error);
+               if (priv->acknowledge) {
+                       empathy_debug (DEBUG_DOMAIN, "Closing channel...");
+                       if (!tp_chan_close (DBUS_G_PROXY (priv->tp_chan), &error)) {
+                               empathy_debug (DEBUG_DOMAIN, 
+                                             "Error closing text channel: %s",
+                                             error ? error->message : "No error given");
+                               g_clear_error (&error);
+                       }
                }
                g_object_unref (priv->tp_chan);
        }
@@ -453,6 +464,9 @@ tp_chat_get_property (GObject    *object,
        case PROP_TP_CHAN:
                g_value_set_object (value, priv->tp_chan);
                break;
+       case PROP_ACKNOWLEDGE:
+               g_value_set_boolean (value, priv->acknowledge);
+               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
                break;
@@ -489,6 +503,10 @@ tp_chat_set_property (GObject      *object,
        case PROP_TP_CHAN:
                priv->tp_chan = g_object_ref (g_value_get_object (value));
                break;
+       case PROP_ACKNOWLEDGE:
+               empathy_tp_chat_set_acknowledge (EMPATHY_TP_CHAT (object),
+                                                g_value_get_boolean (value));
+               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
                break;
@@ -548,39 +566,79 @@ empathy_tp_chat_new_with_contact (EmpathyContact *contact)
        return chat;
 }
 
+gboolean
+empathy_tp_chat_get_acknowledge (EmpathyTpChat *chat)
+{
+       EmpathyTpChatPriv *priv;
+
+       g_return_val_if_fail (EMPATHY_IS_TP_CHAT (chat), FALSE);
+
+       priv = GET_PRIV (chat);
+
+       return priv->acknowledge;
+}
+
 void
-empathy_tp_chat_request_pending (EmpathyTpChat *chat)
+empathy_tp_chat_set_acknowledge (EmpathyTpChat *chat,
+                                gboolean       acknowledge)
+{
+       EmpathyTpChatPriv *priv;
+
+       g_return_if_fail (EMPATHY_IS_TP_CHAT (chat));
+
+       priv = GET_PRIV (chat);
+
+       priv->acknowledge = acknowledge;
+       g_object_notify (G_OBJECT (chat), "acknowledge");
+}
+
+TpChan *
+empathy_tp_chat_get_channel (EmpathyTpChat *chat)
+{
+       EmpathyTpChatPriv *priv;
+
+       g_return_val_if_fail (EMPATHY_IS_TP_CHAT (chat), NULL);
+
+       priv = GET_PRIV (chat);
+
+       return priv->tp_chan;
+}
+
+GList *
+empathy_tp_chat_get_pendings (EmpathyTpChat *chat)
 {
        EmpathyTpChatPriv *priv;
        GPtrArray         *messages_list;
        guint              i;
+       GList             *messages = NULL;
        GError            *error = NULL;
 
-       g_return_if_fail (EMPATHY_IS_TP_CHAT (chat));
+       g_return_val_if_fail (EMPATHY_IS_TP_CHAT (chat), NULL);
 
        priv = GET_PRIV (chat);
 
        /* If we do this call async, don't forget to ignore Received signal
         * until we get the answer */
        if (!tp_chan_type_text_list_pending_messages (priv->text_iface,
-                                                     TRUE,
+                                                     priv->acknowledge,
                                                      &messages_list,
                                                      &error)) {
                empathy_debug (DEBUG_DOMAIN, 
                              "Error retrieving pending messages: %s",
                              error ? error->message : "No error given");
                g_clear_error (&error);
-               return;
+               return NULL;
        }
 
        for (i = 0; i < messages_list->len; i++) {
-               GValueArray *message_struct;
-               const gchar *message_body;
-               guint        message_id;
-               guint        timestamp;
-               guint        from_handle;
-               guint        message_type;
-               guint        message_flags;
+               EmpathyMessage *message;
+               GValueArray    *message_struct;
+               const gchar    *message_body;
+               guint           message_id;
+               guint           timestamp;
+               guint           from_handle;
+               guint           message_type;
+               guint           message_flags;
 
                message_struct = g_ptr_array_index (messages_list, i);
 
@@ -593,16 +651,20 @@ empathy_tp_chat_request_pending (EmpathyTpChat *chat)
 
                empathy_debug (DEBUG_DOMAIN, "Message pending: %s", message_body);
 
-               tp_chat_emit_message (chat,
-                                     message_type,
-                                     timestamp,
-                                     from_handle,
-                                     message_body);
+               message = tp_chat_build_message (chat,
+                                                message_type,
+                                                timestamp,
+                                                from_handle,
+                                                message_body);
+
+               messages = g_list_prepend (messages, message);
 
                g_value_array_free (message_struct);
        }
 
        g_ptr_array_free (messages_list, TRUE);
+
+       return messages;
 }
 
 void
@@ -722,23 +784,30 @@ tp_chat_received_cb (DBusGProxy    *text_iface,
                     EmpathyTpChat *chat)
 {
        EmpathyTpChatPriv *priv;
-       GArray            *message_ids;
+       EmpathyMessage    *message;
 
        priv = GET_PRIV (chat);
 
        empathy_debug (DEBUG_DOMAIN, "Message received: %s", message_body);
 
-       tp_chat_emit_message (chat,
-                             message_type,
-                             timestamp,
-                             from_handle,
-                             message_body);
-
-       message_ids = g_array_new (FALSE, FALSE, sizeof (guint));
-       g_array_append_val (message_ids, message_id);
-       tp_chan_type_text_acknowledge_pending_messages (priv->text_iface,
-                                                       message_ids, NULL);
-       g_array_free (message_ids, TRUE);
+       message = tp_chat_build_message (chat,
+                                        message_type,
+                                        timestamp,
+                                        from_handle,
+                                        message_body);
+
+       g_signal_emit (chat, signals[MESSAGE_RECEIVED], 0, message);
+       g_object_unref (message);
+
+       if (priv->acknowledge) {
+               GArray *message_ids;
+
+               message_ids = g_array_new (FALSE, FALSE, sizeof (guint));
+               g_array_append_val (message_ids, message_id);
+               tp_chan_type_text_acknowledge_pending_messages (priv->text_iface,
+                                                               message_ids, NULL);
+               g_array_free (message_ids, TRUE);
+       }
 }
 
 static void
@@ -748,13 +817,18 @@ tp_chat_sent_cb (DBusGProxy    *text_iface,
                 gchar         *message_body,
                 EmpathyTpChat *chat)
 {
+       EmpathyMessage *message;
+
        empathy_debug (DEBUG_DOMAIN, "Message sent: %s", message_body);
 
-       tp_chat_emit_message (chat,
-                             message_type,
-                             timestamp,
-                             0,
-                             message_body);
+       message = tp_chat_build_message (chat,
+                                        message_type,
+                                        timestamp,
+                                        0,
+                                        message_body);
+
+       g_signal_emit (chat, signals[MESSAGE_RECEIVED], 0, message);
+       g_object_unref (message);
 }
 
 static void
@@ -776,21 +850,20 @@ tp_chat_state_changed_cb (DBusGProxy                *chat_state_iface,
                      state);
 
        g_signal_emit (chat, signals[CHAT_STATE_CHANGED], 0, contact, state);
-
        g_object_unref (contact);
 }
 
-static void
-tp_chat_emit_message (EmpathyTpChat *chat,
-                     guint          type,
-                     guint          timestamp,
-                     guint          from_handle,
-                     const gchar   *message_body)
+static EmpathyMessage *
+tp_chat_build_message (EmpathyTpChat *chat,
+                      guint          type,
+                      guint          timestamp,
+                      guint          from_handle,
+                      const gchar   *message_body)
 {
        EmpathyTpChatPriv *priv;
-       EmpathyMessage     *message;
-       EmpathyContact     *sender;
-       EmpathyContact     *receiver;
+       EmpathyMessage    *message;
+       EmpathyContact    *sender;
+       EmpathyContact    *receiver;
 
        priv = GET_PRIV (chat);
 
@@ -808,10 +881,9 @@ tp_chat_emit_message (EmpathyTpChat *chat,
        empathy_message_set_receiver (message, receiver);
        empathy_message_set_timestamp (message, (EmpathyTime) timestamp);
 
-       g_signal_emit (chat, signals[MESSAGE_RECEIVED], 0, message);
-
-       g_object_unref (message);
        g_object_unref (sender);
+
+       return message;
 }
 
 static void
index ce4e2a836300bf1cc06da572588ccfedaa73ec6e..7232a69a72ea1ed844d5c55a123da93e8bf9f37b 100644 (file)
@@ -58,10 +58,14 @@ struct _EmpathyTpChatClass {
 GType          empathy_tp_chat_get_type             (void) G_GNUC_CONST;
 EmpathyTpChat *empathy_tp_chat_new                  (McAccount                 *account,
                                                     TpChan                    *tp_chan);
-EmpathyTpChat *empathy_tp_chat_new_with_contact     (EmpathyContact             *contact);
-void           empathy_tp_chat_request_pending      (EmpathyTpChat             *chat);
+EmpathyTpChat *empathy_tp_chat_new_with_contact     (EmpathyContact            *contact);
+gboolean       empathy_tp_chat_get_acknowledge      (EmpathyTpChat             *chat);
+void           empathy_tp_chat_set_acknowledge      (EmpathyTpChat             *chat,
+                                                    gboolean                   acknowledge);
+TpChan *       empathy_tp_chat_get_channel          (EmpathyTpChat             *chat);
+GList *        empathy_tp_chat_get_pendings         (EmpathyTpChat             *chat);
 void           empathy_tp_chat_send                 (EmpathyTpChat             *chat,
-                                                    EmpathyMessage             *message);
+                                                    EmpathyMessage            *message);
 void           empathy_tp_chat_set_state            (EmpathyTpChat             *chat,
                                                     TelepathyChannelChatState  state);
 const gchar *  empathy_tp_chat_get_id               (EmpathyTpChat             *chat);
index 43faf98fec45f35633196f7fd0df41905d671d7e..3944a82ca21331e5ec5ee43e8bcc95782a9ea874 100644 (file)
@@ -1,3 +1,7 @@
+2007-06-30  Jorge Gonzalez <jorgegonz@svn.gnome.org>
+
+       * pl.po: Updated Polish translation (Tomasz Dominikowski).
+
 2007-06-28  Jorge Gonzalez <jorgegonz@svn.gnome.org>
 
         * es.po: Updated Spanish translation
index d7f39a1ba05f1a3b0f87decfe920a672eed51bb2..42ade8553ee68760c66a4633fd90953f58fce6df 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Gossip cvs\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-06-10 12:04+0200\n"
-"PO-Revision-Date: 2007-06-10 14:03+0100\n"
+"POT-Creation-Date: 2007-06-29 14:14+0200\n"
+"PO-Revision-Date: 2007-06-29 14:16+0100\n"
 "Last-Translator: Tomasz Dominikowski <dominikowski@gmail.com>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
@@ -19,11 +19,11 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
-#: ../data/empathy.desktop.in.h:1
+#: ../data/empathy.desktop.in.in.h:1
 msgid "Empathy Instant Messenger"
 msgstr "Komunikator internetowy Empathy"
 
-#: ../data/empathy.desktop.in.h:2
+#: ../data/empathy.desktop.in.in.h:2
 msgid "Instant Messenger"
 msgstr "Komunikator internetowy"
 
@@ -163,270 +163,102 @@ msgstr "Określa, czy używać motywów dla pokoi rozmów."
 msgid "Which criterium to use when sorting the contact list. Default is to use sort by the contact's name with the value \"name\". A value of \"state\" will sort the contact list by state."
 msgstr "Określa, jakie kryterium używać podczas sortowania listy kontaktów. Domyślnie jest używane sortowanie wg nazwy kontaktów, wartość \"name\". Wartość \"state\" spowoduje sortowanie wg stanu kontaktu."
 
-#: ../libempathy/gossip-presence.c:184
-#: ../libempathy/gossip-presence.c:283
+#: ../libempathy/empathy-presence.c:184
+#: ../libempathy/empathy-presence.c:283
 msgid "Offline"
 msgstr "Rozłączony"
 
-#: ../libempathy/gossip-presence.c:274
+#: ../libempathy/empathy-presence.c:274
 msgid "Available"
 msgstr "Dostępny"
 
-#: ../libempathy/gossip-presence.c:276
+#: ../libempathy/empathy-presence.c:276
 msgid "Busy"
 msgstr "Zajęty"
 
-#: ../libempathy/gossip-presence.c:279
+#: ../libempathy/empathy-presence.c:279
 msgid "Away"
 msgstr "Nieobecny"
 
-#: ../libempathy-gtk/empathy-contact-dialogs.c:75
-#: ../libempathy-gtk/empathy-contact-dialogs.c:218
-msgid "I would like to add you to my contact list."
-msgstr "Chciałbym Cię dodać do mojej listy kontaktów."
-
-#: ../libempathy-gtk/empathy-contact-dialogs.c:80
-msgid "Sorry, I don't want you in my contact list."
-msgstr "Przepraszam, nie chcę Ciebie na mojej liście kontaktów."
-
-#: ../libempathy-gtk/empathy-contact-dialogs.glade.h:1
-msgid "Decide _Later"
-msgstr "Z_decyduj później"
-
-#: ../libempathy-gtk/empathy-contact-dialogs.glade.h:2
-msgid "Subscription Request"
-msgstr "Prośba autoryzacji"
-
-#: ../libempathy-gtk/empathy-contact-widget.c:561
-msgid "Select"
-msgstr "Wybierz"
-
-#: ../libempathy-gtk/empathy-contact-widget.c:571
-#: ../libempathy-gtk/empathy-main-window.c:611
-msgid "Group"
-msgstr "Grupa"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:1
-msgid "<b>Client Information</b>"
-msgstr "<b>Informacje o kliencie</b>"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:2
-msgid "<b>Contact Details</b>"
-msgstr "<b>Szczegóły kontaktu</b>"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:3
-msgid "<b>Contact</b>"
-msgstr "<b>Kontakt</b>"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:4
-msgid "<b>Groups</b>"
-msgstr "<b>Grupy</b>"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:5
-#: ../libempathy-gtk/gossip-chatrooms-window.glade.h:1
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.glade.h:1
-msgid "Account:"
-msgstr "Konto:"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:6
-msgid "Alias:"
-msgstr "Alias:"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:7
-msgid "Birthday:"
-msgstr "Urodziny:"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:8
-msgid "Client:"
-msgstr "Klient:"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:9
-msgid "Contact information"
-msgstr "Informacje o kontakcie"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:10
-msgid "Email:"
-msgstr "E-mail:"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:11
-msgid "Fullname:"
-msgstr "Pełna nazwa:"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:12
-msgid "Identifier:"
-msgstr "Identyfikator:"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:13
-msgid "Information requested..."
-msgstr "Żądanie informacji..."
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:14
-msgid "OS:"
-msgstr "System:"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:15
-msgid "Select the groups you want this contact to appear in, you can select more than one group or no groups."
-msgstr "Wybierz grupy, w których ma się pojawić ten kontakt, można wybrać więcej niż jedną grupę lub żadną."
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:16
-msgid "Version:"
-msgstr "Wersja:"
-
-#: ../libempathy-gtk/empathy-contact-widget.glade.h:17
-msgid "Web site:"
-msgstr "Strona WWW:"
-
-#: ../libempathy-gtk/empathy-main-window.c:276
-msgid "Show and edit accounts"
-msgstr "Wyświetl i modyfikuj konta"
-
-#: ../libempathy-gtk/empathy-main-window.c:632
-msgid "Contact"
-msgstr "Kontakt"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:1
-msgid "Contact List - Empathy"
-msgstr "Lista kontaktów - Empathy"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:2
-msgid "Context"
-msgstr "Kontekst"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:3
-msgid "Join _Favorites"
-msgstr "Połącz się z _ulubionymi"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:4
-#: ../libempathy-gtk/gossip-chat.glade.h:10
-msgid "Join _New..."
-msgstr "Dołącz do _nowego..."
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:5
-msgid "Manage Favorites..."
-msgstr "Modyfikuj ulubione..."
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:6
-msgid "Show _Offline Contacts"
-msgstr "Wyświetlanie r_ozłączonych kontaktów"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:7
-msgid "_About"
-msgstr "O _programie"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:8
-msgid "_Accounts"
-msgstr "_Konta"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:9
-#: ../libempathy-gtk/gossip-chat.glade.h:15
-msgid "_Add Contact..."
-msgstr "_Dodaj kontakt..."
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:10
-#: ../libempathy-gtk/gossip-contact-list-view.c:203
-msgid "_Chat"
-msgstr "_Rozmowa"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:11
-msgid "_Contents"
-msgstr "_Zawartość"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:12
-#: ../libempathy-gtk/gossip-chat.glade.h:21
-#: ../libempathy-gtk/gossip-contact-list-view.c:215
-msgid "_Edit"
-msgstr "M_odyfikuj"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:13
-msgid "_Help"
-msgstr "Pomo_c"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:14
-#: ../libempathy-gtk/empathy-status-icon.glade.h:2
-msgid "_New Message..."
-msgstr "_Nowa wiadomość..."
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:15
-msgid "_Personal Information"
-msgstr "Informacje o _użytkowniku"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:16
-msgid "_Preferences"
-msgstr "_Preferencje"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:17
-#: ../libempathy-gtk/empathy-status-icon.glade.h:3
-msgid "_Quit"
-msgstr "_Zakończ"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:18
-#: ../libempathy-gtk/gossip-chat.glade.h:25
-msgid "_Room"
-msgstr "_Pokój"
-
-#: ../libempathy-gtk/empathy-main-window.glade.h:19
-#: ../libempathy-gtk/gossip-chat.glade.h:28
-#: ../libempathy-gtk/gossip-contact-list-view.c:231
-msgid "_View Previous Conversations"
-msgstr "_Wyświetl poprzednie rozmowy"
-
-#: ../libempathy-gtk/empathy-status-icon.c:448
-#, c-format
-msgid ""
-"Subscription requested for %s\n"
-"Message: %s"
-msgstr ""
-"Prośba subskrypcji dla %s\n"
-"Wiadomość: %s"
-
-#: ../libempathy-gtk/empathy-status-icon.glade.h:1
-msgid "Status"
-msgstr "Stan"
-
-#: ../libempathy-gtk/empathy-status-icon.glade.h:4
-msgid "_Show Contact List"
-msgstr "_Wyświetl listę kontaków"
-
-#: ../libempathy-gtk/gossip-about-dialog.c:63
+#: ../libempathy-gtk/empathy-about-dialog.c:63
 msgid "Empathy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version."
 msgstr "Empathy jest oprogramowaniem wolnodostępnym; możesz go rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej przez Fundację Wolnodostępnego Oprogramowania   - według wersji 2 tej Licencji lub którejś z późniejszych wersji.  "
 
-#: ../libempathy-gtk/gossip-about-dialog.c:67
+#: ../libempathy-gtk/empathy-about-dialog.c:67
 msgid "Empathy 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 General Public License for more details."
 msgstr "Empathy jest rozpowszechniany z nadzieją, iż będzie on  użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji - Powszechna  Licencja Publiczna GNU.  "
 
-#: ../libempathy-gtk/gossip-about-dialog.c:71
+#: ../libempathy-gtk/empathy-about-dialog.c:71
 msgid "You should have received a copy of the GNU General Public License along with Empathy; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-130159 USA"
 msgstr "Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz Powszechnej Licencji Publicznej GNU; jeśli nie - napisz do Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-130159 USA"
 
-#: ../libempathy-gtk/gossip-about-dialog.c:99
+#: ../libempathy-gtk/empathy-about-dialog.c:99
 msgid "An Instant Messaging client for GNOME"
 msgstr "Komunikator internetowy dla GNOME"
 
-#: ../libempathy-gtk/gossip-about-dialog.c:105
+#: ../libempathy-gtk/empathy-about-dialog.c:105
 msgid "translator-credits"
 msgstr ""
 "GNOME PL Team <translators@gnome.pl>\n"
 "Tomasz Dominikowski <dominikowski@gmail.com>"
 
-#: ../libempathy-gtk/gossip-account-chooser.c:391
+#: ../libempathy-gtk/empathy-account-chooser.c:391
 msgid "All"
 msgstr "Wszystkie"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.c:223
+#: ../libempathy-gtk/empathy-account-widget-generic.c:144
+#: ../libempathy-gtk/empathy-account-widget-generic.c:186
+#, c-format
+msgid "%s:"
+msgstr "%s:"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:1
+msgid "Forget password and clear the entry."
+msgstr "Zapomnij hasło i wyczyść pole."
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:2
+msgid "Login I_D:"
+msgstr "I_dentyfikator logowania:"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:3
+msgid "Pass_word:"
+msgstr "_Hasło:"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:4
+msgid "Reso_urce:"
+msgstr "_Zasób:"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:5
+msgid "Use encryption (SS_L)"
+msgstr "Używanie szyfrowania (SS_L)"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:6
+msgid "_Port:"
+msgstr "_Port:"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:7
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.glade.h:10
+msgid "_Server:"
+msgstr "_Serwer:"
+
+#: ../libempathy-gtk/empathy-account-widget-jabber.glade.h:8
+msgid "jabber account settings"
+msgstr "Ustawienia konta Jabber"
+
+#: ../libempathy-gtk/empathy-accounts-dialog.c:223
 msgid "Disable"
 msgstr "Wyłącz"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.c:226
+#: ../libempathy-gtk/empathy-accounts-dialog.c:226
 msgid "Enable"
 msgstr "Włącz"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.c:260
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:3
+#: ../libempathy-gtk/empathy-accounts-dialog.c:260
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:3
 msgid "<b>No Account Selected</b>"
 msgstr "<b>Nie zaznaczono żadnego konta</b>"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.c:262
+#: ../libempathy-gtk/empathy-accounts-dialog.c:262
 msgid ""
 "To add a new account, you can click on the 'Add' button and a new entry will be created for you to start configuring.\n"
 "\n"
@@ -436,20 +268,20 @@ msgstr ""
 "\n"
 "Jeśli nie chcesz dodać konta, kliknij na konto, które chcesz skonfigurować na liście po lewej stronie."
 
-#: ../libempathy-gtk/gossip-accounts-dialog.c:271
+#: ../libempathy-gtk/empathy-accounts-dialog.c:271
 msgid "<b>No Accounts Configured</b>"
 msgstr "<b>Brak skonfigurowanych kont</b>"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.c:273
+#: ../libempathy-gtk/empathy-accounts-dialog.c:273
 msgid "To add a new account, you can click on the 'Add' button and a new entry will be created for you to start configuring."
 msgstr "Aby dodać nowe konto możesz kliknąć przycisk \"Dodaj\", a zostanie utworzony nowy wpis, który można skonfigurować."
 
-#: ../libempathy-gtk/gossip-accounts-dialog.c:361
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:6
+#: ../libempathy-gtk/empathy-accounts-dialog.c:361
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:6
 msgid "Accounts"
 msgstr "Konta"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.c:856
+#: ../libempathy-gtk/empathy-accounts-dialog.c:856
 #, c-format
 msgid ""
 "You are about to remove your %s account!\n"
@@ -458,7 +290,7 @@ msgstr ""
 "Zamierzasz usunąć konto %s!\n"
 "Czy jesteś tego pewien?"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.c:862
+#: ../libempathy-gtk/empathy-accounts-dialog.c:862
 msgid ""
 "Any associated conversations and chat rooms will NOT be removed if you decide to proceed.\n"
 "\n"
@@ -468,35 +300,35 @@ msgstr ""
 "\n"
 "Jeśli zdecydujesz się na ponowne dodanie tego konta, znowu staną się dostępne."
 
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:1
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:1
 msgid "<b>Account</b>"
 msgstr "<b>Konto</b>"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:2
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:2
 msgid "<b>New Account</b>"
 msgstr "<b>Nowe konto</b>"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:4
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:4
 msgid "<b>Settings</b>"
 msgstr "<b>Ustawienia</b>"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:5
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:5
 msgid "A unique name for this account to identify it personally to you."
 msgstr "Unikalna nazwa dla tego konta, abyś mógł się z nią identyfikować."
 
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:7
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:7
 msgid "Cr_eate"
 msgstr "_Utwórz"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:8
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:8
 msgid "Imendio "
 msgstr "Imendio"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:9
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:9
 msgid "Jabber"
 msgstr "Jabber"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:10
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:10
 msgid ""
 "To add a new account, you can click on the 'Add' button and a new entry will be created for you to started configuring.\n"
 "\n"
@@ -506,187 +338,176 @@ msgstr ""
 "\n"
 "Jeśli nie chcesz dodać konta, kliknij na konto, które chcesz skonfigurować na liście po lewej stronie."
 
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:13
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:13
 msgid "_Name:"
 msgstr "_Nazwa:"
 
-#: ../libempathy-gtk/gossip-accounts-dialog.glade.h:14
+#: ../libempathy-gtk/empathy-accounts-dialog.glade.h:14
 msgid "_Type:"
 msgstr "_Typ:"
 
-#: ../libempathy-gtk/gossip-account-widget-generic.c:144
-#: ../libempathy-gtk/gossip-account-widget-generic.c:186
-#, c-format
-msgid "%s:"
-msgstr "%s:"
-
-#: ../libempathy-gtk/gossip-account-widget-jabber.glade.h:1
-msgid "Forget password and clear the entry."
-msgstr "Zapomnij hasło i wyczyść pole."
-
-#: ../libempathy-gtk/gossip-account-widget-jabber.glade.h:2
-msgid "Login I_D:"
-msgstr "I_dentyfikator logowania:"
-
-#: ../libempathy-gtk/gossip-account-widget-jabber.glade.h:3
-msgid "Pass_word:"
-msgstr "_Hasło:"
-
-#: ../libempathy-gtk/gossip-account-widget-jabber.glade.h:4
-msgid "Reso_urce:"
-msgstr "_Zasób:"
-
-#: ../libempathy-gtk/gossip-account-widget-jabber.glade.h:5
-msgid "Use encryption (SS_L)"
-msgstr "Używanie szyfrowania (SS_L)"
-
-#: ../libempathy-gtk/gossip-account-widget-jabber.glade.h:6
-msgid "_Port:"
-msgstr "_Port:"
-
-#: ../libempathy-gtk/gossip-account-widget-jabber.glade.h:7
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.glade.h:10
-msgid "_Server:"
-msgstr "_Serwer:"
-
-#: ../libempathy-gtk/gossip-account-widget-jabber.glade.h:8
-msgid "jabber account settings"
-msgstr "Ustawienia konta Jabber"
-
-#: ../libempathy-gtk/gossip-chat.c:332
+#: ../libempathy-gtk/empathy-chat.c:331
 msgid "Disconnected"
 msgstr "Rozłączony"
 
-#: ../libempathy-gtk/gossip-chat.c:878
+#: ../libempathy-gtk/empathy-chat.c:875
 msgid "Insert Smiley"
 msgstr "Wstaw uśmieszek"
 
-#: ../libempathy-gtk/gossip-chat.c:926
+#: ../libempathy-gtk/empathy-chat.c:923
 msgid "_Check Word Spelling..."
 msgstr "_Sprawdź pisownię..."
 
-#: ../libempathy-gtk/gossip-chat.c:1343
+#: ../libempathy-gtk/empathy-chat.c:1339
 msgid "Connected"
 msgstr "Połączony"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:1
+#: ../libempathy-gtk/empathy-chat.glade.h:1
 msgid "C_lear"
 msgstr "_Wyczyść"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:2
+#: ../libempathy-gtk/empathy-chat.glade.h:2
 msgid "Change _Topic..."
 msgstr "Zmień _temat..."
 
-#: ../libempathy-gtk/gossip-chat.glade.h:3
+#: ../libempathy-gtk/empathy-chat.glade.h:3
 msgid "Chat"
 msgstr "Czat"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:4
+#: ../libempathy-gtk/empathy-chat.glade.h:4
 msgid "Contact Infor_mation"
 msgstr "_Informacje o kontakcie"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:5
+#: ../libempathy-gtk/empathy-chat.glade.h:5
 msgid "Cu_t"
 msgstr "Wy_tnij"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:6
+#: ../libempathy-gtk/empathy-chat.glade.h:6
 msgid "In_vite..."
 msgstr "Z_aproś..."
 
-#: ../libempathy-gtk/gossip-chat.glade.h:7
+#: ../libempathy-gtk/empathy-chat.glade.h:7
 msgid "Insert _Smiley"
 msgstr "Wstaw _uśmieszek"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:8
+#: ../libempathy-gtk/empathy-chat.glade.h:8
 msgid "Invitation _message:"
 msgstr "Treść _zaproszenia:"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:9
+#: ../libempathy-gtk/empathy-chat.glade.h:9
 msgid "Invite"
 msgstr "Zaproś"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:11
+#: ../libempathy-gtk/empathy-chat.glade.h:10
+#: ../libempathy-gtk/empathy-main-window.glade.h:4
+msgid "Join _New..."
+msgstr "Dołącz do _nowego..."
+
+#: ../libempathy-gtk/empathy-chat.glade.h:11
 msgid "Move Tab _Left"
 msgstr "Przenieś zakładkę w _lewo"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:12
+#: ../libempathy-gtk/empathy-chat.glade.h:12
 msgid "Move Tab _Right"
 msgstr "Przenieś zakładkę w p_rawo"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:13
+#: ../libempathy-gtk/empathy-chat.glade.h:13
 msgid "Select who would you like to invite:"
 msgstr "Wybierz kogo chcesz zaprosić:"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:14
+#: ../libempathy-gtk/empathy-chat.glade.h:14
 msgid "You have been invited to join a chat conference."
 msgstr "Wysłano tobie zaproszenie do dołączenia do konferencji."
 
-#: ../libempathy-gtk/gossip-chat.glade.h:16
+#: ../libempathy-gtk/empathy-chat.glade.h:15
+#: ../libempathy-gtk/empathy-main-window.glade.h:9
+msgid "_Add Contact..."
+msgstr "_Dodaj kontakt..."
+
+#: ../libempathy-gtk/empathy-chat.glade.h:16
 msgid "_Add To Favorites"
 msgstr "Dod_aj do ulubionych"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:17
+#: ../libempathy-gtk/empathy-chat.glade.h:17
 msgid "_Close"
 msgstr "_Zamknij"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:18
+#: ../libempathy-gtk/empathy-chat.glade.h:18
 msgid "_Conversation"
 msgstr "_Rozmowa"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:19
+#: ../libempathy-gtk/empathy-chat.glade.h:19
 msgid "_Copy"
 msgstr "_Kopiuj"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:20
+#: ../libempathy-gtk/empathy-chat.glade.h:20
 msgid "_Detach Tab"
 msgstr "_Odłącz zakładkę"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:22
+#: ../libempathy-gtk/empathy-chat.glade.h:21
+#: ../libempathy-gtk/empathy-contact-list-view.c:216
+#: ../libempathy-gtk/empathy-main-window.glade.h:12
+msgid "_Edit"
+msgstr "M_odyfikuj"
+
+#: ../libempathy-gtk/empathy-chat.glade.h:22
 msgid "_Next Tab"
 msgstr "_Następna zakładka"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:23
+#: ../libempathy-gtk/empathy-chat.glade.h:23
 msgid "_Paste"
 msgstr "_Wklej"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:24
+#: ../libempathy-gtk/empathy-chat.glade.h:24
 msgid "_Previous Tab"
 msgstr "_Poprzednia zakładka"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:26
+#: ../libempathy-gtk/empathy-chat.glade.h:25
+#: ../libempathy-gtk/empathy-main-window.glade.h:18
+msgid "_Room"
+msgstr "_Pokój"
+
+#: ../libempathy-gtk/empathy-chat.glade.h:26
 msgid "_Show Contacts"
 msgstr "_Wyświetl listę kontaków"
 
-#: ../libempathy-gtk/gossip-chat.glade.h:27
+#: ../libempathy-gtk/empathy-chat.glade.h:27
 msgid "_Tabs"
 msgstr "_Zakładki"
 
-#: ../libempathy-gtk/gossip-chat-view.c:554
+#: ../libempathy-gtk/empathy-chat.glade.h:28
+#: ../libempathy-gtk/empathy-contact-list-view.c:232
+#: ../libempathy-gtk/empathy-main-window.glade.h:19
+msgid "_View Previous Conversations"
+msgstr "_Wyświetl poprzednie rozmowy"
+
+#: ../libempathy-gtk/empathy-chat-view.c:557
 msgid "_Copy Link Address"
 msgstr "S_kopiuj adres odnośnika"
 
-#: ../libempathy-gtk/gossip-chat-view.c:562
+#: ../libempathy-gtk/empathy-chat-view.c:565
 msgid "_Open Link"
 msgstr "_Otwórz odnośnik"
 
-#: ../libempathy-gtk/gossip-chat-view.c:899
+#: ../libempathy-gtk/empathy-chat-view.c:902
 msgid "%A %d %B %Y"
 msgstr "%A %d %B %Y"
 
-#: ../libempathy-gtk/gossip-chat-window.c:700
-#: ../libempathy-gtk/gossip-chat-window.c:730
+#: ../libempathy-gtk/empathy-chat-window.c:703
+#: ../libempathy-gtk/empathy-chat-window.c:733
 msgid "New Message"
 msgid_plural "New Messages"
 msgstr[0] "Nowa wiadomość"
 msgstr[1] "Nowe wiadomości"
 msgstr[2] "Nowe wiadomości"
 
-#: ../libempathy-gtk/gossip-chat-window.c:706
+#: ../libempathy-gtk/empathy-chat-window.c:709
 msgid "Chat Room"
 msgstr "Pokój rozmów"
 
-#: ../libempathy-gtk/gossip-chat-window.c:711
-#: ../libempathy-gtk/gossip-chat-window.c:734
+#: ../libempathy-gtk/empathy-chat-window.c:714
+#: ../libempathy-gtk/empathy-chat-window.c:737
+#: ../libempathy-gtk/empathy-log-window.c:525
 #, c-format
 msgid "Conversation"
 msgid_plural "Conversations (%d)"
@@ -694,380 +515,582 @@ msgstr[0] "Rozmowa"
 msgstr[1] "%d rozmowy"
 msgstr[2] "%d rozmów"
 
-#: ../libempathy-gtk/gossip-chat-window.c:1305
+#: ../libempathy-gtk/empathy-chat-window.c:1288
 msgid "Typing a message."
 msgstr "Wprowadzanie wiadomości."
 
-#: ../libempathy-gtk/gossip-chatrooms-window.c:251
+#: ../libempathy-gtk/empathy-chatrooms-window.c:251
 msgid "Name"
 msgstr "Nazwa"
 
-#: ../libempathy-gtk/gossip-chatrooms-window.c:269
+#: ../libempathy-gtk/empathy-chatrooms-window.c:269
 msgid "Room"
 msgstr "Pokój"
 
-#: ../libempathy-gtk/gossip-chatrooms-window.c:278
+#: ../libempathy-gtk/empathy-chatrooms-window.c:278
 msgid "Auto Connect"
 msgstr "Automatyczne łączenie"
 
-#: ../libempathy-gtk/gossip-chatrooms-window.glade.h:2
+#: ../libempathy-gtk/empathy-chatrooms-window.glade.h:1
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:5
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.glade.h:1
+msgid "Account:"
+msgstr "Konto:"
+
+#: ../libempathy-gtk/empathy-chatrooms-window.glade.h:2
 msgid "Edit Favorite Room"
 msgstr "Modyfikuj ulubiony pokój"
 
-#: ../libempathy-gtk/gossip-chatrooms-window.glade.h:3
+#: ../libempathy-gtk/empathy-chatrooms-window.glade.h:3
 msgid "Join room on start_up"
 msgstr "Dołącz do pokoju podczas _uruchomienia programu"
 
-#: ../libempathy-gtk/gossip-chatrooms-window.glade.h:4
-msgid "Join this chat room when Gossip starts and you are connected"
-msgstr "Dołącz do tego pokoju podczas uruchomienia Empathy"
+#: ../libempathy-gtk/empathy-chatrooms-window.glade.h:4
+msgid "Join this chat room when Empathy starts and you are connected"
+msgstr "Dołącz do tego pokoju podczas uruchomienia Empathy, gdy jesteś połączony"
 
-#: ../libempathy-gtk/gossip-chatrooms-window.glade.h:5
+#: ../libempathy-gtk/empathy-chatrooms-window.glade.h:5
 msgid "Manage Favorite Rooms"
 msgstr "Modyfikuj ulubione pokoje"
 
-#: ../libempathy-gtk/gossip-chatrooms-window.glade.h:6
+#: ../libempathy-gtk/empathy-chatrooms-window.glade.h:6
 msgid "N_ame:"
 msgstr "N_azwa:"
 
-#: ../libempathy-gtk/gossip-chatrooms-window.glade.h:7
+#: ../libempathy-gtk/empathy-chatrooms-window.glade.h:7
 msgid "S_erver:"
 msgstr "S_erwer:"
 
-#: ../libempathy-gtk/gossip-chatrooms-window.glade.h:8
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.glade.h:8
+#: ../libempathy-gtk/empathy-chatrooms-window.glade.h:8
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.glade.h:8
 msgid "_Nickname:"
 msgstr "_Pseudonim"
 
-#: ../libempathy-gtk/gossip-chatrooms-window.glade.h:9
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.glade.h:9
+#: ../libempathy-gtk/empathy-chatrooms-window.glade.h:9
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.glade.h:9
 msgid "_Room:"
 msgstr "_Pokój"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:195
+#: ../libempathy-gtk/empathy-contact-dialogs.c:216
+msgid "I would like to add you to my contact list."
+msgstr "Chciałbym Cię dodać do mojej listy kontaktów."
+
+#: ../libempathy-gtk/empathy-contact-dialogs.glade.h:1
+msgid "Decide _Later"
+msgstr "Z_decyduj później"
+
+#: ../libempathy-gtk/empathy-contact-dialogs.glade.h:2
+msgid "Subscription Request"
+msgstr "Prośba autoryzacji"
+
+#: ../libempathy-gtk/empathy-contact-list-view.c:196
 msgid "_Contact"
 msgstr "_Kontakt"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:199
+#: ../libempathy-gtk/empathy-contact-list-view.c:200
 msgid "_Group"
 msgstr "_Grupa"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:203
+#: ../libempathy-gtk/empathy-contact-list-view.c:204
+#: ../libempathy-gtk/empathy-main-window.glade.h:10
+msgid "_Chat"
+msgstr "_Rozmowa"
+
+#: ../libempathy-gtk/empathy-contact-list-view.c:204
 msgid "Chat with contact"
 msgstr "Porozmawiaj z kontaktem"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:207
+#: ../libempathy-gtk/empathy-contact-list-view.c:208
 msgid "Infor_mation"
 msgstr "Infor_macje"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:207
+#: ../libempathy-gtk/empathy-contact-list-view.c:208
 msgid "View contact information"
 msgstr "Wyświetl informacje o kontakcie"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:211
+#: ../libempathy-gtk/empathy-contact-list-view.c:212
 msgid "Re_name"
 msgstr "Zmień _nazwę"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:211
+#: ../libempathy-gtk/empathy-contact-list-view.c:212
 msgid "Rename"
 msgstr "Zmień nazwę"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:215
+#: ../libempathy-gtk/empathy-contact-list-view.c:216
 msgid "Edit the groups and name for this contact"
 msgstr "Modyfikuj grupy i nazwę dla tego kontaktu"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:219
+#: ../libempathy-gtk/empathy-contact-list-view.c:220
 msgid "_Remove"
 msgstr "_Usuń"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:219
+#: ../libempathy-gtk/empathy-contact-list-view.c:220
 msgid "Remove contact"
 msgstr "Usuń kontakt"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:223
+#: ../libempathy-gtk/empathy-contact-list-view.c:224
 msgid "_Invite to Chat Room"
 msgstr "_Zaproś do pokoju rozmów"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:223
+#: ../libempathy-gtk/empathy-contact-list-view.c:224
 msgid "Invite to a currently open chat room"
 msgstr "Zaproś do bieżącego pokoju rozmów"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:227
+#: ../libempathy-gtk/empathy-contact-list-view.c:228
 msgid "_Send File..."
 msgstr "_Wyślij plik..."
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:227
+#: ../libempathy-gtk/empathy-contact-list-view.c:228
 msgid "Send a file"
 msgstr "Wyślij plik"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:231
+#: ../libempathy-gtk/empathy-contact-list-view.c:232
 msgid "View previous conversations with this contact"
 msgstr "Wyświetl poprzednie rozmowy z tym kontaktem"
 
-#: ../libempathy-gtk/gossip-contact-list-view.c:1480
+#: ../libempathy-gtk/empathy-contact-list-view.c:1488
 msgid "Sorry, I don't want you in my contact list anymore."
 msgstr "Przepraszam, ale już nie chcę Cię na mojej liście kontaktów."
 
-#: ../libempathy-gtk/gossip-group-chat.c:255
+#: ../libempathy-gtk/empathy-contact-widget.c:558
+msgid "Select"
+msgstr "Wybierz"
+
+#: ../libempathy-gtk/empathy-contact-widget.c:568
+#: ../libempathy-gtk/empathy-main-window.c:612
+msgid "Group"
+msgstr "Grupa"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:1
+msgid "<b>Client Information</b>"
+msgstr "<b>Informacje o kliencie</b>"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:2
+msgid "<b>Contact Details</b>"
+msgstr "<b>Szczegóły kontaktu</b>"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:3
+msgid "<b>Contact</b>"
+msgstr "<b>Kontakt</b>"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:4
+msgid "<b>Groups</b>"
+msgstr "<b>Grupy</b>"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:6
+msgid "Alias:"
+msgstr "Alias:"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:7
+msgid "Birthday:"
+msgstr "Urodziny:"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:8
+msgid "Client:"
+msgstr "Klient:"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:9
+msgid "Contact information"
+msgstr "Informacje o kontakcie"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:10
+msgid "Email:"
+msgstr "E-mail:"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:11
+msgid "Fullname:"
+msgstr "Pełna nazwa:"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:12
+msgid "Identifier:"
+msgstr "Identyfikator:"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:13
+msgid "Information requested..."
+msgstr "Żądanie informacji..."
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:14
+msgid "OS:"
+msgstr "System:"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:15
+msgid "Select the groups you want this contact to appear in, you can select more than one group or no groups."
+msgstr "Wybierz grupy, w których ma się pojawić ten kontakt, można wybrać więcej niż jedną grupę lub żadną."
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:16
+msgid "Version:"
+msgstr "Wersja:"
+
+#: ../libempathy-gtk/empathy-contact-widget.glade.h:17
+msgid "Web site:"
+msgstr "Strona WWW:"
+
+#: ../libempathy-gtk/empathy-group-chat.c:255
 msgid "Enter the new topic you want to set for this room:"
 msgstr "Wprowadź nowy temat dla tego pokoju:"
 
-#: ../libempathy-gtk/gossip-group-chat.c:363
+#: ../libempathy-gtk/empathy-group-chat.c:363
 #, c-format
 msgid "%s has joined the room"
 msgstr "Użytkownik %s dołączył do pokoju"
 
-#: ../libempathy-gtk/gossip-group-chat.c:379
+#: ../libempathy-gtk/empathy-group-chat.c:379
 #, c-format
 msgid "%s has left the room"
 msgstr "Użytkownik %s opuścił pokój"
 
-#: ../libempathy-gtk/gossip-group-chat.c:458
+#: ../libempathy-gtk/empathy-group-chat.c:458
 #, c-format
 msgid "Topic: %s"
 msgstr "Temat: %s"
 
-#: ../libempathy-gtk/gossip-group-chat.c:575
+#: ../libempathy-gtk/empathy-group-chat.c:575
 #, c-format
 msgid "Topic set to: %s"
 msgstr "Temat ustawiony na: %s"
 
-#: ../libempathy-gtk/gossip-group-chat.glade.h:1
+#: ../libempathy-gtk/empathy-group-chat.glade.h:1
 msgid "<b>Topic:</b>"
 msgstr "<b>Temat:</b>"
 
-#: ../libempathy-gtk/gossip-group-chat.glade.h:2
+#: ../libempathy-gtk/empathy-group-chat.glade.h:2
 msgid "Group Chat"
 msgstr "Rozmowa grupowa"
 
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.c:342
+#: ../libempathy-gtk/empathy-log-window.c:518
+msgid "Account"
+msgstr "Konto"
+
+#: ../libempathy-gtk/empathy-log-window.c:535
+msgid "Date"
+msgstr "Data"
+
+#: ../libempathy-gtk/empathy-log-window.glade.h:1
+msgid "Conversations"
+msgstr "Rozmowy"
+
+#: ../libempathy-gtk/empathy-log-window.glade.h:2
+msgid "Search"
+msgstr "Wyszukiwanie"
+
+#: ../libempathy-gtk/empathy-log-window.glade.h:3
+msgid "View Previous Conversations"
+msgstr "Wyświetl poprzednie konwersacje"
+
+#: ../libempathy-gtk/empathy-log-window.glade.h:4
+msgid "_For:"
+msgstr "_Dla:"
+
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.c:342
 msgid "Chat Rooms"
 msgstr "Pokoje rozmów"
 
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.c:388
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.c:388
 msgid "Create"
 msgstr "Utwórz"
 
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.c:393
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.glade.h:4
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.c:393
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.glade.h:4
 msgid "Join"
 msgstr "Dołącz"
 
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.glade.h:2
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.glade.h:2
 msgid "Browse:"
 msgstr "Przeglądaj:"
 
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.glade.h:3
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.glade.h:3
 msgid "Enter the room name to join here or click on one or more rooms in the list."
 msgstr "Wprowadź nazwę pokoju, do którego chcesz dołączyć lub kliknij jeden lub więcej pokoi na liście."
 
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.glade.h:5
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.glade.h:5
 msgid "Join New"
 msgstr "Dołącz do nowego"
 
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.glade.h:6
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.glade.h:6
 msgid "Re_fresh"
 msgstr "_Odśwież"
 
-#: ../libempathy-gtk/gossip-new-chatroom-dialog.glade.h:7
+#: ../libempathy-gtk/empathy-new-chatroom-dialog.glade.h:7
 msgid "This list represents all chat rooms hosted on the server you have entered."
 msgstr "Ta lista przedstawia wszystkie pokoje rozmów utrzymywane na tym serwerze."
 
-#: ../libempathy-gtk/gossip-preferences.c:250
+#: ../libempathy-gtk/empathy-main-window.c:277
+msgid "Show and edit accounts"
+msgstr "Wyświetl i modyfikuj konta"
+
+#: ../libempathy-gtk/empathy-main-window.c:633
+msgid "Contact"
+msgstr "Kontakt"
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:1
+msgid "Contact List - Empathy"
+msgstr "Lista kontaktów - Empathy"
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:2
+msgid "Context"
+msgstr "Kontekst"
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:3
+msgid "Join _Favorites"
+msgstr "Połącz się z _ulubionymi"
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:5
+msgid "Manage Favorites..."
+msgstr "Modyfikuj ulubione..."
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:6
+msgid "Show _Offline Contacts"
+msgstr "Wyświetlanie r_ozłączonych kontaktów"
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:7
+msgid "_About"
+msgstr "O _programie"
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:8
+msgid "_Accounts"
+msgstr "_Konta"
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:11
+msgid "_Contents"
+msgstr "_Zawartość"
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:13
+msgid "_Help"
+msgstr "Pomo_c"
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:14
+#: ../libempathy-gtk/empathy-status-icon.glade.h:2
+msgid "_New Message..."
+msgstr "_Nowa wiadomość..."
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:15
+msgid "_Personal Information"
+msgstr "Informacje o _użytkowniku"
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:16
+msgid "_Preferences"
+msgstr "_Preferencje"
+
+#: ../libempathy-gtk/empathy-main-window.glade.h:17
+#: ../libempathy-gtk/empathy-status-icon.glade.h:3
+msgid "_Quit"
+msgstr "_Zakończ"
+
+#: ../libempathy-gtk/empathy-preferences.c:250
 msgid "Language"
 msgstr "Język"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:1
+#: ../libempathy-gtk/empathy-preferences.glade.h:1
 msgid "<b>Appearance</b>"
 msgstr "<b>Wygląd</b>"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:2
+#: ../libempathy-gtk/empathy-preferences.glade.h:2
 msgid "<b>Audio</b>"
 msgstr "<b>Dźwięk</b>"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:3
+#: ../libempathy-gtk/empathy-preferences.glade.h:3
 msgid "<b>Behaviour</b>"
 msgstr "<b>Zachowanie</b>"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:4
+#: ../libempathy-gtk/empathy-preferences.glade.h:4
 msgid "<b>Contact List</b>"
 msgstr "<b>Lista kontaktów</b>"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:5
+#: ../libempathy-gtk/empathy-preferences.glade.h:5
 msgid "<b>Languages</b>"
 msgstr "<b>Języki</b>"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:6
+#: ../libempathy-gtk/empathy-preferences.glade.h:6
 msgid "<b>Options</b>"
 msgstr "<b>Opcje</b>"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:7
+#: ../libempathy-gtk/empathy-preferences.glade.h:7
 msgid "<b>Visual</b>"
 msgstr "<b>Obraz</b>"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:8
+#: ../libempathy-gtk/empathy-preferences.glade.h:8
 msgid "<small>The list of languages reflects only the languages for which you have a dictionary installed.</small>"
 msgstr "<small>Lista języków odzwierciedla stan faktycznie zainstalowanych słowników.</small>"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:9
+#: ../libempathy-gtk/empathy-preferences.glade.h:9
 msgid "Avatars are user chosen images shown in the contact list"
 msgstr "Awatary są obrazkami wybieranymi przez użytkownika, wyświetlanymi na liście kontaktów"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:10
+#: ../libempathy-gtk/empathy-preferences.glade.h:10
 msgid "Chat Th_eme:"
 msgstr "Motyw _rozmowy:"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:11
+#: ../libempathy-gtk/empathy-preferences.glade.h:11
 msgid "Display notifications when contacts come _online"
 msgstr "Wyświetlanie powiadomień, gdy kontakty stają się d_ostępne"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:12
+#: ../libempathy-gtk/empathy-preferences.glade.h:12
 msgid "Enable sounds when _away"
 msgstr "Włącz_enie dźwięku przy stanie nieobecności"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:13
+#: ../libempathy-gtk/empathy-preferences.glade.h:13
 msgid "Enable sounds when _busy"
 msgstr "Włączenie dźwięku przy stanie z_ajętości"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:14
+#: ../libempathy-gtk/empathy-preferences.glade.h:14
 msgid "General"
 msgstr "Ogólne"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:15
+#: ../libempathy-gtk/empathy-preferences.glade.h:15
 msgid "Notifications"
 msgstr "Powiadomienia"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:16
+#: ../libempathy-gtk/empathy-preferences.glade.h:16
 msgid "Preferences"
 msgstr "Preferencje"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:17
+#: ../libempathy-gtk/empathy-preferences.glade.h:17
 msgid "Show _avatars"
 msgstr "Wyświetlanie _awatarów"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:18
+#: ../libempathy-gtk/empathy-preferences.glade.h:18
 msgid "Show _smileys as images"
 msgstr "Konwertowanie _uśmieszków na obrazki"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:19
+#: ../libempathy-gtk/empathy-preferences.glade.h:19
 msgid "Show co_mpact contact list"
 msgstr "Wyświetlanie z_mniejszonej listy kontaktów"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:20
+#: ../libempathy-gtk/empathy-preferences.glade.h:20
 msgid "Sort by _name"
 msgstr "Sortuj wg _nazwy"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:21
+#: ../libempathy-gtk/empathy-preferences.glade.h:21
 msgid "Sort by s_tate"
 msgstr "Sortuj wg s_tanu"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:22
+#: ../libempathy-gtk/empathy-preferences.glade.h:22
 msgid "Spell Checking"
 msgstr "Sprawdzanie pisowni"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:23
+#: ../libempathy-gtk/empathy-preferences.glade.h:23
 msgid "Themes"
 msgstr "Motywy"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:24
+#: ../libempathy-gtk/empathy-preferences.glade.h:24
 msgid "_Enable spell checking"
 msgstr "_Włączenie sprawdzania pisowni"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:25
+#: ../libempathy-gtk/empathy-preferences.glade.h:25
 msgid "_Open new chats in separate windows"
 msgstr "_Otwieranie nowych rozmów w osobnych oknach"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:26
+#: ../libempathy-gtk/empathy-preferences.glade.h:26
 msgid "_Play sound when messages arrive"
 msgstr "_Odtwarzanie dźwięku po nadejściu wiadomości"
 
-#: ../libempathy-gtk/gossip-preferences.glade.h:27
+#: ../libempathy-gtk/empathy-preferences.glade.h:27
 msgid "_Use for chat rooms"
 msgstr "_Używanie dla pokojów rozmów"
 
-#: ../libempathy-gtk/gossip-presence-chooser.c:702
+#: ../libempathy-gtk/empathy-presence-chooser.c:664
 msgid "Custom message..."
 msgstr "Własny komunikat..."
 
 #. Clear list
-#: ../libempathy-gtk/gossip-presence-chooser.c:724
+#: ../libempathy-gtk/empathy-presence-chooser.c:686
 msgid "Clear List..."
 msgstr "Wyczyść listę..."
 
-#: ../libempathy-gtk/gossip-presence-chooser.c:803
+#: ../libempathy-gtk/empathy-presence-chooser.c:765
 msgid "Are you sure you want to clear the list?"
 msgstr "Czy na pewno wyczyścić listę?"
 
-#: ../libempathy-gtk/gossip-presence-chooser.c:807
+#: ../libempathy-gtk/empathy-presence-chooser.c:769
 msgid "This will remove any custom messages you have added to the list of preset status messages."
 msgstr "To usunie wszystkie własne komunikaty dodane do listy własnych komunikatów o stanie."
 
-#: ../libempathy-gtk/gossip-presence-chooser.c:812
+#: ../libempathy-gtk/empathy-presence-chooser.c:774
 msgid "Clear List"
 msgstr "Wyczyść listę"
 
-#: ../libempathy-gtk/gossip-presence-chooser.glade.h:1
+#: ../libempathy-gtk/empathy-presence-chooser.glade.h:1
 msgid "Enter status message:"
 msgstr "Wprowadź komunikat stanu:"
 
-#: ../libempathy-gtk/gossip-presence-chooser.glade.h:2
+#: ../libempathy-gtk/empathy-presence-chooser.glade.h:2
 msgid "Status Message Presets"
 msgstr "Własne komunikaty stanu"
 
-#: ../libempathy-gtk/gossip-presence-chooser.glade.h:3
+#: ../libempathy-gtk/empathy-presence-chooser.glade.h:3
 msgid "_Add to status message list"
 msgstr "Dod_aj do listy komunikatów stanu"
 
-#: ../libempathy-gtk/gossip-private-chat.c:188
+#: ../libempathy-gtk/empathy-private-chat.c:188
 #, c-format
 msgid "%s went offline"
 msgstr "Użytkownik %s rozłączył się"
 
-#: ../libempathy-gtk/gossip-private-chat.c:202
+#: ../libempathy-gtk/empathy-private-chat.c:202
 #, c-format
 msgid "%s has come online"
 msgstr "Pojawił się użytkownik %s"
 
-#: ../libempathy-gtk/gossip-spell-dialog.c:85
+#: ../libempathy-gtk/empathy-spell-dialog.c:85
 msgid "Word"
 msgstr "Słowo"
 
-#: ../libempathy-gtk/gossip-spell-dialog.c:258
+#: ../libempathy-gtk/empathy-spell-dialog.c:258
 msgid "Suggestions for the word"
 msgstr "Sugestie dla słowa"
 
-#: ../libempathy-gtk/gossip-spell-dialog.glade.h:1
+#: ../libempathy-gtk/empathy-spell-dialog.glade.h:1
 msgid "Spell Checker"
 msgstr "Sprawdzanie pisowni"
 
-#: ../libempathy-gtk/gossip-spell-dialog.glade.h:2
+#: ../libempathy-gtk/empathy-spell-dialog.glade.h:2
 msgid "Suggestions for the word:"
 msgstr "Sugestie dla słowa"
 
-#: ../libempathy-gtk/gossip-theme-manager.c:87
+#: ../libempathy-gtk/empathy-status-icon.c:467
+#, c-format
+msgid ""
+"Subscription requested for %s\n"
+"Message: %s"
+msgstr ""
+"Prośba subskrypcji dla %s\n"
+"Wiadomość: %s"
+
+#: ../libempathy-gtk/empathy-status-icon.glade.h:1
+msgid "Status"
+msgstr "Stan"
+
+#: ../libempathy-gtk/empathy-status-icon.glade.h:4
+msgid "_Show Contact List"
+msgstr "_Wyświetl listę kontaków"
+
+#: ../libempathy-gtk/empathy-theme-manager.c:87
 msgid "Classic"
 msgstr "Klasyczny"
 
-#: ../libempathy-gtk/gossip-theme-manager.c:88
+#: ../libempathy-gtk/empathy-theme-manager.c:88
 msgid "Simple"
 msgstr "Prosty"
 
-#: ../libempathy-gtk/gossip-theme-manager.c:89
+#: ../libempathy-gtk/empathy-theme-manager.c:89
 msgid "Clean"
 msgstr "Wyczyść"
 
-#: ../libempathy-gtk/gossip-theme-manager.c:90
+#: ../libempathy-gtk/empathy-theme-manager.c:90
 msgid "Blue"
 msgstr "Niebieski"
 
-#: ../src/empathy-main.c:128
+#: ../src/empathy.c:160
 msgid "Don't connect on startup"
 msgstr "Bez łączenia przy uruchamianiu"
 
-#: ../src/empathy-main.c:136
+#: ../src/empathy.c:169
 msgid "- Empathy Instant Messenger"
 msgstr "- Komunikator internetowy Empathy"
 
+#~ msgid "Sorry, I don't want you in my contact list."
+#~ msgstr "Przepraszam, nie chcę Ciebie na mojej liście kontaktów."
+
 #, fuzzy
 #~ msgid ""
 #~ "<small><b><span foreground=\"#555\">Example: user@jabber.org</span></b></"
@@ -1235,10 +1258,6 @@ msgstr "- Komunikator internetowy Empathy"
 #~ msgid "Retry connection"
 #~ msgstr "Połącz"
 
-#, fuzzy
-#~ msgid "Account"
-#~ msgstr "Konto Jabbera"
-
 #, fuzzy
 #~ msgid "Conversation With"
 #~ msgstr "_Rozmowa"
@@ -1390,10 +1409,6 @@ msgstr "- Komunikator internetowy Empathy"
 #~ msgid "R_egister"
 #~ msgstr "Z_ałóż konto..."
 
-#, fuzzy
-#~ msgid "Search"
-#~ msgstr "_Znajdź..."
-
 #, fuzzy
 #~ msgid "This is the name that will be used on your roster for this contact"
 #~ msgstr "Jaki pseudonim ma być używany dla tego kontaktu?"
@@ -1408,10 +1423,6 @@ msgstr "- Komunikator internetowy Empathy"
 #~ "details"
 #~ msgstr "Ta nazwa będzie użyta do identyfikacji w oknach rozmowy."
 
-#, fuzzy
-#~ msgid "View Previous Conversations"
-#~ msgstr "_Rozmowa"
-
 #, fuzzy
 #~ msgid "Which account do you want to use?"
 #~ msgstr "Jakiej nazwy użytkownika chcesz używać?"
@@ -1435,10 +1446,6 @@ msgstr "- Komunikator internetowy Empathy"
 #~ "_Enter the name or contact ID of the person you want to chat to below:"
 #~ msgstr "Wprowadź identyfikator osoby, do której chcesz wysłać wiadomość."
 
-#, fuzzy
-#~ msgid "_For:"
-#~ msgstr "P_ort:"
-
 #, fuzzy
 #~ msgid "_Group:"
 #~ msgstr "Grupa"
index b89a4218de0b89227dd921b1b19a34853bf19a40..c7344c8c8ef55230f47c7fa4b7b6b27b874fe229 100644 (file)
@@ -8,8 +8,9 @@ AM_CPPFLAGS =                                           \
        $(EMPATHY_CFLAGS)                               \
        $(WARN_CFLAGS)
 
-LDADD =                                                        \
+LDADD =                                                                \
        $(top_builddir)/libempathy-gtk/libempathy-gtk.la        \
+       $(top_builddir)/libempathy/libempathy.la                \
        $(EMPATHY_LIBS)
 
 bin_PROGRAMS =                 \
index 6ca47192de6d1f4083d70cf319e9c62137d1a0de..416d2134dae6f4d543bb8c5319555628fcd261a5 100644 (file)
@@ -43,6 +43,7 @@
 #include <libempathy/empathy-contact.h>
 #include <libempathy/empathy-chandler.h>
 #include <libempathy/empathy-tp-chat.h>
+#include <libempathy/empathy-tp-chatroom.h>
 #include <libempathy/empathy-idle.h>
 #include <libempathy-gtk/empathy-main-window.h>
 #include <libempathy-gtk/empathy-status-icon.h>
@@ -117,7 +118,11 @@ new_channel_cb (EmpathyChandler *chandler,
                        EmpathyTpChat *tp_chat;
 
                        /* The chat died, give him the new text channel */
-                       tp_chat = empathy_tp_chat_new (account, tp_chan);
+                       if (empathy_chat_is_group_chat (chat)) {
+                               tp_chat = EMPATHY_TP_CHAT (empathy_tp_chatroom_new (account, tp_chan));
+                       } else {
+                               tp_chat = empathy_tp_chat_new (account, tp_chan);
+                       }
                        empathy_chat_set_tp_chat (chat, tp_chat);
                        g_object_unref (tp_chat);
                }