forked from qt-creator/qt-creator
Squish: Close opened squish files
..when switching sessions or closing test suites. There is no need to keep them opened inside QC. Change-Id: I5b4ddec64ca11a0d82b28d2946bebff9fa0a4bac Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -291,12 +291,22 @@ void SquishFileHandler::openTestSuite(const Utils::FilePath &suiteConfPath, bool
|
|||||||
ProjectExplorer::SessionManager::setValue(SK_OpenSuites, suitePathsAsStringList());
|
ProjectExplorer::SessionManager::setValue(SK_OpenSuites, suitePathsAsStringList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void closeOpenedEditorsFor(const Utils::FilePath &filePath, bool askAboutModifiedEditors)
|
||||||
|
{
|
||||||
|
const QList<Core::IDocument *> openDocuments = Utils::filtered(
|
||||||
|
Core::DocumentModel::openedDocuments(), [filePath](Core::IDocument *doc) {
|
||||||
|
return doc->filePath().isChildOf(filePath);
|
||||||
|
});
|
||||||
|
// for now just ignore modifications - files will be removed completely
|
||||||
|
Core::EditorManager::closeDocuments(openDocuments, askAboutModifiedEditors);
|
||||||
|
}
|
||||||
|
|
||||||
void SquishFileHandler::closeTestSuite(const QString &suiteName)
|
void SquishFileHandler::closeTestSuite(const QString &suiteName)
|
||||||
{
|
{
|
||||||
if (!m_suites.contains(suiteName))
|
if (!m_suites.contains(suiteName))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// TODO close respective editors if there are any
|
closeOpenedEditorsFor(m_suites.value(suiteName).parentDir(), true);
|
||||||
// TODO remove file watcher
|
// TODO remove file watcher
|
||||||
m_suites.remove(suiteName);
|
m_suites.remove(suiteName);
|
||||||
emit suiteTreeItemRemoved(suiteName);
|
emit suiteTreeItemRemoved(suiteName);
|
||||||
@@ -309,16 +319,6 @@ void SquishFileHandler::closeAllTestSuites()
|
|||||||
ProjectExplorer::SessionManager::setValue(SK_OpenSuites, suitePathsAsStringList());
|
ProjectExplorer::SessionManager::setValue(SK_OpenSuites, suitePathsAsStringList());
|
||||||
}
|
}
|
||||||
|
|
||||||
static void closeOpenedEditorsFor(const Utils::FilePath &filePath)
|
|
||||||
{
|
|
||||||
const QList<Core::IDocument *> openDocuments = Utils::filtered(
|
|
||||||
Core::DocumentModel::openedDocuments(), [filePath](Core::IDocument *doc) {
|
|
||||||
return doc->filePath().isChildOf(filePath);
|
|
||||||
});
|
|
||||||
// for now just ignore modifications - files will be removed completely
|
|
||||||
Core::EditorManager::closeDocuments(openDocuments, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SquishFileHandler::deleteTestCase(const QString &suiteName, const QString &testCaseName)
|
void SquishFileHandler::deleteTestCase(const QString &suiteName, const QString &testCaseName)
|
||||||
{
|
{
|
||||||
if (!m_suites.contains(suiteName))
|
if (!m_suites.contains(suiteName))
|
||||||
@@ -334,7 +334,7 @@ void SquishFileHandler::deleteTestCase(const QString &suiteName, const QString &
|
|||||||
const Utils::FilePath suiteConfPath = m_suites.value(suiteName);
|
const Utils::FilePath suiteConfPath = m_suites.value(suiteName);
|
||||||
SuiteConf suiteConf = SuiteConf::readSuiteConf(suiteConfPath);
|
SuiteConf suiteConf = SuiteConf::readSuiteConf(suiteConfPath);
|
||||||
const Utils::FilePath testCaseDirectory = suiteConfPath.parentDir().pathAppended(testCaseName);
|
const Utils::FilePath testCaseDirectory = suiteConfPath.parentDir().pathAppended(testCaseName);
|
||||||
closeOpenedEditorsFor(testCaseDirectory);
|
closeOpenedEditorsFor(testCaseDirectory, false);
|
||||||
QString error;
|
QString error;
|
||||||
if (!testCaseDirectory.removeRecursively(&error)) {
|
if (!testCaseDirectory.removeRecursively(&error)) {
|
||||||
QString detail = Tr::tr("Deletion of Test Case failed.");
|
QString detail = Tr::tr("Deletion of Test Case failed.");
|
||||||
@@ -352,8 +352,9 @@ void SquishFileHandler::deleteTestCase(const QString &suiteName, const QString &
|
|||||||
|
|
||||||
void SquishFileHandler::closeAllInternal()
|
void SquishFileHandler::closeAllInternal()
|
||||||
{
|
{
|
||||||
// TODO close respective editors if there are any
|
|
||||||
// TODO remove file watcher
|
// TODO remove file watcher
|
||||||
|
for (auto suiteConfFilePath : m_suites)
|
||||||
|
closeOpenedEditorsFor(suiteConfFilePath.parentDir(), true);
|
||||||
const QStringList &suiteNames = m_suites.keys();
|
const QStringList &suiteNames = m_suites.keys();
|
||||||
m_suites.clear();
|
m_suites.clear();
|
||||||
for (const QString &suiteName : suiteNames)
|
for (const QString &suiteName : suiteNames)
|
||||||
|
Reference in New Issue
Block a user