summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-plasma/breeze/files/breeze-5.24.6-fix-qqc2-progressbar-style-in-rtl.patch')
-rw-r--r--kde-plasma/breeze/files/breeze-5.24.6-fix-qqc2-progressbar-style-in-rtl.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/kde-plasma/breeze/files/breeze-5.24.6-fix-qqc2-progressbar-style-in-rtl.patch b/kde-plasma/breeze/files/breeze-5.24.6-fix-qqc2-progressbar-style-in-rtl.patch
new file mode 100644
index 000000000000..36e4f952d980
--- /dev/null
+++ b/kde-plasma/breeze/files/breeze-5.24.6-fix-qqc2-progressbar-style-in-rtl.patch
@@ -0,0 +1,58 @@
+From d7c0ab28df83eb4a4c39495a25e609047c735d59 Mon Sep 17 00:00:00 2001
+From: ivan tkachenko <me@ratijas.tk>
+Date: Sat, 4 Jun 2022 05:00:53 +0300
+Subject: [PATCH] KStyle: Fix QQC2 ProgressBar desktop style in RTL layout
+ direction
+
+BUG: 430101
+
+(cherry picked from commit 2bf9fc4c7be280e2b77f7c150855e0fca0b80d9a)
+
+* asturm 2022-07-26: Merged with clang-format changes in commit
+ 32149dc002ae574ed41f111bf52712b1765b906b
+
+---
+ kstyle/breezestyle.cpp | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/kstyle/breezestyle.cpp b/kstyle/breezestyle.cpp
+index c9fba292..0d7a8432 100644
+--- a/kstyle/breezestyle.cpp
++++ b/kstyle/breezestyle.cpp
+@@ -1749,23 +1749,27 @@ namespace Breeze
+ const bool horizontal( BreezePrivate::isProgressBarHorizontal( progressBarOption ) );
+
+ // check inverted appearance
+- const bool inverted( progressBarOption->invertedAppearance );
++ bool inverted(progressBarOption->invertedAppearance);
++ if (horizontal) {
++ // un-invert in RTL layout
++ inverted ^= option->direction == Qt::RightToLeft;
++ }
+
+ // get progress and steps
+- const qreal progress( progressBarOption->progress - progressBarOption->minimum );
++ const int progress(progressBarOption->progress - progressBarOption->minimum);
+ const int steps( qMax( progressBarOption->maximum - progressBarOption->minimum, 1 ) );
+
+ //Calculate width fraction
+- const qreal widthFrac = qMin( qreal(1), progress/steps );
++ const qreal position = qreal(progress) / qreal(steps);
++ const qreal visualPosition = inverted ? 1 - position : position;
+
+ // convert the pixel width
+- const int indicatorSize( widthFrac*( horizontal ? rect.width():rect.height() ) );
++ const int indicatorSize(visualPosition * (horizontal ? rect.width() : rect.height()));
+
+ QRect indicatorRect;
+ if( horizontal )
+ {
+-
+- indicatorRect = QRect( inverted ? ( rect.right() - indicatorSize + 1):rect.left(), rect.y(), indicatorSize, rect.height() );
++ indicatorRect = QRect(rect.left(), rect.y(), indicatorSize, rect.height());
+ indicatorRect = visualRect( option->direction, rect, indicatorRect );
+
+ } else indicatorRect = QRect( rect.x(), inverted ? rect.top() : (rect.bottom() - indicatorSize + 1), rect.width(), indicatorSize );
+--
+2.35.1
+