2
3
4
5
6
7
8
9
12#ifndef QIBUSPROXY_H_1308831142
13#define QIBUSPROXY_H_1308831142
22#include <QDBusAbstractInterface>
23#include <QDBusPendingReply>
30
31
32class QIBusProxy:
public QDBusAbstractInterface
36 static inline const char *staticInterfaceName()
37 {
return "org.freedesktop.IBus"; }
38 static inline QString dbusInterfaceProperties()
39 {
return QStringLiteral(
"org.freedesktop.DBus.Properties"); }
42 QIBusProxy(
const QString &service,
const QString &path,
const QDBusConnection &connection, QObject *parent =
nullptr);
47 inline QDBusPendingReply<QDBusObjectPath> CreateInputContext(
const QString &name)
49 QList<QVariant> argumentList;
50 argumentList << QVariant::fromValue(name);
51 return asyncCallWithArgumentList(QLatin1String(
"CreateInputContext"), argumentList);
54 inline QDBusPendingReply<> Exit(
bool restart)
56 QList<QVariant> argumentList;
57 argumentList << QVariant::fromValue(restart);
58 return asyncCallWithArgumentList(QLatin1String(
"Exit"), argumentList);
61 inline QDBusPendingReply<QDBusVariant> Ping(
const QDBusVariant &data)
63 QList<QVariant> argumentList;
64 argumentList << QVariant::fromValue(data);
65 return asyncCallWithArgumentList(QLatin1String(
"Ping"), argumentList);
68 inline QDBusPendingReply<> RegisterComponent(
const QDBusVariant &components)
70 QList<QVariant> argumentList;
71 argumentList << QVariant::fromValue(components);
72 return asyncCallWithArgumentList(QLatin1String(
"RegisterComponent"), argumentList);
76 inline QDBusPendingCall GetProperty(
const QString method)
78 if (!
this->isValid() ||
this->service().isEmpty() ||
this->path().isEmpty())
79 return QDBusPendingCall::fromError(
this->lastError());
81 QDBusMessage msg = QDBusMessage::createMethodCall(
this->service(),
83 dbusInterfaceProperties(),
84 QStringLiteral(
"Get"));
85 msg <<
this->interface() << method;
86 return this->connection().asyncCall(msg,
this->timeout());
89#ifdef QIBUS_GET_ADDRESS
90 inline QDBusPendingCall Address()
92 return GetProperty(QStringLiteral(
"Address"));
96#ifdef QIBUS_GET_ENGINES
97 inline QDBusPendingCall Engines()
99 return GetProperty(QStringLiteral(
"Engines"));
103 inline QDBusPendingCall GlobalEngine()
105 return GetProperty(QStringLiteral(
"GlobalEngine"));
108#ifdef QIBUS_GET_ADDRESS
109 QString getAddress();
111#ifdef QIBUS_GET_ENGINES
112 QList<QIBusEngineDesc> getEngines();
114 QIBusEngineDesc getGlobalEngine();
117 void globalEngineChanged(
const QString &engine_name);
120 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.
Combined button and popup list for selecting options.
Q_LOGGING_CATEGORY(lcEventDispatcher, "qt.eventdispatcher")
static bool shouldConnectIbusPortal()
static bool checkNeedPortalSupport()
#define IBUS_CONTROL_MASK
#define IBUS_RELEASE_MASK