From 58f54fde6c6a99225cefca183ec29f612177cb31 Mon Sep 17 00:00:00 2001 From: Andy Nichols Date: Fri, 25 May 2018 15:04:26 +0200 Subject: 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 --- tools/q3dsviewer/main.cpp | 31 +++++++++++++++++++++++++++++++ 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 #include +#include + 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 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, [=]() { -- cgit v1.2.3