> > ---------- Messaggio inoltrato ---------- > From: Richard Dale <richard.j.d...@gmail.com> > To: plasma-devel@kde.org > Date: Thu, 11 Feb 2010 18:37:55 +0000 > Subject: Re: [PATCH] Support for arbitrary main script names in Python > plasmoids > On Thu, Feb 11, 2010 at 6:02 PM, Luca Beltrame <ei...@heavensinferno.net> > wrote: > > Hello, > > > > currently if you use Python plasmoids the main script *must* be named > > "main.py" because it is hardcoded into pyappletscripts.py. When using a > > different mainscript in the .desktop file (like Plasmate does) this will > > ensure the plasmoid will not run (you get a NameError exception). > Well currently in Plasmate there is not way to specifiy the main > script (or main class). >
Actually, the main script and main class names are taken from the project name; if you create a RubyClock project, Plasmate will create a rubyclock.rb file, with a MainRubyClock class inside it :) > > The Ruby plasmoid implementation doesn't use the Ruby equivalent of > __dict__, but simply derives the main class name from the main script > name. So I wasn't sure is you should specifiy a main *class* name in > Plasmate like FooBar which would give a main script name of > foo_bar.rb. Or whether you should give a main script name of > foo_bar.rb the Plasmate form from which the class 'FooBar' is then > derived. > > Currently in Plasmate the name of the applet is used to derive both > the module (like a namespace), and the name of the class, which I > think is wrong. For example, if you call your applet FooBar you get: > > module FooBar > class FooBar< PlasmaScripting::Applet > ... > > I would rather the class was called 'Main' if you don't specifiy a main > script. > I'm sorry, but this is wrong: I've taken care of avoiding it since the beginning (I also reverted, a couple of days ago, a commit[1] that did exactly what you just described ). Plasmate creates by default a Main<ProjectName> class for ruby and python plasmoids. So we don't have naming collision :) > > For Python, what if there are several classes in the the python main > script file - how do you tell which one is for the applet you want to > instantiate? > > > > The attached patch fixes this by retrieving the mainscript file, > stripping it > > to its name and then using Python introspection (__dict__) to pass the > right > > module name to the CreateApplet call. > > > > After applying, old plasmoids (using main.py) and new ones (using *any > name*) > > seem to work correctly. > > > > OK to commit? Should this also be backported? > > > > _______________________________________________ > > Plasma-devel mailing list > > Plasma-devel@kde.org > > https://mail.kde.org/mailman/listinfo/plasma-devel > > > > > [1] http://websvn.kde.org/trunk/playground/base/plasma/plasmate/templates/mainPlasmoid.rb
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel