From 8ae4317394a3cb7acd085fee78c0c348d4e7ceb4 Mon Sep 17 00:00:00 2001 From: Kostas Karanikolas Date: Sat, 27 Nov 2010 14:02:20 +0900 Subject: [PATCH] Added "Copy Line" keyboard command and associated action Merge-request: 223 Reviewed-by: Leandro Melo --- src/plugins/texteditor/basetexteditor.cpp | 9 +++++++++ src/plugins/texteditor/basetexteditor.h | 1 + src/plugins/texteditor/texteditoractionhandler.cpp | 7 +++++++ src/plugins/texteditor/texteditoractionhandler.h | 2 ++ src/plugins/texteditor/texteditorconstants.h | 1 + 5 files changed, 20 insertions(+) diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index af61f7275b2..dfc0cc5b3a5 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -5031,6 +5031,15 @@ void BaseTextEditorWidget::cutLine() cut(); } +// control+shift+insert +void BaseTextEditorWidget::copyLine() +{ + QTextCursor prevCursor = textCursor(); + maybeSelectLine(); + copy(); + setTextCursor(prevCursor); +} + void BaseTextEditorWidget::deleteLine() { maybeSelectLine(); diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h index 4cb13bf7e11..a304110bfbd 100644 --- a/src/plugins/texteditor/basetexteditor.h +++ b/src/plugins/texteditor/basetexteditor.h @@ -247,6 +247,7 @@ public slots: void zoomReset(); void cutLine(); + void copyLine(); void deleteLine(); void unfoldAll(); void fold(); diff --git a/src/plugins/texteditor/texteditoractionhandler.cpp b/src/plugins/texteditor/texteditoractionhandler.cpp index 35445b16388..73819d41bed 100644 --- a/src/plugins/texteditor/texteditoractionhandler.cpp +++ b/src/plugins/texteditor/texteditoractionhandler.cpp @@ -77,6 +77,7 @@ TextEditorActionHandler::TextEditorActionHandler(const char *context, m_foldAction(0), m_unfoldAction(0), m_cutLineAction(0), + m_copyLineAction(0), m_deleteLineAction(0), m_selectEncodingAction(0), m_increaseFontSizeAction(0), @@ -201,6 +202,11 @@ void TextEditorActionHandler::createActions() command->setDefaultKeySequence(QKeySequence(tr("Shift+Del"))); connect(m_cutLineAction, SIGNAL(triggered()), this, SLOT(cutLine())); + m_copyLineAction = new QAction(tr("Copy &Line"), this); + command = am->registerAction(m_copyLineAction, Constants::COPY_LINE, m_contextId); + command->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+Ins"))); + connect(m_copyLineAction, SIGNAL(triggered()), this, SLOT(copyLine())); + m_deleteLineAction = new QAction(tr("Delete &Line"), this); command = am->registerAction(m_deleteLineAction, Constants::DELETE_LINE, m_contextId, true); connect(m_deleteLineAction, SIGNAL(triggered()), this, SLOT(deleteLine())); @@ -527,6 +533,7 @@ FUNCTION2(selectAllAction, selectAll) FUNCTION(cleanWhitespace) FUNCTION(unCommentSelection) FUNCTION(cutLine) +FUNCTION(copyLine) FUNCTION(deleteLine) FUNCTION(unfoldAll) FUNCTION(fold) diff --git a/src/plugins/texteditor/texteditoractionhandler.h b/src/plugins/texteditor/texteditoractionhandler.h index fb7789a17f1..f2a7839b2f8 100644 --- a/src/plugins/texteditor/texteditoractionhandler.h +++ b/src/plugins/texteditor/texteditoractionhandler.h @@ -102,6 +102,7 @@ private slots: void fold(); void unfold(); void cutLine(); + void copyLine(); void deleteLine(); void selectEncoding(); void increaseFontSize(); @@ -165,6 +166,7 @@ private: QAction *m_foldAction; QAction *m_unfoldAction; QAction *m_cutLineAction; + QAction *m_copyLineAction; QAction *m_deleteLineAction; QAction *m_selectEncodingAction; QAction *m_increaseFontSizeAction; diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h index a32921ca406..82209f52dbe 100644 --- a/src/plugins/texteditor/texteditorconstants.h +++ b/src/plugins/texteditor/texteditorconstants.h @@ -70,6 +70,7 @@ const char * const INSERT_LINE_BELOW = "TextEditor.InsertLineBelowCurrentLin const char * const UPPERCASE_SELECTION = "TextEditor.UppercaseSelection"; const char * const LOWERCASE_SELECTION = "TextEditor.LowercaseSelection"; const char * const CUT_LINE = "TextEditor.CutLine"; +const char * const COPY_LINE = "TextEditor.CopyLine"; const char * const DELETE_LINE = "TextEditor.DeleteLine"; const char * const DELETE_WORD = "TextEditor.DeleteWord"; const char * const SELECT_ENCODING = "TextEditor.SelectEncoding";