forked from qt-creator/qt-creator
ClearCase: Do not use ProjectTree::currentProject
That is almost certainly not what you want:-) Use SessionManager::startupProject instead. Also use state changed from QApplication in favor of having the mainwindow notify us about updates. That does no longer work, now that we have multiple windows. Change-Id: I27563c8e060ea154c0db5e5777d4b92840f31fa7 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
@@ -55,7 +55,7 @@
|
|||||||
#include <coreplugin/mimedatabase.h>
|
#include <coreplugin/mimedatabase.h>
|
||||||
#include <coreplugin/progressmanager/progressmanager.h>
|
#include <coreplugin/progressmanager/progressmanager.h>
|
||||||
#include <coreplugin/locator/commandlocator.h>
|
#include <coreplugin/locator/commandlocator.h>
|
||||||
#include <projectexplorer/projecttree.h>
|
#include <projectexplorer/session.h>
|
||||||
#include <projectexplorer/project.h>
|
#include <projectexplorer/project.h>
|
||||||
#include <projectexplorer/iprojectmanager.h>
|
#include <projectexplorer/iprojectmanager.h>
|
||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
@@ -195,6 +195,11 @@ ClearCasePlugin::ClearCasePlugin() :
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
qRegisterMetaType<ClearCase::Internal::FileStatus::Status>("ClearCase::Internal::FileStatus::Status");
|
qRegisterMetaType<ClearCase::Internal::FileStatus::Status>("ClearCase::Internal::FileStatus::Status");
|
||||||
|
connect(qApp, &QApplication::applicationStateChanged,
|
||||||
|
this, [this](Qt::ApplicationState state) {
|
||||||
|
if (state == Qt::ApplicationActive)
|
||||||
|
syncSlot();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ClearCasePlugin::~ClearCasePlugin()
|
ClearCasePlugin::~ClearCasePlugin()
|
||||||
@@ -454,7 +459,7 @@ bool ClearCasePlugin::initialize(const QStringList & /*arguments */, QString *er
|
|||||||
m_settings.fromSettings(ICore::settings());
|
m_settings.fromSettings(ICore::settings());
|
||||||
|
|
||||||
// update view name when changing active project
|
// update view name when changing active project
|
||||||
connect(ProjectTree::instance(), &ProjectTree::currentProjectChanged,
|
connect(SessionManager::instance(), &SessionManager::startupProjectChanged,
|
||||||
this, &ClearCasePlugin::projectChanged);
|
this, &ClearCasePlugin::projectChanged);
|
||||||
|
|
||||||
addAutoReleasedObject(new SettingsPage);
|
addAutoReleasedObject(new SettingsPage);
|
||||||
@@ -2028,7 +2033,6 @@ void ClearCasePlugin::projectChanged(Project *project)
|
|||||||
m_viewData = ViewData();
|
m_viewData = ViewData();
|
||||||
m_stream.clear();
|
m_stream.clear();
|
||||||
m_intStream.clear();
|
m_intStream.clear();
|
||||||
disconnect(ICore::mainWindow(), SIGNAL(windowActivated()), this, SLOT(syncSlot()));
|
|
||||||
ProgressManager::cancelTasks(ClearCase::Constants::TASK_INDEX);
|
ProgressManager::cancelTasks(ClearCase::Constants::TASK_INDEX);
|
||||||
if (project) {
|
if (project) {
|
||||||
QString projDir = project->projectDirectory().toString();
|
QString projDir = project->projectDirectory().toString();
|
||||||
@@ -2056,7 +2060,7 @@ void ClearCasePlugin::updateIndex()
|
|||||||
{
|
{
|
||||||
QTC_ASSERT(currentState().hasTopLevel(), return);
|
QTC_ASSERT(currentState().hasTopLevel(), return);
|
||||||
ProgressManager::cancelTasks(ClearCase::Constants::TASK_INDEX);
|
ProgressManager::cancelTasks(ClearCase::Constants::TASK_INDEX);
|
||||||
Project *project = ProjectTree::currentProject();
|
Project *project = SessionManager::startupProject();
|
||||||
if (!project)
|
if (!project)
|
||||||
return;
|
return;
|
||||||
m_checkInAllAction->setEnabled(false);
|
m_checkInAllAction->setEnabled(false);
|
||||||
@@ -2207,7 +2211,7 @@ void ClearCasePlugin::closing()
|
|||||||
{
|
{
|
||||||
// prevent syncSlot from being called on shutdown
|
// prevent syncSlot from being called on shutdown
|
||||||
ProgressManager::cancelTasks(ClearCase::Constants::TASK_INDEX);
|
ProgressManager::cancelTasks(ClearCase::Constants::TASK_INDEX);
|
||||||
disconnect(ICore::mainWindow(), SIGNAL(windowActivated()), this, SLOT(syncSlot()));
|
disconnect(qApp, &QApplication::applicationStateChanged, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClearCasePlugin::sync(QFutureInterface<void> &future, QStringList files)
|
void ClearCasePlugin::sync(QFutureInterface<void> &future, QStringList files)
|
||||||
|
Reference in New Issue
Block a user