CppEditor: Extend Q_PROPERTY quickfix

... to also generate the RESET function.

Fixes: QTCREATORBUG-11809
Change-Id: I94789227230a67f074ff5fdc76ad8113d2870dd6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Christian Kandeler
2020-07-20 17:47:59 +02:00
parent 1183810506
commit affd4ee658
2 changed files with 107 additions and 7 deletions

View File

@@ -1552,11 +1552,11 @@ void CppEditorPlugin::test_quickfix_data()
QTest::newRow("InsertQtPropertyMembers")
<< CppQuickFixFactoryPtr(new InsertQtPropertyMembers)
<< _("struct XmarksTheSpot {\n"
" @Q_PROPERTY(int it READ getIt WRITE setIt NOTIFY itChanged)\n"
" @Q_PROPERTY(int it READ getIt WRITE setIt RESET resetIt NOTIFY itChanged)\n"
"};\n"
)
<< _("struct XmarksTheSpot {\n"
" Q_PROPERTY(int it READ getIt WRITE setIt NOTIFY itChanged)\n"
" Q_PROPERTY(int it READ getIt WRITE setIt RESET resetIt NOTIFY itChanged)\n"
"\n"
"public:\n"
" int getIt() const\n"
@@ -1573,6 +1573,10 @@ void CppEditorPlugin::test_quickfix_data()
" m_it = it;\n"
" emit itChanged(m_it);\n"
" }\n"
" void resetIt()\n"
" {\n"
" setIt({}); // TODO: Adapt to use your actual default value\n"
" }\n"
"\n"
"signals:\n"
" void itChanged(int it);\n"
@@ -1582,6 +1586,67 @@ void CppEditorPlugin::test_quickfix_data()
"};\n"
);
QTest::newRow("InsertQtPropertyMembersResetWithoutSet")
<< CppQuickFixFactoryPtr(new InsertQtPropertyMembers)
<< _("struct XmarksTheSpot {\n"
" @Q_PROPERTY(int it READ getIt RESET resetIt NOTIFY itChanged)\n"
"};\n"
)
<< _("struct XmarksTheSpot {\n"
" Q_PROPERTY(int it READ getIt RESET resetIt NOTIFY itChanged)\n"
"\n"
"public:\n"
" int getIt() const\n"
" {\n"
" return m_it;\n"
" }\n"
"\n"
"public slots:\n"
" void resetIt()\n"
" {\n"
" static const int defaultValue{}; // TODO: Adapt to use your actual default value\n"
" if (m_it == defaultValue)\n"
" return;\n"
"\n"
" m_it = defaultValue;\n"
" emit itChanged(m_it);\n"
" }\n"
"\n"
"signals:\n"
" void itChanged(int it);\n"
"\n"
"private:\n"
" int m_it;\n"
"};\n"
);
QTest::newRow("InsertQtPropertyMembersResetWithoutSetAndNotify")
<< CppQuickFixFactoryPtr(new InsertQtPropertyMembers)
<< _("struct XmarksTheSpot {\n"
" @Q_PROPERTY(int it READ getIt RESET resetIt)\n"
"};\n"
)
<< _("struct XmarksTheSpot {\n"
" Q_PROPERTY(int it READ getIt RESET resetIt)\n"
"\n"
"public:\n"
" int getIt() const\n"
" {\n"
" return m_it;\n"
" }\n"
"\n"
"public slots:\n"
" void resetIt()\n"
" {\n"
" static const int defaultValue{}; // TODO: Adapt to use your actual default value\n"
" m_it = defaultValue;\n"
" }\n"
"\n"
"private:\n"
" int m_it;\n"
"};\n"
);
QTest::newRow("InsertQtPropertyMembersPrivateBeforePublic")
<< CppQuickFixFactoryPtr(new InsertQtPropertyMembers)
<< _("class XmarksTheSpot {\n"