diff options
Diffstat (limited to 'src/plugins/qnx/qnxrunconfiguration.cpp')
-rw-r--r-- | src/plugins/qnx/qnxrunconfiguration.cpp | 68 |
1 files changed, 22 insertions, 46 deletions
diff --git a/src/plugins/qnx/qnxrunconfiguration.cpp b/src/plugins/qnx/qnxrunconfiguration.cpp index 592f5a8692..0b4c184e73 100644 --- a/src/plugins/qnx/qnxrunconfiguration.cpp +++ b/src/plugins/qnx/qnxrunconfiguration.cpp @@ -26,17 +26,12 @@ #include "qnxrunconfiguration.h" #include "qnxconstants.h" -#include "qnxdevicefactory.h" #include <projectexplorer/runnables.h> -#include <projectexplorer/target.h> - -#include <remotelinux/remotelinuxrunconfigurationwidget.h> #include <utils/environment.h> -#include <QLabel> -#include <QLineEdit> +#include <QFormLayout> using namespace ProjectExplorer; using namespace RemoteLinux; @@ -44,60 +39,41 @@ using namespace RemoteLinux; namespace Qnx { namespace Internal { -const char QtLibPathKey[] = "Qt4ProjectManager.QnxRunConfiguration.QtLibPath"; - QnxRunConfiguration::QnxRunConfiguration(Target *target) : RemoteLinuxRunConfiguration(target, Constants::QNX_QNX_RUNCONFIGURATION_PREFIX) -{} +{ + auto libAspect = new QtLibPathAspect(this); + libAspect->setSettingsKey("Qt4ProjectManager.QnxRunConfiguration.QtLibPath"); + libAspect->setLabelText(tr("Path to Qt libraries on device")); + addExtraAspect(libAspect); +} Runnable QnxRunConfiguration::runnable() const { auto r = RemoteLinuxRunConfiguration::runnable().as<StandardRunnable>(); - if (!m_qtLibPath.isEmpty()) { - r.environment.appendOrSet(QLatin1String("LD_LIBRARY_PATH"), - m_qtLibPath + QLatin1String("/lib:$LD_LIBRARY_PATH")); - r.environment.appendOrSet(QLatin1String("QML_IMPORT_PATH"), - m_qtLibPath + QLatin1String("/imports:$QML_IMPORT_PATH")); - r.environment.appendOrSet(QLatin1String("QML2_IMPORT_PATH"), - m_qtLibPath + QLatin1String("/qml:$QML2_IMPORT_PATH")); - r.environment.appendOrSet(QLatin1String("QT_PLUGIN_PATH"), - m_qtLibPath + QLatin1String("/plugins:$QT_PLUGIN_PATH")); - r.environment.set(QLatin1String("QT_QPA_FONTDIR"), - m_qtLibPath + QLatin1String("/lib/fonts")); + QString libPath = extraAspect<QtLibPathAspect>()->value(); + if (!libPath.isEmpty()) { + r.environment.appendOrSet("LD_LIBRARY_PATH", libPath + "/lib:$LD_LIBRARY_PATH"); + r.environment.appendOrSet("QML_IMPORT_PATH", libPath + "/imports:$QML_IMPORT_PATH"); + r.environment.appendOrSet("QML2_IMPORT_PATH", libPath + "/qml:$QML2_IMPORT_PATH"); + r.environment.appendOrSet("QT_PLUGIN_PATH", libPath + "/plugins:$QT_PLUGIN_PATH"); + r.environment.set("QT_QPA_FONTDIR", libPath + "/lib/fonts"); } return r; } QWidget *QnxRunConfiguration::createConfigurationWidget() { - auto rcWidget = qobject_cast<RemoteLinuxRunConfigurationWidget *> - (RemoteLinuxRunConfiguration::createConfigurationWidget()); - - auto label = new QLabel(tr("Path to Qt libraries on device:")); - auto lineEdit = new QLineEdit(m_qtLibPath); - - connect(lineEdit, &QLineEdit::textChanged, - this, [this](const QString &path) { m_qtLibPath = path; }); - - rcWidget->addFormLayoutRow(label, lineEdit); + auto widget = new QWidget; + auto formLayout = new QFormLayout(widget); - return rcWidget; -} - -QVariantMap QnxRunConfiguration::toMap() const -{ - QVariantMap map(RemoteLinuxRunConfiguration::toMap()); - map.insert(QLatin1String(QtLibPathKey), m_qtLibPath); - return map; -} - -bool QnxRunConfiguration::fromMap(const QVariantMap &map) -{ - if (!RemoteLinuxRunConfiguration::fromMap(map)) - return false; + extraAspect<ExecutableAspect>()->addToMainConfigurationWidget(widget, formLayout); + extraAspect<SymbolFileAspect>()->addToMainConfigurationWidget(widget, formLayout); + extraAspect<ArgumentsAspect>()->addToMainConfigurationWidget(widget, formLayout); + extraAspect<WorkingDirectoryAspect>()->addToMainConfigurationWidget(widget, formLayout); + extraAspect<QtLibPathAspect>()->addToMainConfigurationWidget(widget, formLayout); - m_qtLibPath = map.value(QLatin1String(QtLibPathKey)).toString(); - return true; + return wrapWidget(widget); } // QnxRunConfigurationFactory |