2
3
4
5
6
7
8
9
12#ifndef QIBUSPROXY_H_1308831142
13#define QIBUSPROXY_H_1308831142
22#include <QDBusAbstractInterface>
23#include <QDBusPendingReply>
28
29
30class QIBusProxy:
public QDBusAbstractInterface
34 static inline const char *staticInterfaceName()
35 {
return "org.freedesktop.IBus"; }
36 static inline QString dbusInterfaceProperties()
37 {
return QStringLiteral(
"org.freedesktop.DBus.Properties"); }
40 QIBusProxy(
const QString &service,
const QString &path,
const QDBusConnection &connection, QObject *parent =
nullptr);
45 inline QDBusPendingReply<QDBusObjectPath> CreateInputContext(
const QString &name)
47 QList<QVariant> argumentList;
48 argumentList << QVariant::fromValue(name);
49 return asyncCallWithArgumentList(QLatin1String(
"CreateInputContext"), argumentList);
52 inline QDBusPendingReply<> Exit(
bool restart)
54 QList<QVariant> argumentList;
55 argumentList << QVariant::fromValue(restart);
56 return asyncCallWithArgumentList(QLatin1String(
"Exit"), argumentList);
59 inline QDBusPendingReply<QDBusVariant> Ping(
const QDBusVariant &data)
61 QList<QVariant> argumentList;
62 argumentList << QVariant::fromValue(data);
63 return asyncCallWithArgumentList(QLatin1String(
"Ping"), argumentList);
66 inline QDBusPendingReply<> RegisterComponent(
const QDBusVariant &components)
68 QList<QVariant> argumentList;
69 argumentList << QVariant::fromValue(components);
70 return asyncCallWithArgumentList(QLatin1String(
"RegisterComponent"), argumentList);
74 inline QDBusPendingCall GetProperty(
const QString method)
76 if (!
this->isValid() ||
this->service().isEmpty() ||
this->path().isEmpty())
77 return QDBusPendingCall::fromError(
this->lastError());
79 QDBusMessage msg = QDBusMessage::createMethodCall(
this->service(),
81 dbusInterfaceProperties(),
82 QStringLiteral(
"Get"));
83 msg <<
this->interface() << method;
84 return this->connection().asyncCall(msg,
this->timeout());
87#ifdef QIBUS_GET_ADDRESS
88 inline QDBusPendingCall Address()
90 return GetProperty(QStringLiteral(
"Address"));
94#ifdef QIBUS_GET_ENGINES
95 inline QDBusPendingCall Engines()
97 return GetProperty(QStringLiteral(
"Engines"));
101 inline QDBusPendingCall GlobalEngine()
103 return GetProperty(QStringLiteral(
"GlobalEngine"));
106#ifdef QIBUS_GET_ADDRESS
107 QString getAddress();
109#ifdef QIBUS_GET_ENGINES
110 QList<QIBusEngineDesc> getEngines();
112 QIBusEngineDesc getGlobalEngine();
115 void globalEngineChanged(
const QString &engine_name);
118 void GlobalEngineChanged(
const QString &engine_name);
bool needsSurroundingText
std::unique_ptr< QIBusInputContextProxy > context
QIBusPlatformInputContextPrivate()
std::unique_ptr< QIBusProxy > bus
~QIBusPlatformInputContextPrivate()
PreeditFocusMode preeditFocusMode
QList< QInputMethodEvent::Attribute > attributes
static QString getSocketPath()
QDBusServiceWatcher serviceWatcher
std::unique_ptr< QIBusProxyPortal > portalBus
void invokeAction(QInputMethod::Action a, int x) override
Called when the word currently being composed in the input item is tapped by the user.
void busUnregistered(const QString &str)
bool filterEvent(const QEvent *event) override
This function can be reimplemented to filter input events.
void globalEngineChanged(const QString &engine_name)
void filterEventFinished(QDBusPendingCallWatcher *call)
void update(Qt::InputMethodQueries) override
Notification on editor updates.
bool hasCapability(Capability capability) const override
Returns whether the implementation supports capability.
void socketChanged(const QString &str)
QLocale locale() const override
bool isValid() const override
Returns input context validity.
void setFocusObject(QObject *object) override
This virtual method gets called to notify updated focus to object.
~QIBusPlatformInputContext()
void surroundingTextRequired()
void reset() override
Method to be called when input method needs to be reset.
void busRegistered(const QString &str)
The QKeyEvent class describes a key event.
Q_LOGGING_CATEGORY(lcEventDispatcher, "qt.eventdispatcher")
static bool shouldConnectIbusPortal()
static bool checkNeedPortalSupport()
#define IBUS_CONTROL_MASK
#define IBUS_RELEASE_MASK