roster_tweaks/0002755000175500017550000000000013171473716013520 5ustar debacledebacleroster_tweaks/manifest.ini0000644000175500017550000000055313171473716016030 0ustar debacledebacle[info] name: Roster Tweaks short_name: roster_tweaks version: 1.0.0 description: Allows user to tweak roster window appearance (eg. make it compact). Added ability to quickly change the status message to all connected accounts. authors = Denis Fomin homepage = http://trac-plugins.gajim.org/wiki/RosterTweaksPlugin min_gajim_version: 0.16.11 roster_tweaks/__init__.py0000644000175500017550000000005613171473716015630 0ustar debacledebaclefrom .roster_tweaks import RosterTweaksPlugin roster_tweaks/config_dialog.ui0000644000175500017550000001454213171473716016647 0ustar debacledebacle False True False 9 vertical 4 Hide status combobox True False False False True False True 0 Use Ctrl +M to hide/show menu True False False False True False True 1 Show quick-change status field True False False False True False True 2 Always show contacts status substrings True False False False True False True 3 False True False True True False True 0 True False True none True False gtk-stop 1 False False 1 True False True none True False gtk-stop 1 False False 2 roster_tweaks/roster_tweaks.png0000644000175500017550000001737513171473716017135 0ustar debacledebaclePNG  IHDR@@iqgAMA a pHYs(JtEXtSoftwarePaint.NET v3.5.5IzIDATx^TTW'j51Xҋ* A^& UĆJw ػ[1֨1}'hb0}{Ioެ[̙=gg02d+RgDuDD!B%F.I ,N<]7B%p%+[+X<8f$~]qbAbM|b3-t(8VJ11}"wZSo]]U˶)F1L,Q ?ݜm|VvŔZE{W|>{gūO/?t"`Jm}O5jo}`s¾n9[[_魷ot[;^px_ߟA*/>oG\tAy޶1sNV+m}2vv~.7O~s(/{YK_\Y28'6z ~VxOp~z?\?^5_?4:q1˭|gfݣIG殹ʓ?a7?8Kyc_p*x|5N&q.G<ϹIw6Wzo/q/8p_}}W~ޫ o9v]~?b[xBdx+(^~xPq.7%82'14K"z[Xy)sNɣQĕC +\5FsqV]EM\KYon|fH>ЌFFZI>H,~~O8^̲KYxIA^~1N!BfasK|y_p.?YrkČ9ѥ\@y$/ )J2\h53)Md QLr)RJV4c #eN^ȯLyO[?ZDߗ<*" 枒<(ҖŝGGƟMUW>պF'sNҀ3`ӑQ,#@*+L\w]4²hB;#3АJLag1'$"lƭhIL4^)=Ȓy Ë`3 8s1&~Ia,#6OJN("Fls1M`&\5 1&H!!2d`\ jH_#mwAx~o,9$gG: +>ŧqp#XfDߑǡ5_?1 x y ,!%\r ˹h&f f6Ј kҌhjBqA>ݙ"czLQ4x*̺g!(q)zǮcv{>gMcu`aS?fAY&|ɆňJi+ /#FdcAD'̣c^d`܅Eij)>Aԃec!|rNnOwPLfW>{Tw$\bS4!b "!BX&bsd?kc)2/(?1$n.=N|5ZEIXO^?iTtD>B4Ŗ2 BhTRS0DYP K[Q# (R\Op(!|jYN# !"uH[py\~pWhDoBhQS.׏1 A/KDf? # 7o?r n>v} [W K*\{\#fO=mG{p8  R_/P + I3w! E?m+gFœHvy!"&k"#2i""sF5yѳ!ӳN;a(Sx>yC)}N=[ ?aJ_qD)~U? ?9(~/L׉+9g_4ܾanjy#}xg^w~O>k7舔̄ ŌQڦϩwBc05@ 2P's<2X1fwΔamn3 ~x, 8pg΢uM $G9e‹HafM`G>8"ERf>04O2<+ۛ//={LpgZ8elCC# zrXV ^aiq%vpx1-{|hn !џ&zBKb8LDQO]HY}^dB&3#Us4!4C jCxfogc)=y"(S68AdܻDƄ(N{!S\'Mޥp+EëGT("+!0g;#rѻ&d&āHNz3M . yAv@P /˚f(0b* ֡SotCLb?r3ϩDt$>Ѵuxflpvy&Ҟ5/u2}۴jؤҀ½wOek ىX7i p.wCᚹi(&~@i/hF0JXz@A0] U8!D}0|&|&UÃ]^)\<#!o، [2Ap ȌMc}6cF…L,L#ѠءshBGە 0sKyzsЊoEZ!4%_7llf04z'ى0~I}6Qհ !̀/pGacYq`3FnME84d:&H `biH:M(Pڙ* BRp Mh0= FfI5 jvD΋-?g m)-34%3CcK}t 4z-k0FJw1)6u+ly ;Ve?G锦1`0wUV6";a{i>8O $ Su68'! ;2e Bx;}>znda7­S9RHQH0,{3w nXNUٓƀ#V),GouZ-l$`.E#XܜYp❾C" w`Sh;/рV563D/,aꖄ!)A^jl$m'oRXp1#`1FX,X֬WqUƅN Q>yQ<xB]<M`F5Xaڷx!|`& hčL0KX Fk`Y m4=]a/0ꭽI%Ңf+?a|@etYYG3E0u0Qq ɥа Si wkЉwNVaʨbWI-(z@Sgŭ0į&+;MC9NfdfBb[H= ƯiZ&pqRV0MSQS7LG3#a$Gە)w#f-pDB8#iNL`"_ Ӹ500\0 _ո/b+M8lJn_ 0bb@(e a"y ',eHC Z|;@7_> h;:u}a_ 5Nn(юYU0Z 0_6Wޣ3֋>{ؕr #9"0B2FH`z&ehLb%u̢`1, \=j8/Et ݽѲP| = Xc@`L"`eb(0Zed))^7l1 ?ȿYbėK c cWЀ4`% %hFa<䟆a0pG_='t`faYD'!PwpX σi |"@? "0l~C\G)?_QiF114 #.I|IJk}a>Zo}}H4~zEW Gh:` 9+0 0R/$4#_ ^ƹ >gB4mȮ5ד4Aèrè ~91a: (d&3`94v~jL8ACߞ)}вXaʱp46}h4i[VN` St +~h9/R! ᙾ ۠l1p,fF$ Sb7l2G0Qew3H;@;. ѕO8r h C1@7LTeqƤCRW uF G[ZGP0 !/K"A"p˶#!o=b%~~%FFt_DdOdwg|/p(tv=fu2MFT.A`.Ծ#vvabԘmVYȿ/$*o+|3c브9`㗱;d,!?(}쇆RmO;y&meڪ{ڴS݆ճEO}ZOԬuǐ;p8YێmhŇ=s{ضgPO骧߶'fM?˅9IENDB`roster_tweaks/roster_tweaks.py0000644000175500017550000002314113171473716016765 0ustar debacledebacle# -*- coding: utf-8 -*- from gi.repository import Pango from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GLib from gajim.common import app, ged, helpers from gajim.plugins import GajimPlugin from gajim.plugins.gui import GajimPluginConfigDialog from gajim.dialogs import ChangeActivityDialog, ChangeMoodDialog from gajim import gtkgui_helpers class RosterTweaksPlugin(GajimPlugin): def init(self): self.description = _( 'Allows user to tweak roster window appearance ' '(eg. make it compact).') self.config_default_values = {'hide_status_combo': (False, ''), 'use_ctr_m': (False, ''), 'menu_visible': (True, ''), 'quick_status': (False, ''), 'contact_status_subs': (False, ''), } self.events_handlers = {'our-show': (ged.GUI2, self.our_show), 'pep-received': (ged.GUI2, self.pep_received)} self.gui_extension_points = { 'roster_draw_contact': (self.roster_draw_contact, self.disconnect_roster_draw_contact), } self.roster = app.interface.roster self.config_dialog = RosterTweaksPluginConfigDialog(self) def roster_draw_contact(self, roster, jid, account, contact): self.connected = True if not self.active: return if not self.config['contact_status_subs']: return child_iters = roster._get_contact_iter( jid, account, contact, roster.model) if not child_iters: return name = roster.model[child_iters[0]][1] if '\n