Bug in KAction::initPrivate
Martijn Klingens
klingens at kde.org
Tue Sep 24 21:25:23 BST 2002
On Tuesday 24 September 2002 19:59, Michael Brade wrote:
> revision 1.278
> date: 2002/07/01 21:30:38; author: hausmann; state: Exp; lines: +0 -6
> @@ -1923,8 +1923,6 @@ KListAction::KListAction( const QString&
>
> : KSelectAction( text, cut, parent, name )
>
> {
> d = new KListActionPrivate;
> - if ( receiver )
> - connect( this, SIGNAL(activated(int)), receiver, slot );
> ----
>
> So it wasn't your change, Ellis, but Simons. Simon, any explanation for
> breaking my app? ;-))
Yeah... Further up the inheritance chain KAction also connects to receiver.
The result is that the selected signal is fired off twice, resulting in very
weird reactions of the code.
One way to solve this is to connect to receiver if and only if receiver takes
an int, and in that case NOT pas receiver to parent's ctor.
More clean to me seems to not pass the receiver to the parent anyway and do
all the connecting in KListAction's ctor. Even then we need to detect whether
the passed receiver takes a parameter or not though.
Simon, any other ideas and/or opinions?
--
Martijn
More information about the kde-core-devel
mailing list