- enhancement: better display when input with IM under column mode
- enhancement: better display current lines under column mode - change: test to use utf-8 as the default encoding (prepare to use libclang to implement parser)
This commit is contained in:
parent
3ba5811edf
commit
7c218b7d5a
3
NEWS.md
3
NEWS.md
|
@ -1,6 +1,9 @@
|
||||||
Red Panda C++ Version 1.0.2
|
Red Panda C++ Version 1.0.2
|
||||||
- enhancement: press tab in column mode won't exit column mode
|
- enhancement: press tab in column mode won't exit column mode
|
||||||
- enhancement: refine behavior of undo input space char
|
- enhancement: refine behavior of undo input space char
|
||||||
|
- enhancement: better display when input with IM under column mode
|
||||||
|
- enhancement: better display current lines under column mode
|
||||||
|
- change: test to use utf-8 as the default encoding (prepare to use libclang to implement parser)
|
||||||
|
|
||||||
Red Panda C++ Version 1.0.1
|
Red Panda C++ Version 1.0.1
|
||||||
- fix: only convert project icon file when it's filename doesn't end with ".ico"
|
- fix: only convert project icon file when it's filename doesn't end with ".ico"
|
||||||
|
|
|
@ -6211,7 +6211,12 @@ void SynEdit::inputMethodEvent(QInputMethodEvent *event)
|
||||||
QString oldString = mInputPreeditString;
|
QString oldString = mInputPreeditString;
|
||||||
mInputPreeditString = event->preeditString();
|
mInputPreeditString = event->preeditString();
|
||||||
if (oldString!=mInputPreeditString) {
|
if (oldString!=mInputPreeditString) {
|
||||||
invalidateLine(mCaretY);
|
if (mActiveSelectionMode==SynSelectionMode::smColumn) {
|
||||||
|
BufferCoord selBegin = blockBegin();
|
||||||
|
BufferCoord selEnd = blockEnd();
|
||||||
|
invalidateLines(selBegin.Line,selEnd.Line);
|
||||||
|
} else
|
||||||
|
invalidateLine(mCaretY);
|
||||||
}
|
}
|
||||||
QString s = event->commitString();
|
QString s = event->commitString();
|
||||||
if (!s.isEmpty()) {
|
if (!s.isEmpty()) {
|
||||||
|
|
|
@ -124,12 +124,20 @@ void SynEditTextPainter::paintGutter(const QRect& clip)
|
||||||
textColor = edit->mForegroundColor;
|
textColor = edit->mForegroundColor;
|
||||||
}
|
}
|
||||||
// draw each line if it is not hidden by a fold
|
// draw each line if it is not hidden by a fold
|
||||||
|
BufferCoord selectionStart = edit->blockBegin();
|
||||||
|
BufferCoord selectionEnd = edit->blockEnd();
|
||||||
for (int cRow = aFirstRow; cRow <= aLastRow; cRow++) {
|
for (int cRow = aFirstRow; cRow <= aLastRow; cRow++) {
|
||||||
vLine = edit->rowToLine(cRow);
|
vLine = edit->rowToLine(cRow);
|
||||||
if ((vLine > edit->mLines->count()) && (edit->mLines->count() > 0 ))
|
if ((vLine > edit->mLines->count()) && (edit->mLines->count() > 0 ))
|
||||||
break;
|
break;
|
||||||
if (edit->mCaretY==vLine && edit->mGutter.activeLineTextColor().isValid()) {
|
if (edit->mGutter.activeLineTextColor().isValid()) {
|
||||||
painter->setPen(edit->mGutter.activeLineTextColor());
|
if (
|
||||||
|
(edit->mCaretY==vLine) ||
|
||||||
|
(edit->mActiveSelectionMode == SynSelectionMode::smColumn && vLine >= selectionStart.Line && vLine <= selectionEnd.Line)
|
||||||
|
)
|
||||||
|
painter->setPen(edit->mGutter.activeLineTextColor());
|
||||||
|
else
|
||||||
|
painter->setPen(textColor);
|
||||||
} else {
|
} else {
|
||||||
painter->setPen(textColor);
|
painter->setPen(textColor);
|
||||||
}
|
}
|
||||||
|
@ -803,6 +811,8 @@ void SynEditTextPainter::PaintLines()
|
||||||
TokenAccu.Columns = 0;
|
TokenAccu.Columns = 0;
|
||||||
TokenAccu.ColumnsBefore = 0;
|
TokenAccu.ColumnsBefore = 0;
|
||||||
// Now loop through all the lines. The indices are valid for Lines.
|
// Now loop through all the lines. The indices are valid for Lines.
|
||||||
|
BufferCoord selectionBegin = edit->blockBegin();
|
||||||
|
BufferCoord selectionEnd= edit->blockEnd();
|
||||||
for (cRow = aFirstRow; cRow<=aLastRow; cRow++) {
|
for (cRow = aFirstRow; cRow<=aLastRow; cRow++) {
|
||||||
vLine = edit->rowToLine(cRow);
|
vLine = edit->rowToLine(cRow);
|
||||||
if (vLine > edit->mLines->count() && edit->mLines->count() != 0)
|
if (vLine > edit->mLines->count() && edit->mLines->count() != 0)
|
||||||
|
@ -811,7 +821,11 @@ void SynEditTextPainter::PaintLines()
|
||||||
// Get the line.
|
// Get the line.
|
||||||
sLine = edit->mLines->getString(vLine - 1);
|
sLine = edit->mLines->getString(vLine - 1);
|
||||||
// determine whether will be painted with ActiveLineColor
|
// determine whether will be painted with ActiveLineColor
|
||||||
bCurrentLine = (edit->mCaretY == vLine);
|
if (edit->mActiveSelectionMode == SynSelectionMode::smColumn) {
|
||||||
|
bCurrentLine = (vLine >= selectionBegin.Line && vLine <= selectionEnd.Line);
|
||||||
|
} else {
|
||||||
|
bCurrentLine = (edit->mCaretY == vLine);
|
||||||
|
}
|
||||||
if (bCurrentLine && !edit->mInputPreeditString.isEmpty()) {
|
if (bCurrentLine && !edit->mInputPreeditString.isEmpty()) {
|
||||||
sLine = sLine.left(edit->mCaretX-1) + edit->mInputPreeditString
|
sLine = sLine.left(edit->mCaretX-1) + edit->mInputPreeditString
|
||||||
+ sLine.mid(edit->mCaretX-1);
|
+ sLine.mid(edit->mCaretX-1);
|
||||||
|
|
|
@ -1348,7 +1348,7 @@ void Settings::Editor::doLoad()
|
||||||
if (useUTF8ByDefault)
|
if (useUTF8ByDefault)
|
||||||
mDefaultEncoding = ENCODING_UTF8;
|
mDefaultEncoding = ENCODING_UTF8;
|
||||||
else
|
else
|
||||||
mDefaultEncoding = value("default_encoding", ENCODING_SYSTEM_DEFAULT).toByteArray();
|
mDefaultEncoding = value("default_encoding", ENCODING_UTF8).toByteArray();
|
||||||
mAutoDetectFileEncoding = boolValue("auto_detect_file_encoding",true);
|
mAutoDetectFileEncoding = boolValue("auto_detect_file_encoding",true);
|
||||||
mUndoLimit = intValue("undo_limit",1000);
|
mUndoLimit = intValue("undo_limit",1000);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue