diff options
-rw-r--r-- | dist/changes-4.6.1.md | 77 | ||||
-rw-r--r-- | src/plugins/android/androidavdmanager.cpp | 7 | ||||
-rw-r--r-- | src/plugins/android/androidrunnerworker.h | 2 | ||||
-rw-r--r-- | src/plugins/help/searchwidget.cpp | 26 | ||||
-rw-r--r-- | src/plugins/help/searchwidget.h | 6 | ||||
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakeproject.cpp | 10 | ||||
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakeproject.h | 1 | ||||
-rw-r--r-- | tests/system/settings/mac/QtProject/qtcreator/profiles.xml | 4 | ||||
-rw-r--r-- | tests/system/shared/classes.py | 12 | ||||
-rw-r--r-- | tests/system/suite_SCOM/tst_SCOM04/test.py | 1 | ||||
-rw-r--r-- | tests/system/suite_WELP/tst_WELP03/test.py | 2 |
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.") |