diff options
author | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-04-16 15:27:31 +0200 |
---|---|---|
committer | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-04-16 14:37:09 +0000 |
commit | 458bcdf6aa882b8cca628333da2b031b6b799bda (patch) | |
tree | 5681f9b3843bc2e052bdcb8880e5d845dac34fa8 | |
parent | 8c4624951a08dc462479ea7ec6e9131e5313a157 (diff) | |
download | qt-creator-458bcdf6aa882b8cca628333da2b031b6b799bda.tar.gz |
ProjectTree: Fix adding files from context menu
We need to retrieve the current node before the dialog opens up.
While the dialog has focus, the current node depends on what is
visible in the EditorManager.
Change-Id: Icdb212e8d837c9cd789e369f76d6a136d46fcaae
Task-number: QTCREATORBUG-14295
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
-rw-r--r-- | src/plugins/projectexplorer/projectexplorer.cpp | 18 | ||||
-rw-r--r-- | src/plugins/projectexplorer/projectexplorer.h | 2 |
2 files changed, 12 insertions, 8 deletions
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 5f429755ad..8d3853d8a0 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -3021,29 +3021,33 @@ void ProjectExplorerPluginPrivate::addNewSubproject() void ProjectExplorerPluginPrivate::handleAddExistingFiles() { - QTC_ASSERT(ProjectTree::currentNode(), return); + Node *node = ProjectTree::currentNode(); + FolderNode *folderNode = node ? node->asFolderNode() : 0; + + QTC_ASSERT(folderNode, return); QStringList fileNames = QFileDialog::getOpenFileNames(ICore::mainWindow(), tr("Add Existing Files"), directoryFor(ProjectTree::currentNode())); if (fileNames.isEmpty()) return; - ProjectExplorerPlugin::addExistingFiles(fileNames); + ProjectExplorerPlugin::addExistingFiles(fileNames, folderNode); } void ProjectExplorerPluginPrivate::addExistingDirectory() { - QTC_ASSERT(ProjectTree::currentNode(), return); + Node *node = ProjectTree::currentNode(); + FolderNode *folderNode = node ? node->asFolderNode() : 0; + + QTC_ASSERT(folderNode, return); SelectableFilesDialogAddDirectory dialog(directoryFor(ProjectTree::currentNode()), QStringList(), ICore::mainWindow()); if (dialog.exec() == QDialog::Accepted) - ProjectExplorerPlugin::addExistingFiles(dialog.selectedFiles()); + ProjectExplorerPlugin::addExistingFiles(dialog.selectedFiles(), folderNode); } -void ProjectExplorerPlugin::addExistingFiles(const QStringList &filePaths) +void ProjectExplorerPlugin::addExistingFiles(const QStringList &filePaths, FolderNode *folderNode) { - Node *node = ProjectTree::currentNode(); - FolderNode *folderNode = node ? node->asFolderNode() : 0; addExistingFiles(folderNode, filePaths); } diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h index a4157c3622..e548268f71 100644 --- a/src/plugins/projectexplorer/projectexplorer.h +++ b/src/plugins/projectexplorer/projectexplorer.h @@ -104,7 +104,7 @@ public: const bool forceSkipDeploy = false); static void addExistingFiles(FolderNode *projectNode, const QStringList &filePaths); - static void addExistingFiles(const QStringList &filePaths); + static void addExistingFiles(const QStringList &filePaths, FolderNode *folderNode); static void buildProject(Project *p); /// Normally there's no need to call this function. |