Hi
chatwindow.tcl
@@ -533,26 +541,17 @@ U @@ -3693,6 +3702,10 @@
So... if lesstab and moretab pics are shown and if i maximize chatwindows i
still see them, but delaying "::ChatWindow::CheckForTooManyTabs $window 0"
about 200ms resolve the problem. But the bug is still reproducible in this
way:
1) Open a chatwindow and maximize it
2) Disable: "Save chat window size as default when resizing it"
3) Open 3 tabs
4) Resize chatwindow until only two tabs are showed: now lesstab and moretab
should appear
5) Maximize chatwindow: the widget where there are tabs are not updated and
lesstab and moretab are still shown
@@ -3012,21 +3011,31 @@
A solution for http://www.amsn-project.net/forums/viewtopic.php?t=3471
After 8 users in a multichat only 7 users are shown and then there is a msg
"There are X others users. To see all users go in: Contact -> Propierities.
", that should go in langen.
@@ -2329,16 +2329,20 @@
I put also scrollbar-x because i cannot see longs strings ( long nick +
status + userlogin). I can always maximize the window, but...
What do you think about to order nicks in alphabetical order? :P
skins.tcl and msnp2p.tcl
About: http://www.amsn-project.net/forums/viewtopic.php?t=3972&highlight=
I found this solution...it checks the previous size of dp in chatwindow and
it reloads with the previous size. Then in protocol.tcl, i added a new value
when we call the proc ::MSNP2P::loadUserPic to load a new dp it this way
getDisplayPicture knows that it have to set a new dp with a new size and no
with last size.
When we set a dp in a chatwindow with another size (huge, for example) and
then we want to set it with the original size we have:
if [::config::getKey autoresizedp] is enabled we download again the DP and
we see it in default size, else if the opt is disabled we cannot see it in
original size.
How to reproduce:
1) Disable: Automatically resize display pictures to default size
2) Open a chatwindow, show the user's avatar as huge
3) set the user's avatar as "original" -> nothing happen
But when we want re-set a DP in original size, we don't need to download it
again just resize for this i put in getDisplayPicture:
if {$opz == 2} { ;# opz is 2 when ::MSNP2P::loadUserPic is called
when reload as 1
if {[::config::getKey autoresizedp]} {
::picture::Resize $picName 96 96
}
return $picName
}
So when we want to re-set a dp we have now that:
we can set dp in original size when autoresizedp is 0, while when
autoresizedp is 1 we don't download again dp to show it in default size.
Sorry for my English
Bye
Index: chatwindow.tcl
===================================================================
--- chatwindow.tcl (revision 8995)
+++ chatwindow.tcl (working copy)
@@ -533,26 +541,17 @@
after 200 [list ::ChatWindow::TopUpdate $chatid]
}
- set geometry [wm geometry $window]
- set pos_start [string first "+" $geometry]
- #Look if the window changed size with the configure
-
- if {[::config::getKey wincontainersize] != "[string range $geometry 0 [expr {$pos_start-1}]]"} {
- set sizechanged 1
- } else {
- set sizechanged 0
- }
-
#Save size of current container
if { [::config::getKey savechatwinsize] } {
+ set geometry [wm geometry $window]
+ set pos_start [string first "+" $geometry]
::config::setKey wincontainersize [string range $geometry 0 [expr {$pos_start-1}]]
}
- #If the window changed size use checkfortoomanytabs
- if { [winfo exists ${window}.bar] && $sizechanged} {
- CheckForTooManyTabs $window 0
+ if { [winfo exists ${window}.bar]} {
+ after cancel [list ::ChatWindow::CheckForTooManyTabs $window 0]
+ after 200 [list ::ChatWindow::CheckForTooManyTabs $window 0]
}
-
}
#///////////////////////////////////////////////////////////////////////////////
@@ -3012,21 +3011,31 @@
set camicon [::skin::loadPixmap camicon]
+ set count_users 0
foreach user_login $user_list {
+ incr count_users
+ if {$count_users > 7} {
+ set len [expr [llength $user_list] - $count_users + 1]
+ if {$len != 1} {
+ set warningtext "There are $len others users. To see all users go in: Contact -> Propierities. "
+ $top insert text end $warningtext
+ break
+ }
+ }
set shares_cam [::abook::getContactData $user_login webcam_shared]
if { [::config::getKey emailsincontactlist] == 1 } {
set user_name ""
} else {
set user_name [string map {"\n" " "} [::abook::getDisplayNick $user_login]]
}
set state_code [::abook::getVolatileData $user_login state]
- set psmmedia [::abook::getpsmmedia $user_login]
-
if { [::config::getKey psmplace] == 0 } {
set psmmedia ""
+ } else {
+ set psmmedia [::abook::getpsmmedia $user_login]
}
#Space added so it doesn't stick next to the status
@@ -3693,6 +3702,10 @@
variable containerwindows
variable visibletabs
variable win2tab
+
+ if {![winfo exists ${container}.bar]} {
+ return
+ }
set bar_w [winfo width ${container}.bar]
set tab_w [image width [::skin::loadPixmap tab]]
Index: msnp2p.tcl
===================================================================
--- msnp2p.tcl (revision 8995)
+++ msnp2p.tcl (working copy)
@@ -130,8 +130,9 @@
#Get picture from $user, if cached, or sets image as "loading", and request it
#using MSNP2P
- proc loadUserPic { chatid user {reload "0"} } {
+ #If $new == 1 it means that an users has changed his picture
+ proc loadUserPic { chatid user {reload 0} {new 0}} {
global HOME
#Line below changed from != -1 to == 0 because -1 means
@@ -155,11 +156,11 @@
return
}
- #Reload 1 means that we force aMSN to reload a new display pic
+ #Reload 1 means that we force aMSN to reload the display pic with default or original size
#Destroy it before to avoid TkCxImage to redraw animated gif above the good display pic
#TODO: FIX: I think the next line is incorrect, did you want image delete? (be careful if there are images on the screen)
destroy user_pic_$user
- if { ![file readable "[file join $HOME displaypic cache ${filename}].png"] || $reload == "1" } {
+ if { ![file readable "[file join $HOME displaypic cache ${filename}].png"]} {
status_log "::MSNP2P::GetUser: FILE [file join $HOME displaypic cache ${filename}] doesn't exist!!\n" white
image create photo user_pic_$user -file [::skin::GetSkinFile "displaypic" "loading.gif"] -format cximage
@@ -179,14 +180,16 @@
} else {
image delete displaypicture_not_$user
}
- }
-
+ }
create_dir [file join $HOME displaypic]
create_dir [file join $HOME displaypic cache]
::MSNP2P::RequestObject $chatid $user $msnobj
+ } elseif { $reload == 1} {
+ ::skin::getDisplayPicture $user 1 2
+ ::amsn::UpdateAllPictures
} else {
- ::skin::getDisplayPicture $user 1
+ ::skin::getDisplayPicture $user 1 $new
}
}
Index: protocol.tcl
===================================================================
--- protocol.tcl (revision 8995)
+++ protocol.tcl (working copy)
@@ -5059,17 +5059,17 @@
set users_in_chat [$sb cget -users]
if { [lsearch $users_in_chat $user] != -1 } {
status_log "User changed image while image in use!! Updating!!\n" white
- ::MSNP2P::loadUserPic [::MSN::ChatFor $sb] $user
+ ::MSNP2P::loadUserPic [::MSN::ChatFor $sb] $user 0 1
}
}
} else {
if { [::MSN::myStatusIs] != "FLN" && [::MSN::myStatusIs] != "HDN"} {
if { ![file readable "[file join $HOME displaypic cache ${newPic}].png"] } {
set chat_id [::MSN::chatTo $user]
- ::MSN::ChatQueue $chat_id [list ::MSNP2P::loadUserPic $chat_id $user]
+ ::MSN::ChatQueue $chat_id [list ::MSNP2P::loadUserPic $chat_id $user 0 1]
} else {
#We already have the image so don't open a convo to get it just load it
- ::MSNP2P::loadUserPic "" $user
+ ::MSNP2P::loadUserPic "" $user 0 1
}
}
}
Index: gui.tcl
===================================================================
--- gui.tcl (revision 8995)
+++ gui.tcl (working copy)
@@ -2329,16 +2329,20 @@
frame $wname.blueframe.list -class Amsn -borderwidth 0
frame $wname.buttons -class Amsn
- listbox $wname.blueframe.list.items -yscrollcommand "$wname.blueframe.list.ys set" -font splainf \
+ listbox $wname.blueframe.list.items -yscrollcommand "$wname.blueframe.list.ys set" -xscrollcommand "$wname.blueframe.list.xs set" -font splainf \
-background white -relief flat -highlightthickness 0 -height 20 -width 60
scrollbar $wname.blueframe.list.ys -command "$wname.blueframe.list.items yview" -highlightthickness 0 \
-borderwidth 1 -elementborderwidth 1
+ scrollbar $wname.blueframe.list.xs -orient horizontal -command "$wname.blueframe.list.items xview" -highlightthickness 0 \
+ -borderwidth 1 -elementborderwidth 1
+
button $wname.buttons.ok -text "[trans ok]" -command [list ::amsn::listChooseOk $wname $itemlist $command]
button $wname.buttons.cancel -text "[trans cancel]" -command [list destroy $wname]
pack $wname.blueframe.list.ys -side right -fill y
+ pack $wname.blueframe.list.xs -side bottom -fill x
pack $wname.blueframe.list.items -side left -expand true -fill both
pack $wname.blueframe.list -side top -expand true -fill both -padx 4 -pady 4
pack $wname.blueframe -side top -expand true -fill both
@@ -2356,7 +2360,7 @@
pack $wname.buttons -side bottom -fill x -pady 3
foreach item $itemlist {
- $wname.blueframe.list.items insert end [lindex $item 0]
+ $wname.blueframe.list.items insert end "[lindex $item 0] - ([lindex $item 1])"
}
Index: skins.tcl
===================================================================
--- skins.tcl (revision 8995)
+++ skins.tcl (working copy)
@@ -234,7 +234,9 @@
return displaypicture_std_none
}
- proc getDisplayPicture { email {force 0}} {
+ # $opz == 1 the user has changed his pics
+ # $opz == 2 we want to show the pic in the original or default size
+ proc getDisplayPicture { email {force 0} {opz 0}} {
global HOME
set picName displaypicture_std_$email
@@ -242,10 +244,15 @@
if { [::abook::getContactData $email client] == "Webmessenger" } {
return [::skin::loadPixmap webmsn_dp]
}
if {[catch {image width $picName}] == 0 && $force == 0} {
return $picName
}
+ if { [catch {image width $picName} personalsize] } {
+ set personalsize -1
+ }
+
if { [::abook::getContactData $email customdp] != "" } {
set filename [::abook::getContactData $email customdp ""]
# As custom DP can also be stored outside the cache folder,
@@ -267,16 +274,26 @@
}
if {[catch {image width $picName} res]} {
#status_log "Error while loading $picName: $res"
image create photo $picName
$picName copy [::skin::getNoDisplayPicture]
set file [::skin::GetSkinFile displaypic nopic.gif]
}
+ if {$opz == 2} {
+ if {[::config::getKey autoresizedp]} {
+ ::picture::Resize $picName 96 96
+ }
+ return $picName
+ }
if { [catch {::picture::GetPictureSize $file} cursize] } {
#Corrupted image.. might as well delete it and redownload it some other time..
status_log "Error opening $file: $cursize\n"
catch {file delete $file}
+ } elseif {![::config::getKey autoresizedp] && $opz == 0 && $personalsize != -1} {
+ ::picture::Resize $picName $personalsize $personalsize
} elseif { [::config::getKey autoresizedp] && ![::picture::IsAnimated $file] && $cursize != "96x96"} {
::picture::Resize $picName 96 96
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Amsn-devel mailing list
Amsn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amsn-devel