[Ktechlab-devel] kde4 port: CircuitModel instantiation from tests

Julian Bäume julian at svg4all.de
Thu Mar 25 13:01:54 UTC 2010


hi,

On Tuesday 23 March 2010 15:42:24 Alan Grimes wrote:
> Julian Bäume wrote:
> > I don't see an easy way to change this, without bringing back the "one
> > class for each component" problem, which IMHO doesn't scale.
> Yes,
> But,
> we are only trying to *PORT* ktechlab right now.
Well, "porting" the GUI means rewriting it. At least in our case. Since the 
QCanvas things are so tightly coupled to our Components and everything, this 
will also effect some parts that _should_ be quite easy to port..

> Moving to loadable components at this juncture goes into Deep Design
> Decisions which I want to have a say in. =\


> And because I don't have the tools to work on the new version right now,
that issue should be fixed.. but you must set-up these tools. the wiki 
describes some details you have to take into account, but basically it is 
possible to make it work ;) (for me it was just installing a recent version of 
KDevelop including the kdevplatform-devel files. After that, it's only fine-
tuning...

> I am really dismayed that changes are being made that will be difficult
> to revert in the future because I want to take it in a different direction.
I don't think most of the decisions I made are hard to revert. I haven't 
written too much code, I think. I checked for possibilities and reverted quite 
a few things, I tested and found that they wouldn't work very good for us.

> Elsewhere in your post, you described the plugin loader as working by
> "magic". This is unacceptable. If it isn't documented well enough to be
> well understood, then it should be ignored.
Well, I understand the technology behind all this. I called it "magic", 
because IMHO it's not an easy task to provide a nice infrastructure for a 
plugin-system, that is portable to many platforms. All this is provided by the 
KDE framework and therefore I use it.. and really like to use it. Qt itself is 
quite advanced with handling plugins, but the KDE Plugin-system makes it even 
more easy to use. You can have type-safe Plugins without dynamic casts and the 
way you describe the Plugins is really beautiful. Mostly all this is a 
collection of macros (providing an easy way to create factory classes that 
will create instances of your plugin) and the c++ template system to provide 
compile-time casting of your plugins. KDE will also provide better features to 
ship new plugins as 3rd party modules than Qt does, so I think, we really 
should stick to the KDE infrastructure here.

> Consider, we have a new volunteer (or even myself), how do we bring that
> new person up to speed on the project if they (or me), can't understand
> how it's actually working?
I think, I have a quite good understanding of the KDE infrastructure and it 
technology. If anything is unclear, just ask and we will figure it out.

> My own solution to the scaling problem is to provide a user editor and
> viewer for components that will allow you to inspect and edit the model
> for that component. This would work with .component files or something
> that would be viewable and editable (to some degree) in something like
> kxmleditor.
That's exactly what I had in mind... Not really with XML, but an easy way to 
provide the equations from external sources and not hard-coded into many, many 
cpp files, as it is done right now. Using Qt and KDE technology will really 
help us, here. You wanted to do that after the port. This should be okay, if 
we just strip every GUI related stuff out of the ECNode classes. After that, 
they should be really easy to port.

> Once again, these changes are for versions AFTER the port is stabilized.
I agree. As I said. Porting the GUI means rewriting it.

well, that's enough from me, for now ;)

bye then
julian




More information about the Ktechlab-devel mailing list