35void QIBusSerializable::serializeTo(QDBusArgument &argument)
const
39 argument.beginMap(qMetaTypeId<QString>(), qMetaTypeId<QDBusVariant>());
41 for (
auto i = attachments.begin(), end = attachments.end(); i != end; ++i) {
42 argument.beginMapEntry();
45 QDBusVariant variant(i.value().asVariant());
48 argument.endMapEntry();
93QTextCharFormat QIBusAttribute::format()
const
100 QTextCharFormat::UnderlineStyle style = QTextCharFormat::NoUnderline;
105 case UnderlineSingle:
106 style = QTextCharFormat::SingleUnderline;
108 case UnderlineDouble:
109 style = QTextCharFormat::DashUnderline;
112 style = QTextCharFormat::DashDotLine;
115 style = QTextCharFormat::WaveUnderline;
116 fmt.setUnderlineColor(Qt::red);
120 fmt.setUnderlineStyle(style);
124 fmt.setForeground(QColor(value));
127 fmt.setBackground(QColor(value));
138void QIBusAttributeList::serializeTo(QDBusArgument &argument)
const
140 argument.beginStructure();
142 QIBusSerializable::serializeTo(argument);
144 argument.beginArray(qMetaTypeId<QDBusVariant>());
145 for (
int i = 0; i < attributes.size(); ++i) {
147 variant.setValue(attributes.at(i));
148 argument << QDBusVariant (variant);
152 argument.endStructure();
155void QIBusAttributeList::deserializeFrom(
const QDBusArgument &arg)
157 qCDebug(qtQpaInputMethodsSerialize) <<
"QIBusAttributeList::fromDBusArgument()" << arg.currentSignature();
159 arg.beginStructure();
161 QIBusSerializable::deserializeFrom(arg);
164 while (!arg.atEnd()) {
169 qvariant_cast<QDBusArgument>(var.variant()) >> attr;
170 attributes.append(std::move(attr));
177QList<QInputMethodEvent::Attribute> QIBusAttributeList::imAttributes()
const
179 QHash<std::pair<
int,
int>, QTextCharFormat> rangeAttrs;
180 const int numAttributes = attributes.size();
183 for (
int i = 0; i < numAttributes; ++i) {
184 const QIBusAttribute &attr = attributes.at(i);
185 const QTextCharFormat &format = attr.format();
187 if (format.isValid()) {
188 const std::pair<
int,
int> range(attr.start, attr.end);
189 rangeAttrs[range].merge(format);
194 QList<QInputMethodEvent::Attribute> imAttrs;
195 imAttrs.reserve(numAttributes);
197 for (
int i = 0; i < numAttributes; ++i) {
198 const QIBusAttribute &attr = attributes.at(i);
199 const QTextFormat &format = attr.format();
201 imAttrs += QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat,
203 attr.end - attr.start,
204 format.isValid() ? rangeAttrs[std::pair<
int,
int>(attr.start, attr.end)] : format);
225void QIBusText::deserializeFrom(
const QDBusArgument &argument)
227 qCDebug(qtQpaInputMethodsSerialize) <<
"QIBusText::fromDBusArgument()" << argument.currentSignature();
229 argument.beginStructure();
231 QIBusSerializable::deserializeFrom(argument);
234 QDBusVariant variant;
236 qvariant_cast<QDBusArgument>(variant.variant()) >> attributes;
238 argument.endStructure();
247void QIBusEngineDesc::serializeTo(QDBusArgument &argument)
const
249 argument.beginStructure();
251 QIBusSerializable::serializeTo(argument);
253 argument << engine_name;
254 argument << longname;
255 argument << description;
256 argument << language;
265 argument << layout_variant;
266 argument << layout_option;
268 argument << textdomain;
269 argument << iconpropkey;
271 argument.endStructure();
274void QIBusEngineDesc::deserializeFrom(
const QDBusArgument &argument)
276 qCDebug(qtQpaInputMethodsSerialize) <<
"QIBusEngineDesc::fromDBusArgument()" << argument.currentSignature();
277 argument.beginStructure();
279 QIBusSerializable::deserializeFrom(argument);
281 argument >> engine_name;
282 argument >> longname;
283 argument >> description;
284 argument >> language;
295 if (argument.currentSignature() ==
"")
297 argument >> layout_variant;
298 argument >> layout_option;
301 if (argument.currentSignature() ==
"")
304 if (argument.currentSignature() ==
"")
306 argument >> textdomain;
307 if (argument.currentSignature() ==
"")
309 argument >> iconpropkey;
313 layout_variant.clear();
314 layout_option.clear();
323 argument.endStructure();