forked from qt-creator/qt-creator
Adds two actions to indent and unindent a selection.
Add actions to the basetexteditor to indent and unindent a selection. These actions are equivalent to Key_Tab and Key_BackTab respectively. The advantage of having actions here is the user can override them and assign any key binding they want. Thus, I could assign Ctrl+I and Shift+Ctrl+I to them and have the same behavior as Kate. Change-Id: I0a305a7b45018072a78f2880ea15650ea92095a1 Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
This commit is contained in:
@@ -1063,6 +1063,16 @@ void BaseTextEditorWidget::lowercaseSelection()
|
||||
transformSelection(&QString::toLower);
|
||||
}
|
||||
|
||||
void BaseTextEditorWidget::indent()
|
||||
{
|
||||
indentOrUnindent(true);
|
||||
}
|
||||
|
||||
void BaseTextEditorWidget::unindent()
|
||||
{
|
||||
indentOrUnindent(false);
|
||||
}
|
||||
|
||||
void BaseTextEditorWidget::moveLineUpDown(bool up)
|
||||
{
|
||||
QTextCursor cursor = textCursor();
|
||||
|
||||
@@ -322,6 +322,9 @@ public slots:
|
||||
|
||||
void cleanWhitespace();
|
||||
|
||||
void indent();
|
||||
void unindent();
|
||||
|
||||
signals:
|
||||
void changed();
|
||||
|
||||
|
||||
@@ -102,6 +102,8 @@ TextEditorActionHandler::TextEditorActionHandler(const char *context,
|
||||
m_insertLineBelowAction(0),
|
||||
m_upperCaseSelectionAction(0),
|
||||
m_lowerCaseSelectionAction(0),
|
||||
m_indentAction(0),
|
||||
m_unindentAction(0),
|
||||
m_optionalActions(optionalActions),
|
||||
m_currentEditor(0),
|
||||
m_contextId(context),
|
||||
@@ -377,6 +379,16 @@ void TextEditorActionHandler::createActions()
|
||||
connect(m_circularPasteAction, SIGNAL(triggered()), this, SLOT(circularPasteAction()));
|
||||
medit->addAction(command, Core::Constants::G_EDIT_COPYPASTE);
|
||||
|
||||
m_indentAction = new QAction(tr("Indent"), this);
|
||||
m_modifyingActions << m_indentAction;
|
||||
command = am->registerAction(m_indentAction, Constants::INDENT, m_contextId, true);
|
||||
connect(m_indentAction, SIGNAL(triggered()), this, SLOT(indent()));
|
||||
|
||||
m_unindentAction = new QAction(tr("Unindent"), this);
|
||||
m_modifyingActions << m_unindentAction;
|
||||
command = am->registerAction(m_unindentAction, Constants::UNINDENT, m_contextId, true);
|
||||
connect(m_unindentAction, SIGNAL(triggered()), this, SLOT(unindent()));
|
||||
|
||||
QAction *a = 0;
|
||||
a = new QAction(tr("Go to Line Start"), this);
|
||||
command = am->registerAction(a, Constants::GOTO_LINE_START, m_contextId, true);
|
||||
@@ -611,6 +623,8 @@ FUNCTION(uppercaseSelection)
|
||||
FUNCTION(lowercaseSelection)
|
||||
FUNCTION(insertLineAbove)
|
||||
FUNCTION(insertLineBelow)
|
||||
FUNCTION(indent)
|
||||
FUNCTION(unindent)
|
||||
|
||||
FUNCTION(gotoLineStart)
|
||||
FUNCTION(gotoLineStartWithSelection)
|
||||
|
||||
@@ -138,6 +138,8 @@ private slots:
|
||||
void uppercaseSelection();
|
||||
void lowercaseSelection();
|
||||
void updateCurrentEditor(Core::IEditor *editor);
|
||||
void indent();
|
||||
void unindent();
|
||||
|
||||
void gotoLineStart();
|
||||
void gotoLineStartWithSelection();
|
||||
@@ -206,6 +208,8 @@ private:
|
||||
QAction *m_insertLineBelowAction;
|
||||
QAction *m_upperCaseSelectionAction;
|
||||
QAction *m_lowerCaseSelectionAction;
|
||||
QAction *m_indentAction;
|
||||
QAction *m_unindentAction;
|
||||
QList<QAction *> m_modifyingActions;
|
||||
|
||||
uint m_optionalActions;
|
||||
|
||||
@@ -102,6 +102,8 @@ const char TASK_DOWNLOAD_DEFINITIONS[] = "TextEditor.Task.Download";
|
||||
const char TASK_REGISTER_DEFINITIONS[] = "TextEditor.Task.Register";
|
||||
const char TASK_OPEN_FILE[] = "TextEditor.Task.OpenFile";
|
||||
const char CIRCULAR_PASTE[] = "TextEditor.CircularPaste";
|
||||
const char INDENT[] = "TextEditor.Indent";
|
||||
const char UNINDENT[] = "TextEditor.Unindent";
|
||||
|
||||
// Text color and style categories
|
||||
const char C_TEXT[] = "Text";
|
||||
|
||||
Reference in New Issue
Block a user