Fix: Entity Outliner: Outliner is unusable with the Editor in slice mode (#6983)
* Fixed vertical offset Signed-off-by: AMZN-Igarri <82394219+AMZN-Igarri@users.noreply.github.com> * Fixed QPoint Signed-off-by: AMZN-Igarri <82394219+AMZN-Igarri@users.noreply.github.com> * Fixed Entry delegate Signed-off-by: AMZN-Igarri <82394219+AMZN-Igarri@users.noreply.github.com> * SetRenderHint in Entry delegate Signed-off-by: AMZN-Igarri <82394219+AMZN-Igarri@users.noreply.github.com> * Save and restore painter inside the highlighter Signed-off-by: AMZN-Igarri <82394219+AMZN-Igarri@users.noreply.github.com> * Restoring Painter Signed-off-by: AMZN-Igarri <82394219+AMZN-Igarri@users.noreply.github.com> * Removed comment Signed-off-by: AMZN-Igarri <82394219+AMZN-Igarri@users.noreply.github.com>
This commit is contained in:
@@ -2599,11 +2599,12 @@ void OutlinerItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem&
|
||||
optionV4.text.clear();
|
||||
optionV4.widget->style()->drawControl(QStyle::CE_ItemViewItem, &optionV4, painter);
|
||||
|
||||
// Now we setup a Text Document so it can draw the rich text
|
||||
int verticalOffset = GetEntityNameVerticalOffset(entityId);
|
||||
painter->translate(textRect.topLeft() + QPoint(0, verticalOffset));
|
||||
|
||||
AzToolsFramework::RichTextHighlighter::PaintHighlightedRichText(entityNameRichText, painter, optionV4, textRect);
|
||||
AzToolsFramework::RichTextHighlighter::PaintHighlightedRichText(
|
||||
entityNameRichText, painter, optionV4, textRect, QPoint(0, verticalOffset));
|
||||
|
||||
painter->restore();
|
||||
|
||||
OutlinerListModel::s_paintingName = false;
|
||||
}
|
||||
|
||||
@@ -290,6 +290,7 @@ namespace AzToolsFramework
|
||||
{
|
||||
displayString = RichTextHighlighter::HighlightText(displayString, m_assetBrowserFilerModel->GetStringFilter()->GetFilterString());
|
||||
}
|
||||
|
||||
RichTextHighlighter::PaintHighlightedRichText(displayString, painter, optionV4, remainingRect);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,12 +29,11 @@ namespace AzToolsFramework
|
||||
return highlightedString;
|
||||
}
|
||||
|
||||
void RichTextHighlighter::PaintHighlightedRichText(const QString& highlightedString,QPainter* painter, QStyleOptionViewItem option, QRect availableRect)
|
||||
void RichTextHighlighter::PaintHighlightedRichText(const QString& highlightedString,QPainter* painter, QStyleOptionViewItem option, QRect availableRect, QPoint offset /* = QPoint()*/)
|
||||
{
|
||||
// Now we setup a Text Document so it can draw the rich text
|
||||
painter->save();
|
||||
painter->setRenderHint(QPainter::Antialiasing);
|
||||
|
||||
// Now we setup a Text Document so it can draw the rich text
|
||||
QTextDocument textDoc;
|
||||
textDoc.setDefaultFont(option.font);
|
||||
if (option.state & QStyle::State_Enabled)
|
||||
@@ -46,10 +45,9 @@ namespace AzToolsFramework
|
||||
textDoc.setDefaultStyleSheet("body {color: #7C7C7C}");
|
||||
}
|
||||
textDoc.setHtml("<body>" + highlightedString + "</body>");
|
||||
painter->translate(availableRect.topLeft());
|
||||
painter->translate(availableRect.topLeft() + offset);
|
||||
textDoc.setTextWidth(availableRect.width());
|
||||
textDoc.drawContents(painter, QRectF(0, 0, availableRect.width(), availableRect.height()));
|
||||
|
||||
painter->restore();
|
||||
}
|
||||
} // namespace AzToolsFramework
|
||||
|
||||
@@ -30,7 +30,8 @@ namespace AzToolsFramework
|
||||
RichTextHighlighter() = delete;
|
||||
|
||||
static QString HighlightText(const QString& displayString, const QString& matchingSubstring);
|
||||
static void PaintHighlightedRichText(const QString& highlightedString,QPainter* painter, QStyleOptionViewItem option, QRect availableRect);
|
||||
static void PaintHighlightedRichText(const QString& highlightedString,QPainter* painter, QStyleOptionViewItem option,
|
||||
QRect availableRect, QPoint offset = QPoint());
|
||||
|
||||
};
|
||||
} // namespace AzToolsFramework
|
||||
|
||||
+2
@@ -2368,6 +2368,8 @@ namespace AzToolsFramework
|
||||
|
||||
AzToolsFramework::RichTextHighlighter::PaintHighlightedRichText(entityNameRichText, painter, optionV4, textRect);
|
||||
|
||||
painter->restore();
|
||||
|
||||
EntityOutlinerListModel::s_paintingName = false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user