| 210 | } |
| 211 | |
| 212 | void ViewerSettingsManager::loadSettings( Viewer& viewer ) |
| 213 | { |
| 214 | auto& viewport = viewer.viewport(); |
| 215 | auto params = viewport.getParameters(); |
| 216 | |
| 217 | auto& cfg = Config::instance(); |
| 218 | params.orthographic = cfg.getBool( cOrthographicParamKey, params.orthographic ); |
| 219 | |
| 220 | if ( cfg.hasJsonValue( cScrollForceConfigKey ) && cfg.getJsonValue( cScrollForceConfigKey ).isDouble() ) |
| 221 | { |
| 222 | viewer.scrollForce = cfg.getJsonValue( cScrollForceConfigKey ).asFloat(); |
| 223 | } |
| 224 | |
| 225 | if ( cfg.hasJsonValue( cGlobalBasisKey ) && viewer.globalBasis ) |
| 226 | { |
| 227 | auto val = cfg.getJsonValue( cGlobalBasisKey ); |
| 228 | if ( val[cGlobalBasisVisibleKey].isBool() ) |
| 229 | { |
| 230 | auto visible = val[cGlobalBasisVisibleKey].asBool(); |
| 231 | viewer.globalBasis->setVisible( visible ); |
| 232 | bool gridVisible = visible; |
| 233 | if ( val[cGlobalBasisGridVisibleKey].isBool() ) |
| 234 | gridVisible = val[cGlobalBasisGridVisibleKey].asBool(); |
| 235 | |
| 236 | gridVisible &= visible; // do not allow showing grid without basis because it is disabled by `viewer.globalBasis` |
| 237 | viewer.globalBasis->setGridVisible( gridVisible ); |
| 238 | if ( visible ) |
| 239 | CommandLoop::appendCommand( [&] () { viewer.preciseFitDataViewport(ViewportMask::all(),{0.9f}); }); |
| 240 | } |
| 241 | if ( val[cGlobalBasisScaleKey].isString() && val[cGlobalBasisScaleKey].asString() == "Auto" ) |
| 242 | params.globalBasisScaleMode = Viewport::Parameters::GlobalBasisScaleMode::Auto; |
| 243 | else if ( val[cGlobalBasisScaleKey].isDouble() ) |
| 244 | { |
| 245 | params.globalBasisScaleMode = Viewport::Parameters::GlobalBasisScaleMode::Fixed; |
| 246 | viewer.globalBasis->setAxesProps( val[cGlobalBasisScaleKey].asFloat(), viewer.globalBasis->getAxesWidth() ); |
| 247 | } |
| 248 | } |
| 249 | |
| 250 | if ( cfg.hasBool( cShowRotationPivotParamKey ) && viewer.rotationSphere ) |
| 251 | { |
| 252 | viewer.rotationSphere->setVisible( cfg.getBool( cShowRotationPivotParamKey ) ); |
| 253 | } |
| 254 | |
| 255 | viewport.setParameters( params ); |
| 256 | |
| 257 | viewer.glPickRadius = uint16_t( loadInt( cGLPickRadiusParamKey, viewer.glPickRadius ) ); |
| 258 | viewer.setSortDroppedFiles( cfg.getBool( cSortDroppedFiles, viewer.getSortDroppedFiles() ) ); |
| 259 | |
| 260 | if ( auto menu = viewer.getMenuPlugin() ) |
| 261 | { |
| 262 | menu->enableSavedDialogPositions( bool( loadInt( cEnableSavedDialogPositions, Defaults::saveDialogPositions ) ) ); |
| 263 | menu->setUserScaling( cfg.getJsonValue( cUserUIScaleKey, 1.0f ).asFloat() ); |
| 264 | } |
| 265 | |
| 266 | auto ribbonMenu = viewer.getMenuPluginAs<RibbonMenu>(); |
| 267 | if ( ribbonMenu ) |
| 268 | { |
| 269 | ribbonMenu->pinTopPanel( cfg.getBool( cTopPanelPinnedKey, Defaults::topPanelPinned ) ); |
no test coverage detected