diff options
author | Liang Qi <liang.qi@qt.io> | 2017-11-15 09:11:29 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-11-15 09:30:17 +0100 |
commit | 6491ca02253f3245333611cabf248ef01bd31883 (patch) | |
tree | 2881d4737872461763ef2a1876044726460d78b6 | |
parent | bdf6e44049acbede3224b83e17718b34c800af5d (diff) | |
parent | 4c2cae795117897847c0ba0e9b9ff20fa6e4eda9 (diff) | |
download | qttools-6491ca02253f3245333611cabf248ef01bd31883.tar.gz |
Merge remote-tracking branch 'origin/5.9' into 5.10
Conflicts:
src/qtattributionsscanner/main.cpp
Change-Id: Idb919f217f1dea42728fd9318fd9f48d9c3d3f29
-rw-r--r-- | src/assistant/help/qhelpdbreader.cpp | 18 | ||||
-rw-r--r-- | src/assistant/help/qhelpdbreader_p.h | 1 | ||||
-rw-r--r-- | src/designer/src/components/widgetbox/widgetbox_dnditem.cpp | 2 | ||||
-rw-r--r-- | src/designer/src/components/widgetbox/widgetboxtreewidget.cpp | 2 | ||||
-rw-r--r-- | src/designer/src/lib/uilib/abstractformbuilder.cpp | 2 | ||||
-rw-r--r-- | src/designer/src/uitools/quiloader.cpp | 2 | ||||
-rw-r--r-- | src/macdeployqt/shared/shared.cpp | 22 | ||||
-rw-r--r-- | src/pixeltool/main.cpp | 2 | ||||
-rw-r--r-- | src/pixeltool/qpixeltool.cpp | 2 | ||||
-rw-r--r-- | src/qtattributionsscanner/main.cpp | 2 | ||||
-rw-r--r-- | src/qtpaths/qtpaths.cpp | 2 | ||||
-rw-r--r-- | src/windeployqt/main.cpp | 4 |
12 files changed, 41 insertions, 20 deletions
diff --git a/src/assistant/help/qhelpdbreader.cpp b/src/assistant/help/qhelpdbreader.cpp index 3b364dfb1..6574ac90e 100644 --- a/src/assistant/help/qhelpdbreader.cpp +++ b/src/assistant/help/qhelpdbreader.cpp @@ -79,6 +79,19 @@ bool QHelpDBReader::init() if (!QFile::exists(m_dbName)) return false; + if (!initDB()) { + QSqlDatabase::removeDatabase(m_uniqueId); + return false; + } + + m_initDone = true; + m_query = new QSqlQuery(QSqlDatabase::database(m_uniqueId)); + + return true; +} + +bool QHelpDBReader::initDB() +{ QSqlDatabase db = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), m_uniqueId); db.setConnectOptions(QLatin1String("QSQLITE_OPEN_READONLY")); db.setDatabaseName(m_dbName); @@ -87,13 +100,8 @@ bool QHelpDBReader::init() %2 - The unique id for the connection %3 - The actual error string */ m_error = tr("Cannot open database '%1' '%2': %3").arg(m_dbName, m_uniqueId, db.lastError().text()); - QSqlDatabase::removeDatabase(m_uniqueId); return false; } - - m_initDone = true; - m_query = new QSqlQuery(db); - return true; } diff --git a/src/assistant/help/qhelpdbreader_p.h b/src/assistant/help/qhelpdbreader_p.h index 48005d35e..aca4c8afa 100644 --- a/src/assistant/help/qhelpdbreader_p.h +++ b/src/assistant/help/qhelpdbreader_p.h @@ -108,6 +108,7 @@ private: const QString &relFileName, const QString &anchor) const; QString mergeList(const QStringList &list) const; QString quote(const QString &string) const; + bool initDB(); bool m_initDone = false; QString m_dbName; diff --git a/src/designer/src/components/widgetbox/widgetbox_dnditem.cpp b/src/designer/src/components/widgetbox/widgetbox_dnditem.cpp index 6e704b7c1..9811ddf12 100644 --- a/src/designer/src/components/widgetbox/widgetbox_dnditem.cpp +++ b/src/designer/src/components/widgetbox/widgetbox_dnditem.cpp @@ -175,7 +175,7 @@ static QWidget *decorationFromDomWidget(DomUI *dom_ui, QDesignerFormEditorInterf fakeTopLevel->setParent(0, Qt::ToolTip); // Container // Actual widget const DomWidget *domW = dom_ui->elementWidget()->elementWidget().front(); - QWidget *w = fakeTopLevel->findChildren<QWidget*>().front(); + QWidget *w = fakeTopLevel->findChildren<QWidget*>().constFirst(); Q_ASSERT(w); // hack begin; // We set _q_dockDrag dynamic property which will be detected in drag enter event of form window. diff --git a/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp b/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp index 85f4b5f43..ce0905026 100644 --- a/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp +++ b/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp @@ -923,7 +923,7 @@ void WidgetBoxTreeWidget::dropWidgets(const QList<QDesignerDnDItemInterface*> &i DomWidget *fakeTopLevel = dom_ui->takeElementWidget(); DomWidget *firstWidget = 0; if (fakeTopLevel && !fakeTopLevel->elementWidget().isEmpty()) { - firstWidget = fakeTopLevel->elementWidget().first(); + firstWidget = fakeTopLevel->elementWidget().constFirst(); dom_ui->setElementWidget(firstWidget); } else { dom_ui->setElementWidget(fakeTopLevel); diff --git a/src/designer/src/lib/uilib/abstractformbuilder.cpp b/src/designer/src/lib/uilib/abstractformbuilder.cpp index c48942197..bc9f2b82e 100644 --- a/src/designer/src/lib/uilib/abstractformbuilder.cpp +++ b/src/designer/src/lib/uilib/abstractformbuilder.cpp @@ -352,7 +352,7 @@ QWidget *QAbstractFormBuilder::create(DomWidget *ui_widget, QWidget *parentWidge if (QWidget *child = create(ui_child, w)) { children += child; } else { - const QString className = ui_child->elementClass().empty() ? QString() : ui_child->elementClass().front(); + const QString className = ui_child->elementClass().value(0); uiLibWarning(QCoreApplication::translate("QAbstractFormBuilder", "The creation of a widget of the class '%1' failed.").arg(className)); } } diff --git a/src/designer/src/uitools/quiloader.cpp b/src/designer/src/uitools/quiloader.cpp index 74a03e3a9..b4ead5bc5 100644 --- a/src/designer/src/uitools/quiloader.cpp +++ b/src/designer/src/uitools/quiloader.cpp @@ -132,7 +132,7 @@ QVariant TranslatingTextBuilder::toNativeValue(const QVariant &value) const if (value.canConvert<QUiTranslatableStringValue>()) { QUiTranslatableStringValue tsv = qvariant_cast<QUiTranslatableStringValue>(value); if (!m_trEnabled) - return QString::fromUtf8(tsv.value().data()); + return QString::fromUtf8(tsv.value().constData()); return QVariant::fromValue( QCoreApplication::translate(m_className, tsv.value(), tsv.comment())); } diff --git a/src/macdeployqt/shared/shared.cpp b/src/macdeployqt/shared/shared.cpp index 7f566f1ee..7dafe63aa 100644 --- a/src/macdeployqt/shared/shared.cpp +++ b/src/macdeployqt/shared/shared.cpp @@ -1170,6 +1170,15 @@ void deployQmlImport(const QString &appBundlePath, const QSet<QString> &rpaths, recursiveCopyAndDeploy(appBundlePath, rpaths, importSourcePath, importDestinationPath); } +static bool importLessThan(const QVariant &v1, const QVariant &v2) +{ + QVariantMap import1 = v1.toMap(); + QVariantMap import2 = v2.toMap(); + QString path1 = import1["path"].toString(); + QString path2 = import2["path"].toString(); + return path1 < path2; +} + // Scan qml files in qmldirs for import statements, deploy used imports from Qml2ImportsPath to Contents/Resources/qml. bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInfo, QStringList &qmlDirs) { @@ -1231,12 +1240,15 @@ bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInf bool qtQuickContolsInUse = false; // condition for QtQuick.PrivateWidgets below - // deploy each import - foreach (const QJsonValue &importValue, doc.array()) { - if (!importValue.isObject()) - continue; + // sort imports to deploy a module before its sub-modules (otherwise + // deployQmlImports can consider the module deployed if it has already + // deployed one of its sub-module) + QVariantList array = doc.array().toVariantList(); + qSort(array.begin(), array.end(), importLessThan); - QJsonObject import = importValue.toObject(); + // deploy each import + foreach (const QVariant &importValue, array) { + QVariantMap import = importValue.toMap(); QString name = import["name"].toString(); QString path = import["path"].toString(); QString type = import["type"].toString(); diff --git a/src/pixeltool/main.cpp b/src/pixeltool/main.cpp index 36f411749..3e17d61b5 100644 --- a/src/pixeltool/main.cpp +++ b/src/pixeltool/main.cpp @@ -68,7 +68,7 @@ int main(int argc, char **argv) QPixelTool pixelTool; if (!parser.positionalArguments().isEmpty()) { - const QString previewImageFileName = parser.positionalArguments().first(); + const QString previewImageFileName = parser.positionalArguments().constFirst(); if (QFileInfo(previewImageFileName).exists()) { QImage previewImage(previewImageFileName); if (!previewImage.size().isEmpty()) diff --git a/src/pixeltool/qpixeltool.cpp b/src/pixeltool/qpixeltool.cpp index 6e4c9f9ff..1d94ddb8a 100644 --- a/src/pixeltool/qpixeltool.cpp +++ b/src/pixeltool/qpixeltool.cpp @@ -562,7 +562,7 @@ void QPixelTool::saveToFile() } while (fileDialog.exec() == QDialog::Accepted - && !m_buffer.save(fileDialog.selectedFiles().first())) { + && !m_buffer.save(fileDialog.selectedFiles().constFirst())) { QMessageBox::warning(this, QLatin1String("Unable to write image"), QLatin1String("Unable to write ") + QDir::toNativeSeparators(fileDialog.selectedFiles().first())); diff --git a/src/qtattributionsscanner/main.cpp b/src/qtattributionsscanner/main.cpp index 700bf8814..ddb942a9d 100644 --- a/src/qtattributionsscanner/main.cpp +++ b/src/qtattributionsscanner/main.cpp @@ -96,7 +96,7 @@ int main(int argc, char *argv[]) if (parser.positionalArguments().size() != 1) parser.showHelp(2); - const QString path = parser.positionalArguments().last(); + const QString path = parser.positionalArguments().constLast(); QVector<Package> packages; const QFileInfo pathInfo(path); diff --git a/src/qtpaths/qtpaths.cpp b/src/qtpaths/qtpaths.cpp index 37bdcf465..648e0cabb 100644 --- a/src/qtpaths/qtpaths.cpp +++ b/src/qtpaths/qtpaths.cpp @@ -140,7 +140,7 @@ static QString searchStringOrError(QCommandLineParser *parser) int positionalArgumentCount = parser->positionalArguments().size(); if (positionalArgumentCount != 1) error(QCoreApplication::translate("qtpaths", "Exactly one argument needed as searchitem")); - return parser->positionalArguments().first(); + return parser->positionalArguments().constFirst(); } int main(int argc, char **argv) diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp index 3ca83ca44..f574bd25e 100644 --- a/src/windeployqt/main.cpp +++ b/src/windeployqt/main.cpp @@ -982,13 +982,13 @@ static bool deployTranslations(const QString &sourcePath, quint64 usedQtModules, arguments.append(QStringLiteral("-o")); const QString targetFilePath = absoluteTarget + QLatin1Char('/') + targetFile; if (options.json) - options.json->addFile(sourcePath + QLatin1Char('/') + targetFile, targetFilePath); + options.json->addFile(sourcePath + QLatin1Char('/') + targetFile, absoluteTarget); arguments.append(QDir::toNativeSeparators(targetFilePath)); const QFileInfoList &langQmFiles = sourceDir.entryInfoList(translationNameFilters(usedQtModules, prefix)); for (const QFileInfo &langQmFileFi : langQmFiles) { if (options.json) { options.json->addFile(langQmFileFi.absoluteFilePath(), - absoluteTarget + QLatin1Char('/') + langQmFileFi.fileName()); + absoluteTarget); } arguments.append(langQmFileFi.fileName()); } |