Skip to content
Snippets Groups Projects
Commit 27141eb6 authored by Roberto Raggi's avatar Roberto Raggi
Browse files

Position the refactoring icon at the top right corner.

parent 3e12d0bc
No related branches found
No related tags found
No related merge requests found
......@@ -16,20 +16,9 @@ RefactorOverlay::RefactorOverlay(TextEditor::BaseTextEditor *editor) :
void RefactorOverlay::paint(QPainter *painter, const QRect &clip)
{
QTextBlock lastBlock;
int position = 0;
m_maxWidth = 0;
for (int i = 0; i < m_markers.size(); ++i) {
// position counts how many refactor markers are in a single block
if (m_markers.at(i).cursor.block() != lastBlock) {
lastBlock = m_markers.at(i).cursor.block();
position = 0;
} else {
position++;
}
paintMarker(m_markers.at(i), position, painter, clip);
paintMarker(m_markers.at(i), painter, clip);
}
if (BaseTextDocumentLayout *documentLayout = qobject_cast<BaseTextDocumentLayout*>(m_editor->document()->documentLayout())) {
......@@ -48,8 +37,7 @@ RefactorMarker RefactorOverlay::markerAt(const QPoint &pos) const
return RefactorMarker();
}
void RefactorOverlay::paintMarker(const RefactorMarker& marker, int position,
QPainter *painter, const QRect &clip)
void RefactorOverlay::paintMarker(const RefactorMarker& marker, QPainter *painter, const QRect &clip)
{
QPointF offset = m_editor->contentOffset();
QRectF geometry = m_editor->blockBoundingGeometry(marker.cursor.block()).translated(offset);
......@@ -58,17 +46,17 @@ void RefactorOverlay::paintMarker(const RefactorMarker& marker, int position,
return; // marker not visible
QTextCursor cursor = marker.cursor;
cursor.movePosition(QTextCursor::EndOfLine);
QRect r = m_editor->cursorRect(cursor);
QIcon icon = marker.icon;
if (icon.isNull())
icon = m_icon;
QSize sz = icon.actualSize(QSize(INT_MAX, r.height()));
QSize sz = icon.actualSize(QSize(m_editor->fontMetrics().width(QLatin1Char(' '))+2, r.height()));
int x = r.right() + position * sz.width();
marker.rect = QRect(x, r.bottom() + 1 - sz.height(), sz.width(), sz.height());
int x = r.right();
marker.rect = QRect(x, r.top(), sz.width(), sz.height());
icon.paint(painter, marker.rect);
m_maxWidth = qMax((qreal)m_maxWidth, x + sz.width() - offset.x());
......
......@@ -37,7 +37,7 @@ public:
RefactorMarker markerAt(const QPoint &pos) const;
private:
void paintMarker(const RefactorMarker& marker, int position, QPainter *painter, const QRect &clip);
void paintMarker(const RefactorMarker& marker, QPainter *painter, const QRect &clip);
RefactorMarkers m_markers;
BaseTextEditor *m_editor;
int m_maxWidth;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment