summaryrefslogtreecommitdiffstats
path: root/src/gui/styles
diff options
context:
space:
mode:
authorThierry Bastian <thierry.bastian@nokia.com>2009-08-25 11:33:15 (GMT)
committerThierry Bastian <thierry.bastian@nokia.com>2009-08-25 11:34:13 (GMT)
commitf384dd306c022aa70015133be3a7b4d4c8bb1121 (patch)
tree704187f228bb2f7dbc76c9d72ae51e65388cc853 /src/gui/styles
parentf8acf3b9a9398eabef98be7007fd6766574a788a (diff)
downloadQt-f384dd306c022aa70015133be3a7b4d4c8bb1121.zip
Qt-f384dd306c022aa70015133be3a7b4d4c8bb1121.tar.gz
Qt-f384dd306c022aa70015133be3a7b4d4c8bb1121.tar.bz2
Make sure we use layoutDirection from the widget and not always the app
Task-number: 259331
Diffstat (limited to 'src/gui/styles')
-rw-r--r--src/gui/styles/qcleanlooksstyle.cpp4
-rw-r--r--src/gui/styles/qcommonstyle.cpp18
-rw-r--r--src/gui/styles/qplastiquestyle.cpp2
-rw-r--r--src/gui/styles/qstylesheetstyle.cpp8
-rw-r--r--src/gui/styles/qwindowsstyle.cpp6
-rw-r--r--src/gui/styles/qwindowsxpstyle.cpp2
6 files changed, 21 insertions, 19 deletions
diff --git a/src/gui/styles/qcleanlooksstyle.cpp b/src/gui/styles/qcleanlooksstyle.cpp
index 0a82c9c..426ebfd 100644
--- a/src/gui/styles/qcleanlooksstyle.cpp
+++ b/src/gui/styles/qcleanlooksstyle.cpp
@@ -1499,7 +1499,7 @@ void QCleanlooksStyle::drawControl(ControlElement element, const QStyleOption *o
default:
break;
}
- if (QApplication::layoutDirection() == Qt::RightToLeft) { //reverse layout changes the order of Beginning/end
+ if (toolbar->direction == Qt::RightToLeft) { //reverse layout changes the order of Beginning/end
bool tmp = paintLeftBorder;
paintRightBorder=paintLeftBorder;
paintLeftBorder=tmp;
@@ -4323,7 +4323,7 @@ QRect QCleanlooksStyle::subElementRect(SubElement sr, const QStyleOption *opt, c
if (verticalTitleBar) {
r.adjust(0, 0, 0, -4);
} else {
- if (QApplication::layoutDirection() == Qt::LeftToRight)
+ if (opt->direction == Qt::LeftToRight)
r.adjust(4, 0, 0, 0);
else
r.adjust(0, 0, -4, 0);
diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp
index d4488ec..2dab9b3 100644
--- a/src/gui/styles/qcommonstyle.cpp
+++ b/src/gui/styles/qcommonstyle.cpp
@@ -564,7 +564,7 @@ void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, Q
p->translate(opt->rect.x(), opt->rect.y());
if (opt->state & State_Horizontal) {
int x = opt->rect.width() / 3;
- if (QApplication::layoutDirection() == Qt::RightToLeft)
+ if (opt->direction == Qt::RightToLeft)
x -= 2;
if (opt->rect.height() > 4) {
qDrawShadePanel(p, x, 2, 3, opt->rect.height() - 4,
@@ -5224,6 +5224,7 @@ QPixmap QCommonStyle::standardPixmap(StandardPixmap sp, const QStyleOption *opti
Q_UNUSED(sp);
#else
QPixmap pixmap;
+ const bool rtl = (option && option->direction == Qt::RightToLeft) || !option && QApplication::isRightToLeft();
if (QApplication::desktopSettingsAware() && !QIcon::themeName().isEmpty()) {
switch (sp) {
@@ -5382,7 +5383,7 @@ QPixmap QCommonStyle::standardPixmap(StandardPixmap sp, const QStyleOption *opti
switch (sp) {
#ifndef QT_NO_IMAGEFORMAT_XPM
case SP_ToolBarHorizontalExtensionButton:
- if (QApplication::layoutDirection() == Qt::RightToLeft) {
+ if (rtl) {
QImage im(tb_extension_arrow_h_xpm);
im = im.convertToFormat(QImage::Format_ARGB32).mirrored(true, false);
return QPixmap::fromImage(im);
@@ -5398,11 +5399,11 @@ QPixmap QCommonStyle::standardPixmap(StandardPixmap sp, const QStyleOption *opti
#ifndef QT_NO_IMAGEFORMAT_PNG
case SP_CommandLink:
case SP_ArrowForward:
- if (QApplication::layoutDirection() == Qt::RightToLeft)
+ if (rtl)
return proxy()->standardPixmap(SP_ArrowLeft, option, widget);
return proxy()->standardPixmap(SP_ArrowRight, option, widget);
case SP_ArrowBack:
- if (QApplication::layoutDirection() == Qt::RightToLeft)
+ if (rtl)
return proxy()->standardPixmap(SP_ArrowRight, option, widget);
return proxy()->standardPixmap(SP_ArrowLeft, option, widget);
case SP_ArrowLeft:
@@ -5513,6 +5514,7 @@ QIcon QCommonStyle::standardIconImplementation(StandardPixmap standardIcon, cons
const QWidget *widget) const
{
QIcon icon;
+ const bool rtl = (option && option->direction == Qt::RightToLeft) || !option && QApplication::isRightToLeft();
if (QApplication::desktopSettingsAware() && !QIcon::themeName().isEmpty()) {
switch (standardIcon) {
case SP_DirHomeIcon:
@@ -5637,11 +5639,11 @@ QIcon QCommonStyle::standardIconImplementation(StandardPixmap standardIcon, cons
icon = QIcon::fromTheme(QLatin1String("edit-clear"));
break;
case SP_ArrowForward:
- if (QApplication::layoutDirection() == Qt::RightToLeft)
+ if (rtl)
return standardIconImplementation(SP_ArrowLeft, option, widget);
return standardIconImplementation(SP_ArrowRight, option, widget);
case SP_ArrowBack:
- if (QApplication::layoutDirection() == Qt::RightToLeft)
+ if (rtl)
return standardIconImplementation(SP_ArrowRight, option, widget);
return standardIconImplementation(SP_ArrowLeft, option, widget);
case SP_FileLinkIcon:
@@ -5865,11 +5867,11 @@ QIcon QCommonStyle::standardIconImplementation(StandardPixmap standardIcon, cons
icon.addFile(QLatin1String(":/trolltech/styles/commonstyle/images/standardbutton-no-128.png"));
break;
case SP_ArrowForward:
- if (QApplication::layoutDirection() == Qt::RightToLeft)
+ if (rtl)
return standardIconImplementation(SP_ArrowLeft, option, widget);
return standardIconImplementation(SP_ArrowRight, option, widget);
case SP_ArrowBack:
- if (QApplication::layoutDirection() == Qt::RightToLeft)
+ if (rtl)
return standardIconImplementation(SP_ArrowRight, option, widget);
return standardIconImplementation(SP_ArrowLeft, option, widget);
case SP_ArrowLeft:
diff --git a/src/gui/styles/qplastiquestyle.cpp b/src/gui/styles/qplastiquestyle.cpp
index 04559dc..0c3c2a3 100644
--- a/src/gui/styles/qplastiquestyle.cpp
+++ b/src/gui/styles/qplastiquestyle.cpp
@@ -3749,7 +3749,7 @@ void QPlastiqueStyle::drawControl(ControlElement element, const QStyleOption *op
QPixmap pixmap = comboBox->currentIcon.pixmap(comboBox->iconSize, mode);
QRect iconRect(editRect);
iconRect.setWidth(comboBox->iconSize.width() + 5);
- iconRect = alignedRect(QApplication::layoutDirection(),
+ iconRect = alignedRect(comboBox->direction,
Qt::AlignLeft | Qt::AlignVCenter,
iconRect.size(), editRect);
painter->fillRect(iconRect, option->palette.brush(QPalette::Base));
diff --git a/src/gui/styles/qstylesheetstyle.cpp b/src/gui/styles/qstylesheetstyle.cpp
index 8ac811c..7acb3a6 100644
--- a/src/gui/styles/qstylesheetstyle.cpp
+++ b/src/gui/styles/qstylesheetstyle.cpp
@@ -3196,7 +3196,7 @@ void QStyleSheetStyle::drawComplexControl(ComplexControl cc, const QStyleOptionC
if (subRule.hasDrawable()) {
QRect rect = subRule.boxRect(subControlRect(CC_MdiControls, opt, control, w), Margin);
subRule.drawRule(p, rect);
- QIcon icon = standardIcon(subControlIcon(layoutButton));
+ QIcon icon = standardIcon(subControlIcon(layoutButton), opt);
icon.paint(p, subRule.contentsRect(rect), Qt::AlignCenter);
} else {
optCopy.subControls |= control;
@@ -3643,9 +3643,9 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
QPixmap pixmap = cb->currentIcon.pixmap(cb->iconSize, mode);
QRect iconRect(editRect);
iconRect.setWidth(cb->iconSize.width());
- iconRect = alignedRect(QApplication::layoutDirection(),
- Qt::AlignLeft | Qt::AlignVCenter,
- iconRect.size(), editRect);
+ iconRect = alignedRect(cb->direction,
+ Qt::AlignLeft | Qt::AlignVCenter,
+ iconRect.size(), editRect);
drawItemPixmap(p, iconRect, Qt::AlignCenter, pixmap);
if (cb->direction == Qt::RightToLeft)
diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp
index e558844..8097a3d 100644
--- a/src/gui/styles/qwindowsstyle.cpp
+++ b/src/gui/styles/qwindowsstyle.cpp
@@ -1261,7 +1261,7 @@ void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt,
p->translate(opt->rect.x(), opt->rect.y());
if (opt->state & State_Horizontal) {
int x = opt->rect.width() / 2 - 4;
- if (QApplication::layoutDirection() == Qt::RightToLeft)
+ if (opt->direction == Qt::RightToLeft)
x -= 2;
if (opt->rect.height() > 4) {
qDrawShadePanel(p, x, 2, 3, opt->rect.height() - 4,
@@ -2312,7 +2312,7 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai
default:
break;
}
- if(QApplication::layoutDirection() == Qt::RightToLeft){ //reverse layout changes the order of Beginning/end
+ if(opt->direction == Qt::RightToLeft){ //reverse layout changes the order of Beginning/end
bool tmp = paintLeftBorder;
paintRightBorder=paintLeftBorder;
paintLeftBorder=tmp;
@@ -2564,7 +2564,7 @@ QRect QWindowsStyle::subElementRect(SubElement sr, const QStyleOption *opt, cons
if (verticalTitleBar) {
r.adjust(0, 0, 0, -m);
} else {
- if (QApplication::layoutDirection() == Qt::LeftToRight)
+ if (opt->direction == Qt::LeftToRight)
r.adjust(m, 0, 0, 0);
else
r.adjust(0, 0, -m, 0);
diff --git a/src/gui/styles/qwindowsxpstyle.cpp b/src/gui/styles/qwindowsxpstyle.cpp
index 0e08730..e365873 100644
--- a/src/gui/styles/qwindowsxpstyle.cpp
+++ b/src/gui/styles/qwindowsxpstyle.cpp
@@ -2331,7 +2331,7 @@ void QWindowsXPStyle::drawControl(ControlElement element, const QStyleOption *op
bool hasIcon = (ico.cacheKey() != QApplication::windowIcon().cacheKey());
if (hasIcon) {
QPixmap pxIco = ico.pixmap(titleHeight);
- if (!verticalTitleBar && QApplication::layoutDirection() == Qt::RightToLeft)
+ if (!verticalTitleBar && dwOpt->direction == Qt::RightToLeft)
p->drawPixmap(rect.width() - titleHeight - pxIco.width(), rect.bottom() - titleHeight - 2, pxIco);
else
p->drawPixmap(fw, rect.bottom() - titleHeight - 2, pxIco);