1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

Merge pull request #3717

Diadlo (2):
      fix(text): Change idealSize calculation
      refactor(text): Add early break
This commit is contained in:
Zetok Zalbavar 2016-09-23 21:47:56 +01:00
commit 355cd453e3
No known key found for this signature in database
GPG Key ID: C953D3880212068A

View File

@ -150,33 +150,31 @@ QRectF Text::boundingRect() const
void Text::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) void Text::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
{ {
if (doc)
if (!doc)
return;
painter->setClipRect(boundingRect());
// draw selection
QAbstractTextDocumentLayout::PaintContext ctx;
QAbstractTextDocumentLayout::Selection sel;
if (hasSelection())
{ {
painter->setClipRect(boundingRect()); sel.cursor = QTextCursor(doc);
sel.cursor.setPosition(getSelectionStart());
// draw selection sel.cursor.setPosition(getSelectionEnd(), QTextCursor::KeepAnchor);
QAbstractTextDocumentLayout::PaintContext ctx;
QAbstractTextDocumentLayout::Selection sel;
if (hasSelection())
{
sel.cursor = QTextCursor(doc);
sel.cursor.setPosition(getSelectionStart());
sel.cursor.setPosition(getSelectionEnd(), QTextCursor::KeepAnchor);
}
const QColor selectionColor = QColor::fromRgbF(0.23, 0.68, 0.91);
sel.format.setBackground(selectionColor.lighter(selectionHasFocus ? 100 : 160));
sel.format.setForeground(selectionHasFocus ? Qt::white : Qt::black);
ctx.selections.append(sel);
ctx.palette.setColor(QPalette::Text, color);
// draw text
doc->documentLayout()->draw(painter, ctx);
} }
Q_UNUSED(option) const QColor selectionColor = QColor::fromRgbF(0.23, 0.68, 0.91);
Q_UNUSED(widget) sel.format.setBackground(selectionColor.lighter(selectionHasFocus ? 100 : 160));
sel.format.setForeground(selectionHasFocus ? Qt::white : Qt::black);
ctx.selections.append(sel);
ctx.palette.setColor(QPalette::Text, color);
// draw text
doc->documentLayout()->draw(painter, ctx);
} }
void Text::visibilityChanged(bool visible) void Text::visibilityChanged(bool visible)
@ -293,7 +291,7 @@ void Text::freeResources()
QSizeF Text::idealSize() QSizeF Text::idealSize()
{ {
if (doc) if (doc)
return QSizeF(qMin(doc->idealWidth(), width), doc->size().height()); return doc->size();
return size; return size;
} }