summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/tools/qlocale.qdoc4
-rw-r--r--src/gui/kernel/qguiapplication.cpp15
-rw-r--r--src/gui/kernel/qguiapplication.h5
-rw-r--r--src/gui/kernel/qinputpanel.cpp19
-rw-r--r--src/gui/kernel/qinputpanel.h7
-rw-r--r--src/gui/text/qlinecontrol_p.h2
-rw-r--r--src/gui/text/qtextengine.cpp3
-rw-r--r--src/widgets/widgets/qwidgetlinecontrol_p.h3
8 files changed, 41 insertions, 17 deletions
diff --git a/src/corelib/tools/qlocale.qdoc b/src/corelib/tools/qlocale.qdoc
index c8d8a38929..0337c708a9 100644
--- a/src/corelib/tools/qlocale.qdoc
+++ b/src/corelib/tools/qlocale.qdoc
@@ -89,7 +89,7 @@
pair; it does not use the system locale database.
\note For the current keyboard input locale take a look at
- QApplication::keyboardInputLocale().
+ QInputPanel::locale().
QLocale's data is based on Common Locale Data Repository v1.8.1.
@@ -114,7 +114,7 @@
California, Berkeley and its contributors.
\sa QString::arg(), QString::toInt(), QString::toDouble(),
- QApplication::keyboardInputLocale()
+ QInputPanel::locale()
*/
/*!
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index aaefb2c31b..96b9222fe0 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -68,7 +68,6 @@
#include <QWindowSystemInterface>
#include "private/qwindowsysteminterface_qpa_p.h"
#include "private/qwindow_p.h"
-#include "private/qkeymapper_p.h"
#include "private/qcursor_p.h"
#include "private/qdnd_p.h"
#include <private/qplatformthemefactory_qpa_p.h>
@@ -1463,26 +1462,24 @@ uint QGuiApplicationPrivate::currentKeyPlatform()
/*!
\since 4.2
+ \obsolete
- Returns the current keyboard input locale.
+ Returns the current keyboard input locale. Replaced with QInputPanel::locale()
*/
QLocale QGuiApplication::keyboardInputLocale()
{
- if (!QGuiApplicationPrivate::checkInstance("keyboardInputLocale"))
- return QLocale::c();
- return qt_keymapper_private()->keyboardInputLocale;
+ return qApp ? qApp->inputPanel()->locale() : QLocale::c();
}
/*!
\since 4.2
+ \obsolete
- Returns the current keyboard input direction.
+ Returns the current keyboard input direction. Replaced with QInputPanel::inputDirection()
*/
Qt::LayoutDirection QGuiApplication::keyboardInputDirection()
{
- if (!QGuiApplicationPrivate::checkInstance("keyboardInputDirection"))
- return Qt::LeftToRight;
- return qt_keymapper_private()->keyboardInputDirection;
+ return qApp ? qApp->inputPanel()->inputDirection() : Qt::LeftToRight;
}
/*!
diff --git a/src/gui/kernel/qguiapplication.h b/src/gui/kernel/qguiapplication.h
index c66cb7d22d..7223e2639e 100644
--- a/src/gui/kernel/qguiapplication.h
+++ b/src/gui/kernel/qguiapplication.h
@@ -118,9 +118,8 @@ public:
static inline bool isRightToLeft() { return layoutDirection() == Qt::RightToLeft; }
static inline bool isLeftToRight() { return layoutDirection() == Qt::LeftToRight; }
- // ### move to QInputPanel
- static QLocale keyboardInputLocale();
- static Qt::LayoutDirection keyboardInputDirection();
+ QT_DEPRECATED static QLocale keyboardInputLocale();
+ QT_DEPRECATED static Qt::LayoutDirection keyboardInputDirection();
QStyleHints *styleHints() const;
QInputPanel *inputPanel() const;
diff --git a/src/gui/kernel/qinputpanel.cpp b/src/gui/kernel/qinputpanel.cpp
index 1459a8e831..3eec3e89bf 100644
--- a/src/gui/kernel/qinputpanel.cpp
+++ b/src/gui/kernel/qinputpanel.cpp
@@ -41,6 +41,7 @@
#include <qinputpanel.h>
#include <private/qinputpanel_p.h>
+#include "private/qkeymapper_p.h"
QT_BEGIN_NAMESPACE
@@ -248,6 +249,24 @@ bool QInputPanel::isAnimating() const
}
/*!
+ \property QInputPanel::locale
+ \brief Current input locale.
+*/
+QLocale QInputPanel::locale() const
+{
+ return qt_keymapper_private()->keyboardInputLocale;
+}
+
+/*!
+ \property QInputPanel::inputDirection
+ \brief Current input direction.
+*/
+Qt::LayoutDirection QInputPanel::inputDirection() const
+{
+ return qt_keymapper_private()->keyboardInputDirection;
+}
+
+/*!
Called by the input item to inform the platform input methods when there has been
state changes in editor's input method query attributes. When calling the function
\a queries parameter has to be used to tell what has changes, which input method
diff --git a/src/gui/kernel/qinputpanel.h b/src/gui/kernel/qinputpanel.h
index 66f7f3be5a..33e49f28f4 100644
--- a/src/gui/kernel/qinputpanel.h
+++ b/src/gui/kernel/qinputpanel.h
@@ -64,6 +64,8 @@ class Q_GUI_EXPORT QInputPanel : public QObject
Q_PROPERTY(QRectF keyboardRectangle READ keyboardRectangle NOTIFY keyboardRectangleChanged)
Q_PROPERTY(bool visible READ visible NOTIFY visibleChanged)
Q_PROPERTY(bool animating READ isAnimating NOTIFY animatingChanged)
+ Q_PROPERTY(QLocale locale READ locale NOTIFY localeChanged)
+ Q_PROPERTY(Qt::LayoutDirection inputDirection READ inputDirection NOTIFY inputDirectionChanged)
Q_ENUMS(Action)
public:
@@ -92,6 +94,9 @@ public:
bool isAnimating() const;
+ QLocale locale() const;
+ Qt::LayoutDirection inputDirection() const;
+
public Q_SLOTS:
void show();
void hide();
@@ -108,6 +113,8 @@ Q_SIGNALS:
void keyboardRectangleChanged();
void visibleChanged();
void animatingChanged();
+ void localeChanged();
+ void inputDirectionChanged(Qt::LayoutDirection newDirection);
private:
friend class QGuiApplication;
diff --git a/src/gui/text/qlinecontrol_p.h b/src/gui/text/qlinecontrol_p.h
index 166300f997..fb14df27bb 100644
--- a/src/gui/text/qlinecontrol_p.h
+++ b/src/gui/text/qlinecontrol_p.h
@@ -277,7 +277,7 @@ public:
Qt::LayoutDirection layoutDirection() const {
if (m_layoutDirection == Qt::LayoutDirectionAuto) {
if (m_text.isEmpty())
- return QGuiApplication::keyboardInputDirection();
+ return qApp->inputPanel()->inputDirection();
return m_text.isRightToLeft() ? Qt::RightToLeft : Qt::LeftToRight;
}
return m_layoutDirection;
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index 00418bae5a..0dd8d0bef3 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -54,6 +54,7 @@
#include <private/qunicodetables_p.h>
#include "qtextdocument_p.h"
#include <qguiapplication.h>
+#include <qinputpanel.h>
#include <stdlib.h>
@@ -1408,7 +1409,7 @@ bool QTextEngine::isRightToLeft() const
itemize();
// this places the cursor in the right position depending on the keyboard layout
if (layoutData->string.isEmpty())
- return QGuiApplication::keyboardInputDirection() == Qt::RightToLeft;
+ return qApp ? qApp->inputPanel()->inputDirection() == Qt::RightToLeft : false;
return layoutData->string.isRightToLeft();
}
diff --git a/src/widgets/widgets/qwidgetlinecontrol_p.h b/src/widgets/widgets/qwidgetlinecontrol_p.h
index b39a0b3ba1..d8f27a4003 100644
--- a/src/widgets/widgets/qwidgetlinecontrol_p.h
+++ b/src/widgets/widgets/qwidgetlinecontrol_p.h
@@ -62,6 +62,7 @@
#include "QtWidgets/qstyleoption.h"
#include "QtCore/qpointer.h"
#include "QtGui/qclipboard.h"
+#include "QtGui/qinputpanel.h"
#include "QtCore/qpoint.h"
#include "QtWidgets/qcompleter.h"
#include "QtCore/qthread.h"
@@ -318,7 +319,7 @@ public:
Qt::LayoutDirection layoutDirection() const {
if (m_layoutDirection == Qt::LayoutDirectionAuto) {
if (m_text.isEmpty())
- return QApplication::keyboardInputDirection();
+ return qApp->inputPanel()->inputDirection();
return m_text.isRightToLeft() ? Qt::RightToLeft : Qt::LeftToRight;
}
return m_layoutDirection;