On Sun, 6 Jan 2013 00:08:38 +0000 Michael Blumenkrantz <michael.blumenkra...@gmail.com> wrote:
> 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. No, configs are not deleted in this case. Configurations are still present in config, when a gadget is removed and its module is unloaded, but they are not getting reused anymore. -- Igor ------------------------------------------------------------------------------ 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