From ab73d888c4f41a0d0993abca18680cdcbd79b444 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 8 Nov 2018 11:27:45 +0100 Subject: Bump version Change-Id: I48f516bf78a03f592327ee42a70b33ace520b9d8 --- .qmake.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.qmake.conf b/.qmake.conf index 76c202ab9..d920a9c66 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -1,3 +1,3 @@ load(qt_build_config) -MODULE_VERSION = 5.11.2 +MODULE_VERSION = 5.11.3 -- cgit v1.2.3 From 1d735db9b47aa367ad610408a3e310000fc2766f Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 12 Nov 2018 10:32:39 -0800 Subject: Update filesave.png icons Matches qtbase b5d249f9538bf3dc44f11879c2244deb5a37bf97. Fixes: QTBUG-71012 Change-Id: I36203b7dac414e3eb9effffd15667415e7d133cd Reviewed-by: Lars Knoll --- .../src/components/formeditor/images/win/filesave.png | Bin 1205 -> 2699 bytes src/linguist/linguist/images/mac/filesave.png | Bin 1206 -> 2699 bytes src/linguist/linguist/images/win/filesave.png | Bin 1205 -> 2699 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/designer/src/components/formeditor/images/win/filesave.png b/src/designer/src/components/formeditor/images/win/filesave.png index 8feec99be..e65a29d5f 100644 Binary files a/src/designer/src/components/formeditor/images/win/filesave.png and b/src/designer/src/components/formeditor/images/win/filesave.png differ diff --git a/src/linguist/linguist/images/mac/filesave.png b/src/linguist/linguist/images/mac/filesave.png index b41ecf531..e65a29d5f 100644 Binary files a/src/linguist/linguist/images/mac/filesave.png and b/src/linguist/linguist/images/mac/filesave.png differ diff --git a/src/linguist/linguist/images/win/filesave.png b/src/linguist/linguist/images/win/filesave.png index 8feec99be..e65a29d5f 100644 Binary files a/src/linguist/linguist/images/win/filesave.png and b/src/linguist/linguist/images/win/filesave.png differ -- cgit v1.2.3 From ddc4fba789c21bd0ebca180fa9d7cde399a49e37 Mon Sep 17 00:00:00 2001 From: Antti Kokko Date: Fri, 16 Nov 2018 09:22:24 +0200 Subject: Add changes file for Qt 5.11.3 + a2a0ff8676bce46ed1ae7c387cbcd2f5377a0e01 macdeployqt: Deploy plugins when -no-framework is used + 523b72743a40df3445e0ab7af421b60b5f76bc55 Doc: Fix language issues in Qt Help overview docs + d07e6b891e69c9ce4bed9e91c917d81d0d8a6ae1 macOS: Don't overwrite the dylibs with the DWARF copy + 10263f42de0d2d1fb731deb4213b76fa6c0acd0f Assistant: Fix a crash when removing the docs + ab73d888c4f41a0d0993abca18680cdcbd79b444 Bump version Change-Id: Ia42723d72cf643207902998fa3fbd2f354b58493 Reviewed-by: Jarek Kobus Reviewed-by: Andy Shaw --- dist/changes-5.11.3 | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 dist/changes-5.11.3 diff --git a/dist/changes-5.11.3 b/dist/changes-5.11.3 new file mode 100644 index 000000000..4e0a0b187 --- /dev/null +++ b/dist/changes-5.11.3 @@ -0,0 +1,32 @@ +Qt 5.11.3 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.11.0 through 5.11.2. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.11 series is binary compatible with the 5.10.x series. +Applications compiled for 5.10 will continue to run with 5.11. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* macdeployqt * +**************************************************************************** + + - [QTBUG-68823] Now deploys plugins when Qt is configured with + -no-framework + +**************************************************************************** +* Assistant * +**************************************************************************** + + - [QTBUG-71399] Fix a crash when removing multiple documentation files + inside preferences dialog -- cgit v1.2.3 From 762bc2c6e67b4adf596f4c48a92f26b2f1e2fa5d Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 28 Nov 2018 08:38:59 +0100 Subject: distancefieldgenerator: Add help action Add a help action launching the documentation page. Change-Id: I8c78ca53389faaac9e87ec116969d0002d9f1205 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/distancefieldgenerator/mainwindow.cpp | 9 +++++++++ src/distancefieldgenerator/mainwindow.ui | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/src/distancefieldgenerator/mainwindow.cpp b/src/distancefieldgenerator/mainwindow.cpp index 15a5f0c34..eef116ded 100644 --- a/src/distancefieldgenerator/mainwindow.cpp +++ b/src/distancefieldgenerator/mainwindow.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -49,6 +50,11 @@ QT_BEGIN_NAMESPACE +static void openHelp() +{ + QDesktopServices::openUrl(QUrl(QLatin1String("http://doc.qt.io/qt-5/qtdistancefieldgenerator-index.html"))); +} + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) @@ -60,6 +66,8 @@ MainWindow::MainWindow(QWidget *parent) ui->setupUi(this); ui->lvGlyphs->setModel(m_model); + ui->actionHelp->setShortcut(QKeySequence::HelpContents); + m_statusBarLabel = new QLabel(this); m_statusBarLabel->setText(tr("Ready")); ui->statusbar->addPermanentWidget(m_statusBarLabel); @@ -117,6 +125,7 @@ void MainWindow::setupConnections() connect(ui->tbSelectAll, &QToolButton::clicked, this, &MainWindow::selectAll); connect(ui->actionSelect_all, &QAction::triggered, this, &MainWindow::selectAll); connect(ui->actionSelect_string, &QAction::triggered, this, &MainWindow::selectString); + connect(ui->actionHelp, &QAction::triggered, this, openHelp); connect(ui->actionAbout_App, &QAction::triggered, this, &MainWindow::about); connect(ui->actionAbout_Qt, &QAction::triggered, this, [this]() { QMessageBox::aboutQt(this); diff --git a/src/distancefieldgenerator/mainwindow.ui b/src/distancefieldgenerator/mainwindow.ui index 09a3c4112..e7fe0d788 100644 --- a/src/distancefieldgenerator/mainwindow.ui +++ b/src/distancefieldgenerator/mainwindow.ui @@ -145,6 +145,7 @@ &Help + @@ -205,6 +206,11 @@ About Qt + + + Help + + -- cgit v1.2.3 From f640dd08ca46c8657aab38d0c3d5dc350b0035cd Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 14 Nov 2018 11:26:27 +0100 Subject: windeployqt: Fix some Clang warnings - Use range-based for - Remove else after return - Use member initialization - Dubious check of bool * - Prefer static QFileInfo::exists() - Use uninitialized struct QJsonParseError Change-Id: If2705d6829ba3186cafb068a2c083943d33d1c66 Reviewed-by: Andre de la Rocha Reviewed-by: Oliver Wolff --- src/shared/winutils/qmlutils.cpp | 4 +-- src/shared/winutils/qmlutils.h | 3 +- src/shared/winutils/utils.cpp | 6 ++-- src/windeployqt/main.cpp | 75 ++++++++++++++++++---------------------- 4 files changed, 39 insertions(+), 49 deletions(-) diff --git a/src/shared/winutils/qmlutils.cpp b/src/shared/winutils/qmlutils.cpp index 6fe77e64f..e66d30554 100644 --- a/src/shared/winutils/qmlutils.cpp +++ b/src/shared/winutils/qmlutils.cpp @@ -51,7 +51,7 @@ QString QmlImportScanResult::Module::installPath(const QString &root) const const int lastSlashPos = relativePath.lastIndexOf(QLatin1Char('/')); if (lastSlashPos != -1) { result += QLatin1Char('/'); - result += relativePath.left(lastSlashPos); + result += relativePath.leftRef(lastSlashPos); } return result; } @@ -114,7 +114,7 @@ QmlImportScanResult runQmlImportScanner(const QString &directory, const QString + QStringLiteral(": ") + QString::fromLocal8Bit(stdErr); return result; } - QJsonParseError jsonParseError; + QJsonParseError jsonParseError{}; const QJsonDocument data = QJsonDocument::fromJson(stdOut, &jsonParseError); if (data.isNull() ) { *errorMessage = binary + QStringLiteral(" returned invalid JSON output: ") diff --git a/src/shared/winutils/qmlutils.h b/src/shared/winutils/qmlutils.h index 895c7f1de..267f6d92a 100644 --- a/src/shared/winutils/qmlutils.h +++ b/src/shared/winutils/qmlutils.h @@ -47,10 +47,9 @@ struct QmlImportScanResult { QString relativePath; }; - QmlImportScanResult() : ok(false) {} void append(const QmlImportScanResult &other); - bool ok; + bool ok = false; QList modules; QStringList plugins; }; diff --git a/src/shared/winutils/utils.cpp b/src/shared/winutils/utils.cpp index 195d8efd5..00a205438 100644 --- a/src/shared/winutils/utils.cpp +++ b/src/shared/winutils/utils.cpp @@ -493,8 +493,6 @@ QString findInPath(const QString &file) const char *qmakeInfixKey = "QT_INFIX"; -QMap queryQMakeAll(QString *errorMessage); - QMap queryQMakeAll(QString *errorMessage) { QByteArray stdOut; @@ -819,12 +817,12 @@ inline void determineDebugAndDependentLibs(const ImageNtHeader *nth, const void { const bool hasDebugEntry = nth->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].Size; QStringList dependentLibraries; - if (dependentLibrariesIn || (isDebugIn && hasDebugEntry && !isMinGW)) + if (dependentLibrariesIn || (isDebugIn != nullptr && hasDebugEntry && !isMinGW)) dependentLibraries = readImportSections(nth, fileMemory, errorMessage); if (dependentLibrariesIn) *dependentLibrariesIn = dependentLibraries; - if (isDebugIn) { + if (isDebugIn != nullptr) { if (isMinGW) { // Use logic that's used e.g. in objdump / pfd library *isDebugIn = !(nth->FileHeader.Characteristics & IMAGE_FILE_DEBUG_STRIPPED); diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp index e9823bb16..de5238fdc 100644 --- a/src/windeployqt/main.cpp +++ b/src/windeployqt/main.cpp @@ -181,12 +181,11 @@ static inline QString webProcessBinary(const char *binaryName, Platform p) static QByteArray formatQtModules(quint64 mask, bool option = false) { QByteArray result; - const size_t qtModulesCount = sizeof(qtModuleEntries)/sizeof(QtModuleEntry); - for (size_t i = 0; i < qtModulesCount; ++i) { - if (mask & qtModuleEntries[i].module) { + for (const auto &qtModule : qtModuleEntries) { + if (mask & qtModule.module) { if (!result.isEmpty()) result.append(' '); - result.append(option ? qtModuleEntries[i].option : qtModuleEntries[i].libraryName); + result.append(option ? qtModule.option : qtModule.libraryName); } } return result; @@ -830,10 +829,9 @@ static const PluginModuleMapping pluginModuleMappings[] = static inline quint64 qtModuleForPlugin(const QString &subDirName) { - const PluginModuleMapping *end = pluginModuleMappings - + sizeof(pluginModuleMappings) / sizeof(pluginModuleMappings[0]); - const PluginModuleMapping *result = - std::find_if(pluginModuleMappings, end, + const auto end = std::end(pluginModuleMappings); + const auto result = + std::find_if(std::begin(pluginModuleMappings), end, [&subDirName] (const PluginModuleMapping &m) { return subDirName == QLatin1String(m.directoryName); }); return result != end ? result->module : 0; // "designer" } @@ -852,12 +850,11 @@ static quint64 qtModule(QString module, const QString &infix) if (endPos > 0) module.truncate(endPos); // That should leave us with 'Qt5Core'. - const size_t qtModulesCount = sizeof(qtModuleEntries)/sizeof(QtModuleEntry); - for (size_t i = 0; i < qtModulesCount; ++i) { - const QLatin1String libraryName(qtModuleEntries[i].libraryName); + for (const auto &qtModule : qtModuleEntries) { + const QLatin1String libraryName(qtModule.libraryName); if (module == libraryName || (module.size() == libraryName.size() + 1 && module.startsWith(libraryName))) { - return qtModuleEntries[i].module; + return qtModule.module; } } return 0; @@ -946,10 +943,9 @@ QStringList findQtPlugins(quint64 *usedQtModules, quint64 disabledQtModules, static QStringList translationNameFilters(quint64 modules, const QString &prefix) { QStringList result; - const size_t qtModulesCount = sizeof(qtModuleEntries)/sizeof(QtModuleEntry); - for (size_t i = 0; i < qtModulesCount; ++i) { - if ((qtModuleEntries[i].module & modules) && qtModuleEntries[i].translation) { - const QString name = QLatin1String(qtModuleEntries[i].translation) + + for (const auto &qtModule : qtModuleEntries) { + if ((qtModule.module & modules) && qtModule.translation) { + const QString name = QLatin1String(qtModule.translation) + QLatin1Char('_') + prefix + QStringLiteral(".qm"); if (!result.contains(name)) result.push_back(name); @@ -1096,9 +1092,8 @@ static QStringList compilerRunTimeLibs(Platform platform, bool isDebug, unsigned const QString binPath = QFileInfo(gcc).absolutePath(); QStringList filters; const QString suffix = QLatin1Char('*') + sharedLibrarySuffix(platform); - const size_t count = sizeof(minGwRuntimes) / sizeof(minGwRuntimes[0]); - for (size_t i = 0; i < count; ++i) - filters.append(QLatin1String(minGwRuntimes[i]) + suffix); + for (auto minGwRuntime : minGwRuntimes) + filters.append(QLatin1String(minGwRuntime) + suffix); const QFileInfoList &dlls = QDir(binPath).entryInfoList(filters, QDir::Files); for (const QFileInfo &dllFi : dlls) result.append(dllFi.absoluteFilePath()); @@ -1341,12 +1336,11 @@ static DeployResult deploy(const Options &options, // Apply options flags and re-add library names. QString qtGuiLibrary; - const size_t qtModulesCount = sizeof(qtModuleEntries)/sizeof(QtModuleEntry); - for (size_t i = 0; i < qtModulesCount; ++i) { - if (result.deployedQtLibraries & qtModuleEntries[i].module) { - const QString library = libraryPath(libraryLocation, qtModuleEntries[i].libraryName, qtLibInfix, options.platform, isDebug); + for (const auto &qtModule : qtModuleEntries) { + if (result.deployedQtLibraries & qtModule.module) { + const QString library = libraryPath(libraryLocation, qtModule.libraryName, qtLibInfix, options.platform, isDebug); deployedQtLibraries.append(library); - if (qtModuleEntries[i].module == QtGuiModule) + if (qtModule.module == QtGuiModule) qtGuiLibrary = library; } } @@ -1383,7 +1377,7 @@ static DeployResult deploy(const Options &options, if (options.angleDetection != Options::AngleDetectionForceOff && (dependsOnAngle || dependsOnCombinedAngle || !dependsOnOpenGl || options.angleDetection == Options::AngleDetectionForceOn)) { const QString combinedAngleFullPath = qtBinDir + slash + libCombinedQtAngleName; - if (QFileInfo(combinedAngleFullPath).exists()) { + if (QFileInfo::exists(combinedAngleFullPath)) { deployedQtLibraries.append(combinedAngleFullPath); } else { const QString libGlesFullPath = qtBinDir + slash + libGlesName; @@ -1577,8 +1571,8 @@ static bool deployWebEngineCore(const QMap &qmakeVariables, const QString resourcesTargetDir(options.directory + resourcesSubDir); if (!createDirectory(resourcesTargetDir, errorMessage)) return false; - for (size_t i = 0; i < sizeof(installDataFiles)/sizeof(installDataFiles[0]); ++i) { - if (!updateFile(resourcesSourceDir + QLatin1String(installDataFiles[i]), + for (auto installDataFile : installDataFiles) { + if (!updateFile(resourcesSourceDir + QLatin1String(installDataFile), resourcesTargetDir, options.updateFileFlags, options.json, errorMessage)) { return false; } @@ -1595,21 +1589,20 @@ static bool deployWebEngineCore(const QMap &qmakeVariables, return createDirectory(options.translationsDirectory, errorMessage) && updateFile(translations.absoluteFilePath(), options.translationsDirectory, options.updateFileFlags, options.json, errorMessage); - } else { - // Translations have been turned off, but QtWebEngine needs at least one. - const QFileInfo enUSpak(translations.filePath() + QStringLiteral("/en-US.pak")); - if (!enUSpak.exists()) { - std::wcerr << "Warning: Cannot find " - << QDir::toNativeSeparators(enUSpak.absoluteFilePath()) << ".\n"; - return true; - } - const QString webEngineTranslationsDir = options.translationsDirectory + QLatin1Char('/') - + translations.fileName(); - if (!createDirectory(webEngineTranslationsDir, errorMessage)) - return false; - return updateFile(enUSpak.absoluteFilePath(), webEngineTranslationsDir, - options.updateFileFlags, options.json, errorMessage); } + // Translations have been turned off, but QtWebEngine needs at least one. + const QFileInfo enUSpak(translations.filePath() + QStringLiteral("/en-US.pak")); + if (!enUSpak.exists()) { + std::wcerr << "Warning: Cannot find " + << QDir::toNativeSeparators(enUSpak.absoluteFilePath()) << ".\n"; + return true; + } + const QString webEngineTranslationsDir = options.translationsDirectory + QLatin1Char('/') + + translations.fileName(); + if (!createDirectory(webEngineTranslationsDir, errorMessage)) + return false; + return updateFile(enUSpak.absoluteFilePath(), webEngineTranslationsDir, + options.updateFileFlags, options.json, errorMessage); } int main(int argc, char **argv) -- cgit v1.2.3 From e4ab3c1687e7e319813a916adb784b307e5f2113 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 10 Dec 2018 13:43:12 +0100 Subject: windeployqt: Simplify enabled/disabled modules option parsing Use a simple vector of and use the mask bit from the qtModules array. Change-Id: I233b5226cce8dfe91018830328c268cf1d16104e Reviewed-by: Andre de la Rocha Reviewed-by: Oliver Wolff --- src/windeployqt/main.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp index de5238fdc..e1e68c0ab 100644 --- a/src/windeployqt/main.cpp +++ b/src/windeployqt/main.cpp @@ -311,8 +311,7 @@ static inline int parseArguments(const QStringList &arguments, QCommandLineParse Options *options, QString *errorMessage) { typedef QSharedPointer CommandLineOptionPtr; - typedef QPair OptionMaskPair; - typedef QVector OptionMaskVector; + using OptionPtrVector = QVector; parser->setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions); parser->setApplicationDescription(QStringLiteral("Qt Deploy Tool ") + QLatin1String(QT_VERSION_STR) @@ -444,21 +443,22 @@ static inline int parseArguments(const QStringList &arguments, QCommandLineParse parser->addPositionalArgument(QStringLiteral("[files]"), QStringLiteral("Binaries or directory containing the binary.")); - OptionMaskVector enabledModules; - OptionMaskVector disabledModules; - const size_t qtModulesCount = sizeof(qtModuleEntries)/sizeof(QtModuleEntry); - for (size_t i = 0; i < qtModulesCount; ++i) { + OptionPtrVector enabledModuleOptions; + OptionPtrVector disabledModuleOptions; + const int qtModulesCount = int(sizeof(qtModuleEntries) / sizeof(QtModuleEntry)); + enabledModuleOptions.reserve(qtModulesCount); + disabledModuleOptions.reserve(qtModulesCount); + for (int i = 0; i < qtModulesCount; ++i) { const QString option = QLatin1String(qtModuleEntries[i].option); const QString name = QLatin1String(qtModuleEntries[i].libraryName); const QString enabledDescription = QStringLiteral("Add ") + name + QStringLiteral(" module."); CommandLineOptionPtr enabledOption(new QCommandLineOption(option, enabledDescription)); parser->addOption(*enabledOption.data()); - enabledModules.push_back(OptionMaskPair(enabledOption, qtModuleEntries[i].module)); - + enabledModuleOptions.append(enabledOption); const QString disabledDescription = QStringLiteral("Remove ") + name + QStringLiteral(" module."); CommandLineOptionPtr disabledOption(new QCommandLineOption(QStringLiteral("no-") + option, disabledDescription)); - disabledModules.push_back(OptionMaskPair(disabledOption, qtModuleEntries[i].module)); + disabledModuleOptions.append(disabledOption); parser->addOption(*disabledOption.data()); } @@ -534,11 +534,11 @@ static inline int parseArguments(const QStringList &arguments, QCommandLineParse options->patchQt = !parser->isSet(noPatchQtOption); - for (size_t i = 0; i < qtModulesCount; ++i) { - if (parser->isSet(*enabledModules.at(int(i)).first.data())) - options->additionalLibraries |= enabledModules.at(int(i)).second; - if (parser->isSet(*disabledModules.at(int(i)).first.data())) - options->disabledLibraries |= disabledModules.at(int(i)).second; + for (int i = 0; i < qtModulesCount; ++i) { + if (parser->isSet(*enabledModuleOptions.at(i))) + options->additionalLibraries |= qtModuleEntries[i].module; + if (parser->isSet(*disabledModuleOptions.at(i))) + options->disabledLibraries |= qtModuleEntries[i].module; } // Add some dependencies -- cgit v1.2.3 From 4e823c69ec36b648d6126ae5ec031f58d1372ab4 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 18 Dec 2018 09:02:20 +0100 Subject: Assistant: Hide Windows Context Help Button Do not show the "?" window button "in Preferences", "Print Preview", "Add Bookmarp dialogs". Assistant does not set any "what's this" information anywhere, so the mode is useless. Change-Id: I857159eb313315d197fb2e3bff058fca5d805d64 Reviewed-by: Jarek Kobus --- src/assistant/assistant/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/assistant/assistant/main.cpp b/src/assistant/assistant/main.cpp index 04f0fc968..ac20872bd 100644 --- a/src/assistant/assistant/main.cpp +++ b/src/assistant/assistant/main.cpp @@ -268,6 +268,7 @@ void setupTranslations() int main(int argc, char *argv[]) { QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QCoreApplication::setAttribute(Qt::AA_DisableWindowContextHelpButton); TRACE_OBJ QScopedPointer a(createApplication(argc, argv)); #if QT_CONFIG(library) -- cgit v1.2.3 From 3af74eba706d7ad76ff86d81db2c61addf8745a6 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 10 Dec 2018 11:39:37 +0100 Subject: windeployqt: Replace typedef by using Fix the respective Clang-tidy warning: utils.h:85: warning: use 'using' instead of 'typedef' [modernize-use-using] as displayed in the Qt Creator issues pane. Change-Id: Ide04ff3bc426ec55b9cdcc1b511119089d6750d8 Reviewed-by: Joerg Bornemann --- src/shared/winutils/utils.h | 4 ++-- src/windeployqt/main.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/shared/winutils/utils.h b/src/shared/winutils/utils.h index 4cede6b55..5552a3665 100644 --- a/src/shared/winutils/utils.h +++ b/src/shared/winutils/utils.h @@ -82,8 +82,8 @@ inline std::wostream &operator<<(std::wostream &str, const QString &s) // Container class for JSON output class JsonOutput { - typedef QPair SourceTargetMapping; - typedef QList SourceTargetMappings; + using SourceTargetMapping = QPair; + using SourceTargetMappings = QList; public: void addFile(const QString &source, const QString &target) diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp index e1e68c0ab..6b6e67d6c 100644 --- a/src/windeployqt/main.cpp +++ b/src/windeployqt/main.cpp @@ -310,7 +310,7 @@ enum CommandLineParseFlag { static inline int parseArguments(const QStringList &arguments, QCommandLineParser *parser, Options *options, QString *errorMessage) { - typedef QSharedPointer CommandLineOptionPtr; + using CommandLineOptionPtr = QSharedPointer; using OptionPtrVector = QVector; parser->setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions); -- cgit v1.2.3 From 8a51638c8a69f63263d3badef93696320e416e59 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Thu, 22 Nov 2018 12:15:35 +1000 Subject: wasm: fix finding clang and friends Change-Id: Ie05b9896dc7cdb678e6cdc3e2b3caf6e6c2bb5f0 Reviewed-by: Eskil Abrahamsen Blomfeldt --- qttools.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qttools.pro b/qttools.pro index b87dcea59..e7ae1f2b2 100644 --- a/qttools.pro +++ b/qttools.pro @@ -1,2 +1,2 @@ -load(qt_find_clang) +!wasm:load(qt_find_clang) load(qt_parts) -- cgit v1.2.3 From e9f39c40d98213877317a42d30b78cba102e2017 Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Fri, 14 Dec 2018 10:58:18 +0100 Subject: winrtrunner: Do not accept fully wildcarded logging rules from environment When an auto test fails in CI, it does another run using QT_LOGGING_RULES=*=true. For winrt builds this rule would enable extended logging for winrtrunner and the output would be flooded with winrtrunner specific information. Instead of confusing the users, we disregard the logging rules in winrtrunner if they do not specifically enable the application's logging so that CI runs will only show information that might be interesting to the user. Change-Id: If51a666315a2e33b83d6a7613a65ab4a152eddc4 Reviewed-by: Andre de la Rocha Reviewed-by: Joerg Bornemann --- src/winrtrunner/main.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/winrtrunner/main.cpp b/src/winrtrunner/main.cpp index 72dd763c8..bf4e8fabf 100644 --- a/src/winrtrunner/main.cpp +++ b/src/winrtrunner/main.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -52,6 +53,23 @@ QT_USE_NAMESPACE int main(int argc, char *argv[]) { + // If logging rules are set via env variable, we pass these to the application we are running. + // winrtrunner behaves different from other applications in the regard that its logging rules + // have to be enabled explicitly. Setting "*=true" will not enable extended logging. Reason is + // CI setting "*=true" if an auto test fails and additional winrtrunner output might just + // confuse users. + const QByteArray loggingRules = qgetenv("QT_LOGGING_RULES"); + const QList rules = loggingRules.split(';'); + QRegExp runnerExp(QLatin1String("^qt\\.winrtrunner.*\\s*=\\s*true\\s*$")); + bool runnerRuleFound = false; + for (const QByteArray &rule : rules) { + if (runnerExp.indexIn(QLatin1String(rule)) != -1) { + runnerRuleFound = true; + break; + } + } + if (!runnerRuleFound) + qunsetenv("QT_LOGGING_RULES"); QCoreApplication a(argc, argv); QCommandLineParser parser; parser.setApplicationDescription(QLatin1String("winrtrunner installs, runs, and collects test " @@ -282,8 +300,6 @@ int main(int argc, char *argv[]) return ignoreErrors ? 0 : 3; } - // If logging rules are set via env variable, we pass these to the application we are running - const QByteArray loggingRules = qgetenv("QT_LOGGING_RULES"); if (!loggingRules.isNull() && !runner.setLoggingRules(loggingRules)) { qCDebug(lcWinRtRunner) << "Could not set logging rules, exiting with code 3."; return ignoreErrors ? 0 : 3; -- cgit v1.2.3 From 32897fd0b98966d22ecbd475a0e6a77ca8b1108d Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Wed, 19 Dec 2018 17:51:19 +0100 Subject: QList/Tree/TableWidgetEdit: use correct default flags The AbstractItemEditor was using the default flags from an QListWidgetItem as the default values for QList/Tree/tableWidgetItem which is wrong because the different classes have different default flags. This lead to an inconsistent behavior during runtime. E.g. a QTableWidgetItem was not editable but during runtime it was editable. This fix adds a new function to retrieve the correct default flags dependending on the selected widget type. Change-Id: I96e1dec5a459a4d746b469bd773ddb7526e65357 Reviewed-by: Friedemann Kleint --- src/designer/src/components/taskmenu/itemlisteditor.cpp | 12 +++++++++--- src/designer/src/components/taskmenu/itemlisteditor.h | 2 ++ src/designer/src/components/taskmenu/tablewidgeteditor.cpp | 6 ++++++ src/designer/src/components/taskmenu/tablewidgeteditor.h | 1 + src/designer/src/components/taskmenu/treewidgeteditor.cpp | 6 ++++++ src/designer/src/components/taskmenu/treewidgeteditor.h | 1 + 6 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/designer/src/components/taskmenu/itemlisteditor.cpp b/src/designer/src/components/taskmenu/itemlisteditor.cpp index 94ec1e1cc..db31745a3 100644 --- a/src/designer/src/components/taskmenu/itemlisteditor.cpp +++ b/src/designer/src/components/taskmenu/itemlisteditor.cpp @@ -168,7 +168,7 @@ void AbstractItemEditor::propertyChanged(QtProperty *property) // Subproperty return; - if ((role == ItemFlagsShadowRole && prop->value().toInt() == int(QListWidgetItem().flags())) + if ((role == ItemFlagsShadowRole && prop->value().toInt() == defaultItemFlags()) || (role == Qt::DecorationPropertyRole && !qvariant_cast(prop->value()).mask()) || (role == Qt::FontRole && !qvariant_cast(prop->value()).resolve())) { prop->setModified(false); @@ -214,7 +214,7 @@ void AbstractItemEditor::resetProperty(QtProperty *property) QtVariantProperty *prop = m_propertyManager->variantProperty(property); int role = m_propertyToRole.value(prop); if (role == ItemFlagsShadowRole) - prop->setValue(QVariant::fromValue(int(QListWidgetItem().flags()))); + prop->setValue(QVariant::fromValue(defaultItemFlags())); else prop->setValue(QVariant(prop->valueType(), nullptr)); prop->setModified(false); @@ -246,7 +246,7 @@ void AbstractItemEditor::updateBrowser() QVariant val = getItemData(role); if (!val.isValid()) { if (role == ItemFlagsShadowRole) - val = QVariant::fromValue(int(QListWidgetItem().flags())); + val = QVariant::fromValue(defaultItemFlags()); else val = QVariant(int(prop->value().userType()), nullptr); prop->setModified(false); @@ -430,6 +430,12 @@ QVariant ItemListEditor::getItemData(int role) const return ui.listWidget->currentItem()->data(role); } +int ItemListEditor::defaultItemFlags() const +{ + static const int flags = QListWidgetItem().flags(); + return flags; +} + void ItemListEditor::cacheReloaded() { reloadIconResources(iconCache(), ui.listWidget); diff --git a/src/designer/src/components/taskmenu/itemlisteditor.h b/src/designer/src/components/taskmenu/itemlisteditor.h index ea0634eed..e9b292446 100644 --- a/src/designer/src/components/taskmenu/itemlisteditor.h +++ b/src/designer/src/components/taskmenu/itemlisteditor.h @@ -85,6 +85,7 @@ private slots: void resetProperty(QtProperty *property); protected: + virtual int defaultItemFlags() const = 0; void setupProperties(PropertyDefinition *propDefs); void setupObject(QWidget *object); void setupEditor(QWidget *object, PropertyDefinition *propDefs); @@ -138,6 +139,7 @@ private slots: protected: void setItemData(int role, const QVariant &v) override; QVariant getItemData(int role) const override; + int defaultItemFlags() const override; private: void setPropertyBrowserVisible(bool v); diff --git a/src/designer/src/components/taskmenu/tablewidgeteditor.cpp b/src/designer/src/components/taskmenu/tablewidgeteditor.cpp index 4a28a2f44..b1a7adf12 100644 --- a/src/designer/src/components/taskmenu/tablewidgeteditor.cpp +++ b/src/designer/src/components/taskmenu/tablewidgeteditor.cpp @@ -184,6 +184,12 @@ QVariant TableWidgetEditor::getItemData(int role) const return item->data(role); } +int TableWidgetEditor::defaultItemFlags() const +{ + static const int flags = QTableWidgetItem().flags(); + return flags; +} + void TableWidgetEditor::on_tableWidget_currentCellChanged(int currentRow, int currentCol, int, int /* XXX remove me */) { m_rowEditor->setCurrentIndex(currentRow); diff --git a/src/designer/src/components/taskmenu/tablewidgeteditor.h b/src/designer/src/components/taskmenu/tablewidgeteditor.h index 26ad05b49..72dbb58da 100644 --- a/src/designer/src/components/taskmenu/tablewidgeteditor.h +++ b/src/designer/src/components/taskmenu/tablewidgeteditor.h @@ -82,6 +82,7 @@ private slots: protected: void setItemData(int role, const QVariant &v) override; QVariant getItemData(int role) const override; + int defaultItemFlags() const override; private: void setPropertyBrowserVisible(bool v); diff --git a/src/designer/src/components/taskmenu/treewidgeteditor.cpp b/src/designer/src/components/taskmenu/treewidgeteditor.cpp index 2ec0109a4..20c7bd0a5 100644 --- a/src/designer/src/components/taskmenu/treewidgeteditor.cpp +++ b/src/designer/src/components/taskmenu/treewidgeteditor.cpp @@ -196,6 +196,12 @@ QVariant TreeWidgetEditor::getItemData(int role) const return ui.treeWidget->currentItem()->data(col, role); } +int TreeWidgetEditor::defaultItemFlags() const +{ + static const int flags = QTreeWidgetItem().flags(); + return flags; +} + void TreeWidgetEditor::on_newItemButton_clicked() { QTreeWidgetItem *curItem = ui.treeWidget->currentItem(); diff --git a/src/designer/src/components/taskmenu/treewidgeteditor.h b/src/designer/src/components/taskmenu/treewidgeteditor.h index a0187678d..9b1a607e4 100644 --- a/src/designer/src/components/taskmenu/treewidgeteditor.h +++ b/src/designer/src/components/taskmenu/treewidgeteditor.h @@ -80,6 +80,7 @@ private slots: protected: void setItemData(int role, const QVariant &v) override; QVariant getItemData(int role) const override; + int defaultItemFlags() const override; private: void setPropertyBrowserVisible(bool v); -- cgit v1.2.3 From 7249ba659951a9ca388a7a09cd301a2d9f79eaa4 Mon Sep 17 00:00:00 2001 From: Kari Oikarinen Date: Mon, 7 Jan 2019 09:30:05 +0200 Subject: Bump version Change-Id: I8ddc0630f221e7f2bcf1b7df52f2aeac3ab76e3a --- .qmake.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.qmake.conf b/.qmake.conf index 097d8b948..1c14aab6d 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -1,3 +1,3 @@ load(qt_build_config) -MODULE_VERSION = 5.12.0 +MODULE_VERSION = 5.12.1 -- cgit v1.2.3