Re: kio/scheduler: Does not compile with Qt from 4.8 branch
Until those that know the code get this issue sorted out, I've pasted a small workaround that gets it to build here: http://paste.kde.org/77059/ Jeremy On Wed, Jun 1, 2011 at 2:39 AM, Thiago Macieira thi...@kde.org wrote: On Wednesday, 1 de June de 2011 01:42:13 argonel wrote: This makes a promise that any class can use a private slot without access checking. It doesn't say how that slot was declared, just that the private slot can be invoked by any other class. The change to Q_PRIVATE_SLOT introduces access checking of slots and breaks the promise, and so it needs to be left unchanged until Qt 5. You're assuming you're allowed to use Q_PRIVATE_SLOT. That macro is not documented, so any use of it outside Qt is suspect by itself. Qt makes promise of source compatibility when using it. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Senior Product Manager - Nokia, Qt Development Frameworks PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
Re: kio/scheduler: Does not compile with Qt from 4.8 branch
Le Wednesday 01 June 2011, Dawit A a écrit : Isn't this problem easily solvable by changing those slots defined in Q_PRIVATE_SLOT to actual private slots of KIO::Scheduler and forwarding the call to the existing code ? See attached patch. there could also be a static private schedulerPrivate() function in KIO::Scheduler, and the Q_PRIVATE_SLOT uses that function. On Wed, Jun 1, 2011 at 10:47 AM, Jeremy Whiting jpwhit...@kde.org wrote: Until those that know the code get this issue sorted out, I've pasted a small workaround that gets it to build here: http://paste.kde.org/77059/ Jeremy On Wed, Jun 1, 2011 at 2:39 AM, Thiago Macieira thi...@kde.org wrote: On Wednesday, 1 de June de 2011 01:42:13 argonel wrote: This makes a promise that any class can use a private slot without access checking. It doesn't say how that slot was declared, just that the private slot can be invoked by any other class. The change to Q_PRIVATE_SLOT introduces access checking of slots and breaks the promise, and so it needs to be left unchanged until Qt 5. You're assuming you're allowed to use Q_PRIVATE_SLOT. That macro is not documented, so any use of it outside Qt is suspect by itself. Qt makes promise of source compatibility when using it. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Senior Product Manager - Nokia, Qt Development Frameworks PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
Re: kio/scheduler: Does not compile with Qt from 4.8 branch
Ping, Anyone know who should/can fix this issue? I've got a hack locally, but a proper fix would be very good imho. Jeremy On Fri, Apr 29, 2011 at 12:50 PM, Jeremy Whiting jpwhit...@kde.org wrote: On Mon, Apr 25, 2011 at 4:54 PM, Olivier Goffart ogoff...@kde.org wrote: Le Monday 25 April 2011, Michael Pyne a écrit : On Sunday, April 24, 2011 16:42:22 Christoph Feck wrote: On Sunday 24 April 2011 15:04:38 Thiago Macieira wrote: Olivier, these are your moc changes. Given that Q_PRIVATE_SLOT is a private definition, shouldn't we rather fix the code in KDE? Perhaps, but let's let the developers making the changes verify that this was an intended side effect of the change. ;) Exactly, we rather be aware of breakage, so we can try not to break anything. In this case, we have to see if we can fix it in Qt. I do not see any solution on top of my head. We have to discuss if it is ok to break this use case if there is no solution. But it is true that this is use of private API, over which we do not support compatibility, so i think we may keep this change in Qt, and the change can be fixed in KDE Ok, Qt 4.8 has some accessibility fixes me and my gsoc student would like to use to further push the qt-atspi development. Those involved with the scheduler code how/when could this get fixed? thanks, Jeremy
Re: kio/scheduler: Does not compile with Qt from 4.8 branch
On Mon, Apr 25, 2011 at 4:54 PM, Olivier Goffart ogoff...@kde.org wrote: Le Monday 25 April 2011, Michael Pyne a écrit : On Sunday, April 24, 2011 16:42:22 Christoph Feck wrote: On Sunday 24 April 2011 15:04:38 Thiago Macieira wrote: Olivier, these are your moc changes. Given that Q_PRIVATE_SLOT is a private definition, shouldn't we rather fix the code in KDE? Perhaps, but let's let the developers making the changes verify that this was an intended side effect of the change. ;) Exactly, we rather be aware of breakage, so we can try not to break anything. In this case, we have to see if we can fix it in Qt. I do not see any solution on top of my head. We have to discuss if it is ok to break this use case if there is no solution. But it is true that this is use of private API, over which we do not support compatibility, so i think we may keep this change in Qt, and the change can be fixed in KDE Ok, Qt 4.8 has some accessibility fixes me and my gsoc student would like to use to further push the qt-atspi development. Those involved with the scheduler code how/when could this get fixed? thanks, Jeremy
Re: kio/scheduler: Does not compile with Qt from 4.8 branch
Le Monday 25 April 2011, Michael Pyne a écrit : On Sunday, April 24, 2011 16:42:22 Christoph Feck wrote: On Sunday 24 April 2011 15:04:38 Thiago Macieira wrote: Olivier, these are your moc changes. Given that Q_PRIVATE_SLOT is a private definition, shouldn't we rather fix the code in KDE? Perhaps, but let's let the developers making the changes verify that this was an intended side effect of the change. ;) Exactly, we rather be aware of breakage, so we can try not to break anything. In this case, we have to see if we can fix it in Qt. I do not see any solution on top of my head. We have to discuss if it is ok to break this use case if there is no solution. But it is true that this is use of private API, over which we do not support compatibility, so i think we may keep this change in Qt, and the change can be fixed in KDE
kio/scheduler: Does not compile with Qt from 4.8 branch
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_castScheduler *(_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)
Re: kio/scheduler: Does not compile with Qt from 4.8 branch
On Sunday, 24 de April de 2011 12:53:18 Christoph Feck wrote: 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_castScheduler *(_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? Olivier, these are your moc changes. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Senior Product Manager - Nokia, Qt Development Frameworks PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 signature.asc Description: This is a digitally signed message part.
Re: kio/scheduler: Does not compile with Qt from 4.8 branch
On Sunday, April 24, 2011 16:42:22 Christoph Feck wrote: On Sunday 24 April 2011 15:04:38 Thiago Macieira wrote: Olivier, these are your moc changes. Given that Q_PRIVATE_SLOT is a private definition, shouldn't we rather fix the code in KDE? Perhaps, but let's let the developers making the changes verify that this was an intended side effect of the change. ;) Regards, - Michael Pyne signature.asc Description: This is a digitally signed message part.