On 06/09/07, Youness Alaoui <[EMAIL PROTECTED]> wrote:
>
> Hi,
> I'll look at this later, when I get time. Thanks for sending the patches.
> About the resize to original, it's there for a reason, you sometimes need
> to resize to 'original', also
> 'original' means by definition, that it would need to fetch it again.
> Think about this.. a user has his DP's original size set to 150x150.. you
> do a set to original, with
> your patch, it gets resized to 96x96, which is wrong..
> Also, I sometimes use the 'original' when I want it to redownload.. try
> for example setting to huge,
> then small, then huge, then small, then 'normal'.. what do you see ? very
> very bad image quality, which
> is why you do 'original', to get back that image quality you lost...
Maybe the original should be stored somewhere so you can resize from *that*
each time and not lose all that quality?
Just a thought :)
About the resize thing, it's a good thing it's getting done, I always knew
> about the bug, but never
> did.. but the 200ms workaround is not really a good idea.. I *think* that
> what I do is to set a
> callback on Configure and then do a [winfo width] or something.. which is
> why it does that, because the
> width/height are not yet updated.. I think the best solution is to use the
> %W and %H of the bind
> command. Read the bind manual to see the options and see if we can get the
> new width and height with
> the % modifier.. this way, no need to have a 200ms gap, + should work on
> maximimze.
>
> KaKaRoTo
>
> On Thu, Sep 06, 2007 at 08:32:49AM +0000, square87 wrote:
> > 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
>
>
> -------------------------------------------------------------------------
> 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
>
-------------------------------------------------------------------------
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