mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-20 18:56:34 +01:00
Merge pull request #744 from srazi/master
Better RTL support for LocationCompleter and add direction property to dirlist.html
This commit is contained in:
commit
bb8bff1676
@ -4,7 +4,7 @@
|
|||||||
<style>
|
<style>
|
||||||
html {background: #eeeeee;font: 13px/22px "Helvetica Neue", Helvetica, Arial, sans-serif;color: #525c66;}
|
html {background: #eeeeee;font: 13px/22px "Helvetica Neue", Helvetica, Arial, sans-serif;color: #525c66;}
|
||||||
html * {font-size: 100%;line-height: 1.6;}
|
html * {font-size: 100%;line-height: 1.6;}
|
||||||
#box {max-width:650px;min-width:400px;overflow:auto;margin: 25px auto 10px auto;padding: 10px 40px;border-width: 20px;-webkit-border-image: url(%BOX-BORDER%) 25;text-align: %LEFT_STR%;}
|
#box {max-width:650px;min-width:400px;overflow:auto;margin: 25px auto 10px auto;padding: 10px 40px;border-width: 20px;-webkit-border-image: url(%BOX-BORDER%) 25;text-align: %LEFT_STR%;direction: %DIRECTION%;}
|
||||||
h1 {color:#1a4ba4;font-size:120%;margin-bottom:0px;word-wrap:break-word;}
|
h1 {color:#1a4ba4;font-size:120%;margin-bottom:0px;word-wrap:break-word;}
|
||||||
a{text-decoration:none;}
|
a{text-decoration:none;}
|
||||||
a:hover{text-decoration:underline;}
|
a:hover{text-decoration:underline;}
|
||||||
|
@ -137,7 +137,7 @@ static bool sizeBiggerThan(const QString &s1, const QString &s2)
|
|||||||
return s1.size() > s2.size();
|
return s1.size() > s2.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocationCompleterDelegate::drawHighlightedTextLine(const QRect &rect, QString text, const QString &searchText,
|
void LocationCompleterDelegate::drawHighlightedTextLine(const QRect &rect, const QString &text, const QString &searchText,
|
||||||
QPainter* painter, const QStyle* style, const QStyleOptionViewItemV4 &option,
|
QPainter* painter, const QStyle* style, const QStyleOptionViewItemV4 &option,
|
||||||
const QPalette::ColorRole &role) const
|
const QPalette::ColorRole &role) const
|
||||||
{
|
{
|
||||||
@ -204,9 +204,12 @@ void LocationCompleterDelegate::drawHighlightedTextLine(const QRect &rect, QStri
|
|||||||
|
|
||||||
if (!normalPart.isEmpty()) {
|
if (!normalPart.isEmpty()) {
|
||||||
int width = normalMetrics.width(normalPart);
|
int width = normalMetrics.width(normalPart);
|
||||||
const QRect &nRect = adjustRect(rect, QRect(lastRectPos, rect.top(), width, rect.height()));
|
QRect nRect = adjustRect(rect, QRect(lastRectPos, rect.top(), width, rect.height()));
|
||||||
|
|
||||||
if (nRect.width() > 0) {
|
if (nRect.width() > 0) {
|
||||||
|
if (text.isRightToLeft()) {
|
||||||
|
nRect = style->visualRect(Qt::RightToLeft, rect, nRect);
|
||||||
|
}
|
||||||
painter->setFont(normalFont);
|
painter->setFont(normalFont);
|
||||||
drawTextLine(nRect, normalPart, painter, style, option, role);
|
drawTextLine(nRect, normalPart, painter, style, option, role);
|
||||||
|
|
||||||
@ -216,15 +219,19 @@ void LocationCompleterDelegate::drawHighlightedTextLine(const QRect &rect, QStri
|
|||||||
|
|
||||||
if (!boldPart.isEmpty()) {
|
if (!boldPart.isEmpty()) {
|
||||||
int width = boldMetrics.width(boldPart);
|
int width = boldMetrics.width(boldPart);
|
||||||
const QRect &bRect = adjustRect(rect, QRect(lastRectPos, rect.top(), width, rect.height()));
|
QRect bRect = adjustRect(rect, QRect(lastRectPos, rect.top(), width, rect.height()));
|
||||||
|
|
||||||
if (bRect.width() > 0) {
|
if (bRect.width() > 0) {
|
||||||
|
if (text.isRightToLeft()) {
|
||||||
|
bRect = style->visualRect(Qt::RightToLeft, rect, bRect);
|
||||||
|
}
|
||||||
painter->setFont(boldFont);
|
painter->setFont(boldFont);
|
||||||
drawTextLine(bRect, boldPart, painter, style, option, role);
|
drawTextLine(bRect, boldPart, painter, style, option, role);
|
||||||
|
|
||||||
// Paint manually line under text instead of using QFont::underline
|
// Paint manually line under text instead of using QFont::underline
|
||||||
QRect underlineRect(bRect.left(), bRect.top() + boldMetrics.ascent() + 1,
|
QRect underlineRect(bRect.left(), bRect.top() + boldMetrics.ascent() + 1,
|
||||||
bRect.width(), boldFont.pointSize() > 8 ? 2 : 1);
|
bRect.width(), boldFont.pointSize() > 8 ? 2 : 1);
|
||||||
|
|
||||||
painter->fillRect(underlineRect, option.palette.color(role));
|
painter->fillRect(underlineRect, option.palette.color(role));
|
||||||
|
|
||||||
lastRectPos += bRect.width();
|
lastRectPos += bRect.width();
|
||||||
@ -235,10 +242,12 @@ void LocationCompleterDelegate::drawHighlightedTextLine(const QRect &rect, QStri
|
|||||||
const QString &lastText = text.mid(lastEndPos);
|
const QString &lastText = text.mid(lastEndPos);
|
||||||
|
|
||||||
int width = normalMetrics.width(lastText);
|
int width = normalMetrics.width(lastText);
|
||||||
QRect nRect(lastRectPos, rect.top(), width, rect.height());
|
QRect nRect = adjustRect(rect, QRect(lastRectPos, rect.top(), width, rect.height()));
|
||||||
|
if (text.isRightToLeft()) {
|
||||||
|
nRect = style->visualRect(Qt::RightToLeft, rect, nRect);
|
||||||
|
}
|
||||||
painter->setFont(normalFont);
|
painter->setFont(normalFont);
|
||||||
drawTextLine(adjustRect(rect, nRect), lastText, painter, style, option, role);
|
drawTextLine(nRect, lastText, painter, style, option, role);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ public:
|
|||||||
void drawSwitchToTab(bool enable);
|
void drawSwitchToTab(bool enable);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void drawHighlightedTextLine(const QRect &rect, QString text, const QString &searchText,
|
void drawHighlightedTextLine(const QRect &rect, const QString &text, const QString &searchText,
|
||||||
QPainter* painter, const QStyle* style, const QStyleOptionViewItemV4 &option,
|
QPainter* painter, const QStyle* style, const QStyleOptionViewItemV4 &option,
|
||||||
const QPalette::ColorRole &role) const;
|
const QPalette::ColorRole &role) const;
|
||||||
|
|
||||||
|
@ -614,6 +614,9 @@ void LocationBar::paintEvent(QPaintEvent* event)
|
|||||||
|
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
QRect cursorRect(cursorXpos, cursorYpos, cursorWidth, cursorHeight);
|
QRect cursorRect(cursorXpos, cursorYpos, cursorWidth, cursorHeight);
|
||||||
|
if (isRightToLeft()) {
|
||||||
|
cursorRect = style()->visualRect(Qt::RightToLeft, contentsRect, cursorRect);
|
||||||
|
}
|
||||||
p.fillRect(cursorRect, option.palette.text().color());
|
p.fillRect(cursorRect, option.palette.text().color());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user