MCPcopy Create free account
hub / github.com/MeshInspector/MeshLib / loadSettings

Method loadSettings

source/MRViewer/MRViewerSettingsManager.cpp:212–555  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

210}
211
212void 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 ) );

Callers 1

init_Method · 0.80

Calls 15

instanceFunction · 0.85
getMouseModeStringFunction · 0.85
minFunction · 0.85
setShowLeadingZeroFunction · 0.85
LengthUnitEnum · 0.85
setUiLengthUnitFunction · 0.85
setModelLengthUnitFunction · 0.85
setThousandsSeparatorFunction · 0.85
DegreesModeEnum · 0.85
setDegreesModeFunction · 0.85
setUiLengthPrecisionFunction · 0.85
setUiAnglePrecisionFunction · 0.85

Tested by

no test coverage detected