Menu::~Menu() { if (FIconStorage) FIconStorage->removeAutoIcon(this); emit menuDestroyed(this); }
KPopupMenu* KHelpMenu::menu() { if( !mMenu ) { // // 1999-12-02 Espen Sand: // I use hardcoded menu id's here. Reason is to stay backward // compatible. // const KAboutData *aboutData = d->mAboutData ? d->mAboutData : KGlobal::instance()->aboutData(); QString appName = (aboutData)? aboutData->programName() : QString::fromLatin1(qApp->name()); mMenu = new KPopupMenu(); connect( mMenu, SIGNAL(destroyed()), this, SLOT(menuDestroyed())); bool need_separator = false; if (kapp->authorizeKAction("help_contents")) { mMenu->insertItem( BarIcon( "contents", KIcon::SizeSmall), i18n( "%1 &Handbook" ).arg( appName) ,menuHelpContents ); mMenu->connectItem( menuHelpContents, this, SLOT(appHelpActivated()) ); mMenu->setAccel( KStdAccel::shortcut(KStdAccel::Help), menuHelpContents ); need_separator = true; } if( mShowWhatsThis && kapp->authorizeKAction("help_whats_this") ) { QToolButton* wtb = QWhatsThis::whatsThisButton(0); mMenu->insertItem( wtb->iconSet(),i18n( "What's &This" ), menuWhatsThis); mMenu->connectItem( menuWhatsThis, this, SLOT(contextHelpActivated()) ); delete wtb; mMenu->setAccel( SHIFT + Key_F1, menuWhatsThis ); need_separator = true; } if (kapp->authorizeKAction("help_report_bug") && aboutData && !aboutData->bugAddress().isEmpty() ) { if (need_separator) mMenu->insertSeparator(); mMenu->insertItem( i18n( "&Report Bug..." ), menuReportBug ); mMenu->connectItem( menuReportBug, this, SLOT(reportBug()) ); need_separator = true; } if (kapp->authorizeKAction("switch_application_language")) { if (need_separator) mMenu->insertSeparator(); mMenu->insertItem( i18n( "Switch application &language..." ), menuSwitchLanguage ); mMenu->connectItem( menuSwitchLanguage, this, SLOT(switchApplicationLanguage()) ); need_separator = true; } if (need_separator) mMenu->insertSeparator(); if (kapp->authorizeKAction("help_about_app")) { mMenu->insertItem( kapp->miniIcon(), i18n( "&About %1" ).arg(appName), menuAboutApp ); mMenu->connectItem( menuAboutApp, this, SLOT( aboutApplication() ) ); } if (kapp->authorizeKAction("help_about_kde")) { mMenu->insertItem( SmallIcon("about_kde"), i18n( "About &KDE" ), menuAboutKDE ); mMenu->connectItem( menuAboutKDE, this, SLOT( aboutKDE() ) ); } } return mMenu; }