[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/applets/kickoff/ui
From:       Marco Martin <notmart () gmail ! com>
Date:       2009-04-18 17:40:24
Message-ID: 1240076424.268972.11145.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 955865 by mart:

when the application layout is rtl the and the tabbar horizontal qtabbar
will do the opposite to what we tell it to do
BUG:165100
will backport to 4.2


 M  +17 -4     launcher.cpp  


--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/ui/launcher.cpp #955864:955865
@@ -798,21 +798,34 @@
     if (d->placement != placement) {
         d->placement = placement;
 
+        Private::TabOrder normalOrder;
+        Private::TabOrder reverseOrder;
+
+        //QTabBar attempts to be smart and flips what we say in rtl mode so say the \
opposite when the tabbar is horizontal +        if (QApplication::layoutDirection() \
== Qt::RightToLeft) { +            normalOrder = Private::ReverseTabOrder;
+            reverseOrder = Private::NormalTabOrder;
+        } else {
+            normalOrder = Private::NormalTabOrder;
+            reverseOrder = Private::ReverseTabOrder;
+        }
+
         switch (placement) {
         case Plasma::TopPosedRightAlignedPopup:
-            d->setSouthLayout(Private::ReverseTabOrder);
+            d->setSouthLayout(reverseOrder);
             break;
         case Plasma::LeftPosedTopAlignedPopup:
+            //when the tabbar is vertical it's fine
             d->setEastLayout(Private::NormalTabOrder);
             break;
         case Plasma::LeftPosedBottomAlignedPopup:
             d->setEastLayout(Private::ReverseTabOrder);
             break;
         case Plasma::BottomPosedLeftAlignedPopup:
-            d->setNorthLayout(Private::NormalTabOrder);
+            d->setNorthLayout(normalOrder);
             break;
         case Plasma::BottomPosedRightAlignedPopup:
-            d->setNorthLayout(Private::ReverseTabOrder);
+            d->setNorthLayout(reverseOrder);
             break;
         case Plasma::RightPosedTopAlignedPopup:
             d->setWestLayout(Private::NormalTabOrder);
@@ -822,7 +835,7 @@
             break;
         case Plasma::TopPosedLeftAlignedPopup:
         default:
-            d->setSouthLayout(Private::NormalTabOrder);
+            d->setSouthLayout(normalOrder);
             break;
         }
     }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic