diff options
author | Andy Nichols <andy.nichols@qt.io> | 2018-05-25 15:04:26 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2018-05-25 14:52:56 +0000 |
commit | 58f54fde6c6a99225cefca183ec29f612177cb31 (patch) | |
tree | 47c4a4e49653e6a2569e9a0ce25848c7d865dd20 | |
parent | bd9e2b07b297c46b1e0b4a70a25b140ad9efadfd (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.cpp | 31 | ||||
-rw-r--r-- | tools/q3dsviewer/q3dsmainwindow.cpp | 8 |
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, [=]() { |