IBus: Support a property ClientCommitPreedit
IBus added the ClientCommitPreedit property to handle preedit in case. If this writable property is set, ibus_engine tells the client whether current preeditText should be committed or not in the client side when focusOutEvent. (Qt's old behavior is always committing in the client side.) Fixes: QTBUG-109576 Fixes: QTBUG-58005 Pick-to: 6.6 6.5 Change-Id: I6bb78921ce04cdd3197cba9e2fb00376d5e0ac8b Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit 84cf0e2be54d9ad183db063fd429b792c67edd18) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
023dd3adb1
commit
c4dfea83b6
@ -2,6 +2,12 @@
|
||||
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||
<node>
|
||||
<interface name="org.freedesktop.IBus.InputContext">
|
||||
<property name="ClientCommitPreedit" type="(b)" access="readwrite">
|
||||
<annotation name="org.qtproject.QtDBus.QtTypeName" value="QIBusPropTypeClientCommitPreedit"/>
|
||||
</property>
|
||||
<property name='ContentType' type='(uu)' access='readwrite'>
|
||||
<annotation name="org.qtproject.QtDBus.QtTypeName" value="QIBusPropTypeContentType"/>
|
||||
</property>
|
||||
<method name="ProcessKeyEvent">
|
||||
<arg name="keyval" direction="in" type="u"/>
|
||||
<arg name="keycode" direction="in" type="u"/>
|
||||
@ -62,6 +68,12 @@
|
||||
<arg name="cursor_pos" type="u"/>
|
||||
<arg name="visible" type="b"/>
|
||||
</signal>
|
||||
<signal name="UpdatePreeditTextWithMode">
|
||||
<arg name="text" type="v"/>
|
||||
<arg name="cursor_pos" type="u"/>
|
||||
<arg name="visible" type="b"/>
|
||||
<arg name="mode" type="u"/>
|
||||
</signal>
|
||||
<signal name="ShowPreeditText"/>
|
||||
<signal name="HidePreeditText"/>
|
||||
<signal name="UpdateAuxiliaryText">
|
||||
|
@ -28,6 +28,8 @@ QIBusPlatformInputContext *QIbusPlatformInputContextPlugin::create(const QString
|
||||
qDBusRegisterMetaType<QIBusAttribute>();
|
||||
qDBusRegisterMetaType<QIBusAttributeList>();
|
||||
qDBusRegisterMetaType<QIBusText>();
|
||||
qDBusRegisterMetaType<QIBusPropTypeClientCommitPreedit>();
|
||||
qDBusRegisterMetaType<QIBusPropTypeContentType>();
|
||||
return new QIBusPlatformInputContext;
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
* This file was generated by qdbusxml2cpp version 0.8
|
||||
* Command line was: qdbusxml2cpp -N -p qibusinputcontextproxy -c QIBusInputContextProxy interfaces/org.freedesktop.IBus.InputContext.xml
|
||||
*
|
||||
* qdbusxml2cpp is Copyright (C) 2015 The Qt Company Ltd.
|
||||
* qdbusxml2cpp is Copyright (C) 2023 The Qt Company Ltd and other contributors.
|
||||
*
|
||||
* This is an auto-generated file.
|
||||
* This file may have been hand-edited. Look for HAND-EDIT comments
|
||||
@ -24,4 +24,3 @@ QIBusInputContextProxy::~QIBusInputContextProxy()
|
||||
{
|
||||
}
|
||||
|
||||
#include "moc_qibusinputcontextproxy.cpp"
|
||||
|
@ -2,25 +2,26 @@
|
||||
* This file was generated by qdbusxml2cpp version 0.8
|
||||
* Command line was: qdbusxml2cpp -N -p qibusinputcontextproxy -c QIBusInputContextProxy interfaces/org.freedesktop.IBus.InputContext.xml
|
||||
*
|
||||
* qdbusxml2cpp is Copyright (C) 2015 The Qt Company Ltd.
|
||||
* qdbusxml2cpp is Copyright (C) 2023 The Qt Company Ltd and other contributors.
|
||||
*
|
||||
* This is an auto-generated file.
|
||||
* Do not edit! All changes made to it will be lost.
|
||||
*/
|
||||
|
||||
#ifndef QIBUSINPUTCONTEXTPROXY_H_1394889529
|
||||
#define QIBUSINPUTCONTEXTPROXY_H_1394889529
|
||||
#ifndef QIBUSINPUTCONTEXTPROXY_H
|
||||
#define QIBUSINPUTCONTEXTPROXY_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QByteArray>
|
||||
#include <QList>
|
||||
#include <QMap>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <QVariant>
|
||||
#include <QDBusAbstractInterface>
|
||||
#include <QDBusPendingReply>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtDBus/QtDBus>
|
||||
|
||||
// Added for QIBusPropTypeClientCommitPreedit and QIBusPropTypeContentType
|
||||
#include "qibustypes.h"
|
||||
|
||||
/*
|
||||
* Proxy class for interface org.freedesktop.IBus.InputContext
|
||||
@ -37,102 +38,114 @@ public:
|
||||
|
||||
~QIBusInputContextProxy();
|
||||
|
||||
Q_PROPERTY(QIBusPropTypeClientCommitPreedit ClientCommitPreedit READ clientCommitPreedit WRITE setClientCommitPreedit)
|
||||
inline QIBusPropTypeClientCommitPreedit clientCommitPreedit() const
|
||||
{ return qvariant_cast< QIBusPropTypeClientCommitPreedit >(property("ClientCommitPreedit")); }
|
||||
inline void setClientCommitPreedit(const QIBusPropTypeClientCommitPreedit &value)
|
||||
{ setProperty("ClientCommitPreedit", QVariant::fromValue(value)); }
|
||||
|
||||
Q_PROPERTY(QIBusPropTypeContentType ContentType READ contentType WRITE setContentType)
|
||||
inline QIBusPropTypeContentType contentType() const
|
||||
{ return qvariant_cast< QIBusPropTypeContentType >(property("ContentType")); }
|
||||
inline void setContentType(const QIBusPropTypeContentType &value)
|
||||
{ setProperty("ContentType", QVariant::fromValue(value)); }
|
||||
|
||||
public Q_SLOTS: // METHODS
|
||||
inline QDBusPendingReply<> Destroy()
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
return asyncCallWithArgumentList(QLatin1String("Destroy"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("Destroy"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> Disable()
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
return asyncCallWithArgumentList(QLatin1String("Disable"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("Disable"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> Enable()
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
return asyncCallWithArgumentList(QLatin1String("Enable"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("Enable"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> FocusIn()
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
return asyncCallWithArgumentList(QLatin1String("FocusIn"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("FocusIn"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> FocusOut()
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
return asyncCallWithArgumentList(QLatin1String("FocusOut"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("FocusOut"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<QDBusVariant> GetEngine()
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
return asyncCallWithArgumentList(QLatin1String("GetEngine"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("GetEngine"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<bool> IsEnabled()
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
return asyncCallWithArgumentList(QLatin1String("IsEnabled"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("IsEnabled"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<bool> ProcessKeyEvent(uint keyval, uint keycode, uint state)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(keyval) << QVariant::fromValue(keycode) << QVariant::fromValue(state);
|
||||
return asyncCallWithArgumentList(QLatin1String("ProcessKeyEvent"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("ProcessKeyEvent"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> PropertyActivate(const QString &name, int state)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(name) << QVariant::fromValue(state);
|
||||
return asyncCallWithArgumentList(QLatin1String("PropertyActivate"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("PropertyActivate"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> Reset()
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
return asyncCallWithArgumentList(QLatin1String("Reset"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("Reset"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> SetCapabilities(uint caps)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(caps);
|
||||
return asyncCallWithArgumentList(QLatin1String("SetCapabilities"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("SetCapabilities"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> SetCursorLocation(int x, int y, int w, int h)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(x) << QVariant::fromValue(y) << QVariant::fromValue(w) << QVariant::fromValue(h);
|
||||
return asyncCallWithArgumentList(QLatin1String("SetCursorLocation"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("SetCursorLocation"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> SetCursorLocationRelative(int x, int y, int w, int h)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(x) << QVariant::fromValue(y) << QVariant::fromValue(w) << QVariant::fromValue(h);
|
||||
return asyncCallWithArgumentList(QLatin1String("SetCursorLocationRelative"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("SetCursorLocationRelative"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> SetEngine(const QString &name)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(name);
|
||||
return asyncCallWithArgumentList(QLatin1String("SetEngine"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("SetEngine"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> SetSurroundingText(const QDBusVariant &text, uint cursor_pos, uint anchor_pos)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(text) << QVariant::fromValue(cursor_pos) << QVariant::fromValue(anchor_pos);
|
||||
return asyncCallWithArgumentList(QLatin1String("SetSurroundingText"), argumentList);
|
||||
return asyncCallWithArgumentList(QStringLiteral("SetSurroundingText"), argumentList);
|
||||
}
|
||||
|
||||
Q_SIGNALS: // SIGNALS
|
||||
@ -156,6 +169,7 @@ Q_SIGNALS: // SIGNALS
|
||||
void UpdateAuxiliaryText(const QDBusVariant &text, bool visible);
|
||||
void UpdateLookupTable(const QDBusVariant &table, bool visible);
|
||||
void UpdatePreeditText(const QDBusVariant &text, uint cursor_pos, bool visible);
|
||||
void UpdatePreeditTextWithMode(const QDBusVariant &text, uint cursor_pos, bool visible, uint mode);
|
||||
void UpdateProperty(const QDBusVariant &prop);
|
||||
};
|
||||
|
||||
|
@ -51,6 +51,13 @@ class QIBusPlatformInputContextPrivate
|
||||
{
|
||||
Q_DISABLE_COPY_MOVE(QIBusPlatformInputContextPrivate)
|
||||
public:
|
||||
// This enum might be synced with IBusPreeditFocusMode
|
||||
// in ibustypes.h of IBUS project
|
||||
enum PreeditFocusMode {
|
||||
PREEDIT_CLEAR = 0,
|
||||
PREEDIT_COMMIT = 1,
|
||||
};
|
||||
|
||||
QIBusPlatformInputContextPrivate();
|
||||
~QIBusPlatformInputContextPrivate()
|
||||
{
|
||||
@ -80,6 +87,7 @@ public:
|
||||
QList<QInputMethodEvent::Attribute> attributes;
|
||||
bool needsSurroundingText;
|
||||
QLocale locale;
|
||||
PreeditFocusMode preeditFocusMode = PREEDIT_COMMIT; // for backward compatibility
|
||||
};
|
||||
|
||||
|
||||
@ -117,6 +125,7 @@ QIBusPlatformInputContext::QIBusPlatformInputContext ()
|
||||
if (ok && enableSync == 1)
|
||||
m_eventFilterUseSynchronousMode = true;
|
||||
}
|
||||
d->context->setClientCommitPreedit(QIBusPropTypeClientCommitPreedit(true));
|
||||
}
|
||||
|
||||
QIBusPlatformInputContext::~QIBusPlatformInputContext (void)
|
||||
@ -171,10 +180,18 @@ void QIBusPlatformInputContext::commit()
|
||||
return;
|
||||
}
|
||||
|
||||
if (!d->predit.isEmpty()) {
|
||||
QInputMethodEvent event;
|
||||
event.setCommitString(d->predit);
|
||||
QCoreApplication::sendEvent(input, &event);
|
||||
if (d->preeditFocusMode == QIBusPlatformInputContextPrivate::PREEDIT_COMMIT) {
|
||||
if (!d->predit.isEmpty()) {
|
||||
QInputMethodEvent event;
|
||||
event.setCommitString(d->predit);
|
||||
QCoreApplication::sendEvent(input, &event);
|
||||
}
|
||||
} else {
|
||||
if (!d->predit.isEmpty()) {
|
||||
// Clear the existing preedit
|
||||
QInputMethodEvent event;
|
||||
QCoreApplication::sendEvent(input, &event);
|
||||
}
|
||||
}
|
||||
|
||||
d->context->Reset();
|
||||
@ -318,6 +335,15 @@ void QIBusPlatformInputContext::updatePreeditText(const QDBusVariant &text, uint
|
||||
d->predit = t.text;
|
||||
}
|
||||
|
||||
void QIBusPlatformInputContext::updatePreeditTextWithMode(const QDBusVariant &text, uint cursorPos, bool visible, uint mode)
|
||||
{
|
||||
updatePreeditText(text, cursorPos, visible);
|
||||
if (mode > 0)
|
||||
d->preeditFocusMode = QIBusPlatformInputContextPrivate::PreeditFocusMode::PREEDIT_COMMIT;
|
||||
else
|
||||
d->preeditFocusMode = QIBusPlatformInputContextPrivate::PreeditFocusMode::PREEDIT_CLEAR;
|
||||
}
|
||||
|
||||
void QIBusPlatformInputContext::forwardKeyEvent(uint keyval, uint keycode, uint state)
|
||||
{
|
||||
if (!qApp)
|
||||
@ -587,6 +613,7 @@ void QIBusPlatformInputContext::connectToContextSignals()
|
||||
if (d->context) {
|
||||
connect(d->context.get(), SIGNAL(CommitText(QDBusVariant)), SLOT(commitText(QDBusVariant)));
|
||||
connect(d->context.get(), SIGNAL(UpdatePreeditText(QDBusVariant,uint,bool)), this, SLOT(updatePreeditText(QDBusVariant,uint,bool)));
|
||||
connect(d->context.get(), SIGNAL(UpdatePreeditTextWithMode(QDBusVariant,uint,bool,uint)), this, SLOT(updatePreeditTextWithMode(QDBusVariant,uint,bool,uint)));
|
||||
connect(d->context.get(), SIGNAL(ForwardKeyEvent(uint,uint,uint)), this, SLOT(forwardKeyEvent(uint,uint,uint)));
|
||||
connect(d->context.get(), SIGNAL(DeleteSurroundingText(int,uint)), this, SLOT(deleteSurroundingText(int,uint)));
|
||||
connect(d->context.get(), SIGNAL(RequireSurroundingText()), this, SLOT(surroundingTextRequired()));
|
||||
|
@ -14,6 +14,8 @@
|
||||
#include <QTimer>
|
||||
#include <QWindow>
|
||||
|
||||
#include "qibustypes.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class QIBusPlatformInputContextPrivate;
|
||||
@ -66,6 +68,7 @@ public:
|
||||
public Q_SLOTS:
|
||||
void commitText(const QDBusVariant &text);
|
||||
void updatePreeditText(const QDBusVariant &text, uint cursor_pos, bool visible);
|
||||
void updatePreeditTextWithMode(const QDBusVariant &text, uint cursor_pos, bool visible, uint mode);
|
||||
void forwardKeyEvent(uint keyval, uint keycode, uint state);
|
||||
void cursorRectChanged();
|
||||
void deleteSurroundingText(int offset, uint n_chars);
|
||||
|
@ -2,7 +2,7 @@
|
||||
* This file was generated by qdbusxml2cpp version 0.8
|
||||
* Command line was: qdbusxml2cpp -N -p qibusproxyportal -c QIBusProxyPortal interfaces/org.freedesktop.IBus.Portal.xml
|
||||
*
|
||||
* qdbusxml2cpp is Copyright (C) 2017 The Qt Company Ltd.
|
||||
* qdbusxml2cpp is Copyright (C) 2023 The Qt Company Ltd and other contributors.
|
||||
*
|
||||
* This is an auto-generated file.
|
||||
* This file may have been hand-edited. Look for HAND-EDIT comments
|
||||
@ -24,4 +24,3 @@ QIBusProxyPortal::~QIBusProxyPortal()
|
||||
{
|
||||
}
|
||||
|
||||
#include "moc_qibusproxyportal.cpp"
|
||||
|
@ -2,7 +2,7 @@
|
||||
* This file was generated by qdbusxml2cpp version 0.8
|
||||
* Command line was: qdbusxml2cpp -N -p qibusproxyportal -c QIBusProxyPortal interfaces/org.freedesktop.IBus.Portal.xml
|
||||
*
|
||||
* qdbusxml2cpp is Copyright (C) 2017 The Qt Company Ltd.
|
||||
* qdbusxml2cpp is Copyright (C) 2023 The Qt Company Ltd and other contributors.
|
||||
*
|
||||
* This is an auto-generated file.
|
||||
* Do not edit! All changes made to it will be lost.
|
||||
@ -11,15 +11,14 @@
|
||||
#ifndef QIBUSPROXYPORTAL_H
|
||||
#define QIBUSPROXYPORTAL_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QByteArray>
|
||||
#include <QList>
|
||||
#include <QMap>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <QVariant>
|
||||
#include <QDBusAbstractInterface>
|
||||
#include <QDBusPendingReply>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtDBus/QtDBus>
|
||||
|
||||
/*
|
||||
* Proxy class for interface org.freedesktop.IBus.Portal
|
||||
|
@ -322,4 +322,44 @@ newest:
|
||||
argument.endStructure();
|
||||
}
|
||||
|
||||
QIBusPropTypeClientCommitPreedit::QIBusPropTypeClientCommitPreedit(bool inClientCommitPreedit)
|
||||
: clientCommitPreedit(inClientCommitPreedit)
|
||||
{
|
||||
}
|
||||
|
||||
void QIBusPropTypeClientCommitPreedit::serializeTo(QDBusArgument &argument) const
|
||||
{
|
||||
argument.beginStructure();
|
||||
argument << clientCommitPreedit;
|
||||
argument.endStructure();
|
||||
}
|
||||
|
||||
void QIBusPropTypeClientCommitPreedit::deserializeFrom(const QDBusArgument &argument)
|
||||
{
|
||||
argument.beginStructure();
|
||||
argument >> clientCommitPreedit;
|
||||
argument.endStructure();
|
||||
}
|
||||
|
||||
QIBusPropTypeContentType::QIBusPropTypeContentType(unsigned int inPurpose, unsigned int inHints)
|
||||
: purpose(inPurpose)
|
||||
, hints(inHints)
|
||||
{
|
||||
}
|
||||
|
||||
void QIBusPropTypeContentType::serializeTo(QDBusArgument &argument) const
|
||||
{
|
||||
argument.beginStructure();
|
||||
argument << purpose << hints;
|
||||
argument.endStructure();
|
||||
}
|
||||
|
||||
void QIBusPropTypeContentType::deserializeFrom(const QDBusArgument &argument)
|
||||
{
|
||||
argument.beginStructure();
|
||||
argument >> purpose;
|
||||
argument >> hints;
|
||||
argument.endStructure();
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -133,6 +133,44 @@ inline QDBusArgument &operator<<(QDBusArgument &argument, const QIBusEngineDesc
|
||||
inline const QDBusArgument &operator>>(const QDBusArgument &argument, QIBusEngineDesc &desc)
|
||||
{ desc.deserializeFrom(argument); return argument; }
|
||||
|
||||
class QIBusPropTypeClientCommitPreedit
|
||||
{
|
||||
public:
|
||||
QIBusPropTypeClientCommitPreedit() {};
|
||||
|
||||
QIBusPropTypeClientCommitPreedit(bool inClientCommitPreedit);
|
||||
|
||||
void serializeTo(QDBusArgument &argument) const;
|
||||
void deserializeFrom(const QDBusArgument &argument);
|
||||
|
||||
bool clientCommitPreedit;
|
||||
};
|
||||
inline QDBusArgument &operator<<(QDBusArgument &argument, const QIBusPropTypeClientCommitPreedit &data)
|
||||
{ data.serializeTo(argument); return argument; }
|
||||
inline const QDBusArgument &operator>>(const QDBusArgument &argument, QIBusPropTypeClientCommitPreedit &data)
|
||||
{ data.deserializeFrom(argument); return argument; }
|
||||
|
||||
class QIBusPropTypeContentType
|
||||
{
|
||||
public:
|
||||
QIBusPropTypeContentType() {};
|
||||
|
||||
QIBusPropTypeContentType(unsigned int inPurpose, unsigned int inHint);
|
||||
|
||||
void serializeTo(QDBusArgument &argument) const;
|
||||
void deserializeFrom(const QDBusArgument &argument);
|
||||
|
||||
unsigned int purpose;
|
||||
unsigned int hints;
|
||||
};
|
||||
inline QDBusArgument &operator<<(QDBusArgument &argument, const QIBusPropTypeContentType &data)
|
||||
{ data.serializeTo(argument); return argument; }
|
||||
inline const QDBusArgument &operator>>(const QDBusArgument &argument, QIBusPropTypeContentType &data)
|
||||
{ data.deserializeFrom(argument); return argument; }
|
||||
|
||||
Q_DECLARE_TYPEINFO(QIBusPropTypeClientCommitPreedit, Q_RELOCATABLE_TYPE);
|
||||
Q_DECLARE_TYPEINFO(QIBusPropTypeContentType, Q_RELOCATABLE_TYPE);
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
Q_DECLARE_METATYPE(QIBusAttribute)
|
||||
@ -140,4 +178,6 @@ Q_DECLARE_METATYPE(QIBusAttributeList)
|
||||
Q_DECLARE_METATYPE(QIBusText)
|
||||
Q_DECLARE_METATYPE(QIBusEngineDesc)
|
||||
|
||||
Q_DECLARE_METATYPE(QIBusPropTypeClientCommitPreedit)
|
||||
Q_DECLARE_METATYPE(QIBusPropTypeContentType)
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user