mirror of
https://github.com/fralx/LimeReport.git
synced 2024-12-24 08:34:38 +03:00
Script editor fixed
This commit is contained in:
parent
6cd3f96907
commit
0f915a9581
@ -148,31 +148,33 @@ QString CodeEditor::textUnderCursor() const
|
|||||||
bool CodeEditor::matchLeftParenthesis(QTextBlock currentBlock, QChar parenthesisType, int i, int numLeftParentheses)
|
bool CodeEditor::matchLeftParenthesis(QTextBlock currentBlock, QChar parenthesisType, int i, int numLeftParentheses)
|
||||||
{
|
{
|
||||||
TextBlockData *data = static_cast<TextBlockData *>(currentBlock.userData());
|
TextBlockData *data = static_cast<TextBlockData *>(currentBlock.userData());
|
||||||
QVector<ParenthesisInfo *> infos = data->parentheses();
|
if (data){
|
||||||
|
QVector<ParenthesisInfo *> infos = data->parentheses();
|
||||||
|
|
||||||
int docPos = currentBlock.position();
|
int docPos = currentBlock.position();
|
||||||
for (; i < infos.size(); ++i) {
|
for (; i < infos.size(); ++i) {
|
||||||
ParenthesisInfo *info = infos.at(i);
|
ParenthesisInfo *info = infos.at(i);
|
||||||
|
|
||||||
|
if (info->character == parenthesisType) {
|
||||||
|
++numLeftParentheses;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info->character == getParenthesisReverceChar(parenthesisType)){
|
||||||
|
if (numLeftParentheses == 0) {
|
||||||
|
createParenthesisSelection(docPos + info->position);
|
||||||
|
return true;
|
||||||
|
} else
|
||||||
|
--numLeftParentheses;
|
||||||
|
}
|
||||||
|
|
||||||
if (info->character == parenthesisType) {
|
|
||||||
++numLeftParentheses;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (info->character == getParenthesisReverceChar(parenthesisType)){
|
|
||||||
if (numLeftParentheses == 0) {
|
|
||||||
createParenthesisSelection(docPos + info->position);
|
|
||||||
return true;
|
|
||||||
} else
|
|
||||||
--numLeftParentheses;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
currentBlock = currentBlock.next();
|
||||||
|
if (currentBlock.isValid())
|
||||||
|
return matchLeftParenthesis(currentBlock, parenthesisType, 0, numLeftParentheses);
|
||||||
}
|
}
|
||||||
|
|
||||||
currentBlock = currentBlock.next();
|
|
||||||
if (currentBlock.isValid())
|
|
||||||
return matchLeftParenthesis(currentBlock, parenthesisType, 0, numLeftParentheses);
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,27 +182,28 @@ bool CodeEditor::matchRightParenthesis(QTextBlock currentBlock, QChar parenthesi
|
|||||||
{
|
{
|
||||||
TextBlockData *data = static_cast<TextBlockData *>(currentBlock.userData());
|
TextBlockData *data = static_cast<TextBlockData *>(currentBlock.userData());
|
||||||
QVector<ParenthesisInfo *> parentheses = data->parentheses();
|
QVector<ParenthesisInfo *> parentheses = data->parentheses();
|
||||||
|
if (data){
|
||||||
|
int docPos = currentBlock.position();
|
||||||
|
for (; i > -1 && parentheses.size() > 0; --i) {
|
||||||
|
ParenthesisInfo *info = parentheses.at(i);
|
||||||
|
if (info->character == parenthesisType) {
|
||||||
|
++numRightParentheses;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (info->character == getParenthesisReverceChar(parenthesisType)){
|
||||||
|
if (numRightParentheses == 0) {
|
||||||
|
createParenthesisSelection(docPos + info->position);
|
||||||
|
return true;
|
||||||
|
} else
|
||||||
|
--numRightParentheses;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
currentBlock = currentBlock.previous();
|
||||||
|
if (currentBlock.isValid())
|
||||||
|
return matchRightParenthesis(currentBlock, parenthesisType, 0, numRightParentheses);
|
||||||
|
|
||||||
int docPos = currentBlock.position();
|
|
||||||
for (; i > -1 && parentheses.size() > 0; --i) {
|
|
||||||
ParenthesisInfo *info = parentheses.at(i);
|
|
||||||
if (info->character == parenthesisType) {
|
|
||||||
++numRightParentheses;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (info->character == getParenthesisReverceChar(parenthesisType)){
|
|
||||||
if (numRightParentheses == 0) {
|
|
||||||
createParenthesisSelection(docPos + info->position);
|
|
||||||
return true;
|
|
||||||
} else
|
|
||||||
--numRightParentheses;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
currentBlock = currentBlock.previous();
|
|
||||||
if (currentBlock.isValid())
|
|
||||||
return matchRightParenthesis(currentBlock, parenthesisType, 0, numRightParentheses);
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user