Bug in KAction::initPrivate

Michael Brade brade at kde.org
Tue Sep 24 18:59:45 BST 2002


Hi,

On Tuesday 24 September 2002 19:34, Ellis Whitehead wrote:
> The code isn't particularly new: at least since April, I think.
Yes, and that's the time since this menu is broken... I was lucky (or the 
opposite?) that nobody noticed (me included) up until a few days ago.

> The code
> snippet above couldn't have worked before, anyhow, because
Well, it did - at least for KDE 3.0.x :-)

> SLOT(slotToDesktop(int)) can only be connected to a signal which takes a
> single integer: e.g., SIGNAL(mySignal(int)).
Exactly.

> What kind of value is slotToDesktop(int) method expecting to receive?
The menu reads "To Desktop ->", the submenu contains all the desktops, e.g.
0:  All Desktops
    ------------
1:  Desktop 1
2:  Desktop 2
The int is the value in the first column above, i.e. the number of the item. 
The code in KSelectAction is correct and is called if I click on such a 
desktop item:

void KSelectAction::slotActivated()
{
  KAction::slotActivated();
  kdDebug(129) << "KSelectAction::slotActivated currentItem=" << currentItem() 
<< " currentText=" << currentText() << endl;
  emit activated( currentItem() );
  emit activated( currentText() );
}

However, the connection to my slot in the constructor is missing...

** searching old code **

Ha, wait, here's the culprit - Simon and Martijn! :) They removed the 
necessary connect() call:

----
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 );

(done in three KListAction constructors)
It's pretty stupid to do this connect as the KAction ctor does it, too.
Thanks Martijn for noticing.
----

So it wasn't your change, Ellis, but Simons. Simon, any explanation for 
breaking my app? ;-))

-- 
Michael Brade;                 KDE Developer, Student of Computer Science
  |-mail: echo brade !#|tr -d "c oh"|s\e\d 's/e/\@/2;s/$/.org/;s/bra/k/2'
  °--web: http://www.kde.org/people/michaelb.html

KDE 3: The Next Generation in Desktop Experience

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: signature
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20020924/feb9dda1/attachment.sig>


More information about the kde-core-devel mailing list