aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/targetsettingspanel.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2016-10-13 08:16:32 +0200
committerhjk <hjk@qt.io>2016-10-17 16:17:57 +0000
commit7157e5c1d24080a33c3bbf31415855625da9405a (patch)
tree9438a73a2a8a14709960da1cd61c1df93eca1be7 /src/plugins/projectexplorer/targetsettingspanel.cpp
parentd19f25c14ae00f1c4ec3930c33eab83148ebacb9 (diff)
ProjectExplorer: Revive project importer
Fixes a regression introduced in recent changes. Import project from build is now available again on the target setup page (shown when no kit is active) and in the context menu of the left pane. Task-number: QTCREATORBUG-17046 Change-Id: I5a1285624084f0cb6e0947560516ae88d4b3e376 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/targetsettingspanel.cpp')
-rw-r--r--src/plugins/projectexplorer/targetsettingspanel.cpp59
1 files changed, 4 insertions, 55 deletions
diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp
index 0700dbe4a7..d3f557f219 100644
--- a/src/plugins/projectexplorer/targetsettingspanel.cpp
+++ b/src/plugins/projectexplorer/targetsettingspanel.cpp
@@ -26,18 +26,14 @@
#include "targetsettingspanel.h"
#include "buildconfiguration.h"
-#include "buildinfo.h"
#include "buildmanager.h"
#include "buildsettingspropertiespage.h"
#include "ipotentialkit.h"
#include "kit.h"
#include "kitmanager.h"
-#include "kitoptionspage.h"
#include "panelswidget.h"
#include "project.h"
#include "projectexplorer.h"
-#include "projectimporter.h"
-#include "projecttree.h"
#include "projectwindow.h"
#include "runsettingspropertiespage.h"
#include "session.h"
@@ -48,8 +44,6 @@
#include <coreplugin/coreconstants.h>
#include <coreplugin/modemanager.h>
-#include <extensionsystem/pluginmanager.h>
-
#include <utils/algorithm.h>
#include <utils/qtcassert.h>
#include <utils/treemodel.h>
@@ -58,7 +52,6 @@
#include <QCoreApplication>
#include <QApplication>
#include <QDialogButtonBox>
-#include <QFileDialog>
#include <QLabel>
#include <QMenu>
#include <QMessageBox>
@@ -136,6 +129,7 @@ TargetSetupPageWrapper::TargetSetupPageWrapper(Project *project)
m_targetSetupPage->setProjectPath(project->projectFilePath().toString());
m_targetSetupPage->setRequiredKitMatcher(project->requiredKitMatcher());
m_targetSetupPage->setPreferredKitMatcher(project->preferredKitMatcher());
+ m_targetSetupPage->setProjectImporter(project->projectImporter());
m_targetSetupPage->initializePage();
m_targetSetupPage->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
updateNoteText();
@@ -218,7 +212,6 @@ public:
void handleTargetRemoved(Target *target);
void handleTargetChanged(Target *target);
- void importTarget(const Utils::FileName &path);
void ensureWidget();
void rebuildContents();
@@ -278,34 +271,6 @@ void TargetGroupItemPrivate::ensureWidget()
}
}
-void TargetGroupItemPrivate::importTarget(const Utils::FileName &path)
-{
- ProjectImporter *importer = m_project->projectImporter();
- if (!importer)
- return;
-
- Target *target = nullptr;
- BuildConfiguration *bc = nullptr;
- QList<BuildInfo *> toImport = importer->import(path, false);
- foreach (BuildInfo *info, toImport) {
- target = m_project->target(info->kitId);
- if (!target) {
- target = m_project->createTarget(KitManager::find(info->kitId));
- m_project->addTarget(target);
- }
- bc = info->factory()->create(target, info);
- QTC_ASSERT(bc, continue);
- target->addBuildConfiguration(bc);
- }
-
- SessionManager::setActiveTarget(m_project, target, SetActive::Cascade);
-
- if (target && bc)
- SessionManager::setActiveBuildConfiguration(target, bc, SetActive::Cascade);
-
- qDeleteAll(toImport);
-}
-
//
// Third level: The per-kit entries (inactive or with a 'Build' and a 'Run' subitem)
//
@@ -498,16 +463,6 @@ public:
} else {
copyMenu->setEnabled(false);
}
-
- menu->addSeparator();
-
- QAction *manageKits = menu->addAction(tr("Manage Kits"));
- QObject::connect(manageKits, &QAction::triggered, menu, [this] {
- KitOptionsPage *page = ExtensionSystem::PluginManager::getObject<KitOptionsPage>();
- if (page)
- page->showKit(KitManager::find(m_kitId));
- ICore::showOptionsDialog(Constants::KITS_SETTINGS_PAGE_ID, ICore::mainWindow());
- });
}
bool isEnabled() const { return target() != 0; }
@@ -605,6 +560,9 @@ public:
case ActiveItemRole:
return QVariant::fromValue<TreeItem *>(const_cast<BuildOrRunItem *>(this));
+ case KitIdRole:
+ return m_kitId.toSetting();
+
case Qt::DecorationRole:
return Utils::Icons::EMPTY14.icon();
@@ -742,15 +700,6 @@ TargetGroupItem::~TargetGroupItem()
TargetGroupItemPrivate::TargetGroupItemPrivate(TargetGroupItem *q, Project *project)
: q(q), m_project(project)
{
- if (project->projectImporter()) {
- auto importAction = new QAction(tr("Import existing build..."), 0);
- QObject::connect(importAction, &QAction::triggered, [this] {
- QString dir = m_project->projectDirectory().toString();
- QString toImport = QFileDialog::getExistingDirectory(ICore::mainWindow(), tr("Import directory"), dir);
- importTarget(FileName::fromString(toImport));
- });
- }
-
// force a signal since the index has changed
connect(KitManager::instance(), &KitManager::kitAdded,
this, &TargetGroupItemPrivate::handleAddedKit);