Tkabber

Check-in [5581a53077]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fixed finding the conference roster item in the user's roster, made sure the bare conference JID goes first when rendering the roster tooltip. Don't add roster item notes to the conference occupants.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 5581a530776a2588d4937cbf4c6a139903b9821d
User & Date: sgolovan 2016-01-15 10:30:17
Context
2016-01-15
10:32
Fixed typo. check-in: 1317b1175e user: sgolovan tags: trunk
10:30
Fixed finding the conference roster item in the user's roster, made sure the bare conference JID goes first when rendering the roster tooltip. Don't add roster item notes to the conference occupants. check-in: 5581a53077 user: sgolovan tags: trunk
2016-01-14
17:29
Started implementing user avatar (XEP-0084) specification. Currently only uploading avatar works. check-in: 28af72a735 user: sgolovan tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to ChangeLog.










1
2
3
4
5
6
7









2016-01-14  Sergei Golovan  <sgolovan@nes.ru>

	* plugins/general/gpgme.tcl: Fixed behavior of the dialog with
	  conference participants to encrypt to if there's none of them.
	  Also, removed unnecessary catch guards.

	* utils.tcl: Add the checkbox dialog title to the dialog window
>
>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2016-01-15  Sergei Golovan  <sgolovan@nes.ru>

	* ifacetk/roster.tcl, roster.tcl: Fixed finding the conference roster
	  item in the user's roster, made sure the bare conference JID goes
	  first when rendering the roster tooltip.
	
	* plugins/roster/annotations.tcl: Don't add roster item notes to the
	  conference occupants.

2016-01-14  Sergei Golovan  <sgolovan@nes.ru>

	* plugins/general/gpgme.tcl: Fixed behavior of the dialog with
	  conference participants to encrypt to if there's none of them.
	  Also, removed unnecessary catch guards.

	* utils.tcl: Add the checkbox dialog title to the dialog window

Changes to ifacetk/roster.tcl.

1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
    # TODO: metacontacts
    if {$jids == {}} {
        set jids [list $jid]
    }

    set text {}
    set i 0
    foreach j $jids {
        append text "\n[[namespace current]::user_popup_info $xlib $j $i]"
        incr i
    }
    set text [string trimleft $text "\n"]
    return $text
}

proc roster::user_popup_info {xlib user i} {







|
|







1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
    # TODO: metacontacts
    if {$jids == {}} {
        set jids [list $jid]
    }

    set text {}
    set i 0
    foreach j [lsort $jids] {
        append text "\n[user_popup_info $xlib $j $i]"
        incr i
    }
    set text [string trimleft $text "\n"]
    return $text
}

proc roster::user_popup_info {xlib user i} {
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
    } else {
        set subsc ""
        set ask ""
    }

    set user_popup_info "$name: $status$subsc$ask"

    if {!([string equal $category1 conference] && $i > 0) || \
            $options(show_conference_user_info)} {
        hook::run roster_user_popup_info_hook \
            [namespace which -variable user_popup_info] $xlib $user
    }

    return $user_popup_info
}







|







1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
    } else {
        set subsc ""
        set ask ""
    }

    set user_popup_info "$name: $status$subsc$ask"

    if {$category1 ne "conference" || $i == 0 || \
            $options(show_conference_user_info)} {
        hook::run roster_user_popup_info_hook \
            [namespace which -variable user_popup_info] $xlib $user
    }

    return $user_popup_info
}

Changes to plugins/roster/annotations.tcl.

149
150
151
152
153
154
155
156

157




158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
        -type user -buttons ok -default 0 -cancel 0
}

proc annotations::add_user_popup_info {infovar xlib jid} {
    variable notes
    upvar 0 $infovar info

    set jid [::xmpp::jid::stripResource $jid]






    if {[info exists notes($xlib,note,$jid)] && \
            $notes($xlib,note,$jid) != ""} {
        append info "\n\tNote:\t"
        append info [string map [list "\n" "\n\t\t"] "$notes($xlib,note,$jid)"]

        if {0} {
            if {[info exists notes($xlib,cdate,$jid)]} {
                append info [format "\n\tNote created: %s" \
                                 [clock format $notes($xlib,cdate,$jid) \
                                        -format "%Y-%m-%d %T" -gmt false]]
            }
            if {[info exists notes($xlib,mdate,$jid)]} {
                append info [format "\n\tNote modified: %s" \
                                 [clock format $notes($xlib,mdate,$jid) \
                                        -format "%Y-%m-%d %T" -gmt false]]
            }
        }
    }
}

hook::add roster_user_popup_info_hook \







|
>

>
>
>
>
|
|

|


|

|


|

|







149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
        -type user -buttons ok -default 0 -cancel 0
}

proc annotations::add_user_popup_info {infovar xlib jid} {
    variable notes
    upvar 0 $infovar info

    set bjid [::xmpp::jid::stripResource $jid]
    lassign [::roster::get_category_and_subtype $xlib $bjid] category subtype

    if {![::xmpp::jid::equal $bjid $jid] && $categoty ne "user"} {
        return
    }

    if {[info exists notes($xlib,note,$bjid)] && \
            $notes($xlib,note,$bjid) != ""} {
        append info "\n\tNote:\t"
        append info [string map [list "\n" "\n\t\t"] "$notes($xlib,note,$bjid)"]

        if {0} {
            if {[info exists notes($xlib,cdate,$bjid)]} {
                append info [format "\n\tNote created: %s" \
                                 [clock format $notes($xlib,cdate,$bjid) \
                                        -format "%Y-%m-%d %T" -gmt false]]
            }
            if {[info exists notes($xlib,mdate,$bjid)]} {
                append info [format "\n\tNote modified: %s" \
                                 [clock format $notes($xlib,mdate,$bjid) \
                                        -format "%Y-%m-%d %T" -gmt false]]
            }
        }
    }
}

hook::add roster_user_popup_info_hook \

Changes to roster.tcl.

373
374
375
376
377
378
379
380
381
382
383
384


385




386
387
388
389
390
391
392
    }

    if {$jid in $roster(jids,$xlib)} {
        return $jid
    }

    lassign [get_category_and_subtype $xlib $jid] category subtype
    if {$category == "user"} {
        set rjid [::xmpp::jid::removeResource $jid]
        if {$rjid in $roster(jids,$xlib)} {
            lassign [get_category_and_subtype $xlib $rjid] rcategory rsubtype
            if {$category == $rcategory} {


                return $rjid




            }
        }
    }
    return ""
}

proc roster::get_label {xlib jid} {







|



|
>
>
|
>
>
>
>







373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
    }

    if {$jid in $roster(jids,$xlib)} {
        return $jid
    }

    lassign [get_category_and_subtype $xlib $jid] category subtype
    if {$category eq "user"} {
        set rjid [::xmpp::jid::removeResource $jid]
        if {$rjid in $roster(jids,$xlib)} {
            lassign [get_category_and_subtype $xlib $rjid] rcategory rsubtype
            switch -- $rcategory {
                user -
                conference {
                    return $rjid
                }
                default {
                    return ""
                }
            }
        }
    }
    return ""
}

proc roster::get_label {xlib jid} {
468
469
470
471
472
473
474

475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491

    if {$node == "" && $resource == ""} {
        set updomain [lindex [split $server .] 0]
        set category service

        switch -- $updomain {
            aim        -

            icq        -
            irc        -
            jabber     -
            jud        -
            msn        -
            mrim       -
            pager      -
            rss        -
            serverlist -
            sms               -
            smtp       -
            yahoo {
                set subtype $updomain
            }
            gg {
                set subtype gadu-gadu
            }







>









|







474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498

    if {$node == "" && $resource == ""} {
        set updomain [lindex [split $server .] 0]
        set category service

        switch -- $updomain {
            aim        -
            conference -
            icq        -
            irc        -
            jabber     -
            jud        -
            msn        -
            mrim       -
            pager      -
            rss        -
            serverlist -
            sms        -
            smtp       -
            yahoo {
                set subtype $updomain
            }
            gg {
                set subtype gadu-gadu
            }