QObjects on interfaces

Aleix aleixpol at gmail.com
Fri Jul 25 11:44:25 UTC 2008


On 7/25/08, Manuel Breugelmans <mbr.nxi at gmail.com> wrote:
> On Friday 25 July 2008 13:19:52 Aleix wrote:
>  > On 7/25/08, Manuel Breugelmans <mbr.nxi at gmail.com> wrote:
>  > > On Friday 25 July 2008 00:19:01 Aleix wrote:
>  > >  > Hi kdevelopers,
>  > >  >
>  > >  > I know it is a discussion that has raised sometimes on the IRC and on
>  > >  > the hackaton but it is something important enough to be discussed
>  > >  > here.
>  > >  >
>  > >  > As you might know, I'm working on the KDevPlatform Kross support and,
>  > >  > for Kross it is necessary that an Object, to be recognized, inherits a
>  > >  > QObject to retrieve the methods it has.
>  > >  >
>  > >  > When I have a non-QObject class, I have 2 alternatives if I want it to
>  > >  > be called from a script:
>  > >  >
>  > >  > make it a QObject (as I did in the patch attatched)
>  > >  > -or-
>  > >  > make a wrapper as I did in kross/projectitemadaptors.h
>  > >  >
>  > >  > I think it is much better to get it from the QObject because we don't
>  > >  > duplicate any code but I also understand that in cases where it is
>  > >  > just heavy to use a QObject so...
>  > >  >
>  > >  > Note: the attatched patch is just an example of how things change when
>  > >  > I make it QObject, I don't mean it is the only cases I need that.
>  > >  >
>  > >  > Any thoughts?
>  > >  >
>  > >  > Thank you,
>  > >  > Aleix
>  > >
>  > > Imo the biggest problem with using QObject when it's not needed is
>  > > multiple inheritance. Inheriting 2 QObjects is a no-go, so in java terms
>  > > this effectivly changes interfaces into abstract classes.
>  >
>  > ???
>  > 2 QObjects? If it already inherits QObject you don't have to add it
>  > anymore.
>  >
>
>
> errrr, ok probably I didnt explain clearly:
>
>  class IFoo : public QObject {};
>  class IBar : public QObject {};
>  class FooBar : public IFoo, public IBar {}; // this is now impossible.
>
>  So if this is changed on too much interfaces, things will break. But maybe you
>  weren't intending to add this on interfaces in the first place?
If you are speaking about plugins, there you already have IPlugin
always which is a QObject and we can't get any to be a QObject, but
since the whole plugin is, it is not a big deal.
>
>
>
>  Manuel
>
>  _______________________________________________
>  KDevelop-devel mailing list
>  KDevelop-devel at kdevelop.org
>  https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel
>




More information about the KDevelop-devel mailing list