diff --git a/dist/changes-4.2.2.md b/dist/changes-4.2.2.md new file mode 100644 index 00000000000..f3ed405838c --- /dev/null +++ b/dist/changes-4.2.2.md @@ -0,0 +1,21 @@ +Qt Creator version 4.2.2 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.2.1..v4.2.2 + +Qt Support + +* Fixed ABI detection of static Qt builds + +Qbs Projects + +* Fixed duplicate include paths (QTCREATORBUG-17381) + +Version Control Systems + +* Gerrit + * Fixed crash when committing and pushing to Gerrit (QTCREATORBUG-17634) diff --git a/scripts/createDevPackage.py b/scripts/createDevPackage.py index b0b3837fb31..64c74e0ba14 100755 --- a/scripts/createDevPackage.py +++ b/scripts/createDevPackage.py @@ -58,20 +58,15 @@ def parse_arguments(): source_include_patterns = [ # directories r"^scripts/.*$", # everything under scripts/ + r"^share/(qtcreator/(qml/(qmlpuppet/(.*/)?)?)?)?$", # for shared headers for qt quick designer plugins r"^src/(.*/)?$", # all directories under src/ r"^plugins/(.*/)?$", # all directories under plugins/ (if this is run on extra plugin repositories) # files r"^HACKING$", r"^LICENSE.*$", r"^README.md$", - r"^qtcreator.pri$", - r"^qtcreatordata.pri$", - r"^src/qtcreatorplugin.pri$", - r"^src/qtcreatorlibrary.pri$", - r"^src/qtcreatortool.pri$", - r"^src/rpath.pri$", + r"^.*\.pri$", r"^.*\.h$", - r"^.*_dependencies.pri$", ] build_include_patterns = [ diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index f7ad3fe465c..1036c819a96 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -1118,7 +1118,7 @@ bool GitClient::synchronousReset(const QString &workingDirectory, // Note that git exits with 1 even if the operation is successful // Assume real failure if the output does not contain "foo.cpp modified" // or "Unstaged changes after reset" (git 1.7.0). - if (resp.result == SynchronousProcessResponse::Finished + if (resp.result != SynchronousProcessResponse::Finished && (!stdOut.contains("modified") && !stdOut.contains("Unstaged changes after reset"))) { if (files.isEmpty()) { msgCannotRun(arguments, workingDirectory, resp.stdErr(), errorMessage); diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp b/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp index bd2717f94f6..58bc14ad0db 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp @@ -212,7 +212,7 @@ bool QmakeProjectManagerPlugin::initialize(const QStringList &arguments, QString m_buildFileAction = new Utils::ParameterAction(tr("Build File"), tr("Build File \"%1\""), Utils::ParameterAction::AlwaysEnabled, this); - command = ActionManager::registerAction(m_buildFileAction, Constants::BUILDFILE); + command = ActionManager::registerAction(m_buildFileAction, Constants::BUILDFILE, projectContext); command->setAttribute(Command::CA_Hide); command->setAttribute(Command::CA_UpdateText); command->setDescription(m_buildFileAction->text()); diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index bf169e0e3cc..5dfef19f37a 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -471,6 +471,12 @@ QSet BaseQtVersion::availableFeatures() const if (qtVersion().matches(5, 7)) return features; + features.unite(versionedIds(Constants::FEATURE_QT_QUICK_PREFIX, 2, 8)); + features.unite(versionedIds(Constants::FEATURE_QT_QUICK_CONTROLS_2_PREFIX, 2, 1)); + + if (qtVersion().matches(5, 8)) + return features; + return features; } diff --git a/tests/system/objects.map b/tests/system/objects.map index 3282b16d2da..354fff8d3b5 100644 --- a/tests/system/objects.map +++ b/tests/system/objects.map @@ -166,7 +166,7 @@ :Qt Creator_SearchResult_Core::Internal::OutputPaneToggleButton {occurrence='2' type='Core::Internal::OutputPaneToggleButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator_SystemSettings.Details_Utils::DetailsButton {occurrence='4' text='Details' type='Utils::DetailsButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator_TextEditor::TextEditorWidget {type='TextEditor::TextEditorWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} -:Qt Creator_Utils::BuildDirectoryLineEdit {occurrence='2' type='Utils::FancyLineEdit' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} +:Qt Creator_Utils::BuildDirectoryLineEdit {name='shadowBuildDirEditLineEdit' type='Utils::FancyLineEdit' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator_Utils::NavigationTreeView {type='Utils::NavigationTreeView' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator_Utils::NavigationTreeView::QExpandingLineEdit {container=':Qt Creator_Utils::NavigationTreeView' type='QExpandingLineEdit' unnamed='1' visible='1'} :Qt Gui Application.Form file:_QLabel {name='formLabel' text='Form file:' type='QLabel' visible='1' window=':Qt Gui Application_QmakeProjectManager::Internal::GuiAppWizardDialog'} diff --git a/tests/system/suite_general/tst_openqt_creator/test.py b/tests/system/suite_general/tst_openqt_creator/test.py index 10ec71744cd..5722a3fe46c 100644 --- a/tests/system/suite_general/tst_openqt_creator/test.py +++ b/tests/system/suite_general/tst_openqt_creator/test.py @@ -41,7 +41,7 @@ def main(): waitFor("runButton.enabled", 30000) # Starting before opening, because this is where Creator froze (QTCREATORBUG-10733) startopening = datetime.utcnow() - openQmakeProject(pathCreator, Targets.DESKTOP_531_DEFAULT) + openQmakeProject(pathCreator, Targets.DESKTOP_561_DEFAULT) # Wait for parsing to complete startreading = datetime.utcnow() waitFor("runButton.enabled", 300000) @@ -62,12 +62,15 @@ def main(): if not test.verify(object.exists(":Qt Creator_Core::OutputWindow"), "Did the General Messages view show up?"): openGeneralMessages() + # Verify messages appear once, from using default kit before configuring generalMessages = str(waitForObject(":Qt Creator_Core::OutputWindow").plainText) - test.verify("Project MESSAGE: Cannot build Qt Creator with Qt version 5.3.1." in generalMessages, - "Warning about outdated Qt shown?") - test.verify("Project ERROR: Use at least Qt 5.5.0." in generalMessages, - "Minimum Qt version shown?") + test.compare(generalMessages.count("Project MESSAGE: Cannot build Qt Creator with Qt version 5.3.1."), 1, + "Warning about outdated Qt shown?") + test.compare(generalMessages.count("Project ERROR: Use at least Qt 5.5.0."), 1, + "Minimum Qt version shown?") + # Verify that qmljs.g is in the project even when we don't know where (QTCREATORBUG-17609) + selectFromLocator("p qmljs.g", "qmljs.g") # Now check some basic lookups in the search box selectFromLocator(": Qlist::QList", "QList::QList") test.compare(wordUnderCursor(waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")), "QList") diff --git a/tests/system/suite_general/tst_openqt_creator/testdata/projecttree_creator.tsv b/tests/system/suite_general/tst_openqt_creator/testdata/projecttree_creator.tsv index d3a824e96fa..d25452c942a 100644 --- a/tests/system/suite_general/tst_openqt_creator/testdata/projecttree_creator.tsv +++ b/tests/system/suite_general/tst_openqt_creator/testdata/projecttree_creator.tsv @@ -2683,8 +2683,6 @@ "qmljsgrammar.cpp" "6" "qmljslexer.cpp" "6" "qmljsparser.cpp" "6" -"Other files" "5" -"qmljs.g" "6" "Headers" "4" "jsoncheck.h" "5" "persistenttrie.h" "5" @@ -2760,9 +2758,6 @@ "qmljsutils.cpp" "5" "qmljsvalueowner.cpp" "5" "qmljsviewercontext.cpp" "5" -"Other files" "4" -"parser" "5" -"qmljs.g" "6" "qtcreatorlibrary" "3" "qtcreatorlibrary.pri" "4" "qmljs_dependencies" "4" @@ -13819,8 +13814,6 @@ "qmljsgrammar.cpp" "8" "qmljslexer.cpp" "8" "qmljsparser.cpp" "8" -"Other files" "7" -"qmljs.g" "8" "Headers" "6" "jsoncheck.h" "7" "persistenttrie.h" "7" @@ -13896,9 +13889,6 @@ "qmljsutils.cpp" "7" "qmljsvalueowner.cpp" "7" "qmljsviewercontext.cpp" "7" -"Other files" "6" -"parser" "7" -"qmljs.g" "8" "qttest" "5" "qttest.pri" "6" "qtcreator" "6" diff --git a/tests/system/suite_tools/tst_git_clone/test.py b/tests/system/suite_tools/tst_git_clone/test.py index 621b4d68946..20a74e6546d 100644 --- a/tests/system/suite_tools/tst_git_clone/test.py +++ b/tests/system/suite_tools/tst_git_clone/test.py @@ -74,7 +74,7 @@ def verifyVersionControlView(targetDir, canceled): clickButton(waitForObject(":*Qt Creator.Clear_QToolButton")) def verifyFiles(targetDir): - for file in [".gitignore", "LGPL_EXCEPTION.txt", "installerfw.pro", + for file in [".gitignore", "LICENSE.GPL3-EXCEPT", "installerfw.pro", os.path.join("tests", "test-installer", "create-test-installer.bat"), os.path.join("src", "sdk", "main.cpp")]: test.verify(os.path.exists(os.path.join(targetDir, cloneDir, file)),