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

2011-06-01 Thread Jeremy Whiting
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

2011-06-01 Thread Olivier Goffart
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

2011-05-16 Thread Jeremy Whiting
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

2011-04-29 Thread Jeremy Whiting
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

2011-04-25 Thread Olivier Goffart
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

2011-04-24 Thread Christoph Feck
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

2011-04-24 Thread Thiago Macieira
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

2011-04-24 Thread Michael Pyne
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.