Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Tobias Hunger
qt-creator
Commits
e5948158
Commit
e5948158
authored
Dec 04, 2008
by
mae
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
two new actions: "select block up" and "select block down", current default is Ctrl+U
parent
e9ad023d
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
87 additions
and
31 deletions
+87
-31
src/plugins/texteditor/basetexteditor.cpp
src/plugins/texteditor/basetexteditor.cpp
+41
-0
src/plugins/texteditor/basetexteditor.h
src/plugins/texteditor/basetexteditor.h
+3
-0
src/plugins/texteditor/basetexteditor_p.h
src/plugins/texteditor/basetexteditor_p.h
+1
-0
src/plugins/texteditor/texteditoractionhandler.cpp
src/plugins/texteditor/texteditoractionhandler.cpp
+36
-31
src/plugins/texteditor/texteditoractionhandler.h
src/plugins/texteditor/texteditoractionhandler.h
+4
-0
src/plugins/texteditor/texteditorconstants.h
src/plugins/texteditor/texteditorconstants.h
+2
-0
No files found.
src/plugins/texteditor/basetexteditor.cpp
View file @
e5948158
...
...
@@ -597,6 +597,8 @@ void BaseTextEditor::slotSelectionChanged()
viewport
()
->
update
();
if
(
!
d
->
m_inBlockSelectionMode
)
d
->
m_blockSelectionExtraX
=
0
;
if
(
!
d
->
m_selectBlockAnchor
.
isNull
()
&&
!
textCursor
().
hasSelection
())
d
->
m_selectBlockAnchor
=
QTextCursor
();
}
void
BaseTextEditor
::
gotoBlockStart
()
...
...
@@ -627,6 +629,45 @@ void BaseTextEditor::gotoBlockEndWithSelection()
setTextCursor
(
cursor
);
}
void
BaseTextEditor
::
selectBlockUp
()
{
QTextCursor
cursor
=
textCursor
();
if
(
!
cursor
.
hasSelection
())
d
->
m_selectBlockAnchor
=
cursor
;
else
cursor
.
setPosition
(
cursor
.
selectionStart
());
if
(
!
TextBlockUserData
::
findPreviousOpenParenthesis
(
&
cursor
,
false
))
return
;
if
(
!
TextBlockUserData
::
findNextClosingParenthesis
(
&
cursor
,
true
))
return
;
setTextCursor
(
cursor
);
}
void
BaseTextEditor
::
selectBlockDown
()
{
QTextCursor
tc
=
textCursor
();
QTextCursor
cursor
=
d
->
m_selectBlockAnchor
;
if
(
!
tc
.
hasSelection
()
||
cursor
.
isNull
())
return
;
tc
.
setPosition
(
tc
.
selectionStart
());
forever
{
QTextCursor
ahead
=
cursor
;
if
(
!
TextBlockUserData
::
findPreviousOpenParenthesis
(
&
ahead
,
false
))
break
;
if
(
ahead
.
position
()
<=
tc
.
position
())
break
;
cursor
=
ahead
;
}
if
(
cursor
!=
d
->
m_selectBlockAnchor
)
TextBlockUserData
::
findNextClosingParenthesis
(
&
cursor
,
true
);
setTextCursor
(
cursor
);
}
void
BaseTextEditor
::
keyPressEvent
(
QKeyEvent
*
e
)
...
...
src/plugins/texteditor/basetexteditor.h
View file @
e5948158
...
...
@@ -326,6 +326,9 @@ public slots:
void
gotoBlockStartWithSelection
();
void
gotoBlockEndWithSelection
();
void
selectBlockUp
();
void
selectBlockDown
();
signals:
void
changed
();
...
...
src/plugins/texteditor/basetexteditor_p.h
View file @
e5948158
...
...
@@ -216,6 +216,7 @@ public:
void
removeBlockSelection
(
const
QString
&
text
=
QString
());
QTextCursor
m_findScope
;
QTextCursor
m_selectBlockAnchor
;
void
moveCursorVisible
();
};
...
...
src/plugins/texteditor/texteditoractionhandler.cpp
View file @
e5948158
...
...
@@ -69,6 +69,7 @@ TextEditorActionHandler::TextEditorActionHandler(Core::ICore *core,
=
m_increaseFontSizeAction
=
m_decreaseFontSizeAction
=
m_gotoBlockStartAction
=
m_gotoBlockStartWithSelectionAction
=
m_gotoBlockEndAction
=
m_gotoBlockEndWithSelectionAction
=
m_selectBlockUpAction
=
m_selectBlockDownAction
=
0
;
m_contextId
<<
m_core
->
uniqueIDManager
()
->
uniqueIdentifier
(
context
);
...
...
@@ -163,13 +164,11 @@ void TextEditorActionHandler::createActions()
command
=
am
->
registerAction
(
m_collapseAction
,
Constants
::
COLLAPSE
,
m_contextId
);
command
->
setDefaultKeySequence
(
QKeySequence
(
tr
(
"Ctrl+<"
)));
connect
(
m_collapseAction
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
collapse
()));
advancedMenu
->
addAction
(
command
);
m_expandAction
=
new
QAction
(
tr
(
"Expand"
),
this
);
command
=
am
->
registerAction
(
m_expandAction
,
Constants
::
EXPAND
,
m_contextId
);
command
->
setDefaultKeySequence
(
QKeySequence
(
tr
(
"Ctrl+>"
)));
connect
(
m_expandAction
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
expand
()));
advancedMenu
->
addAction
(
command
);
m_unCollapseAllAction
=
new
QAction
(
tr
(
"(Un)&Collapse All"
),
this
);
command
=
am
->
registerAction
(
m_unCollapseAllAction
,
Constants
::
UN_COLLAPSE_ALL
,
m_contextId
);
...
...
@@ -208,6 +207,15 @@ void TextEditorActionHandler::createActions()
command
->
setDefaultKeySequence
(
QKeySequence
(
tr
(
"Ctrl+}"
)));
connect
(
m_gotoBlockEndWithSelectionAction
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
gotoBlockEndWithSelection
()));
m_selectBlockUpAction
=
new
QAction
(
tr
(
"Select Block Up"
),
this
);
command
=
am
->
registerAction
(
m_selectBlockUpAction
,
Constants
::
SELECT_BLOCK_UP
,
m_contextId
);
command
->
setDefaultKeySequence
(
QKeySequence
(
tr
(
"Ctrl+U"
)));
connect
(
m_selectBlockUpAction
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
selectBlockUp
()));
m_selectBlockDownAction
=
new
QAction
(
tr
(
"Select Block Down"
),
this
);
command
=
am
->
registerAction
(
m_selectBlockDownAction
,
Constants
::
SELECT_BLOCK_DOWN
,
m_contextId
);
command
->
setDefaultKeySequence
(
QKeySequence
(
tr
(
"Ctrl+Shift+U"
)));
connect
(
m_selectBlockDownAction
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
selectBlockDown
()));
}
bool
TextEditorActionHandler
::
supportsAction
(
const
QString
&
/*id */
)
const
...
...
@@ -252,35 +260,30 @@ void TextEditorActionHandler::updateActions()
void
TextEditorActionHandler
::
updateActions
(
UpdateMode
um
)
{
if
(
m_pasteAction
)
m_pasteAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_selectAllAction
)
m_selectAllAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_gotoAction
)
m_gotoAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_selectEncodingAction
)
m_selectEncodingAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_printAction
)
m_printAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_formatAction
)
m_formatAction
->
setEnabled
((
m_optionalActions
&
Format
)
&&
um
!=
NoEditor
);
if
(
m_unCommentSelectionAction
)
m_unCommentSelectionAction
->
setEnabled
((
m_optionalActions
&
UnCommentSelection
)
&&
um
!=
NoEditor
);
if
(
m_collapseAction
)
m_collapseAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_expandAction
)
m_expandAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_unCollapseAllAction
)
m_unCollapseAllAction
->
setEnabled
((
m_optionalActions
&
UnCollapseAll
)
&&
um
!=
NoEditor
);
if
(
m_decreaseFontSizeAction
)
m_decreaseFontSizeAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_increaseFontSizeAction
)
m_increaseFontSizeAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_visualizeWhitespaceAction
)
{
m_visualizeWhitespaceAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_currentEditor
)
m_visualizeWhitespaceAction
->
setChecked
(
m_currentEditor
->
displaySettings
().
m_visualizeWhitespace
);
}
if
(
!
m_initialized
)
return
;
m_pasteAction
->
setEnabled
(
um
!=
NoEditor
);
m_selectAllAction
->
setEnabled
(
um
!=
NoEditor
);
m_gotoAction
->
setEnabled
(
um
!=
NoEditor
);
m_selectEncodingAction
->
setEnabled
(
um
!=
NoEditor
);
m_printAction
->
setEnabled
(
um
!=
NoEditor
);
m_formatAction
->
setEnabled
((
m_optionalActions
&
Format
)
&&
um
!=
NoEditor
);
m_unCommentSelectionAction
->
setEnabled
((
m_optionalActions
&
UnCommentSelection
)
&&
um
!=
NoEditor
);
m_collapseAction
->
setEnabled
(
um
!=
NoEditor
);
m_expandAction
->
setEnabled
(
um
!=
NoEditor
);
m_unCollapseAllAction
->
setEnabled
((
m_optionalActions
&
UnCollapseAll
)
&&
um
!=
NoEditor
);
m_decreaseFontSizeAction
->
setEnabled
(
um
!=
NoEditor
);
m_increaseFontSizeAction
->
setEnabled
(
um
!=
NoEditor
);
m_gotoBlockStartAction
->
setEnabled
(
um
!=
NoEditor
);
m_gotoBlockStartWithSelectionAction
->
setEnabled
(
um
!=
NoEditor
);
m_gotoBlockEndAction
->
setEnabled
(
um
!=
NoEditor
);
m_gotoBlockEndWithSelectionAction
->
setEnabled
(
um
!=
NoEditor
);
m_selectBlockUpAction
->
setEnabled
(
um
!=
NoEditor
);
m_selectBlockDownAction
->
setEnabled
(
um
!=
NoEditor
);
m_visualizeWhitespaceAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_currentEditor
)
m_visualizeWhitespaceAction
->
setChecked
(
m_currentEditor
->
displaySettings
().
m_visualizeWhitespace
);
if
(
m_textWrappingAction
)
{
m_textWrappingAction
->
setEnabled
(
um
!=
NoEditor
);
if
(
m_currentEditor
)
...
...
@@ -411,6 +414,8 @@ FUNCTION(gotoBlockStart)
FUNCTION
(
gotoBlockEnd
)
FUNCTION
(
gotoBlockStartWithSelection
)
FUNCTION
(
gotoBlockEndWithSelection
)
FUNCTION
(
selectBlockUp
)
FUNCTION
(
selectBlockDown
)
void
TextEditorActionHandler
::
updateCurrentEditor
(
Core
::
IContext
*
object
)
{
...
...
src/plugins/texteditor/texteditoractionhandler.h
View file @
e5948158
...
...
@@ -113,6 +113,8 @@ private slots:
void
gotoBlockEnd
();
void
gotoBlockStartWithSelection
();
void
gotoBlockEndWithSelection
();
void
selectBlockUp
();
void
selectBlockDown
();
void
updateCurrentEditor
(
Core
::
IContext
*
object
);
private:
...
...
@@ -139,6 +141,8 @@ private:
QAction
*
m_gotoBlockEndAction
;
QAction
*
m_gotoBlockStartWithSelectionAction
;
QAction
*
m_gotoBlockEndWithSelectionAction
;
QAction
*
m_selectBlockUpAction
;
QAction
*
m_selectBlockDownAction
;
uint
m_optionalActions
;
QPointer
<
BaseTextEditor
>
m_currentEditor
;
...
...
src/plugins/texteditor/texteditorconstants.h
View file @
e5948158
...
...
@@ -52,6 +52,8 @@ const char * const GOTO_BLOCK_START = "TextEditor.GotoBlockStart";
const
char
*
const
GOTO_BLOCK_START_WITH_SELECTION
=
"TextEditor.GotoBlockStartWithSelection"
;
const
char
*
const
GOTO_BLOCK_END
=
"TextEditor.GotoBlockEnd"
;
const
char
*
const
GOTO_BLOCK_END_WITH_SELECTION
=
"TextEditor.GotoBlockEndWithSelection"
;
const
char
*
const
SELECT_BLOCK_UP
=
"TextEditor.SelectBlockUp"
;
const
char
*
const
SELECT_BLOCK_DOWN
=
"TextEditor.SelectBlockDown"
;
const
char
*
const
DELETE_LINE
=
"TextEditor.DeleteLine"
;
const
char
*
const
DELETE_WORD
=
"TextEditor.DeleteWord"
;
const
char
*
const
SELECT_ENCODING
=
"TextEditor.SelectEncoding"
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment