A waste of CPU... there's no reason to do something like that, we don't need to 
complicate the code and 
do useless stuff if it's not needed.. the resize DP is not a feature you'll use 
everyday hoping that 
you'll keep the original image, and you usally don't plan on resizing the DP 
every 5 minutes..
This is all useless talk.
The issue is simply that when you resize is to Large for example because you 
want to see it that way, 
once the user joins the conversation, it gets resized. That's all we need to 
fix.

KKRT

On Fri, Sep 07, 2007 at 10:04:48AM +0200, Harry Vennik wrote:
> Why not store only the original and, if desired, resize when loading it?
> 
> Op 7-sep-2007, om 9:25 heeft Youness Alaoui het volgende geschreven:
> 
> > 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
> 
> 
> -------------------------------------------------------------------------
> 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