diff options
-rw-r--r-- | utils/themeeditor/graphics/rbviewport.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/utils/themeeditor/graphics/rbviewport.cpp b/utils/themeeditor/graphics/rbviewport.cpp index 5cac806c3d..f646d830dd 100644 --- a/utils/themeeditor/graphics/rbviewport.cpp +++ b/utils/themeeditor/graphics/rbviewport.cpp @@ -48,8 +48,6 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info, leftGraphic(0), centerGraphic(0), rightGraphic(0), scrollTime(0), node(pNode), doc(info.document()) { - mirrored = info.screen()->isRtlMirrored() - && info.device()->data("rtl").toBool(); if(!node->tag) { @@ -150,12 +148,6 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info, y -= screen->parentItem()->pos().y(); } - /* Mirroring if necessary */ - if(mirrored) - { - x = parentItem()->boundingRect().width() - w - x; - } - if(node->params[++param].type == skin_tag_parameter::DEFAULT) font = screen->getFont(1); else @@ -167,6 +159,17 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info, debug = info.device()->data("showviewports").toBool(); lineHeight = font->lineHeight(); + + if(info.screen()->isRtlMirrored() && info.device()->data("rtl").toBool()) + { + /* Mirroring the viewport */ + double x = screen->boundingRect().width() - 2 * pos().x(); + QTransform t; + t.translate(x, 0); + t.scale(-1, 1); + setTransform(t); + } + if(customUI) screen->setCustomUI(this); } @@ -236,10 +239,6 @@ void RBViewport::write(QString text) return; Alignment align = textAlign; - if(mirrored && align == Left) - align = Right; - else if(mirrored && align == Right) - align = Left; if(align == Left) { |