hidden stateChanged() method

Olivier Goffart ogoffart at kde.org
Wed Jul 28 21:33:06 BST 2010

Le Wednesday 28 July 2010, Pedro Lopez-Cabanillas a écrit :
> Hi,
> I've made a KPart in extragear/KMid implementing the KMediaPlayer
> interfaces [1], and the compiler complains with this message:
> /usr/include/kxmlguiclient.h:326: warning: ‘virtual void
> KXMLGUIClient::stateChanged(const QString&,
> KXMLGUIClient::ReverseStateChange)’ was hidden
> /usr/include/KDE/KMediaPlayer/../../kmediaplayer/player.h:131: warning:
> by ‘void KMediaPlayer::Player::stateChanged(int)’
> KParts::Part inherits from XMLGUIClient the stateChanged(const
> QString&,...) method, and KMediaPlayer::Player::stateChanged(int) is a
> signal.
> I've tried XMLGUI states to work in my KMidPart, but they don't. So I've
> coded an alternative to enable/disable actions.
> What do you think? I would like open a bug report, but I can't find any
> possible fix not implying a binary incompatibility.

gcc kindly warns you that, by naming your signal the same name as another 
function in the base class, you are hiding it, which you probably do not 
intent to.

The 'workaround' is to explicitly hide or enable it back with the 'using' 

using KXMLGUIClient::stateChanged;
in the protected section of the KMediaPlayer::Player class

this does not break BC

More information about the kde-core-devel mailing list