summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Nichols <andy.nichols@qt.io>2018-05-25 15:04:26 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2018-05-25 14:52:56 +0000
commit58f54fde6c6a99225cefca183ec29f612177cb31 (patch)
tree47c4a4e49653e6a2569e9a0ce25848c7d865dd20
parentbd9e2b07b297c46b1e0b4a70a25b140ad9efadfd (diff)
Viewer: Add command line options to set mattecolor and scalemode
Matte is enabled by default (as it was in previous viewer) Change-Id: Id4c090f7974548b3f0a07df5ad776540b7c18c42 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
-rw-r--r--tools/q3dsviewer/main.cpp31
-rw-r--r--tools/q3dsviewer/q3dsmainwindow.cpp8
2 files changed, 35 insertions, 4 deletions
diff --git a/tools/q3dsviewer/main.cpp b/tools/q3dsviewer/main.cpp
index a0ed3b0..ff6afd7 100644
--- a/tools/q3dsviewer/main.cpp
+++ b/tools/q3dsviewer/main.cpp
@@ -44,6 +44,8 @@
#include <private/q3dswindow_p.h>
#include <private/q3dsutils_p.h>
+#include <Qt3DStudioRuntime2/Q3DSViewerSettings>
+
QT_BEGIN_NAMESPACE
class Q3DStudioMainWindow;
QT_END_NAMESPACE
@@ -80,6 +82,18 @@ int main(int argc, char *argv[])
cmdLineParser.addOption(remoteOption);
QCommandLineOption autoExitOption({ "x", "exitafter" }, QObject::tr("Exit after <n> seconds."), QObject::tr("n"), QLatin1String("5"));
cmdLineParser.addOption(autoExitOption);
+ QCommandLineOption scaleModeOption("scalemode",
+ QObject::tr("Specifies scaling mode.\n"
+ "The default value is 'center'."),
+ QObject::tr("center|fit|fill"),
+ QStringLiteral("center"));
+ cmdLineParser.addOption(scaleModeOption);
+ QCommandLineOption matteColorOption("mattecolor",
+ QObject::tr("Specifies custom matte color\n"
+ "using #000000 syntax.\n"
+ "For example, white matte: #ffffff"),
+ QObject::tr("color"), QStringLiteral("#333333"));
+ cmdLineParser.addOption(matteColorOption);
cmdLineParser.process(app);
#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
@@ -125,6 +139,23 @@ int main(int argc, char *argv[])
return 0;
}
+ // Setup Viewer Settings
+ Q3DSViewerSettings *viewerSettings = new Q3DSViewerSettings;
+ engine->setViewerSettings(viewerSettings);
+ viewerSettings->setMatteEnabled(true);
+ if (cmdLineParser.isSet(scaleModeOption)) {
+ const QString scaleMode = cmdLineParser.value(scaleModeOption);
+ if (scaleMode == QStringLiteral("center"))
+ viewerSettings->setScaleMode(Q3DSViewerSettings::ScaleModeCenter);
+ else if (scaleMode == QStringLiteral("fit"))
+ viewerSettings->setScaleMode(Q3DSViewerSettings::ScaleModeFit);
+ else
+ viewerSettings->setScaleMode(Q3DSViewerSettings::ScaleModeFill);
+ }
+ if (cmdLineParser.isSet(matteColorOption)) {
+ viewerSettings->setMatteColor(cmdLineParser.value(matteColorOption));
+ }
+
#ifdef Q3DSVIEWER_WIDGETS
Q3DStudioMainWindow *mw = nullptr;
#endif
diff --git a/tools/q3dsviewer/q3dsmainwindow.cpp b/tools/q3dsviewer/q3dsmainwindow.cpp
index e91f59d..992c98b 100644
--- a/tools/q3dsviewer/q3dsmainwindow.cpp
+++ b/tools/q3dsviewer/q3dsmainwindow.cpp
@@ -109,7 +109,7 @@ Q3DStudioMainWindow::Q3DStudioMainWindow(Q3DSWindow *view, Q3DSRemoteDeploymentM
}
QAction *showMatte = viewMenu->addAction(tr("Show Matte"));
showMatte->setCheckable(true);
- showMatte->setChecked(false);
+ showMatte->setChecked(view->engine()->viewerSettings()->matteEnabled());
showMatte->setShortcut(QKeySequence(tr("Ctrl+D")));
connect(showMatte, &QAction::toggled, [=]() {
view->engine()->viewerSettings()->setMatteEnabled(showMatte->isChecked());
@@ -120,17 +120,17 @@ Q3DStudioMainWindow::Q3DStudioMainWindow(Q3DSWindow *view, Q3DSRemoteDeploymentM
scaleModeAction->setMenu(scaleModeMenu);
QAction *scaleModeCenter = new QAction(tr("Center"));
scaleModeCenter->setCheckable(true);
- scaleModeCenter->setChecked(false);
+ scaleModeCenter->setChecked(view->engine()->viewerSettings()->scaleMode() == Q3DSViewerSettings::ScaleModeCenter);
scaleModeMenu->addAction(scaleModeCenter);
QAction *scaleModeFit = new QAction(tr("Scale to Fit"));
scaleModeFit->setCheckable(true);
- scaleModeFit->setChecked(false);
+ scaleModeFit->setChecked(view->engine()->viewerSettings()->scaleMode() == Q3DSViewerSettings::ScaleModeFit);
scaleModeMenu->addAction(scaleModeFit);
QAction *scaleModeFill = new QAction(tr("Scale to Fill"));
scaleModeFill->setCheckable(true);
- scaleModeFill->setChecked(true);
+ scaleModeFill->setChecked(view->engine()->viewerSettings()->scaleMode() == Q3DSViewerSettings::ScaleModeFill);
scaleModeMenu->addAction(scaleModeFill);
connect(scaleModeFit, &QAction::triggered, [=]() {