aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog48
-rw-r--r--data/16x16/Makefile.am3
-rw-r--r--data/16x16/empathy-new-message (renamed from data/16x16/empathy-message-new.png)bin693 -> 693 bytes
-rw-r--r--data/16x16/empathy-proto-irc.pngbin0 -> 782 bytes
-rw-r--r--data/22x22/Makefile.am2
-rw-r--r--data/22x22/empathy-new-message.pngbin0 -> 955 bytes
-rw-r--r--data/22x22/empathy-proto-irc.pngbin0 -> 1185 bytes
-rw-r--r--data/32x32/Makefile.am1
-rw-r--r--data/32x32/empathy-proto-irc.pngbin0 -> 1597 bytes
-rw-r--r--data/gtalk.profile2
-rw-r--r--data/irc.profile1
-rw-r--r--data/scalable/Makefile.am1
-rw-r--r--data/scalable/empathy-proto-irc.svg785
-rw-r--r--libempathy-gtk/empathy-images.h5
-rw-r--r--libempathy-gtk/empathy-main-window.glade2
-rw-r--r--libempathy-gtk/empathy-status-icon.glade2
-rw-r--r--libempathy-gtk/gossip-account-chooser.c1
-rw-r--r--libempathy-gtk/gossip-chat-window.c59
-rw-r--r--libempathy-gtk/gossip-chat.c7
-rw-r--r--libempathy-gtk/gossip-contact-list-store.c1
-rw-r--r--libempathy-gtk/gossip-group-chat.c103
-rw-r--r--libempathy-gtk/gossip-group-chat.h11
-rw-r--r--libempathy-gtk/gossip-new-chatroom-dialog.c51
-rw-r--r--libempathy/empathy-tp-chat.c22
-rw-r--r--libempathy/empathy-tp-chat.h26
-rw-r--r--src/empathy-chat-main.c2
26 files changed, 994 insertions, 141 deletions
diff --git a/ChangeLog b/ChangeLog
index 3520fd2d1..68483d99d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,51 @@
+2007-05-25 Xavier Claessens <xclaesse@gmail.com>
+
+ * libempathy-gtk/gossip-new-chatroom-dialog.c: Preset the server only
+ for jabber protocol to conference.server. This fixes a warning.
+
+ * libempathy-gtk/gossip-group-chat.h:
+ * libempathy-gtk/gossip-group-chat.c: gossip_group_chat_set_topic() is
+ a public function.
+
+ * libempathy-gtk/empathy-images.h:
+ * libempathy-gtk/empathy-main-window.glade:
+ * libempathy-gtk/empathy-status-icon.glade: Make use of
+ empathy-new-message icon name.
+
+ * libempathy-gtk/gossip-contact-list-store.c: By default we sort by
+ contacts names.
+
+ * libempathy-gtk/gossip-chat.c: Do not display composing state if
+ it's our own contact that is composing.
+
+ * src/empathy-chat-main.c:
+ * libempathy/empathy-tp-chat.c:
+ * libempathy/empathy-tp-chat.h: Make possible to build the id based on
+ the account and the channel's name. For private chats that means the
+ contact's id.
+
+ * libempathy-gtk/gossip-chat-window.c: Un-comment the code related to
+ chatrooms that is now implemented. We can now Show/Hide contact list
+ for group chats, DnD contact on the window to begin a discussion, join
+ a new chatroom.
+
+ * libempathy-gtk/gossip-account-chooser.c: Add a FIXME message.
+
+ * data/22x22/empathy-new-message.png:
+ * data/22x22/empathy-proto-irc.png:
+ * data/22x22/Makefile.am:
+ * data/32x32/empathy-proto-irc.png:
+ * data/32x32/Makefile.am:
+ * data/gtalk.profile:
+ * data/16x16/empathy-new-message:
+ * data/16x16/empathy-message-new.png:
+ * data/16x16/empathy-proto-irc.png:
+ * data/16x16/Makefile.am:
+ * data/scalable/empathy-proto-irc.svg:
+ * data/scalable/Makefile.am:
+ * data/irc.profile: Adding icons for empathy-new-message and IRC
+ protocol. Make use of the irc icon in the irc profile.
+
2007-05-24 Xavier Claessens <xclaesse@gmail.com>
* libempathy-gtk/gossip-new-chatroom-dialog.c:
diff --git a/data/16x16/Makefile.am b/data/16x16/Makefile.am
index 8d2606184..0b4d6067b 100644
--- a/data/16x16/Makefile.am
+++ b/data/16x16/Makefile.am
@@ -8,11 +8,12 @@ icon_DATA = \
empathy-busy.png \
empathy-pending.png \
empathy-message.png \
- empathy-message-new.png \
+ empathy-new-message.png \
empathy-typing.png \
empathy-proto-ekiga.png \
empathy-proto-google-talk.png \
empathy-proto-msn.png \
empathy-proto-gizmo.png \
+ empathy-proto-irc.png \
empathy-proto-jabber.png
EXTRA_DIST = $(icon_DATA)
diff --git a/data/16x16/empathy-message-new.png b/data/16x16/empathy-new-message
index da01aff75..da01aff75 100644
--- a/data/16x16/empathy-message-new.png
+++ b/data/16x16/empathy-new-message
Binary files differ
diff --git a/data/16x16/empathy-proto-irc.png b/data/16x16/empathy-proto-irc.png
new file mode 100644
index 000000000..00647bba6
--- /dev/null
+++ b/data/16x16/empathy-proto-irc.png
Binary files differ
diff --git a/data/22x22/Makefile.am b/data/22x22/Makefile.am
index e552f6e5a..ce814e53c 100644
--- a/data/22x22/Makefile.am
+++ b/data/22x22/Makefile.am
@@ -1,9 +1,11 @@
icondir = $(datadir)/icons/hicolor/22x22/apps
icon_DATA = \
empathy.png \
+ empathy-new-message.png \
empathy-proto-ekiga.png \
empathy-proto-google-talk.png \
empathy-proto-msn.png \
empathy-proto-gizmo.png \
+ empathy-proto-irc.png \
empathy-proto-jabber.png
EXTRA_DIST = $(icon_DATA)
diff --git a/data/22x22/empathy-new-message.png b/data/22x22/empathy-new-message.png
new file mode 100644
index 000000000..f75737ff2
--- /dev/null
+++ b/data/22x22/empathy-new-message.png
Binary files differ
diff --git a/data/22x22/empathy-proto-irc.png b/data/22x22/empathy-proto-irc.png
new file mode 100644
index 000000000..fefb85130
--- /dev/null
+++ b/data/22x22/empathy-proto-irc.png
Binary files differ
diff --git a/data/32x32/Makefile.am b/data/32x32/Makefile.am
index 1475e1ef1..111173e86 100644
--- a/data/32x32/Makefile.am
+++ b/data/32x32/Makefile.am
@@ -5,5 +5,6 @@ icon_DATA = \
empathy-proto-google-talk.png \
empathy-proto-msn.png \
empathy-proto-gizmo.png \
+ empathy-proto-irc.png \
empathy-proto-jabber.png
EXTRA_DIST = $(icon_DATA)
diff --git a/data/32x32/empathy-proto-irc.png b/data/32x32/empathy-proto-irc.png
new file mode 100644
index 000000000..471742a86
--- /dev/null
+++ b/data/32x32/empathy-proto-irc.png
Binary files differ
diff --git a/data/gtalk.profile b/data/gtalk.profile
index f81dc27c3..563710780 100644
--- a/data/gtalk.profile
+++ b/data/gtalk.profile
@@ -5,7 +5,7 @@ DisplayName=Google Talk
IconName = empathy-proto-google-talk
ConfigurationUI = jabber
Capabilities = chat-p2p, chat-room, chat-room-list, voice-p2p, split-account, supports-avatars, supports-alias
-DefaultAccountDomain = gmail.com, googlemail.com
+DefaultAccountDomain = gmail.com
Default-server = talk.google.com
Default-port = 5223
Default-old-ssl = 1
diff --git a/data/irc.profile b/data/irc.profile
index 90915c16d..5bc5cfd3f 100644
--- a/data/irc.profile
+++ b/data/irc.profile
@@ -2,6 +2,7 @@
Manager=idle
Protocol=irc
DisplayName=IRC
+IconName = empathy-proto-irc
ConfigurationUI = irc
Capabilities = chat-p2p, chat-room, chat-room-list, supports-alias
SupportsInvisible = 0
diff --git a/data/scalable/Makefile.am b/data/scalable/Makefile.am
index 6e144da56..b8b12c3d4 100644
--- a/data/scalable/Makefile.am
+++ b/data/scalable/Makefile.am
@@ -11,5 +11,6 @@ icon_DATA = \
empathy-proto-google-talk.svg \
empathy-proto-msn.svg \
empathy-proto-gizmo.svg \
+ empathy-proto-irc.svg \
empathy-proto-jabber.svg
EXTRA_DIST = $(icon_DATA)
diff --git a/data/scalable/empathy-proto-irc.svg b/data/scalable/empathy-proto-irc.svg
new file mode 100644
index 000000000..a4ee660e3
--- /dev/null
+++ b/data/scalable/empathy-proto-irc.svg
@@ -0,0 +1,785 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg2"
+ inkscape:label="Pozadí"
+ sodipodi:version="0.32"
+ inkscape:version="0.44+devel"
+ version="1.0"
+ sodipodi:docname="online.svg"
+ sodipodi:docbase="/home/cornelius/GFX/ikony/gajim/sources/iconsets/transports/irc/48x48"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ sodipodi:modified="true">
+ <defs
+ id="defs3">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5702">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop5704" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop5706" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4726">
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1;"
+ offset="0"
+ id="stop4728" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1"
+ offset="1"
+ id="stop4730" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4726"
+ id="linearGradient4732"
+ x1="3.7946429"
+ y1="7.0267859"
+ x2="13.392858"
+ y2="20.10984"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.8668106,0,0,2.8602375,1.0644378,6.9881155e-2)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5702"
+ id="radialGradient5708"
+ cx="15.625"
+ cy="29.767857"
+ fx="15.625"
+ fy="29.767857"
+ r="13.839286"
+ gradientTransform="matrix(1,0,0,7.0967742e-2,0,27.655299)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ r="21.035482"
+ fy="14.618562"
+ fx="24.687721"
+ cy="14.618562"
+ cx="24.687721"
+ gradientTransform="matrix(1.0297263,0,0,1.1788768,1.0605466,-1.8584828)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4947"
+ xlink:href="#linearGradient5816"
+ inkscape:collect="always" />
+ <radialGradient
+ r="19"
+ fy="23.537582"
+ fx="16.488304"
+ cy="23.537582"
+ cx="16.488304"
+ gradientTransform="matrix(1.451479,0,0,1.326922,19.216439,-40.879303)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4944"
+ xlink:href="#linearGradient3103"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="42.285942"
+ x2="15.571428"
+ y1="29.99917"
+ x1="15.571428"
+ gradientTransform="matrix(0.721659,0,0,0.722208,31.336441,-26.878246)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4941"
+ xlink:href="#linearGradient3106"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="42.285942"
+ x2="15.571428"
+ y1="29.99917"
+ x1="15.571428"
+ gradientTransform="matrix(0.721659,0,0,0.722208,32.779758,-26.878246)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4938"
+ xlink:href="#linearGradient3106"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="42.405006"
+ x2="38.465416"
+ y1="2"
+ x1="16"
+ gradientTransform="matrix(0.909689,0,0,0.916448,27.52517,-27.353841)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4935"
+ xlink:href="#linearGradient3951"
+ inkscape:collect="always" />
+ <radialGradient
+ r="9"
+ fy="22.17857"
+ fx="21.142859"
+ cy="22.17857"
+ cx="21.142859"
+ gradientTransform="matrix(0.764705,0,0,0.71453,30.987315,-32.88594)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4931"
+ xlink:href="#linearGradient3128"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="31.587952"
+ x2="32.927006"
+ y1="2"
+ x1="16"
+ gradientTransform="matrix(0.725295,0,0,0.682879,31.90823,-22.96952)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4927"
+ xlink:href="#linearGradient3951"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="38.499996"
+ x2="30.00001"
+ y1="31.785711"
+ x1="24.000008"
+ gradientTransform="matrix(0.514307,0,0,0.531053,37.022732,-26.679004)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4924"
+ xlink:href="#linearGradient3223"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="24.431168"
+ x2="27.055439"
+ y1="3.860764"
+ x1="17.725422"
+ gradientTransform="matrix(0.587733,0,0,0.453793,35.234662,-18.026032)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4921"
+ xlink:href="#linearGradient3951"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3106">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop3108" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop3110" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3121">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop3123" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop3125" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3103">
+ <stop
+ style="stop-color:#73d216;stop-opacity:1"
+ offset="0"
+ id="stop3105" />
+ <stop
+ style="stop-color:#4e9a06;stop-opacity:1"
+ offset="1"
+ id="stop3107" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3223">
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1;"
+ offset="0"
+ id="stop3225" />
+ <stop
+ style="stop-color:#396ea7;stop-opacity:1"
+ offset="1"
+ id="stop3227" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3128"
+ inkscape:collect="always">
+ <stop
+ id="stop3130"
+ offset="0"
+ style="stop-color:#fef291;stop-opacity:1" />
+ <stop
+ id="stop3132"
+ offset="1"
+ style="stop-color:#edd400;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3112">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop3114" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop3116" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3096">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop3098" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop3100" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3080">
+ <stop
+ style="stop-color:#ad7fa8;stop-opacity:1"
+ offset="0"
+ id="stop3082" />
+ <stop
+ style="stop-color:#75507b;stop-opacity:1"
+ offset="1"
+ id="stop3084" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3951"
+ id="linearGradient3957"
+ x1="16"
+ y1="2"
+ x2="32.927006"
+ y2="31.587952"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.725295,0,0,0.682879,-1.432029,1.826073)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3951">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop3953" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop3955" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3951"
+ id="linearGradient3092"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1,3)"
+ x1="18.107143"
+ y1="53.76825"
+ x2="8.4828358"
+ y2="3.3976703" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3096"
+ id="radialGradient3102"
+ cx="23.081985"
+ cy="42.747208"
+ fx="23.081985"
+ fy="42.747208"
+ r="16.010918"
+ gradientTransform="matrix(1,0,0,0.119874,0,37.62294)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3080"
+ id="radialGradient3104"
+ cx="17.309582"
+ cy="24.508204"
+ fx="17.309582"
+ fy="24.508204"
+ r="17.031612"
+ gradientTransform="matrix(2.13216,1.122823e-2,-1.1822e-2,2.244913,-18.75993,-30.16344)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3112"
+ id="linearGradient3118"
+ x1="24.260687"
+ y1="2.5335035"
+ x2="24.832115"
+ y2="22.012075"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3128"
+ id="radialGradient3120"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.705883,0,0,1.667238,-17.94118,-19.21085)"
+ cx="21.142859"
+ cy="22.17857"
+ fx="21.142859"
+ fy="22.17857"
+ r="9" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3128"
+ id="radialGradient3221"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.764705,0,0,0.71453,-2.352944,-8.090347)"
+ cx="21.142859"
+ cy="22.17857"
+ fx="21.142859"
+ fy="22.17857"
+ r="9" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3223"
+ id="linearGradient3229"
+ x1="24.000008"
+ y1="31.785711"
+ x2="30.00001"
+ y2="38.499996"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.514307,0,0,0.531053,3.682473,-1.883411)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3103"
+ id="radialGradient3109"
+ cx="15.269456"
+ cy="24.907877"
+ fx="15.269456"
+ fy="24.907877"
+ r="19"
+ gradientTransform="matrix(1.989063,0,0,1.427178,-17.28077,-7.054682)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3951"
+ id="linearGradient3111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.258493,0,0,1.2607,-6.203794,1.409664)"
+ x1="16"
+ y1="2"
+ x2="38.465416"
+ y2="42.405006" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3951"
+ id="linearGradient3115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.909689,0,0,0.916448,-5.815089,-2.558248)"
+ x1="16"
+ y1="2"
+ x2="38.465416"
+ y2="42.405006" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3103"
+ id="radialGradient3117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.451479,0,0,1.326922,-14.12382,-16.08371)"
+ cx="16.488304"
+ cy="23.537582"
+ fx="16.488304"
+ fy="23.537582"
+ r="19" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3121"
+ id="radialGradient3127"
+ cx="23.991123"
+ cy="44.514973"
+ fx="23.991123"
+ fy="44.514973"
+ r="20.85965"
+ gradientTransform="matrix(1,0,0,0.16707,0,37.07785)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3106"
+ id="linearGradient3113"
+ x1="15.571428"
+ y1="29.99917"
+ x2="15.571428"
+ y2="42.285942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.721659,0,0,0.722208,-0.560501,-2.082653)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3106"
+ id="linearGradient3116"
+ x1="15.571428"
+ y1="29.99917"
+ x2="15.571428"
+ y2="42.285942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.721659,0,0,0.722208,-2.003818,-2.082653)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3951"
+ id="linearGradient3122"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.587733,0,0,0.453793,1.894403,6.769561)"
+ x1="17.725422"
+ y1="3.860764"
+ x2="27.055439"
+ y2="24.431168" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0297263,0,0,1.1788768,1.0605466,-1.8584828)"
+ r="21.035482"
+ fy="14.618562"
+ fx="24.687721"
+ cy="14.618562"
+ cx="24.687721"
+ id="radialGradient5822"
+ xlink:href="#linearGradient5816"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3951"
+ id="linearGradient7539"
+ x1="16"
+ y1="2"
+ x2="32.927006"
+ y2="31.587952"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.993546,0,0,0.998054,0.154891,5.053486)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3951"
+ id="linearGradient7531"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1,3)"
+ x1="18.107143"
+ y1="53.76825"
+ x2="8.4828358"
+ y2="3.3976703" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3096"
+ id="radialGradient7529"
+ cx="23.081985"
+ cy="42.747208"
+ fx="23.081985"
+ fy="42.747208"
+ r="16.010918"
+ gradientTransform="matrix(1,0,0,0.119874,0,37.62294)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3080"
+ id="radialGradient7527"
+ cx="17.309582"
+ cy="24.508204"
+ fx="17.309582"
+ fy="24.508204"
+ r="17.031612"
+ gradientTransform="matrix(2.13216,1.122823e-2,-1.1822e-2,2.244913,-18.75993,-30.16344)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3112"
+ id="linearGradient7525"
+ x1="24.260687"
+ y1="2.5335035"
+ x2="24.832115"
+ y2="22.012075"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3128"
+ id="radialGradient7523"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.705883,0,0,1.667238,-17.94118,-19.21085)"
+ cx="21.142859"
+ cy="22.17857"
+ fx="21.142859"
+ fy="22.17857"
+ r="9" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3128"
+ id="radialGradient7521"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.999999,0,0,1.000342,1.223408e-6,-8.326495)"
+ cx="21.142859"
+ cy="22.17857"
+ fx="21.142859"
+ fy="22.17857"
+ r="9" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3223"
+ id="linearGradient7519"
+ x1="24.000008"
+ y1="31.785711"
+ x2="30.00001"
+ y2="38.499996"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.679906,0,0,0.709362,7.683475,1.608315)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3103"
+ id="radialGradient7517"
+ cx="15.269456"
+ cy="24.907877"
+ fx="15.269456"
+ fy="24.907877"
+ r="19"
+ gradientTransform="matrix(1.989063,0,0,1.427178,-17.28077,-7.054682)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3951"
+ id="linearGradient7515"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.258493,0,0,1.2607,-6.203794,1.409664)"
+ x1="16"
+ y1="2"
+ x2="38.465416"
+ y2="42.405006" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3951"
+ id="linearGradient7513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.258493,0,0,1.260118,-6.203794,-0.58013)"
+ x1="16"
+ y1="2"
+ x2="38.465416"
+ y2="42.405006" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3103"
+ id="radialGradient7511"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.989063,0,0,1.76923,-17.28077,-17.61162)"
+ cx="16.488304"
+ cy="23.537582"
+ fx="16.488304"
+ fy="23.537582"
+ r="19" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3121"
+ id="radialGradient7509"
+ cx="23.991123"
+ cy="44.514973"
+ fx="23.991123"
+ fy="44.514973"
+ r="20.85965"
+ gradientTransform="matrix(1,0,0,0.16707,0,37.07785)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3106"
+ id="linearGradient7507"
+ x1="15.571428"
+ y1="29.99917"
+ x2="15.571428"
+ y2="42.285942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3106"
+ id="linearGradient7505"
+ x1="15.571428"
+ y1="29.99917"
+ x2="15.571428"
+ y2="42.285942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3951"
+ id="linearGradient7503"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.993546,0,0,0.998054,0.154891,5.053486)"
+ x1="17.725422"
+ y1="3.860764"
+ x2="27.055439"
+ y2="24.431168" />
+ <linearGradient
+ id="linearGradient5816">
+ <stop
+ id="stop5818"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0.39655173"
+ id="stop5856" />
+ <stop
+ id="stop5820"
+ offset="1"
+ style="stop-color:#eeeeec;stop-opacity:1" />
+ </linearGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.309375,0,18.245309)"
+ r="14.288518"
+ fy="26.418547"
+ fx="15.538764"
+ cy="26.418547"
+ cx="15.538764"
+ id="radialGradient6773"
+ xlink:href="#linearGradient6767"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ r="6.1172719"
+ fy="6.093667"
+ fx="13.980121"
+ cy="6.093667"
+ cx="13.980121"
+ id="radialGradient6743"
+ xlink:href="#linearGradient6737"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(0,-1)"
+ gradientUnits="userSpaceOnUse"
+ y2="32.797932"
+ x2="21.490084"
+ y1="14.441401"
+ x1="13.751941"
+ id="linearGradient6733"
+ xlink:href="#linearGradient6725"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient6725"
+ inkscape:collect="always">
+ <stop
+ id="stop6727"
+ offset="0"
+ style="stop-color:#89afd7;stop-opacity:1" />
+ <stop
+ id="stop6729"
+ offset="1"
+ style="stop-color:#3465a4;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6737"
+ inkscape:collect="always">
+ <stop
+ id="stop6739"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop6741"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6767"
+ inkscape:collect="always">
+ <stop
+ id="stop6769"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop6771"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5816"
+ id="radialGradient4949"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0297263,0,0,1.1788768,1.0605466,-1.8584828)"
+ cx="24.687721"
+ cy="14.618562"
+ fx="24.687721"
+ fy="14.618562"
+ r="21.035482" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5816"
+ id="radialGradient4957"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0297263,0,0,1.1788768,1.0605466,-1.8584828)"
+ cx="24.687721"
+ cy="14.618562"
+ fx="24.687721"
+ fy="14.618562"
+ r="21.035482" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5816"
+ id="radialGradient4965"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0297263,0,0,1.1788768,1.0605466,-1.8584828)"
+ cx="24.687721"
+ cy="14.618562"
+ fx="24.687721"
+ fy="14.618562"
+ r="21.035482" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.5424727"
+ inkscape:cx="8.4772054"
+ inkscape:cy="23.21386"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="48px"
+ height="48px"
+ showgrid="true"
+ inkscape:window-width="872"
+ inkscape:window-height="832"
+ inkscape:window-x="0"
+ inkscape:window-y="26" />
+ <metadata
+ id="metadata6">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Vrstva 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.15283843;color:#000000;fill:url(#radialGradient5708);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000083;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4731"
+ sodipodi:cx="15.625"
+ sodipodi:cy="29.767857"
+ sodipodi:rx="13.839286"
+ sodipodi:ry="0.98214287"
+ d="M 29.464286 29.767857 A 13.839286 0.98214287 0 1 1 1.7857141,29.767857 A 13.839286 0.98214287 0 1 1 29.464286 29.767857 z"
+ transform="matrix(1.5927335,0,0,2.1126475,-0.928756,-17.814065)" />
+ <path
+ style="color:#000000;fill:url(#linearGradient4732);fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 11.710498,1.5000001 L 11.335402,7.5101883 L 4.5662103,7.5101883 L 3.5695431,16.50653 L 10.772758,16.50653 L 9.6988854,30.506095 L 3.4468149,30.506095 L 2.5909602,38.50606 L 9.1779384,38.50606 L 8.7097247,44.489767 L 17.934439,44.489767 L 18.402655,38.50606 L 26.102306,38.50606 L 25.634091,44.499999 L 36.497679,44.499999 L 36.965895,38.50606 L 42.592344,38.50606 L 43.496352,30.506095 L 37.48684,30.506095 L 38.560714,16.50653 L 44.535561,16.50653 L 45.500001,7.5101883 L 39.123357,7.5101883 L 39.498452,1.5000001 L 28.634867,1.5000001 L 28.25977,7.5101883 L 20.560118,7.5101883 L 20.935214,1.5000001 L 11.710498,1.5000001 z M 19.997472,16.50653 L 27.697124,16.50653 L 26.623253,30.506095 L 18.923602,30.506095 L 19.997472,16.50653 z "
+ id="rect4737"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccc" />
+ <path
+ style="opacity:0.26200873;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 12.662293,2.5180902 L 12.290327,8.5240213 L 5.4649928,8.5155529 L 4.6994408,15.495028 L 11.859082,15.495028 L 10.637401,31.50383 L 4.3121668,31.50383 L 3.7128969,37.498846 L 10.249669,37.498846 L 9.8112881,43.482303 L 17.022528,43.482303 L 17.491948,37.497074 L 27.200365,37.497074 L 26.738481,43.505582 L 35.56437,43.505582 L 36.026255,37.503304 L 41.699959,37.503304 L 42.364358,31.518008 L 36.406999,31.518008 L 37.604901,15.487939 L 43.665365,15.487939 L 44.377785,8.5141728 L 38.03532,8.5141728 L 38.44715,2.501924 L 29.615827,2.5368429 L 29.186539,8.4967134 L 19.465706,8.5141728 L 19.831433,2.5077438 L 12.662293,2.5180902 z M 19.077577,15.487939 L 28.791039,15.487939 L 27.56016,31.518008 L 17.840881,31.518008 L 19.077577,15.487939 z "
+ id="rect5703"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccc" />
+ </g>
+</svg>
diff --git a/libempathy-gtk/empathy-images.h b/libempathy-gtk/empathy-images.h
index 439f4c92e..5fb4e7173 100644
--- a/libempathy-gtk/empathy-images.h
+++ b/libempathy-gtk/empathy-images.h
@@ -33,9 +33,10 @@ G_BEGIN_DECLS
#define EMPATHY_IMAGE_PENDING "empathy-pending"
#define EMPATHY_IMAGE_MESSAGE "empathy-message"
+#define EMPATHY_IMAGE_NEW_MESSAGE "empathy-new-message"
#define EMPATHY_IMAGE_TYPING "empathy-typing"
-#define EMPATHY_IMAGE_CONTACT_INFORMATION "vcard_16"
-#define EMPATHY_IMAGE_GROUP_MESSAGE "gossip-group-message"
+#define EMPATHY_IMAGE_CONTACT_INFORMATION "empathy-contact-information"
+#define EMPATHY_IMAGE_GROUP_MESSAGE "empathy-group-message"
G_END_DECLS
diff --git a/libempathy-gtk/empathy-main-window.glade b/libempathy-gtk/empathy-main-window.glade
index f64f2acb7..41e5d61ae 100644
--- a/libempathy-gtk/empathy-main-window.glade
+++ b/libempathy-gtk/empathy-main-window.glade
@@ -52,7 +52,7 @@
<widget class="GtkImage" id="image885">
<property name="visible">True</property>
<property name="icon_size">1</property>
- <property name="icon_name">empathy-message</property>
+ <property name="icon_name">empathy-new-message</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
diff --git a/libempathy-gtk/empathy-status-icon.glade b/libempathy-gtk/empathy-status-icon.glade
index e44bafe95..d76a5dfda 100644
--- a/libempathy-gtk/empathy-status-icon.glade
+++ b/libempathy-gtk/empathy-status-icon.glade
@@ -30,7 +30,7 @@
<widget class="GtkImage" id="image599">
<property name="visible">True</property>
<property name="icon_size">1</property>
- <property name="icon_name">empathy-message</property>
+ <property name="icon_name">empathy-new-message</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
diff --git a/libempathy-gtk/gossip-account-chooser.c b/libempathy-gtk/gossip-account-chooser.c
index 8d3439f7e..9cb8e5d41 100644
--- a/libempathy-gtk/gossip-account-chooser.c
+++ b/libempathy-gtk/gossip-account-chooser.c
@@ -554,6 +554,7 @@ account_chooser_status_changed_cb (MissionControl *mc,
const gchar *unique_name,
GossipAccountChooser *chooser)
{
+ /* FIXME: implement */
}
static gboolean
diff --git a/libempathy-gtk/gossip-chat-window.c b/libempathy-gtk/gossip-chat-window.c
index 7dfc8e0c5..35f3f9ae7 100644
--- a/libempathy-gtk/gossip-chat-window.c
+++ b/libempathy-gtk/gossip-chat-window.c
@@ -34,6 +34,8 @@
#include <glade/glade.h>
#include <glib/gi18n.h>
+#include <libempathy/empathy-contact-manager.h>
+#include <libempathy/empathy-contact-list.h>
#include <libempathy/gossip-contact.h>
#include <libempathy/gossip-debug.h>
#include <libempathy/gossip-message.h>
@@ -45,9 +47,10 @@
//#include "gossip-chat-invite.h"
//#include "gossip-contact-info-dialog.h"
//#include "gossip-log-window.h"
-//#include "gossip-new-chatroom-dialog.h"
+#include "gossip-new-chatroom-dialog.h"
#include "gossip-preferences.h"
#include "gossip-private-chat.h"
+#include "gossip-group-chat.h"
//#include "gossip-sound.h"
#include "gossip-ui-utils.h"
@@ -228,7 +231,7 @@ typedef enum {
} DndDragType;
static const GtkTargetEntry drag_types_dest[] = {
- { "text/contact-id", GTK_TARGET_SAME_APP, DND_DRAG_TYPE_CONTACT_ID },
+ { "text/contact-id", 0, DND_DRAG_TYPE_CONTACT_ID },
{ "GTK_NOTEBOOK_TAB", GTK_TARGET_SAME_APP, DND_DRAG_TYPE_TAB },
};
@@ -759,16 +762,11 @@ chat_window_update_menu (GossipChatWindow *window)
is_connected = gossip_chat_is_connected (priv->current_chat);
if (gossip_chat_is_group_chat (priv->current_chat)) {
-#if 0
-FIXME:
- GossipGroupChat *group_chat;
- GossipChatroomManager *manager;
- GossipChatroom *chatroom;
- GossipChatroomId id;
- gboolean saved;
+ GossipGroupChat *group_chat;
+ gboolean saved = TRUE;
+ gboolean show_contacts;
group_chat = GOSSIP_GROUP_CHAT (priv->current_chat);
- chatroom = gossip_group_chat_get_chatroom (group_chat);
/* Show / Hide widgets */
gtk_widget_show (priv->menu_room);
@@ -780,9 +778,11 @@ FIXME:
/* Can we add this room to our favourites and are we
* connected to the room?
*/
+ /* FIXME:
manager = gossip_app_get_chatroom_manager ();
id = gossip_chatroom_get_id (chatroom);
saved = gossip_chatroom_manager_find (manager, id) != NULL;
+ */
gtk_widget_set_sensitive (priv->menu_room_add, !saved);
gtk_widget_set_sensitive (priv->menu_conv_insert_smiley, is_connected);
@@ -795,7 +795,7 @@ FIXME:
* with 2 or more group chat windows where showing
* contacts doesn't do anything.
*/
- show_contacts = gossip_chat_get_show_contacts (priv->current_chat);
+ show_contacts = gossip_group_chat_get_show_contacts (group_chat);
g_signal_handlers_block_by_func (priv->menu_room_show_contacts,
chat_window_show_contacts_toggled_cb,
@@ -808,7 +808,6 @@ FIXME:
g_signal_handlers_unblock_by_func (priv->menu_room_show_contacts,
chat_window_show_contacts_toggled_cb,
window);
-#endif
} else {
GossipPrivateChat *chat;
GossipSubscription subscription;
@@ -1010,7 +1009,7 @@ chat_window_show_contacts_toggled_cb (GtkWidget *menuitem,
g_return_if_fail (priv->current_chat != NULL);
show = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (priv->menu_room_show_contacts));
- //gossip_group_chat_set_show_contacts (GOSSIP_GROUP_CHAT (priv->current_chat), show);
+ gossip_group_chat_set_show_contacts (GOSSIP_GROUP_CHAT (priv->current_chat), show);
}
static void
@@ -1030,7 +1029,6 @@ static void
chat_window_room_set_topic_activate_cb (GtkWidget *menuitem,
GossipChatWindow *window)
{
-/*FIXME
GossipChatWindowPriv *priv;
priv = GET_PRIV (window);
@@ -1040,7 +1038,7 @@ chat_window_room_set_topic_activate_cb (GtkWidget *menuitem,
group_chat = GOSSIP_GROUP_CHAT (priv->current_chat);
gossip_group_chat_set_topic (group_chat);
- }*/
+ }
}
static void
@@ -1051,7 +1049,7 @@ chat_window_room_join_new_activate_cb (GtkWidget *menuitem,
priv = GET_PRIV (window);
- // FIXME: gossip_new_chatroom_dialog_show (GTK_WINDOW (priv->dialog));
+ gossip_new_chatroom_dialog_show (GTK_WINDOW (priv->dialog));
}
static void
@@ -1591,14 +1589,15 @@ chat_window_drag_data_received (GtkWidget *widget,
guint time,
GossipChatWindow *window)
{
+ /* FIXME: DnD of contact do not seems to work... */
if (info == DND_DRAG_TYPE_CONTACT_ID) {
-#if 0
-FIXME:
- GossipChatManager *manager;
- GossipContact *contact;
- GossipChat *chat;
- GossipChatWindow *old_window;
- const gchar *id = NULL;
+ EmpathyContactManager *manager;
+ GossipContact *contact;
+ GossipChat *chat;
+ GossipChatWindow *old_window;
+ McAccount *account;
+ const gchar *id = NULL;
+ gchar *chat_id;
if (selection) {
id = (const gchar*) selection->data;
@@ -1606,15 +1605,20 @@ FIXME:
gossip_debug (DEBUG_DOMAIN, "DND contact from roster with id:'%s'", id);
- contact = gossip_session_find_contact (gossip_app_get_session (), id);
+ manager = empathy_contact_manager_new ();
+ contact = empathy_contact_list_find (EMPATHY_CONTACT_LIST (manager), id);
+ g_object_unref (manager);
+
if (!contact) {
gossip_debug (DEBUG_DOMAIN, "DND contact from roster not found");
return;
}
- manager = gossip_app_get_chat_manager ();
- chat = GOSSIP_CHAT (gossip_chat_manager_get_chat (manager, contact));
+ account = gossip_contact_get_account (contact);
+ chat_id = empathy_tp_chat_build_id (account, id);
+ chat = gossip_chat_window_find_chat_by_id (chat_id);
old_window = gossip_chat_get_window (chat);
+ g_free (chat_id);
if (old_window) {
if (old_window == window) {
@@ -1628,7 +1632,7 @@ FIXME:
}
/* Added to take care of any outstanding chat events */
- gossip_chat_manager_show_chat (manager, contact);
+ gossip_chat_present (chat);
/* We should return TRUE to remove the data when doing
* GDK_ACTION_MOVE, but we don't here otherwise it has
@@ -1636,7 +1640,6 @@ FIXME:
* anyway with add_chat() and remove_chat().
*/
gtk_drag_finish (context, TRUE, FALSE, time);
-#endif
}
else if (info == DND_DRAG_TYPE_TAB) {
GossipChat *chat = NULL;
diff --git a/libempathy-gtk/gossip-chat.c b/libempathy-gtk/gossip-chat.c
index 70d900d9f..4072b6eae 100644
--- a/libempathy-gtk/gossip-chat.c
+++ b/libempathy-gtk/gossip-chat.c
@@ -1072,11 +1072,18 @@ chat_state_changed_cb (EmpathyTpChat *tp_chat,
GossipChat *chat)
{
GossipChatPriv *priv;
+ GossipContact *own_contact;
GList *l;
gboolean was_composing;
priv = GET_PRIV (chat);
+ own_contact = gossip_contact_get_user (contact);
+ if (gossip_contact_equal (own_contact, contact)) {
+ /* We don't care about our own chat state */
+ return;
+ }
+
was_composing = (priv->compositors != NULL);
/* Find the contact in the list. After that l is the list elem or NULL */
diff --git a/libempathy-gtk/gossip-contact-list-store.c b/libempathy-gtk/gossip-contact-list-store.c
index d9ece26bb..816102b2d 100644
--- a/libempathy-gtk/gossip-contact-list-store.c
+++ b/libempathy-gtk/gossip-contact-list-store.c
@@ -718,6 +718,7 @@ contact_list_store_setup (GossipContactListStore *store)
contact_list_store_state_sort_func,
store, NULL);
+ priv->sort_criterium = GOSSIP_CONTACT_LIST_STORE_SORT_NAME;
gossip_contact_list_store_set_sort_criterium (store, priv->sort_criterium);
}
diff --git a/libempathy-gtk/gossip-group-chat.c b/libempathy-gtk/gossip-group-chat.c
index 6cf897d67..f16bee0de 100644
--- a/libempathy-gtk/gossip-group-chat.c
+++ b/libempathy-gtk/gossip-group-chat.c
@@ -92,7 +92,6 @@ static void group_chat_topic_entry_activate_cb (GtkWidget *ent
static void group_chat_topic_response_cb (GtkWidget *dialog,
gint response,
GossipGroupChat *chat);
-void gossip_group_chat_set_topic (GossipGroupChat *chat);
static const gchar * group_chat_get_name (GossipChat *chat);
static gchar * group_chat_get_tooltip (GossipChat *chat);
static const gchar * group_chat_get_status_icon_name (GossipChat *chat);
@@ -209,7 +208,7 @@ gossip_group_chat_new (McAccount *account,
}
gboolean
-gossip_group_chat_get_show_contacts (GossipChat *chat)
+gossip_group_chat_get_show_contacts (GossipGroupChat *chat)
{
GossipGroupChat *group_chat;
GossipGroupChatPriv *priv;
@@ -223,8 +222,8 @@ gossip_group_chat_get_show_contacts (GossipChat *chat)
}
void
-gossip_group_chat_set_show_contacts (GossipChat *chat,
- gboolean show)
+gossip_group_chat_set_show_contacts (GossipGroupChat *chat,
+ gboolean show)
{
GossipGroupChat *group_chat;
GossipGroupChatPriv *priv;
@@ -246,6 +245,55 @@ gossip_group_chat_set_show_contacts (GossipChat *chat,
}
}
+void
+gossip_group_chat_set_topic (GossipGroupChat *chat)
+{
+ GossipGroupChatPriv *priv;
+ GossipChatWindow *chat_window;
+ GtkWidget *chat_dialog;
+ GtkWidget *dialog;
+ GtkWidget *entry;
+ GtkWidget *hbox;
+ const gchar *topic;
+
+ g_return_if_fail (GOSSIP_IS_GROUP_CHAT (chat));
+
+ priv = GET_PRIV (chat);
+
+ chat_window = gossip_chat_get_window (GOSSIP_CHAT (chat));
+ chat_dialog = gossip_chat_window_get_dialog (chat_window);
+
+ dialog = gtk_message_dialog_new (GTK_WINDOW (chat_dialog),
+ 0,
+ GTK_MESSAGE_QUESTION,
+ GTK_BUTTONS_OK_CANCEL,
+ _("Enter the new topic you want to set for this room:"));
+
+ topic = gtk_label_get_text (GTK_LABEL (priv->label_topic));
+
+ hbox = gtk_hbox_new (FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),
+ hbox, FALSE, TRUE, 4);
+
+ entry = gtk_entry_new ();
+ gtk_entry_set_text (GTK_ENTRY (entry), topic);
+ gtk_editable_select_region (GTK_EDITABLE (entry), 0, -1);
+
+ gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 4);
+
+ g_object_set (GTK_MESSAGE_DIALOG (dialog)->label, "use-markup", TRUE, NULL);
+ g_object_set_data (G_OBJECT (dialog), "entry", entry);
+
+ g_signal_connect (entry, "activate",
+ G_CALLBACK (group_chat_topic_entry_activate_cb),
+ dialog);
+ g_signal_connect (dialog, "response",
+ G_CALLBACK (group_chat_topic_response_cb),
+ chat);
+
+ gtk_widget_show_all (dialog);
+}
+
static void
group_chat_create_ui (GossipGroupChat *chat)
{
@@ -402,53 +450,6 @@ group_chat_topic_response_cb (GtkWidget *dialog,
gtk_widget_destroy (dialog);
}
-void
-gossip_group_chat_set_topic (GossipGroupChat *chat)
-{
- GossipGroupChatPriv *priv;
- GossipChatWindow *chat_window;
- GtkWidget *chat_dialog;
- GtkWidget *dialog;
- GtkWidget *entry;
- GtkWidget *hbox;
- const gchar *topic;
-
- priv = GET_PRIV (chat);
-
- chat_window = gossip_chat_get_window (GOSSIP_CHAT (chat));
- chat_dialog = gossip_chat_window_get_dialog (chat_window);
-
- dialog = gtk_message_dialog_new (GTK_WINDOW (chat_dialog),
- 0,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_OK_CANCEL,
- _("Enter the new topic you want to set for this room:"));
-
- topic = gtk_label_get_text (GTK_LABEL (priv->label_topic));
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),
- hbox, FALSE, TRUE, 4);
-
- entry = gtk_entry_new ();
- gtk_entry_set_text (GTK_ENTRY (entry), topic);
- gtk_editable_select_region (GTK_EDITABLE (entry), 0, -1);
-
- gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 4);
-
- g_object_set (GTK_MESSAGE_DIALOG (dialog)->label, "use-markup", TRUE, NULL);
- g_object_set_data (G_OBJECT (dialog), "entry", entry);
-
- g_signal_connect (entry, "activate",
- G_CALLBACK (group_chat_topic_entry_activate_cb),
- dialog);
- g_signal_connect (dialog, "response",
- G_CALLBACK (group_chat_topic_response_cb),
- chat);
-
- gtk_widget_show_all (dialog);
-}
-
static const gchar *
group_chat_get_name (GossipChat *chat)
{
diff --git a/libempathy-gtk/gossip-group-chat.h b/libempathy-gtk/gossip-group-chat.h
index 871d65d61..37a7772bb 100644
--- a/libempathy-gtk/gossip-group-chat.h
+++ b/libempathy-gtk/gossip-group-chat.h
@@ -57,11 +57,12 @@ struct _GossipGroupChatClass {
};
GType gossip_group_chat_get_type (void) G_GNUC_CONST;
-GossipGroupChat *gossip_group_chat_new (McAccount *account,
- TpChan *tp_chan);
-gboolean gossip_group_chat_get_show_contacts (GossipChat *chat);
-void gossip_group_chat_set_show_contacts (GossipChat *chat,
- gboolean show);
+GossipGroupChat *gossip_group_chat_new (McAccount *account,
+ TpChan *tp_chan);
+gboolean gossip_group_chat_get_show_contacts (GossipGroupChat *chat);
+void gossip_group_chat_set_show_contacts (GossipGroupChat *chat,
+ gboolean show);
+void gossip_group_chat_set_topic (GossipGroupChat *chat);
G_END_DECLS
diff --git a/libempathy-gtk/gossip-new-chatroom-dialog.c b/libempathy-gtk/gossip-new-chatroom-dialog.c
index 3200d543d..33c6f723e 100644
--- a/libempathy-gtk/gossip-new-chatroom-dialog.c
+++ b/libempathy-gtk/gossip-new-chatroom-dialog.c
@@ -127,7 +127,6 @@ static void new_chatroom_dialog_model_row_deleted_cb (GtkTreeMode
GossipNewChatroomDialog *dialog);
static void new_chatroom_dialog_model_selection_changed (GtkTreeSelection *selection,
GossipNewChatroomDialog *dialog);
-static void new_chatroom_dialog_set_defaults (GossipNewChatroomDialog *dialog);
static void new_chatroom_dialog_join (GossipNewChatroomDialog *dialog);
static void new_chatroom_dialog_request_handles_cb (DBusGProxy *proxy,
GArray *handles,
@@ -418,11 +417,29 @@ new_chatroom_dialog_update_widgets (GossipNewChatroomDialog *dialog)
protocol = mc_profile_get_protocol_name (profile);
/* hardcode here known protocols */
- if (strcmp (protocol, "jabber") == 0 ||
- strcmp (protocol, "salut") == 0) {
+ if (strcmp (protocol, "jabber") == 0) {
+ const gchar *server;
+
+ server = mc_profile_get_default_account_domain (profile);
+ if (server) {
+ gchar *conference_server;
+
+ conference_server = g_strconcat ("conference.",
+ server, NULL);
+ gtk_entry_set_text (GTK_ENTRY (dialog->entry_server),
+ conference_server);
+ g_free (conference_server);
+ }
+
gtk_widget_show (dialog->hbox_server);
gtk_widget_show (dialog->hbox_nick);
gtk_widget_show (dialog->vbox_browse);
+
+ }
+ else if (strcmp (protocol, "salut") == 0) {
+ gtk_widget_hide (dialog->hbox_server);
+ gtk_widget_show (dialog->hbox_nick);
+ gtk_widget_show (dialog->vbox_browse);
}
else if (strcmp (protocol, "irc") == 0) {
gtk_widget_hide (dialog->hbox_server);
@@ -434,7 +451,6 @@ new_chatroom_dialog_update_widgets (GossipNewChatroomDialog *dialog)
gtk_widget_hide (dialog->vbox_browse);
}
- new_chatroom_dialog_set_defaults (dialog);
new_chatroom_dialog_update_buttons (dialog);
/* Final set up of the dialog */
@@ -583,33 +599,6 @@ new_chatroom_dialog_model_selection_changed (GtkTreeSelection *selection,
}
static void
-new_chatroom_dialog_set_defaults (GossipNewChatroomDialog *dialog)
-{
- McAccount *account;
- McProfile *profile;
- GossipAccountChooser *account_chooser;
- const gchar *server;
-
- account_chooser = GOSSIP_ACCOUNT_CHOOSER (dialog->account_chooser);
- account = gossip_account_chooser_get_account (account_chooser);
- profile = mc_account_get_profile (account);
- server = mc_profile_get_default_account_domain (profile);
-
- if (server) {
- gchar *conference_server;
-
- conference_server = g_strconcat ("conference.",
- server, NULL);
- gtk_entry_set_text (GTK_ENTRY (dialog->entry_server),
- conference_server);
- g_free (conference_server);
- }
-
- g_object_unref (account);
- g_object_unref (profile);
-}
-
-static void
new_chatroom_dialog_join (GossipNewChatroomDialog *dialog)
{
McAccount *account;
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index 8e8a52aca..3c4f55423 100644
--- a/libempathy/empathy-tp-chat.c
+++ b/libempathy/empathy-tp-chat.c
@@ -488,14 +488,24 @@ empathy_tp_chat_get_id (EmpathyTpChat *chat)
return priv->id;
}
- priv->id = empathy_tp_chat_build_id (priv->account, priv->tp_chan);
+ priv->id = empathy_tp_chat_build_id_for_chan (priv->account, priv->tp_chan);
return priv->id;
}
gchar *
-empathy_tp_chat_build_id (McAccount *account,
- TpChan *tp_chan)
+empathy_tp_chat_build_id (McAccount *account,
+ const gchar *contact_id)
+{
+ /* A handle name is unique only for a specific account */
+ return g_strdup_printf ("%s/%s",
+ mc_account_get_unique_name (account),
+ contact_id);
+}
+
+gchar *
+empathy_tp_chat_build_id_for_chan (McAccount *account,
+ TpChan *tp_chan)
{
MissionControl *mc;
TpConn *tp_conn;
@@ -511,6 +521,7 @@ empathy_tp_chat_build_id (McAccount *account,
tp_conn = mission_control_get_connection (mc, account, NULL);
g_object_unref (mc);
+ /* Get the handle's name */
handles = g_array_new (FALSE, FALSE, sizeof (guint));
g_array_append_val (handles, tp_chan->handle);
if (!tp_conn_inspect_handles (DBUS_G_PROXY (tp_conn),
@@ -528,10 +539,7 @@ empathy_tp_chat_build_id (McAccount *account,
return NULL;
}
- /* A handle name is unique only for a specific account */
- id = g_strdup_printf ("%s/%s",
- mc_account_get_unique_name (account),
- *names);
+ id = empathy_tp_chat_build_id (account, *names);
g_strfreev (names);
g_object_unref (tp_conn);
diff --git a/libempathy/empathy-tp-chat.h b/libempathy/empathy-tp-chat.h
index 0bd3395f2..a9278c3f1 100644
--- a/libempathy/empathy-tp-chat.h
+++ b/libempathy/empathy-tp-chat.h
@@ -55,18 +55,20 @@ struct _EmpathyTpChatClass {
GObjectClass parent_class;
};
-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 (GossipContact *contact);
-void empathy_tp_chat_request_pending (EmpathyTpChat *chat);
-void empathy_tp_chat_send (EmpathyTpChat *chat,
- GossipMessage *message);
-void empathy_tp_chat_set_state (EmpathyTpChat *chat,
- TelepathyChannelChatState state);
-const gchar * empathy_tp_chat_get_id (EmpathyTpChat *chat);
-gchar * empathy_tp_chat_build_id (McAccount *account,
- TpChan *tp_chan);
+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 (GossipContact *contact);
+void empathy_tp_chat_request_pending (EmpathyTpChat *chat);
+void empathy_tp_chat_send (EmpathyTpChat *chat,
+ GossipMessage *message);
+void empathy_tp_chat_set_state (EmpathyTpChat *chat,
+ TelepathyChannelChatState state);
+const gchar * empathy_tp_chat_get_id (EmpathyTpChat *chat);
+gchar * empathy_tp_chat_build_id (McAccount *account,
+ const gchar *contact_id);
+gchar * empathy_tp_chat_build_id_for_chan (McAccount *account,
+ TpChan *tp_chan);
G_END_DECLS
diff --git a/src/empathy-chat-main.c b/src/empathy-chat-main.c
index 31918d32f..86b4608bd 100644
--- a/src/empathy-chat-main.c
+++ b/src/empathy-chat-main.c
@@ -113,7 +113,7 @@ new_channel_cb (EmpathyChandler *chandler,
mc = gossip_mission_control_new ();
account = mission_control_get_account_for_connection (mc, tp_conn, NULL);
- id = empathy_tp_chat_build_id (account, tp_chan);
+ id = empathy_tp_chat_build_id_for_chan (account, tp_chan);
chat = gossip_chat_window_find_chat_by_id (id);
g_free (id);