diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2017-11-21 13:31:37 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2017-11-21 15:10:38 +0000 |
commit | 23bea41d7a98448c3aec38bae7fe84bcc065ec0c (patch) | |
tree | 970d373c2783ebcc2fd52f190b079bcf5d7670e4 /tools | |
parent | 0abf68125b41e48fa21e8c2f52c72c0eac998584 (diff) |
Change default viewer behavior for Android and iOS
Avoid widgets, ask for fullscreen (just in case), and try loading "default.uip"
from whatever the system's DocumentsLocation is.
Task-number: QT3DS-506
Change-Id: Ibfbfb77b469282763237e5b7f8637c5eb552b7f6
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/q3dsviewer/main.cpp | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/tools/q3dsviewer/main.cpp b/tools/q3dsviewer/main.cpp index 104312c..f9b39b7 100644 --- a/tools/q3dsviewer/main.cpp +++ b/tools/q3dsviewer/main.cpp @@ -30,6 +30,7 @@ #include <QApplication> #include <QCommandLineParser> #include <QFileDialog> +#include <QStandardPaths> #include <Qt3DStudioRuntime2/q3dsutils.h> #include "q3dsmainwindow.h" #include "q3dswindow.h" @@ -55,9 +56,16 @@ int main(int argc, char *argv[]) initFlags |= Q3DStudioWindow::Force4xMSAA; Q3DStudioWindow::initStaticPostApp(initFlags); +#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) + const bool noWidgets = cmdLineParser.isSet(noMainWindowOption); + const bool fullscreen = cmdLineParser.isSet(fullScreenOption); +#else + const bool noWidgets = true; + const bool fullscreen = true; +#endif + QStringList fn = cmdLineParser.positionalArguments(); - const bool noWindow = cmdLineParser.isSet(noMainWindowOption); - if (noWindow) { + if (noWidgets) { Q3DSUtils::setDialogsEnabled(false); } else if (fn.isEmpty()) { QString fileName = QFileDialog::getOpenFileName(nullptr, QObject::tr("Open"), QString(), @@ -66,6 +74,16 @@ int main(int argc, char *argv[]) fn.append(fileName); } + // Try a default file on mobile, + // e.g. /storage/emulated/0/Documents/default.uip on Android. +#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS) + if (fn.isEmpty()) { + QStringList docPath = QStandardPaths::standardLocations(QStandardPaths::DocumentsLocation); + if (!docPath.isEmpty()) + fn = QStringList { docPath.first() + QLatin1String("/default.uip") }; + } +#endif + if (fn.isEmpty()) { Q3DSUtils::showMessage(QObject::tr("No file specified.")); return 0; @@ -77,14 +95,14 @@ int main(int argc, char *argv[]) return 0; QScopedPointer<Q3DStudioMainWindow> mw; - if (noWindow) { - if (cmdLineParser.isSet(fullScreenOption)) + if (noWidgets) { + if (fullscreen) view->showFullScreen(); else view->show(); } else { mw.reset(new Q3DStudioMainWindow(view.take())); - if (cmdLineParser.isSet(fullScreenOption)) + if (fullscreen) mw->showFullScreen(); else mw->show(); |