aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-09-25 20:56:51 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2015-09-25 20:56:51 +0200
commitf9ef039ad955db67dc3ab6e9056afc4a325aa9a3 (patch)
tree4928ff85fb630639e306ea4eb7137a2064a80c8b /tools
parent0238c739f81911f0963cf2c40b27dcfc8e3d38b7 (diff)
parent52fb4685e95e5b44e54d2d0f8ea27dea866c75e9 (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts: src/qml/debugger/qqmldebug.cpp Change-Id: I93de5a81b18cdece475870cf7cfba1b9baef2304
Diffstat (limited to 'tools')
-rw-r--r--tools/qml/main.cpp3
-rw-r--r--tools/qmljs/qmljs.cpp4
-rw-r--r--tools/qmlplugindump/main.cpp2
-rw-r--r--tools/qmlscene/main.cpp53
4 files changed, 43 insertions, 19 deletions
diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp
index 90d2a940a3..0f16c62320 100644
--- a/tools/qml/main.cpp
+++ b/tools/qml/main.cpp
@@ -332,6 +332,7 @@ void printUsage()
printf("\t-desktop.......................Force use of desktop GL (AA_UseDesktopOpenGL)\n");
printf("\t-gles..........................Force use of GLES (AA_UseOpenGLES)\n");
printf("\t-software......................Force use of software rendering (AA_UseOpenGLES)\n");
+ printf("\t-no-scaling....................Disable High DPI scaling (AA_NoHighDpiScaling)\n");
printf("\tDebugging options:\n");
printf("\t-verbose ..................... Print information about what qml is doing, like specific file urls being loaded.\n");
printf("\t-translation [file] .......... Load the given file as the translations file.\n");
@@ -503,6 +504,8 @@ int main(int argc, char *argv[])
QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);
} else if (arg == QLatin1String("-desktop")) {
QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL);
+ } else if (arg == QLatin1String("-no-scaling")) {
+ QCoreApplication::setAttribute(Qt::AA_NoHighDpiScaling);
} else {
files << arg;
}
diff --git a/tools/qmljs/qmljs.cpp b/tools/qmljs/qmljs.cpp
index 53e520cd1f..132817ff8c 100644
--- a/tools/qmljs/qmljs.cpp
+++ b/tools/qmljs/qmljs.cpp
@@ -188,9 +188,9 @@ int main(int argc, char *argv[])
QV4::Scope scope(&vm);
QV4::ScopedContext ctx(scope, vm.rootContext());
- QV4::ScopedObject print(scope, vm.memoryManager->alloc<builtins::Print>(ctx));
+ QV4::ScopedObject print(scope, vm.memoryManager->allocObject<builtins::Print>(vm.rootContext()));
vm.globalObject->put(QV4::ScopedString(scope, vm.newIdentifier(QStringLiteral("print"))).getPointer(), print);
- QV4::ScopedObject gc(scope, vm.memoryManager->alloc<builtins::GC>(ctx));
+ QV4::ScopedObject gc(scope, vm.memoryManager->allocObject<builtins::GC>(ctx));
vm.globalObject->put(QV4::ScopedString(scope, vm.newIdentifier(QStringLiteral("gc"))).getPointer(), gc);
foreach (const QString &fn, args) {
diff --git a/tools/qmlplugindump/main.cpp b/tools/qmlplugindump/main.cpp
index 911328c12a..0238a4aaae 100644
--- a/tools/qmlplugindump/main.cpp
+++ b/tools/qmlplugindump/main.cpp
@@ -1157,7 +1157,7 @@ int main(int argc, char *argv[])
"//\n"
"// This file was auto-generated by:\n"
"// '%1 %2'\n"
- "\n").arg(QFileInfo(args.at(0)).fileName()).arg(QStringList(args.mid(1)).join(QLatin1String(" "))));
+ "\n").arg(QFileInfo(args.at(0)).baseName(), args.mid(1).join(QLatin1Char(' '))));
qml.writeStartObject("Module");
QStringList quotedDependencies;
foreach (const QString &dep, dependencies)
diff --git a/tools/qmlscene/main.cpp b/tools/qmlscene/main.cpp
index fe01b92244..14845ed433 100644
--- a/tools/qmlscene/main.cpp
+++ b/tools/qmlscene/main.cpp
@@ -156,7 +156,7 @@ struct Options
applicationAttributes.append(Qt::AA_ShareOpenGLContexts);
}
- QUrl file;
+ QUrl url;
bool originalQml;
bool originalQmlRaster;
bool maximized;
@@ -252,12 +252,10 @@ static bool checkVersion(const QUrl &url)
if (!qgetenv("QMLSCENE_IMPORT_NAME").isEmpty())
fprintf(stderr, "QMLSCENE_IMPORT_NAME is no longer supported.\n");
- QString fileName = url.toLocalFile();
- if (fileName.isEmpty()) {
- fprintf(stderr, "qmlscene: filename required.\n");
- return false;
- }
+ if (!url.isLocalFile())
+ return true;
+ const QString fileName = url.toLocalFile();
QFile f(fileName);
if (!f.open(QFile::ReadOnly | QFile::Text)) {
fprintf(stderr, "qmlscene: failed to check version of file '%s', could not open...\n",
@@ -300,7 +298,7 @@ static void displayFileDialog(Options *options)
QString fileName = QFileDialog::getOpenFileName(0, "Open QML file", QString(), "QML Files (*.qml)");
if (!fileName.isEmpty()) {
QFileInfo fi(fileName);
- options->file = QUrl::fromLocalFile(fi.canonicalFilePath());
+ options->url = QUrl::fromLocalFile(fi.canonicalFilePath());
}
#else
Q_UNUSED(options);
@@ -358,6 +356,7 @@ static void usage()
puts(" --desktop..........................Force use of desktop GL (AA_UseDesktopOpenGL)");
puts(" --gles.............................Force use of GLES (AA_UseOpenGLES)");
puts(" --software.........................Force use of software rendering (AA_UseOpenGLES)");
+ puts(" --no-scaling.......................Disable High DPI scaling (AA_NoHighDpiScaling)");
puts(" --verbose..........................Print version and graphical diagnostics for the run-time");
puts(" -I <path> ........................ Add <path> to the list of import paths");
puts(" -P <path> ........................ Add <path> to the list of plugin paths");
@@ -416,6 +415,24 @@ static void setWindowTitle(bool verbose, const QObject *topLevel, QWindow *windo
window->setTitle(newTitle);
}
+static QUrl parseUrlArgument(const char *arg)
+{
+ const QUrl url = QUrl::fromUserInput(QFile::decodeName(arg), QDir::currentPath(), QUrl::AssumeLocalFile);
+ if (!url.isValid()) {
+ fprintf(stderr, "Invalid URL: \"%s\"\n", arg);
+ return QUrl();
+ }
+ if (url.isLocalFile()) {
+ const QFileInfo fi(url.toLocalFile());
+ if (!fi.exists()) {
+ fprintf(stderr, "\"%s\" does not exist.\n",
+ qPrintable(QDir::toNativeSeparators(fi.absoluteFilePath())));
+ return QUrl();
+ }
+ }
+ return url;
+}
+
int main(int argc, char ** argv)
{
Options options;
@@ -423,8 +440,8 @@ int main(int argc, char ** argv)
QStringList imports;
QStringList pluginPaths;
for (int i = 1; i < argc; ++i) {
- if (*argv[i] != '-' && QFileInfo(QFile::decodeName(argv[i])).exists()) {
- options.file = QUrl::fromLocalFile(argv[i]);
+ if (*argv[i] != '-') {
+ options.url = parseUrlArgument(argv[i]);
} else {
const QString lowerArgument = QString::fromLatin1(argv[i]).toLower();
if (lowerArgument == QLatin1String("--maximized"))
@@ -455,6 +472,8 @@ int main(int argc, char ** argv)
options.applicationAttributes.append(Qt::AA_UseSoftwareOpenGL);
else if (lowerArgument == QLatin1String("--desktop"))
options.applicationAttributes.append(Qt::AA_UseDesktopOpenGL);
+ else if (lowerArgument == QLatin1String("--no-scaling"))
+ options.applicationAttributes.append(Qt::AA_NoHighDpiScaling);
else if (lowerArgument == QLatin1String("--verbose"))
options.verbose = true;
else if (lowerArgument == QLatin1String("-i") && i + 1 < argc)
@@ -502,7 +521,7 @@ int main(int argc, char ** argv)
QUnifiedTimer::instance()->setSlowModeEnabled(options.slowAnimations);
- if (options.file.isEmpty())
+ if (options.url.isEmpty())
#if defined(QMLSCENE_BUNDLE)
displayOptionsDialog(&options);
#else
@@ -514,8 +533,8 @@ int main(int argc, char ** argv)
if (options.verbose)
puts(QLibraryInfo::build());
- if (!options.file.isEmpty()) {
- if (!options.versionDetection || checkVersion(options.file)) {
+ if (!options.url.isEmpty()) {
+ if (!options.versionDetection || checkVersion(options.url)) {
#ifndef QT_NO_TRANSLATION
QTranslator translator;
#endif
@@ -528,15 +547,17 @@ int main(int argc, char ** argv)
engine.addImportPath(imports.at(i));
for (int i = 0; i < pluginPaths.size(); ++i)
engine.addPluginPath(pluginPaths.at(i));
- if (options.file.isLocalFile()) {
- QFileInfo fi(options.file.toLocalFile());
+ if (options.url.isLocalFile()) {
+ QFileInfo fi(options.url.toLocalFile());
#ifndef QT_NO_TRANSLATION
loadTranslationFile(translator, fi.path());
#endif
loadDummyDataFiles(engine, fi.path());
}
QObject::connect(&engine, SIGNAL(quit()), QCoreApplication::instance(), SLOT(quit()));
- component->loadUrl(options.file);
+ component->loadUrl(options.url);
+ while (component->isLoading())
+ QCoreApplication::processEvents();
if ( !component->isReady() ) {
fprintf(stderr, "%s\n", qPrintable(component->errorString()));
return -1;
@@ -560,7 +581,7 @@ int main(int argc, char ** argv)
qxView->setResizeMode(QQuickView::SizeViewToRootObject);
else
qxView->setResizeMode(QQuickView::SizeRootObjectToView);
- qxView->setContent(options.file, component, contentItem);
+ qxView->setContent(options.url, component, contentItem);
}
}