void KMarkNote::setupAction() { KStandardAction::openNew(this, SLOT(newNote()), actionCollection()); KStandardAction::close(this, SLOT(close()), actionCollection()); KAction* oneColAction = actionCollection()->addAction("win_onecol", m_view, SLOT(oneColView())); KAction* twoColAction = actionCollection()->addAction("win_twocol", m_view, SLOT(twoColView())); KAction* threeColAction = actionCollection()->addAction("win_threecol", m_view, SLOT(threeColView())); oneColAction->setText(i18n("One Column View")); twoColAction->setText(i18n("Two Column View")); threeColAction->setText(i18n("Three Column View")); oneColAction->setIcon(KIcon("view-split-top-bottom")); twoColAction->setIcon(KIcon("view-split-left-right")); threeColAction->setIcon(KIcon("view-file-columns")); KAction* terminalAction = actionCollection()->addAction("toggle_terminal", m_view, SLOT(toggleTerminal())); KShortcut terminalShortcut = terminalAction->shortcut(); terminalShortcut.setPrimary(QKeySequence("F4")); terminalAction->setShortcut(terminalShortcut); }
void ViewManager::setupActions() { KActionCollection* collection = _actionCollection; KAction* nextViewAction = new KAction( i18n("Next View") , this ); KAction* previousViewAction = new KAction( i18n("Previous View") , this ); QAction* nextContainerAction = new QAction( i18n("Next View Container") , this); QAction* moveViewLeftAction = new QAction( i18n("Move View Left") , this ); QAction* moveViewRightAction = new QAction( i18n("Move View Right") , this ); // list of actions that should only be enabled when there are multiple view // containers open QList<QAction*> multiViewOnlyActions; multiViewOnlyActions << nextContainerAction; if ( collection ) { KAction* splitLeftRightAction = new KAction( KIcon("view-split-left-right"), i18nc("@action:inmenu", "Split View Left/Right"), this ); splitLeftRightAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_L) ); collection->addAction("split-view-left-right",splitLeftRightAction); connect( splitLeftRightAction , SIGNAL(triggered()) , this , SLOT(splitLeftRight()) ); KAction* splitTopBottomAction = new KAction( KIcon("view-split-top-bottom") , i18nc("@action:inmenu", "Split View Top/Bottom"),this); splitTopBottomAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_T) ); collection->addAction("split-view-top-bottom",splitTopBottomAction); connect( splitTopBottomAction , SIGNAL(triggered()) , this , SLOT(splitTopBottom())); KAction* closeActiveAction = new KAction( i18nc("@action:inmenu Close Active View", "Close Active") , this ); closeActiveAction->setIcon(KIcon("view-close")); closeActiveAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_S) ); closeActiveAction->setEnabled(false); collection->addAction("close-active-view",closeActiveAction); connect( closeActiveAction , SIGNAL(triggered()) , this , SLOT(closeActiveView()) ); multiViewOnlyActions << closeActiveAction; KAction* closeOtherAction = new KAction( i18nc("@action:inmenu Close Other Views", "Close Others") , this ); closeOtherAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_O) ); closeOtherAction->setEnabled(false); collection->addAction("close-other-views",closeOtherAction); connect( closeOtherAction , SIGNAL(triggered()) , this , SLOT(closeOtherViews()) ); multiViewOnlyActions << closeOtherAction; KAction* detachViewAction = collection->addAction("detach-view"); detachViewAction->setIcon( KIcon("tab-detach") ); detachViewAction->setText( i18n("&Detach View") ); // Ctrl+Shift+D is not used as a shortcut by default because it is too close // to Ctrl+D - which will terminate the session in many cases detachViewAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_H) ); connect( this , SIGNAL(splitViewToggle(bool)) , this , SLOT(updateDetachViewState()) ); connect( detachViewAction , SIGNAL(triggered()) , this , SLOT(detachActiveView()) ); // Expand & Shrink Active View KAction* expandActiveAction = new KAction( i18nc("@action:inmenu", "Expand View") , this ); expandActiveAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_BracketRight) ); collection->addAction("expand-active-view",expandActiveAction); connect( expandActiveAction , SIGNAL(triggered()) , this , SLOT(expandActiveView()) ); multiViewOnlyActions << expandActiveAction; KAction* shrinkActiveAction = new KAction( i18nc("@action:inmenu", "Shrink View") , this ); shrinkActiveAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_BracketLeft) ); collection->addAction("shrink-active-view",shrinkActiveAction); connect( shrinkActiveAction , SIGNAL(triggered()) , this , SLOT(shrinkActiveView()) ); multiViewOnlyActions << shrinkActiveAction; // Next / Previous View , Next Container collection->addAction("next-view",nextViewAction); collection->addAction("previous-view",previousViewAction); collection->addAction("next-container",nextContainerAction); collection->addAction("move-view-left",moveViewLeftAction); collection->addAction("move-view-right",moveViewRightAction); } QListIterator<QAction*> iter(multiViewOnlyActions); while ( iter.hasNext() ) { connect( this , SIGNAL(splitViewToggle(bool)) , iter.next() , SLOT(setEnabled(bool)) ); } // keyboard shortcut only actions KShortcut nextViewShortcut = nextViewAction->shortcut(); nextViewShortcut.setPrimary( QKeySequence(Qt::SHIFT+Qt::Key_Right) ); nextViewShortcut.setAlternate( QKeySequence(Qt::CTRL+Qt::Key_PageUp) ); nextViewAction->setShortcut(nextViewShortcut); connect( nextViewAction, SIGNAL(triggered()) , this , SLOT(nextView()) ); _viewSplitter->addAction(nextViewAction); KShortcut previousViewShortcut = previousViewAction->shortcut(); previousViewShortcut.setPrimary( QKeySequence(Qt::SHIFT+Qt::Key_Left) ); previousViewShortcut.setAlternate( QKeySequence(Qt::CTRL+Qt::Key_PageDown) ); previousViewAction->setShortcut(previousViewShortcut); connect( previousViewAction, SIGNAL(triggered()) , this , SLOT(previousView()) ); _viewSplitter->addAction(previousViewAction); nextContainerAction->setShortcut( QKeySequence(Qt::SHIFT+Qt::Key_Tab) ); connect( nextContainerAction , SIGNAL(triggered()) , this , SLOT(nextContainer()) ); _viewSplitter->addAction(nextContainerAction); moveViewLeftAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_Left) ); connect( moveViewLeftAction , SIGNAL(triggered()) , this , SLOT(moveActiveViewLeft()) ); _viewSplitter->addAction(moveViewLeftAction); moveViewRightAction->setShortcut( QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_Right) ); connect( moveViewRightAction , SIGNAL(triggered()) , this , SLOT(moveActiveViewRight()) ); _viewSplitter->addAction(moveViewRightAction); }