[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdevplatform/veritas
From: Manuel Breugelmans <mbr.nxi () gmail ! com>
Date: 2009-01-03 18:03:43
Message-ID: 1231005823.374871.26976.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 905114 by mbreugel:
Fix a defect that would wrongly restore check-state for sub-tests after a reload.
M +1 -1 internal/selectionstore.cpp
M +5 -0 internal/test_p.cpp
M +2 -0 internal/test_p.h
M +38 -1 tests/selectionstoretest.cpp
M +1 -0 tests/selectionstoretest.h
--- trunk/KDE/kdevplatform/veritas/internal/selectionstore.cpp #905113:905114
@@ -48,7 +48,7 @@
Q_ASSERT(m_store);
kDebug() << t->name() << m_store->wasDeselected(t);
if (m_store->wasDeselected(t)) {
- t->internal()->unCheck();
+ t->internal()->unCheckNonRecursive();
}
}
SelectionStore* m_store;
--- trunk/KDE/kdevplatform/veritas/internal/test_p.cpp #905113:905114
@@ -81,6 +81,11 @@
}
}
+void Test::Internal::unCheckNonRecursive()
+{
+ isChecked_ = false;
+}
+
void Test::Internal::unCheck()
{
isChecked_ = false;
--- trunk/KDE/kdevplatform/veritas/internal/test_p.h #905113:905114
@@ -53,6 +53,8 @@
void check();
/*! Recursively lift check state */
void unCheck();
+ /*! Uncheck only this test, not it's children */
+ void unCheckNonRecursive();
bool isRunning() const;
void setIsRunning(bool);
--- trunk/KDE/kdevplatform/veritas/tests/selectionstoretest.cpp #905113:905114
@@ -123,6 +123,11 @@
void SelectionStoreTest::saveRecursive()
{
+ /* child1 checked
+ * child2 not checked
+ * - child21 not checked
+ */
+
Test* child1 = new Test("test2", m_root);
Test* child2 = new Test("test3", m_root);
Test* child21 = new Test("test21", child2);
@@ -188,7 +193,7 @@
KVERIFY(child1->internal()->isChecked());
KVERIFY(!child2->internal()->isChecked());
KVERIFY(!child21->internal()->isChecked());
- KVERIFY(!child22->internal()->isChecked());
+ KVERIFY(child22->internal()->isChecked()); // newly added test, so checked
KVERIFY(child3->internal()->isChecked());
}
@@ -213,5 +218,37 @@
delete root2;
}
+void SelectionStoreTest::selectedChildDeselectedParent()
+{
+ /* parent deselected
+ * - child selected
+ *
+ * First serialize the selection state of this test-tree
+ * then restore it. Parent should be deselected & child selected.
+ */
+ Test* parent = new Test("parent", m_root);
+ m_root->addChild(parent);
+ Test* child = new Test("child", parent);
+ parent->addChild(child);
+
+ parent->internal()->unCheck();
+ child->internal()->check();
+
+ m_store->saveTree(m_root);
+
+ // reset the tree
+ delete m_root;
+ m_root = new Test("root", 0);
+ parent = new Test("parent", m_root);
+ m_root->addChild(parent);
+ child = new Test("child", parent);
+ parent->addChild(child);
+
+ m_store->restoreTree(m_root);
+
+ KVERIFY(!parent->internal()->isChecked());
+ KVERIFY(child->internal()->isChecked());
+}
+
QTEST_MAIN( SelectionStoreTest )
#include "selectionstoretest.moc"
--- trunk/KDE/kdevplatform/veritas/tests/selectionstoretest.h #905113:905114
@@ -46,6 +46,7 @@
void saveRecursive();
void restoreRecursive();
void ignoreRoot();
+ void selectedChildDeselectedParent();
private:
SelectionStore* m_store;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic