void ActionManagerImpl::initTabWidget(TabWidget* tabWidget) { if (d->tabWidget) return; else d->tabWidget = tabWidget; KActionCollection *coll = actionCollection(); KAction *action = coll->addAction("select_next_tab"); action->setText(i18n("Select Next Tab")); connect(action, SIGNAL(triggered(bool)), d->tabWidget, SLOT(slotNextTab())); action->setShortcuts(KShortcut( "Ctrl+Period" )); action = coll->addAction("select_previous_tab"); action->setText(i18n("Select Previous Tab")); connect(action, SIGNAL(triggered(bool)), d->tabWidget, SLOT(slotPreviousTab())); action->setShortcuts(KShortcut( "Ctrl+Comma" )); action = coll->addAction("tab_detach"); action->setIcon(KIcon("tab-detach")); action->setText(i18n("Detach Tab")); connect(action, SIGNAL(triggered(bool)), d->tabWidget, SLOT(slotDetachTab())); action->setShortcut(QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_B)); action = coll->addAction("tab_copylinkaddress"); action->setText(i18n("Copy Link Address")); connect(action, SIGNAL(triggered(bool)), d->tabWidget, SLOT(slotCopyLinkAddress())); action = coll->addAction("tab_remove"); action->setIcon(KIcon("tab-close")); action->setText(i18n("Close Tab")); connect(action, SIGNAL(triggered(bool)), d->tabWidget, SLOT(slotCloseTab())); action->setShortcuts(KStandardShortcut::close()); action = coll->addAction("inc_font_sizes"); action->setIcon(KIcon("format-font-size-more")); action->setText(i18n("Enlarge Font")); connect(action, SIGNAL(triggered(bool)), d->tabWidget, SLOT(slotFrameZoomIn())); action->setShortcut( QKeySequence::ZoomIn ); action = coll->addAction("dec_font_sizes"); action->setIcon(KIcon("format-font-size-less")); action->setText(i18n("Shrink Font")); connect(action, SIGNAL(triggered(bool)), d->tabWidget, SLOT(slotFrameZoomOut())); action->setShortcut( QKeySequence::ZoomOut ); QString actionname; for (int i=1;i<10;i++) { actionname.sprintf("activate_tab_%02d", i); action = new KAction( i18n("Activate Tab %1", i),this ); action->setShortcut( QKeySequence( QString::fromLatin1( "Alt+%1" ).arg( i ) ) ); coll->addAction( actionname, action ); connect( action, SIGNAL(triggered(bool)), d->tabWidget, SLOT(slotActivateTab()) ); } }
void WicdApplet::setupActions() { KAction* preferencesAction = new KAction(KIcon("preferences-system-network"), i18n("Wicd Configuration"), this); preferencesAction->setShortcuts(KShortcut("Ctrl+P")); addAction("configure_wicd", preferencesAction); connect(preferencesAction, SIGNAL(triggered()), this, SLOT(showPreferences())); KAction* connectInfoAction = new KAction(KIcon("help-about"), i18n("Connection information"), this); addAction("connection_info", connectInfoAction); connect(connectInfoAction, SIGNAL(triggered()), this, SLOT(connectionInfoRequested())); KAction* createadhocAction = new KAction(KIcon("list-add"), i18n("Create an ad-hoc network"), this); createadhocAction->setShortcuts(KShortcut("Ctrl+A")); addAction("createadhoc", createadhocAction); connect(createadhocAction, SIGNAL(triggered()), this, SLOT(createAdhocDialog())); KAction* findnetworkAction = new KAction(KIcon("edit-find"), i18n("Find a hidden network"), this); findnetworkAction->setShortcuts(KShortcut("Ctrl+F")); addAction("findnetwork", findnetworkAction); connect(findnetworkAction, SIGNAL(triggered()), this, SLOT(findHiddenDialog())); KAction* rfkillAction = new KAction(i18n("RfKill"), this); rfkillAction->setShortcuts(KShortcut("Ctrl+K")); addAction("rfkill", rfkillAction); connect(rfkillAction, SIGNAL(triggered()), this, SLOT(rfkill())); KAction* reloadAction = new KAction(KIcon("view-refresh"), i18n("Reload"), this); reloadAction->setShortcuts(KShortcut("Ctrl+R")); addAction("reload", reloadAction); connect(reloadAction, SIGNAL(triggered()), this, SLOT(scan())); }
void ActionManagerImpl::initArticleListView(ArticleListView* articleList) { if (d->articleList) return; else d->articleList = articleList; KAction *action = actionCollection()->addAction("go_previous_article"); action->setText(i18n("&Previous Article")); connect(action, SIGNAL(triggered(bool)), articleList, SLOT(slotPreviousArticle())); action->setShortcuts(KShortcut( "Left" )); action = actionCollection()->addAction("go_next_article"); action->setText(i18n("&Next Article")); connect(action, SIGNAL(triggered(bool)), articleList, SLOT(slotNextArticle())); action->setShortcuts(KShortcut( "Right" )); }
pWidget::pWidget() #ifndef Q_OS_SYMBIAN : KXmlGuiWindow(0), #else : QMainWindow(0), #endif dill(0), m_dealer(0), m_bubbles(0) { setObjectName( "pwidget" ); current_pwidget = this; // KCrash::setEmergencySaveFunction(::saveGame); // Game // TODO actions #if 0 KStandardGameAction::gameNew(this, SLOT(newGame()), actionCollection()); KStandardGameAction::restart(this, SLOT(restart()), actionCollection()); KStandardGameAction::load(this, SLOT(openGame()), actionCollection()); recent = KStandardGameAction::loadRecent(this, SLOT(openGame(const KUrl&)), actionCollection()); recent->loadEntries(KGlobal::config()->group( QString() )); KStandardGameAction::save(this, SLOT(saveGame()), actionCollection()); KStandardGameAction::quit(this, SLOT(close()), actionCollection()); // Move undo = KStandardGameAction::undo(this, SLOT(undoMove()), actionCollection()); redo = KStandardGameAction::redo(this, SLOT(redoMove()), actionCollection()); KAction *a; a = actionCollection()->addAction("choose_game"); a->setText(i18n("&Choose Game...")); connect( a, SIGNAL( triggered( bool ) ), SLOT( chooseGame() ) ); a = actionCollection()->addAction("change_game_type"); a->setText(i18n("Change Game Type...")); connect( a, SIGNAL( triggered( bool ) ), SLOT( slotShowGameSelectionScreen() ) ); a = actionCollection()->addAction("random_set"); a->setText(i18n("Random Cards")); connect( a, SIGNAL( triggered( bool ) ), SLOT( slotPickRandom() ) ); a->setShortcuts( KShortcut( Qt::Key_F9 ) ); if (!qgetenv("KDE_DEBUG").isEmpty()) // developer shortcut { a = actionCollection()->addAction("snapshot"); a->setText(i18n("Take Game Preview Snapshots")); connect( a, SIGNAL( triggered( bool ) ), SLOT( slotSnapshot() ) ); a->setShortcuts( KShortcut( Qt::Key_F8 ) ); } a = actionCollection()->addAction("select_deck"); a->setText(i18n("Select Deck...")); connect( a, SIGNAL( triggered( bool ) ), SLOT( slotSelectDeck() ) ); a->setShortcuts( KShortcut( Qt::Key_F10 ) ); a = actionCollection()->addAction("game_stats"); a->setText(i18n("Statistics")); connect( a, SIGNAL( triggered( bool ) ), SLOT(showStats()) ); gamehelpaction = actionCollection()->addAction("help_game"); connect( gamehelpaction, SIGNAL( triggered( bool ) ), SLOT(helpGame())); gamehelpaction->setShortcuts( KShortcut( Qt::Key_F2 ) ); // Game type dependent actions hintaction = KStandardGameAction::hint( 0, 0, actionCollection() ); demoaction = KStandardGameAction::demo( 0, 0, actionCollection() ); drawaction = actionCollection()->addAction("move_draw"); drawaction->setText( i18nc("Take one or more cards from the deck, flip them, and place them in play", "Dra&w") ); drawaction->setIcon( KIcon("kpat") ); drawaction->setShortcut( Qt::Key_Space ); dealaction = actionCollection()->addAction("move_deal"); dealaction->setText( i18nc("Deal a new row of cards from the deck", "Dea&l") ); dealaction->setIcon( KIcon("kpat") ); dealaction->setShortcut( Qt::Key_Enter ); redealaction = actionCollection()->addAction("move_redeal"); redealaction->setText( i18nc("Collect the cards in play, shuffle them and redeal them", "&Redeal") ); redealaction->setIcon( KIcon("roll") ); redealaction->setShortcut( Qt::Key_R ); dropaction = actionCollection()->addAction("move_drop"); dropaction->setText( i18nc("Automatically move cards to the foundation piles", "Dro&p") ); dropaction->setIcon( KIcon("legalmoves") ); dropaction->setShortcut( Qt::Key_P ); // Configuration actions KConfigGroup cg(KGlobal::config(), settings_group ); autodropaction = new KToggleAction(i18n("&Enable Autodrop"), this); actionCollection()->addAction("enable_autodrop", autodropaction); connect( autodropaction, SIGNAL( triggered( bool ) ), SLOT(enableAutoDrop()) ); autodropaction->setChecked( cg.readEntry("Autodrop", true) ); solveraction = new KToggleAction(i18n("E&nable Solver"), this); actionCollection()->addAction("enable_solver", solveraction); connect( solveraction, SIGNAL( triggered( bool ) ), SLOT( enableSolver() ) ); solveraction->setChecked( cg.readEntry("Solver", true) ); rememberstateaction = new KToggleAction(i18n("&Remember State on Exit"), this); actionCollection()->addAction("remember_state", rememberstateaction); connect( rememberstateaction, SIGNAL( triggered( bool ) ), SLOT( enableRememberState() ) ); rememberstateaction->setChecked( cg.readEntry("RememberStateOnExit", false) ); #endif foreach( const DealerInfo * di, DealerInfoList::self()->games() ) { foreach( int id, di->ids ) m_dealer_map.insert( id, di ); if ( QString(di->name).toLower() == "freecell" ) m_freeCellId = di->ids.first(); }
void MainWindow::setupActions() { KAction *newDownloadAction = actionCollection()->addAction("new_download"); newDownloadAction->setText(i18n("&New Download...")); newDownloadAction->setIcon(KIcon("document-new")); newDownloadAction->setShortcuts(KShortcut("Ctrl+N")); newDownloadAction->setHelpText(i18n("Opens a dialog to add a transfer to the list")); connect(newDownloadAction, SIGNAL(triggered()), SLOT(slotNewTransfer())); KAction *openAction = actionCollection()->addAction("import_transfers"); openAction->setText(i18n("&Import Transfers...")); openAction->setIcon(KIcon("document-open")); openAction->setShortcuts(KShortcut("Ctrl+I")); openAction->setHelpText(i18n("Imports a list of transfers")); connect(openAction, SIGNAL(triggered()), SLOT(slotImportTransfers())); KAction *exportAction = actionCollection()->addAction("export_transfers"); exportAction->setText(i18n("&Export Transfers List...")); exportAction->setIcon(KIcon("document-export")); exportAction->setShortcuts(KShortcut("Ctrl+E")); exportAction->setHelpText(i18n("Exports the current transfers into a file")); connect(exportAction, SIGNAL(triggered()), SLOT(slotExportTransfers())); KAction *createMetalinkAction = actionCollection()->addAction("create_metalink"); createMetalinkAction->setText(i18n("&Create a Metalink...")); createMetalinkAction->setIcon(KIcon("journal-new")); createMetalinkAction->setHelpText(i18n("Creates or modifies a metalink and saves it on disk")); connect(createMetalinkAction, SIGNAL(triggered()), SLOT(slotCreateMetalink())); KAction *priorityTop = actionCollection()->addAction("priority_top"); priorityTop->setText(i18n("Top Priority")); priorityTop->setIcon(KIcon("arrow-up-double")); priorityTop->setShortcuts(KShortcut("Ctrl+PgUp")); priorityTop->setHelpText(i18n("Download selected transfer first")); connect(priorityTop, SIGNAL(triggered()), this, SLOT(slotPriorityTop())); KAction *priorityBottom = actionCollection()->addAction("priority_bottom"); priorityBottom->setText(i18n("Least Priority")); priorityBottom->setIcon(KIcon("arrow-down-double")); priorityBottom->setShortcuts(KShortcut("Ctrl+PgDown")); priorityBottom->setHelpText(i18n("Download selected transfer last")); connect(priorityBottom, SIGNAL(triggered()), this, SLOT(slotPriorityBottom())); KAction *priorityUp = actionCollection()->addAction("priority_up"); priorityUp->setText(i18n("Increase Priority")); priorityUp->setIcon(KIcon("arrow-up")); priorityUp->setShortcuts(KShortcut("Ctrl+Up")); priorityUp->setHelpText(i18n("Increase priority for selected transfer")); connect(priorityUp, SIGNAL(triggered()), this, SLOT(slotPriorityUp())); KAction *priorityDown = actionCollection()->addAction("priority_down"); priorityDown->setText(i18n("Decrease Priority")); priorityDown->setIcon(KIcon("arrow-down")); priorityDown->setShortcuts(KShortcut("Ctrl+Down")); priorityDown->setHelpText(i18n("Decrease priority for selected transfer")); connect(priorityDown, SIGNAL(triggered()), this, SLOT(slotPriorityDown())); //FIXME: Not needed maybe because the normal delete already deletes groups? KAction *deleteGroupAction = actionCollection()->addAction("delete_groups"); deleteGroupAction->setText(i18n("Delete Group")); deleteGroupAction->setIcon(KIcon("edit-delete")); deleteGroupAction->setHelpText(i18n("Delete selected group")); connect(deleteGroupAction, SIGNAL(triggered()), SLOT(slotDeleteGroup())); KAction *renameGroupAction = actionCollection()->addAction("rename_groups"); renameGroupAction->setText(i18n("Rename Group...")); renameGroupAction->setIcon(KIcon("edit-rename")); connect(renameGroupAction, SIGNAL(triggered()), SLOT(slotRenameGroup())); KAction *setIconGroupAction = actionCollection()->addAction("seticon_groups"); setIconGroupAction->setText(i18n("Set Icon...")); setIconGroupAction->setIcon(KIcon("preferences-desktop-icons")); setIconGroupAction->setHelpText(i18n("Select a custom icon for the selected group")); connect(setIconGroupAction, SIGNAL(triggered()), SLOT(slotSetIconGroup())); m_autoPasteAction = new KToggleAction(KIcon("edit-paste"), i18n("Auto-Paste Mode"), actionCollection()); actionCollection()->addAction("auto_paste", m_autoPasteAction); m_autoPasteAction->setChecked(Settings::autoPaste()); m_autoPasteAction->setWhatsThis(i18n("<b>Auto paste</b> button toggles the auto-paste mode " "on and off.\nWhen set, KGet will periodically scan " "the clipboard for URLs and paste them automatically.")); connect(m_autoPasteAction, SIGNAL(triggered()), SLOT(slotToggleAutoPaste())); m_konquerorIntegration = new KToggleAction(KIcon("konqueror"), i18n("Use KGet as Konqueror Download Manager"), actionCollection()); actionCollection()->addAction("konqueror_integration", m_konquerorIntegration); connect(m_konquerorIntegration, SIGNAL(triggered(bool)), SLOT(slotTrayKonquerorIntegration(bool))); m_konquerorIntegration->setChecked(Settings::konquerorIntegration()); // local - Destroys all sub-windows and exits KStandardAction::quit(this, SLOT(slotQuit()), actionCollection()); // local - Standard configure actions KStandardAction::preferences(this, SLOT(slotPreferences()), actionCollection()); KStandardAction::configureNotifications(this, SLOT(slotConfigureNotifications()), actionCollection()); m_menubarAction = KStandardAction::showMenubar(this, SLOT(slotShowMenubar()), actionCollection()); m_menubarAction->setChecked(!menuBar()->isHidden()); // Transfer related actions actionCollection()->addAction(KStandardAction::SelectAll, "select_all", m_viewsContainer, SLOT(selectAll())); KAction *deleteSelectedAction = actionCollection()->addAction("delete_selected_download"); deleteSelectedAction->setText(i18nc("delete selected transfer item", "Remove Selected")); deleteSelectedAction->setIcon(KIcon("edit-delete")); deleteSelectedAction->setShortcuts(KShortcut("Del")); deleteSelectedAction->setHelpText(i18n("Removes selected transfer and deletes files from disk if it's not finished")); connect(deleteSelectedAction, SIGNAL(triggered()), SLOT(slotDeleteSelected())); KAction *deleteAllFinishedAction = actionCollection()->addAction("delete_all_finished"); deleteAllFinishedAction->setText(i18nc("delete all finished transfers", "Remove All Finished")); deleteAllFinishedAction->setIcon(KIcon("edit-clear-list")); deleteAllFinishedAction->setHelpText(i18n("Removes all finished transfers and leaves all files on disk")); connect(deleteAllFinishedAction, SIGNAL(triggered()), SLOT(slotDeleteFinished())); KAction *deleteSelectedIncludingFilesAction = actionCollection()->addAction("delete_selected_download_including_files"); deleteSelectedIncludingFilesAction->setText(i18nc("delete selected transfer item and files", "Remove Selected and Delete Files")); deleteSelectedIncludingFilesAction->setIcon(KIcon("edit-delete")); deleteSelectedIncludingFilesAction->setHelpText(i18n("Removes selected transfer and deletes files from disk in any case")); connect(deleteSelectedIncludingFilesAction, SIGNAL(triggered()), SLOT(slotDeleteSelectedIncludingFiles())); KAction *redownloadSelectedAction = actionCollection()->addAction("redownload_selected_download"); redownloadSelectedAction->setText(i18nc("redownload selected transfer item", "Redownload Selected")); redownloadSelectedAction->setIcon(KIcon("view-refresh")); connect(redownloadSelectedAction, SIGNAL(triggered()), SLOT(slotRedownloadSelected())); KAction *startAllAction = actionCollection()->addAction("start_all_download"); startAllAction->setText(i18n("Start All")); startAllAction->setIcon(KIcon("media-seek-forward")); startAllAction->setShortcuts(KShortcut("Ctrl+R")); startAllAction->setHelpText(i18n("Starts / resumes all transfers")); connect(startAllAction, SIGNAL(triggered()), SLOT(slotStartAllDownload())); KAction *startSelectedAction = actionCollection()->addAction("start_selected_download"); startSelectedAction->setText(i18n("Start Selected")); startSelectedAction->setIcon(KIcon("media-playback-start")); startSelectedAction->setHelpText(i18n("Starts / resumes selected transfer")); connect(startSelectedAction, SIGNAL(triggered()), SLOT(slotStartSelectedDownload())); KAction *stopAllAction = actionCollection()->addAction("stop_all_download"); stopAllAction->setText(i18n("Pause All")); stopAllAction->setIcon(KIcon("media-playback-pause")); stopAllAction->setShortcuts(KShortcut("Ctrl+P")); stopAllAction->setHelpText(i18n("Pauses all transfers")); connect(stopAllAction, SIGNAL(triggered()), SLOT(slotStopAllDownload())); KAction *stopSelectedAction = actionCollection()->addAction("stop_selected_download"); stopSelectedAction->setText(i18n("Stop Selected")); stopSelectedAction->setIcon(KIcon("media-playback-pause")); stopSelectedAction->setHelpText(i18n("Pauses selected transfer")); connect(stopSelectedAction, SIGNAL(triggered()), SLOT(slotStopSelectedDownload())); KActionMenu *startActionMenu = new KActionMenu(KIcon("media-playback-start"), i18n("Start"), actionCollection()); actionCollection()->addAction("start_menu", startActionMenu); startActionMenu->setDelayed(true); startActionMenu->addAction(startSelectedAction); startActionMenu->addAction(startAllAction); connect(startActionMenu, SIGNAL(triggered()), SLOT(slotStartDownload())); KActionMenu *stopActionMenu = new KActionMenu(KIcon("media-playback-pause"), i18n("Pause"), actionCollection()); actionCollection()->addAction("stop_menu", stopActionMenu); stopActionMenu->setDelayed(true); stopActionMenu->addAction(stopSelectedAction); stopActionMenu->addAction(stopAllAction); connect(stopActionMenu, SIGNAL(triggered()), SLOT(slotStopDownload())); KAction *openDestAction = actionCollection()->addAction("transfer_open_dest"); openDestAction->setText(i18n("Open Destination")); openDestAction->setIcon(KIcon("document-open")); connect(openDestAction, SIGNAL(triggered()), SLOT(slotTransfersOpenDest())); KAction *openFileAction = actionCollection()->addAction("transfer_open_file"); openFileAction->setText(i18n("Open File")); openFileAction->setIcon(KIcon("document-open")); connect(openFileAction, SIGNAL(triggered()), SLOT(slotTransfersOpenFile())); KAction *showDetailsAction = new KToggleAction(KIcon("document-properties"), i18n("Show Details"), actionCollection()); actionCollection()->addAction("transfer_show_details", showDetailsAction); connect(showDetailsAction, SIGNAL(triggered()), SLOT(slotTransfersShowDetails())); KAction *copyUrlAction = actionCollection()->addAction("transfer_copy_source_url"); copyUrlAction->setText(i18n("Copy URL to Clipboard")); copyUrlAction->setIcon(KIcon("edit-copy")); connect(copyUrlAction, SIGNAL(triggered()), SLOT(slotTransfersCopySourceUrl())); KAction *transferHistoryAction = actionCollection()->addAction("transfer_history"); transferHistoryAction->setText(i18n("&Transfer History")); transferHistoryAction->setIcon(KIcon("view-history")); transferHistoryAction->setShortcuts(KShortcut("Ctrl+H")); connect(transferHistoryAction, SIGNAL(triggered()), SLOT(slotTransferHistory())); KAction *transferGroupSettingsAction = actionCollection()->addAction("transfer_group_settings"); transferGroupSettingsAction->setText(i18n("&Group Settings")); transferGroupSettingsAction->setIcon(KIcon("preferences-system")); transferGroupSettingsAction->setShortcuts(KShortcut("Ctrl+G")); connect(transferGroupSettingsAction, SIGNAL(triggered()), SLOT(slotTransferGroupSettings())); KAction *transferSettingsAction = actionCollection()->addAction("transfer_settings"); transferSettingsAction->setText(i18n("&Transfer Settings")); transferSettingsAction->setIcon(KIcon("preferences-system")); transferSettingsAction->setShortcuts(KShortcut("Ctrl+T")); connect(transferSettingsAction, SIGNAL(triggered()), SLOT(slotTransferSettings())); KAction *listLinksAction = actionCollection()->addAction("import_links"); listLinksAction->setText(i18n("Import &Links...")); listLinksAction->setIcon(KIcon("view-list-text")); listLinksAction->setShortcuts(KShortcut("Ctrl+L")); connect(listLinksAction, SIGNAL(triggered()), SLOT(slotShowListLinks())); //create the download finished actions which can be displayed in the toolbar KSelectAction *downloadFinishedActions = new KSelectAction(i18n("After downloads finished action"), this);//TODO maybe with name?? actionCollection()->addAction("download_finished_actions", downloadFinishedActions); downloadFinishedActions->setHelpText(i18n("Choose an action that is executed after all downloads have been finished.")); KAction *noAction = downloadFinishedActions->addAction(i18n("No Action")); connect(noAction, SIGNAL(triggered()), SLOT(slotDownloadFinishedActions())); downloadFinishedActions->addAction(noAction); KAction *quitAction = downloadFinishedActions->addAction(i18n("Quit KGet")); quitAction->setData(KGet::Quit); connect(quitAction, SIGNAL(triggered()), SLOT(slotDownloadFinishedActions())); downloadFinishedActions->addAction(quitAction); #ifdef HAVE_KWORKSPACE KAction *shutdownAction = downloadFinishedActions->addAction(i18n("Turn Off Computer")); shutdownAction->setData(KGet::Shutdown); connect(shutdownAction, SIGNAL(triggered()), SLOT(slotDownloadFinishedActions())); downloadFinishedActions->addAction(shutdownAction); KAction *hibernateAction = downloadFinishedActions->addAction(i18n("Hibernate Computer")); hibernateAction->setData(KGet::Hibernate); connect(hibernateAction, SIGNAL(triggered()), SLOT(slotDownloadFinishedActions())); downloadFinishedActions->addAction(hibernateAction); KAction *suspendAction = downloadFinishedActions->addAction(i18n("Suspend Computer")); suspendAction->setData(KGet::Suspend); connect(suspendAction, SIGNAL(triggered()), SLOT(slotDownloadFinishedActions())); downloadFinishedActions->addAction(suspendAction); #endif if (Settings::afterFinishActionEnabled()) { downloadFinishedActions->setCurrentItem(Settings::afterFinishAction() + 1); } else { downloadFinishedActions->setCurrentItem(0); } }
void MainWindow::setupActions() { kDebug() << "setup actions..."; // this let shortcuts work.. actionCollection()->addAssociatedWidget(this); KAction *a; // new window action a = new KAction(KIcon("window-new"), i18n("&New Window"), this); a->setShortcut(KShortcut(Qt::CTRL | Qt::Key_N)); actionCollection()->addAction(QL1S("new_window"), a); connect(a, SIGNAL(triggered(bool)), Application::instance(), SLOT(newWindow())); // Standard Actions KStandardAction::open(this, SLOT(fileOpen()), actionCollection()); KStandardAction::saveAs(this, SLOT(fileSaveAs()), actionCollection()); KStandardAction::print(this, SLOT(printRequested()), actionCollection()); KStandardAction::quit(this , SLOT(close()), actionCollection()); a = KStandardAction::find(m_findBar, SLOT(show()), actionCollection()); KShortcut findShortcut = KStandardShortcut::find(); findShortcut.setAlternate(Qt::Key_Slash); a->setShortcut(findShortcut); KStandardAction::findNext(this, SLOT(findNext()) , actionCollection()); KStandardAction::findPrev(this, SLOT(findPrevious()) , actionCollection()); a = KStandardAction::fullScreen(this, SLOT(viewFullScreen(bool)), this, actionCollection()); KShortcut fullScreenShortcut = KStandardShortcut::fullScreen(); fullScreenShortcut.setAlternate(Qt::Key_F11); a->setShortcut(fullScreenShortcut); a = actionCollection()->addAction(KStandardAction::Home); connect(a, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)), this, SLOT(homePage(Qt::MouseButtons, Qt::KeyboardModifiers))); KStandardAction::preferences(this, SLOT(preferences()), actionCollection()); a = KStandardAction::redisplay(m_view, SLOT(webReload()), actionCollection()); a->setText(i18n("Reload")); KShortcut reloadShortcut = KStandardShortcut::reload(); reloadShortcut.setAlternate(Qt::CTRL + Qt::Key_R); a->setShortcut(reloadShortcut); a = new KAction(KIcon("process-stop"), i18n("&Stop"), this); a->setShortcut(KShortcut(Qt::CTRL | Qt::Key_Period)); actionCollection()->addAction(QL1S("stop"), a); connect(a, SIGNAL(triggered(bool)), m_view, SLOT(webStop())); // stop reload Action m_stopReloadAction = new KAction(this); actionCollection()->addAction(QL1S("stop_reload") , m_stopReloadAction); m_stopReloadAction->setShortcutConfigurable(false); connect(m_view, SIGNAL(browserTabLoading(bool)), this, SLOT(browserLoading(bool))); browserLoading(false); //first init for blank start page a = new KAction(i18n("Open Location"), this); KShortcut openLocationShortcut(Qt::CTRL + Qt::Key_L); openLocationShortcut.setAlternate(Qt::Key_F6); a->setShortcut(openLocationShortcut); actionCollection()->addAction(QL1S("open_location"), a); connect(a, SIGNAL(triggered(bool)) , this, SLOT(openLocation())); // set zoom bar actions m_zoomBar->setupActions(this); // tab list m_tabListMenu = new KMenu(); m_tabListMenu->addAction("hack"); // necessary to show the menu on the right side the first time connect(m_tabListMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowTabListMenu())); connect(m_tabListMenu, SIGNAL(triggered(QAction*)), this, SLOT(openActionTab(QAction*))); KActionMenu *tabAction = new KActionMenu(i18n("Tab List"), this); tabAction->setMenu(m_tabListMenu); tabAction->setIcon(KIcon("document-multiple")); tabAction->setDelayed(false); actionCollection()->addAction(QL1S("tab_list"), tabAction); // =============================== Tools Actions ================================= a = new KAction(i18n("View Page S&ource"), this); a->setIcon(KIcon("application-xhtml+xml")); a->setShortcut(KShortcut(Qt::CTRL + Qt::Key_U)); actionCollection()->addAction(QL1S("page_source"), a); connect(a, SIGNAL(triggered(bool)), this, SLOT(viewPageSource())); a = Application::instance()->privateBrowsingAction(); a->setShortcut(Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_P); actionCollection()->addAction(QL1S("private_browsing"), a); a = new KAction(KIcon("edit-clear"), i18n("Clear Private Data..."), this); a->setShortcut(Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_Delete); actionCollection()->addAction(QL1S("clear_private_data"), a); connect(a, SIGNAL(triggered(bool)), this, SLOT(clearPrivateData())); // ========================= History related actions ============================== a = actionCollection()->addAction(KStandardAction::Back); connect(a, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)), this, SLOT(openPrevious(Qt::MouseButtons, Qt::KeyboardModifiers))); m_historyBackMenu = new KMenu(this); a->setMenu(m_historyBackMenu); connect(m_historyBackMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowBackMenu())); connect(m_historyBackMenu, SIGNAL(triggered(QAction *)), this, SLOT(openActionUrl(QAction *))); a = actionCollection()->addAction(KStandardAction::Forward); connect(a, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)), this, SLOT(openNext(Qt::MouseButtons, Qt::KeyboardModifiers))); // ============================== General Tab Actions ==================================== a = new KAction(KIcon("tab-new"), i18n("New &Tab"), this); a->setShortcut(KShortcut(Qt::CTRL + Qt::Key_T)); actionCollection()->addAction(QL1S("new_tab"), a); connect(a, SIGNAL(triggered(bool)), m_view, SLOT(newTab())); a = new KAction(KIcon("view-refresh"), i18n("Reload All Tabs"), this); actionCollection()->addAction(QL1S("reload_all_tabs"), a); connect(a, SIGNAL(triggered(bool)), m_view, SLOT(reloadAllTabs())); a = new KAction(i18n("Show Next Tab"), this); a->setShortcuts(QApplication::isRightToLeft() ? KStandardShortcut::tabPrev() : KStandardShortcut::tabNext()); actionCollection()->addAction(QL1S("show_next_tab"), a); connect(a, SIGNAL(triggered(bool)), m_view, SLOT(nextTab())); a = new KAction(i18n("Show Previous Tab"), this); a->setShortcuts(QApplication::isRightToLeft() ? KStandardShortcut::tabNext() : KStandardShortcut::tabPrev()); actionCollection()->addAction(QL1S("show_prev_tab"), a); connect(a, SIGNAL(triggered(bool)), m_view, SLOT(previousTab())); a = new KAction(KIcon("tab-new"), i18n("Open Last Closed Tab"), this); a->setShortcut(KShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_T)); actionCollection()->addAction(QL1S("open_last_closed_tab"), a); connect(a, SIGNAL(triggered(bool)), m_view, SLOT(openLastClosedTab())); // Closed Tabs Menu KActionMenu *closedTabsMenu = new KActionMenu(KIcon("tab-new"), i18n("Closed Tabs"), this); closedTabsMenu->setDelayed(false); actionCollection()->addAction(QL1S("closed_tab_menu"), closedTabsMenu); // shortcuts for quickly switching to a tab for( int i = 1; i <= 9; i++ ) { a = new KAction(i18n("Switch to Tab %1", i), this); a->setShortcut(KShortcut( QString("Alt+%1").arg(i) )); a->setData( QVariant(i) ); actionCollection()->addAction(QL1S(("switch_tab_" + QString::number(i)).toAscii()), a); connect(a, SIGNAL(triggered(bool)), m_view, SLOT(switchToTab())); } // ============================== Indexed Tab Actions ==================================== a = new KAction(KIcon("tab-close"), i18n("&Close Tab"), this); a->setShortcuts( KStandardShortcut::close() ); actionCollection()->addAction(QL1S("close_tab"), a); connect(a, SIGNAL(triggered(bool)), m_view->tabBar(), SLOT(closeTab())); a = new KAction(KIcon("tab-duplicate"), i18n("Clone Tab"), this); actionCollection()->addAction(QL1S("clone_tab"), a); connect(a, SIGNAL(triggered(bool)), m_view->tabBar(), SLOT(cloneTab())); a = new KAction(KIcon("tab-close-other"), i18n("Close &Other Tabs"), this); actionCollection()->addAction(QL1S("close_other_tabs"), a); connect(a, SIGNAL(triggered(bool)), m_view->tabBar(), SLOT(closeOtherTabs())); a = new KAction(KIcon("view-refresh"), i18n("Reload Tab"), this); actionCollection()->addAction(QL1S("reload_tab"), a); connect(a, SIGNAL(triggered(bool)), m_view->tabBar(), SLOT(reloadTab())); a = new KAction(KIcon("tab-detach"), i18n("Detach Tab"), this); actionCollection()->addAction(QL1S("detach_tab"), a); connect(a, SIGNAL(triggered(bool)), m_view->tabBar(), SLOT(detachTab())); // Bookmark Menu KActionMenu *bmMenu = Application::bookmarkProvider()->bookmarkActionMenu(this); bmMenu->setIcon(KIcon("bookmarks")); bmMenu->setDelayed(false); bmMenu->setShortcutConfigurable(true); bmMenu->setShortcut( KShortcut(Qt::ALT + Qt::Key_B) ); actionCollection()->addAction(QL1S("bookmarksActionMenu"), bmMenu); // ---------------- Encodings ----------------------------------- a = new KAction(KIcon("character-set"), i18n("Set Encoding"), this); actionCollection()->addAction(QL1S("encodings"), a); a->setMenu(m_encodingMenu); connect(m_encodingMenu, SIGNAL(aboutToShow()), this, SLOT(populateEncodingMenu())); connect(m_encodingMenu, SIGNAL(triggered(QAction *)), this, SLOT(setEncoding(QAction *))); }
void ActionManagerImpl::initSubscriptionListView(SubscriptionListView* subscriptionListView) { if (d->subscriptionListView) return; else d->subscriptionListView = subscriptionListView; KActionCollection *coll = actionCollection(); KAction *action = coll->addAction("go_prev_feed"); action->setText(i18n("&Previous Feed")); connect(action, SIGNAL(triggered(bool)), subscriptionListView, SLOT(slotPrevFeed())); action->setShortcuts(KShortcut( "P" )); action = coll->addAction("go_next_feed"); action->setText(i18n("&Next Feed")); connect(action, SIGNAL(triggered(bool)), subscriptionListView, SLOT(slotNextFeed())); action->setShortcuts(KShortcut( "N" )); action = coll->addAction("go_next_unread_feed"); action->setIcon(KIcon("go-down")); action->setText(i18n("N&ext Unread Feed")); connect(action, SIGNAL(triggered(bool)), subscriptionListView, SLOT(slotNextUnreadFeed())); action->setShortcut( QKeySequence(Qt::ALT+Qt::Key_Plus) ); action = coll->addAction("go_prev_unread_feed"); action->setIcon(KIcon("go-up")); action->setText(i18n("Prev&ious Unread Feed")); connect(action, SIGNAL(triggered(bool)), subscriptionListView, SLOT(slotPrevUnreadFeed())); action->setShortcut( QKeySequence(Qt::ALT+Qt::Key_Minus) ); action = coll->addAction("feedstree_home"); action->setText(i18n("Go to Top of Tree")); connect(action, SIGNAL(triggered(bool)), subscriptionListView, SLOT(slotItemBegin())); action->setShortcuts(KShortcut( "Ctrl+Home" )); action = coll->addAction("feedstree_end"); action->setText(i18n("Go to Bottom of Tree")); connect(action, SIGNAL(triggered(bool)), subscriptionListView, SLOT(slotItemEnd())); action->setShortcuts(KShortcut( "Ctrl+End" )); action = coll->addAction("feedstree_left"); action->setText(i18n("Go Left in Tree")); connect(action, SIGNAL(triggered(bool)), subscriptionListView, SLOT(slotItemLeft())); action->setShortcuts(KShortcut( "Ctrl+Left" )); action = coll->addAction("feedstree_right"); action->setText(i18n("Go Right in Tree")); connect(action, SIGNAL(triggered(bool)), subscriptionListView, SLOT(slotItemRight())); action->setShortcuts(KShortcut( "Ctrl+Right" )); action = coll->addAction("feedstree_up"); action->setText(i18n("Go Up in Tree")); connect(action, SIGNAL(triggered(bool)), subscriptionListView, SLOT(slotItemUp())); action->setShortcuts(KShortcut( "Ctrl+Up" )); action = coll->addAction("feedstree_down" ); action->setText(i18n("Go Down in Tree")); connect(action, SIGNAL(triggered(bool)), subscriptionListView, SLOT(slotItemDown())); action->setShortcuts(KShortcut( "Ctrl+Down" )); }
void ActionManagerImpl::initMainWidget(MainWidget* mainWidget) { if (d->mainWidget) return; d->mainWidget = mainWidget; KActionCollection* coll = actionCollection(); // Feed/Feed Group popup menu KAction* action = coll->addAction("feed_homepage"); action->setText(i18n("&Open Homepage")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotOpenHomepage())); action->setShortcuts(KShortcut( "Ctrl+H" )); action = coll->addAction("reload_all_tabs"); action->setIcon(KIcon("view-refresh")); action->setText(i18n("Reload All Tabs")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotReloadAllTabs())); action->setShortcuts(KShortcut( "Shift+F5" )); action = coll->addAction("feed_add"); action->setIcon(KIcon("feed-subscribe")); action->setText(i18n("&Add Feed...")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotFeedAdd())); action->setShortcuts(KShortcut( "Insert" )); action = coll->addAction("feed_add_group"); action->setIcon(KIcon("folder-new")); action->setText(i18n("Ne&w Folder...")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotFeedAddGroup())); action->setShortcuts(KShortcut( "Shift+Insert" )); action = coll->addAction("feed_remove"); action->setIcon(KIcon("edit-delete")); action->setText(i18n("&Delete Feed")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotFeedRemove())); action->setShortcuts(KShortcut( "Alt+Delete" )); action = coll->addAction("feed_modify"); action->setIcon(KIcon("document-properties")); action->setText(i18n("&Edit Feed...")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotFeedModify())); action->setShortcuts(KShortcut( "F2" )); // toolbar / View action = coll->addAction("normal_view"); action->setIcon(KIcon("view-split-top-bottom")); action->setText(i18n("&Normal View")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotNormalView())); action->setShortcuts(KShortcut( "Ctrl+Shift+1" )); action = coll->addAction("widescreen_view"); action->setIcon(KIcon("view-split-left-right")); action->setText(i18n("&Widescreen View")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotWidescreenView())); action->setShortcuts(KShortcut( "Ctrl+Shift+2" )); action = coll->addAction("combined_view"); action->setIcon(KIcon("view-list-text")); action->setText(i18n("C&ombined View")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotCombinedView())); action->setShortcuts(KShortcut( "Ctrl+Shift+3" )); // toolbar / feed menu action = coll->addAction("feed_fetch"); action->setIcon(KIcon("go-down")); action->setText(i18n("&Fetch Feed")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotFetchCurrentFeed())); action->setShortcuts(KStandardShortcut::shortcut(KStandardShortcut::Reload)); action = coll->addAction("feed_fetch_all"); action->setIcon(KIcon("go-bottom")); action->setText(i18n("Fe&tch All Feeds")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotFetchAllFeeds())); action->setShortcuts(KShortcut( "Ctrl+L" )); KAction *stopAction = coll->addAction("feed_stop"); stopAction->setIcon(KIcon("process-stop")); stopAction->setText(i18n("C&ancel Feed Fetches")); connect(stopAction, SIGNAL(triggered(bool)), Kernel::self()->fetchQueue(), SLOT(slotAbort())); stopAction->setShortcut(QKeySequence(Qt::Key_Escape)); stopAction->setEnabled(false); action = coll->addAction("feed_mark_all_as_read"); action->setIcon(KIcon("mail-mark-read")); action->setText(i18n("&Mark Feed as Read")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotMarkAllRead())); action->setShortcuts(KShortcut( "Ctrl+R" )); action = coll->addAction("feed_mark_all_feeds_as_read"); action->setIcon(KIcon("mail-mark-read")); action->setText(i18n("Ma&rk All Feeds as Read")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotMarkAllFeedsRead())); action->setShortcuts(KShortcut( "Ctrl+Shift+R" )); // Settings menu KToggleAction *sqf = coll->add<KToggleAction>("show_quick_filter"); sqf->setText(i18n("Show Quick Filter")); connect(sqf, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotToggleShowQuickFilter())); sqf->setChecked( Settings::showQuickFilter() ); action = coll->addAction("article_open" ); action->setIcon(KIcon("tab-new")); action->setText(i18n("Open in Tab")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotOpenSelectedArticles())); action->setShortcuts(KShortcut( "Shift+Return" )); action = coll->addAction("article_open_in_background" ); action->setIcon(KIcon("tab-new")); action->setText(i18n("Open in Background Tab")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotOpenSelectedArticlesInBackground())); action->setShortcuts(KShortcut( "Return" )); action = coll->addAction("article_open_external" ); action->setIcon(KIcon("window-new")); action->setText(i18n("Open in External Browser")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotOpenSelectedArticlesInBrowser())); action->setShortcuts(KShortcut( "Ctrl+Shift+Return" )); action = coll->addAction("article_copy_link_address" ); action->setText(i18n("Copy Link Address")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotCopyLinkAddress())); action = coll->addAction("go_prev_unread_article"); action->setIcon(KIcon("go-previous")); action->setText(i18n("Pre&vious Unread Article")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotPrevUnreadArticle())); action->setShortcut(QKeySequence(Qt::Key_Minus)); action = coll->addAction("go_next_unread_article"); action->setIcon(KIcon("go-next")); action->setText(i18n("Ne&xt Unread Article")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotNextUnreadArticle())); action->setShortcuts(KShortcut(Qt::Key_Plus, Qt::Key_Equal)); action = coll->addAction("article_delete"); action->setIcon(KIcon("edit-delete")); action->setText(i18n("&Delete")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotArticleDelete())); action->setShortcuts(KShortcut( "Delete" )); KActionMenu* statusMenu = coll->add<KActionMenu>("article_set_status"); statusMenu->setText(i18n("&Mark As")); statusMenu->setEnabled( false ); d->speakSelectedArticlesAction = coll->addAction("akr_texttospeech"); d->speakSelectedArticlesAction->setIcon(KIcon("media-playback-start")); d->speakSelectedArticlesAction->setText(i18n("&Speak Selected Articles")); connect(d->speakSelectedArticlesAction, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotTextToSpeechRequest())); action = coll->addAction("akr_aborttexttospeech"); action->setText(i18n( "&Stop Speaking" )); action->setIcon(KIcon("media-playback-stop")); connect(action, SIGNAL(triggered(bool)),SpeechClient::self(), SLOT(slotAbortJobs())); //action->setShortcuts(Qt::Key_Escape); action->setEnabled(false); connect(SpeechClient::self(), SIGNAL(signalActivated(bool)), action, SLOT(setEnabled(bool))); action = coll->addAction("article_set_status_read"); action->setText(i18nc("as in: mark as read","&Read")); action->setIcon(KIcon("mail-mark-read")); action->setToolTip(i18n("Mark selected article as read")); action->setShortcuts(KShortcut( "Ctrl+E" )); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotSetSelectedArticleRead())); statusMenu->addAction(action); action = coll->addAction("article_set_status_new"); action->setText(i18nc("as in: mark as new", "&New")); action->setIcon(KIcon("mail-mark-unread-new")); action->setShortcuts(KShortcut( "Ctrl+N" )); action->setToolTip(i18n("Mark selected article as new")); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotSetSelectedArticleNew())); statusMenu->addAction(action); action = coll->addAction("article_set_status_unread"); action->setText(i18nc("as in: mark as unread", "&Unread")); action->setIcon(KIcon("mail-mark-unread")); action->setToolTip(i18n("Mark selected article as unread")); action->setShortcuts(KShortcut( "Ctrl+U" )); connect(action, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotSetSelectedArticleUnread())); statusMenu->addAction(action); KToggleAction* importantAction = coll->add<KToggleAction>("article_set_status_important"); importantAction->setText(i18n("&Mark as Important")); importantAction->setIcon(KIcon("mail-mark-important")); KShortcut importantSC( "Ctrl+I" ); importantSC.setAlternate( Qt::Key_I ); importantAction->setShortcuts( importantSC ); importantAction->setCheckedState(KGuiItem(i18n("Remove &Important Mark"))); connect(importantAction, SIGNAL(triggered(bool)), d->mainWidget, SLOT(slotArticleToggleKeepFlag(bool))); action = coll->addAction("feedstree_move_up"); action->setText(i18n("Move Node Up")); connect(action, SIGNAL(triggered(bool)), mainWidget, SLOT(slotMoveCurrentNodeUp())); action->setShortcuts(KShortcut( "Shift+Alt+Up" )); action = coll->addAction("feedstree_move_down"); action->setText(i18n("Move Node Down")); connect(action, SIGNAL(triggered(bool)), mainWidget, SLOT(slotMoveCurrentNodeDown())); action->setShortcuts(KShortcut( "Shift+Alt+Down" )); action = coll->addAction(i18n("Move Node Left")); action->setText(i18n("Move Node Left")); connect(action, SIGNAL(triggered(bool)), mainWidget, SLOT(slotMoveCurrentNodeLeft())); action->setShortcuts(KShortcut( "Shift+Alt+Left" )); action = coll->addAction("feedstree_move_right"); action->setText(i18n("Move Node Right")); connect(action, SIGNAL(triggered(bool)), mainWidget, SLOT(slotMoveCurrentNodeRight())); action->setShortcuts(KShortcut( "Shift+Alt+Right" )); action = coll->addAction("file_sendlink"); action->setIcon(KIcon("mail-message-new")); action->setText(i18n("Send &Link Address...")); connect(action, SIGNAL(triggered(bool)), mainWidget, SLOT(slotSendLink())); action = coll->addAction("file_sendfile"); action->setIcon(KIcon("mail-message-new")); action->setText(i18n("Send &File...")); connect(action, SIGNAL(triggered(bool)), mainWidget, SLOT(slotSendFile())); setArticleActionsEnabled( false ); }