Bug 113347 - konsole menu doesn't show up anymore
Summary: konsole menu doesn't show up anymore
Status: RESOLVED FIXED
Alias: None
Product: kicker
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Aaron J. Seigo
URL:
Keywords:
: 108478 114601 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-09-26 11:08 UTC by Michael Reiher
Modified: 2005-11-27 16:44 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Reiher 2005-09-26 11:08:47 UTC
Version:            (using KDE KDE 3.4.90)
Installed from:    Compiled From Sources

Well, as the subject says, I have the "Terminal Sessions" menu button on my panel and since some recent update (I might have been even the update from 3.4 branch to 3.5 branch) the menu simply doesn't show up anymore when clicked on.

Not sure what other information might be helpful here, ther is no console output or anything.

I'm using 3.5 branch SVN from a few days ago.
Comment 1 Thiago Macieira 2005-09-26 13:15:26 UTC
I can confirm this, at least since revision 440440.
Comment 2 Aaron J. Seigo 2005-09-26 16:50:46 UTC
it works here. there WERE two different konsole buttons for a period of time in svn due to someone committing a second one for goodness knows why. i ended up merging the functionality of both into the older one and removing the neewer one. are you certain that you are not trying to use this newer button, which no longer exists? e.g. you may have a stale .desktop file around?
Comment 3 Michael Reiher 2005-09-26 18:37:55 UTC
On Monday 26 September 2005 16:50, Aaron J.Seigo wrote:
> it works here. there WERE two different konsole buttons for a period of
> time in svn due to someone committing a second one for goodness knows why.
> i ended up merging the functionality of both into the older one and
> removing the neewer one. are you certain that you are not trying to use
> this newer button, which no longer exists? e.g. you may have a stale
> .desktop file around?


Hmm, how can I find out? Does it have a special name? I looked at it, but 
can't find anything suspicious. I have just a ./kde3/kickermenu_konsole.so 
and a ./apps/kicker/menuext/konsolemenu.desktop with 
'X-KDE-Library=kickermenu_konsole'. I also did a clean build of kicker and 
tried it with a fresh ~/.kde dir. So if anything is wrong it has to be 
in /opt/kde3, but as I said I couldn't find anything.
Comment 4 Aaron J. Seigo 2005-09-26 21:13:49 UTC
hum.. can you run kicker from a konsole and see if there are any errors about unresolved symbols or not finding the library printed out? you'll need debug turned on to see any of that, of course. 
Comment 5 Michael Reiher 2005-09-26 22:41:21 UTC
On Monday 26 September 2005 21:13, Aaron J.Seigo wrote:
> hum.. can you run kicker from a konsole and see if there are any errors
> about unresolved symbols or not finding the library printed out? you'll
> need debug turned on to see any of that, of course.


hmm, now that's weird, when I start up KDE the menu doesn't work. However, 
when I terminate kicker and start it manually from the konsole it does! And 
the log doen't show any errors. Or do I have to --enable-debug? I have just 
no --disable-debug, to keep the console output.
Comment 6 Thiago Macieira 2005-09-27 02:12:24 UTC
I can reproduce that too: if I kill kicker and restart it from konsole, the menu works. If I kill it again and then start over with "kdeinit_wrapper kicker", it doesn't work anymore.

I do not see any Undefined symbol or other errors in Kicker's startup in either session. However, I can confirm that kickermenu_konsole.so is NOT loaded when kicker is started by kdeinit, but is when started on a shell.
Comment 7 Aaron J. Seigo 2005-09-27 03:14:51 UTC
SVN commit 464351 by aseigo:

use the macros, that's what they're there for. now it loads properly.
you'll need to restart kdeinit (or just log out and in) to see this fix
(simply `make install`ing then `kdeinit_wrapper kicker` won't do)

thanks to Michael Reiher and Thiago Macieira for the excellent bug
reporting and hunting =)

BUG:113347


 M  +2 -23     konsole_mnu.cpp  
 M  +2 -10     konsole_mnu.h  


--- branches/KDE/3.5/kdebase/kicker/menuext/konsole/konsole_mnu.cpp #464350:464351
@@ -42,16 +42,9 @@
 
 #include "konsole_mnu.h"
 
-extern "C"
-{
-    KDE_EXPORT void* init_kickermenu_konsole()
-    {
-	KGlobal::locale()->insertCatalogue("libkickermenu_konsole");
-        return new KonsoleMenuFactory;
-    }
-}
+K_EXPORT_KICKER_MENUEXT(konsole, KonsoleMenu)
 
-KonsoleMenu::KonsoleMenu(QWidget *parent, const char *name)
+KonsoleMenu::KonsoleMenu(QWidget *parent, const char *name, const QStringList& /* args */)
     : KPanelMenu("", parent, name),
       m_profileMenu(0),
       m_bookmarksSession(0),
@@ -318,18 +311,4 @@
 }
 
 
-//*****************************************************************
-
-KonsoleMenuFactory::KonsoleMenuFactory(QObject *parent, const char *name)
-: KLibFactory(parent, name)
-{
-    KGlobal::iconLoader()->addAppDir("konsole");
-    KGlobal::locale()->insertCatalogue("konsolemenuapplet");
-}
-
-QObject* KonsoleMenuFactory::createObject(QObject *parent, const char *name, const char*, const QStringList&)
-{
-    return new KonsoleMenu((QWidget*)parent, name);
-}
-
 #include "konsole_mnu.moc"
--- branches/KDE/3.5/kdebase/kicker/menuext/konsole/konsole_mnu.h #464350:464351
@@ -38,7 +38,7 @@
     Q_OBJECT
 
 public:
-    KonsoleMenu(QWidget *parent = 0, const char *name = 0);
+    KonsoleMenu(QWidget *parent, const char *name, const QStringList& /* args */);
     ~KonsoleMenu();
     KURL baseURL() const;
 
@@ -61,13 +61,5 @@
     KonsoleBookmarkHandler *m_bookmarkHandlerSession;
 };
 
-class KonsoleMenuFactory : public KLibFactory
-{
-public:
-    KonsoleMenuFactory(QObject *parent = 0, const char *name = 0);
-
-protected:
-    QObject* createObject(QObject *parent = 0, const char *name = 0, const char *classname = "QObject", const QStringList& args = QStringList());
-};
-
 #endif
+
Comment 8 Thiago Macieira 2005-09-27 03:23:24 UTC
Even though I don't understand the fix, it works. Thanks Aaron.
Comment 9 Michael Reiher 2005-09-28 20:19:24 UTC
Hmm, I wish I could say the same. I have the update, and I did a clean rebuild 
of kicker, but still no konsole menu (still only with manualy starting 
kicker). Strange...

On Tuesday 27 September 2005 03:23, Thiago Macieira wrote:
> Even though I don't understand the fix, it works. Thanks Aaron.

Comment 10 Aaron J. Seigo 2005-09-28 23:38:12 UTC
Michael: did you either restart kdeinit or log out/in of kde?
Comment 11 Aaron J. Seigo 2005-09-28 23:38:29 UTC
*** Bug 108478 has been marked as a duplicate of this bug. ***
Comment 12 Michael Reiher 2005-09-29 00:23:02 UTC
Yes, did that. Also killing kicker and starting it with kdeinit_wrapper works. 
Don't know whether that also worked before your patch or not, though. I also 
noticed that when I remove the LD_BIND_NOW=true from startkde it works right 
after KDE startup. I wanted to run kicker through strace when started during 
KDE startup, just I don't really have a clue how to do that, as I don't know 
how kicker is actually started:) If you have anything else I might try, just 
tell me.
Comment 13 Michael Reiher 2005-10-06 11:03:52 UTC
Is it ok, if I reopen this report? Or what else can I do to find out why it 
doesn't work right after KDE startup? I mean, basically the menu works fine, 
when starting kicker manually, with or without kdeinit_wrapper. It also  
works when removing LD_BIND_NOW=true from startkde. It just doesn't after 
normal KDE startup.

Greets Michael
Comment 14 Thiago Macieira 2005-10-06 12:59:34 UTC
Aaron, any ideas? I can't confirm anymore...
Comment 15 Aaron J. Seigo 2005-10-07 02:01:52 UTC
hm.. something to do with LD_BIND_NOW? interesting. i used to be able to duplicate as well, but now can't.. hum... will look into it further i guess...
Comment 16 Adam Pigg 2005-10-13 19:45:57 UTC
I can vouch(?) for this aswell....i was wondering where the menu went to today, so searched for a bug and found this.  Doing 'dcop kicker kicker quit' caused the panel to crash and restart (i guess just quitting would be nicer though :) and after the restart i had the menu back.
Comment 17 Thiago Macieira 2005-10-14 00:21:43 UTC
Aaron, I can confirm this too. It's the same build that I confirmed to be working in comments #8 and #14. I guess I had restarted kdeinit then, so LD_BIND_NOW wasn't set.

Restarting kicker from the minicli as "kicker" makes the problem disapper, but "kdeinit_wrapper kicker" doesn't work. AFAIU, they should be the same -- minicli should find the .desktop and fork from kdeinit instead.
Comment 18 Aaron J. Seigo 2005-10-14 17:16:09 UTC
well, seeing as i can't repro anymore, i would suggest one of you fine folk take a look at it *smiles*
Comment 19 Thiago Macieira 2005-10-14 23:00:04 UTC
Ok, I'll take a look, hopefully this weekend. I'll have to rebuild the whole of KDE, so let's hope the rainy weather keeps the temperature down enough so that the processor won't overheat and I won't want to go outside :-)
Comment 20 Thiago Macieira 2005-10-19 04:23:54 UTC
*** Bug 114601 has been marked as a duplicate of this bug. ***
Comment 21 Wilbert Berendsen 2005-10-22 23:51:51 UTC
Tonight I built a kde 3.5_beta2 with Gentoo, but still the Konsole sessions menu applet button is dead. I can depress it (it draws smaller while I click on it), but no menu appears.  I have to kill kicker manually and restart it to get it working.
Comment 22 Wilbert Berendsen 2005-10-23 00:13:16 UTC
I can add, that also the Terminal Sessions submenu from the K-menu, if enabled, does not show up in the K-menu unless I kill kicker and restart it manually.
Comment 23 Wilbert Berendsen 2005-11-16 11:03:26 UTC
I experience this bug still in 3.5.0-RC1.
Comment 24 Aaron J. Seigo 2005-11-16 13:33:53 UTC
SVN commit 480740 by aseigo:

well looky here, a spare slot that wasn't implemented
BUG:113347


 M  +0 -1      konsole_mnu.h  


--- branches/KDE/3.5/kdebase/kicker/menuext/konsole/konsole_mnu.h #480739:480740
@@ -48,7 +48,6 @@
     void launchProfile(int id);
     void initialize();
     void newSession(const QString& sURL, const QString& title);
-    void makeGUI();
 
 
 private: