handle RTL layouts

BUG:187107

svn path=/trunk/KDE/kdelibs/; revision=1057270
This commit is contained in:
Marco Martin 2009-12-01 21:04:59 +00:00
parent 7e3bdb55e5
commit 2b7ce26125

View File

@ -497,7 +497,12 @@ void ExtenderItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opti
font.setWeight(QFont::Bold); font.setWeight(QFont::Bold);
//create a pixmap with the title that is faded out at the right side of the titleRect. //create a pixmap with the title that is faded out at the right side of the titleRect.
QRectF rect = QRectF(d->titleRect().width() - 30, 0, 30, d->titleRect().height()); QRectF rect;
if (option->direction == Qt::LeftToRight) {
rect = QRectF(d->titleRect().width() - 30, 0, 30, d->titleRect().height());
} else {
rect = QRectF(0, 0, 30, d->titleRect().height());
}
QPixmap pixmap(d->titleRect().size().toSize()); QPixmap pixmap(d->titleRect().size().toSize());
pixmap.fill(Qt::transparent); pixmap.fill(Qt::transparent);
@ -513,8 +518,13 @@ void ExtenderItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opti
QLinearGradient alphaGradient(0, 0, 1, 0); QLinearGradient alphaGradient(0, 0, 1, 0);
alphaGradient.setCoordinateMode(QGradient::ObjectBoundingMode); alphaGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
//TODO: correct handling of right to left text. //TODO: correct handling of right to left text.
alphaGradient.setColorAt(0, QColor(0, 0, 0, 255)); if (option->direction == Qt::LeftToRight) {
alphaGradient.setColorAt(1, QColor(0, 0, 0, 0)); alphaGradient.setColorAt(0, QColor(0, 0, 0, 255));
alphaGradient.setColorAt(1, QColor(0, 0, 0, 0));
} else {
alphaGradient.setColorAt(1, QColor(0, 0, 0, 255));
alphaGradient.setColorAt(0, QColor(0, 0, 0, 0));
}
p.setCompositionMode(QPainter::CompositionMode_DestinationIn); p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
p.fillRect(rect, alphaGradient); p.fillRect(rect, alphaGradient);