Migration of QtMvvm from github
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.4 KiB

#ifndef TESTOBJECT_H
#define TESTOBJECT_H
#include <QtCore/QObject>
#include <QtCore/QSharedPointer>
#include <QtMvvmCore/Injection>
#define CREATE_TEST_OBJECT(index, ...) \
class TestObject ## index : public QObject \
{ \
Q_OBJECT \
\
public: \
__VA_ARGS__ \
\
Q_INVOKABLE explicit inline TestObject ## index(QObject *parent = nullptr) : \
QObject{parent} \
{} \
};
#define DEP(index) \
TestObject ## index *dep = nullptr; \
QTMVVM_INJECT_PROP(TestObject ## index *, dep, dep)
#define DESTROYER \
QSharedPointer<TestObject0> holder;
#define SOMETIME_DESTROYER(index) \
DESTROYER \
inline ~TestObject ## index() { qDebug(Q_FUNC_INFO); }
#define NEVER_DESTROYER(index) \
DESTROYER \
inline ~TestObject ## index() { Q_ASSERT_X(false, Q_FUNC_INFO, "destructor of never-destroy-object called"); }
CREATE_TEST_OBJECT(0)
CREATE_TEST_OBJECT(1, int data = 42;)
CREATE_TEST_OBJECT(2, int data = 42;)
CREATE_TEST_OBJECT(3, int data = 42;)
CREATE_TEST_OBJECT(4)
CREATE_TEST_OBJECT(5)
CREATE_TEST_OBJECT(6, DEP(4))
CREATE_TEST_OBJECT(7, DEP(5))
CREATE_TEST_OBJECT(8, bool hasBoth = false;)
CREATE_TEST_OBJECT(9, DEP(0))
CREATE_TEST_OBJECT(10, DEP(9))
CREATE_TEST_OBJECT(11, SOMETIME_DESTROYER(11))
CREATE_TEST_OBJECT(12, SOMETIME_DESTROYER(12))
CREATE_TEST_OBJECT(13, SOMETIME_DESTROYER(13))
CREATE_TEST_OBJECT(14, NEVER_DESTROYER(14))
#endif // TESTOBJECT_H