DCOP methods in kicker.. "hidden"?

Waldo Bastian bastian at kde.org
Fri Apr 5 19:12:06 BST 2002


On Friday 05 April 2002 09:39 am, John Firebaugh wrote:
> On Friday 05 April 2002 9:02, Kurt Granroth wrote:
> > I was tracking down why there wasn't a 'popopKMenu' (or similar) DCOP
> > method in kicker since.. well, it makes a lot of sense.  In the course of
> > doing so, I discovered that there *is* such a method.. it's just
> > "hidden".
> >
> > Lemme 'splain.  In kicker.h, we see a few k_dcop methods -- including one
> > popupKMenu(QPoint).  The 'Kicker' class doesn't virtually inherit
> > DCOPObject since it's derived from KUniqueApplication which does (and
> > hence ambiguity).  So, to use DCOP within it, we have this line in the
> > Kicker constructor:
> >
> > dcopClient()->setDefaultObject("Panel");
> >
> > So far, so good, right.  Well... browsing through the methods using kdcop
> > or 'dcop' we see that the Panel object has very different methods than
> > the ones described in kicker.h.  That's because of 'panel.h/cpp' which
> > has the normal DCOPObject("Panel") constructor call.  This effectively
> > overwrites the Kicker setting.
>
> Huh? No, this is correct. The default object is "Panel", as it has always
> been. If you want to access methods of kicker, use "kicker". What's the
> problem here?

Something must have changed there at some point because I needed to add a 
compatibility method for something to 'Panel' to call 'kicker' (the theme 
manager called that) When I did that there was already another compatibility 
method there... lemme see... *check source*

I added 
void Panel::configure()
{
    Kicker::kicker()->configure();
}

and 
void Panel::restart()
{
    Kicker::kicker()->restart();
}

was already there at the time.

Cheers,
Waldo
-- 
bastian at kde.org  |   SuSE Labs KDE Developer  |  bastian at suse.com





More information about the kde-core-devel mailing list