From adb377c89eac50f8de60c0eb363a37de3301d79d Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 26 Feb 2016 11:09:51 +0100 Subject: ibus: mark some types as movable These types are held in QVariant, and QIBusAttribute is also held in QVector. Now that they are no longer polymorphic, they can be marked as movable. Remove user-defined dtors to unlock the implicit move special member functions, which I enforce in my local tree for all Q_MOVABLE_TYPEs. Add std::move() when appending QIBusAttribute. QVector has rvalue-push_back(). Change-Id: Ibb359939d5c11b5ef1f8ceced9a051cdde452dd5 Reviewed-by: Takao Fujiwara Reviewed-by: Lars Knoll --- .../platforminputcontexts/ibus/qibustypes.cpp | 22 +--------------------- .../platforminputcontexts/ibus/qibustypes.h | 9 ++++----- 2 files changed, 5 insertions(+), 26 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/platforminputcontexts/ibus/qibustypes.cpp b/src/plugins/platforminputcontexts/ibus/qibustypes.cpp index 9d219ff8c1..9462bad335 100644 --- a/src/plugins/platforminputcontexts/ibus/qibustypes.cpp +++ b/src/plugins/platforminputcontexts/ibus/qibustypes.cpp @@ -50,10 +50,6 @@ QIBusSerializable::QIBusSerializable() { } -QIBusSerializable::~QIBusSerializable() -{ -} - void QIBusSerializable::deserializeFrom(const QDBusArgument &argument) { argument >> name; @@ -101,10 +97,6 @@ QIBusAttribute::QIBusAttribute() name = "IBusAttribute"; } -QIBusAttribute::~QIBusAttribute() -{ -} - void QIBusAttribute::serializeTo(QDBusArgument &argument) const { argument.beginStructure(); @@ -181,10 +173,6 @@ QIBusAttributeList::QIBusAttributeList() name = "IBusAttrList"; } -QIBusAttributeList::~QIBusAttributeList() -{ -} - void QIBusAttributeList::serializeTo(QDBusArgument &argument) const { argument.beginStructure(); @@ -217,7 +205,7 @@ void QIBusAttributeList::deserializeFrom(const QDBusArgument &arg) QIBusAttribute attr; var.variant().value() >> attr; - attributes.append(attr); + attributes.append(std::move(attr)); } arg.endArray(); @@ -262,10 +250,6 @@ QIBusText::QIBusText() name = "IBusText"; } -QIBusText::~QIBusText() -{ -} - void QIBusText::serializeTo(QDBusArgument &argument) const { argument.beginStructure(); @@ -314,10 +298,6 @@ QIBusEngineDesc::QIBusEngineDesc() name = "IBusEngineDesc"; } -QIBusEngineDesc::~QIBusEngineDesc() -{ -} - void QIBusEngineDesc::serializeTo(QDBusArgument &argument) const { argument.beginStructure(); diff --git a/src/plugins/platforminputcontexts/ibus/qibustypes.h b/src/plugins/platforminputcontexts/ibus/qibustypes.h index 9f2b0eb41f..217cd836fc 100644 --- a/src/plugins/platforminputcontexts/ibus/qibustypes.h +++ b/src/plugins/platforminputcontexts/ibus/qibustypes.h @@ -54,7 +54,6 @@ class QIBusSerializable { public: QIBusSerializable(); - ~QIBusSerializable(); void serializeTo(QDBusArgument &argument) const; void deserializeFrom(const QDBusArgument &argument); @@ -82,7 +81,6 @@ public: }; QIBusAttribute(); - ~QIBusAttribute(); QTextCharFormat format() const; @@ -94,12 +92,12 @@ public: quint32 start; quint32 end; }; +Q_DECLARE_TYPEINFO(QIBusAttribute, Q_MOVABLE_TYPE); class QIBusAttributeList : private QIBusSerializable { public: QIBusAttributeList(); - ~QIBusAttributeList(); QList imAttributes() const; @@ -108,12 +106,12 @@ public: QVector attributes; }; +Q_DECLARE_TYPEINFO(QIBusAttributeList, Q_MOVABLE_TYPE); class QIBusText : private QIBusSerializable { public: QIBusText(); - ~QIBusText(); void serializeTo(QDBusArgument &argument) const; void deserializeFrom(const QDBusArgument &argument); @@ -121,12 +119,12 @@ public: QString text; QIBusAttributeList attributes; }; +Q_DECLARE_TYPEINFO(QIBusText, Q_MOVABLE_TYPE); class QIBusEngineDesc : private QIBusSerializable { public: QIBusEngineDesc(); - ~QIBusEngineDesc(); void serializeTo(QDBusArgument &argument) const; void deserializeFrom(const QDBusArgument &argument); @@ -149,6 +147,7 @@ public: QString textdomain; QString iconpropkey; }; +Q_DECLARE_TYPEINFO(QIBusEngineDesc, Q_MOVABLE_TYPE); inline QDBusArgument &operator<<(QDBusArgument &argument, const QIBusAttribute &attribute) { attribute.serializeTo(argument); return argument; } -- cgit v1.2.3