[PyKDE] Problems with PyKDE 3.3.2 on KDE 3.1.1

Hans-Peter Jansen hpj at urpla.net
Wed Mar 19 17:36:01 GMT 2003


On Wednesday 19 March 2003 16:03, Jim Bublitz wrote:
> On 19-Mar-03 Hans-Peter Jansen wrote:
>
> > The problem boils down to the now private nature of some
> > ctors/dtors in a few KIO classes. I examined the first one:
> > KService(const KService&),  which is used at least in
> > syentrylist.sip and svctypes.sip for some type  conversations.
> >
> > kservice.h:
> >
> > class KService : public KSycocaEntry
> > {
> >   K_SYCOCATYPE( KST_KService, KSycocaEntry )
> >
> >   KService(const KService&);

I've had some conversation with Dirk Mueller today about this
problem. He holds me, that instancing KService::KService(const KService&)
will crash anyway, therefore it was made private in KDE 3.1.1 (which
will appear soonish). He told me that we need to use KService::Ptr, 
since KService can only share explicitly, thus it cannot be deep 
copied.

> svctypes.sip is handwritten code and SvcList is a mapped type
> meaning neither is really part of KDE, but are created to handle
> template classes within PyKDE. I'm not sure why the copy ctor is
> being invoked there, so I'm not sure how to fix it. Also, I'm not
> sure if that section of code even works, and it's been recoded
> already for the new version.

Would you mind throwing that code on me?

> SvcList is the mapped type for QPtrList<KService::Ptr>, and
> KService::Ptr is typedef'd from KSharedPtr<KService> (there's
> probably a mapped type SvcPtr also). You could probably try
> commenting out the SvcList mapped type and also comment out any
> method that references it. You won't lose much unless you're doing
> some low level KIO related programming.

Ok, I will try this next.

> These all look like the same error. ~KAutoMount () is now private.
> Normally dtors don't appear in sip files UNLESS they're private, so
> you'd need to add:
>
> private:
>     ~KAutoMount ();
>
> to the KAutoMount class (note - no 'virtual' keyword for sip on the
> dtor).

Will do this after activating kautomount again.

>
> These are all the same kind of error - deleteNextDir() and
> deleteNextFile () in KIO::DeleteJob (jobclasses.sip) are now
> private. Just delete it - sip doesn't handle private methods.
> startNextJob () is gone in 3.1.1 apparently. Either comment those
> out or wrap them in
>
> %If ( - KDE_3_1_1 )
>
> ...
>
> %End

and this, too.

> (assuming you added KDE_3_1_1 to the the %Timeline stmt in dcop.sip
> in the sip/kde300/ directory).

I'm using a full featured Timeline already ;-)

> The new version is complete through KDE 3.0.0.  KDE 3.0.1 through
> 3.0.5 should go pretty fast and KDE 3.1.0 will probably take a few
> days, so it's at least a week or two to a release. There are a fair
> amount of PyKDE bug fixes and few bugfixes for sip 3.6 (some
> created by problems in KDE code, like duplicated base classes for a
> class). I'm trying to nail down as many problems as I can, so it's
> going a little slowly.

By wading through those problems, I have a distant insight of what 
kind of great job you're doing here. Keep it up and take the time
you need.

Thanks a lot,
Pete




More information about the PyQt mailing list