forked from qt-creator/qt-creator
texteditor: introduce a widthFactor to enable non-quadratic text marks
This commit is contained in:
@@ -3559,7 +3559,8 @@ int BaseTextEditorWidget::extraAreaWidth(int *markWidthPtr) const
|
|||||||
|
|
||||||
if (d->m_lineNumbersVisible) {
|
if (d->m_lineNumbersVisible) {
|
||||||
QFont fnt = d->m_extraArea->font();
|
QFont fnt = d->m_extraArea->font();
|
||||||
// this works under the assumption that bold or italic can only make a font wider
|
// this works under the assumption that bold or italic
|
||||||
|
// can only make a font wider
|
||||||
fnt.setBold(d->m_currentLineNumberFormat.font().bold());
|
fnt.setBold(d->m_currentLineNumberFormat.font().bold());
|
||||||
fnt.setItalic(d->m_currentLineNumberFormat.font().italic());
|
fnt.setItalic(d->m_currentLineNumberFormat.font().italic());
|
||||||
const QFontMetrics linefm(fnt);
|
const QFontMetrics linefm(fnt);
|
||||||
@@ -3709,10 +3710,11 @@ void BaseTextEditorWidget::extraAreaPaintEvent(QPaintEvent *e)
|
|||||||
if (TextBlockUserData *userData = static_cast<TextBlockUserData*>(block.userData())) {
|
if (TextBlockUserData *userData = static_cast<TextBlockUserData*>(block.userData())) {
|
||||||
if (d->m_marksVisible) {
|
if (d->m_marksVisible) {
|
||||||
int xoffset = 0;
|
int xoffset = 0;
|
||||||
foreach (ITextMark *mrk, userData->marks()) {
|
foreach (ITextMark *mark, userData->marks()) {
|
||||||
const int radius = fmLineSpacing - 1;
|
const int height = fmLineSpacing - 1;
|
||||||
const QRect r(xoffset, top, radius, radius);
|
const int width = int(.5 + height * mark->widthFactor());
|
||||||
mrk->paint(&painter, r);
|
const QRect r(xoffset, top, width, height);
|
||||||
|
mark->paint(&painter, r);
|
||||||
xoffset += 2;
|
xoffset += 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,6 +73,14 @@ ITextMark::Priority ITextMark::priority() const
|
|||||||
return m_priority;
|
return m_priority;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
double ITextMark::widthFactor() const
|
||||||
|
{
|
||||||
|
return 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QMap<QString, QString> ITextEditor::openedTextEditorsContents()
|
QMap<QString, QString> ITextEditor::openedTextEditorsContents()
|
||||||
{
|
{
|
||||||
QMap<QString, QString> workingCopy;
|
QMap<QString, QString> workingCopy;
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ public:
|
|||||||
virtual void setIcon(const QIcon &icon);
|
virtual void setIcon(const QIcon &icon);
|
||||||
virtual Priority priority() const;
|
virtual Priority priority() const;
|
||||||
virtual void setPriority(Priority prioriy);
|
virtual void setPriority(Priority prioriy);
|
||||||
|
virtual double widthFactor() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QIcon m_icon;
|
QIcon m_icon;
|
||||||
|
|||||||
Reference in New Issue
Block a user