diff options
26 files changed, 994 insertions, 141 deletions
@@ -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 Binary files differindex da01aff75..da01aff75 100644 --- a/data/16x16/empathy-message-new.png +++ b/data/16x16/empathy-new-message diff --git a/data/16x16/empathy-proto-irc.png b/data/16x16/empathy-proto-irc.png Binary files differnew file mode 100644 index 000000000..00647bba6 --- /dev/null +++ b/data/16x16/empathy-proto-irc.png 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 Binary files differnew file mode 100644 index 000000000..f75737ff2 --- /dev/null +++ b/data/22x22/empathy-new-message.png diff --git a/data/22x22/empathy-proto-irc.png b/data/22x22/empathy-proto-irc.png Binary files differnew file mode 100644 index 000000000..fefb85130 --- /dev/null +++ b/data/22x22/empathy-proto-irc.png 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 Binary files differnew file mode 100644 index 000000000..471742a86 --- /dev/null +++ b/data/32x32/empathy-proto-irc.png 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); |