summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2017-11-21 13:31:37 +0100
committerLaszlo Agocs <laszlo.agocs@qt.io>2017-11-21 15:10:38 +0000
commit23bea41d7a98448c3aec38bae7fe84bcc065ec0c (patch)
tree970d373c2783ebcc2fd52f190b079bcf5d7670e4 /tools
parent0abf68125b41e48fa21e8c2f52c72c0eac998584 (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.cpp28
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();