On Sun, 6 Jan 2013 03:59:17 +0400
Igor Murzov <intergalactic.anonym...@gmail.com> wrote:

> On Fri, 4 Jan 2013 16:29:56 +0900
> Carsten Haitzler (The Rasterman) <ras...@rasterman.com> wrote:
> 
> > On Tue, 1 Jan 2013 23:30:49 +0400 Igor Murzov
> > <intergalactic.anonym...@gmail.com> said:
> > 
> > > Happy new year everyone!
> > > 
> > > While i was playing with eweather, i found out that when its gadget
> > > is removed and module is unloaded, configuration gets lost.
> > > At first i thought that this issue is specific to eweather and
> > > that's some stupid bug, that went unnoticed.
> > > But it looks like configs are handled this way intentionally.
> > > If some gadget can have multiple instances, every instance gets
> > > its own id. When user adds a new instance, NULL is passed to
> > > _gc_init() as id. The same happens, if user unloaded a module in the
> > > past for some reason, then changed his mind and loaded the module once
> > > again. And you may expect that the last configuration is loaded in
> > > this case, but NO... id gets incremented and you'll get the default
> > > settings. That's very strange -- configurations are stored and never
> > > reused again.
> > > That doesn't feel like an expected behaviour to me. I would
> > > expect GADCON_CLIENT_CONFIG_GET() to load the last available
> > > configuration if id is NULL. Or maybe even last id but one when the
> > > gadget that has the last id already exists. So some smart solution
> > > may be required to fix the issue. Any ideas?
> > > 
> > 
> > hmm module unload SHOULD be separate to the gadcon client config. i designed
> > them to be separate so u can "unload" and "load" a module and magically the
> > gadget appears where it was configured for before. of course each module is 
> > in
> > charge of remembering its OWN list of "instances" and names/id's for them 
> > and
> > corresponding config for that instance. the gadcon entry is separate and 
> > when
> > the gadcon inits it asks for a provider of that name/class - and if it finds
> > one (the module provides it) it asks it to init the gadget...
> 
> What you describing here works fine. Unloading module doesn't change gagdgets
> position or configuration. 
> But if gadget is removed and module is unloaded, then gadget's configuration
> gets lost.
> 
> Let me explain.
> 
> If some module has only one configuration item in its config, then gadget
> loads the config and uses settings stored in it, and everything is fine. 
> 
> Things are different with modules that have multiple configurations in their 
> configs.
> If some module has multiple configuration items in its config, then gadget
> loads the config and then it searches for a specific configuration item that
> has a specific id.
> 
> The thing is that if the gadget was removed, then next time when you decide
> to add the new instance, that new instance gets NULL as its id in _gc_init().
> And _gc_init() will call GADCON_CLIENT_CONFIG_GET(..., id) to get a 
> configuration item. But GADCON_CLIENT_CONFIG_GET(..., NULL) won't get ANY of
> the existing configurations in this case, it will simply generate a new id, 
> which
> will result in getting the default configuration. And that is not what users 
> expect.
> 
> > the point was that we could ship default config FULLY populated with every
> > gadget and then only the modules u want provide the gadgets and non-provided
> > modules are just left out with the user non-the-wiser.
> 
> I have no idea what you are talking about here :D
> 
> > something has gone wrong here. what you think should work... should.
> 
> 
> -- Igor
> 

if an instance is removed by the user, its config is deleted. this is 
intentional.

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnmore_123012
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to