forked from qt-creator/qt-creator
TextEditor: Fix updating TextMark priority
Change-Id: Ie88b75507faf1f467b4e044f2b06e25aae32bdcf Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -957,7 +957,13 @@ void TextDocument::removeMark(TextMark *mark)
|
||||
|
||||
void TextDocument::updateMark(TextMark *mark)
|
||||
{
|
||||
Q_UNUSED(mark)
|
||||
QTextBlock block = d->m_document.findBlockByNumber(mark->lineNumber() - 1);
|
||||
if (block.isValid()) {
|
||||
TextBlockUserData *userData = TextDocumentLayout::userData(block);
|
||||
// re-evaluate priority
|
||||
userData->removeMark(mark);
|
||||
userData->addMark(mark);
|
||||
}
|
||||
auto documentLayout = qobject_cast<TextDocumentLayout*>(d->m_document.documentLayout());
|
||||
QTC_ASSERT(documentLayout, return);
|
||||
documentLayout->requestUpdate();
|
||||
|
@@ -131,6 +131,12 @@ void TextMark::updateMarker()
|
||||
m_baseTextDocument->updateMark(this);
|
||||
}
|
||||
|
||||
void TextMark::setPriority(TextMark::Priority prioriy)
|
||||
{
|
||||
m_priority = prioriy;
|
||||
updateMarker();
|
||||
}
|
||||
|
||||
bool TextMark::isVisible() const
|
||||
{
|
||||
return m_visible;
|
||||
@@ -139,8 +145,7 @@ bool TextMark::isVisible() const
|
||||
void TextMark::setVisible(bool visible)
|
||||
{
|
||||
m_visible = visible;
|
||||
if (m_baseTextDocument)
|
||||
m_baseTextDocument->updateMark(this);
|
||||
updateMarker();
|
||||
}
|
||||
|
||||
double TextMark::widthFactor() const
|
||||
|
@@ -82,7 +82,7 @@ public:
|
||||
// call this if the icon has changed.
|
||||
void updateMarker();
|
||||
Priority priority() const { return m_priority;}
|
||||
void setPriority(Priority prioriy) { m_priority = prioriy; }
|
||||
void setPriority(Priority prioriy);
|
||||
bool isVisible() const;
|
||||
void setVisible(bool isVisible);
|
||||
Core::Id category() const { return m_category; }
|
||||
|
Reference in New Issue
Block a user