summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@theqtcompany.com>2015-04-16 15:27:31 +0200
committerDaniel Teske <daniel.teske@theqtcompany.com>2015-04-16 14:37:09 +0000
commit458bcdf6aa882b8cca628333da2b031b6b799bda (patch)
tree5681f9b3843bc2e052bdcb8880e5d845dac34fa8
parent8c4624951a08dc462479ea7ec6e9131e5313a157 (diff)
downloadqt-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.cpp18
-rw-r--r--src/plugins/projectexplorer/projectexplorer.h2
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.