kio/scheduler: Does not compile with Qt from 4.8 branch

Christoph Feck christoph at maxiom.de
Sun Apr 24 11:53:18 BST 2011


Hi,

Qt 4.8 has been branched, and (early as I am :) I tried compiling KDE with it. 
It already fails compiling kdelibs/kio/kio/scheduler.cpp because of this 
error:

/local/build/KDE/libs/kdelibs/kio/scheduler.moc:77:21: error: ‘class 
KIO::Scheduler’ has no member named ‘schedulerPrivate’

The issue is that moc now creates this code for the 
Q_PRIVATE_SLOT(schedulerPrivate, void slotSlaveDied(KIO::Slave *slave)) 
definition (and subsequent ones) in scheduler.h

void KIO::Scheduler::qt_static_metacall(QObject *_o, QMetaObject::Call _c, 
int _id, void **_a)
{
    if (_c == QMetaObject::InvokeMetaMethod) {
        Q_ASSERT(staticMetaObject.cast(_o));
        Scheduler *_t = static_cast<Scheduler *>(_o);
        switch (_id) {
// ...
        case 3: _t->schedulerPrivate->slotSlaveDied((*reinterpret_cast< 
KIO::Slave*(*)>(_a[1]))); break;
// ...

In other words, the first argument of Q_PRIVATE_SLOT must be a member 
of the class it is defined in. I stopped there, so it might fail at other 
places, too.

Any ideas how to fix it?

Happy Easter,
Christoph Feck (kdepepo)




More information about the kde-core-devel mailing list