summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-11-15 09:11:29 +0100
committerLiang Qi <liang.qi@qt.io>2017-11-15 09:30:17 +0100
commit6491ca02253f3245333611cabf248ef01bd31883 (patch)
tree2881d4737872461763ef2a1876044726460d78b6
parentbdf6e44049acbede3224b83e17718b34c800af5d (diff)
parent4c2cae795117897847c0ba0e9b9ff20fa6e4eda9 (diff)
downloadqttools-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.cpp18
-rw-r--r--src/assistant/help/qhelpdbreader_p.h1
-rw-r--r--src/designer/src/components/widgetbox/widgetbox_dnditem.cpp2
-rw-r--r--src/designer/src/components/widgetbox/widgetboxtreewidget.cpp2
-rw-r--r--src/designer/src/lib/uilib/abstractformbuilder.cpp2
-rw-r--r--src/designer/src/uitools/quiloader.cpp2
-rw-r--r--src/macdeployqt/shared/shared.cpp22
-rw-r--r--src/pixeltool/main.cpp2
-rw-r--r--src/pixeltool/qpixeltool.cpp2
-rw-r--r--src/qtattributionsscanner/main.cpp2
-rw-r--r--src/qtpaths/qtpaths.cpp2
-rw-r--r--src/windeployqt/main.cpp4
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());
}