forked from quickshell/quickshell
core/transformwatcher: add TransformWatcher
This commit is contained in:
parent
fd5b73adbb
commit
a06af243ad
10 changed files with 345 additions and 2 deletions
105
src/core/test/transformwatcher.cpp
Normal file
105
src/core/test/transformwatcher.cpp
Normal file
|
@ -0,0 +1,105 @@
|
|||
#include "transformwatcher.hpp"
|
||||
|
||||
#include <qlist.h>
|
||||
#include <qquickitem.h>
|
||||
#include <qquickwindow.h>
|
||||
#include <qtest.h>
|
||||
#include <qtestcase.h>
|
||||
|
||||
#include "../transformwatcher.hpp"
|
||||
|
||||
void TestTransformWatcher::aParentOfB() { // NOLINT
|
||||
auto a = QQuickItem();
|
||||
a.setObjectName("a");
|
||||
auto b = QQuickItem();
|
||||
b.setObjectName("b");
|
||||
b.setParentItem(&a);
|
||||
|
||||
auto watcher = TransformWatcher();
|
||||
watcher.setA(&a);
|
||||
watcher.setB(&b);
|
||||
|
||||
QCOMPARE(watcher.parentChain, {&a});
|
||||
QCOMPARE(watcher.childChain, {&b});
|
||||
}
|
||||
|
||||
void TestTransformWatcher::bParentOfA() { // NOLINT
|
||||
auto a = QQuickItem();
|
||||
a.setObjectName("a");
|
||||
auto b = QQuickItem();
|
||||
b.setObjectName("b");
|
||||
a.setParentItem(&b);
|
||||
|
||||
auto watcher = TransformWatcher();
|
||||
watcher.setA(&a);
|
||||
watcher.setB(&b);
|
||||
|
||||
QCOMPARE(watcher.parentChain, (QList {&a, &b}));
|
||||
QCOMPARE(watcher.childChain, {});
|
||||
}
|
||||
|
||||
// a
|
||||
// p1 b
|
||||
// p2 c1
|
||||
// p3
|
||||
void TestTransformWatcher::aParentChainB() { // NOLINT
|
||||
auto a = QQuickItem();
|
||||
a.setObjectName("a");
|
||||
auto b = QQuickItem();
|
||||
b.setObjectName("b");
|
||||
|
||||
auto p1 = QQuickItem();
|
||||
p1.setObjectName("p1");
|
||||
auto p2 = QQuickItem();
|
||||
p2.setObjectName("p2");
|
||||
auto p3 = QQuickItem();
|
||||
p3.setObjectName("p3");
|
||||
auto c1 = QQuickItem();
|
||||
c1.setObjectName("c1");
|
||||
|
||||
a.setParentItem(&p1);
|
||||
p1.setParentItem(&p2);
|
||||
p2.setParentItem(&p3);
|
||||
|
||||
b.setParentItem(&c1);
|
||||
c1.setParentItem(&p3);
|
||||
|
||||
auto watcher = TransformWatcher();
|
||||
watcher.setA(&a);
|
||||
watcher.setB(&b);
|
||||
|
||||
QCOMPARE(watcher.parentChain, (QList {&a, &p1, &p2, &p3}));
|
||||
QCOMPARE(watcher.childChain, (QList {&b, &c1}));
|
||||
}
|
||||
|
||||
void TestTransformWatcher::multiWindow() { // NOLINT
|
||||
auto a = QQuickItem();
|
||||
a.setObjectName("a");
|
||||
auto b = QQuickItem();
|
||||
b.setObjectName("b");
|
||||
|
||||
auto p = QQuickItem();
|
||||
p.setObjectName("p");
|
||||
auto c = QQuickItem();
|
||||
c.setObjectName("c");
|
||||
|
||||
a.setParentItem(&p);
|
||||
b.setParentItem(&c);
|
||||
|
||||
auto aW = QQuickWindow();
|
||||
auto bW = QQuickWindow();
|
||||
|
||||
p.setParentItem(aW.contentItem());
|
||||
c.setParentItem(bW.contentItem());
|
||||
|
||||
auto watcher = TransformWatcher();
|
||||
watcher.setA(&a);
|
||||
watcher.setB(&b);
|
||||
|
||||
QCOMPARE(watcher.parentChain, (QList {&a, &p, aW.contentItem()}));
|
||||
QCOMPARE(watcher.childChain, (QList {&b, &c, bW.contentItem()}));
|
||||
QCOMPARE(watcher.parentWindow, &aW);
|
||||
QCOMPARE(watcher.childWindow, &bW);
|
||||
}
|
||||
|
||||
QTEST_MAIN(TestTransformWatcher);
|
Loading…
Add table
Add a link
Reference in a new issue