From d33710a18011df58cb33b15732ec6ecbd9ee3f91 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 6 Feb 2020 18:51:46 +0100 Subject: [PATCH] ClearCase: Make a some items proper data members Change-Id: I7d1c8490ca72c6ba0b16111d2191826583037c6e Reviewed-by: Orgad Shaneh --- src/plugins/clearcase/clearcaseplugin.cpp | 42 ++++++++++++----------- src/plugins/clearcase/settingspage.cpp | 3 +- src/plugins/clearcase/settingspage.h | 2 +- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index d572b2a7fec..59f221b9d5b 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -148,6 +148,13 @@ static const VcsBaseEditorParameters editorParameters[] = { "text/x-patch"} }; +static const VcsBaseSubmitEditorParameters submitParameters = { + Constants::CLEARCASE_SUBMIT_MIMETYPE, + Constants::CLEARCASECHECKINEDITOR_ID, + Constants::CLEARCASECHECKINEDITOR_DISPLAY_NAME, + VcsBaseSubmitEditorParameters::DiffFiles +}; + // Utility to find a parameter set by type static const VcsBaseEditorParameters *findType(int ie) { @@ -216,7 +223,7 @@ public: static ClearCasePluginPrivate *instance(); QString ccGetCurrentActivity() const; - QList activities(int *current = nullptr) const; + QList activities(int *current = nullptr); QString ccGetPredecessor(const QString &version) const; QStringList ccGetActiveVobs() const; ViewData ccGetView(const QString &workingDir) const; @@ -339,10 +346,18 @@ private: QAction *m_menuAction = nullptr; bool m_submitActionTriggered = false; - QMutex *m_activityMutex; + QMutex m_activityMutex; QList m_activities; QSharedPointer m_statusMap; + ClearCaseSettingsPage m_settingsPage; + + VcsSubmitEditorFactory m_submitEditorFactory { + submitParameters, + [] { return new ClearCaseSubmitEditor; }, + this + }; + friend class ClearCasePlugin; #ifdef WITH_TESTS bool m_fakeClearTool = false; @@ -357,9 +372,8 @@ ClearCasePluginPrivate::~ClearCasePluginPrivate() { cleanCheckInMessageFile(); // wait for sync thread to finish reading activities - m_activityMutex->lock(); - m_activityMutex->unlock(); - delete m_activityMutex; + m_activityMutex.lock(); + m_activityMutex.unlock(); } void ClearCasePluginPrivate::cleanCheckInMessageFile() @@ -583,13 +597,6 @@ QString ClearCasePluginPrivate::findTopLevel(const QString &directory) const return ccManagesDirectory(directory); } -static const VcsBaseSubmitEditorParameters submitParameters = { - Constants::CLEARCASE_SUBMIT_MIMETYPE, - Constants::CLEARCASECHECKINEDITOR_ID, - Constants::CLEARCASECHECKINEDITOR_DISPLAY_NAME, - VcsBaseSubmitEditorParameters::DiffFiles -}; - bool ClearCasePlugin::initialize(const QStringList & /*arguments */, QString *errorMessage) { Q_UNUSED(errorMessage) @@ -604,7 +611,6 @@ void ClearCasePlugin::extensionsInitialized() ClearCasePluginPrivate::ClearCasePluginPrivate() : VcsBase::VcsBasePluginPrivate(Context(CLEARCASE_CONTEXT)), - m_activityMutex(new QMutex), m_statusMap(new StatusMap) { dd = this; @@ -631,10 +637,6 @@ ClearCasePluginPrivate::ClearCasePluginPrivate() connect(SessionManager::instance(), &SessionManager::startupProjectChanged, this, &ClearCasePluginPrivate::projectChanged); - new ClearCaseSettingsPage(this); - - new VcsSubmitEditorFactory(submitParameters, [] { return new ClearCaseSubmitEditor; }, this, this); - // any editor responds to describe (when clicking a version) const auto describeFunc = [this](const QString &source, const QString &changeNr) { describe(source, changeNr); @@ -2071,18 +2073,18 @@ QList ClearCasePluginPrivate::ccGetActivities() const void ClearCasePluginPrivate::refreshActivities() { - QMutexLocker locker(m_activityMutex); + QMutexLocker locker(&m_activityMutex); m_activity = ccGetCurrentActivity(); m_activities = ccGetActivities(); } -QList ClearCasePluginPrivate::activities(int *current) const +QList ClearCasePluginPrivate::activities(int *current) { QList activitiesList; QString curActivity; const VcsBasePluginState state = currentState(); if (state.topLevel() == state.currentProjectTopLevel()) { - QMutexLocker locker(m_activityMutex); + QMutexLocker locker(&m_activityMutex); activitiesList = m_activities; curActivity = m_activity; } else { diff --git a/src/plugins/clearcase/settingspage.cpp b/src/plugins/clearcase/settingspage.cpp index 039f0cc0750..35043fe7e93 100644 --- a/src/plugins/clearcase/settingspage.cpp +++ b/src/plugins/clearcase/settingspage.cpp @@ -120,8 +120,7 @@ void SettingsPageWidget::apply() ClearCasePlugin::setSettings(rc); } -ClearCaseSettingsPage::ClearCaseSettingsPage(QObject *parent) - : Core::IOptionsPage(parent) +ClearCaseSettingsPage::ClearCaseSettingsPage() { setId(ClearCase::Constants::VCS_ID_CLEARCASE); setDisplayName(tr("ClearCase")); diff --git a/src/plugins/clearcase/settingspage.h b/src/plugins/clearcase/settingspage.h index ee1c3596d2b..888e5888d8b 100644 --- a/src/plugins/clearcase/settingspage.h +++ b/src/plugins/clearcase/settingspage.h @@ -34,7 +34,7 @@ namespace Internal { class ClearCaseSettingsPage final : public Core::IOptionsPage { public: - explicit ClearCaseSettingsPage(QObject *parent); + ClearCaseSettingsPage(); }; } // namespace ClearCase