2
3
4
5
6
7
8
9
11#ifndef QIBUSPROXY_H_1308831142
12#define QIBUSPROXY_H_1308831142
21#include <QDBusAbstractInterface>
22#include <QDBusPendingReply>
27
28
29class QIBusProxy:
public QDBusAbstractInterface
33 static inline const char *staticInterfaceName()
34 {
return "org.freedesktop.IBus"; }
35 static inline QString dbusInterfaceProperties()
36 {
return QStringLiteral(
"org.freedesktop.DBus.Properties"); }
39 QIBusProxy(
const QString &service,
const QString &path,
const QDBusConnection &connection, QObject *parent =
nullptr);
44 inline QDBusPendingReply<QDBusObjectPath> CreateInputContext(
const QString &name)
46 QList<QVariant> argumentList;
47 argumentList << QVariant::fromValue(name);
48 return asyncCallWithArgumentList(QLatin1String(
"CreateInputContext"), argumentList);
51 inline QDBusPendingReply<> Exit(
bool restart)
53 QList<QVariant> argumentList;
54 argumentList << QVariant::fromValue(restart);
55 return asyncCallWithArgumentList(QLatin1String(
"Exit"), argumentList);
58 inline QDBusPendingReply<QDBusVariant> Ping(
const QDBusVariant &data)
60 QList<QVariant> argumentList;
61 argumentList << QVariant::fromValue(data);
62 return asyncCallWithArgumentList(QLatin1String(
"Ping"), argumentList);
65 inline QDBusPendingReply<> RegisterComponent(
const QDBusVariant &components)
67 QList<QVariant> argumentList;
68 argumentList << QVariant::fromValue(components);
69 return asyncCallWithArgumentList(QLatin1String(
"RegisterComponent"), argumentList);
73 inline QDBusPendingCall GetProperty(
const QString method)
75 if (!
this->isValid() ||
this->service().isEmpty() ||
this->path().isEmpty())
76 return QDBusPendingCall::fromError(
this->lastError());
78 QDBusMessage msg = QDBusMessage::createMethodCall(
this->service(),
80 dbusInterfaceProperties(),
81 QStringLiteral(
"Get"));
82 msg <<
this->interface() << method;
83 return this->connection().asyncCall(msg,
this->timeout());
86#ifdef QIBUS_GET_ADDRESS
87 inline QDBusPendingCall Address()
89 return GetProperty(QStringLiteral(
"Address"));
93#ifdef QIBUS_GET_ENGINES
94 inline QDBusPendingCall Engines()
96 return GetProperty(QStringLiteral(
"Engines"));
100 inline QDBusPendingCall GlobalEngine()
102 return GetProperty(QStringLiteral(
"GlobalEngine"));
105#ifdef QIBUS_GET_ADDRESS
106 QString getAddress();
108#ifdef QIBUS_GET_ENGINES
109 QList<QIBusEngineDesc> getEngines();
111 QIBusEngineDesc getGlobalEngine();
114 void globalEngineChanged(
const QString &engine_name);
117 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