From 1f4e78d8a67a7c5d51e4a653c69dc9f97cacfb52 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Wed, 6 Sep 2017 14:37:46 +0300 Subject: [PATCH 1/8] Android: Fix search path for QML modules QT_INSTALL_IMPORTS was used by Qt 4.x, Qt 5.x uses QT_INSTALL_QML Change-Id: I9c25ef005f3c5dc8cfc8d0b965426e22b542fb70 Reviewed-by: hjk Reviewed-by: Vikas Pachdha --- src/plugins/android/androiddebugsupport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/android/androiddebugsupport.cpp b/src/plugins/android/androiddebugsupport.cpp index 5bc850fe643..d6036231cb0 100644 --- a/src/plugins/android/androiddebugsupport.cpp +++ b/src/plugins/android/androiddebugsupport.cpp @@ -55,7 +55,7 @@ namespace Internal { static const char * const qMakeVariables[] = { "QT_INSTALL_LIBS", "QT_INSTALL_PLUGINS", - "QT_INSTALL_IMPORTS" + "QT_INSTALL_QML" }; static QStringList qtSoPaths(QtSupport::BaseQtVersion *qtVersion) From 8628150ffceab2a62a256536a9948c9f59a4f173 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 24 Aug 2017 18:40:37 +0200 Subject: [PATCH 2/8] Qnx: Give Slog2Info runner a display name ... for better debugging. Change-Id: I24d2c6d10d659287ae61fdb4db735e658e3a68ce Reviewed-by: Eike Ziller --- src/plugins/qnx/slog2inforunner.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/qnx/slog2inforunner.cpp b/src/plugins/qnx/slog2inforunner.cpp index 527dc16ceb9..ebcf5107992 100644 --- a/src/plugins/qnx/slog2inforunner.cpp +++ b/src/plugins/qnx/slog2inforunner.cpp @@ -43,6 +43,7 @@ namespace Internal { Slog2InfoRunner::Slog2InfoRunner(RunControl *runControl) : RunWorker(runControl) { + setDisplayName("Slog2InfoRunner"); auto qnxRunConfig = qobject_cast(runControl->runConfiguration()); QTC_ASSERT(qnxRunConfig, return); m_applicationId = FileName::fromString(qnxRunConfig->remoteExecutableFilePath()).fileName(); From 5680c1c87440f35e4bec54a40e958bb6e14051cf Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 6 Sep 2017 16:04:54 +0200 Subject: [PATCH 3/8] Register Qbs documentation (if available) Task-number: QTCREATORBUG-18441 Change-Id: I800fae056f7d1cfc60fab3b0c1964d3b9a2a99f7 Reviewed-by: Joerg Bornemann Reviewed-by: Jake Petroules --- src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp index a15c2ca2cc7..2a34b2f8b1e 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp @@ -44,6 +44,7 @@ #include #include #include +#include #include #include #include @@ -91,6 +92,7 @@ bool QbsProjectManagerPlugin::initialize(const QStringList &arguments, QString * const Core::Context projectContext(::QbsProjectManager::Constants::PROJECT_ID); Core::FileIconProvider::registerIconOverlayForSuffix(ProjectExplorer::Constants::FILEOVERLAY_QT, "qbs"); + Core::HelpManager::registerDocumentation({Core::ICore::documentationPath() + "/qbs.qch"}); ProjectManager::registerProjectType(QmlJSTools::Constants::QBS_MIMETYPE); KitManager::registerKitInformation(new QbsKitInformation); From 015f0c03cf544781f4ee932aac328854fe8c1bd4 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 6 Sep 2017 17:11:42 +0200 Subject: [PATCH 4/8] Qnx: Fix debugging This apparently fell through the cracks in 89f02cba2. Task-number: QTCREATORBUG-18804 Change-Id: Ib00a5a074ec1df3292267a194e8e87a92d3c6dfc Reviewed-by: Dan Cape Reviewed-by: Christian Stenger --- src/plugins/qnx/qnxdebugsupport.cpp | 16 ++++++---------- src/plugins/qnx/qnxdebugsupport.h | 1 - src/plugins/qnx/slog2inforunner.cpp | 2 ++ 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/plugins/qnx/qnxdebugsupport.cpp b/src/plugins/qnx/qnxdebugsupport.cpp index e560ed285eb..0f3d527a15d 100644 --- a/src/plugins/qnx/qnxdebugsupport.cpp +++ b/src/plugins/qnx/qnxdebugsupport.cpp @@ -79,6 +79,8 @@ private: arguments.append(Utils::QtcProcess::splitArgs(r.commandLineArguments)); r.commandLineArguments = Utils::QtcProcess::joinArgs(arguments); + setRunnable(r); + SimpleTargetRunner::start(); } @@ -102,9 +104,9 @@ QnxDebugSupport::QnxDebugSupport(RunControl *runControl) debuggeeRunner->addStartDependency(m_portsGatherer); auto slog2InfoRunner = new Slog2InfoRunner(runControl); - slog2InfoRunner->addStartDependency(debuggeeRunner); + debuggeeRunner->addStartDependency(slog2InfoRunner); - addStartDependency(slog2InfoRunner); + addStartDependency(debuggeeRunner); } void QnxDebugSupport::start() @@ -135,15 +137,9 @@ void QnxDebugSupport::start() if (qtVersion) params.solibSearchPath = QnxUtils::searchPaths(qtVersion); - reportStarted(); -} + setStartParameters(params); -void QnxDebugSupport::stop() -{ - // We have to kill the inferior process, as invoking "kill" in - // gdb doesn't work on QNX gdb. - auto stdRunnable = runnable().as(); - device()->signalOperation()->killProcess(stdRunnable.executable); + DebuggerRunTool::start(); } } // namespace Internal diff --git a/src/plugins/qnx/qnxdebugsupport.h b/src/plugins/qnx/qnxdebugsupport.h index 452dc581562..4bc75283c44 100644 --- a/src/plugins/qnx/qnxdebugsupport.h +++ b/src/plugins/qnx/qnxdebugsupport.h @@ -39,7 +39,6 @@ public: private: void start() override; - void stop() override; Debugger::GdbServerPortsGatherer *m_portsGatherer; }; diff --git a/src/plugins/qnx/slog2inforunner.cpp b/src/plugins/qnx/slog2inforunner.cpp index ebcf5107992..b5075285b4c 100644 --- a/src/plugins/qnx/slog2inforunner.cpp +++ b/src/plugins/qnx/slog2inforunner.cpp @@ -76,6 +76,7 @@ void Slog2InfoRunner::start() StandardRunnable r; r.executable = QLatin1String("slog2info"); m_testProcess->start(r); + reportStarted(); } void Slog2InfoRunner::stop() @@ -87,6 +88,7 @@ void Slog2InfoRunner::stop() m_logProcess->kill(); processLog(true); } + reportStopped(); } bool Slog2InfoRunner::commandFound() const From 88e7af8a21a55670fc7878d59a3da3b65f47cc2b Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Thu, 7 Sep 2017 10:17:19 +0200 Subject: [PATCH 5/8] UnitTests: Disable related tests if suspend-patch is missing Change-Id: Ifdccf2e5842aff13528e52caa4dfd3288214d723 Reviewed-by: Marco Bubke --- .../clangdocumentsuspenderresumer-test.cpp | 16 ++++++++-------- .../unittest/clangsuspenddocumentjob-test.cpp | 2 +- .../unit/unittest/conditionally-disabled-tests.h | 8 ++++++++ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/tests/unit/unittest/clangdocumentsuspenderresumer-test.cpp b/tests/unit/unittest/clangdocumentsuspenderresumer-test.cpp index 8c1954410fb..8f51e7b0896 100644 --- a/tests/unit/unittest/clangdocumentsuspenderresumer-test.cpp +++ b/tests/unit/unittest/clangdocumentsuspenderresumer-test.cpp @@ -183,7 +183,7 @@ TEST_F(DocumentSuspenderResumer, CategorizeWithMoreVisibleDocumentsThanHotDocume ASSERT_THAT(coldDocuments, IsEmpty()); } -TEST_F(DocumentSuspenderResumer, CreateSuspendJobForInvisible) +TEST_F(DocumentSuspenderResumer, DISABLED_WITHOUT_SUSPEND_PATCH(CreateSuspendJobForInvisible)) { Document document = documents.create({fileContainer1})[0]; document.setIsSuspended(false); @@ -199,7 +199,7 @@ TEST_F(DocumentSuspenderResumer, CreateSuspendJobForInvisible) ASSERT_THAT(jobs, ContainerEq(expectedJobs)); } -TEST_F(DocumentSuspenderResumer, DoNotCreateSuspendJobForVisible) +TEST_F(DocumentSuspenderResumer, DISABLED_WITHOUT_SUSPEND_PATCH(DoNotCreateSuspendJobForVisible)) { Document document = documents.create({fileContainer1})[0]; document.setIsSuspended(false); @@ -210,7 +210,7 @@ TEST_F(DocumentSuspenderResumer, DoNotCreateSuspendJobForVisible) ASSERT_THAT(jobs, IsEmpty()); } -TEST_F(DocumentSuspenderResumer, DoNotCreateSuspendJobForUnparsed) +TEST_F(DocumentSuspenderResumer, DISABLED_WITHOUT_SUSPEND_PATCH(DoNotCreateSuspendJobForUnparsed)) { Document document = documents.create({fileContainer1})[0]; document.setIsSuspended(false); @@ -221,7 +221,7 @@ TEST_F(DocumentSuspenderResumer, DoNotCreateSuspendJobForUnparsed) ASSERT_THAT(jobs, IsEmpty()); } -TEST_F(DocumentSuspenderResumer, CreateSuspendJobsForDocumentWithSupportiveTranslationUnit) +TEST_F(DocumentSuspenderResumer, DISABLED_WITHOUT_SUSPEND_PATCH(CreateSuspendJobsForDocumentWithSupportiveTranslationUnit)) { Document document = documents.create({fileContainer1})[0]; document.setIsSuspended(false); @@ -238,7 +238,7 @@ TEST_F(DocumentSuspenderResumer, CreateSuspendJobsForDocumentWithSupportiveTrans ASSERT_THAT(jobs, ContainerEq(expectedJobs)); } -TEST_F(DocumentSuspenderResumer, CreateResumeJob) +TEST_F(DocumentSuspenderResumer, DISABLED_WITHOUT_SUSPEND_PATCH(CreateResumeJob)) { Document document = documents.create({fileContainer1})[0]; document.setIsSuspended(true); @@ -252,7 +252,7 @@ TEST_F(DocumentSuspenderResumer, CreateResumeJob) ASSERT_THAT(jobs, ContainerEq(expectedJobs)); } -TEST_F(DocumentSuspenderResumer, DoNotCreateResumeJobForInvisible) +TEST_F(DocumentSuspenderResumer, DISABLED_WITHOUT_SUSPEND_PATCH(DoNotCreateResumeJobForInvisible)) { Document document = documents.create({fileContainer1})[0]; document.setIsSuspended(true); @@ -263,7 +263,7 @@ TEST_F(DocumentSuspenderResumer, DoNotCreateResumeJobForInvisible) ASSERT_THAT(jobs, IsEmpty()); } -TEST_F(DocumentSuspenderResumer, CreateResumeJobsForDocumentWithSupportiveTranslationUnit) +TEST_F(DocumentSuspenderResumer, DISABLED_WITHOUT_SUSPEND_PATCH(CreateResumeJobsForDocumentWithSupportiveTranslationUnit)) { Document document = documents.create({fileContainer1})[0]; document.setIsSuspended(true); @@ -279,7 +279,7 @@ TEST_F(DocumentSuspenderResumer, CreateResumeJobsForDocumentWithSupportiveTransl ASSERT_THAT(jobs, ContainerEq(expectedJobs)); } -TEST_F(DocumentSuspenderResumer, CreateSuspendAndResumeJobs) +TEST_F(DocumentSuspenderResumer, DISABLED_WITHOUT_SUSPEND_PATCH(CreateSuspendAndResumeJobs)) { Document hotDocument = documents.create({fileContainer1})[0]; hotDocument.setIsSuspended(true); diff --git a/tests/unit/unittest/clangsuspenddocumentjob-test.cpp b/tests/unit/unittest/clangsuspenddocumentjob-test.cpp index b9f92f3beb5..a6aeaf9efe3 100644 --- a/tests/unit/unittest/clangsuspenddocumentjob-test.cpp +++ b/tests/unit/unittest/clangsuspenddocumentjob-test.cpp @@ -58,7 +58,7 @@ TEST_F(SuspendDocumentJob, RunAsync) ASSERT_TRUE(waitUntilJobFinished(job)); } -TEST_F(SuspendDocumentJob, DocumentIsSuspendedAfterRun) +TEST_F(SuspendDocumentJob, DISABLED_WITHOUT_SUSPEND_PATCH(DocumentIsSuspendedAfterRun)) { document.parse(); job.setContext(jobContext); diff --git a/tests/unit/unittest/conditionally-disabled-tests.h b/tests/unit/unittest/conditionally-disabled-tests.h index 88bec6b0b33..29879bbee5c 100644 --- a/tests/unit/unittest/conditionally-disabled-tests.h +++ b/tests/unit/unittest/conditionally-disabled-tests.h @@ -26,6 +26,8 @@ #include #include +#include + #ifdef Q_OS_WIN # define DISABLED_ON_WINDOWS(x) DISABLED_##x #else @@ -37,3 +39,9 @@ #else # define DISABLED_ON_CLANG3(x) x #endif + +#ifdef IS_SUSPEND_SUPPORTED +# define DISABLED_WITHOUT_SUSPEND_PATCH(x) x +#else +# define DISABLED_WITHOUT_SUSPEND_PATCH(x) DISABLED_##x +#endif From 5b48bd0420271ed3919b208b56e2734716abe088 Mon Sep 17 00:00:00 2001 From: Ivan Donchevskii Date: Thu, 17 Aug 2017 09:40:02 +0200 Subject: [PATCH 6/8] Clang: fix clang static analyzer on Windows 1) mingw kit + qmake: do not add target includes not to override clang paths (for intrinsics and more) 2) msvc kit + qbs: remove target option from clang-cl arguments Change-Id: Ifb494ee61ae2d39e957cff31dbd647c66910be17 Reviewed-by: Nikolai Kosjar --- .../clangstaticanalyzerruncontrol.cpp | 30 +++++++++++++++---- .../clangstaticanalyzerunittests.cpp | 10 +++++++ .../unit-tests/mingw-includes/main.cpp | 7 +++++ .../mingw-includes/mingw-includes.pro | 3 ++ .../mingw-includes/mingw-includes.qbs | 5 ++++ 5 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/main.cpp create mode 100644 src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/mingw-includes.pro create mode 100644 src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/mingw-includes.qbs diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp index 8fb8775194d..ad6363bc0e6 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp @@ -161,7 +161,8 @@ static void prependTargetTripleIfNotIncludedAndNotEmpty(QStringList *arguments, } // Removes (1) inputFile (2) -o . -QStringList inputAndOutputArgumentsRemoved(const QString &inputFile, const QStringList &arguments) +QStringList inputAndOutputArgumentsRemoved(const QString &inputFile, const QStringList &arguments, + bool isMsvc) { QStringList newArguments; @@ -173,6 +174,9 @@ QStringList inputAndOutputArgumentsRemoved(const QString &inputFile, const QStri } else if (argument == QLatin1String("-o")) { skip = true; continue; + } else if (isMsvc && argument == QLatin1String("-target")) { + skip = true; + continue; } else if (QDir::fromNativeSeparators(argument) == inputFile) { continue; // TODO: Let it in? } @@ -233,11 +237,23 @@ public: ClangStaticAnalyzerOptionsBuilder(const CppTools::ProjectPart &projectPart) : CompilerOptionsBuilder(projectPart) - , m_isMsvcToolchain(m_projectPart.toolchainType == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) + , m_isMsvcToolchain(m_projectPart.toolchainType + == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) + , m_isMinGWToolchain(m_projectPart.toolchainType + == ProjectExplorer::Constants::MINGW_TOOLCHAIN_TYPEID) { } public: + bool excludeHeaderPath(const QString &headerPath) const override + { + if (CompilerOptionsBuilder::excludeHeaderPath(headerPath)) + return true; + if (m_isMinGWToolchain && headerPath.contains(m_projectPart.toolChainTargetTriple)) + return true; + return false; + } + void undefineClangVersionMacrosForMsvc() { if (m_projectPart.toolchainType == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) { @@ -260,7 +276,7 @@ private: // For MSVC toolchains we use clang-cl.exe, so there is nothing to do here since // 1) clang-cl.exe does not understand the "-triple" option // 2) clang-cl.exe already hardcodes the right triple value (even if built with mingw) - if (m_projectPart.toolchainType != ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) + if (!m_isMsvcToolchain) CompilerOptionsBuilder::addTargetTriple(); } @@ -317,6 +333,7 @@ private: private: bool m_isMsvcToolchain; + bool m_isMinGWToolchain; }; static QStringList createMsCompatibilityVersionOption(const ProjectPart &projectPart) @@ -364,9 +381,12 @@ static QStringList tweakedArguments(const ProjectPart &projectPart, const QStringList &arguments, const QString &targetTriple) { - QStringList newArguments = inputAndOutputArgumentsRemoved(filePath, arguments); + const bool isMsvc = projectPart.toolchainType + == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID; + QStringList newArguments = inputAndOutputArgumentsRemoved(filePath, arguments, isMsvc); prependWordWidthArgumentIfNotIncluded(&newArguments, projectPart.toolChainWordWidth); - prependTargetTripleIfNotIncludedAndNotEmpty(&newArguments, targetTriple); + if (!isMsvc) + prependTargetTripleIfNotIncludedAndNotEmpty(&newArguments, targetTriple); newArguments.append(createHeaderPathsOptionsForClangOnMac(projectPart)); newArguments.append(createMsCompatibilityVersionOption(projectPart)); newArguments.append(createOptionsToUndefineClangVersionMacrosForMsvc(projectPart)); diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp index c69855ecd28..2ab8c18d9ba 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp @@ -75,6 +75,13 @@ void ClangStaticAnalyzerUnitTests::testProject() { QFETCH(QString, projectFilePath); QFETCH(int, expectedDiagCount); + if (projectFilePath.contains("mingw")) { + const ToolChain * const toolchain + = ToolChainKitInformation::toolChain(KitManager::kits().first(), + Constants::CXX_LANGUAGE_ID); + if (toolchain->typeId() != ProjectExplorer::Constants::MINGW_TOOLCHAIN_TYPEID) + QSKIP("This test is mingw specific, does not run for other toolchais"); + } CppTools::Tests::ProjectOpenerAndCloser projectManager; const CppTools::ProjectInfo projectInfo = projectManager.open(projectFilePath, true); @@ -107,6 +114,9 @@ void ClangStaticAnalyzerUnitTests::testProject_data() addTestRow("qt-essential-includes/qt-essential-includes.qbs", 0); addTestRow("qt-essential-includes/qt-essential-includes.pro", 0); + + addTestRow("mingw-includes/mingw-includes.qbs", 0); + addTestRow("mingw-includes/mingw-includes.pro", 0); } void ClangStaticAnalyzerUnitTests::addTestRow(const QByteArray &relativeFilePath, diff --git a/src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/main.cpp b/src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/main.cpp new file mode 100644 index 00000000000..fc104e426d5 --- /dev/null +++ b/src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/main.cpp @@ -0,0 +1,7 @@ +#include +#include "intrin.h" + +int main(int argc, char *argv[]) +{ + return 0; +} diff --git a/src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/mingw-includes.pro b/src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/mingw-includes.pro new file mode 100644 index 00000000000..c5faffece4c --- /dev/null +++ b/src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/mingw-includes.pro @@ -0,0 +1,3 @@ +CONFIG -= QT + +SOURCES += main.cpp diff --git a/src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/mingw-includes.qbs b/src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/mingw-includes.qbs new file mode 100644 index 00000000000..f6ae698a0cb --- /dev/null +++ b/src/plugins/clangstaticanalyzer/unit-tests/mingw-includes/mingw-includes.qbs @@ -0,0 +1,5 @@ +import qbs + +CppApplication { + files: ["main.cpp"] +} From 85e656b04183d0cba01fa5ddeedde7ffdbfb7dbe Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 7 Sep 2017 12:45:01 +0200 Subject: [PATCH 7/8] Squish: Workaround Squish issues when using nativeType When using nativeType() Squish sends single key press events for any char to type. nativeType() does not wait until these events have been processed which leads to complete useless time measurings inside tst_tasks_handling as timestamps are taken too early if nativeType had to be used - which happens when a native FileDialog is used. Change-Id: I446de898fd99b2e169ca39bef1adb4306d6ee530 Reviewed-by: Robert Loehning --- tests/system/shared/utils.py | 12 ++++++++---- .../system/suite_general/tst_tasks_handling/test.py | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/system/shared/utils.py b/tests/system/shared/utils.py index db4c4e1cd56..b331ddb6671 100644 --- a/tests/system/shared/utils.py +++ b/tests/system/shared/utils.py @@ -243,7 +243,7 @@ def getOutputFromCmdline(cmdline, environment=None, acceptedError=0): test.warning("Command '%s' returned %d" % (e.cmd, e.returncode)) return e.output -def selectFromFileDialog(fileName, waitForFile=False): +def selectFromFileDialog(fileName, waitForFile=False, ignoreFinalSnooze=False): if platform.system() == "Darwin": snooze(1) nativeType("") @@ -253,7 +253,8 @@ def selectFromFileDialog(fileName, waitForFile=False): nativeType("") snooze(3) nativeType("") - snooze(1) + if not ignoreFinalSnooze: + snooze(1) else: fName = os.path.basename(os.path.abspath(fileName)) pName = os.path.dirname(os.path.abspath(fileName)) + os.sep @@ -271,9 +272,12 @@ def selectFromFileDialog(fileName, waitForFile=False): nativeType("") nativeType("") nativeType(pName + fName) - snooze(1) + seconds = len(pName + fName) / 20 + test.log("Using snooze(%d) [problems with event processing of nativeType()]" % seconds) + snooze(seconds) nativeType("") - snooze(3) + if not ignoreFinalSnooze: + snooze(3) if waitForFile: fileCombo = waitForObject(":Qt Creator_FilenameQComboBox") if not waitFor("str(fileCombo.currentText) in fileName", 5000): diff --git a/tests/system/suite_general/tst_tasks_handling/test.py b/tests/system/suite_general/tst_tasks_handling/test.py index 69e7a6719cb..6870cceeadc 100644 --- a/tests/system/suite_general/tst_tasks_handling/test.py +++ b/tests/system/suite_general/tst_tasks_handling/test.py @@ -99,7 +99,7 @@ def main(): model = waitForObject(":Qt Creator.Issues_QListView").model() test.verify(model.rowCount() == 0, 'Got an empty issue list to start from.') invokeMenuItem("File", "Open File or Project...") - selectFromFileDialog(tasksFile) + selectFromFileDialog(tasksFile, False, True) starttime = datetime.utcnow() waitFor("model.rowCount() == expectedNo", 10000) endtime = datetime.utcnow() From 315cede70f47c3be2f517e32daed34cc963a06f5 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 7 Sep 2017 15:21:27 +0200 Subject: [PATCH 8/8] Doc: Add links to Qt Creator Application Manager Plugin Manual Change-Id: I1333652a41ff831ae5a7b84dc56041afc074cd60 Reviewed-by: hjk --- doc/src/overview/creator-commercial-overview.qdoc | 2 ++ doc/src/overview/creator-mobile-targets.qdoc | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/doc/src/overview/creator-commercial-overview.qdoc b/doc/src/overview/creator-commercial-overview.qdoc index 8e2d9243d33..cf195a8b38a 100644 --- a/doc/src/overview/creator-commercial-overview.qdoc +++ b/doc/src/overview/creator-commercial-overview.qdoc @@ -47,5 +47,7 @@ integration \li \l{http://doc.qt.io/QtForDeviceCreation/index.html}{Developing for embedded devices} + \li \l{http://doc.qt.io/qtcreator/creator-overview-qtasam.html} + {Qt Application Manager} integration \endlist */ diff --git a/doc/src/overview/creator-mobile-targets.qdoc b/doc/src/overview/creator-mobile-targets.qdoc index 2b8d03b44e5..e690ac14d19 100644 --- a/doc/src/overview/creator-mobile-targets.qdoc +++ b/doc/src/overview/creator-mobile-targets.qdoc @@ -85,4 +85,16 @@ \endlist + \section1 Related Topics + + \list + + \li \l{http://doc.qt.io/qtcreator/creator-overview-qtasam.html} + {Qt Application Manager} + + You can use the experimental Qt Application Manager plugin + (commercial only) to deploy, run, and debug applications on the + local Linux PC, remote generic SSH Linux targets, or + \l{Embedded Devices}{embedded devices}. + \endlist */