ClearCase: Make a some items proper data members

Change-Id: I7d1c8490ca72c6ba0b16111d2191826583037c6e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
hjk
2020-02-06 18:51:46 +01:00
parent 96868447ce
commit d33710a180
3 changed files with 24 additions and 23 deletions

View File

@@ -148,6 +148,13 @@ static const VcsBaseEditorParameters editorParameters[] = {
"text/x-patch"} "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 // Utility to find a parameter set by type
static const VcsBaseEditorParameters *findType(int ie) static const VcsBaseEditorParameters *findType(int ie)
{ {
@@ -216,7 +223,7 @@ public:
static ClearCasePluginPrivate *instance(); static ClearCasePluginPrivate *instance();
QString ccGetCurrentActivity() const; QString ccGetCurrentActivity() const;
QList<QStringPair> activities(int *current = nullptr) const; QList<QStringPair> activities(int *current = nullptr);
QString ccGetPredecessor(const QString &version) const; QString ccGetPredecessor(const QString &version) const;
QStringList ccGetActiveVobs() const; QStringList ccGetActiveVobs() const;
ViewData ccGetView(const QString &workingDir) const; ViewData ccGetView(const QString &workingDir) const;
@@ -339,10 +346,18 @@ private:
QAction *m_menuAction = nullptr; QAction *m_menuAction = nullptr;
bool m_submitActionTriggered = false; bool m_submitActionTriggered = false;
QMutex *m_activityMutex; QMutex m_activityMutex;
QList<QStringPair> m_activities; QList<QStringPair> m_activities;
QSharedPointer<StatusMap> m_statusMap; QSharedPointer<StatusMap> m_statusMap;
ClearCaseSettingsPage m_settingsPage;
VcsSubmitEditorFactory m_submitEditorFactory {
submitParameters,
[] { return new ClearCaseSubmitEditor; },
this
};
friend class ClearCasePlugin; friend class ClearCasePlugin;
#ifdef WITH_TESTS #ifdef WITH_TESTS
bool m_fakeClearTool = false; bool m_fakeClearTool = false;
@@ -357,9 +372,8 @@ ClearCasePluginPrivate::~ClearCasePluginPrivate()
{ {
cleanCheckInMessageFile(); cleanCheckInMessageFile();
// wait for sync thread to finish reading activities // wait for sync thread to finish reading activities
m_activityMutex->lock(); m_activityMutex.lock();
m_activityMutex->unlock(); m_activityMutex.unlock();
delete m_activityMutex;
} }
void ClearCasePluginPrivate::cleanCheckInMessageFile() void ClearCasePluginPrivate::cleanCheckInMessageFile()
@@ -583,13 +597,6 @@ QString ClearCasePluginPrivate::findTopLevel(const QString &directory) const
return ccManagesDirectory(directory); 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) bool ClearCasePlugin::initialize(const QStringList & /*arguments */, QString *errorMessage)
{ {
Q_UNUSED(errorMessage) Q_UNUSED(errorMessage)
@@ -604,7 +611,6 @@ void ClearCasePlugin::extensionsInitialized()
ClearCasePluginPrivate::ClearCasePluginPrivate() ClearCasePluginPrivate::ClearCasePluginPrivate()
: VcsBase::VcsBasePluginPrivate(Context(CLEARCASE_CONTEXT)), : VcsBase::VcsBasePluginPrivate(Context(CLEARCASE_CONTEXT)),
m_activityMutex(new QMutex),
m_statusMap(new StatusMap) m_statusMap(new StatusMap)
{ {
dd = this; dd = this;
@@ -631,10 +637,6 @@ ClearCasePluginPrivate::ClearCasePluginPrivate()
connect(SessionManager::instance(), &SessionManager::startupProjectChanged, connect(SessionManager::instance(), &SessionManager::startupProjectChanged,
this, &ClearCasePluginPrivate::projectChanged); this, &ClearCasePluginPrivate::projectChanged);
new ClearCaseSettingsPage(this);
new VcsSubmitEditorFactory(submitParameters, [] { return new ClearCaseSubmitEditor; }, this, this);
// any editor responds to describe (when clicking a version) // any editor responds to describe (when clicking a version)
const auto describeFunc = [this](const QString &source, const QString &changeNr) { const auto describeFunc = [this](const QString &source, const QString &changeNr) {
describe(source, changeNr); describe(source, changeNr);
@@ -2071,18 +2073,18 @@ QList<QStringPair> ClearCasePluginPrivate::ccGetActivities() const
void ClearCasePluginPrivate::refreshActivities() void ClearCasePluginPrivate::refreshActivities()
{ {
QMutexLocker locker(m_activityMutex); QMutexLocker locker(&m_activityMutex);
m_activity = ccGetCurrentActivity(); m_activity = ccGetCurrentActivity();
m_activities = ccGetActivities(); m_activities = ccGetActivities();
} }
QList<QStringPair> ClearCasePluginPrivate::activities(int *current) const QList<QStringPair> ClearCasePluginPrivate::activities(int *current)
{ {
QList<QStringPair> activitiesList; QList<QStringPair> activitiesList;
QString curActivity; QString curActivity;
const VcsBasePluginState state = currentState(); const VcsBasePluginState state = currentState();
if (state.topLevel() == state.currentProjectTopLevel()) { if (state.topLevel() == state.currentProjectTopLevel()) {
QMutexLocker locker(m_activityMutex); QMutexLocker locker(&m_activityMutex);
activitiesList = m_activities; activitiesList = m_activities;
curActivity = m_activity; curActivity = m_activity;
} else { } else {

View File

@@ -120,8 +120,7 @@ void SettingsPageWidget::apply()
ClearCasePlugin::setSettings(rc); ClearCasePlugin::setSettings(rc);
} }
ClearCaseSettingsPage::ClearCaseSettingsPage(QObject *parent) ClearCaseSettingsPage::ClearCaseSettingsPage()
: Core::IOptionsPage(parent)
{ {
setId(ClearCase::Constants::VCS_ID_CLEARCASE); setId(ClearCase::Constants::VCS_ID_CLEARCASE);
setDisplayName(tr("ClearCase")); setDisplayName(tr("ClearCase"));

View File

@@ -34,7 +34,7 @@ namespace Internal {
class ClearCaseSettingsPage final : public Core::IOptionsPage class ClearCaseSettingsPage final : public Core::IOptionsPage
{ {
public: public:
explicit ClearCaseSettingsPage(QObject *parent); ClearCaseSettingsPage();
}; };
} // namespace ClearCase } // namespace ClearCase