1. Switching databases does not remove unsaved games 2. When you call ctrl-x you can see in the switcher what is the current database. The harmful operation is "sc_game load ...", which does remove an existing game and load a new one without warning. So it should never be called without previous check for unsaved changes. All the 20 calls in the tcl code today should be packaged in a method doing this check.
To your question whether database switching is necessary. In general no. But there are a couple of methods in the backend, which do not get the target database as argument and simply assume they should do their work on the current one. This is easy to change (step by step), but people developing something preferred simply to change the current database instead... For my use I have implemented two fields in the game list window to switch its list of games to any open database and to en/disable position filtering independent whether a tree window for the database is open. Methods called from the game list I had to change to take the target database as argument. It works fine now, but I have some discussion with Alexander who uses Scid in a different way and is no fan of these changes. Gerd -----Ursprüngliche Nachricht----- Von: f...@libero.it [mailto:f...@libero.it] Gesendet: Samstag, 22. Januar 2011 22:01 An: Scid Users List Betreff: Re: [Scid-users] Potential data loss using trees I'm using a modified version, so my suggestion may be wrong. When you open-as-tree scid change the active database, so when you hit ctrl-x the game is not created in the opened database, but in the still loading tree- database. When the tree-database is fully loaded the active database become the previously opened base (apparently deleting your game) For me, switching to the tree-database show the new game with the moves entered. Is a bug or is a necessity to switch the active database when opening-as-tree? No idea, just wanted to add some clues to your quest. Bye, Fulvio >----Messaggio originale---- >Da: joost.t.h...@planet.nl >Data: 22/01/2011 12.35 >A: "Gerd Lorscheid"<gerd.lorsch...@onlinehome.de> >Cc: "Scid Users List"<scid-users@lists.sourceforge.net> >Ogg: Re: [Scid-users] Potential data loss using trees > >Hi, > >I suggest we analyze this issue a bit further... > >On 10/08/2010 06:20 PM, Joost 't Hart wrote: >> Hi! >> >> [Linux, CVS] >> >> 1a) Open a dbase in which you want to add a new game >> 2a) Open-as-tree some big reference database (~4M games, dunno if size >> matters here) >> >> Do NOT wait for (2a) - which is concluded by the complete tree list of >> statistics - to complete >> >> 1b) Start a new game (hit Ctrl-X) >> 2b) Make a few moves on the board >> 3b) Wait for (2a) to complete. >> >> Kaboom! Running game is destroyed, board returns to game#1 of your dbase. >> >> Cheers, >> Joost. > >Gerd, your suggestion does not resolve the problem above. > >After tree completion I am still sent back at game#1 of dBase. > >But there /is/ a change: > >When I exit Scid at this point, Scid produces an "unsaved game warning" >and it appears that my new game is not entirely lost (as it was), but >added as a new game to the tree base. > >Hm... > >Cheers, >Joost. > > >On 01/19/2011 09:03 PM, Gerd Lorscheid wrote: >> Hello, >> >> at the end of ::tree::dorefresh you find the following code: >> >> >> # if the Tree base is not the current one, updates the Tree base to the >> first game in filter : that way it is possible to >> # directly generate an opening report for example >> if {$baseNumber != [sc_base current] } { >> set current [sc_base current] >> sc_base switch $baseNumber >> if { [sc_filter first] != 0 } { >> sc_game load [sc_filter first] >> } >> sc_base switch $current >> >> >> Now if you do the following: >> * open two bases with trees >> * create a new game in one base, insert moves but do not save >> * switch to the other base and back. >> Your entered game is lost. >> >> The following replacement should prevent this. >> >> >> # if the Tree base is not the current one, updates the Tree base to the >> first game in filter : that way it is possible to >> # directly generate an opening report for example >> if {$baseNumber != [sc_base current] } { >> set current [sc_base current] >> sc_base switch $baseNumber >> if { [sc_filter first] != 0 } { >> if { [sc_game number] != 0 } { >> if { [sc_game altered] == 0 } { >> sc_game load [sc_filter first] >> } >> } >> } >> sc_base switch $current >> >> >> Somebody should check it and check it in. >> >> Gerd >> >> >> >> ---------------------------------------------------------------------------- -- >> Protect Your Site and Customers from Malware Attacks >> Learn about various malware tactics and how to avoid them. Understand >> malware threats, the impact they can have on your business, and how you >> can protect your company and customers by using code signing. >> http://p.sf.net/sfu/oracle-sfdevnl >> _______________________________________________ >> Scid-users mailing list >> Scid-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/scid-users >> > > >--------------------------------------------------------------------------- --- >Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! >Finally, a world-class log management solution at an even better price-free! >Download using promo code Free_Logger_4_Dev2Dev. Offer expires >February 28th, so secure your free ArcSight Logger TODAY! >http://p.sf.net/sfu/arcsight-sfd2d >_______________________________________________ >Scid-users mailing list >Scid-users@lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/scid-users > ---------------------------------------------------------------------------- -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ Scid-users mailing list Scid-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/scid-users ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ Scid-users mailing list Scid-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/scid-users