From 77982c482323116c59949147291fe4f8ac901f5d Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Wed, 14 May 2014 10:52:37 +0200 Subject: qscopedvaluerollback: add convenience constructor It's a common need to assign a variable to something when entering a code block, and then revert it upon exit. qscopedvaluerollback can be used for this. But as a convenience, this patch adds an extra constructor so that you can "protect" and set a variable in one go instead of using two lines. Change-Id: If4b89d3a5ba32ef2304bda058b1b6050932612ed Reviewed-by: Friedemann Kleint Reviewed-by: Thiago Macieira --- .../corelib/tools/qscopedvaluerollback/tst_qscopedvaluerollback.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/auto/corelib/tools/qscopedvaluerollback/tst_qscopedvaluerollback.cpp b/tests/auto/corelib/tools/qscopedvaluerollback/tst_qscopedvaluerollback.cpp index af82897179..86438caed6 100644 --- a/tests/auto/corelib/tools/qscopedvaluerollback/tst_qscopedvaluerollback.cpp +++ b/tests/auto/corelib/tools/qscopedvaluerollback/tst_qscopedvaluerollback.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the test suite of the Qt Toolkit. @@ -67,14 +67,17 @@ void tst_QScopedValueRollback::leavingScope() { int i = 0; bool b = false; + bool b2 = false; QString s("This is useful"); //test rollback on going out of scope { QScopedValueRollback ri(i); QScopedValueRollback rb(b); + QScopedValueRollback rb2(b2, true); QScopedValueRollback rs(s); QCOMPARE(b, false); + QCOMPARE(b2, true); QCOMPARE(i, 0); QCOMPARE(s, QString("This is useful")); b = true; @@ -85,6 +88,7 @@ void tst_QScopedValueRollback::leavingScope() QCOMPARE(s, QString("Useless")); } QCOMPARE(b, false); + QCOMPARE(b2, false); QCOMPARE(i, 0); QCOMPARE(s, QString("This is useful")); } -- cgit v1.2.3