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

Reply via email to