diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index 098a992a704..d8db4418597 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -20,6 +20,8 @@ #include #include +#include + #include #include @@ -63,8 +65,7 @@ using namespace Utils; using namespace VcsBase; using namespace std::placeholders; -namespace Subversion { -namespace Internal { +namespace Subversion::Internal { const char CMD_ID_SUBVERSION_MENU[] = "Subversion.Menu"; const char CMD_ID_ADD[] = "Subversion.Add"; @@ -313,12 +314,6 @@ public: static SubversionPluginPrivate *dd = nullptr; -SubversionPlugin::~SubversionPlugin() -{ - delete dd; - dd = nullptr; -} - SubversionPluginPrivate::~SubversionPluginPrivate() { cleanCommitMessageFile(); @@ -339,16 +334,6 @@ bool SubversionPluginPrivate::isCommitEditorOpen() const return !m_commitMessageFileName.isEmpty(); } -void SubversionPlugin::initialize() -{ - dd = new SubversionPluginPrivate; -} - -void SubversionPlugin::extensionsInitialized() -{ - dd->extensionsInitialized(); -} - SubversionPluginPrivate::SubversionPluginPrivate() : VcsBasePluginPrivate(Context(Constants::SUBVERSION_CONTEXT)), m_svnDirectories(svnDirectories()) @@ -1209,7 +1194,16 @@ QString SubversionTopicCache::refreshTopic(const FilePath &repository) #ifdef WITH_TESTS -void SubversionPlugin::testLogResolving() + +class SubversionTest final : public QObject +{ + Q_OBJECT + +private slots: + void testLogResolving(); +}; + +void SubversionTest::testLogResolving() { QByteArray data( "------------------------------------------------------------------------\n" @@ -1232,5 +1226,32 @@ void SubversionPlugin::testLogResolving() #endif -} // Internal -} // Subversion +class SubversionPlugin final : public ExtensionSystem::IPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Subversion.json") + + ~SubversionPlugin() final + { + delete dd; + dd = nullptr; + } + + void initialize() final + { + dd = new SubversionPluginPrivate; + +#ifdef WITH_TESTS + addTest(); +#endif + } + + void extensionsInitialized() final + { + dd->extensionsInitialized(); + } +}; + +} // Subversion::Internal + +#include "subversionplugin.moc" diff --git a/src/plugins/subversion/subversionplugin.h b/src/plugins/subversion/subversionplugin.h index c5ebc178846..5e47fc57339 100644 --- a/src/plugins/subversion/subversionplugin.h +++ b/src/plugins/subversion/subversionplugin.h @@ -3,32 +3,11 @@ #pragma once -#include - -namespace Subversion { -namespace Internal { +namespace Subversion::Internal { const char FileAddedC[] = "A"; const char FileConflictedC[] = "C"; const char FileDeletedC[] = "D"; const char FileModifiedC[] = "M"; -class SubversionPlugin final : public ExtensionSystem::IPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Subversion.json") - - ~SubversionPlugin() final; - - void initialize() final; - void extensionsInitialized() final; - -#ifdef WITH_TESTS -private slots: - void testLogResolving(); -#endif - -}; - -} // namespace Subversion -} // namespace Internal +} // SubVersion::Internal