that means double disk space and double code complexity, while 'original' 
getting downloaded is very 
simple code and not that problematic since it's P2P and it's pretty fast..

On Thu, Sep 06, 2007 at 04:49:59PM +0100, [EMAIL PROTECTED] wrote:
> 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


-------------------------------------------------------------------------
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