forked from qt-creator/qt-creator
VcsCommand: Remove m_preventRepositoryChanged field
Disconnect the appropriate connection instead. Change-Id: Ie5cd8b3bcbab526aa770c493a465c9cdb07437f6 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -43,19 +43,13 @@ using namespace Utils;
|
|||||||
|
|
||||||
namespace VcsBase {
|
namespace VcsBase {
|
||||||
|
|
||||||
VcsCommand::VcsCommand(const FilePath &workingDirectory, const Environment &environment) :
|
VcsCommand::VcsCommand(const FilePath &workingDirectory, const Environment &environment)
|
||||||
ShellCommand(workingDirectory, environment),
|
: ShellCommand(workingDirectory, environment)
|
||||||
m_preventRepositoryChanged(false)
|
|
||||||
{
|
{
|
||||||
Environment env = environment;
|
Environment env = environment;
|
||||||
VcsBase::setProcessEnvironment(&env);
|
VcsBase::setProcessEnvironment(&env);
|
||||||
setEnvironment(env);
|
setEnvironment(env);
|
||||||
|
|
||||||
connect(ICore::instance(), &ICore::coreAboutToClose, this, [this] {
|
|
||||||
m_preventRepositoryChanged = true;
|
|
||||||
abort();
|
|
||||||
});
|
|
||||||
|
|
||||||
VcsOutputWindow::setRepository(workingDirectory.toString());
|
VcsOutputWindow::setRepository(workingDirectory.toString());
|
||||||
setDisableUnixTerminal();
|
setDisableUnixTerminal();
|
||||||
|
|
||||||
@@ -78,7 +72,13 @@ VcsCommand::VcsCommand(const FilePath &workingDirectory, const Environment &envi
|
|||||||
connect(this, &ShellCommand::appendMessage, outputWindow, &VcsOutputWindow::appendMessage);
|
connect(this, &ShellCommand::appendMessage, outputWindow, &VcsOutputWindow::appendMessage);
|
||||||
|
|
||||||
connect(this, &ShellCommand::executedAsync, this, &VcsCommand::addTask);
|
connect(this, &ShellCommand::executedAsync, this, &VcsCommand::addTask);
|
||||||
connect(this, &ShellCommand::runCommandFinished, this, &VcsCommand::postRunCommand);
|
const auto connection = connect(this, &ShellCommand::runCommandFinished,
|
||||||
|
this, &VcsCommand::postRunCommand);
|
||||||
|
|
||||||
|
connect(ICore::instance(), &ICore::coreAboutToClose, this, [this, connection] {
|
||||||
|
disconnect(connection);
|
||||||
|
abort();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void VcsCommand::addTask(const QFuture<void> &future)
|
void VcsCommand::addTask(const QFuture<void> &future)
|
||||||
@@ -110,7 +110,7 @@ void VcsCommand::addTask(const QFuture<void> &future)
|
|||||||
|
|
||||||
void VcsCommand::postRunCommand(const FilePath &workingDirectory)
|
void VcsCommand::postRunCommand(const FilePath &workingDirectory)
|
||||||
{
|
{
|
||||||
if (m_preventRepositoryChanged || !(flags() & ShellCommand::ExpectRepoChanges))
|
if (!(flags() & ShellCommand::ExpectRepoChanges))
|
||||||
return;
|
return;
|
||||||
// TODO tell the document manager that the directory now received all expected changes
|
// TODO tell the document manager that the directory now received all expected changes
|
||||||
// Core::DocumentManager::unexpectDirectoryChange(d->m_workingDirectory);
|
// Core::DocumentManager::unexpectDirectoryChange(d->m_workingDirectory);
|
||||||
|
@@ -40,8 +40,6 @@ private:
|
|||||||
void addTask(const QFuture<void> &future);
|
void addTask(const QFuture<void> &future);
|
||||||
void postRunCommand(const Utils::FilePath &workDirectory);
|
void postRunCommand(const Utils::FilePath &workDirectory);
|
||||||
|
|
||||||
bool m_preventRepositoryChanged;
|
|
||||||
|
|
||||||
friend class VcsBaseClientImpl;
|
friend class VcsBaseClientImpl;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user