summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dist/changes-4.6.1.md77
-rw-r--r--src/plugins/android/androidavdmanager.cpp7
-rw-r--r--src/plugins/android/androidrunnerworker.h2
-rw-r--r--src/plugins/help/searchwidget.cpp26
-rw-r--r--src/plugins/help/searchwidget.h6
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeproject.cpp10
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeproject.h1
-rw-r--r--tests/system/settings/mac/QtProject/qtcreator/profiles.xml4
-rw-r--r--tests/system/shared/classes.py12
-rw-r--r--tests/system/suite_SCOM/tst_SCOM04/test.py1
-rw-r--r--tests/system/suite_WELP/tst_WELP03/test.py2
11 files changed, 125 insertions, 23 deletions
diff --git a/dist/changes-4.6.1.md b/dist/changes-4.6.1.md
new file mode 100644
index 0000000000..091d36ba68
--- /dev/null
+++ b/dist/changes-4.6.1.md
@@ -0,0 +1,77 @@
+Qt Creator version 4.6.1 contains bug fixes.
+
+The most important changes are listed in this document. For a complete
+list of changes, see the Git log for the Qt Creator sources that
+you can check out from the public Git repository. For example:
+
+ git clone git://code.qt.io/qt-creator/qt-creator.git
+ git log --cherry-pick --pretty=oneline v4.6.0..v4.6.1
+
+General
+
+* Locator
+ * Fixed min and max functions when using more than two arguments
+ in JavaScript filter (QTCREATORBUG-20167)
+
+Editing
+
+* Fixed crash when closing file with generic highlighting (QTCREATORBUG-20247)
+
+All Projects
+
+* Fixed that `.qrc` files were not listed as project files in Locator and
+ searches (QTCREATORBUG-20220)
+
+QMake Projects
+
+* Fixed that run and build buttons could stay disabled after project parsing
+ (QTCREATORBUG-20203)
+
+CMake Projects
+
+* Fixed that build steps for `clean` were missing (QTCREATORBUG-19823)
+
+Qbs Projects
+
+* Fixed performance issue (QTCREATORBUG-20175)
+
+C++ Support
+
+* Clang Code Model
+ * Fixed issue with parsing type_traits from GCC 7 (QTCREATORBUG-18757)
+ * Fixed warnings about unknown warning options (QTCREATORBUG-17460)
+ * Fixed wrong warning about overriding files from precompiled headers
+ (QTCREATORBUG-20125)
+
+QML Support
+
+* Made Qt 5.11 known to wizards
+
+Debugging
+
+* Fixed pointer address value for arrays
+* QML
+ * Fixed that `console.info` was not shown in Debugger Console
+ (QTCREATORBUG-20117)
+
+QML Profiler
+
+* Fixed issue with spaces in path (QTCREATORBUG-20260)
+
+Qt Quick Designer
+
+* Fixed issue with `AbstractButton` enums
+* Fixed issue with deferred properties
+
+Test Integration
+
+* Fixed issue with non-ASCII characters in Qt Quick test output
+ (QTCREATORBUG-20105)
+
+Platform Specific
+
+Android
+
+* Fixed deployment issue for 32-bit applications (QTCREATORBUG-20084)
+* Fixed crash when trying to set up a broken NDK (QTCREATORBUG-20217)
+* Fixed debugging on Android 8 or later
diff --git a/src/plugins/android/androidavdmanager.cpp b/src/plugins/android/androidavdmanager.cpp
index 5af95e7a26..954053b08b 100644
--- a/src/plugins/android/androidavdmanager.cpp
+++ b/src/plugins/android/androidavdmanager.cpp
@@ -53,6 +53,7 @@ const char avdInfoPathKey[] = "Path:";
const char avdInfoAbiKey[] = "abi.type";
const char avdInfoTargetKey[] = "target";
const char avdInfoErrorKey[] = "Error:";
+const char googleApiTag[] = "google_apis";
const int avdCreateTimeoutMs = 30000;
@@ -111,13 +112,17 @@ static CreateAvdInfo createAvdCommand(const AndroidConfig config, const CreateAv
return result;
}
- QStringList arguments({"create", "avd", "-k", result.sdkPlatform->sdkStylePath(), "-n", result.name});
+ QStringList arguments({"create", "avd", "-n", result.name});
if (!result.abi.isEmpty()) {
SystemImage *image = Utils::findOrDefault(result.sdkPlatform->systemImages(),
Utils::equal(&SystemImage::abiName, result.abi));
if (image && image->isValid()) {
arguments << "-k" << image->sdkStylePath();
+ // Google api system images requires explicit abi as
+ // google-apis/ABI or --tag "google-apis"
+ if (image->sdkStylePath().contains(googleApiTag))
+ arguments << "--tag" << googleApiTag;
} else {
QString name = result.sdkPlatform->displayText();
qCDebug(avdManagerLog) << "AVD Create failed. Cannot find system image for the platform"
diff --git a/src/plugins/android/androidrunnerworker.h b/src/plugins/android/androidrunnerworker.h
index 7a5c6614b8..686104758c 100644
--- a/src/plugins/android/androidrunnerworker.h
+++ b/src/plugins/android/androidrunnerworker.h
@@ -42,7 +42,7 @@ namespace Internal {
const int MIN_SOCKET_HANDSHAKE_PORT = 20001;
-static void deleter(QProcess *p)
+static inline void deleter(QProcess *p)
{
p->terminate();
if (!p->waitForFinished(1000)) {
diff --git a/src/plugins/help/searchwidget.cpp b/src/plugins/help/searchwidget.cpp
index 7d275fa0d5..c3bcd1c314 100644
--- a/src/plugins/help/searchwidget.cpp
+++ b/src/plugins/help/searchwidget.cpp
@@ -32,6 +32,7 @@
#include <coreplugin/coreconstants.h>
#include <coreplugin/icore.h>
#include <coreplugin/progressmanager/progressmanager.h>
+#include <utils/progressindicator.h>
#include <utils/styledbar.h>
#include <utils/utilsicons.h>
@@ -43,6 +44,7 @@
#include <QHelpSearchResultWidget>
#include <QKeyEvent>
#include <QLayout>
+#include <QLabel>
#include <QMap>
#include <QMenu>
#include <QRegExp>
@@ -112,11 +114,14 @@ void SearchWidget::showEvent(QShowEvent *event)
Utils::StyledBar *toolbar = new Utils::StyledBar(this);
toolbar->setSingleRow(false);
- QHelpSearchQueryWidget *queryWidget = searchEngine->queryWidget();
+ m_queryWidget = searchEngine->queryWidget();
QLayout *tbLayout = new QVBoxLayout();
tbLayout->setSpacing(6);
tbLayout->setMargin(4);
- tbLayout->addWidget(queryWidget);
+ tbLayout->addWidget(m_queryWidget);
+ m_indexingDocumentationLabel = new QLabel(tr("Indexing Documentation"), toolbar);
+ m_indexingDocumentationLabel->hide();
+ tbLayout->addWidget(m_indexingDocumentationLabel);
toolbar->setLayout(tbLayout);
Utils::StyledBar *toolbar2 = new Utils::StyledBar(this);
@@ -127,12 +132,17 @@ void SearchWidget::showEvent(QShowEvent *event)
tbLayout->addWidget(resultWidget = searchEngine->resultWidget());
toolbar2->setLayout(tbLayout);
+ m_indexingIndicator = new Utils::ProgressIndicator(Utils::ProgressIndicatorSize::Medium,
+ resultWidget);
+ m_indexingIndicator->attachToWidget(resultWidget);
+ m_indexingIndicator->hide();
+
vLayout->addWidget(toolbar);
vLayout->addWidget(toolbar2);
- setFocusProxy(queryWidget);
+ setFocusProxy(m_queryWidget);
- connect(queryWidget, &QHelpSearchQueryWidget::search, this, &SearchWidget::search);
+ connect(m_queryWidget, &QHelpSearchQueryWidget::search, this, &SearchWidget::search);
connect(resultWidget, &QHelpSearchResultWidget::requestShowLink, this,
[this](const QUrl &url) {
emit linkActivated(url, currentSearchTerms(), false/*newPage*/);
@@ -205,6 +215,10 @@ void SearchWidget::indexingStarted()
m_watcher.setFuture(m_progress->future());
connect(&m_watcher, &QFutureWatcherBase::canceled,
searchEngine, &QHelpSearchEngine::cancelIndexing);
+
+ m_queryWidget->hide();
+ m_indexingDocumentationLabel->show();
+ m_indexingIndicator->show();
}
void SearchWidget::indexingFinished()
@@ -213,6 +227,10 @@ void SearchWidget::indexingFinished()
delete m_progress;
m_progress = NULL;
+
+ m_queryWidget->show();
+ m_indexingDocumentationLabel->hide();
+ m_indexingIndicator->hide();
}
bool SearchWidget::eventFilter(QObject *o, QEvent *e)
diff --git a/src/plugins/help/searchwidget.h b/src/plugins/help/searchwidget.h
index e0ad8ebab5..6464099d5a 100644
--- a/src/plugins/help/searchwidget.h
+++ b/src/plugins/help/searchwidget.h
@@ -33,10 +33,13 @@
QT_BEGIN_NAMESPACE
class QHelpSearchEngine;
+class QHelpSearchQueryWidget;
class QHelpSearchResultWidget;
class QUrl;
QT_END_NAMESPACE
+namespace Utils { class ProgressIndicator; }
+
namespace Help {
namespace Internal {
@@ -93,6 +96,9 @@ private:
QHelpSearchEngine *searchEngine;
QHelpSearchResultWidget *resultWidget;
+ QHelpSearchQueryWidget *m_queryWidget;
+ QWidget *m_indexingDocumentationLabel;
+ Utils::ProgressIndicator *m_indexingIndicator;
};
} // namespace Internal
diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
index 612e8a17bc..a64acfae5b 100644
--- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
@@ -562,7 +562,12 @@ void QmakeProject::asyncUpdate()
{
m_asyncUpdateTimer.setInterval(UPDATE_INTERVAL);
- m_qmakeVfs->invalidateCache();
+ if (m_invalidateQmakeVfsContents) {
+ m_invalidateQmakeVfsContents = false;
+ m_qmakeVfs->invalidateContents();
+ } else {
+ m_qmakeVfs->invalidateCache();
+ }
Q_ASSERT(!m_asyncUpdateFutureInterface);
m_asyncUpdateFutureInterface = new QFutureInterface<void>();
@@ -588,7 +593,7 @@ void QmakeProject::asyncUpdate()
void QmakeProject::buildFinished(bool success)
{
if (success)
- m_qmakeVfs->invalidateContents();
+ m_invalidateQmakeVfsContents = true;
}
bool QmakeProject::supportsKit(const Kit *k, QString *errorMessage) const
@@ -789,6 +794,7 @@ void QmakeProject::activeTargetWasChanged()
}
m_activeTarget = activeTarget();
+ m_invalidateQmakeVfsContents = true;
if (!m_activeTarget)
return;
diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.h b/src/plugins/qmakeprojectmanager/qmakeproject.h
index df22a298bf..49b686bb7a 100644
--- a/src/plugins/qmakeprojectmanager/qmakeproject.h
+++ b/src/plugins/qmakeprojectmanager/qmakeproject.h
@@ -165,6 +165,7 @@ private:
// cached data during project rescan
std::unique_ptr<QMakeGlobals> m_qmakeGlobals;
int m_qmakeGlobalsRefCnt = 0;
+ bool m_invalidateQmakeVfsContents = false;
QString m_qmakeSysroot;
diff --git a/tests/system/settings/mac/QtProject/qtcreator/profiles.xml b/tests/system/settings/mac/QtProject/qtcreator/profiles.xml
index c7548b95d1..f64b5ba055 100644
--- a/tests/system/settings/mac/QtProject/qtcreator/profiles.xml
+++ b/tests/system/settings/mac/QtProject/qtcreator/profiles.xml
@@ -18,7 +18,7 @@
<value type="QString" key="Cxx">ProjectExplorer.ToolChain.Gcc:{c3f59b87-6997-4bd8-8067-ee04dc536371}</value>
</valuemap>
<value type="QString" key="QtPM4.mkSpecInformation"></value>
- <value type="int" key="QtSupport.QtInformation">4</value>
+ <value type="int" key="QtSupport.QtInformation">2</value>
</valuemap>
<value type="QString" key="PE.Profile.Icon">:///DESKTOP///</value>
<value type="QString" key="PE.Profile.Id">{f16848fc-b615-43b5-b0cc-16a9f57fb573}</value>
@@ -112,7 +112,7 @@
</data>
<data>
<variable>Profile.Default</variable>
- <value type="QString">{a1e860d1-c241-4abf-80fe-cf0c9f0a43b3}</value>
+ <value type="QString">{fc5f34fd-e703-4f4c-85ce-ea5bf5869e6a}</value>
</data>
<data>
<variable>Version</variable>
diff --git a/tests/system/shared/classes.py b/tests/system/shared/classes.py
index d06398a159..c18173eea6 100644
--- a/tests/system/shared/classes.py
+++ b/tests/system/shared/classes.py
@@ -193,18 +193,6 @@ class Qt5Path:
@staticmethod
def __createPlatformQtPath__(qt5Minor):
- # special handling for Qt5.2
- if qt5Minor == 2:
- if platform.system() in ('Microsoft', 'Windows'):
- return "C:/Qt/Qt5.2.1/5.2.1/msvc2010"
- elif platform.system() == 'Linux':
- if __is64BitOS__():
- return os.path.expanduser("~/Qt5.2.1/5.2.1/gcc_64")
- else:
- return os.path.expanduser("~/Qt5.2.1/5.2.1/gcc")
- else:
- return os.path.expanduser("~/Qt5.2.1/5.2.1/clang_64")
- # Qt5.3+
if platform.system() in ('Microsoft', 'Windows'):
return "C:/Qt/Qt5.%d.1" % qt5Minor
else:
diff --git a/tests/system/suite_SCOM/tst_SCOM04/test.py b/tests/system/suite_SCOM/tst_SCOM04/test.py
index 5698cae8eb..e7136cb0d4 100644
--- a/tests/system/suite_SCOM/tst_SCOM04/test.py
+++ b/tests/system/suite_SCOM/tst_SCOM04/test.py
@@ -32,6 +32,7 @@ def main():
expectedErrorAlternatives = ["'SyntaxError' was not declared in this scope",
"\xe2\x80\x98SyntaxError\xe2\x80\x99 was not declared in this scope",
"'SyntaxError' : undeclared identifier",
+ '"SyntaxError" : undeclared identifier',
"use of undeclared identifier 'SyntaxError'",
"unknown type name 'SyntaxError'"]
startApplication("qtcreator" + SettingsPath)
diff --git a/tests/system/suite_WELP/tst_WELP03/test.py b/tests/system/suite_WELP/tst_WELP03/test.py
index 34d0de76aa..b6d4e1c940 100644
--- a/tests/system/suite_WELP/tst_WELP03/test.py
+++ b/tests/system/suite_WELP/tst_WELP03/test.py
@@ -80,7 +80,7 @@ def main():
expect = (("QTableView", "unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'",
"examples list"),
("QLineEdit", "placeholderText='Search in Examples...'", "examples search line edit"),
- ("QComboBox", "text~='.*Qt.*' visible='1'", "Qt version combo box"))
+ ("QComboBox", "currentText~='.*Qt.*' visible='1'", "Qt version combo box"))
search = "{type='%s' %s}"
test.verify(all(map(checkIfObjectExists, (search % (exp[0], exp[1]) for exp in expect))),
"Verifying: 'Examples' topic is opened and the examples are shown.")