Merge remote-tracking branch 'origin/2.6'

Conflicts:
	qtcreator.pri
	qtcreator.qbp
	src/libs/3rdparty/botan/botan.qbs
	src/libs/ssh/ssh.qbs
	src/plugins/qnx/blackberryqtversion.cpp

Change-Id: Ie8d16d636528aab4006310eab47a342fdf2634d9
This commit is contained in:
Eike Ziller
2012-10-18 10:40:11 +02:00
31 changed files with 235 additions and 217 deletions

2
dist/changes-2.6.0 vendored
View File

@@ -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

View File

@@ -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
*/

View File

@@ -13,7 +13,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",

View File

@@ -1,4 +0,0 @@
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += botan

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -1,69 +0,0 @@
import qbs.base 1.0
import "../../QtcLibrary.qbs" as QtcLibrary
QtcLibrary {
name: "Botan"
Depends { name: "cpp" }
Depends { name: "Qt.core" }
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: ".."
}
}

View File

@@ -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 <QtGlobal>
#ifdef Q_WS_WIN
# define _POSIX_
# include <limits.h>
# undef _POSIX_
#endif
#include "../botan/botan.h"
#include <map>
#include <fstream>
#include <memory>
#include <algorithm>
#include <iostream>
#include <vector>
#include <string>
#endif

View File

@@ -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 \

View File

@@ -68,3 +68,5 @@ HEADERS = $$PWD/sshsendfacility_p.h \
$$PWD/sshdirecttcpiptunnel.h
FORMS = $$PWD/sshkeycreationdialog.ui
include(../3rdparty/botan/botan.pri)

View File

@@ -4,11 +4,11 @@ import "../QtcLibrary.qbs" as QtcLibrary
QtcLibrary {
name: "QtcSsh"
cpp.defines: base.concat(["QSSH_LIBRARY"])
cpp.defines: base.concat(["QSSH_LIBRARY"]).concat(botanDefines)
cpp.includePaths: botanIncludes
Depends { name: "cpp" }
Depends { name: "Qt"; submodules: ["widgets", "network" ] }
Depends { name: "Botan" }
files: [
"sftpchannel.h", "sftpchannel_p.h", "sftpchannel.cpp",
@@ -41,7 +41,48 @@ QtcLibrary {
"sshremoteprocess.cpp", "sshremoteprocess.h", "sshremoteprocess_p.h",
"sshremoteprocessrunner.cpp", "sshremoteprocessrunner.h",
"sshsendfacility.cpp", "sshsendfacility_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: "Qt"; submodules: ["widgets", "network"] }

View File

@@ -1 +0,0 @@
include(../3rdparty/botan/botan.pri)

View File

@@ -36,7 +36,7 @@ Product {
cpp.includePaths: [ ".", ".." ]
Group {
files: [ name + ".pluginspec.in" ]
files: [ product.name + ".pluginspec.in" ]
fileTags: ["pluginSpecIn"]
}
}

View File

@@ -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<CMakeBuildConfiguration *>(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;
}

View File

@@ -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;

View File

@@ -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

View File

@@ -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);

View File

@@ -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);

View File

@@ -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)

View File

@@ -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);

View File

@@ -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();
}
}
}

View File

@@ -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;
}

View File

@@ -1,4 +1,4 @@
<plugin name=\"Qnx\" version=\"$$QTCREATOR_VERSION\" compatVersion=\"$$QTCREATOR_VERSION\" experimental=\"$$QNX_EXPERIMENTAL_STR\">
<plugin name=\"Qnx\" version=\"$$QTCREATOR_VERSION\" compatVersion=\"$$QTCREATOR_VERSION\">
<vendor>Research In Motion</vendor>
<copyright>(C) 2012 Research In Motion</copyright>
<license>

View File

@@ -33,6 +33,7 @@
#include "qnxconstants.h"
#include <utils/environment.h>
#include <utils/hostosinfo.h>
#include <utils/qtcassert.h>
@@ -57,12 +58,41 @@ QMultiMap<QString, QString> 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;
}
@@ -77,7 +107,7 @@ QMultiMap<QString, QString> 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<QString, QString> replaceIt(fileContent);

View File

@@ -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)

View File

@@ -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: base.concat("../../shared")

View File

@@ -12,7 +12,6 @@ QtcPlugin {
Depends { name: "CppTools" }
Depends { name: "Debugger" }
Depends { name: "QmlJS" }
Depends { name: "Botan" }
Depends { name: "CPlusPlus" }
Depends { name: "TextEditor" }

View File

@@ -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)

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -43,9 +43,6 @@ def main():
pos = size
if key == "<Left>":
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)