Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qandroidinputcontext.cpp File Reference

(60506aa8b7489d8cf60cfaa357fb224d19b62e13)

#include <android/log.h>
#include "androidjniinput.h"
#include "androidjnimain.h"
#include "qandroideventdispatcher.h"
#include "qandroidinputcontext.h"
#include "qandroidplatformintegration.h"
#include "private/qhighdpiscaling_p.h"
#include <QTextBoundaryFinder>
#include <QTextCharFormat>
#include <QtCore/QJniEnvironment>
#include <QtCore/QJniObject>
#include <qevent.h>
#include <qguiapplication.h>
#include <qinputmethod.h>
#include <qsharedpointer.h>
#include <qthread.h>
#include <qwindow.h>
#include <qpa/qplatformwindow.h>
Include dependency graph for qandroidinputcontext.cpp:

Go to the source code of this file.

Functions

static void runOnQtThread (const std::function< void()> &func)
static bool hasValidFocusObject ()
static jboolean beginBatchEdit (JNIEnv *, jobject)
static jboolean endBatchEdit (JNIEnv *, jobject)
static jboolean commitText (JNIEnv *env, jobject, jstring text, jint newCursorPosition)
static jboolean deleteSurroundingText (JNIEnv *, jobject, jint leftLength, jint rightLength)
static jboolean finishComposingText (JNIEnv *, jobject)
static jboolean replaceText (JNIEnv *env, jobject, jint start, jint end, jstring text, jint newCursorPosition)
static jint getCursorCapsMode (JNIEnv *, jobject, jint reqModes)
static jobject getExtractedText (JNIEnv *env, jobject, int hintMaxChars, int hintMaxLines, jint flags)
static jstring getSelectedText (JNIEnv *env, jobject, jint flags)
static jstring getTextAfterCursor (JNIEnv *env, jobject, jint length, jint flags)
static jstring getTextBeforeCursor (JNIEnv *env, jobject, jint length, jint flags)
static jboolean setComposingText (JNIEnv *env, jobject, jstring text, jint newCursorPosition)
static jboolean setComposingRegion (JNIEnv *, jobject, jint start, jint end)
static jboolean setSelection (JNIEnv *, jobject, jint start, jint end)
static jboolean selectAll (JNIEnv *, jobject)
static jboolean cut (JNIEnv *, jobject)
static jboolean copy (JNIEnv *, jobject)
static jboolean copyURL (JNIEnv *, jobject)
static jboolean paste (JNIEnv *, jobject)
static jboolean updateCursorPosition (JNIEnv *, jobject)
static void reportFullscreenMode (JNIEnv *, jobject, jboolean enabled)
static jboolean fullscreenMode (JNIEnv *, jobject)
static QRect screenInputItemRectangle ()
static int getAbsoluteCursorPosition (const QSharedPointer< QInputMethodQueryEvent > &query)
static int getBlockPosition (const QSharedPointer< QInputMethodQueryEvent > &query)

Variables

static QAndroidInputContextm_androidInputContext = nullptr
static char const *const QtNativeInputConnectionClassName = "org/qtproject/qt/android/QtNativeInputConnection"
static char const *const QtExtractedTextClassName = "org/qtproject/qt/android/QtExtractedText"
static int m_selectHandleWidth = 0
static jclass m_extractedTextClass = 0
static jmethodID m_classConstructorMethodID = 0
static jfieldID m_partialEndOffsetFieldID = 0
static jfieldID m_partialStartOffsetFieldID = 0
static jfieldID m_selectionEndFieldID = 0
static jfieldID m_selectionStartFieldID = 0
static jfieldID m_startOffsetFieldID = 0
static jfieldID m_textFieldID = 0
static JNINativeMethod methods []

Function Documentation

◆ beginBatchEdit()

jboolean beginBatchEdit ( JNIEnv * ,
jobject  )
static

Definition at line 98 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ commitText()

jboolean commitText ( JNIEnv * env,
jobject ,
jstring text,
jint newCursorPosition )
static

Definition at line 122 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ copy()

jboolean copy ( JNIEnv * ,
jobject  )
static

Definition at line 308 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ copyURL()

jboolean copyURL ( JNIEnv * ,
jobject  )
static

Definition at line 319 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ cut()

jboolean cut ( JNIEnv * ,
jobject  )
static

Definition at line 297 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ deleteSurroundingText()

jboolean deleteSurroundingText ( JNIEnv * ,
jobject ,
jint leftLength,
jint rightLength )
static

Definition at line 138 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ endBatchEdit()

jboolean endBatchEdit ( JNIEnv * ,
jobject  )
static

Definition at line 109 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ finishComposingText()

jboolean finishComposingText ( JNIEnv * ,
jobject  )
static

Definition at line 149 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ fullscreenMode()

jboolean fullscreenMode ( JNIEnv * ,
jobject  )
static

Definition at line 360 of file qandroidinputcontext.cpp.

References hasValidFocusObject(), and m_androidInputContext.

Here is the call graph for this function:

◆ getAbsoluteCursorPosition()

int getAbsoluteCursorPosition ( const QSharedPointer< QInputMethodQueryEvent > & query)
inlinestatic

Definition at line 518 of file qandroidinputcontext.cpp.

◆ getBlockPosition()

int getBlockPosition ( const QSharedPointer< QInputMethodQueryEvent > & query)
inlinestatic

Definition at line 525 of file qandroidinputcontext.cpp.

◆ getCursorCapsMode()

jint getCursorCapsMode ( JNIEnv * ,
jobject ,
jint reqModes )
static

Definition at line 177 of file qandroidinputcontext.cpp.

References hasValidFocusObject(), and m_androidInputContext.

Here is the call graph for this function:

◆ getExtractedText()

jobject getExtractedText ( JNIEnv * env,
jobject ,
int hintMaxChars,
int hintMaxLines,
jint flags )
static

Definition at line 187 of file qandroidinputcontext.cpp.

References hasValidFocusObject(), and m_androidInputContext.

Here is the call graph for this function:

◆ getSelectedText()

jstring getSelectedText ( JNIEnv * env,
jobject ,
jint flags )
static

Definition at line 211 of file qandroidinputcontext.cpp.

References hasValidFocusObject(), and m_androidInputContext.

Here is the call graph for this function:

◆ getTextAfterCursor()

jstring getTextAfterCursor ( JNIEnv * env,
jobject ,
jint length,
jint flags )
static

Definition at line 224 of file qandroidinputcontext.cpp.

References hasValidFocusObject(), and m_androidInputContext.

Here is the call graph for this function:

◆ getTextBeforeCursor()

jstring getTextBeforeCursor ( JNIEnv * env,
jobject ,
jint length,
jint flags )
static

Definition at line 235 of file qandroidinputcontext.cpp.

References hasValidFocusObject(), and m_androidInputContext.

Here is the call graph for this function:

◆ hasValidFocusObject()

bool hasValidFocusObject ( )
static

Definition at line 80 of file qandroidinputcontext.cpp.

References QAndroidInputContext::isInputPanelVisible(), and m_androidInputContext.

Referenced by fullscreenMode(), getCursorCapsMode(), getExtractedText(), getSelectedText(), getTextAfterCursor(), getTextBeforeCursor(), and reportFullscreenMode().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ paste()

jboolean paste ( JNIEnv * ,
jobject  )
static

Definition at line 330 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ replaceText()

jboolean replaceText ( JNIEnv * env,
jobject ,
jint start,
jint end,
jstring text,
jint newCursorPosition )
static

Definition at line 160 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ reportFullscreenMode()

void reportFullscreenMode ( JNIEnv * ,
jobject ,
jboolean enabled )
static

Definition at line 352 of file qandroidinputcontext.cpp.

References hasValidFocusObject(), and m_androidInputContext.

Here is the call graph for this function:

◆ runOnQtThread()

void runOnQtThread ( const std::function< void()> & func)
static

Definition at line 71 of file qandroidinputcontext.cpp.

◆ screenInputItemRectangle()

QRect screenInputItemRectangle ( )
static

Definition at line 393 of file qandroidinputcontext.cpp.

◆ selectAll()

jboolean selectAll ( JNIEnv * ,
jobject  )
static

Definition at line 286 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ setComposingRegion()

jboolean setComposingRegion ( JNIEnv * ,
jobject ,
jint start,
jint end )
static

Definition at line 262 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ setComposingText()

jboolean setComposingText ( JNIEnv * env,
jobject ,
jstring text,
jint newCursorPosition )
static

Definition at line 246 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ setSelection()

jboolean setSelection ( JNIEnv * ,
jobject ,
jint start,
jint end )
static

Definition at line 274 of file qandroidinputcontext.cpp.

References m_androidInputContext.

◆ updateCursorPosition()

jboolean updateCursorPosition ( JNIEnv * ,
jobject  )
static

Definition at line 341 of file qandroidinputcontext.cpp.

References m_androidInputContext, and QAndroidInputContext::updateCursorPosition().

Here is the call graph for this function:

Variable Documentation

◆ m_androidInputContext

◆ m_classConstructorMethodID

jmethodID m_classConstructorMethodID = 0
static

Definition at line 63 of file qandroidinputcontext.cpp.

Referenced by QAndroidInputContext::QAndroidInputContext().

◆ m_extractedTextClass

jclass m_extractedTextClass = 0
static

◆ m_partialEndOffsetFieldID

jfieldID m_partialEndOffsetFieldID = 0
static

◆ m_partialStartOffsetFieldID

jfieldID m_partialStartOffsetFieldID = 0
static

◆ m_selectHandleWidth

int m_selectHandleWidth = 0
static

◆ m_selectionEndFieldID

jfieldID m_selectionEndFieldID = 0
static

◆ m_selectionStartFieldID

jfieldID m_selectionStartFieldID = 0
static

◆ m_startOffsetFieldID

jfieldID m_startOffsetFieldID = 0
static

◆ m_textFieldID

jfieldID m_textFieldID = 0
static

◆ methods

JNINativeMethod methods
static
Initial value:
= {
{"beginBatchEdit", "()Z", (void *)beginBatchEdit},
{"endBatchEdit", "()Z", (void *)endBatchEdit},
{"commitText", "(Ljava/lang/String;I)Z", (void *)commitText},
{"deleteSurroundingText", "(II)Z", (void *)deleteSurroundingText},
{"finishComposingText", "()Z", (void *)finishComposingText},
{"getCursorCapsMode", "(I)I", (void *)getCursorCapsMode},
{"getExtractedText", "(III)Lorg/qtproject/qt/android/QtExtractedText;", (void *)getExtractedText},
{"getSelectedText", "(I)Ljava/lang/String;", (void *)getSelectedText},
{"getTextAfterCursor", "(II)Ljava/lang/String;", (void *)getTextAfterCursor},
{"getTextBeforeCursor", "(II)Ljava/lang/String;", (void *)getTextBeforeCursor},
{"replaceText", "(IILjava/lang/String;I)Z", (void *)replaceText},
{"setComposingText", "(Ljava/lang/String;I)Z", (void *)setComposingText},
{"setComposingRegion", "(II)Z", (void *)setComposingRegion},
{"setSelection", "(II)Z", (void *)setSelection},
{"selectAll", "()Z", (void *)selectAll},
{"cut", "()Z", (void *)cut},
{"copy", "()Z", (void *)copy},
{"copyURL", "()Z", (void *)copyURL},
{"paste", "()Z", (void *)paste},
{"updateCursorPosition", "()Z", (void *)updateCursorPosition},
{"reportFullscreenMode", "(Z)V", (void *)reportFullscreenMode},
{"fullscreenMode", "()Z", (void *)fullscreenMode}
}
static jboolean cut(JNIEnv *, jobject)
static jint getCursorCapsMode(JNIEnv *, jobject, jint reqModes)
static jboolean fullscreenMode(JNIEnv *, jobject)
static jboolean finishComposingText(JNIEnv *, jobject)
static jobject getExtractedText(JNIEnv *env, jobject, int hintMaxChars, int hintMaxLines, jint flags)
static jboolean copy(JNIEnv *, jobject)
static jstring getTextBeforeCursor(JNIEnv *env, jobject, jint length, jint flags)
static jboolean copyURL(JNIEnv *, jobject)
static jboolean commitText(JNIEnv *env, jobject, jstring text, jint newCursorPosition)
static jboolean paste(JNIEnv *, jobject)
static jboolean replaceText(JNIEnv *env, jobject, jint start, jint end, jstring text, jint newCursorPosition)
static jboolean beginBatchEdit(JNIEnv *, jobject)
static jstring getSelectedText(JNIEnv *env, jobject, jint flags)
static jboolean setComposingRegion(JNIEnv *, jobject, jint start, jint end)
static jboolean deleteSurroundingText(JNIEnv *, jobject, jint leftLength, jint rightLength)
static jboolean setComposingText(JNIEnv *env, jobject, jstring text, jint newCursorPosition)
static jboolean updateCursorPosition(JNIEnv *, jobject)
static jstring getTextAfterCursor(JNIEnv *env, jobject, jint length, jint flags)
static void reportFullscreenMode(JNIEnv *, jobject, jboolean enabled)
static jboolean endBatchEdit(JNIEnv *, jobject)
static jboolean setSelection(JNIEnv *, jobject, jint start, jint end)
static jboolean selectAll(JNIEnv *, jobject)

Definition at line 368 of file qandroidinputcontext.cpp.

Referenced by QAndroidInputContext::QAndroidInputContext().

◆ QtExtractedTextClassName

char const *const QtExtractedTextClassName = "org/qtproject/qt/android/QtExtractedText"
static

Definition at line 60 of file qandroidinputcontext.cpp.

Referenced by QAndroidInputContext::QAndroidInputContext().

◆ QtNativeInputConnectionClassName

char const *const QtNativeInputConnectionClassName = "org/qtproject/qt/android/QtNativeInputConnection"
static

Definition at line 59 of file qandroidinputcontext.cpp.

Referenced by QAndroidInputContext::QAndroidInputContext().