Added selection of monospace text on press.
This commit is contained in:
parent
4e4e54dcc5
commit
b1f71ccab3
1 changed files with 15 additions and 3 deletions
|
|
@ -1510,7 +1510,9 @@ private:
|
||||||
QFixed from;
|
QFixed from;
|
||||||
QFixed width;
|
QFixed width;
|
||||||
} fillSpoiler;
|
} fillSpoiler;
|
||||||
if (_localFrom + si.position < _selection.to) {
|
if (_background.selectActiveBlock) {
|
||||||
|
fillSelect = { x, x + si.width };
|
||||||
|
} else if (_localFrom + si.position < _selection.to) {
|
||||||
auto chFrom = _str + currentBlock->from();
|
auto chFrom = _str + currentBlock->from();
|
||||||
auto chTo = chFrom + ((nextBlock ? nextBlock->from() : _t->_text.size()) - currentBlock->from());
|
auto chTo = chFrom + ((nextBlock ? nextBlock->from() : _t->_text.size()) - currentBlock->from());
|
||||||
if (_localFrom + si.position >= _selection.from) { // could be without space
|
if (_localFrom + si.position >= _selection.from) { // could be without space
|
||||||
|
|
@ -1652,7 +1654,9 @@ private:
|
||||||
auto hasSelected = false;
|
auto hasSelected = false;
|
||||||
auto hasNotSelected = true;
|
auto hasNotSelected = true;
|
||||||
auto selectedRect = QRect();
|
auto selectedRect = QRect();
|
||||||
if (_localFrom + itemStart < _selection.to && _localFrom + itemEnd > _selection.from) {
|
if (_background.selectActiveBlock) {
|
||||||
|
fillSelectRange(x, x + itemWidth);
|
||||||
|
} else if (_localFrom + itemStart < _selection.to && _localFrom + itemEnd > _selection.from) {
|
||||||
hasSelected = true;
|
hasSelected = true;
|
||||||
auto selX = x;
|
auto selX = x;
|
||||||
auto selWidth = itemWidth;
|
auto selWidth = itemWidth;
|
||||||
|
|
@ -2615,6 +2619,7 @@ private:
|
||||||
void applyBlockProperties(const AbstractBlock *block) {
|
void applyBlockProperties(const AbstractBlock *block) {
|
||||||
eSetFont(block);
|
eSetFont(block);
|
||||||
if (_p) {
|
if (_p) {
|
||||||
|
const auto isMono = IsMono(block->flags());
|
||||||
if (block->spoilerIndex()) {
|
if (block->spoilerIndex()) {
|
||||||
const auto handler
|
const auto handler
|
||||||
= _t->_spoilers.at(block->spoilerIndex() - 1);
|
= _t->_spoilers.at(block->spoilerIndex() - 1);
|
||||||
|
|
@ -2639,10 +2644,15 @@ private:
|
||||||
*_background.color);
|
*_background.color);
|
||||||
mutableCache.color = (*_background.color)->c;
|
mutableCache.color = (*_background.color)->c;
|
||||||
}
|
}
|
||||||
|
} else if (isMono && block->lnkIndex()) {
|
||||||
|
_background = {
|
||||||
|
.selectActiveBlock = ClickHandler::showAsPressed(
|
||||||
|
_t->_links.at(block->lnkIndex() - 1)),
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
_background = {};
|
_background = {};
|
||||||
}
|
}
|
||||||
if (IsMono(block->flags())) {
|
if (isMono) {
|
||||||
_currentPen = &_textPalette->monoFg->p;
|
_currentPen = &_textPalette->monoFg->p;
|
||||||
_currentPenSelected = &_textPalette->selectMonoFg->p;
|
_currentPenSelected = &_textPalette->selectMonoFg->p;
|
||||||
} else if (block->lnkIndex()
|
} else if (block->lnkIndex()
|
||||||
|
|
@ -2672,6 +2682,8 @@ private:
|
||||||
bool inFront = false;
|
bool inFront = false;
|
||||||
crl::time startMs = 0;
|
crl::time startMs = 0;
|
||||||
uint16 spoilerIndex = 0;
|
uint16 spoilerIndex = 0;
|
||||||
|
|
||||||
|
bool selectActiveBlock = false; // For monospace.
|
||||||
} _background;
|
} _background;
|
||||||
int _yFrom = 0;
|
int _yFrom = 0;
|
||||||
int _yTo = 0;
|
int _yTo = 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue