summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qlocale.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/tools/qlocale.cpp')
-rw-r--r--src/corelib/tools/qlocale.cpp25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp
index 4b4c94872e..582ae9ebef 100644
--- a/src/corelib/tools/qlocale.cpp
+++ b/src/corelib/tools/qlocale.cpp
@@ -2240,16 +2240,23 @@ QLocale::MeasurementSystem QLocale::measurementSystem() const
*/
Qt::LayoutDirection QLocale::textDirection() const
{
- Language lang = language();
- if (lang == QLocale::Arabic ||
- lang == QLocale::Hebrew ||
- lang == QLocale::Persian ||
- lang == QLocale::Pashto ||
- lang == QLocale::Urdu ||
- lang == QLocale::Syriac ||
- lang == QLocale::Divehi)
+ switch (language()) {
+ case QLocale::Arabic:
+ case QLocale::Hebrew:
+ case QLocale::Persian:
+ case QLocale::Pashto:
+ case QLocale::Urdu:
+ case QLocale::Syriac:
+ case QLocale::Divehi:
return Qt::RightToLeft;
-
+ case QLocale::Punjabi:
+ case QLocale::Uzbek:
+ if (script() == QLocale::ArabicScript)
+ return Qt::RightToLeft;
+ // fall through
+ default:
+ break;
+ }
return Qt::LeftToRight;
}