QEasingCurve: implement move-assignment operator

Implemented as in QPen etc.

Change-Id: I65b43c6ec7308ca4b44f614594c15c41ab2f89f9
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Marc Mutz 2012-02-18 08:52:51 +01:00 committed by Qt by Nokia
parent 5d6b2d5e34
commit 6a6178702e
2 changed files with 23 additions and 0 deletions

View File

@ -83,6 +83,10 @@ public:
~QEasingCurve();
QEasingCurve &operator=(const QEasingCurve &other);
#ifdef Q_COMPILER_RVALUE_REFS
QEasingCurve &operator=(QEasingCurve &&other)
{ qSwap(d_ptr, other.d_ptr); return *this; }
#endif
inline void swap(QEasingCurve &other) { qSwap(d_ptr, other.d_ptr); }

View File

@ -43,6 +43,10 @@
#include <qeasingcurve.h>
#ifdef Q_COMPILER_RVALUE_REFS // cpp11() slot
# include <utility> // for std::move()
#endif
class tst_QEasingCurve : public QObject
{
Q_OBJECT
@ -61,6 +65,7 @@ private slots:
void tcbSpline();
void testCbrtDouble();
void testCbrtFloat();
void cpp11();
};
void tst_QEasingCurve::type()
@ -770,5 +775,19 @@ void tst_QEasingCurve::testCbrtFloat()
}
}
void tst_QEasingCurve::cpp11()
{
#ifdef Q_COMPILER_RVALUE_REFS
{
QEasingCurve ec( QEasingCurve::InOutBack );
QEasingCurve copy;
const QEasingCurve::Type type = copy.type();
copy = std::move(ec); // move assignment op
QCOMPARE( copy.type(), QEasingCurve::InOutBack );
QCOMPARE( ec.type(), type );
}
#endif
}
QTEST_MAIN(tst_QEasingCurve)
#include "tst_qeasingcurve.moc"