KHelpMenu::KHelpMenu( QWidget *parent, const KAboutData *aboutData, bool showWhatsThis, KActionCollection *actions ) : QObject(parent), mMenu(0), mAboutApp(0), mAboutKDE(0), mBugReport(0), d(new KHelpMenuPrivate) { mParent = parent; mShowWhatsThis = showWhatsThis; d->mAboutData = aboutData; if (!aboutData) mAboutAppText = QString::null; if (actions) { KStdAction::helpContents(this, SLOT(appHelpActivated()), actions); if (showWhatsThis) KStdAction::whatsThis(this, SLOT(contextHelpActivated()), actions); KStdAction::reportBug(this, SLOT(reportBug()), actions); KStdAction::aboutApp(this, SLOT(aboutApplication()), actions); KStdAction::aboutKDE(this, SLOT(aboutKDE()), actions); KStdAction::switchApplicationLanguage(this, SLOT(switchApplicationLanguage()), actions); } }
_settingsMenu = menuBar()->addMenu(tr("&Settings")); #ifdef HAVE_KDE _settingsMenu->addAction(KStandardAction::configureNotifications(this, SLOT(showNotificationsDlg()), this)); _settingsMenu->addAction(KStandardAction::keyBindings(this, SLOT(showShortcutsDlg()), this)); #else _settingsMenu->addAction(coll->action("ConfigureShortcuts")); #endif _settingsMenu->addAction(coll->action("ConfigureQuassel")); _helpMenu = menuBar()->addMenu(tr("&Help")); _helpMenu->addAction(coll->action("AboutQuassel")); #ifndef HAVE_KDE _helpMenu->addAction(coll->action("AboutQt")); #else _helpMenu->addAction(KStandardAction::aboutKDE(_kHelpMenu, SLOT(aboutKDE()), this)); #endif _helpMenu->addSeparator(); _helpDebugMenu = _helpMenu->addMenu(SmallIcon("tools-report-bug"), tr("Debug")); _helpDebugMenu->addAction(coll->action("DebugNetworkModel")); _helpDebugMenu->addAction(coll->action("DebugBufferViewOverlay")); _helpDebugMenu->addAction(coll->action("DebugMessageModel")); _helpDebugMenu->addAction(coll->action("DebugHotList")); _helpDebugMenu->addAction(coll->action("DebugLog")); _helpDebugMenu->addSeparator(); _helpDebugMenu->addAction(coll->action("ReloadStyle")); // Toggle visibility QAction *showMenuBar = QtUi::actionCollection("General")->action("ToggleMenuBar"); QtUiSettings uiSettings;
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; }
void KSayItSystemTray::initActions() { // Context-menu menu = this->contextMenu(); help = new KHelpMenu(this, kapp->aboutData(), false, actionCollection()); // Standard actions settings = KStdAction::preferences(this, SLOT(slotPreferences()), actionCollection()); help_about = KStdAction::aboutApp(help, SLOT(aboutApplication()), actionCollection()); help_kde = KStdAction::aboutKDE(help, SLOT(aboutKDE()), actionCollection()); // User defined actions say = new KAction(i18n("Say"), "player_play", 0, this, SLOT (slotSayActivated()), actionCollection(), "say_it"); shutup = new KAction(i18n("Shut Up"), "player_stop", 0, this, SLOT (slotStopActivated()), actionCollection(), "shut_up"); pause = new KAction (i18n("Pause"), "player_pause", 0, this, SLOT (slotPauseActivated()), actionCollection(), "pause"); next_sentence = new KAction (i18n("Next Sentence"), "2rightarrow", 0, this, SLOT (slotNextSentenceActivated()), actionCollection(), "next_sentence"); prev_sentence = new KAction (i18n("Previous Sentence"), "2leftarrow", 0, this, SLOT(slotPrevSentenceActivated()), actionCollection(), "prev_sentence"); // Actions -> Context-menu settings->plug(menu); menu->insertSeparator(); say->plug(menu); shutup->plug(menu); pause->plug(menu); next_sentence->plug(menu); prev_sentence->plug(menu); menu->insertSeparator(); help_about->plug(menu); help_kde->plug(menu); // default enables/disables say ->setEnabled(false); shutup ->setEnabled(false); pause ->setEnabled(false); next_sentence->setEnabled(false); prev_sentence->setEnabled(false); }