diff --git a/doc/qtdesignstudio/examples/loginui1/loginui1.qmlproject b/doc/qtdesignstudio/examples/Loginui1/Loginui1.qmlproject similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/loginui1.qmlproject rename to doc/qtdesignstudio/examples/Loginui1/Loginui1.qmlproject diff --git a/doc/qtdesignstudio/examples/loginui1/content/EntryField.ui.qml b/doc/qtdesignstudio/examples/Loginui1/content/EntryField.ui.qml similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/content/EntryField.ui.qml rename to doc/qtdesignstudio/examples/Loginui1/content/EntryField.ui.qml diff --git a/doc/qtdesignstudio/examples/loginui1/content/PushButton.ui.qml b/doc/qtdesignstudio/examples/Loginui1/content/PushButton.ui.qml similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/content/PushButton.ui.qml rename to doc/qtdesignstudio/examples/Loginui1/content/PushButton.ui.qml diff --git a/doc/qtdesignstudio/examples/loginui1/content/Screen01.ui.qml b/doc/qtdesignstudio/examples/Loginui1/content/Screen01.ui.qml similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/content/Screen01.ui.qml rename to doc/qtdesignstudio/examples/Loginui1/content/Screen01.ui.qml diff --git a/doc/qtdesignstudio/examples/loginui1/content/images/adventurePage.jpg b/doc/qtdesignstudio/examples/Loginui1/content/images/adventurePage.jpg similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/content/images/adventurePage.jpg rename to doc/qtdesignstudio/examples/Loginui1/content/images/adventurePage.jpg diff --git a/doc/qtdesignstudio/examples/loginui1/content/images/qt_logo_green_128x128px.png b/doc/qtdesignstudio/examples/Loginui1/content/images/qt_logo_green_128x128px.png similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/content/images/qt_logo_green_128x128px.png rename to doc/qtdesignstudio/examples/Loginui1/content/images/qt_logo_green_128x128px.png diff --git a/doc/qtdesignstudio/examples/loginui1/imports/loginui1/Constants.qml b/doc/qtdesignstudio/examples/Loginui1/imports/loginui1/Constants.qml similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/imports/loginui1/Constants.qml rename to doc/qtdesignstudio/examples/Loginui1/imports/loginui1/Constants.qml diff --git a/doc/qtdesignstudio/examples/loginui1/imports/loginui1/EventListModel.qml b/doc/qtdesignstudio/examples/Loginui1/imports/loginui1/EventListModel.qml similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/imports/loginui1/EventListModel.qml rename to doc/qtdesignstudio/examples/Loginui1/imports/loginui1/EventListModel.qml diff --git a/doc/qtdesignstudio/examples/loginui1/imports/loginui1/EventListSimulator.qml b/doc/qtdesignstudio/examples/Loginui1/imports/loginui1/EventListSimulator.qml similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/imports/loginui1/EventListSimulator.qml rename to doc/qtdesignstudio/examples/Loginui1/imports/loginui1/EventListSimulator.qml diff --git a/doc/qtdesignstudio/examples/loginui1/imports/loginui1/qmldir b/doc/qtdesignstudio/examples/Loginui1/imports/loginui1/qmldir similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/imports/loginui1/qmldir rename to doc/qtdesignstudio/examples/Loginui1/imports/loginui1/qmldir diff --git a/doc/qtdesignstudio/examples/loginui1/src/app_environment.h b/doc/qtdesignstudio/examples/Loginui1/src/app_environment.h similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/src/app_environment.h rename to doc/qtdesignstudio/examples/Loginui1/src/app_environment.h diff --git a/doc/qtdesignstudio/examples/loginui1/src/import_qml_plugins.h b/doc/qtdesignstudio/examples/Loginui1/src/import_qml_plugins.h similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/src/import_qml_plugins.h rename to doc/qtdesignstudio/examples/Loginui1/src/import_qml_plugins.h diff --git a/doc/qtdesignstudio/examples/loginui1/src/main.cpp b/doc/qtdesignstudio/examples/Loginui1/src/main.cpp similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/src/main.cpp rename to doc/qtdesignstudio/examples/Loginui1/src/main.cpp diff --git a/doc/qtdesignstudio/examples/loginui2/Loginui2.qmlproject b/doc/qtdesignstudio/examples/Loginui2/Loginui2.qmlproject similarity index 100% rename from doc/qtdesignstudio/examples/loginui2/Loginui2.qmlproject rename to doc/qtdesignstudio/examples/Loginui2/Loginui2.qmlproject diff --git a/doc/qtdesignstudio/examples/loginui2/content/Screen01.ui.qml b/doc/qtdesignstudio/examples/Loginui2/content/Screen01.ui.qml similarity index 100% rename from doc/qtdesignstudio/examples/loginui2/content/Screen01.ui.qml rename to doc/qtdesignstudio/examples/Loginui2/content/Screen01.ui.qml diff --git a/doc/qtdesignstudio/examples/loginui3/Loginui3.qmlproject b/doc/qtdesignstudio/examples/Loginui3/Loginui3.qmlproject similarity index 100% rename from doc/qtdesignstudio/examples/loginui3/Loginui3.qmlproject rename to doc/qtdesignstudio/examples/Loginui3/Loginui3.qmlproject diff --git a/doc/qtdesignstudio/examples/loginui3/content/Screen01.ui.qml b/doc/qtdesignstudio/examples/Loginui3/content/Screen01.ui.qml similarity index 100% rename from doc/qtdesignstudio/examples/loginui3/content/Screen01.ui.qml rename to doc/qtdesignstudio/examples/Loginui3/content/Screen01.ui.qml diff --git a/doc/qtdesignstudio/examples/loginui4/Loginui4.qmlproject b/doc/qtdesignstudio/examples/Loginui4/Loginui4.qmlproject similarity index 100% rename from doc/qtdesignstudio/examples/loginui4/Loginui4.qmlproject rename to doc/qtdesignstudio/examples/Loginui4/Loginui4.qmlproject diff --git a/doc/qtdesignstudio/examples/loginui4/content/Screen01.ui.qml b/doc/qtdesignstudio/examples/Loginui4/content/Screen01.ui.qml similarity index 100% rename from doc/qtdesignstudio/examples/loginui4/content/Screen01.ui.qml rename to doc/qtdesignstudio/examples/Loginui4/content/Screen01.ui.qml diff --git a/doc/qtdesignstudio/examples/doc/images/simplekeyboard-project-details.png b/doc/qtdesignstudio/examples/doc/images/simplekeyboard-project-details.png index d8cc017a4d0..b4c67f7a88a 100644 Binary files a/doc/qtdesignstudio/examples/doc/images/simplekeyboard-project-details.png and b/doc/qtdesignstudio/examples/doc/images/simplekeyboard-project-details.png differ diff --git a/doc/qtdesignstudio/examples/doc/loginui1.qdoc b/doc/qtdesignstudio/examples/doc/loginui1.qdoc index 78bc2192b56..4e6a6f11b42 100644 --- a/doc/qtdesignstudio/examples/doc/loginui1.qdoc +++ b/doc/qtdesignstudio/examples/doc/loginui1.qdoc @@ -24,7 +24,7 @@ ****************************************************************************/ /*! - \example loginui1 + \example Loginui1 \ingroup gstutorials \nextpage {Log In UI - Positioning} @@ -231,7 +231,7 @@ adds the following \e import statements to the UI files (.ui.qml) that it creates: - \quotefromfile Loginui1/Content/Screen01.ui.qml + \quotefromfile Loginui1/content/Screen01.ui.qml \skipto import \printuntil Controls @@ -334,7 +334,7 @@ To be able to use the functionality of the Button control, the wizard template adds the following \e import statements to the \e EntryField.ui.qml file: - \quotefromfile Loginui1/Content/EntryField.ui.qml + \quotefromfile Loginui1/content/EntryField.ui.qml \skipto import \printuntil Controls diff --git a/doc/qtdesignstudio/examples/doc/loginui3.qdoc b/doc/qtdesignstudio/examples/doc/loginui3.qdoc index 999215d90b1..75ac69e399e 100644 --- a/doc/qtdesignstudio/examples/doc/loginui3.qdoc +++ b/doc/qtdesignstudio/examples/doc/loginui3.qdoc @@ -24,7 +24,7 @@ ****************************************************************************/ /*! - \example loginui3 + \example Loginui3 \ingroup gstutorials \title Log In UI - States diff --git a/doc/qtdesignstudio/examples/doc/loginui4.qdoc b/doc/qtdesignstudio/examples/doc/loginui4.qdoc index a6a1ad77d4a..6a43e55b009 100644 --- a/doc/qtdesignstudio/examples/doc/loginui4.qdoc +++ b/doc/qtdesignstudio/examples/doc/loginui4.qdoc @@ -24,7 +24,7 @@ ****************************************************************************/ /*! - \example loginui4 + \example Loginui4 \ingroup gstutorials \title Log In UI - Timeline @@ -312,7 +312,7 @@ the following \e import statement to the UI files where it uses the components: - \quotefromfile Loginui4/Content/Screen01.ui.qml + \quotefromfile Loginui4/content/Screen01.ui.qml \skipto QtQuick.Timeline \printuntil 1.0 diff --git a/doc/qtdesignstudio/images/studio-project-wizards.png b/doc/qtdesignstudio/images/studio-project-wizards.png index 81fcc3af535..a6cd93f15e2 100644 Binary files a/doc/qtdesignstudio/images/studio-project-wizards.png and b/doc/qtdesignstudio/images/studio-project-wizards.png differ diff --git a/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc index de7f7150d35..f8368e90baf 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc @@ -62,6 +62,10 @@ \li Category \li Wizard Preset \li Purpose + \row + \li Recents + \li + \li Lists the most recent presets that you have used. \row \li {1,2} General \li Empty diff --git a/share/qtcreator/scripts/openTerminal.py b/share/qtcreator/scripts/openTerminal.py index bae549ca9fa..a0347c08674 100755 --- a/share/qtcreator/scripts/openTerminal.py +++ b/share/qtcreator/scripts/openTerminal.py @@ -42,9 +42,9 @@ def clean_environment_script(): 'TERM_SESSION_ID']) return r''' function ignore() { - local keys="''' + env_to_keep + '''" + local keys=(''' + env_to_keep + ''') local v=$1 - for e in $keys; do [[ "$e" == "$v" ]] && return 0; done + for e in "${keys[@]}"; do [[ "$e" == "$v" ]] && return 0; done } while read -r line; do key=$(echo $line | /usr/bin/cut -d '=' -f 1) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index fda6987e5e2..46a0c0e54d5 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -1065,10 +1065,11 @@ static bool isDocker(const Kit *k) static bool isWindowsARM64(const Kit *k) { ToolChain *toolchain = ToolChainKitAspect::cxxToolChain(k); - QTC_ASSERT(toolchain, return false); + if (!toolchain) + return false; const Abi targetAbi = toolchain->targetAbi(); return targetAbi.os() == Abi::WindowsOS && targetAbi.architecture() == Abi::ArmArchitecture - && targetAbi.wordWidth() == 64; + && targetAbi.wordWidth() == 64; } static CommandLine defaultInitialCMakeCommand(const Kit *k, const QString buildType) diff --git a/tests/system/README b/tests/system/README index 05fe472d5ad..61847485fbf 100644 --- a/tests/system/README +++ b/tests/system/README @@ -5,6 +5,7 @@ Squish tests inside this folder have several prerequisites to get them running. First - and most important - you have to own a valid Squish license. At least Squish 6.0 is required. Second - some of the test suites/test cases expect a build of Qt 4.8.7 to be available: +[ this is optional and if Qt4 is not available some Qt5 will be tried to use instead ] 1. Download the source code from: * Windows: https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.zip * Other: https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz diff --git a/tests/system/shared/classes.py b/tests/system/shared/classes.py index a96a7e2d6e0..d43c15a63a3 100644 --- a/tests/system/shared/classes.py +++ b/tests/system/shared/classes.py @@ -48,7 +48,9 @@ class Targets: @staticmethod def availableTargetClasses(): availableTargets = set(Targets.ALL_TARGETS) - if platform.system() in ('Windows', 'Microsoft'): + if not qt4Available: + availableTargets.remove(Targets.DESKTOP_4_8_7_DEFAULT) + if not qt4Available or platform.system() in ('Windows', 'Microsoft'): availableTargets.remove(Targets.EMBEDDED_LINUX) elif platform.system() == 'Darwin': availableTargets.remove(Targets.DESKTOP_5_4_1_GCC) diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py index c6015586f8e..85d8c1d5e6c 100644 --- a/tests/system/shared/project.py +++ b/tests/system/shared/project.py @@ -69,7 +69,10 @@ def openCmakeProject(projectPath, buildDir): invokeMenuItem("File", "Open File or Project...") selectFromFileDialog(projectPath) __chooseTargets__([]) # uncheck all - __chooseTargets__([Targets.DESKTOP_4_8_7_DEFAULT], additionalFunc=additionalFunction) + targetToChoose = Targets.DESKTOP_4_8_7_DEFAULT # FIXME make the intended target a parameter + if not qt4Available: + targetToChoose = Targets.DESKTOP_5_14_1_DEFAULT + __chooseTargets__([targetToChoose], additionalFunc=additionalFunction) clickButton(waitForObject(":Qt Creator.Configure Project_QPushButton")) return True @@ -524,7 +527,8 @@ def __getSupportedPlatforms__(text, templateName, getAsStrings=False): result = set() if 'Desktop' in supports: if (version == None or version < "5.0") and not templateName.startswith("Qt Quick 2"): - result.add(Targets.DESKTOP_4_8_7_DEFAULT) + if qt4Available: + result.add(Targets.DESKTOP_4_8_7_DEFAULT) if platform.system() in ("Linux", "Darwin"): result.add(Targets.EMBEDDED_LINUX) result = result.union(set([Targets.DESKTOP_5_10_1_DEFAULT, Targets.DESKTOP_5_14_1_DEFAULT])) diff --git a/tests/system/shared/qtcreator.py b/tests/system/shared/qtcreator.py index 0618ce273da..4c9646ffb6d 100644 --- a/tests/system/shared/qtcreator.py +++ b/tests/system/shared/qtcreator.py @@ -39,6 +39,13 @@ try: except ImportError: import builtins as __builtin__ # Python 3 + +# ensure global variables are defined before including shared scripts +qt4Path = os.path.expanduser("~/Qt4.8.7") +if platform.system() in ('Windows', 'Microsoft'): + qt4Path = "C:\\Qt\\Qt4.8.7" + +qt4Available = os.path.exists(qt4Path) srcPath = '' SettingsPath = [] tmpSettingsDir = '' @@ -329,10 +336,8 @@ def copySettingsToTmpDir(destination=None, omitFiles=[]): # current dir is directory holding qtcreator.py origSettingsDir = os.path.abspath(os.path.join(os.getcwd(), "..", "..", "settings")) -qt4Path = os.path.expanduser("~/Qt4.8.7") if platform.system() in ('Windows', 'Microsoft'): - qt4Path = "C:\\Qt\\Qt4.8.7" origSettingsDir = os.path.join(origSettingsDir, "windows") elif platform.system() == 'Darwin': origSettingsDir = os.path.join(origSettingsDir, "mac") diff --git a/tests/system/suite_CSUP/tst_CSUP03/test.py b/tests/system/suite_CSUP/tst_CSUP03/test.py index 53b532c05de..a20ac19ea4f 100644 --- a/tests/system/suite_CSUP/tst_CSUP03/test.py +++ b/tests/system/suite_CSUP/tst_CSUP03/test.py @@ -78,8 +78,10 @@ def main(): continue if not startCreatorVerifyingClang(useClang): continue - projectName = createNewNonQtProject(tempDir(), "project-csup03", - [Targets.DESKTOP_4_8_7_DEFAULT]) + targetToChoose = Targets.DESKTOP_4_8_7_DEFAULT + if not qt4Available: + targetToChoose = Targets.DESKTOP_5_14_1_DEFAULT + projectName = createNewNonQtProject(tempDir(), "project-csup03", [targetToChoose]) checkCodeModelSettings(useClang) openDocument("%s.Sources.main\\.cpp" % projectName) editor = getEditorForFileSuffix("main.cpp") diff --git a/tests/system/suite_HELP/tst_HELP04/test.py b/tests/system/suite_HELP/tst_HELP04/test.py index 18e3ee45639..83941679b9f 100644 --- a/tests/system/suite_HELP/tst_HELP04/test.py +++ b/tests/system/suite_HELP/tst_HELP04/test.py @@ -69,7 +69,8 @@ def main(): startQC() if not startedWithoutPluginError(): return - addHelpDocumentation([os.path.join(qt4Path, "doc", "qch", "qt.qch")]) + if qt4Available: + addHelpDocumentation([os.path.join(qt4Path, "doc", "qch", "qt.qch")]) # switch to help mode switchViewTo(ViewConstants.HELP) # verify that search widget is accessible diff --git a/tests/system/suite_general/tst_build_speedcrunch/test.py b/tests/system/suite_general/tst_build_speedcrunch/test.py index 8ba749b1680..e98a9b0e9a5 100644 --- a/tests/system/suite_general/tst_build_speedcrunch/test.py +++ b/tests/system/suite_general/tst_build_speedcrunch/test.py @@ -41,7 +41,10 @@ def main(): startQC() if not startedWithoutPluginError(): return - openQmakeProject(SpeedCrunchPath, [Targets.DESKTOP_4_8_7_DEFAULT]) + targetToChoose = Targets.DESKTOP_4_8_7_DEFAULT + if not qt4Available: + targetToChoose = Targets.DESKTOP_5_14_1_DEFAULT + openQmakeProject(SpeedCrunchPath, [targetToChoose]) waitForProjectParsing() fancyToolButton = waitForObject(":*Qt Creator_Core::Internal::FancyToolButton") diff --git a/tests/system/suite_general/tst_openqt_creator/test.py b/tests/system/suite_general/tst_openqt_creator/test.py index ad1f4b52a25..6ff0bfb345e 100644 --- a/tests/system/suite_general/tst_openqt_creator/test.py +++ b/tests/system/suite_general/tst_openqt_creator/test.py @@ -36,7 +36,10 @@ def main(): return runButton = findObject(':*Qt Creator.Run_Core::Internal::FancyToolButton') - openQmakeProject(pathSpeedcrunch, [Targets.DESKTOP_4_8_7_DEFAULT]) + targetToChoose = Targets.DESKTOP_4_8_7_DEFAULT + if not qt4Available: + targetToChoose = Targets.DESKTOP_5_14_1_DEFAULT + openQmakeProject(pathSpeedcrunch, [targetToChoose]) # Wait for parsing to complete waitFor("runButton.enabled", 30000) # Starting before opening, because this is where Creator froze (QTCREATORBUG-10733)