Editor: Add actions for view page/line up/down.

Task-number: QTCREATORBUG-4994
Change-Id: Ia6ce1a01cd78dd1987404d77f6b0c0da41b4929e
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
David Schulz
2014-06-02 14:21:46 +02:00
parent 408150285d
commit 714d56a381
5 changed files with 58 additions and 18 deletions

View File

@@ -1487,6 +1487,26 @@ bool BaseTextEditorWidget::cursorMoveKeyEvent(QKeyEvent *e)
return true; return true;
} }
void BaseTextEditorWidget::viewPageUp()
{
verticalScrollBar()->triggerAction(QAbstractSlider::SliderPageStepSub);
}
void BaseTextEditorWidget::viewPageDown()
{
verticalScrollBar()->triggerAction(QAbstractSlider::SliderPageStepAdd);
}
void BaseTextEditorWidget::viewLineUp()
{
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepSub);
}
void BaseTextEditorWidget::viewLineDown()
{
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepAdd);
}
static inline bool isModifier(QKeyEvent *e) static inline bool isModifier(QKeyEvent *e)
{ {
if (!e) if (!e)
@@ -1729,14 +1749,6 @@ void BaseTextEditorWidget::keyPressEvent(QKeyEvent *e)
break; break;
case Qt::Key_Up: case Qt::Key_Up:
case Qt::Key_Down: case Qt::Key_Down:
if (e->modifiers() & Qt::ControlModifier) {
verticalScrollBar()->triggerAction(
e->key() == Qt::Key_Up ? QAbstractSlider::SliderSingleStepSub :
QAbstractSlider::SliderSingleStepAdd);
e->accept();
return;
}
// fall through
case Qt::Key_Right: case Qt::Key_Right:
case Qt::Key_Left: case Qt::Key_Left:
if (HostOsInfo::isMacHost()) if (HostOsInfo::isMacHost())
@@ -1765,16 +1777,6 @@ void BaseTextEditorWidget::keyPressEvent(QKeyEvent *e)
} }
} }
break; break;
case Qt::Key_PageUp:
case Qt::Key_PageDown:
if (e->modifiers() == Qt::ControlModifier) {
verticalScrollBar()->triggerAction(
e->key() == Qt::Key_PageUp ? QAbstractSlider::SliderPageStepSub :
QAbstractSlider::SliderPageStepAdd);
e->accept();
return;
}
break;
case Qt::Key_Insert: case Qt::Key_Insert:
if (ro) break; if (ro) break;
if (e->modifiers() == Qt::NoModifier) { if (e->modifiers() == Qt::NoModifier) {

View File

@@ -290,6 +290,11 @@ public slots:
void moveLineUp(); void moveLineUp();
void moveLineDown(); void moveLineDown();
void viewPageUp();
void viewPageDown();
void viewLineUp();
void viewLineDown();
void copyLineUp(); void copyLineUp();
void copyLineDown(); void copyLineDown();

View File

@@ -87,6 +87,10 @@ TextEditorActionHandler::TextEditorActionHandler(QObject *parent, Core::Id conte
m_gotoBlockEndWithSelectionAction(0), m_gotoBlockEndWithSelectionAction(0),
m_selectBlockUpAction(0), m_selectBlockUpAction(0),
m_selectBlockDownAction(0), m_selectBlockDownAction(0),
m_viewPageUpAction(0),
m_viewPageDownAction(0),
m_viewLineUpAction(0),
m_viewLineDownAction(0),
m_moveLineUpAction(0), m_moveLineUpAction(0),
m_moveLineDownAction(0), m_moveLineDownAction(0),
m_copyLineUpAction(0), m_copyLineUpAction(0),
@@ -192,6 +196,19 @@ void TextEditorActionHandler::createActions()
SLOT(openLinkUnderCursorInNextSplit()), true, SLOT(openLinkUnderCursorInNextSplit()), true,
QKeySequence(Utils::HostOsInfo::isMacHost() ? tr("Meta+E, F2") : tr("Ctrl+E, F2"))); QKeySequence(Utils::HostOsInfo::isMacHost() ? tr("Meta+E, F2") : tr("Ctrl+E, F2")));
m_viewPageUpAction = registerAction(VIEW_PAGE_UP,
SLOT(viewPageUp()), true, tr("Move the View a Page Up and Keep the Cursor Position"),
QKeySequence(tr("Ctrl+PgUp")));
m_viewPageDownAction = registerAction(VIEW_PAGE_DOWN,
SLOT(viewPageDown()), true, tr("Move the View a Page Down and Keep the Cursor Position"),
QKeySequence(tr("Ctrl+PgDown")));
m_viewLineUpAction = registerAction(VIEW_LINE_UP,
SLOT(viewLineUp()), true, tr("Move the View a Line Up and Keep the Cursor Position"),
QKeySequence(tr("Ctrl+Up")));
m_viewLineDownAction = registerAction(VIEW_LINE_DOWN,
SLOT(viewLineDown()), true, tr("Move the View a Line Down and Keep the Cursor Position"),
QKeySequence(tr("Ctrl+Down")));
// register "Edit" Menu Actions // register "Edit" Menu Actions
Core::ActionContainer *editMenu = Core::ActionManager::actionContainer(M_EDIT); Core::ActionContainer *editMenu = Core::ActionManager::actionContainer(M_EDIT);
m_selectEncodingAction = registerAction(SELECT_ENCODING, m_selectEncodingAction = registerAction(SELECT_ENCODING,
@@ -513,6 +530,10 @@ FUNCTION(indent)
FUNCTION(unindent) FUNCTION(unindent)
FUNCTION(openLinkUnderCursor) FUNCTION(openLinkUnderCursor)
FUNCTION(openLinkUnderCursorInNextSplit) FUNCTION(openLinkUnderCursorInNextSplit)
FUNCTION(viewPageUp)
FUNCTION(viewPageDown)
FUNCTION(viewLineUp)
FUNCTION(viewLineDown)
FUNCTION(gotoLineStart) FUNCTION(gotoLineStart)
FUNCTION(gotoLineStartWithSelection) FUNCTION(gotoLineStartWithSelection)

View File

@@ -124,6 +124,10 @@ private slots:
void gotoBlockEndWithSelection(); void gotoBlockEndWithSelection();
void selectBlockUp(); void selectBlockUp();
void selectBlockDown(); void selectBlockDown();
void viewPageUp();
void viewPageDown();
void viewLineUp();
void viewLineDown();
void moveLineUp(); void moveLineUp();
void moveLineDown(); void moveLineDown();
void copyLineUp(); void copyLineUp();
@@ -198,6 +202,10 @@ private:
QAction *m_gotoBlockEndWithSelectionAction; QAction *m_gotoBlockEndWithSelectionAction;
QAction *m_selectBlockUpAction; QAction *m_selectBlockUpAction;
QAction *m_selectBlockDownAction; QAction *m_selectBlockDownAction;
QAction *m_viewPageUpAction;
QAction *m_viewPageDownAction;
QAction *m_viewLineUpAction;
QAction *m_viewLineDownAction;
QAction *m_moveLineUpAction; QAction *m_moveLineUpAction;
QAction *m_moveLineDownAction; QAction *m_moveLineDownAction;
QAction *m_copyLineUpAction; QAction *m_copyLineUpAction;

View File

@@ -119,6 +119,10 @@ const char GOTO_BLOCK_END[] = "TextEditor.GotoBlockEnd";
const char GOTO_BLOCK_END_WITH_SELECTION[] = "TextEditor.GotoBlockEndWithSelection"; const char GOTO_BLOCK_END_WITH_SELECTION[] = "TextEditor.GotoBlockEndWithSelection";
const char SELECT_BLOCK_UP[] = "TextEditor.SelectBlockUp"; const char SELECT_BLOCK_UP[] = "TextEditor.SelectBlockUp";
const char SELECT_BLOCK_DOWN[] = "TextEditor.SelectBlockDown"; const char SELECT_BLOCK_DOWN[] = "TextEditor.SelectBlockDown";
const char VIEW_PAGE_UP[] = "TextEditor.viewPageUp";
const char VIEW_PAGE_DOWN[] = "TextEditor.viewPageDown";
const char VIEW_LINE_UP[] = "TextEditor.viewLineUp";
const char VIEW_LINE_DOWN[] = "TextEditor.viewLineDown";
const char MOVE_LINE_UP[] = "TextEditor.MoveLineUp"; const char MOVE_LINE_UP[] = "TextEditor.MoveLineUp";
const char MOVE_LINE_DOWN[] = "TextEditor.MoveLineDown"; const char MOVE_LINE_DOWN[] = "TextEditor.MoveLineDown";
const char COPY_LINE_UP[] = "TextEditor.CopyLineUp"; const char COPY_LINE_UP[] = "TextEditor.CopyLineUp";