From 09faf55f703f7e5ba88ebc4ca3d850e3a8736a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20N=C3=A4tterlund?= Date: Tue, 16 Oct 2012 13:09:37 +0200 Subject: [PATCH 01/16] QNX: Fix environment file parser for newer BB NDK The newer NDK specifies the QNX_HOST_VERSION and QNX_TARGET_VERSION separately, extend the parser to support assignments such as QNX_HOST_VERSION=${QNX_HOST_VERSION:=10_0_9_52} and the Windows equivalent Change-Id: I728fa0f6a4f0bd3b435d408794da1a6c8a93bd37 Reviewed-by: Mehdi Fekari Reviewed-by: Thomas McGuire Reviewed-by: Nicolas Arnaud-Cormos --- src/plugins/qnx/blackberryqtversion.cpp | 38 ++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/src/plugins/qnx/blackberryqtversion.cpp b/src/plugins/qnx/blackberryqtversion.cpp index 70eb76c91ad..efa8614abfa 100644 --- a/src/plugins/qnx/blackberryqtversion.cpp +++ b/src/plugins/qnx/blackberryqtversion.cpp @@ -33,6 +33,7 @@ #include "qnxconstants.h" +#include #include #include @@ -56,12 +57,41 @@ QMultiMap parseEnvironmentFile(const QString &fileName) if (!line.contains(QLatin1Char('='))) continue; - const QStringList lineContent = line.split(QLatin1Char('=')); - QString var = lineContent.value(0); + int equalIndex = line.indexOf(QLatin1Char('=')); + QString var = line.left(equalIndex); //Remove set in front if (var.startsWith(QLatin1String("set "))) var = var.right(var.size() - 4); - QString value = lineContent.value(1).section(QLatin1Char('"'), 0, -1, QString::SectionSkipEmpty); + + QString value = line.mid(equalIndex + 1); + +#if defined Q_OS_WIN + QRegExp systemVarRegExp(QLatin1String("IF NOT DEFINED ([\\w\\d]+)\\s+set ([\\w\\d]+)=([\\w\\d]+)")); + if (line.contains(systemVarRegExp)) { + var = systemVarRegExp.cap(2); + Utils::Environment sysEnv = Utils::Environment::systemEnvironment(); + QString sysVar = systemVarRegExp.cap(1); + if (sysEnv.hasKey(sysVar)) + value = sysEnv.value(sysVar); + else + value = systemVarRegExp.cap(3); + } +#elif defined Q_OS_UNIX + QRegExp systemVarRegExp(QLatin1String("\\$\\{([\\w\\d]+):=([\\w\\d]+)\\}")); // to match e.g. "${QNX_HOST_VERSION:=10_0_9_52}" + if (value.contains(systemVarRegExp)) { + Utils::Environment sysEnv = Utils::Environment::systemEnvironment(); + QString sysVar = systemVarRegExp.cap(1); + if (sysEnv.hasKey(sysVar)) + value = sysEnv.value(sysVar); + else + value = systemVarRegExp.cap(2); + } +#endif + + if (value.startsWith(QLatin1Char('"'))) + value = value.mid(1); + if (value.endsWith(QLatin1Char('"'))) + value = value.left(value.size() - 1); fileContent[var] = value; } @@ -79,7 +109,7 @@ QMultiMap parseEnvironmentFile(const QString &fileName) foreach (const QString &value, values) { const QString ownKeyAsWindowsVar = QLatin1Char('%') + key + QLatin1Char('%'); const QString ownKeyAsUnixVar = QLatin1Char('$') + key; - if (!value.contains(ownKeyAsWindowsVar) && !value.contains(ownKeyAsUnixVar)) { + if (value != ownKeyAsUnixVar && value != ownKeyAsWindowsVar) { // to ignore e.g. PATH=$PATH QString val = value; if (val.contains(QLatin1Char('%')) || val.contains(QLatin1Char('$'))) { QMapIterator replaceIt(fileContent); From f6d5ba9b1a66dda3b1e19a03d7e3b2da4f0642be Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Tue, 16 Oct 2012 17:19:59 +0200 Subject: [PATCH 02/16] CMake: Reparse .cbp files on swtiching targets Also fix the code to not reparse the wrong file if the bc for a non active target would be changed. Task-number: QTCREATORBUG-8063 Change-Id: I40be4bbb1a5ef6ccc78515f153534a7304cae0e1 Reviewed-by: Tobias Hunger --- .../cmakeprojectmanager/cmakeproject.cpp | 30 ++++++++++++++----- .../cmakeprojectmanager/cmakeproject.h | 5 +++- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index e141fcbb224..386c27cd65e 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -98,6 +98,7 @@ static inline QString formWindowEditorContents(const QObject *editor) */ CMakeProject::CMakeProject(CMakeManager *manager, const QString &fileName) : m_manager(manager), + m_activeTarget(0), m_fileName(fileName), m_rootNode(new CMakeProjectNode(m_fileName)), m_lastEditor(0) @@ -107,8 +108,6 @@ CMakeProject::CMakeProject(CMakeManager *manager, const QString &fileName) m_file = new CMakeFile(this, fileName); - connect(this, SIGNAL(addedTarget(ProjectExplorer::Target*)), - SLOT(targetAdded(ProjectExplorer::Target*))); connect(this, SIGNAL(buildTargetsChanged()), this, SLOT(updateRunConfigurations())); } @@ -139,7 +138,7 @@ void CMakeProject::fileChanged(const QString &fileName) void CMakeProject::changeActiveBuildConfiguration(ProjectExplorer::BuildConfiguration *bc) { - if (!bc || bc->target() != activeTarget()) + if (!bc) return; CMakeBuildConfiguration *cmakebc = static_cast(bc); @@ -170,13 +169,22 @@ void CMakeProject::changeActiveBuildConfiguration(ProjectExplorer::BuildConfigur parseCMakeLists(); } -void CMakeProject::targetAdded(ProjectExplorer::Target *t) +void CMakeProject::activeTargetWasChanged(Target *target) { - if (!t) + if (m_activeTarget) { + disconnect(m_activeTarget, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), + this, SLOT(changeActiveBuildConfiguration(ProjectExplorer::BuildConfiguration*))); + } + + m_activeTarget = target; + + if (!m_activeTarget) return; - connect(t, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), - SLOT(changeActiveBuildConfiguration(ProjectExplorer::BuildConfiguration*))); + connect(m_activeTarget, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), + this, SLOT(changeActiveBuildConfiguration(ProjectExplorer::BuildConfiguration*))); + + changeActiveBuildConfiguration(m_activeTarget->activeBuildConfiguration()); } void CMakeProject::changeBuildDirectory(CMakeBuildConfiguration *bc, const QString &newBuildDirectory) @@ -604,6 +612,14 @@ bool CMakeProject::fromMap(const QVariantMap &map) connect(ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager(), SIGNAL(buildStateChanged(ProjectExplorer::Project*)), this, SLOT(buildStateChanged(ProjectExplorer::Project*))); + m_activeTarget = activeTarget(); + if (m_activeTarget) + connect(m_activeTarget, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), + this, SLOT(changeActiveBuildConfiguration(ProjectExplorer::BuildConfiguration*))); + + connect(this, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)), + this, SLOT(activeTargetWasChanged(ProjectExplorer::Target*))); + return true; } diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h index 775b67ed8a6..a68596c170e 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.h +++ b/src/plugins/cmakeprojectmanager/cmakeproject.h @@ -51,6 +51,8 @@ QT_BEGIN_NAMESPACE class QFileSystemWatcher; QT_END_NAMESPACE +namespace ProjectExplorer { class Target; } + namespace CMakeProjectManager { namespace Internal { @@ -116,8 +118,8 @@ protected: private slots: void fileChanged(const QString &fileName); + void activeTargetWasChanged(ProjectExplorer::Target *target); void changeActiveBuildConfiguration(ProjectExplorer::BuildConfiguration*); - void targetAdded(ProjectExplorer::Target *); void editorChanged(Core::IEditor *editor); void editorAboutToClose(Core::IEditor *editor); @@ -135,6 +137,7 @@ private: void updateRunConfigurations(ProjectExplorer::Target *t); CMakeManager *m_manager; + ProjectExplorer::Target *m_activeTarget; QString m_fileName; CMakeFile *m_file; QString m_projectName; From 55c44bf238b26805a74a16038c8738ca8ccfb612 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 16 Oct 2012 15:07:16 +0200 Subject: [PATCH 03/16] SSH: Link Botan objects into libQtcSsh. Using Botan as a shared library is dangerous due to the use of dynamic_cast and exceptions, which both reproducibly fail to work on MacOs. Since there are no other users of Botan, we just add its objects to the SSH library. Change-Id: Ic79f081d2e1231a52feef02ef5b68761692f1110 Reviewed-by: Eike Ziller --- qtcreator.qbp | 1 - src/libs/3rdparty/3rdparty.pro | 4 -- src/libs/3rdparty/botan/botan.pri | 46 +++++++++++- src/libs/3rdparty/botan/botan.pro | 53 -------------- src/libs/3rdparty/botan/botan.qbs | 70 ------------------- .../3rdparty/precompiled_headers/botan_pch.h | 49 ------------- src/libs/libs.pro | 1 - src/libs/ssh/ssh.pro | 2 + src/libs/ssh/ssh.qbs | 49 +++++++++++-- src/libs/ssh/ssh_dependencies.pri | 1 - .../qt4projectmanager/qt4projectmanager.qbs | 1 - .../qt4projectmanager_dependencies.pri | 1 - 12 files changed, 92 insertions(+), 186 deletions(-) delete mode 100644 src/libs/3rdparty/3rdparty.pro delete mode 100644 src/libs/3rdparty/botan/botan.pro delete mode 100644 src/libs/3rdparty/botan/botan.qbs delete mode 100644 src/libs/3rdparty/precompiled_headers/botan_pch.h diff --git a/qtcreator.qbp b/qtcreator.qbp index 3638fc89244..223b8620906 100644 --- a/qtcreator.qbp +++ b/qtcreator.qbp @@ -16,7 +16,6 @@ Project { "lib/qtcreator/qtcomponents/qtcomponents.qbs", "share/share.qbs", "share/qtcreator/translations/translations.qbs", - "src/libs/3rdparty/botan/botan.qbs", "src/libs/aggregation/aggregation.qbs", "src/libs/cplusplus/cplusplus.qbs", "src/libs/extensionsystem/extensionsystem.qbs", diff --git a/src/libs/3rdparty/3rdparty.pro b/src/libs/3rdparty/3rdparty.pro deleted file mode 100644 index c7babdde2c0..00000000000 --- a/src/libs/3rdparty/3rdparty.pro +++ /dev/null @@ -1,4 +0,0 @@ -TEMPLATE = subdirs -CONFIG += ordered - -SUBDIRS += botan diff --git a/src/libs/3rdparty/botan/botan.pri b/src/libs/3rdparty/botan/botan.pri index 20832c1a7aa..7845d6081ef 100644 --- a/src/libs/3rdparty/botan/botan.pri +++ b/src/libs/3rdparty/botan/botan.pri @@ -1,2 +1,46 @@ INCLUDEPATH *= $$PWD/.. -LIBS *= -l$$qtLibraryName(Botan) +HEADERS += $$PWD/botan.h +SOURCES += $$PWD/botan.cpp + +CONFIG += exceptions + +DEPENDPATH += . + +DEFINES += BOTAN_DLL="\"\"" +unix:DEFINES += BOTAN_TARGET_OS_HAS_GETTIMEOFDAY BOTAN_HAS_ALLOC_MMAP \ + BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM BOTAN_HAS_ENTROPY_SRC_EGD BOTAN_HAS_ENTROPY_SRC_FTW \ + BOTAN_HAS_ENTROPY_SRC_UNIX BOTAN_HAS_MUTEX_PTHREAD BOTAN_HAS_PIPE_UNIXFD_IO +*linux*:DEFINES += BOTAN_TARGET_OS_IS_LINUX BOTAN_TARGET_OS_HAS_CLOCK_GETTIME \ + BOTAN_TARGET_OS_HAS_DLOPEN BOTAN_TARGET_OS_HAS_GMTIME_R BOTAN_TARGET_OS_HAS_POSIX_MLOCK \ + BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE BOTAN_HAS_DYNAMIC_LOADER +macx:DEFINES += BOTAN_TARGET_OS_IS_DARWIN +*g++*:DEFINES += BOTAN_BUILD_COMPILER_IS_GCC +*clang*:DEFINES += BOTAN_BUILD_COMPILER_IS_CLANG +*icc*:DEFINES += BOTAN_BUILD_COMPILER_IS_INTEL + +win32 { + DEFINES += BOTAN_TARGET_OS_IS_WINDOWS \ + BOTAN_TARGET_OS_HAS_LOADLIBRARY BOTAN_TARGET_OS_HAS_WIN32_GET_SYSTEMTIME \ + BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE \ + BOTAN_HAS_DYNAMIC_LOADER BOTAN_HAS_ENTROPY_SRC_CAPI BOTAN_HAS_ENTROPY_SRC_WIN32 \ + BOTAN_HAS_MUTEX_WIN32 + + win32-msvc* { + QMAKE_CXXFLAGS += -wd4251 -wd4290 -wd4250 + DEFINES += BOTAN_BUILD_COMPILER_IS_MSVC BOTAN_TARGET_OS_HAS_GMTIME_S + } else { + QMAKE_CFLAGS += -fpermissive -finline-functions -Wno-long-long + QMAKE_CXXFLAGS += -fpermissive -finline-functions -Wno-long-long + } + LIBS += -ladvapi32 -luser32 +} + +unix:*-g++* { + QMAKE_CFLAGS += -fPIC -ansi -fpermissive -finline-functions -Wno-long-long + QMAKE_CXXFLAGS += -fPIC -ansi -fpermissive -finline-functions -Wno-long-long + QMAKE_CXXFLAGS_HIDESYMS -= -fvisibility-inlines-hidden # for ubuntu 7.04 +} + +linux*|freebsd* { + LIBS += -lrt +} diff --git a/src/libs/3rdparty/botan/botan.pro b/src/libs/3rdparty/botan/botan.pro deleted file mode 100644 index 92f2bd0f6a1..00000000000 --- a/src/libs/3rdparty/botan/botan.pro +++ /dev/null @@ -1,53 +0,0 @@ -TEMPLATE = lib -TARGET = Botan - -PRECOMPILED_HEADER = ../precompiled_headers/botan_pch.h - -CONFIG += exceptions - -include(../../../qtcreatorlibrary.pri) - -DEPENDPATH += . -INCLUDEPATH += . - -DEFINES += BOTAN_DLL=Q_DECL_EXPORT -unix:DEFINES += BOTAN_TARGET_OS_HAS_GETTIMEOFDAY BOTAN_HAS_ALLOC_MMAP \ - BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM BOTAN_HAS_ENTROPY_SRC_EGD BOTAN_HAS_ENTROPY_SRC_FTW \ - BOTAN_HAS_ENTROPY_SRC_UNIX BOTAN_HAS_MUTEX_PTHREAD BOTAN_HAS_PIPE_UNIXFD_IO -*linux*:DEFINES += BOTAN_TARGET_OS_IS_LINUX BOTAN_TARGET_OS_HAS_CLOCK_GETTIME \ - BOTAN_TARGET_OS_HAS_DLOPEN BOTAN_TARGET_OS_HAS_GMTIME_R BOTAN_TARGET_OS_HAS_POSIX_MLOCK \ - BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE BOTAN_HAS_DYNAMIC_LOADER -macx:DEFINES += BOTAN_TARGET_OS_IS_DARWIN -*g++*:DEFINES += BOTAN_BUILD_COMPILER_IS_GCC -*clang*:DEFINES += BOTAN_BUILD_COMPILER_IS_CLANG -*icc*:DEFINES += BOTAN_BUILD_COMPILER_IS_INTEL - -win32 { - DEFINES += BOTAN_TARGET_OS_IS_WINDOWS \ - BOTAN_TARGET_OS_HAS_LOADLIBRARY BOTAN_TARGET_OS_HAS_WIN32_GET_SYSTEMTIME \ - BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE \ - BOTAN_HAS_DYNAMIC_LOADER BOTAN_HAS_ENTROPY_SRC_CAPI BOTAN_HAS_ENTROPY_SRC_WIN32 \ - BOTAN_HAS_MUTEX_WIN32 - - win32-msvc* { - QMAKE_CXXFLAGS += -wd4251 -wd4290 -wd4250 - DEFINES += BOTAN_BUILD_COMPILER_IS_MSVC BOTAN_TARGET_OS_HAS_GMTIME_S - } else { - QMAKE_CFLAGS += -fpermissive -finline-functions -Wno-long-long - QMAKE_CXXFLAGS += -fpermissive -finline-functions -Wno-long-long - } - LIBS += -ladvapi32 -luser32 -} - -unix:*-g++* { - QMAKE_CFLAGS += -fPIC -ansi -fpermissive -finline-functions -Wno-long-long - QMAKE_CXXFLAGS += -fPIC -ansi -fpermissive -finline-functions -Wno-long-long - QMAKE_CXXFLAGS_HIDESYMS -= -fvisibility-inlines-hidden # for ubuntu 7.04 -} - -HEADERS += botan.h -SOURCES += botan.cpp - -linux*|freebsd* { - LIBS += -lrt -} diff --git a/src/libs/3rdparty/botan/botan.qbs b/src/libs/3rdparty/botan/botan.qbs deleted file mode 100644 index ee8afc1d033..00000000000 --- a/src/libs/3rdparty/botan/botan.qbs +++ /dev/null @@ -1,70 +0,0 @@ -import qbs.base 1.0 -import "../../QtcLibrary.qbs" as QtcLibrary - -QtcLibrary { - name: "Botan" - - Depends { name: "cpp" } - Depends { name: "Qt.core" } - - cpp.includePaths: '.' - cpp.dynamicLibraries: { - if (qbs.targetOS == "windows") { - return [ - "advapi32", - "user32" - ] - } else { - return ["rt", "dl"] - } - } - - cpp.defines: { - var result = ["BOTAN_DLL=Q_DECL_EXPORT"] - if (qbs.toolchain == "msvc") - result.push("BOTAN_BUILD_COMPILER_IS_MSVC", "BOTAN_TARGET_OS_HAS_GMTIME_S") - if (qbs.toolchain == "gcc" || qbs.toolchain == "mingw") - result.push("BOTAN_BUILD_COMPILER_IS_GCC") - if (qbs.targetOS == "linux") - result.push("BOTAN_TARGET_OS_IS_LINUX", "BOTAN_TARGET_OS_HAS_CLOCK_GETTIME", - "BOTAN_TARGET_OS_HAS_DLOPEN", " BOTAN_TARGET_OS_HAS_GMTIME_R", - "BOTAN_TARGET_OS_HAS_POSIX_MLOCK", "BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE", - "BOTAN_HAS_DYNAMIC_LOADER", "BOTAN_TARGET_OS_HAS_GETTIMEOFDAY", - "BOTAN_HAS_ALLOC_MMAP", "BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM", - "BOTAN_HAS_ENTROPY_SRC_EGD", "BOTAN_HAS_ENTROPY_SRC_FTW", - "BOTAN_HAS_ENTROPY_SRC_UNIX", "BOTAN_HAS_MUTEX_PTHREAD", "BOTAN_HAS_PIPE_UNIXFD_IO") - if (qbs.targetOS == "mac") - result.push("BOTAN_TARGET_OS_IS_DARWIN", "BOTAN_TARGET_OS_HAS_GETTIMEOFDAY", - "BOTAN_HAS_ALLOC_MMAP", "BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM", - "BOTAN_HAS_ENTROPY_SRC_EGD", "BOTAN_HAS_ENTROPY_SRC_FTW", - "BOTAN_HAS_ENTROPY_SRC_UNIX", "BOTAN_HAS_MUTEX_PTHREAD", "BOTAN_HAS_PIPE_UNIXFD_IO") - if (qbs.targetOS == "windows") - result.push("BOTAN_TARGET_OS_IS_WINDOWS", - "BOTAN_TARGET_OS_HAS_LOADLIBRARY", "BOTAN_TARGET_OS_HAS_WIN32_GET_SYSTEMTIME", - "BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK", "BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE", - "BOTAN_HAS_DYNAMIC_LOADER", "BOTAN_HAS_ENTROPY_SRC_CAPI", - "BOTAN_HAS_ENTROPY_SRC_WIN32", "BOTAN_HAS_MUTEX_WIN32") - return base.concat(result) - } - - Properties { - condition: qbs.toolchain == "mingw" - cpp.cxxFlags: [ - "-fpermissive", - "-finline-functions", - "-Wno-long-long" - ] - } - - files: [ "botan.h", "botan.cpp" ] - - ProductModule { - Depends { name: "cpp" } - cpp.linkerFlags: { - if (qbs.toolchain == "mingw") { - return ["-Wl,--enable-auto-import"] - } - } - cpp.includePaths: '..' - } -} diff --git a/src/libs/3rdparty/precompiled_headers/botan_pch.h b/src/libs/3rdparty/precompiled_headers/botan_pch.h deleted file mode 100644 index 44b36326bfd..00000000000 --- a/src/libs/3rdparty/precompiled_headers/botan_pch.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#if defined __cplusplus -#include - -#ifdef Q_WS_WIN -# define _POSIX_ -# include -# undef _POSIX_ -#endif - -#include "../botan/botan.h" - -#include -#include -#include -#include -#include -#include -#include - -#endif diff --git a/src/libs/libs.pro b/src/libs/libs.pro index 5eaf4715852..9a1da2d4ebe 100644 --- a/src/libs/libs.pro +++ b/src/libs/libs.pro @@ -5,7 +5,6 @@ QT += core gui # aggregation and extensionsystem are directly in src.pro # because of dependencies of app SUBDIRS = \ - 3rdparty \ utils \ utils/process_stub.pro \ languageutils \ diff --git a/src/libs/ssh/ssh.pro b/src/libs/ssh/ssh.pro index 2df5b0430b0..d0b90af9887 100644 --- a/src/libs/ssh/ssh.pro +++ b/src/libs/ssh/ssh.pro @@ -65,3 +65,5 @@ HEADERS = $$PWD/sshsendfacility_p.h \ $$PWD/ssh_global.h FORMS = $$PWD/sshkeycreationdialog.ui + +include(../3rdparty/botan/botan.pri) diff --git a/src/libs/ssh/ssh.qbs b/src/libs/ssh/ssh.qbs index 755bb221b39..8589cd2b4f4 100644 --- a/src/libs/ssh/ssh.qbs +++ b/src/libs/ssh/ssh.qbs @@ -4,17 +4,17 @@ import "../QtcLibrary.qbs" as QtcLibrary QtcLibrary { name: "QtcSsh" - cpp.defines: base.concat(["QSSH_LIBRARY"]) + cpp.defines: base.concat(["QSSH_LIBRARY"]).concat(botanDefines) + cpp.dynamicLibraries: botanLibs cpp.includePaths: [ ".", "..", "../..", buildDirectory - ] + ].concat(botanIncludes) Depends { name: "cpp" } Depends { name: "Qt"; submodules: ["widgets", "network" ] } - Depends { name: "Botan" } files: [ "sftpchannel.h", "sftpchannel_p.h", "sftpchannel.cpp", @@ -46,7 +46,48 @@ QtcLibrary { "sshexception_p.h", "sshpseudoterminal.h", "sshbotanconversions_p.h" - ] + ].concat(botanFiles) + + property var botanIncludes: ["../3rdparty"] + property var botanLibs: qbs.targetOS === "windows" ? ["advapi32", "user32"] : ["rt", "dl"] + property var botanDefines: { + var result = ['BOTAN_DLL=""'] + if (qbs.toolchain === "msvc") + result.push("BOTAN_BUILD_COMPILER_IS_MSVC", "BOTAN_TARGET_OS_HAS_GMTIME_S") + if (qbs.toolchain === "gcc" || qbs.toolchain === "mingw") + result.push("BOTAN_BUILD_COMPILER_IS_GCC") + if (qbs.targetOS === "linux") + result.push("BOTAN_TARGET_OS_IS_LINUX", "BOTAN_TARGET_OS_HAS_CLOCK_GETTIME", + "BOTAN_TARGET_OS_HAS_DLOPEN", " BOTAN_TARGET_OS_HAS_GMTIME_R", + "BOTAN_TARGET_OS_HAS_POSIX_MLOCK", "BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE", + "BOTAN_HAS_DYNAMIC_LOADER", "BOTAN_TARGET_OS_HAS_GETTIMEOFDAY", + "BOTAN_HAS_ALLOC_MMAP", "BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM", + "BOTAN_HAS_ENTROPY_SRC_EGD", "BOTAN_HAS_ENTROPY_SRC_FTW", + "BOTAN_HAS_ENTROPY_SRC_UNIX", "BOTAN_HAS_MUTEX_PTHREAD", "BOTAN_HAS_PIPE_UNIXFD_IO") + if (qbs.targetOS === "mac") + result.push("BOTAN_TARGET_OS_IS_DARWIN", "BOTAN_TARGET_OS_HAS_GETTIMEOFDAY", + "BOTAN_HAS_ALLOC_MMAP", "BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM", + "BOTAN_HAS_ENTROPY_SRC_EGD", "BOTAN_HAS_ENTROPY_SRC_FTW", + "BOTAN_HAS_ENTROPY_SRC_UNIX", "BOTAN_HAS_MUTEX_PTHREAD", "BOTAN_HAS_PIPE_UNIXFD_IO") + if (qbs.targetOS === "windows") + result.push("BOTAN_TARGET_OS_IS_WINDOWS", + "BOTAN_TARGET_OS_HAS_LOADLIBRARY", "BOTAN_TARGET_OS_HAS_WIN32_GET_SYSTEMTIME", + "BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK", "BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE", + "BOTAN_HAS_DYNAMIC_LOADER", "BOTAN_HAS_ENTROPY_SRC_CAPI", + "BOTAN_HAS_ENTROPY_SRC_WIN32", "BOTAN_HAS_MUTEX_WIN32") + return result + } + property var botanFiles: [ "../3rdparty/botan/botan.h", "../3rdparty/botan/botan.cpp" ] + + // For Botan. + Properties { + condition: qbs.toolchain === "mingw" + cpp.cxxFlags: [ + "-fpermissive", + "-finline-functions", + "-Wno-long-long" + ] + } ProductModule { Depends { name: "cpp" } diff --git a/src/libs/ssh/ssh_dependencies.pri b/src/libs/ssh/ssh_dependencies.pri index e2a3c96f457..e69de29bb2d 100644 --- a/src/libs/ssh/ssh_dependencies.pri +++ b/src/libs/ssh/ssh_dependencies.pri @@ -1 +0,0 @@ -include(../3rdparty/botan/botan.pri) diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.qbs b/src/plugins/qt4projectmanager/qt4projectmanager.qbs index e8421967b5c..b70d5f4d1e6 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanager.qbs +++ b/src/plugins/qt4projectmanager/qt4projectmanager.qbs @@ -12,7 +12,6 @@ QtcPlugin { Depends { name: "CppTools" } Depends { name: "Debugger" } Depends { name: "QmlJS" } - Depends { name: "Botan" } Depends { name: "CPlusPlus" } Depends { name: "TextEditor" } diff --git a/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri b/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri index 298cf1cb8a9..2f469a603d1 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri +++ b/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri @@ -3,4 +3,3 @@ include(../../plugins/qtsupport/qtsupport.pri) include(../../plugins/cpptools/cpptools.pri) include(../../plugins/debugger/debugger.pri) include(../../libs/qmljs/qmljs.pri) -include(../../libs/3rdparty/botan/botan.pri) From e0a7c98507c38e152d2cfcf691ef62825adc7f43 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 17 Oct 2012 10:38:22 +0200 Subject: [PATCH 04/16] Remove experimental flag from QNX plugin. Change-Id: I3a3beced9001580ce15a74431ed73c52f432de44 Reviewed-by: hjk --- src/plugins/qnx/Qnx.pluginspec.in | 2 +- src/plugins/qnx/qnx.pro | 3 --- src/plugins/qnx/qnx.qbs | 3 --- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/plugins/qnx/Qnx.pluginspec.in b/src/plugins/qnx/Qnx.pluginspec.in index ffb9e6e584f..864ed1b5534 100644 --- a/src/plugins/qnx/Qnx.pluginspec.in +++ b/src/plugins/qnx/Qnx.pluginspec.in @@ -1,4 +1,4 @@ - + Research In Motion (C) 2012 Research In Motion diff --git a/src/plugins/qnx/qnx.pro b/src/plugins/qnx/qnx.pro index ed729e954f8..5bc1501bab2 100644 --- a/src/plugins/qnx/qnx.pro +++ b/src/plugins/qnx/qnx.pro @@ -3,9 +3,6 @@ TARGET = Qnx QT += network xml PROVIDER = RIM -isEmpty(QNX_ENABLE):QNX_EXPERIMENTAL_STR="true" -else:QNX_EXPERIMENTAL_STR="false" - include(../../qtcreatorplugin.pri) include(qnx_dependencies.pri) diff --git a/src/plugins/qnx/qnx.qbs b/src/plugins/qnx/qnx.qbs index 27e89f17c9c..a23e9c1146c 100644 --- a/src/plugins/qnx/qnx.qbs +++ b/src/plugins/qnx/qnx.qbs @@ -14,9 +14,6 @@ QtcPlugin { Depends { name: "RemoteLinux" } Depends { name: "Qt"; submodules: ["widgets", "xml", "network"] } - property bool enable: false - property var pluginspecreplacements: ({"QNX_EXPERIMENTAL_STR": (enable ? "false" : "true")}) - cpp.defines: base.concat(["QT_NO_CAST_TO_ASCII", "QT_NO_CAST_FROM_ASCII"]) cpp.includePaths: [ "..", From 09c7f93e8d8e73a59a6eef51526155a07a6db54a Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Tue, 16 Oct 2012 21:17:11 +0200 Subject: [PATCH 05/16] Fix qbs build Change-Id: I73bed3284d491338359c730375c2b81d947dd5a4 Reviewed-by: Christian Kandeler --- src/libs/3rdparty/botan/botan.pri | 2 +- src/libs/ssh/ssh.qbs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/3rdparty/botan/botan.pri b/src/libs/3rdparty/botan/botan.pri index 7845d6081ef..1088c997326 100644 --- a/src/libs/3rdparty/botan/botan.pri +++ b/src/libs/3rdparty/botan/botan.pri @@ -6,7 +6,7 @@ CONFIG += exceptions DEPENDPATH += . -DEFINES += BOTAN_DLL="\"\"" +DEFINES += BOTAN_DLL= unix:DEFINES += BOTAN_TARGET_OS_HAS_GETTIMEOFDAY BOTAN_HAS_ALLOC_MMAP \ BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM BOTAN_HAS_ENTROPY_SRC_EGD BOTAN_HAS_ENTROPY_SRC_FTW \ BOTAN_HAS_ENTROPY_SRC_UNIX BOTAN_HAS_MUTEX_PTHREAD BOTAN_HAS_PIPE_UNIXFD_IO diff --git a/src/libs/ssh/ssh.qbs b/src/libs/ssh/ssh.qbs index 8589cd2b4f4..052e80fabc2 100644 --- a/src/libs/ssh/ssh.qbs +++ b/src/libs/ssh/ssh.qbs @@ -51,7 +51,7 @@ QtcLibrary { property var botanIncludes: ["../3rdparty"] property var botanLibs: qbs.targetOS === "windows" ? ["advapi32", "user32"] : ["rt", "dl"] property var botanDefines: { - var result = ['BOTAN_DLL=""'] + var result = ['BOTAN_DLL='] if (qbs.toolchain === "msvc") result.push("BOTAN_BUILD_COMPILER_IS_MSVC", "BOTAN_TARGET_OS_HAS_GMTIME_S") if (qbs.toolchain === "gcc" || qbs.toolchain === "mingw") From 0866cc6f26c269ae7203b94785e0c7b6b554b20b Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 17 Oct 2012 10:14:51 +0200 Subject: [PATCH 06/16] QtcPlugin.qbs: use the right name binding in Group We're going to add the property Group.name in qbs. Consequently, Groups must use product.name when accessing the name of the product. Change-Id: Id2527300a8a7c26bb742d4111f9d47ded6c492b1 Reviewed-by: Orgad Shaneh Reviewed-by: Christian Kandeler --- src/plugins/QtcPlugin.qbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/QtcPlugin.qbs b/src/plugins/QtcPlugin.qbs index e1eaff2ca6c..8ed4ce13c08 100644 --- a/src/plugins/QtcPlugin.qbs +++ b/src/plugins/QtcPlugin.qbs @@ -29,7 +29,7 @@ Product { } Group { - files: [ name + ".pluginspec.in" ] + files: [ product.name + ".pluginspec.in" ] fileTags: ["pluginSpecIn"] } } From 6e72163b40b213cec38b5ee36b37f2f2b436ebc9 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Tue, 16 Oct 2012 18:49:46 +0200 Subject: [PATCH 07/16] QmlProject: Enable runconfiguratons after restore Task-number: QTCREATORBUG-7980 Change-Id: I180bfc999421a13f25f41487d7498f652432b1c5 Reviewed-by: Kai Koehne --- src/plugins/qmlprojectmanager/qmlproject.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index 520c94701de..abd4f2e5a46 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -74,9 +74,6 @@ QmlProject::QmlProject(Internal::Manager *manager, const QString &fileName) Core::DocumentManager::addDocument(m_file, true); m_manager->registerProject(this); - - connect(this, SIGNAL(addedTarget(ProjectExplorer::Target*)), - this, SLOT(addedTarget(ProjectExplorer::Target*))); } QmlProject::~QmlProject() @@ -329,6 +326,15 @@ bool QmlProject::fromMap(const QVariantMap &map) addTarget(createTarget(defaultKit)); refresh(Everything); + + // addedTarget calls updateEnabled on the runconfigurations + // which needs to happen after refresh + foreach (ProjectExplorer::Target *t, targets()) + addedTarget(t); + + connect(this, SIGNAL(addedTarget(ProjectExplorer::Target*)), + this, SLOT(addedTarget(ProjectExplorer::Target*))); + return true; } From 342f684277d07536a0bbdfb63304ee6c16f6ba00 Mon Sep 17 00:00:00 2001 From: Christiaan Janssen Date: Tue, 16 Oct 2012 14:52:35 +0200 Subject: [PATCH 08/16] QmlProfiler: Detect interrupted execution Task-number: QTCREATORBUG-8022 The profiler would switch to state "AppKilled" if the connection was cut before all the profiling data could be read. With Qt4.8, however, the application dies before any data is sent at all, and such state would never be reached. This patch fixes the flow of states and properly detects when an application started profiling successfully but dies before delivering the data. If the application doesn't run at all (for example, launching a QtQuick1.1 app from Qt5), the profiler fails gracefully without showing the error dialog. Change-Id: I6fc53127b5dfe41de112e140b77895d430d3f79c Reviewed-by: Kai Koehne --- src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp | 5 +++++ src/plugins/qmlprofiler/qmlprofilerdatamodel.h | 1 + src/plugins/qmlprofiler/qmlprofilertool.cpp | 2 ++ 3 files changed, 8 insertions(+) diff --git a/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp b/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp index 4dfd866fbe4..642db1bde48 100644 --- a/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp @@ -290,6 +290,11 @@ void QmlProfilerDataModel::clear() setState(Empty); } +void QmlProfilerDataModel::prepareForWriting() +{ + setState(AcquiringData); +} + void QmlProfilerDataModel::addRangedEvent(int type, int bindingType, qint64 startTime, qint64 length, const QStringList &data, const QmlDebug::QmlEventLocation &location) diff --git a/src/plugins/qmlprofiler/qmlprofilerdatamodel.h b/src/plugins/qmlprofiler/qmlprofilerdatamodel.h index 9ad3b14efab..a39bacaf58c 100644 --- a/src/plugins/qmlprofiler/qmlprofilerdatamodel.h +++ b/src/plugins/qmlprofiler/qmlprofilerdatamodel.h @@ -165,6 +165,7 @@ signals: public slots: void clear(); + void prepareForWriting(); void addRangedEvent(int type, int bindingType, qint64 startTime, qint64 length, const QStringList &data, const QmlDebug::QmlEventLocation &location); void addV8Event(int depth,const QString &function,const QString &filename, int lineNumber, double totalTime, double selfTime); diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index 9e6a44cfd6b..8b539bfa270 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -692,6 +692,7 @@ void QmlProfilerTool::profilerStateChanged() } case QmlProfilerStateManager::AppKilled : { showNonmodalWarning(tr("Application finished before loading profiled data.\nPlease use the stop button instead.")); + d->m_profilerDataModel->clear(); break; } case QmlProfilerStateManager::Idle : @@ -720,6 +721,7 @@ void QmlProfilerTool::serverRecordingChanged() // clear the old data each time we start a new profiling session if (d->m_profilerState->serverRecording()) { clearData(); + d->m_profilerDataModel->prepareForWriting(); } } } From b0107204837abd2ef1efb69434559173fd223e83 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Thu, 11 Oct 2012 14:09:22 +0200 Subject: [PATCH 09/16] Squish: Removed workaround Bug is fixed in Qt 4.8.3 Task-number: QTCREATORBUG-7215 Change-Id: Idccfa11bf23ef4ed1962a8f84cf039b3de2bb8ea Reviewed-by: Christian Stenger --- tests/system/suite_general/tst_select_all/test.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/system/suite_general/tst_select_all/test.py b/tests/system/suite_general/tst_select_all/test.py index 5c101629ae0..da1e18333c5 100644 --- a/tests/system/suite_general/tst_select_all/test.py +++ b/tests/system/suite_general/tst_select_all/test.py @@ -43,9 +43,6 @@ def main(): pos = size if key == "": pos -= 1 - if JIRA.isBugStillOpen(7215, JIRA.Bug.CREATOR): - test.warning("Using workaround for %s-%d" % (JIRA.Bug.CREATOR, 7215)) - pos = 0 test.compare(editor.textCursor().selectionStart(), pos) test.compare(editor.textCursor().selectionEnd(), pos) test.compare(editor.textCursor().position(), pos) From 2a66ab6d640ca63b69540e00d6ce086f7298a3bc Mon Sep 17 00:00:00 2001 From: Christiaan Janssen Date: Wed, 17 Oct 2012 15:51:28 +0200 Subject: [PATCH 10/16] QmlProfiler: prevent details pop-ups to leave screen Task-number: QTCREATORBUG-8058 Change-Id: Id20e9d0573ee52bd0965a4e56c51df2aee6d2fa2 Reviewed-by: Christian Stenger --- src/plugins/qmlprofiler/qml/RangeDetails.qml | 26 +++++++++++++++++++ .../qmlprofiler/qml/SelectionRangeDetails.qml | 26 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/plugins/qmlprofiler/qml/RangeDetails.qml b/src/plugins/qmlprofiler/qml/RangeDetails.qml index 90b6dfc475b..5c8117cdbdc 100644 --- a/src/plugins/qmlprofiler/qml/RangeDetails.qml +++ b/src/plugins/qmlprofiler/qml/RangeDetails.qml @@ -55,6 +55,28 @@ Item { property int relativey : y - yoffset onYChanged: relativey = y - yoffset + // keep inside view + Connections { + target: root + onWidthChanged: fitInView(); + onCandidateHeightChanged: fitInView(); + } + + function fitInView() { + // don't reposition if it does not fit + if (root.width < width || root.candidateHeight < height) + return; + + if (x + width > root.width) + x = root.width - width; + if (x < 0) + x = 0; + if (y + height > root.candidateHeight) + y = root.candidateHeight - height; + if (y < 0) + y = 0; + } + // shadow BorderImage { property int px: 4 @@ -163,6 +185,10 @@ Item { width: col.width + 45 height: col.height + 30 drag.target: parent + drag.minimumX: 0 + drag.maximumX: root.width - parent.width + drag.minimumY: 0 + drag.maximumY: root.candidateHeight - parent.height onClicked: { root.gotoSourceLocation(file, line, column); root.recenterOnItem(view.selectedItem); diff --git a/src/plugins/qmlprofiler/qml/SelectionRangeDetails.qml b/src/plugins/qmlprofiler/qml/SelectionRangeDetails.qml index e1ccb2abf67..29bce7bc056 100644 --- a/src/plugins/qmlprofiler/qml/SelectionRangeDetails.qml +++ b/src/plugins/qmlprofiler/qml/SelectionRangeDetails.qml @@ -50,6 +50,28 @@ Item { property int relativey : y - yoffset onYChanged: relativey = y - yoffset + // keep inside view + Connections { + target: root + onWidthChanged: fitInView(); + onCandidateHeightChanged: fitInView(); + } + + function fitInView() { + // don't reposition if it does not fit + if (root.width < width || root.candidateHeight < height) + return; + + if (x + width > root.width) + x = root.width - width; + if (x < 0) + x = 0; + if (y + height > root.candidateHeight) + y = root.candidateHeight - height; + if (y < 0) + y = 0; + } + // shadow BorderImage { property int px: 4 @@ -134,6 +156,10 @@ Item { width: col.width + 45 height: col.height + 30 drag.target: parent + drag.minimumX: 0 + drag.maximumX: root.width - parent.width + drag.minimumY: 0 + drag.maximumY: root.candidateHeight - parent.height onClicked: { if ((selectionRange.x < flick.contentX) ^ (selectionRange.x+selectionRange.width > flick.contentX + flick.width)) { root.recenter(selectionRange.startTime + selectionRange.duration/2); From 2023375d60f96eccbc4453787f20305ebdeb04cd Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Wed, 17 Oct 2012 16:32:08 +0200 Subject: [PATCH 11/16] Kits: Ensure that kitUpdated is send on apply Change-Id: If2afb0d0c9e83c3815e838c6e31d2e2f815e3ac2 Reviewed-by: Tobias Hunger --- src/plugins/projectexplorer/kit.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp index 31c9bdcdc53..5ce108f1d05 100644 --- a/src/plugins/projectexplorer/kit.cpp +++ b/src/plugins/projectexplorer/kit.cpp @@ -165,6 +165,7 @@ void Kit::copyFrom(const Kit *k) d->m_icon = k->d->m_icon; d->m_autodetected = k->d->m_autodetected; d->m_displayName = k->d->m_displayName; + d->m_mustNotify = true; } bool Kit::isValid() const From 43c2967fca6a356947238d40da032c38dae74f05 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 17 Oct 2012 17:03:25 +0200 Subject: [PATCH 12/16] Doc: update links on the Technical Support page Change-Id: Idca0e0ebdb846bf3613f1368b16611f09f583a64 Reviewed-by: Leena Miettinen --- doc/src/overview/creator-tech-support.qdoc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/doc/src/overview/creator-tech-support.qdoc b/doc/src/overview/creator-tech-support.qdoc index 2ab040b19f4..d0a270c21db 100644 --- a/doc/src/overview/creator-tech-support.qdoc +++ b/doc/src/overview/creator-tech-support.qdoc @@ -41,8 +41,11 @@ \row \o Learn more about Qt - \o \l{http://qt.nokia.com/developer/learning/online/training/specialized-elearning/} - {Specialized eLearning Modules Based on Qt Training Modules} + \o \l{http://qt.digia.com/product/learning/}{Learning} + from Digia + + \l{http://qt-project.org/wiki/developer-guides} + {Qt Developer Guides} from Qt Project \row \o Develop Qt applications for desktop and mobile devices @@ -55,15 +58,15 @@ \row \o Participate in Qt development - \o \l{http://qt.gitorious.org/}{Qt Git Hosting} + \o \l{http://qt-project.org/contribute}{Contribute to Qt} \row \o Find free Qt-based applications \o \l{http://qt-apps.org/}{Qt Apps} \row - \o Buy commercial Qt support from Digia - \o \l{http://qt.digia.com/}{Qt Commercial} + \o Develop with a commercial Qt license and support - Qt by Digia + \o \l{http://qt.digia.com/Product/Licensing/}{Qt Licensing} \endtable */ From f15745ab4229fc93de46e5bb58a6f00cf749c9e0 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Fri, 12 Oct 2012 14:30:41 +0200 Subject: [PATCH 13/16] debugger: Fixed automatic run of self test Change-Id: Icf2c100db571a37bc9e20e0e9cab47a627cfec23 Reviewed-by: hjk --- tests/manual/debugger/simple/simple_test_app.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/manual/debugger/simple/simple_test_app.cpp b/tests/manual/debugger/simple/simple_test_app.cpp index 299ce54ee6a..1bfa4d9e969 100644 --- a/tests/manual/debugger/simple/simple_test_app.cpp +++ b/tests/manual/debugger/simple/simple_test_app.cpp @@ -681,10 +681,10 @@ namespace undefined { int *i = new int; delete i; BREAK_HERE; + // Continue. // Manual: Uncomment the following line. Step. // On Linux, a SIGABRT should be received. //delete i; - // Continue. dummyStatement(&i); } From 75995829afccedc654b9061df41a7d5ad7df0f90 Mon Sep 17 00:00:00 2001 From: Nicolas Arnaud-Cormos Date: Wed, 17 Oct 2012 17:49:08 +0200 Subject: [PATCH 14/16] Update the changelog. The QNX plugin is not experimental anymore. Change-Id: I10dc94135c7b54ab615612c4a2a6345ad0531d5d Reviewed-by: Eike Ziller --- dist/changes-2.6.0 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/changes-2.6.0 b/dist/changes-2.6.0 index 73146bddb30..cd97fefa390 100644 --- a/dist/changes-2.6.0 +++ b/dist/changes-2.6.0 @@ -37,7 +37,7 @@ Managing Projects * Moved the debugger setting from tool chains to kits and renamed tool chains to compilers * Added experimental support for Android (enable the plugin in Help > About Plugins) - * Added experimental support for QNX (enable the plugin in Help > About Plugins) + * Added support for QNX * Made it possible to disable deploy configurations * Added double-clicking of file names in compile errors to open the file * Added a Cancel Build button to the Compile Output pane From 26fa3236c5c169b430abc6b6a1338b8b2f74f8b5 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 17 Oct 2012 21:52:42 +0200 Subject: [PATCH 15/16] VCS: Make 'Patch command' searchable Change-Id: I7b2f813e090a443c3cd4fb771a05c79c8e84e972 Reviewed-by: Eike Ziller --- src/plugins/vcsbase/commonsettingspage.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/vcsbase/commonsettingspage.cpp b/src/plugins/vcsbase/commonsettingspage.cpp index 65561171f2a..e47d198240d 100644 --- a/src/plugins/vcsbase/commonsettingspage.cpp +++ b/src/plugins/vcsbase/commonsettingspage.cpp @@ -97,6 +97,7 @@ QString CommonSettingsWidget::searchKeyWordMatchString() const + blank + m_ui->nickNameMailMapLabel->text() + blank + m_ui->nickNameFieldsFileLabel->text() + blank + m_ui->sshPromptLabel->text() + + blank + m_ui->patchCommandLabel->text() ; rc.remove(QLatin1Char('&')); // Strip buddy markers. return rc; From d8e6a314e521eff5500242e6eb65f29d45e769b8 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 18 Oct 2012 09:41:49 +0200 Subject: [PATCH 16/16] Version bump Change-Id: Id0b100ae13cdd5edd82614c10bdf0cdeb45e6615 --- qtcreator.pri | 2 +- qtcreator.qbp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/qtcreator.pri b/qtcreator.pri index 78a8622ae81..57df6e80797 100644 --- a/qtcreator.pri +++ b/qtcreator.pri @@ -1,7 +1,7 @@ !isEmpty(QTCREATOR_PRI_INCLUDED):error("qtcreator.pri already included") QTCREATOR_PRI_INCLUDED = 1 -QTCREATOR_VERSION = 2.5.84 +QTCREATOR_VERSION = 2.5.85 isEqual(QT_MAJOR_VERSION, 5) { diff --git a/qtcreator.qbp b/qtcreator.qbp index 223b8620906..098b2243f64 100644 --- a/qtcreator.qbp +++ b/qtcreator.qbp @@ -4,7 +4,7 @@ import qbs.fileinfo 1.0 as FileInfo Project { property string ide_version_major: '2' property string ide_version_minor: '5' - property string ide_version_release: '84' + property string ide_version_release: '85' property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.' + ide_version_release property var additionalCppDefines: [ 'IDE_LIBRARY_BASENAME="lib"',