Bug in KAction::initPrivate
Simon Hausmann
hausmann at kde.org
Thu Sep 26 14:26:59 BST 2002
On Thu, Sep 26, 2002 at 01:07:19PM +0200, Michael Brade wrote:
> > I'm not exactly sure how Martijn got the double connect though. Did
> > the object name of the action happen to be like foo{42} ? (it's the
> > only explanation I can come up with)
> As it seems to me, the following causes a double connection:
> connect( this, SIGNAL(activated()), recv, SLOT(blah()) );
> connect( this, SIGNAL(activated(int)), recv, SLOT(blah()) );
Ahh, stupid me. You're right, I forgot about this possible mapping.
Ok, good, last missing piece of the puzzle found :)
> However, I tried to remove the recv and the slot in KListAction to not pass
> them to the KAction constructor. Still, I got a warning about a conflict?!
> Then I tried to disconnect() that signal which didn't work either. That was
> the point when I gave up...
>
> Here's the exact message I get every time:
> QMetaObject::findSignal:KListAction: Conflict with KAction::activated(int)
>
> Ohh.. When just adding the removed connect I get:
> QMetaObject::findSignal:KSelectAction: Conflict with KAction::activated(int)
> QMetaObject::findSignal:KListAction: Conflict with KAction::activated(int)
>
> Hmm. When disconnecting or removing recv in addition to the connect I got only
> the KListAction conflict... maybe it _did_ work? But why this conflict and
> what does it mean?
That's a new feature in Qt3.1, it warns about braindamaged signal
declarations. The thing is that KAction declares activated( int )
and KListAction as well. This makes few sense :)
So that's a third problem ;-) . It will get fixed if we revert the
name-magic{42} or if someone removes the activated( int ) signal
declaration in KListAction (these two fixes are mutually exclusive
:)
Simon
More information about the kde-core-devel
mailing list