Commit b03a981a authored by Eike Ziller's avatar Eike Ziller

Merge remote-tracking branch 'origin/3.0'

Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/shared/qbs

Change-Id: Ic6f115e3d9da32327cfe2d02d7356687dc3f60d7
parents 1f0665a3 cdc2a0f7
Qt Creator version 3.0.1 is a bugfix release.
The most important changes are listed in this document. For a complete
list of changes, see the Git log for the Qt Creator sources that
you can check out from the public Git repository. For example:
git clone git://gitorious.org/qt-creator/qt-creator.git
git log --cherry-pick --pretty=oneline v3.0.0..v3.0.1
Compilers
* MSVC
* Added detection of native 64 bit arm toolchain
* Fixed issue with duplicate entries
QMake Projects
* Fixed issue with duplicate entries when configuring projects
Debugging
* GDB and LLDB
* Added pretty printer for QTimeZone
* Fixed pretty printer for QSharedDataPointer
* Fixed display of multiple inheritance from std::list
(QTCREATORBUG-11023)
* GDB
* Fixed inserting breakpoints while application is running
(QTCREATORBUG-11084)
* Fixed display of std::array<some_struct>
* LLDB
* Fixed display of bases in case of multiple inheritance
(QTCREATORBUG-11109)
* CDB
* Fixed stepping through sources of Qt 5.2 binary package
(QTCREATORBUG-11233)
C++ Support
* Fixed selecting project to use for specific file
* Fixed completion for nested enums (QTCREATORBUG-5456)
QML Profiler
* Improved performance (QTCREATORBUG-10950)
* Fixed issue with missing details for bindings in events pane
Qt Quick Designer
* Added missing Qt Quick 2 specific properties
* Fixed crash when anchoring root item (QTCREATORBUG-11078)
* Fixed crash when dragging item from library and imports need to change
(QTCREATORBUG-11139)
* Fixed crash with invalid anchors (QTCREATORBUG-11255)
* Fixed crash when editing text without pressing enter or return key
(QTCREATORBUG-11249)
* Fixed crash with Anchors > Fill and Qt Quick Controls (QTCREATORBUG-10476)
* Fixed updating the UI when switching between states (QTCREATORBUG-10674)
FakeVim
* Fixed that user command left editor in overwrite mode (QTCREATORBUG-10460)
Platform Specific
Android
* Fixed too short timeouts when calling external tools (QTCREATORBUG-10944)
* Fixed issues with build paths with non-latin characters (QTBUG-34316)
* Fixed issue with symbol search path for debugging (QTCREATORBUG-10382)
iOS
* Improved startup performance of on-device debugging (QTCREATORBUG-10884)
* Fixed executable path shown in run configuration UI (QTCREATORBUG-11080)
* Fixed handling of control characters in application output
(QTCREATORBUG-11219)
* Fixed that custom application arguments were lost after restart
......@@ -156,6 +156,7 @@ INCLUDEPATH += \
$$IDE_SOURCE_TREE/src/libs \
$$IDE_SOURCE_TREE/tools
QTC_PLUGIN_DIRS = $$(QTC_PLUGIN_DIRS)
QTC_PLUGIN_DIRS += $$IDE_SOURCE_TREE/src/plugins
for(dir, QTC_PLUGIN_DIRS) {
INCLUDEPATH += $$dir
......
TARGET = qml2puppet
TEMPLATE = app
CONFIG += console
DESTDIR = $$[QT_INSTALL_BINS]
......
......@@ -4,4 +4,5 @@ Label {
}
LineEdit {
backendValue: backendValues.%2
}
\ No newline at end of file
Layout.fillWidth: true
}
AutoTypes {
imports: [ "import HelperWidgets 2.0", "import QtQuick 2.1" ]
imports: [ "import HelperWidgets 2.0", "import QtQuick 2.1", "import QtQuick.Layouts 1.1" ]
Type {
typeNames: ["int"]
......
......@@ -46,7 +46,7 @@ Column {
}
SecondColumnLayout {
LineEdit {
UrlChooser {
backendValue: backendValues.source
implicitWidth: 180
}
......
......@@ -7,6 +7,10 @@
<source>Advanced</source>
<translation>Дополнительно</translation>
</message>
<message>
<source>Origin</source>
<translation>Происхождение</translation>
</message>
<message>
<source>Scale</source>
<translation>Масштаб</translation>
......@@ -15,6 +19,30 @@
<source>Rotation</source>
<translation>Вращение</translation>
</message>
<message>
<source>Enabled</source>
<translation>Включено</translation>
</message>
<message>
<source>Accept mouse and keyboard events</source>
<translation>Принимать события мыши и клавиатуры</translation>
</message>
<message>
<source>Smooth</source>
<translation>Сглаживание</translation>
</message>
<message>
<source>Smooth sampling active</source>
<translation>Включение сглаживания</translation>
</message>
<message>
<source>Antialiasing</source>
<translation>Антиалиасинг</translation>
</message>
<message>
<source>Anti-aliasing active</source>
<translation>Включение антиалиасинга</translation>
</message>
</context>
<context>
<name>Analyzer</name>
......@@ -14905,7 +14933,7 @@ Commit now?</source>
</message>
<message>
<source>Git Reflog &quot;%1&quot;</source>
<translation type="unfinished">Git - reflog «%1»</translation>
<translation>Git - reflog «%1»</translation>
</message>
<message>
<source>Cannot describe &quot;%1&quot;.</source>
......@@ -15588,7 +15616,7 @@ Commit now?</source>
</message>
<message>
<source>Reflog</source>
<translation type="unfinished">Reflog</translation>
<translation>Reflog</translation>
</message>
<message>
<source>&amp;Patch</source>
......@@ -15660,7 +15688,7 @@ Commit now?</source>
</message>
<message>
<source>Git Gui</source>
<translation type="unfinished">Git Gui</translation>
<translation>Интерфейс Git</translation>
</message>
<message>
<source>Repository Browser</source>
......@@ -26374,8 +26402,12 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
<translation>Требуется импорт QtQuick.tooling.</translation>
</message>
<message>
<source>Expected version 1.1 or lower.</source>
<translation>Требуется версия 1.1 или ниже.</translation>
<source>Major version different from 1 not supported.</source>
<translation>Версия с основным номером отличным от 1 не поддерживается.</translation>
</message>
<message>
<source>Reading only version 1.1 parts.</source>
<translation>Чтение разделов версии 1.1.</translation>
</message>
<message>
<source>Expected document to contain a single object definition.</source>
......@@ -27,7 +27,9 @@
**
****************************************************************************/
import QtQuick 2.1
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
Rectangle {
id: searchBar
......@@ -38,10 +40,10 @@ Rectangle {
radius: 6
border.color: "#cccccc"
property alias placeholderText: placeHolderText.text
property alias placeholderText: lineEdit.placeholderText
property alias text: lineEdit.text
TextInput {
TextField {
id: lineEdit
anchors.topMargin: 1
anchors.left: parent.left
......@@ -50,18 +52,11 @@ Rectangle {
anchors.leftMargin: 12
anchors.fill: parent
verticalAlignment: Text.AlignVCenter
renderType: Text.NativeRendering
font.pixelSize: 14
font.family: "Helvetica"
}
NativeText {
id: placeHolderText
visible: !lineEdit.text.length
text: qsTr("Search...")
anchors.fill: lineEdit
font: lineEdit.font
verticalAlignment: Text.AlignVCenter
color: "gray"
placeholderText: qsTr("Search...")
style: TextFieldStyle {
background: Item {
}
}
}
}
......@@ -121,7 +121,7 @@ ColumnLayout {
Button {
text: qsTr("Get Started Now")
onClicked: gettingStarted.openSplitHelp("qthelp://org.qt-project.qtcreator/doc/creator-getting-started.html")
onClicked: gettingStarted.openHelp("qthelp://org.qt-project.qtcreator/doc/index.html")
}
Item {
......
......@@ -98,7 +98,7 @@ void FileNameValidatingLineEdit::setForceFirstCapitalLetter(bool b)
#define SLASHES "/\\"
static const char notAllowedCharsSubDir[] = ",^@=+{}[]~!?:&*\"|#%<>$\"'();`' ";
static const char notAllowedCharsNoSubDir[] = ",^@=+{}[]~!?:&*\"|#%<>$\"'();`' " SLASHES;
static const char notAllowedCharsNoSubDir[] = ",^@={}[]~!?:&*\"|#%<>$\"'();`' " SLASHES;
static const char *notAllowedSubStrings[] = {".."};
......
......@@ -54,7 +54,7 @@ bool ProjectNameValidatingLineEdit::validateProjectName(const QString &name, QSt
if (name.contains(QLatin1Char('.'))) {
if (errorMessage)
*errorMessage = tr("Invalid character '.'.");
return false;
return false;
}
return true;
}
......
......@@ -175,6 +175,7 @@ const char G_WINDOW_OTHER[] = "QtCreator.Group.Window.Other";
// Help groups (global)
const char G_HELP_HELP[] = "QtCreator.Group.Help.Help";
const char G_HELP_SUPPORT[] = "QtCreator.Group.Help.Supprt";
const char G_HELP_ABOUT[] = "QtCreator.Group.Help.About";
const char ICON_MINUS[] = ":/core/images/minus.png";
......
......@@ -509,6 +509,7 @@ void MainWindow::registerDefaultContainers()
menubar->addMenu(ac, Constants::G_HELP);
ac->menu()->setTitle(tr("&Help"));
ac->appendGroup(Constants::G_HELP_HELP);
ac->appendGroup(Constants::G_HELP_SUPPORT);
ac->appendGroup(Constants::G_HELP_ABOUT);
}
......@@ -744,6 +745,11 @@ void MainWindow::registerDefaultActions()
mwindow->addMenu(mviews, Constants::G_WINDOW_VIEWS);
mviews->menu()->setTitle(tr("&Views"));
// "Help" separators
mhelp->addSeparator(globalContext, Constants::G_HELP_SUPPORT);
if (!Utils::HostOsInfo::isMacHost())
mhelp->addSeparator(globalContext, Constants::G_HELP_ABOUT);
// About IDE Action
icon = QIcon::fromTheme(QLatin1String("help-about"));
if (Utils::HostOsInfo::isMacHost())
......
......@@ -229,7 +229,7 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
cmd->setDefaultKeySequence(QKeySequence(UseMacShortcuts ? tr("Meta+M") : tr("Ctrl+M")));
connect(action, SIGNAL(triggered()), this, SLOT(addBookmark()));
// Add Contents, Index, and Context menu items and a separator to the Help menu
// Add Contents, Index, and Context menu items
action = new QAction(QIcon::fromTheme(QLatin1String("help-contents")),
tr(SB_CONTENTS), this);
cmd = ActionManager::registerAction(action, "Help.Contents", globalcontext);
......@@ -247,30 +247,16 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F1));
connect(action, SIGNAL(triggered()), this, SLOT(activateContext()));
if (!Utils::HostOsInfo::isMacHost()) {
action = new QAction(this);
action->setSeparator(true);
cmd = ActionManager::registerAction(action, "Help.Separator", globalcontext);
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
}
action = new QAction(tr("Technical Support"), this);
cmd = ActionManager::registerAction(action, "Help.TechSupport", globalcontext);
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_SUPPORT);
connect(action, SIGNAL(triggered()), this, SLOT(slotOpenSupportPage()));
action = new QAction(tr("Report Bug..."), this);
cmd = ActionManager::registerAction(action, "Help.ReportBug", globalcontext);
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_SUPPORT);
connect(action, SIGNAL(triggered()), this, SLOT(slotReportBug()));
if (!Utils::HostOsInfo::isMacHost()) {
action = new QAction(this);
action->setSeparator(true);
cmd = ActionManager::registerAction(action, "Help.Separator2", globalcontext);
ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
}
action = new QAction(this);
ActionManager::registerAction(action, Core::Constants::PRINT, modecontext);
connect(action, SIGNAL(triggered()), m_centralWidget, SLOT(print()));
......
......@@ -54,6 +54,8 @@ using namespace QmakeProjectManager;
namespace Ios {
namespace Internal {
const QLatin1String runConfigurationKey("Ios.run_arguments");
class IosRunConfigurationWidget : public RunConfigWidget
{
Q_OBJECT
......@@ -84,6 +86,7 @@ IosRunConfiguration::IosRunConfiguration(Target *parent, Core::Id id, const QStr
IosRunConfiguration::IosRunConfiguration(Target *parent, IosRunConfiguration *source)
: RunConfiguration(parent, source)
, m_profilePath(source->m_profilePath)
, m_arguments(source->m_arguments)
{
init();
}
......@@ -194,6 +197,19 @@ Utils::FileName IosRunConfiguration::exePath() const
return bundleDir().appendPath(appName());
}
bool IosRunConfiguration::fromMap(const QVariantMap &map)
{
m_arguments = map.value(runConfigurationKey).toStringList();
return RunConfiguration::fromMap(map);
}
QVariantMap IosRunConfiguration::toMap() const
{
QVariantMap res = RunConfiguration::toMap();
res[runConfigurationKey] = m_arguments;
return res;
}
IosRunConfigurationWidget::IosRunConfigurationWidget(IosRunConfiguration *runConfiguration) :
m_ui(new Ui::IosRunConfiguration), m_runConfiguration(runConfiguration)
{
......
......@@ -61,6 +61,9 @@ public:
Utils::FileName bundleDir() const;
Utils::FileName exePath() const;
bool fromMap(const QVariantMap &map) QTC_OVERRIDE;
QVariantMap toMap() const QTC_OVERRIDE;
protected:
IosRunConfiguration(ProjectExplorer::Target *parent, IosRunConfiguration *source);
QString defaultDisplayName();
......
......@@ -29,6 +29,8 @@
#include "fileresourcesmodel.h"
#include <coreplugin/icore.h>
#include <model.h>
#include <QFileDialog>
......@@ -130,7 +132,7 @@ void FileResourcesModel::openFileDialog()
if (!QFileInfo(path).exists())
path = modelPath;
QString newFile = QFileDialog::getOpenFileName(0, tr("Open File"), path, m_filter);
QString newFile = QFileDialog::getOpenFileName(Core::ICore::mainWindow(), tr("Open File"), path, m_filter);
if (!newFile.isEmpty()) {
setFileNameStr(newFile);
......
......@@ -42,17 +42,20 @@ StatesEditorImageProvider::StatesEditorImageProvider()
QImage StatesEditorImageProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize)
{
if (m_nodeInstanceView.isNull())
return QImage();
if (!m_nodeInstanceView->model())
return QImage(); //NodeInstanceView might be detached
QSize newSize = requestedSize;
if (newSize.isEmpty())
newSize = QSize (100, 100);
if (m_nodeInstanceView.isNull() || !m_nodeInstanceView->model()) {
//NodeInstanceView might be detached
//Return white QImage
QImage image(newSize, QImage::Format_ARGB32);
image.fill(0xFFFFFFFF);
return image;
}
QString imageId = id.split(QLatin1Char('-')).first();
QImage image;
......
......@@ -397,7 +397,6 @@ Rectangle {
Component {
id: underlay
Item {
anchors.fill:parent
property variant color: parent.color
clip:true
Rectangle {
......
......@@ -65,7 +65,8 @@ IDevice::Ptr QnxDeviceConfigurationWizard::device()
sshParams.port = 22;
sshParams.timeout = 10;
sshParams.authenticationType = m_setupPage->authenticationType();
if (sshParams.authenticationType == QSsh::SshConnectionParameters::AuthenticationTypePassword)
if (sshParams.authenticationType == QSsh::SshConnectionParameters::AuthenticationTypeTryAllPasswordBasedMethods
|| sshParams.authenticationType == QSsh::SshConnectionParameters::AuthenticationTypePassword)
sshParams.password = m_setupPage->password();
else
sshParams.privateKeyFile = m_setupPage->privateKeyFilePath();
......
......@@ -78,7 +78,7 @@ static QString signalProcessByNameCommandLine(const QString &filePath, int signa
"cd /proc; for pid in `ls -d [0123456789]*`; "
"do "
"if [ \"`readlink /proc/$pid/exe`\" = \"%1\" ]; then "
" kill %2 $pid;"
" kill -%2 $pid;"
"fi; "
"done").arg(filePath).arg(signal);
}
......
......@@ -17,11 +17,29 @@ include(../qtcreator.pri)
# for substitution in the .pluginspec
dependencyList = "<dependencyList>"
for(dep, plugin_deps) {
include($$PWD/plugins/$$dep/$${dep}_dependencies.pri)
dependencies_file =
for(dir, QTC_PLUGIN_DIRS) {
exists($$dir/$$dep/$${dep}_dependencies.pri) {
dependencies_file = $$dir/$$dep/$${dep}_dependencies.pri
break()
}
}
isEmpty(dependencies_file): \
error("Plugin dependency $$dep not found")
include($$dependencies_file)
dependencyList += " <dependency name=\"$$QTC_PLUGIN_NAME\" version=\"$$QTCREATOR_VERSION\"/>"
}
for(dep, plugin_recmds) {
include($$PWD/plugins/$$dep/$${dep}_dependencies.pri)
dependencies_file =
for(dir, QTC_PLUGIN_DIRS) {
exists($$dir/$$dep/$${dep}_dependencies.pri) {
dependencies_file = $$dir/$$dep/$${dep}_dependencies.pri
break()
}
}
isEmpty(dependencies_file): \
error("Plugin dependency $$dep not found")
include($$dependencies_file)
dependencyList += " <dependency name=\"$$QTC_PLUGIN_NAME\" version=\"$$QTCREATOR_VERSION\" type=\"optional\"/>"
}
dependencyList += " </dependencyList>"
......
......@@ -508,7 +508,7 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
QString tmp = args.at(0).toQString(m_tmp1);
for (int i = 1; i < args.count(); ++i)
tmp = tmp.arg(args.at(i).toQString(m_tmp2));
ret << ProString(tmp);
ret << (tmp.isSharedWith(m_tmp1) ? args.at(0) : ProString(tmp).setSource(args.at(0)));
}
break;
case E_FORMAT_NUMBER:
......@@ -1526,7 +1526,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
if (args.count() >= 2) {
const ProStringList &vals = values(args.at(1).toKey());
if (!vals.isEmpty())
contents = vals.join(fL1S("\n")) + QLatin1Char('\n');
contents = vals.join(QLatin1Char('\n')) + QLatin1Char('\n');
if (args.count() >= 3)
if (!args.at(2).toQString(m_tmp1).compare(fL1S("append"), Qt::CaseInsensitive))
mode = QIODevice::Append;
......
......@@ -29,6 +29,7 @@
:Add to Version Control.No_QPushButton {text='No' type='QPushButton' unnamed='1' visible='1' window=':Add to Version Control_QMessageBox'}
:Add to Version Control_QMessageBox {text~='Add the file.*to version control (.*)?' type='QMessageBox' unnamed='1' visible='1'}
:Analyzer Toolbar.AnalyzerManagerToolBox_QComboBox {container=':Qt Creator.Analyzer Toolbar_QDockWidget' name='AnalyzerManagerToolBox' type='QComboBox' visible='1'}
:Analyzer Toolbar.Clear_QToolButton {container=':Qt Creator.Analyzer Toolbar_QDockWidget' toolTip='Discard data' type='QToolButton' unnamed='1' visible='1'}
:Analyzer Toolbar.Elapsed:_QLabel {container=':Qt Creator.Analyzer Toolbar_QDockWidget' text~='Elapsed: \\\\d+.\\\\d s' type='QLabel' unnamed='1' visible='1'}
:Analyzer Toolbar.Start_QToolButton {container=':Qt Creator.Analyzer Toolbar_QDockWidget' text='Start' type='QToolButton' unnamed='1' visible='1'}
:Behavior.Autocomplete common prefix_QCheckBox {container=':CppTools__Internal__CompletionSettingsPage.Behavior_QGroupBox' name='partiallyComplete' text='Autocomplete common prefix' type='QCheckBox' visible='1'}
......
......@@ -29,38 +29,9 @@
import re;
# dictionary to hold a list of all installed handler functions for all object-signalSignature pairs
installedSignalHandlers = {}
# flag to indicate whether overrideInstallLazySignalHandler() has been called already
overridenInstallLazySignalHandlers = False
# flag to indicate whether a tasks file should be created when building ends with errors
createTasksFileOnError = True
# call this function to override installLazySignalHandler()
def overrideInstallLazySignalHandler():
global overridenInstallLazySignalHandlers
if overridenInstallLazySignalHandlers:
return
overridenInstallLazySignalHandlers = True
global installLazySignalHandler
installLazySignalHandler = __addSignalHandlerDict__(installLazySignalHandler)
# avoids adding a handler to a signal twice or more often
# do not call this function directly - use overrideInstallLazySignalHandler() instead
def __addSignalHandlerDict__(lazySignalHandlerFunction):
global installedSignalHandlers
def wrappedFunction(name, signalSignature, handlerFunctionName):
handlers = installedSignalHandlers.get("%s____%s" % (name,signalSignature))
if handlers == None:
lazySignalHandlerFunction(name, signalSignature, handlerFunctionName)
installedSignalHandlers.setdefault("%s____%s" % (name,signalSignature), [handlerFunctionName])
else:
if not handlerFunctionName in handlers:
lazySignalHandlerFunction(name, signalSignature, handlerFunctionName)
handlers.append(handlerFunctionName)
installedSignalHandlers.setdefault("%s____%s" % (name,signalSignature), handlers)
return wrappedFunction
# this method checks the last build (if there's one) and logs the number of errors, warnings and
# lines within the Issues output
# optional parameter can be used to tell this function if the build was expected to fail or not
......@@ -105,6 +76,13 @@ def compileSucceeded(compileOutput):
return None != re.match(".*exited normally\.\n\d\d:\d\d:\d\d: Elapsed time: "
"(\d:)?\d{2}:\d\d\.$", str(compileOutput), re.S)
def waitForCompile(timeout=60000):
progressBarWait(10000) # avoids switching to Issues pane after checking Compile Output
ensureChecked(":Qt Creator_CompileOutput_Core::Internal::OutputPaneToggleButton")
output = waitForObject(":Qt Creator.Compile Output_Core::OutputWindow")
if not waitFor("re.match('.*Elapsed time: (\d:)?\d{2}:\d\d\.$', str(output.plainText), re.S)", timeout):
test.warning("Waiting for compile timed out after %d s." % (timeout / 1000))
def dumpBuildIssues(listModel):
issueDump = []
for row in range(listModel.rowCount()):
......@@ -254,7 +232,8 @@ def runVerify(checkedTargets):
for kit, config in availableConfigs:
selectBuildConfig(len(checkedTargets), kit, config)
test.log("Using build config '%s'" % config)
if not runAndCloseApp():
return
if runAndCloseApp() == None:
checkCompile()
continue
verifyBuildAndRun()
mouseClick(waitForObject(":*Qt Creator.Clear_QToolButton"))
......@@ -136,13 +136,16 @@ class SubprocessType:
USER_DEFINED=3
@staticmethod
def getWindowType(subprocessType):
def getWindowType(subprocessType, qtQuickVersion=1):
if subprocessType == SubprocessType.QT_WIDGET:
return "QMainWindow"
if subprocessType == SubprocessType.QT_QUICK_APPLICATION:
return "QmlApplicationViewer"
return "QtQuick%dApplicationViewer" % qtQuickVersion
if subprocessType == SubprocessType.QT_QUICK_UI:
return "QDeclarativeViewer"
if qtQuickVersion == 1:
return "QDeclarativeViewer"
else:
return "QQuickView"
if subprocessType == SubprocessType.USER_DEFINED:
return "user-defined"
test.fatal("Could not determine the WindowType for SubprocessType %s" % subprocessType)
......
......@@ -68,6 +68,11 @@ def modifyRunSettingsForHookInto(projectName, kitCount, port):
changingVars.append("SQUISH_LIBQTDIR=%s" % replacement)
else:
changingVars.append(varName)
elif varName == "DYLD_FRAMEWORK_PATH" and platform.system() == 'Darwin':
value = str(model.data(model.index(index.row, 1)).toString())
test.log("Adding %s to DYLD_FRAMEWORK_PATH" % qtLibPath)
replacement = ":".join(filter(len, [qtLibPath, value]))