summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2014-01-15 14:04:41 +0100
committerEike Ziller <eike.ziller@digia.com>2014-01-15 14:04:41 +0100
commit851f255b9dfc81c667f02994c0cd3f9cda3f973c (patch)
tree0bb41ddef303f0ae8a8635bca360ce4f2489e5fa
parent8ab5b7ec0bc10fc35651f3a1046b26d815c24810 (diff)
parent8d04b65ae9d5d35e763146d12023c794c743a3fd (diff)
downloadqt-creator-851f255b9dfc81c667f02994c0cd3f9cda3f973c.tar.gz
Merge remote-tracking branch 'origin/3.0'
Conflicts: src/plugins/qmldesigner/components/formeditor/anchorindicatorgraphicsitem.cpp src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp src/plugins/qmlprofiler/qmlprofilertraceview.cpp Change-Id: I778a0c2d0f1b4f799caaa2c2cc5daf94ec7ca352
-rw-r--r--dist/changes-3.0.027
-rw-r--r--doc/images/qtcreator-snippet-modifiers.pngbin0 -> 15267 bytes
-rw-r--r--doc/src/editors/creator-editors.qdoc23
-rw-r--r--scripts/hasCopyright.pl2
-rw-r--r--share/qtcreator/debugger/lldbbridge.py14
-rw-r--r--share/qtcreator/debugger/qttypes.py12
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml43
-rw-r--r--share/qtcreator/templates/shared/qtquickapplicationviewer/qtquick2controlsapplicationviewer/qtquick2controlsapplicationviewer.cpp6
-rw-r--r--share/qtcreator/translations/qtcreator_ru.ts642
-rw-r--r--src/app/Info.plist.in2
-rw-r--r--src/plugins/android/androiddeploystep.cpp2
-rw-r--r--src/plugins/coreplugin/mainwindow.cpp14
-rw-r--r--src/plugins/coreplugin/mainwindow.h1
-rw-r--r--src/plugins/cpptools/includeutils.cpp2
-rw-r--r--src/plugins/debugger/debuggerprotocol.cpp4
-rw-r--r--src/plugins/debugger/debuggersourcepathmappingwidget.cpp3
-rw-r--r--src/plugins/debugger/debuggerstartparameters.h1
-rw-r--r--src/plugins/debugger/lldb/lldbengine.cpp2
-rw-r--r--src/plugins/debugger/qml/qmllivetextpreview.cpp2
-rw-r--r--src/plugins/debugger/registerhandler.cpp2
-rw-r--r--src/plugins/ios/iosdebugsupport.cpp31
-rw-r--r--src/plugins/ios/iosdevice.cpp15
-rw-r--r--src/plugins/ios/iosdevice.h4
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/propertyeditorcontextobject.cpp17
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/propertyeditorcontextobject.h5
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp2
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp3
-rw-r--r--src/plugins/qmldesigner/designercore/include/nodemetainfo.h2
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp35
-rw-r--r--src/plugins/qmlprofiler/qmlprofilertraceview.cpp2
-rw-r--r--src/plugins/qnx/blackberryinstallwizardpages.cpp4
-rw-r--r--src/plugins/qtsupport/exampleslistmodel.cpp2
-rw-r--r--src/plugins/updateinfo/updateinfoplugin.cpp3
-rw-r--r--src/tools/iostool/iosdevicemanager.cpp27
-rw-r--r--src/tools/qmlpuppet/qmlpuppet.pro2
-rw-r--r--tests/manual/debugger/simple/simple_test_app.cpp1
-rw-r--r--tests/system/shared/project.py4
-rw-r--r--tests/system/shared/qtcreator.py10
-rw-r--r--tests/system/suite_tools/tst_git_clone/test.py4
39 files changed, 303 insertions, 674 deletions
diff --git a/dist/changes-3.0.0 b/dist/changes-3.0.0
index 4f6cf897e3..233eb56d29 100644
--- a/dist/changes-3.0.0
+++ b/dist/changes-3.0.0
@@ -18,6 +18,10 @@ Editing
are detected
* Fixed issues with splitting when editor is not splittable (QTCREATORBUG-6827)
* Added action for closing all editors except the visible ones (QTCREATORBUG-9893)
+ * Added support for changing case of entered values in snippets
+ (:u :c :l modifiers like for custom wizards)
+ * Fixed that proposal list would pop up again after it was dismissed with Esc key
+ right after it opened
Managing and Building Projects
* Fixed exit code that is shown for applications that are run in terminal
@@ -35,6 +39,7 @@ QMake Projects
* Fixed issues when using qtchooser (QTCREATORBUG-9841)
* Fixed issues with autosave files triggering reparses (QTCREATORBUG-9957)
* Fixed that run configurations were created for targets that are not built (QTCREATORBUG-9549)
+ * Fixed issue when renaming a file changes its MIME type (QTCREATORBUG-9824)
CMake Projects
* Added parser for CMake build errors
@@ -42,16 +47,18 @@ CMake Projects
* Added support for a CMakeDeployment.txt file that defines deployment rules
Qbs Projects
+ * Added code completion support for code generated from .ui files
Generic Projects
Debugging
+ * Added Debuggers tab to Build & Run options
+ * Pretty printers (Python based, GDB and LLDB)
+ * Added QIPv6Address and support for IPv6 in QHostAddress
* GDB
- * Fixed various pretty printers
* CDB
* Fixed interrupting 32 bit processes from 64 bit Qt Creator builds
* LLDB
- * Fixed various pretty printers
* QML
Analyzer
@@ -78,6 +85,15 @@ C++ Support
* Added list of potential destinations when doing "Follow Symbol" on
virtual function calls (QTCREATORBUG-9611)
* Fixed "Follow Symbol" for operators (QTCREATORBUG-7485)
+ * Added logic to avoid complete project reparses (QTCREATORBUG-9730)
+ * Added matching against fully qualified name in C++ related locator filters
+
+Qt Quick Designer
+ * Added imports editor
+ * Fixed bread crumb bar for infile components
+
+Qt Designer
+ * Fixed "Go to slot" for form classes that are not part of a project (QTCREATORBUG-9653)
Python Support
@@ -85,11 +101,12 @@ GLSL Support
* Fixed crash (QTCREATORBUG-10166)
Diff Viewer
- * Added button that switches between inline and side-by-side view
+ * Added button that switches between inline and side-by-side view (QTCREATORBUG-10035)
* Added syntax highlighting (QTCREATORBUG-9580)
Version Control Systems
* Fixed crash when reverting changes while commit editor is open (QTCREATORBUG-10190)
+ * Fixed colors in description in submit editor
* Added VCS topic to window title
* Fixed that user was asked about adding file to VCS even if it already
was in VCS (QTCREATORBUG-2455)
@@ -113,6 +130,8 @@ Version Control Systems
* ClearCase
FakeVim
+ * Added <C-W><C-V> shortcut for splitting editors
+ * Fixed scrolling when using single character or single line movement
Platform Specific
@@ -122,6 +141,8 @@ Qt Support
QNX
* Added check for existence of debug token and show error message in that case (QTCREATORBUG-9103)
+ * Added device auto-detection in "Add BlackBerry Device" wizard
+ * Added support for NDKs with multiple target configurations
Android
* Added error messages for incompatible devices to compile output (QTCREATORBUG-9690)
diff --git a/doc/images/qtcreator-snippet-modifiers.png b/doc/images/qtcreator-snippet-modifiers.png
new file mode 100644
index 0000000000..9d6f3657f7
--- /dev/null
+++ b/doc/images/qtcreator-snippet-modifiers.png
Binary files differ
diff --git a/doc/src/editors/creator-editors.qdoc b/doc/src/editors/creator-editors.qdoc
index f8d7a12f0c..bb5a8a5100 100644
--- a/doc/src/editors/creator-editors.qdoc
+++ b/doc/src/editors/creator-editors.qdoc
@@ -833,6 +833,29 @@
Use unique variable names within a snippet, because all instances of a
variable are renamed when you specify a value for it.
+ To determine the case of values you enter in snippets, use the following
+ modifiers:
+
+ \list
+
+ \li \c {:c} converts the initial letter of the string to upper case
+
+ \li \c {:l} converts the string to lower case
+
+ \li \c {:u} converts the string to upper case
+
+ \endlist
+
+ For example, add the following line to the \c class snippet to specify that
+ the function name is converted to all lower case characters regardless of
+ how you specify the value of the \c{$name$} variable:
+
+ \code
+ void $name:l$() {}
+ \endcode
+
+ \image qtcreator-snippet-modifiers.png
+
The snippet editor does not check the syntax of the snippets that you edit
or add. However, when you use the snippets, the code editor marks any
errors by underlining them in red.
diff --git a/scripts/hasCopyright.pl b/scripts/hasCopyright.pl
index e8bb0b3878..3f7d4dc622 100644
--- a/scripts/hasCopyright.pl
+++ b/scripts/hasCopyright.pl
@@ -63,7 +63,7 @@ while (1) {
last if ($linecount > 50);
$hasCopyright = 1 if $_ =~ /Copyright/i;
- $hasCurrent = 1 if $_ =~ /\(c\).*\s2013/i;
+ $hasCurrent = 1 if $_ =~ /\(c\).*\s2014/i;
$hasContact = 1 if $_ =~ /Contact: http:\/\/www.qt-project.org\/legal/;
$hasCommercial = 1 if $_ =~ /Commercial (License )?Usage/;
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py
index 2ab1b91544..d88bed7bdb 100644
--- a/share/qtcreator/debugger/lldbbridge.py
+++ b/share/qtcreator/debugger/lldbbridge.py
@@ -185,6 +185,13 @@ def impl_SBValue__getitem__(value, index):
return value.GetChildAtIndex(index)
return value.GetChildMemberWithName(index)
+def impl_SBValue__deref(value):
+ result = value.Dereference()
+ if result.IsValid():
+ return result
+ result = value.CreateValueFromExpression(None, '*' + value.get_expr_path())
+ return result
+
lldb.SBValue.__add__ = impl_SBValue__add__
lldb.SBValue.__sub__ = impl_SBValue__sub__
lldb.SBValue.__le__ = impl_SBValue__le__
@@ -196,7 +203,7 @@ lldb.SBValue.__long__ = lambda self: long(self.GetValue(), 0)
lldb.SBValue.code = lambda self: self.GetTypeClass()
lldb.SBValue.cast = lambda self, typeObj: self.Cast(typeObj)
-lldb.SBValue.dereference = lambda self: self.Dereference()
+lldb.SBValue.dereference = impl_SBValue__deref
lldb.SBValue.address = property(lambda self: self.GetAddress())
lldb.SBType.pointer = lambda self: self.GetPointerType()
@@ -625,10 +632,11 @@ class Dumper(DumperBase):
self.remoteChannel_ = args.get('remoteChannel', '')
self.platform_ = args.get('platform', '')
- if self.sysRoot_:
- self.debugger.SetCurrentPlatformSDKRoot(self.sysRoot_)
if self.platform_:
self.debugger.SetCurrentPlatform(self.platform_)
+ # sysroot has to be set *after* the platform
+ if self.sysRoot_:
+ self.debugger.SetCurrentPlatformSDKRoot(self.sysRoot_)
self.target = self.debugger.CreateTarget(self.executable_, None, None, True, error)
self.importDumpers()
diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py
index e79ef3d47d..4a9256c06e 100644
--- a/share/qtcreator/debugger/qttypes.py
+++ b/share/qtcreator/debugger/qttypes.py
@@ -990,10 +990,12 @@ def qdumpHelper__Qt5_QMap(d, value, forceLong):
innerType = nodeType
- def helper(d, node, nodeType, isCompact, forceLong, i):
+ def helper(d, node, nodeType, isCompact, forceLong, i, n):
left = node["left"]
if not d.isNull(left):
- i = helper(d, left.dereference(), nodeType, isCompact, forceLong, i)
+ i = helper(d, left.dereference(), nodeType, isCompact, forceLong, i, n)
+ if i >= n:
+ return i
nodex = node.cast(nodeType)
with SubItem(d, i):
@@ -1008,16 +1010,18 @@ def qdumpHelper__Qt5_QMap(d, value, forceLong):
qdump__QMapNode(d, nodex)
i += 1
+ if i >= n:
+ return i
right = node["right"]
if not d.isNull(right):
- i = helper(d, right.dereference(), nodeType, isCompact, forceLong, i)
+ i = helper(d, right.dereference(), nodeType, isCompact, forceLong, i, n)
return i
with Children(d, n, childType=innerType):
node = d_ptr["header"]
- helper(d, node, nodeType, isCompact, forceLong, 0)
+ helper(d, node, nodeType, isCompact, forceLong, 0, n)
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml
index 1a79b72ac4..89ea883cc1 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml
@@ -92,5 +92,48 @@ Section {
ExpandingSpacer {
}
}
+
+ Label {
+ visible: majorQtQuickVersion > 1
+ text: qsTr("Enabled")
+ }
+ SecondColumnLayout {
+ visible: majorQtQuickVersion > 1
+ CheckBox {
+ backendValue: backendValues.enabled
+ text: qsTr("Accept mouse and keyboard events")
+ }
+ ExpandingSpacer {
+ }
+ }
+
+ Label {
+ visible: majorQtQuickVersion > 1
+ text: qsTr("Smooth")
+ }
+ SecondColumnLayout {
+ visible: majorQtQuickVersion > 1
+ CheckBox {
+ backendValue: backendValues.smooth
+ text: qsTr("Smooth sampling active")
+ }
+ ExpandingSpacer {
+ }
+ }
+
+ Label {
+ visible: majorQtQuickVersion > 1
+ text: qsTr("Antialiasing")
+ }
+ SecondColumnLayout {
+ visible: majorQtQuickVersion > 1
+ CheckBox {
+ backendValue: backendValues.antialiasing
+ text: qsTr("Anti-aliasing active")
+ }
+ ExpandingSpacer {
+ }
+ }
+
}
}
diff --git a/share/qtcreator/templates/shared/qtquickapplicationviewer/qtquick2controlsapplicationviewer/qtquick2controlsapplicationviewer.cpp b/share/qtcreator/templates/shared/qtquickapplicationviewer/qtquick2controlsapplicationviewer/qtquick2controlsapplicationviewer.cpp
index 7198a903b4..bbce9d70bf 100644
--- a/share/qtcreator/templates/shared/qtquickapplicationviewer/qtquick2controlsapplicationviewer/qtquick2controlsapplicationviewer.cpp
+++ b/share/qtcreator/templates/shared/qtquickapplicationviewer/qtquick2controlsapplicationviewer/qtquick2controlsapplicationviewer.cpp
@@ -34,7 +34,11 @@ class QtQuick2ApplicationViewerPrivate
QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path)
{
-#if defined(Q_OS_MAC)
+#if defined(Q_OS_IOS)
+ if (!QDir::isAbsolutePath(path))
+ return QString::fromLatin1("%1/%2")
+ .arg(QCoreApplication::applicationDirPath(), path);
+#elif defined(Q_OS_MAC)
if (!QDir::isAbsolutePath(path))
return QStringLiteral("%1/../Resources/%2")
.arg(QCoreApplication::applicationDirPath(), path);
diff --git a/share/qtcreator/translations/qtcreator_ru.ts b/share/qtcreator/translations/qtcreator_ru.ts
index 746587dd6e..21312796de 100644
--- a/share/qtcreator/translations/qtcreator_ru.ts
+++ b/share/qtcreator/translations/qtcreator_ru.ts
@@ -147,41 +147,6 @@
</message>
</context>
<context>
- <name>AnchorButtons</name>
- <message>
- <source>Set top anchor</source>
- <translation>Установить верхнюю привязку</translation>
- </message>
- <message>
- <source>Setting anchors in states is not supported.</source>
- <translation>Установка привязок на состояния не поддерживается.</translation>
- </message>
- <message>
- <source>Set bottom anchor</source>
- <translation>Установить нижнюю привязку</translation>
- </message>
- <message>
- <source>Set left anchor</source>
- <translation>Установить левую привязку</translation>
- </message>
- <message>
- <source>Set right anchor</source>
- <translation>Установить правую привязку</translation>
- </message>
- <message>
- <source>Fill to parent</source>
- <translation>Заполнить предка</translation>
- </message>
- <message>
- <source>Set vertical anchor</source>
- <translation>Установить вертикальную привязку</translation>
- </message>
- <message>
- <source>Set horizontal anchor</source>
- <translation>Установить горизонтальную привязку</translation>
- </message>
-</context>
-<context>
<name>Android</name>
<message>
<source>Android</source>
@@ -2956,30 +2921,10 @@ Local pulls are not applied to the master branch.</source>
<context>
<name>BorderImageSpecifics</name>
<message>
- <source>BorderImage</source>
- <translation>Изображение рамки</translation>
- </message>
- <message>
<source>Source</source>
<translation>Источник</translation>
</message>
<message>
- <source>Left</source>
- <translation>Слева</translation>
- </message>
- <message>
- <source>Right</source>
- <translation>Справа</translation>
- </message>
- <message>
- <source>Top</source>
- <translation>Сверху</translation>
- </message>
- <message>
- <source>Bottom</source>
- <translation>Снизу</translation>
- </message>
- <message>
<source>Border Image</source>
<translation>Изображение рамки</translation>
</message>
@@ -4310,63 +4255,6 @@ p, li { white-space: pre-wrap; }
</message>
</context>
<context>
- <name>ColorGroupBox</name>
- <message>
- <source>Color editor</source>
- <translation>Редактор цвета</translation>
- </message>
- <message>
- <source>Hue</source>
- <translation>Тон</translation>
- </message>
- <message>
- <source>Saturation</source>
- <translation>Насыщенность</translation>
- </message>
- <message>
- <source>Brightness</source>
- <translation>Яркость</translation>
- </message>
- <message>
- <source>Alpha</source>
- <translation>Альфа</translation>
- </message>
-</context>
-<context>
- <name>ColorLineEdit</name>
- <message>
- <source>Translate this string</source>
- <translation>Перевести эту строку</translation>
- </message>
-</context>
-<context>
- <name>ColorTypeButtons</name>
- <message>
- <source>Solid color</source>
- <translation>Сплошной цвет</translation>
- </message>
- <message>
- <source>Solid color (only editable in base state)</source>
- <translation>Сплошной цвет (меняется только в исходном состоянии)</translation>
- </message>
- <message>
- <source>Gradient</source>
- <translation>Градиент</translation>
- </message>
- <message>
- <source>Gradient (only editable in base state)</source>
- <translation>Градиент (меняется только в исходном состоянии)</translation>
- </message>
- <message>
- <source>Transparent</source>
- <translation>Прозрачность</translation>
- </message>
- <message>
- <source>Transparent (only editable in base state)</source>
- <translation>Прозрачность (меняется только в исходном состоянии)</translation>
- </message>
-</context>
-<context>
<name>ColumnSpecifics</name>
<message>
<source>Column</source>
@@ -12908,14 +12796,6 @@ Rebuilding the project might help.</source>
<context>
<name>EditorManager</name>
<message>
- <source>Next Open Document in History</source>
- <translation>Следующий открытый документ в истории</translation>
- </message>
- <message>
- <source>Previous Open Document in History</source>
- <translation>Предыдущий открытый документ в истории</translation>
- </message>
- <message>
<source>Go Back</source>
<translation>Перейти назад</translation>
</message>
@@ -12955,47 +12835,6 @@ Rebuilding the project might help.</source>
</message>
</context>
<context>
- <name>ExpressionEditor</name>
- <message>
- <source>Expression</source>
- <translation>Выражение</translation>
- </message>
-</context>
-<context>
- <name>Extended</name>
- <message>
- <source>Effect</source>
- <translation>Эффект</translation>
- </message>
- <message>
- <source>Blur Radius:</source>
- <translation>Радиус размытия:</translation>
- </message>
- <message>
- <source>Pixel Size:</source>
- <translation>Размер пикселя:</translation>
- </message>
- <message>
- <source>x Offset: </source>
- <translation>Смещение по x: </translation>
- </message>
- <message>
- <source>y Offset: </source>
- <translation>Смещение по y: </translation>
- </message>
-</context>
-<context>
- <name>ExtendedFunctionButton</name>
- <message>
- <source>Reset</source>
- <translation>Сбросить</translation>
- </message>
- <message>
- <source>Set Expression</source>
- <translation>Присвоить выражение</translation>
- </message>
-</context>
-<context>
<name>ExtensionSystem::Internal::PluginDetailsView</name>
<message>
<source>Name:</source>
@@ -13942,53 +13781,6 @@ Reason: %3</source>
</message>
</context>
<context>
- <name>FlickableGroupBox</name>
- <message>
- <source>Flickable</source>
- <translation>Толкаемо</translation>
- </message>
- <message>
- <source>Content size</source>
- <translation>Размер содержимого</translation>
- </message>
- <message>
- <source>Flick direction</source>
- <translation>Направление толкания</translation>
- </message>
- <message>
- <source>Flickable direction</source>
- <translation>Направление толкания</translation>
- </message>
- <message>
- <source>Bounds behavior</source>
- <translation>Поведение границ</translation>
- </message>
- <message>
- <source>Max. velocity</source>
- <translation>Макс. скорость</translation>
- </message>
- <message>
- <source>Maximum flick velocity</source>
- <translation>Максимальная скорость толкания</translation>
- </message>
- <message>
- <source>Flick deceleration</source>
- <translation>Замедление толкания</translation>
- </message>
- <message>
- <source>Behavior</source>
- <translation>Поведение</translation>
- </message>
- <message>
- <source>Interactive</source>
- <translation>Интерактивность</translation>
- </message>
- <message>
- <source>Deceleration</source>
- <translation>Замедление</translation>
- </message>
-</context>
-<context>
<name>FlickableSection</name>
<message>
<source>Flickable</source>
@@ -14045,10 +13837,6 @@ Reason: %3</source>
<translation>Перетекание</translation>
</message>
<message>
- <source>Layout direction</source>
- <translation>Направление компоновки</translation>
- </message>
- <message>
<source>Spacing</source>
<translation>Отступ</translation>
</message>
@@ -14058,25 +13846,6 @@ Reason: %3</source>
</message>
</context>
<context>
- <name>FontGroupBox</name>
- <message>
- <source>Font</source>
- <translation>Шрифт</translation>
- </message>
- <message>
- <source>Size</source>
- <translation>Размер</translation>
- </message>
- <message>
- <source>Font style</source>
- <translation>Начертание</translation>
- </message>
- <message>
- <source>Style</source>
- <translation>Стиль</translation>
- </message>
-</context>
-<context>
<name>FontSection</name>
<message>
<source>Font</source>
@@ -14338,33 +14107,6 @@ These files are preserved.</source>
</message>
</context>
<context>
- <name>Geometry</name>
- <message>
- <source>Geometry</source>
- <translation>Геометрия</translation>
- </message>
- <message>
- <source>Position</source>
- <translation>Положение</translation>
- </message>
- <message>
- <source>Size</source>
- <translation>Размер</translation>
- </message>
- <message>
- <source>Width</source>
- <translation>Ширина</translation>
- </message>
- <message>
- <source>Height</source>
- <translation>Высота</translation>
- </message>
- <message>
- <source>Lock aspect ratio</source>
- <translation>Зафиксировать соотношение сторон</translation>
- </message>
-</context>
-<context>
<name>GeometrySection</name>
<message>
<source>Geometry</source>
@@ -16651,10 +16393,6 @@ You can choose between stashing the changes or discarding them.</source>
<translation>Перетекание</translation>
</message>
<message>
- <source>Layout direction</source>
- <translation>Направление компоновки</translation>
- </message>
- <message>
<source>Spacing</source>
<translation>Отступ</translation>
</message>
@@ -16678,14 +16416,6 @@ You can choose between stashing the changes or discarding them.</source>
<translation>Буфер кэша</translation>
</message>
<message>
- <source>Cell height</source>
- <translation>Высота ячейки</translation>
- </message>
- <message>
- <source>Cell width</source>
- <translation>Ширина ячейки</translation>
- </message>
- <message>
<source>Determines whether the grid wraps key navigation.</source>
<translation>Определяет, меняет ли сетка навигацию клавишами.</translation>
</message>
@@ -17613,6 +17343,10 @@ Ids must begin with a lowercase letter.</source>
<context>
<name>Ios::Internal::IosDebugSupport</name>
<message>
+ <source>Could not find device specific debug symbols at %1. Debugging initialization will be slow until you open the Organizer window of Xcode with the device connected to have the symbols generated.</source>
+ <translation>Не удалось найти отладочные символы для устройства в %1. Инициализация отладки займёт много времени. Для её ускорения необходимо подключить устройство и открыть окно органайзера Xcode для генерации символов.</translation>
+ </message>
+ <message>
<source>Could not get debug server file descriptor.</source>
<translation>Не удалось получить дескриптор файла сервера отладки.</translation>
</message>
@@ -17719,6 +17453,10 @@ Ids must begin with a lowercase letter.</source>
<translation>неизвестно</translation>
</message>
<message>
+ <source>OS version</source>
+ <translation>Версия ОС</translation>
+ </message>
+ <message>
<source>An iOS device in user mode has been detected.</source>
<translation>Обнаружено устройство iOS работающее в пользовательском режиме.</translation>
</message>
@@ -17896,33 +17634,6 @@ QML.</translation>
</message>
</context>
<context>
- <name>Layout</name>
- <message>
- <source>Layout</source>
- <translation>Компоновка</translation>
- </message>
- <message>
- <source>Anchors</source>
- <translation>Привязки</translation>
- </message>
- <message>
- <source>Set anchors</source>
- <translation>Установить привязки</translation>
- </message>
- <message>
- <source>Setting anchors in states is not supported.</source>
- <translation>Установка привязок на состояния не поддерживается.</translation>
- </message>
- <message>
- <source>Target</source>
- <translation>Цель</translation>
- </message>
- <message>
- <source>Margin</source>
- <translation>Отступ</translation>
- </message>
-</context>
-<context>
<name>LayoutSection</name>
<message>
<source>Layout</source>
@@ -17942,13 +17653,6 @@ QML.</translation>
</message>
</context>
<context>
- <name>LineEdit</name>
- <message>
- <source>Translate this string</source>
- <translation>Перевести эту строку</translation>
- </message>
-</context>
-<context>
<name>LinksBar</name>
<message>
<source>Qt Creator</source>
@@ -18022,14 +17726,6 @@ QML.</translation>
<translation>Продолжительность анимации изменения размера делегата подсветки.</translation>
</message>
<message>
- <source>Resize speed</source>
- <translation>Скорость изменения размера</translation>
- </message>
- <message>
- <source>Resize animation speed of the highlight delegate.</source>
- <translation>Скорость анимации изменения размера делегата подсветки.</translation>
- </message>
- <message>
<source>Preferred begin</source>
<translation>Предпочтительное начало</translation>
</message>
@@ -19172,27 +18868,8 @@ Do you want to kill it?</source>
</message>
</context>
<context>
- <name>Modifiers</name>
- <message>
- <source>Manipulation</source>
- <translation>Управление</translation>
- </message>
- <message>
- <source>Rotation</source>
- <translation>Вращение</translation>
- </message>
- <message>
- <source>z</source>
- <translation></translation>
- </message>
-</context>
-<context>
<name>MouseAreaSpecifics</name>
<message>
- <source>MouseArea</source>
- <translation></translation>
- </message>
- <message>
<source>Enabled</source>
<translation>Включено</translation>
</message>
@@ -25160,11 +24837,23 @@ Neither the path to the library nor the path to its includes is added to the .pr
<translation>Выпуск</translation>
</message>
<message>
+ <source>Release</source>
+ <comment>Shadow build directory suffix</comment>
+ <extracomment>Non-ASCII characters in directory suffix may cause build issues.</extracomment>
+ <translation>Release</translation>
+ </message>
+ <message>
<source>Debug</source>
<extracomment>The name of the debug build configuration created by default for a qmake project.</extracomment>
<translation>Отладка</translation>
</message>
<message>
+ <source>Debug</source>
+ <comment>Shadow build directory suffix</comment>
+ <extracomment>Non-ASCII characters in directory suffix may cause build issues.</extracomment>
+ <translation>Debug</translation>
+ </message>
+ <message>
<source>Build</source>
<translation>Сборка</translation>
</message>
@@ -29160,12 +28849,12 @@ Do you want Qt Creator to generate it for your project?</source>
%1</translation>
</message>
<message>
- <source>Target is being added.</source>
- <translation>Цель была добавлена.</translation>
+ <source>Target %1 is being added.</source>
+ <translation>Добавляется цель %1.</translation>
</message>
<message>
- <source>Target is already added.</source>
- <translation>Цель уже добавлена.</translation>
+ <source>Target %1 is already added.</source>
+ <translation>Цель %1 уже добавлена.</translation>
</message>
<message>
<source>Finished uninstalling target:
@@ -30770,43 +30459,8 @@ cannot be found in the path.</source>
</message>
</context>
<context>
- <name>RectangleColorGroupBox</name>
- <message>
- <source>Colors</source>
- <translation>Цвета</translation>
- </message>
- <message>
- <source>Stops</source>
- <translation>Опорные точки</translation>
- </message>
- <message>
- <source>Gradient stops</source>
- <translation>Опорные точки градиента</translation>
- </message>
- <message>
- <source>Rectangle</source>
- <translation>Прямоугольник</translation>
- </message>
- <message>
- <source>Border</source>
- <translation>Рамка</translation>
- </message>
-</context>
-<context>
<name>RectangleSpecifics</name>
<message>
- <source>Rectangle</source>
- <translation>Прямоугольник</translation>
- </message>
- <message>
- <source>Border width</source>
- <translation>Ширина рамки</translation>
- </message>
- <message>
- <source>Border has to be solid to change width</source>
- <translation>Для изменения ширины необходимо, чтобы рамка была сплошной</translation>
- </message>
- <message>
<source>Radius</source>
<translation>Радиус</translation>
</message>
@@ -31768,10 +31422,6 @@ Remote stderr was: &apos;%1&apos;</source>
<translation>Строка</translation>
</message>
<message>
- <source>Layout direction</source>
- <translation>Направление компоновки</translation>
- </message>
- <message>
<source>Spacing</source>
<translation>Отступ</translation>
</message>
@@ -31901,46 +31551,11 @@ with a password, which you can enter below.</source>
</message>
</context>
<context>
- <name>StandardTextColorGroupBox</name>
- <message>
- <source>Color</source>
- <translation>Цвет</translation>
- </message>
- <message>
- <source>Text</source>
- <translation>Текст</translation>
- </message>
- <message>
- <source>Style</source>
- <translation>Стиль</translation>
- </message>
- <message>
- <source>Selection</source>
- <translation>Выделение</translation>
- </message>
- <message>
- <source>Selected</source>
- <translation>Выделено</translation>
- </message>
-</context>
-<context>
<name>StandardTextGroupBox</name>
<message>
- <source>Text</source>
- <translation>Текст</translation>
- </message>
- <message>
- <source>Wrap mode</source>
- <translation>Режим переноса</translation>
- </message>
- <message>
<source></source>
<translation></translation>
</message>
- <message>
- <source>Alignment</source>
- <translation>Выравнивание</translation>
- </message>
</context>
<context>
<name>StandardTextSection</name>
@@ -32289,25 +31904,6 @@ with a password, which you can enter below.</source>
</message>
</context>
<context>
- <name>Switches</name>
- <message>
- <source>Special properties</source>
- <translation>Специальные свойства</translation>
- </message>
- <message>
- <source>Layout</source>
- <translation>Компоновка</translation>
- </message>
- <message>
- <source>Advanced properties</source>
- <translation>Дополнительные свойства</translation>
- </message>
- <message>
- <source>Advanced</source>
- <translation>Дополнительно</translation>
- </message>
-</context>
-<context>
<name>TabViewToolAction</name>
<message>
<source>Add Tab...</source>
@@ -32437,10 +32033,6 @@ with a password, which you can enter below.</source>
<context>
<name>TextEditSpecifics</name>
<message>
- <source>Text Edit</source>
- <translation>Текстовый редактор</translation>
- </message>
- <message>
<source>Format</source>
<translation>Формат</translation>
</message>
@@ -32463,10 +32055,6 @@ with a password, which you can enter below.</source>
<source>Text Editor</source>
<translation>Текстовый редактор</translation>
</message>
- <message>
- <source>Translate this string</source>
- <translation>Перевести эту строку</translation>
- </message>
</context>
<context>
<name>TextEditor::BaseFileFind</name>
@@ -34518,49 +34106,6 @@ Will not be applied to whitespace in comments and strings.</source>
</message>
</context>
<context>
- <name>TextInputGroupBox</name>
- <message>
- <source>Text Input</source>
- <translation>Текстовый ввод</translation>
- </message>
- <message>
- <source>Input mask</source>
- <translation>Маска ввода</translation>
- </message>
- <message>
- <source>Echo mode</source>
- <translation>Режим эха</translation>
- </message>
- <message>
- <source>Pass. char</source>
- <translation>Символ пароля</translation>
- </message>
- <message>
- <source>Character displayed when users enter passwords.</source>
- <translation>Символ отображаемый при вводе пользователем паролей.</translation>
- </message>
- <message>
- <source>Read only</source>
- <translation>Только для чтения</translation>
- </message>
- <message>
- <source>Cursor visible</source>
- <translation>Курсор виден</translation>
- </message>
- <message>
- <source>Active focus on press</source>
- <translation>Активировать фокус при нажатии</translation>
- </message>
- <message>
- <source>Auto scroll</source>
- <translation>Прокручивать автоматически</translation>
- </message>
- <message>
- <source>Flags</source>
- <translation>Флаги</translation>
- </message>
-</context>
-<context>
<name>TextInputSection</name>
<message>
<source>Text Input</source>
@@ -34764,72 +34309,6 @@ Will not be applied to whitespace in comments and strings.</source>
</message>
</context>
<context>
- <name>Transformation</name>
- <message>
- <source>Transformation</source>
- <translation>Преобразование</translation>
- </message>
- <message>
- <source>Origin</source>
- <translation>Начало</translation>
- </message>
- <message>
- <source>Top</source>
- <translation>Верхний</translation>
- </message>
- <message>
- <source>Top left</source>
- <translation>Верхний левый</translation>
- </message>
- <message>
- <source>Top right</source>
- <translation>Верхний правый</translation>
- </message>
- <message>
- <source>Left</source>
- <translation>Левый</translation>
- </message>
- <message>
- <source>Center</source>
- <translation>Центральный</translation>
- </message>
- <message>
- <source>Right</source>
- <translation>Правый</translation>
- </message>
- <message>
- <source>Bottom left</source>
- <translation>Нижний левый</translation>
- </message>
- <message>
- <source>Bottom right</source>
- <translation>Нижний правый</translation>
- </message>
- <message>
- <source>Bottom</source>
- <translation>Нижний</translation>
- </message>
- <message>
- <source>Scale</source>
- <translation>Масштаб</translation>
- </message>
- <message>
- <source>Rotation</source>
- <translation>Вращение</translation>
- </message>
-</context>
-<context>
- <name>Type</name>
- <message>
- <source>Type</source>
- <translation>Тип</translation>
- </message>
- <message>
- <source>Id</source>
- <translation></translation>
- </message>
-</context>
-<context>
<name>Update</name>
<message>
<source>Update</source>
@@ -37175,68 +36654,6 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
</context>
<context>
- <name>Visibility</name>
- <message>
- <source>Visibility</source>
- <translation>Видимость</translation>
- </message>
- <message>
- <source>Visible</source>
- <translation>Виден</translation>
- </message>
- <message>
- <source>isVisible</source>
- <translation></translation>
- </message>
- <message>
- <source>Smooth</source>
- <translation>Сглаживание</translation>
- </message>
- <message>
- <source>Clip</source>
- <translation>Обрезка</translation>
- </message>
- <message>
- <source>Opacity</source>
- <translation>Непрозрачность</translation>
- </message>
-</context>
-<context>
- <name>WebViewSpecifics</name>
- <message>
- <source>WebView</source>
- <translation></translation>
- </message>
- <message>
- <source>URL</source>
- <translation>URL</translation>
- </message>
- <message>
- <source>Pref Width</source>
- <translation>Желаемая ширина</translation>
- </message>
- <message>
- <source>Preferred Width</source>
- <translation>Оптимальная ширина</translation>
- </message>
- <message>
- <source>Pref Height</source>
- <translation>Желаемая высота</translation>
- </message>
- <message>
- <source>Preferred Height</source>
- <translation>Желаемая высота</translation>
- </message>
- <message>
- <source>Scale</source>
- <translation>Масштаб</translation>
- </message>
- <message>
- <source>Contents Scale</source>
- <translation>Масштаб содержимого</translation>
- </message>
-</context>
-<context>
<name>Welcome::Internal::CommunityWelcomePage</name>
<message>
<source>News &amp;&amp; Support</source>
@@ -37274,17 +36691,6 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
</context>
<context>
- <name>WindowPane</name>
- <message>
- <source>Window</source>
- <translation>Окно</translation>
- </message>
- <message>
- <source>Title</source>
- <translation>Заголовок</translation>
- </message>
-</context>
-<context>
<name>WindowSpecifics</name>
<message>
<source>Window</source>
diff --git a/src/app/Info.plist.in b/src/app/Info.plist.in
index 290a4e7bc7..6bbfcc3a02 100644
--- a/src/app/Info.plist.in
+++ b/src/app/Info.plist.in
@@ -4,6 +4,8 @@
<dict>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
+ <key>NSSupportsAutomaticGraphicsSwitching</key>
+ <true/>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
diff --git a/src/plugins/android/androiddeploystep.cpp b/src/plugins/android/androiddeploystep.cpp
index 9d8695cb5a..7c3374795f 100644
--- a/src/plugins/android/androiddeploystep.cpp
+++ b/src/plugins/android/androiddeploystep.cpp
@@ -283,7 +283,7 @@ unsigned int AndroidDeployStep::remoteModificationTime(const QString &fullDestin
process.start(AndroidConfigurations::instance().adbToolPath().toString(), arguments);
if (!process.waitForFinished(5000)
|| process.exitCode() != 0)
- return -1;
+ return 0;
QByteArray output = process.readAll();
output.replace("\r\n", "\n");
QList<QByteArray> lines = output.split('\n');
diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index 07b03abf3c..5d31975ed5 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -1077,9 +1077,8 @@ void MainWindow::readSettings()
QColor(Utils::StyleHelper::DEFAULT_BASE_COLOR)).value<QColor>());
}
- if (!restoreGeometry(m_settings->value(QLatin1String(windowGeometryKey)).toByteArray()))
- resize(1008, 700); // size without window decoration
- restoreState(m_settings->value(QLatin1String(windowStateKey)).toByteArray());
+ // Delay restoreWindowState, since it is overridden by LayoutRequest event
+ QTimer::singleShot(0, this, SLOT(restoreWindowState()));
bool modeSelectorVisible = m_settings->value(QLatin1String(modeSelectorVisibleKey), true).toBool();
ModeManager::setModeSelectorVisible(modeSelectorVisible);
@@ -1262,3 +1261,12 @@ bool MainWindow::showWarningWithOptions(const QString &title,
return showOptionsDialog(settingsCategory, settingsId);
return false;
}
+
+void MainWindow::restoreWindowState()
+{
+ m_settings->beginGroup(QLatin1String(settingsGroup));
+ if (!restoreGeometry(m_settings->value(QLatin1String(windowGeometryKey)).toByteArray()))
+ resize(1008, 700); // size without window decoration
+ restoreState(m_settings->value(QLatin1String(windowStateKey)).toByteArray());
+ m_settings->endGroup();
+}
diff --git a/src/plugins/coreplugin/mainwindow.h b/src/plugins/coreplugin/mainwindow.h
index 93cbf6a026..323ad67de1 100644
--- a/src/plugins/coreplugin/mainwindow.h
+++ b/src/plugins/coreplugin/mainwindow.h
@@ -149,6 +149,7 @@ private slots:
void setSidebarVisible(bool visible);
void destroyVersionDialog();
void openDelayedFiles();
+ void restoreWindowState();
private:
void updateContextObject(const QList<IContext *> &context);
diff --git a/src/plugins/cpptools/includeutils.cpp b/src/plugins/cpptools/includeutils.cpp
index 3d697974e7..17bbf5c319 100644
--- a/src/plugins/cpptools/includeutils.cpp
+++ b/src/plugins/cpptools/includeutils.cpp
@@ -423,7 +423,7 @@ int IncludeGroup::lineForNewInclude(const QString &newIncludeFileName,
return -1;
if (isSorted()) {
- const Include newInclude(newIncludeFileName, QString(), -1, newIncludeType);
+ const Include newInclude(newIncludeFileName, QString(), 0, newIncludeType);
const QList<Include>::const_iterator it = std::lower_bound(m_includes.begin(),
m_includes.end(), newInclude, includeFileNamelessThen);
if (it == m_includes.end())
diff --git a/src/plugins/debugger/debuggerprotocol.cpp b/src/plugins/debugger/debuggerprotocol.cpp
index 83fa67abe6..1897527e49 100644
--- a/src/plugins/debugger/debuggerprotocol.cpp
+++ b/src/plugins/debugger/debuggerprotocol.cpp
@@ -56,7 +56,7 @@ uchar fromhex(uchar c)
return 10 + c - 'a';
if (c >= 'A' && c <= 'Z')
return 10 + c - 'A';
- return -1;
+ return UCHAR_MAX;
}
void skipCommas(const char *&from, const char *to)
@@ -147,7 +147,7 @@ QByteArray GdbMi::parseCString(const char *&from, const char *to)
uchar prod = 0;
while (true) {
uchar val = fromhex(c);
- if (val == uchar(-1))
+ if (val == UCHAR_MAX)
break;
prod = prod * 16 + val;
if (++chars == 3 || src == end)
diff --git a/src/plugins/debugger/debuggersourcepathmappingwidget.cpp b/src/plugins/debugger/debuggersourcepathmappingwidget.cpp
index 86d3c673f9..dd5ed64d51 100644
--- a/src/plugins/debugger/debuggersourcepathmappingwidget.cpp
+++ b/src/plugins/debugger/debuggersourcepathmappingwidget.cpp
@@ -49,8 +49,7 @@ using namespace Utils;
#if defined(Q_OS_WIN)
static const char* qtBuildPaths[] = {
"Q:/qt5_workdir/w/s",
- "C:/iwmake/build_mingw_opensource",
- "C:/ndk_buildrepos/qt-desktop/src"};
+ "C:/work/build/qt5_workdir/w/s"};
#elif defined(Q_OS_MAC)
static const char* qtBuildPaths[] = {};
#else
diff --git a/src/plugins/debugger/debuggerstartparameters.h b/src/plugins/debugger/debuggerstartparameters.h
index 52d1054b0a..17dc02a7b6 100644
--- a/src/plugins/debugger/debuggerstartparameters.h
+++ b/src/plugins/debugger/debuggerstartparameters.h
@@ -86,6 +86,7 @@ public:
DebuggerEngineType secondSlaveEngineType;
DebuggerEngineType cppEngineType;
QString sysRoot;
+ QString deviceSymbolsRoot;
QString debuggerCommand;
ProjectExplorer::Abi toolChainAbi;
ProjectExplorer::IDevice::ConstPtr device;
diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp
index 9b8d686f10..624200d840 100644
--- a/src/plugins/debugger/lldb/lldbengine.cpp
+++ b/src/plugins/debugger/lldb/lldbengine.cpp
@@ -208,7 +208,7 @@ void LldbEngine::setupInferior()
QTC_CHECK(sp.attachPID <= 0 || (sp.startMode == AttachCrashedExternal
|| sp.startMode == AttachExternal));
cmd.arg("attachPid", sp.attachPID);
- cmd.arg("sysRoot", sp.sysRoot);
+ cmd.arg("sysRoot", sp.deviceSymbolsRoot.isEmpty() ? sp.sysRoot : sp.deviceSymbolsRoot);
cmd.arg("remoteChannel", ((sp.startMode == AttachToRemoteProcess
|| sp.startMode == AttachToRemoteServer)
? sp.remoteChannel : QString()));
diff --git a/src/plugins/debugger/qml/qmllivetextpreview.cpp b/src/plugins/debugger/qml/qmllivetextpreview.cpp
index ec82d9c280..ed9ee11245 100644
--- a/src/plugins/debugger/qml/qmllivetextpreview.cpp
+++ b/src/plugins/debugger/qml/qmllivetextpreview.cpp
@@ -642,7 +642,7 @@ void QmlLiveTextPreview::editorContentsChanged()
void QmlLiveTextPreview::onAutomaticUpdateFailed()
{
- showSyncWarning(AutomaticUpdateFailed, QString(), -1, -1);
+ showSyncWarning(AutomaticUpdateFailed, QString(), UINT_MAX, UINT_MAX);
}
QList<int> QmlLiveTextPreview::objectReferencesForOffset(quint32 offset)
diff --git a/src/plugins/debugger/registerhandler.cpp b/src/plugins/debugger/registerhandler.cpp
index 71904f1ac4..4b068a9cad 100644
--- a/src/plugins/debugger/registerhandler.cpp
+++ b/src/plugins/debugger/registerhandler.cpp
@@ -293,7 +293,7 @@ static int bitWidthFromType(int type, int subType)
return 0;
}
-static const int TopLevelId = -1;
+static const uint TopLevelId = UINT_MAX;
static bool isTopLevelItem(const QModelIndex &index)
{
return quintptr(index.internalId()) == quintptr(TopLevelId);
diff --git a/src/plugins/ios/iosdebugsupport.cpp b/src/plugins/ios/iosdebugsupport.cpp
index 4b82e207e5..174ea9bd9c 100644
--- a/src/plugins/ios/iosdebugsupport.cpp
+++ b/src/plugins/ios/iosdebugsupport.cpp
@@ -31,6 +31,7 @@
#include "iosrunner.h"
#include "iosmanager.h"
+#include "iosdevice.h"
#include <debugger/debuggerengine.h>
#include <debugger/debuggerplugin.h>
@@ -40,10 +41,12 @@
#include <debugger/debuggerrunconfigurationaspect.h>
#include <projectexplorer/toolchain.h>
#include <projectexplorer/target.h>
+#include <projectexplorer/taskhub.h>
#include <qmakeprojectmanager/qmakebuildconfiguration.h>
#include <qmakeprojectmanager/qmakenodes.h>
#include <qmakeprojectmanager/qmakeproject.h>
#include <qtsupport/qtkitinformation.h>
+#include <utils/fileutils.h>
#include <QDir>
#include <QTcpServer>
@@ -73,11 +76,38 @@ RunControl *IosDebugSupport::createDebugRunControl(IosRunConfiguration *runConfi
if (device.isNull())
return 0;
QmakeProject *project = static_cast<QmakeProject *>(target->project());
+ Kit *kit = target->kit();
DebuggerStartParameters params;
if (device->type() == Core::Id(Ios::Constants::IOS_DEVICE_TYPE)) {
params.startMode = AttachToRemoteProcess;
params.platform = QLatin1String("remote-ios");
+ IosDevice::ConstPtr iosDevice = device.dynamicCast<const IosDevice>();
+ if (iosDevice.isNull())
+ return 0;
+ QString osVersion = iosDevice->osVersion();
+ Utils::FileName deviceSdk1 = Utils::FileName::fromString(QDir::homePath()
+ + QLatin1String("/Library/Developer/Xcode/iOS DeviceSupport/")
+ + osVersion + QLatin1String("/Symbols"));
+ QString deviceSdk;
+ if (deviceSdk1.toFileInfo().isDir()) {
+ deviceSdk = deviceSdk1.toString();
+ } else {
+ Utils::FileName deviceSdk2 = IosConfigurations::developerPath()
+ .appendPath(QLatin1String("Platforms/iPhoneOS.platform/DeviceSupport/"))
+ .appendPath(osVersion).appendPath(QLatin1String("Symbols"));
+ if (deviceSdk2.toFileInfo().isDir()) {
+ deviceSdk = deviceSdk2.toString();
+ } else {
+ TaskHub::addTask(Task::Warning, tr(
+ "Could not find device specific debug symbols at %1. "
+ "Debugging initialization will be slow until you open the Organizer window of "
+ "Xcode with the device connected to have the symbols generated.")
+ .arg(deviceSdk1.toUserOutput()),
+ ProjectExplorer::Constants::TASK_CATEGORY_DEPLOYMENT);
+ }
+ }
+ params.deviceSymbolsRoot = deviceSdk;
} else {
params.startMode = AttachExternal;
params.platform = QLatin1String("ios-simulator");
@@ -91,7 +121,6 @@ RunControl *IosDebugSupport::createDebugRunControl(IosRunConfiguration *runConfi
= runConfig->extraAspect<Debugger::DebuggerRunConfigurationAspect>();
if (aspect->useCppDebugger()) {
params.languages |= CppLanguage;
- Kit *kit = target->kit();
params.sysRoot = SysRootKitInformation::sysRoot(kit).toString();
params.debuggerCommand = DebuggerKitInformation::debuggerCommand(kit).toString();
if (ToolChain *tc = ToolChainKitInformation::toolChain(kit))
diff --git a/src/plugins/ios/iosdevice.cpp b/src/plugins/ios/iosdevice.cpp
index a9753cadb1..ba4631be82 100644
--- a/src/plugins/ios/iosdevice.cpp
+++ b/src/plugins/ios/iosdevice.cpp
@@ -190,21 +190,11 @@ QString IosDevice::name()
return QCoreApplication::translate("Ios::Internal::IosDevice", "iOS Device");
}
-/*
-// add back?
-
-QString IosDevice::cpuArchitecure() const
+QString IosDevice::osVersion() const
{
- return m_extraInfo.value(QLatin1String("deviceInfo")).toMap()
- .value(QLatin1String("CPUArchitecture")).toString();
+ return m_extraInfo.value(QLatin1String("osVersion"));
}
-QString IosDevice::productType() const
-{
- return m_extraInfo.value(QLatin1String("deviceInfo")).toMap()
- .value(QLatin1String("ProductType")).toString();
-}*/
-
// IosDeviceManager
@@ -222,6 +212,7 @@ IosDeviceManager::TranslationMap IosDeviceManager::translationMap()
tMap[QLatin1String("NO")] = tr("no");
tMap[QLatin1String("YES")] = tr("yes");
tMap[QLatin1String("*unknown*")] = tr("unknown");
+ tMap[QLatin1String("osVersion")] = tr("OS version");
translationMap = &tMap;
return tMap;
}
diff --git a/src/plugins/ios/iosdevice.h b/src/plugins/ios/iosdevice.h
index f480f3a62f..a0f9456ec7 100644
--- a/src/plugins/ios/iosdevice.h
+++ b/src/plugins/ios/iosdevice.h
@@ -65,9 +65,7 @@ public:
QVariantMap toMap() const;
QString uniqueDeviceID() const;
IosDevice(const QString &uid);
- // add back? currently unused...
- //QString cpuArchitecure() const;
- //QString productType() const;
+ QString osVersion() const;
static QString name();
diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorcontextobject.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorcontextobject.cpp
index fde3f3ef14..75cf14f7ef 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorcontextobject.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorcontextobject.cpp
@@ -40,6 +40,7 @@ PropertyEditorContextObject::PropertyEditorContextObject(QObject *parent) :
m_backendValues(0),
m_majorVersion(-1),
m_minorVersion(-1),
+ m_majorQtQuickVersion(-1),
m_qmlComponent(0),
m_qmlContext(0)
{
@@ -52,6 +53,11 @@ int PropertyEditorContextObject::majorVersion() const
}
+int PropertyEditorContextObject::majorQtQuickVersion() const
+{
+ return m_majorQtQuickVersion;
+}
+
void PropertyEditorContextObject::setMajorVersion(int majorVersion)
{
if (m_majorVersion == majorVersion)
@@ -62,6 +68,17 @@ void PropertyEditorContextObject::setMajorVersion(int majorVersion)
emit majorVersionChanged();
}
+void PropertyEditorContextObject::setMajorQtQuickVersion(int majorVersion)
+{
+ if (m_majorQtQuickVersion == majorVersion)
+ return;
+
+ m_majorQtQuickVersion = majorVersion;
+
+ emit majorQtQuickVersionChanged();
+
+}
+
int PropertyEditorContextObject::minorVersion() const
{
return m_minorVersion;
diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorcontextobject.h b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorcontextobject.h
index 0c5e4a5690..22ec4d44f9 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorcontextobject.h
+++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorcontextobject.h
@@ -53,6 +53,7 @@ class PropertyEditorContextObject : public QObject
Q_PROPERTY(int majorVersion READ majorVersion WRITE setMajorVersion NOTIFY majorVersionChanged)
Q_PROPERTY(int minorVersion READ minorVersion WRITE setMinorVersion NOTIFY minorVersionChanged)
+ Q_PROPERTY(int majorQtQuickVersion READ majorQtQuickVersion WRITE setMajorQtQuickVersion NOTIFY majorQtQuickVersionChanged)
Q_PROPERTY(QQmlPropertyMap* backendValues READ backendValues WRITE setBackendValues NOTIFY backendValuesChanged)
@@ -74,7 +75,9 @@ public:
Q_INVOKABLE QString convertColorToString(const QColor &color) { return color.name(); }
int majorVersion() const;
+ int majorQtQuickVersion() const;
void setMajorVersion(int majorVersion);
+ void setMajorQtQuickVersion(int majorVersion);
int minorVersion() const;
void setMinorVersion(int minorVersion);
@@ -91,6 +94,7 @@ signals:
void backendValuesChanged();
void majorVersionChanged();
void minorVersionChanged();
+ void majorQtQuickVersionChanged();
void specificQmlComponentChanged();
public slots:
@@ -124,6 +128,7 @@ private:
int m_majorVersion;
int m_minorVersion;
+ int m_majorQtQuickVersion;
QQmlComponent *m_qmlComponent;
QQmlContext *m_qmlContext;
};
diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp
index 25cdc1cd69..12f74c5218 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp
@@ -290,8 +290,10 @@ void PropertyEditorQmlBackend::setup(const QmlObjectNode &qmlObjectNode, const Q
} else {
contextObject()->setMajorVersion(-1);
contextObject()->setMinorVersion(-1);
+ contextObject()->setMajorQtQuickVersion(-1);
}
+ contextObject()->setMajorQtQuickVersion(qmlObjectNode.view()->majorQtQuickVersion());
} else {
qWarning() << "PropertyEditor: invalid node for setup";
}
diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp
index f209cf8b23..126be7ad71 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp
@@ -240,6 +240,9 @@ void PropertyEditorView::changeExpression(const QString &propertyName)
if (m_locked)
return;
+ if (!m_selectedNode.isValid())
+ return;
+
RewriterTransaction transaction = beginRewriterTransaction(QByteArrayLiteral("PropertyEditorView::changeExpression"));
try {
diff --git a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h
index 4f4a20e38f..0a6b63d9c1 100644
--- a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h
+++ b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h
@@ -86,6 +86,8 @@ public:
QList<NodeMetaInfo> superClasses() const;
NodeMetaInfo directSuperClass() const;
+ QList<TypeName> superClassNames() const;
+
bool defaultPropertyIsComponent() const;
TypeName typeName() const;
diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
index b8b61ceb2b..c18576e399 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
@@ -1031,12 +1031,27 @@ void NodeMetaInfoPrivate::setupPrototypes()
description.majorVersion = qmlValue->componentVersion().majorVersion();
LanguageUtils::FakeMetaObject::Export qtquickExport = qmlValue->metaObject()->exportInPackage("QtQuick");
LanguageUtils::FakeMetaObject::Export cppExport = qmlValue->metaObject()->exportInPackage("<cpp>");
- if (qtquickExport.isValid())
+
+ if (qtquickExport.isValid()) {
description.className = qtquickExport.package.toUtf8() + '.' + qtquickExport.type.toUtf8();
- else if (qmlValue->moduleName().isEmpty() && cppExport.isValid())
- description.className = cppExport.package.toUtf8() + '.' + cppExport.type.toUtf8();
- else if (!qmlValue->moduleName().isEmpty())
- description.className = qmlValue->moduleName().toUtf8() + '.' + description.className;
+ } else {
+ bool found = false;
+ if (cppExport.isValid()) {
+ foreach (const LanguageUtils::FakeMetaObject::Export &exportValue, qmlValue->metaObject()->exports()) {
+ if (exportValue.package.toUtf8() != "<cpp>") {
+ found = true;
+ description.className = exportValue.package.toUtf8() + '.' + exportValue.type.toUtf8();
+ }
+ }
+ }
+ if (!found) {
+ if (qmlValue->moduleName().isEmpty() && cppExport.isValid()) {
+ description.className = cppExport.package.toUtf8() + '.' + cppExport.type.toUtf8();
+ } else if (!qmlValue->moduleName().isEmpty()) {
+ description.className = qmlValue->moduleName().toUtf8() + '.' + description.className;
+ }
+ }
+ }
m_prototypes.append(description);
} else {
if (context()->lookupType(document(), QStringList() << ov->className())) {
@@ -1233,6 +1248,16 @@ NodeMetaInfo NodeMetaInfo::directSuperClass() const
return NodeMetaInfo();
}
+QList<TypeName> NodeMetaInfo::superClassNames() const
+{
+ QList<TypeName> list;
+
+ foreach (const Internal::TypeDescription &type, m_privateData->prototypes()) {
+ list.append(type.className);
+ }
+ return list;
+}
+
bool NodeMetaInfo::defaultPropertyIsComponent() const
{
if (hasDefaultProperty())
diff --git a/src/plugins/qmlprofiler/qmlprofilertraceview.cpp b/src/plugins/qmlprofiler/qmlprofilertraceview.cpp
index 164e91c6d6..df9adf3238 100644
--- a/src/plugins/qmlprofiler/qmlprofilertraceview.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilertraceview.cpp
@@ -471,12 +471,14 @@ void QmlProfilerTraceView::profilerDataModelStateChanged()
switch (d->m_modelManager->state()) {
case QmlProfilerDataState::Empty: break;
case QmlProfilerDataState::ClearingData:
+ d->m_mainView->hide();
emit enableToolbar(false);
break;
case QmlProfilerDataState::AcquiringData: break;
case QmlProfilerDataState::ProcessingData: break;
case QmlProfilerDataState::Done:
emit enableToolbar(true);
+ d->m_mainView->show();
break;
default:
break;
diff --git a/src/plugins/qnx/blackberryinstallwizardpages.cpp b/src/plugins/qnx/blackberryinstallwizardpages.cpp
index 8ca8986820..207b8b29d7 100644
--- a/src/plugins/qnx/blackberryinstallwizardpages.cpp
+++ b/src/plugins/qnx/blackberryinstallwizardpages.cpp
@@ -487,11 +487,11 @@ void BlackBerryInstallWizardFinalPage::initializePage()
return;
}
- label->setText(tr("Target is being added.").arg(m_data.ndkPath));
+ label->setText(tr("Target %1 is being added.").arg(m_data.ndkPath));
emit done();
return;
} else {
- label->setText(tr("Target is already added.").arg(m_data.ndkPath));
+ label->setText(tr("Target %1 is already added.").arg(m_data.ndkPath));
return;
}
}
diff --git a/src/plugins/qtsupport/exampleslistmodel.cpp b/src/plugins/qtsupport/exampleslistmodel.cpp
index 1f0f8c956d..e1f4e8a878 100644
--- a/src/plugins/qtsupport/exampleslistmodel.cpp
+++ b/src/plugins/qtsupport/exampleslistmodel.cpp
@@ -174,7 +174,7 @@ public slots:
ExamplesListModel::ExamplesListModel(QObject *parent) :
QAbstractListModel(parent),
- m_uniqueQtId(noQtVersionsId)
+ m_uniqueQtId(uniqueQtVersionIdSetting())
{
QHash<int, QByteArray> roleNames;
roleNames[Name] = "name";
diff --git a/src/plugins/updateinfo/updateinfoplugin.cpp b/src/plugins/updateinfo/updateinfoplugin.cpp
index a586f42393..d52b042d1b 100644
--- a/src/plugins/updateinfo/updateinfoplugin.cpp
+++ b/src/plugins/updateinfo/updateinfoplugin.cpp
@@ -246,12 +246,13 @@ QDomDocument UpdateInfoPlugin::update()
QDomDocument updates;
if (updater.exitStatus() != QProcess::CrashExit) {
d->m_timer.stop();
- d->m_lastDayChecked = QDate::currentDate();
updates.setContent(updater.readAllStandardOutput());
saveSettings(); // force writing out the last update date
} else {
qWarning() << "Updater application crashed.";
}
+
+ d->m_lastDayChecked = QDate::currentDate();
return updates;
}
diff --git a/src/tools/iostool/iosdevicemanager.cpp b/src/tools/iostool/iosdevicemanager.cpp
index 3bc83bb027..ce61347c61 100644
--- a/src/tools/iostool/iosdevicemanager.cpp
+++ b/src/tools/iostool/iosdevicemanager.cpp
@@ -1227,6 +1227,7 @@ void DevInfoSession::deviceCallbackReturned()
QString deviceNameKey = QLatin1String("deviceName");
QString developerStatusKey = QLatin1String("developerStatus");
QString deviceConnectedKey = QLatin1String("deviceConnected");
+ QString osVersionKey = QLatin1String("osVersion");
bool failure = !device;
if (!failure) {
failure = !connectDevice();
@@ -1256,6 +1257,32 @@ void DevInfoSession::deviceCallbackReturned()
if (!res.contains(developerStatusKey))
res[developerStatusKey] = QLatin1String("*off*");
}
+ if (!failure) {
+ CFPropertyListRef cfProductVersion = lib()->deviceCopyValue(device,
+ 0,
+ CFSTR("ProductVersion"));
+ //CFShow(cfProductVersion);
+ CFPropertyListRef cfBuildVersion = lib()->deviceCopyValue(device,
+ 0,
+ CFSTR("BuildVersion"));
+ //CFShow(cfBuildVersion);
+ QString versionString;
+ if (cfProductVersion) {
+ if (CFGetTypeID(cfProductVersion) == CFStringGetTypeID())
+ versionString = CFStringRef2QString(reinterpret_cast<CFStringRef>(cfProductVersion));
+ CFRelease(cfProductVersion);
+ }
+ if (cfBuildVersion) {
+ if (!versionString.isEmpty() && CFGetTypeID(cfBuildVersion) == CFStringGetTypeID())
+ versionString += QString::fromLatin1(" (%1)").arg(
+ CFStringRef2QString(reinterpret_cast<CFStringRef>(cfBuildVersion)));
+ CFRelease(cfBuildVersion);
+ }
+ if (!versionString.isEmpty())
+ res[osVersionKey] = versionString;
+ else
+ res[osVersionKey] = QLatin1String("*unknown*");
+ }
disconnectDevice();
}
if (!res.contains(deviceConnectedKey))
diff --git a/src/tools/qmlpuppet/qmlpuppet.pro b/src/tools/qmlpuppet/qmlpuppet.pro
index baa1e72923..ca6ad0a8dc 100644
--- a/src/tools/qmlpuppet/qmlpuppet.pro
+++ b/src/tools/qmlpuppet/qmlpuppet.pro
@@ -4,7 +4,7 @@ include(../../../qtcreator.pri)
include(../../private_headers.pri)
greaterThan(QT_MAJOR_VERSION, 4) {
- qtHaveModule(declarative) {
+ qtHaveModule(declarative-private) {
QT += declarative-private core-private
SUBDIRS += qmlpuppet
}
diff --git a/tests/manual/debugger/simple/simple_test_app.cpp b/tests/manual/debugger/simple/simple_test_app.cpp
index 2d98cbef23..a685f4b76c 100644
--- a/tests/manual/debugger/simple/simple_test_app.cpp
+++ b/tests/manual/debugger/simple/simple_test_app.cpp
@@ -3311,6 +3311,7 @@ namespace lambda {
std::string x;
auto f = [&] () -> const std::string & {
int z = x.size();
+ Q_UNUSED(z);
return x;
};
auto c = f();
diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py
index 634269cc6d..b814680f8d 100644
--- a/tests/system/shared/project.py
+++ b/tests/system/shared/project.py
@@ -456,8 +456,8 @@ def __closeSubprocessByPushingStop__(sType):
stopButton = verifyEnabled(":Qt Creator.Stop_QToolButton")
if stopButton.enabled:
clickButton(stopButton)
- test.verify(playButton.enabled)
- test.compare(stopButton.enabled, False)
+ test.verify(waitFor("playButton.enabled", 5000), "Play button should be enabled")
+ test.compare(stopButton.enabled, False, "Stop button should be disabled")
if sType == SubprocessType.QT_QUICK_UI and platform.system() == "Darwin":
waitFor("stopButton.enabled==False")
snooze(2)
diff --git a/tests/system/shared/qtcreator.py b/tests/system/shared/qtcreator.py
index 76e947c026..290d622ce7 100644
--- a/tests/system/shared/qtcreator.py
+++ b/tests/system/shared/qtcreator.py
@@ -60,15 +60,19 @@ source("../../shared/workarounds.py")
# function must be called BEFORE any call except the first (which is done always automatically)
def overrideStartApplication():
global startApplication, __origStartApplication__
- if (platform.system() != "Darwin"):
+ if (platform.system() == "Linux"):
return
if (__origStartApplication__ == None):
__origStartApplication__ = startApplication
def startApplication(*args):
args = list(args)
if str(args[0]).startswith('qtcreator'):
- args[0] = args[0].replace('qtcreator', '"Qt Creator"', 1)
- test.log("Using workaround for MacOS (different AUT name)")
+ if platform.system() == 'Darwin':
+ args[0] = args[0].replace('qtcreator', '"Qt Creator"', 1)
+ test.log("Using workaround for MacOS (different AUT name)")
+ elif not isQt4Build:
+ args[0] = args[0] + ' -platform windows:dialogs=none'
+ test.log("Using workaround for Windows (failing to hook into native FileDialog)")
return __origStartApplication__(*args)
def startedWithoutPluginError():
diff --git a/tests/system/suite_tools/tst_git_clone/test.py b/tests/system/suite_tools/tst_git_clone/test.py
index 656b29863e..a7f5a5dde8 100644
--- a/tests/system/suite_tools/tst_git_clone/test.py
+++ b/tests/system/suite_tools/tst_git_clone/test.py
@@ -53,9 +53,11 @@ def verifyCloneLog(targetDir, canceled):
"Searching for clone directory in clone log")
result = "The process terminated with exit code 0."
summary = "Succeeded."
+ # cloneLog.plainText holds escape as character which makes QDom fail while printing the result
+ # removing these for letting Jenkins continue execute the test suite
test.xverify((result in str(cloneLog.plainText)),
"Searching for result (%s) in clone log:\n%s"
- % (result, str(cloneLog.plainText)))
+ % (result, str(cloneLog.plainText).replace(unicode("\x1b"), "")))
test.compare(waitForObject(":Git Repository Clone.Result._QLabel").text, summary)
def verifyFiles(targetDir):