forked from qt-creator/qt-creator
QbsProjectManager: Do not offer to add and remove files during a build.
The build graph is locked then. Disabling the action in the first place is nicer than letting the respective qbs API call fail. Change-Id: Icfb89b454a240253c9ddc7681b452d06ff0393dd Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
@@ -324,6 +324,17 @@ bool QbsBaseProjectNode::renameFile(const QString &filePath, const QString &newF
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static QList<ProjectExplorer::ProjectAction> supportedNodeActions(ProjectExplorer::Node *node)
|
||||||
|
{
|
||||||
|
QList<ProjectExplorer::ProjectAction> actions;
|
||||||
|
if (parentQbsProjectNode(node)->project()->isProjectEditable()) {
|
||||||
|
actions << ProjectExplorer::AddNewFile << ProjectExplorer::AddExistingFile
|
||||||
|
<< ProjectExplorer::RemoveFile;
|
||||||
|
}
|
||||||
|
return actions;
|
||||||
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
// QbsGroupNode:
|
// QbsGroupNode:
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
@@ -355,9 +366,7 @@ bool QbsGroupNode::isEnabled() const
|
|||||||
|
|
||||||
QList<ProjectExplorer::ProjectAction> QbsGroupNode::supportedActions(ProjectExplorer::Node *node) const
|
QList<ProjectExplorer::ProjectAction> QbsGroupNode::supportedActions(ProjectExplorer::Node *node) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(node);
|
return supportedNodeActions(node);
|
||||||
return QList<ProjectExplorer::ProjectAction>() << ProjectExplorer::AddNewFile << ProjectExplorer::AddExistingFile
|
|
||||||
<< ProjectExplorer::RemoveFile;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QbsGroupNode::addFiles(const QStringList &filePaths, QStringList *notAdded)
|
bool QbsGroupNode::addFiles(const QStringList &filePaths, QStringList *notAdded)
|
||||||
@@ -563,9 +572,7 @@ bool QbsProductNode::showInSimpleTree() const
|
|||||||
|
|
||||||
QList<ProjectExplorer::ProjectAction> QbsProductNode::supportedActions(ProjectExplorer::Node *node) const
|
QList<ProjectExplorer::ProjectAction> QbsProductNode::supportedActions(ProjectExplorer::Node *node) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(node);
|
return supportedNodeActions(node);
|
||||||
return QList<ProjectExplorer::ProjectAction>() << ProjectExplorer::AddNewFile << ProjectExplorer::AddExistingFile
|
|
||||||
<< ProjectExplorer::RemoveFile;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QbsProductNode::addFiles(const QStringList &filePaths, QStringList *notAdded)
|
bool QbsProductNode::addFiles(const QStringList &filePaths, QStringList *notAdded)
|
||||||
|
|||||||
@@ -189,6 +189,11 @@ QStringList QbsProject::files(Project::FilesMode fileMode) const
|
|||||||
return result.toList();
|
return result.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QbsProject::isProjectEditable() const
|
||||||
|
{
|
||||||
|
return m_qbsProject.isValid() && !isParsing() && !ProjectExplorer::BuildManager::isBuilding();
|
||||||
|
}
|
||||||
|
|
||||||
class ChangeExpector
|
class ChangeExpector
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ public:
|
|||||||
|
|
||||||
QStringList files(FilesMode fileMode) const;
|
QStringList files(FilesMode fileMode) const;
|
||||||
|
|
||||||
|
bool isProjectEditable() const;
|
||||||
bool addFilesToProduct(QbsBaseProjectNode *node, const QStringList &filePaths,
|
bool addFilesToProduct(QbsBaseProjectNode *node, const QStringList &filePaths,
|
||||||
const qbs::ProductData &productData, const qbs::GroupData &groupData,
|
const qbs::ProductData &productData, const qbs::GroupData &groupData,
|
||||||
QStringList *notAdded);
|
QStringList *notAdded);
|
||||||
|
|||||||
Reference in New Issue
Block a user