+ // .... -> show banner
+ pref->addPreference( tr( "PREF_SHOW_BANNER" ), pythonConsoleGroup, LightApp_Preferences::Bool, "PyConsole", "show_banner" );
+ // ... "Python console properties" group <<end>>
+
+ // ... "MRU" preferences group <<start>>
+ int mruGroup = pref->addPreference( tr( "PREF_GROUP_MRU" ), genTab, LightApp_Preferences::Auto, "MRU", "show_mru" );
+ pref->setItemProperty( "columns", 4, mruGroup );
+ // number of MRU items
+ int mruVisCount = pref->addPreference( tr( "PREF_MRU_VISIBLE_COUNT" ), mruGroup, LightApp_Preferences::IntSpin,
+ "MRU", "visible_count" );
+ pref->setItemProperty( "min", 0, mruVisCount );
+ pref->setItemProperty( "max", 100, mruVisCount );
+ // MRU links type
+ int mruLinkType = pref->addPreference( tr( "PREF_MRU_LINK_TYPE" ), mruGroup, LightApp_Preferences::Selector,
+ "MRU", "link_type" );
+ aValuesList.clear();
+ anIndicesList.clear();
+ aValuesList << tr("PREF_MRU_LINK_AUTO") << tr("PREF_MRU_LINK_SHORT") << tr("PREF_MRU_LINK_FULL");
+ anIndicesList << 0 << 1 << 2 ;
+ pref->setItemProperty( "strings", aValuesList, mruLinkType );
+ pref->setItemProperty( "indexes", anIndicesList, mruLinkType );
+ // ... "MRU" preferences group <<end>>
+ // .. "General" preferences tab <<end>>
+
+ // .. "3D viewer" group <<start>>
+ int Viewer3DGroup = pref->addPreference( tr( "PREF_GROUP_3DVIEWER" ), salomeCat );
+ // ... -> navigation mode
+ int vtkStyleMode = pref->addPreference( tr( "PREF_NAVIGATION" ), Viewer3DGroup,
+ LightApp_Preferences::Selector, "3DViewer", "navigation_mode" );
+ aValuesList.clear();
+ anIndicesList.clear();
+ aValuesList << tr("PREF_STANDARD_STYLE") << tr("PREF_KEYFREE_STYLE");
+ anIndicesList << 0 << 1;
+ pref->setItemProperty( "strings", aValuesList, vtkStyleMode );
+ pref->setItemProperty( "indexes", anIndicesList, vtkStyleMode );
+ // ... -> zooming mode
+ #if OCC_VERSION_LARGE > 0x0603000A // available only with OCC-6.3-sp11 and higher version
+ int occZoomingStyleMode = pref->addPreference( tr( "PREF_ZOOMING" ), Viewer3DGroup,
+ LightApp_Preferences::Selector, "3DViewer", "zooming_mode" );
+ aValuesList.clear();
+ anIndicesList.clear();
+ aValuesList << tr("PREF_ZOOMING_AT_CENTER") << tr("PREF_ZOOMING_AT_CURSOR");
+ anIndicesList << 0 << 1;
+ pref->setItemProperty( "strings", aValuesList, occZoomingStyleMode );
+ pref->setItemProperty( "indexes", anIndicesList, occZoomingStyleMode );
+ #endif
+ // ... "Trihedron" group <<start>>
+ int occTriGroup = pref->addPreference( tr( "PREF_TRIHEDRON" ), Viewer3DGroup );
+ pref->setItemProperty( "columns", 2, occTriGroup );
+ // .... -> trihedron size
+ int occTS = pref->addPreference( tr( "PREF_TRIHEDRON_SIZE" ), occTriGroup,
+ LightApp_Preferences::DblSpin, "3DViewer", "trihedron_size" );
+ pref->setItemProperty( "min", 1.0E-06, occTS );
+ pref->setItemProperty( "max", 1000, occTS );
+ // .... -> relative size of trihedron
+ pref->addPreference( tr( "PREF_RELATIVE_SIZE" ), occTriGroup, LightApp_Preferences::Bool, "3DViewer", "relative_size" );
+ // .... -> show static trihedron
+ pref->addPreference( tr( "PREF_SHOW_STATIC_TRIHEDRON" ), occTriGroup, LightApp_Preferences::Bool, "3DViewer", "show_static_trihedron" );
+ // ... "Trihedron" group <<end>>
+ // .. "3D viewer" group <<end>>
+
+ QString formats;
+ int bgId;
+#ifndef DISABLE_OCCVIEWER
+ // .. "OCC viewer" group <<start>>
+ int occGroup = pref->addPreference( tr( "PREF_GROUP_OCCVIEWER" ), salomeCat );
+
+ // ... "Background" group <<start>>
+ int bgGroup = pref->addPreference( tr( "PREF_VIEWER_BACKGROUND" ), occGroup );
+ // pref->setItemProperty( "columns", 2, bgGroup );
+ aValuesList.clear();
+ anIndicesList.clear();
+ txtList.clear();
+ formats = OCCViewer_Viewer::backgroundData( aValuesList, idList, txtList );
+ foreach( int gid, idList ) anIndicesList << gid;
+ // .... -> 3D viewer background
+ bgId = pref->addPreference( tr( "PREF_3DVIEWER_BACKGROUND" ), bgGroup,
+ LightApp_Preferences::Background, "OCCViewer", "background" );
+ pref->setItemProperty( "gradient_names", aValuesList, bgId );
+ pref->setItemProperty( "gradient_ids", anIndicesList, bgId );
+ pref->setItemProperty( "texture_enabled", !txtList.isEmpty(), bgId );
+ pref->setItemProperty( "texture_center_enabled", (bool)txtList.contains( Qtx::CenterTexture ), bgId );
+ pref->setItemProperty( "texture_tile_enabled", (bool)txtList.contains( Qtx::TileTexture ), bgId );
+ pref->setItemProperty( "texture_stretch_enabled", (bool)txtList.contains( Qtx::StretchTexture ), bgId );
+ pref->setItemProperty( "custom_enabled", false, bgId );
+ pref->setItemProperty( "image_formats", formats, bgId );
+ // .... -> XZ viewer background
+ bgId = pref->addPreference( tr( "PREF_XZVIEWER_BACKGROUND" ), bgGroup,
+ LightApp_Preferences::Background, "OCCViewer", "xz_background" );
+ pref->setItemProperty( "gradient_names", aValuesList, bgId );
+ pref->setItemProperty( "gradient_ids", anIndicesList, bgId );
+ pref->setItemProperty( "texture_enabled", !txtList.isEmpty(), bgId );
+ pref->setItemProperty( "texture_center_enabled", (bool)txtList.contains( Qtx::CenterTexture ), bgId );
+ pref->setItemProperty( "texture_tile_enabled", (bool)txtList.contains( Qtx::TileTexture ), bgId );
+ pref->setItemProperty( "texture_stretch_enabled", (bool)txtList.contains( Qtx::StretchTexture ), bgId );
+ pref->setItemProperty( "custom_enabled", false, bgId );
+ pref->setItemProperty( "image_formats", formats, bgId );
+ // .... -> YZ viewer background
+ bgId = pref->addPreference( tr( "PREF_YZVIEWER_BACKGROUND" ), bgGroup,
+ LightApp_Preferences::Background, "OCCViewer", "yz_background" );
+ pref->setItemProperty( "gradient_names", aValuesList, bgId );
+ pref->setItemProperty( "gradient_ids", anIndicesList, bgId );
+ pref->setItemProperty( "texture_enabled", !txtList.isEmpty(), bgId );
+ pref->setItemProperty( "texture_center_enabled", (bool)txtList.contains( Qtx::CenterTexture ), bgId );
+ pref->setItemProperty( "texture_tile_enabled", (bool)txtList.contains( Qtx::TileTexture ), bgId );
+ pref->setItemProperty( "texture_stretch_enabled", (bool)txtList.contains( Qtx::StretchTexture ), bgId );
+ pref->setItemProperty( "custom_enabled", false, bgId );
+ pref->setItemProperty( "image_formats", formats, bgId );
+ // .... -> XY viewer background
+ bgId = pref->addPreference( tr( "PREF_XYVIEWER_BACKGROUND" ), bgGroup,
+ LightApp_Preferences::Background, "OCCViewer", "xy_background" );
+ pref->setItemProperty( "gradient_names", aValuesList, bgId );
+ pref->setItemProperty( "gradient_ids", anIndicesList, bgId );
+ pref->setItemProperty( "texture_enabled", !txtList.isEmpty(), bgId );
+ pref->setItemProperty( "texture_center_enabled", (bool)txtList.contains( Qtx::CenterTexture ), bgId );
+ pref->setItemProperty( "texture_tile_enabled", (bool)txtList.contains( Qtx::TileTexture ), bgId );
+ pref->setItemProperty( "texture_stretch_enabled", (bool)txtList.contains( Qtx::StretchTexture ), bgId );
+ pref->setItemProperty( "custom_enabled", false, bgId );
+ pref->setItemProperty( "image_formats", formats, bgId );
+ // ... "Background" group <<end>>
+
+
+ // ... "Selection" group <<start>>
+ int occSelectionGroup = pref->addPreference( tr( "PREF_GROUP_SELECTION" ), occGroup );
+ pref->setItemProperty( "columns", 2, occSelectionGroup );
+ // .... -> enable preselection
+ pref->addPreference( tr( "PREF_ENABLE_PRESELECTION" ), occSelectionGroup,
+ LightApp_Preferences::Bool, "OCCViewer", "enable_preselection" );
+ // .... -> enable selection
+ pref->addPreference( tr( "PREF_ENABLE_SELECTION" ), occSelectionGroup,
+ LightApp_Preferences::Bool, "OCCViewer", "enable_selection" );
+ // ... "Selection" group <<end>>
+
+ // ... -> empty frame (for layout) <<start>>
+ int occGen = pref->addPreference( "", occGroup, LightApp_Preferences::Frame );
+ pref->setItemProperty( "margin", 0, occGen );
+ pref->setItemProperty( "columns", 2, occGen );
+ // ... -> empty frame (for layout) <<end>>
+ // .. "OCC viewer" group <<end>>
+#endif
+
+#ifndef DISABLE_VTKVIEWER
+ // .. "VTK viewer" group <<start>>
+ int vtkGroup = pref->addPreference( tr( "PREF_GROUP_VTKVIEWER" ), salomeCat ); //viewTab
+
+ // ... -> empty frame (for layout) <<start>>
+ int vtkGen = pref->addPreference( "", vtkGroup, LightApp_Preferences::Frame );
+ //pref->setItemProperty( "columns", 2, vtkGen );
+ // .... -> projection mode
+ int vtkProjMode = pref->addPreference( tr( "PREF_PROJECTION_MODE" ), vtkGen,
+ LightApp_Preferences::Selector, "VTKViewer", "projection_mode" );
+ aValuesList.clear();
+ anIndicesList.clear();
+ aValuesList << tr("PREF_ORTHOGRAPHIC") << tr("PREF_PERSPECTIVE");
+ anIndicesList << 0 << 1;
+ pref->setItemProperty( "strings", aValuesList, vtkProjMode );
+ pref->setItemProperty( "indexes", anIndicesList, vtkProjMode );
+ // .... -> background
+ aValuesList.clear();
+ anIndicesList.clear();
+ txtList.clear();
+#ifndef DISABLE_SALOMEOBJECT
+ formats = SVTK_Viewer::backgroundData( aValuesList, idList, txtList );
+#endif
+ foreach( int gid, idList ) anIndicesList << gid;
+ bgId = pref->addPreference( tr( "PREF_VIEWER_BACKGROUND" ), vtkGen,
+ LightApp_Preferences::Background, "VTKViewer", "background" );
+ pref->setItemProperty( "gradient_names", aValuesList, bgId );
+ pref->setItemProperty( "gradient_ids", anIndicesList, bgId );
+ pref->setItemProperty( "texture_enabled", !txtList.isEmpty(), bgId );
+ pref->setItemProperty( "texture_center_enabled", (bool)txtList.contains( Qtx::CenterTexture ), bgId );
+ pref->setItemProperty( "texture_tile_enabled", (bool)txtList.contains( Qtx::TileTexture ), bgId );
+ pref->setItemProperty( "texture_stretch_enabled", (bool)txtList.contains( Qtx::StretchTexture ), bgId );
+ pref->setItemProperty( "custom_enabled", false, bgId );
+#ifndef DISABLE_SALOMEOBJECT
+ pref->setItemProperty( "image_formats", formats, bgId );
+#endif
+ // .... -> speed increment
+ int vtkSpeed = pref->addPreference( tr( "PREF_INCREMENTAL_SPEED" ), vtkGen,
+ LightApp_Preferences::IntSpin, "VTKViewer", "speed_value" );
+ pref->setItemProperty( "min", 1, vtkSpeed );
+ pref->setItemProperty( "max", 1000, vtkSpeed );
+ // .... -> speed mode
+ int vtkSpeedMode = pref->addPreference( tr( "PREF_INCREMENTAL_SPEED_MODE" ), vtkGen,
+ LightApp_Preferences::Selector, "VTKViewer", "speed_mode" );
+ aValuesList.clear();
+ anIndicesList.clear();
+ aValuesList << tr("PREF_ARITHMETIC") << tr("PREF_GEOMETRICAL");
+ anIndicesList << 0 << 1;
+ pref->setItemProperty( "strings", aValuesList, vtkSpeedMode );
+ pref->setItemProperty( "indexes", anIndicesList, vtkSpeedMode );
+
+ // ... "Selection" group <<start>>
+ int vtkSelectionGroup = pref->addPreference( tr( "PREF_GROUP_SELECTION" ), vtkGroup );
+ pref->setItemProperty( "columns", 2, vtkSelectionGroup );
+ // .... -> preselection
+ int vtkPreselection = pref->addPreference( tr( "PREF_PRESELECTION" ), vtkSelectionGroup,
+ LightApp_Preferences::Selector, "VTKViewer", "preselection" );
+ aValuesList.clear();
+ anIndicesList.clear();
+ aValuesList << tr("PREF_PRESELECTION_STANDARD") << tr("PREF_PRESELECTION_DYNAMIC") << tr("PREF_PRESELECTION_DISABLED");
+ anIndicesList << 0 << 1 << 2;
+ pref->setItemProperty( "strings", aValuesList, vtkPreselection );
+ pref->setItemProperty( "indexes", anIndicesList, vtkPreselection );
+ // .... -> enable selection
+ pref->addPreference( tr( "PREF_ENABLE_SELECTION" ), vtkSelectionGroup, LightApp_Preferences::Bool, "VTKViewer", "enable_selection" );
+ // ... "Selection" group <<end>>
+
+ // ... -> empty frame (for layout) <<end>>
+
+ // ... space mouse sub-group <<start>>
+ int vtkSM = pref->addPreference( tr( "PREF_FRAME_SPACEMOUSE" ), vtkGroup, LightApp_Preferences::GroupBox );
+ //pref->setItemProperty( "columns", 2, vtkSM );
+ // .... -> decrease speed increment
+ int spacemousePref1 = pref->addPreference( tr( "PREF_SPACEMOUSE_FUNC_1" ), vtkSM,
+ LightApp_Preferences::Selector, "VTKViewer",
+ "spacemouse_func1_btn" );
+ // .... -> increase speed increment
+ int spacemousePref2 = pref->addPreference( tr( "PREF_SPACEMOUSE_FUNC_2" ), vtkSM,
+ LightApp_Preferences::Selector, "VTKViewer",
+ "spacemouse_func2_btn" );
+ // .... -> dominant / combined switch
+ int spacemousePref3 = pref->addPreference( tr( "PREF_SPACEMOUSE_FUNC_3" ), vtkSM,
+ LightApp_Preferences::Selector, "VTKViewer",
+ "spacemouse_func5_btn" ); //
+ aValuesList.clear();
+ anIndicesList.clear();
+ aValuesList << tr( "PREF_SPACEMOUSE_BTN_1" ) << tr( "PREF_SPACEMOUSE_BTN_2" ) << tr( "PREF_SPACEMOUSE_BTN_3" );
+ aValuesList << tr( "PREF_SPACEMOUSE_BTN_4" ) << tr( "PREF_SPACEMOUSE_BTN_5" ) << tr( "PREF_SPACEMOUSE_BTN_6" );
+ aValuesList << tr( "PREF_SPACEMOUSE_BTN_7" ) << tr( "PREF_SPACEMOUSE_BTN_8" ) << tr( "PREF_SPACEMOUSE_BTN_*" );
+ aValuesList << tr( "PREF_SPACEMOUSE_BTN_10" ) << tr( "PREF_SPACEMOUSE_BTN_11" );
+ anIndicesList << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << 10 << 11;
+ pref->setItemProperty( "strings", aValuesList, spacemousePref1 );
+ pref->setItemProperty( "indexes", anIndicesList, spacemousePref1 );
+ pref->setItemProperty( "strings", aValuesList, spacemousePref2 );
+ pref->setItemProperty( "indexes", anIndicesList, spacemousePref2 );
+ pref->setItemProperty( "strings", aValuesList, spacemousePref3 );
+ pref->setItemProperty( "indexes", anIndicesList, spacemousePref3 );
+ // ... space mouse sub-group <<end>>
+
+ // ... avi recording sub-group <<start>>
+ int vtkRec = pref->addPreference( tr( "PREF_FRAME_RECORDING" ), vtkGroup, LightApp_Preferences::GroupBox );
+ pref->setItemProperty( "columns", 2, vtkRec );
+ // .... -> recording mode
+ int modePref = pref->addPreference( tr( "PREF_RECORDING_MODE" ), vtkRec,
+ LightApp_Preferences::Selector, "VTKViewer", "recorder_mode" );
+ aValuesList.clear();
+ anIndicesList.clear();
+ aValuesList << tr( "PREF_SKIPPED_FRAMES" ) << tr( "PREF_ALL_DISLPAYED_FRAMES" );
+ anIndicesList << 0 << 1;
+ pref->setItemProperty( "strings", aValuesList, modePref );
+ pref->setItemProperty( "indexes", anIndicesList, modePref );
+ // .... -> fps
+ int fpsPref = pref->addPreference( tr( "PREF_FPS" ), vtkRec,
+ LightApp_Preferences::DblSpin, "VTKViewer", "recorder_fps" );
+ pref->setItemProperty( "min", 0.1, fpsPref );
+ pref->setItemProperty( "max", 100, fpsPref );
+ // .... -> quality
+ int qualityPref = pref->addPreference( tr( "PREF_QUALITY" ), vtkRec,
+ LightApp_Preferences::IntSpin, "VTKViewer", "recorder_quality" );
+ pref->setItemProperty( "min", 1, qualityPref );
+ pref->setItemProperty( "max", 100, qualityPref );
+ // .... -> progressive mode
+ pref->addPreference( tr( "PREF_PROGRESSIVE" ), vtkRec,
+ LightApp_Preferences::Bool, "VTKViewer", "recorder_progressive" );
+ // ... avi recording sub-group <<end>>
+
+ // ... group names sub-group <<start>>
+ int vtkGN = pref->addPreference( tr( "PREF_FRAME_GROUP_NAMES" ), vtkGroup,
+ LightApp_Preferences::GroupBox, "VTKViewer", "show_group_names" );
+ pref->setItemProperty( "columns", 2, vtkGN );
+ // .... -> text color
+ pref->addPreference( tr( "PREF_GROUP_NAMES_TEXT_COLOR" ), vtkGN,
+ LightApp_Preferences::Color, "VTKViewer", "group_names_text_color" );
+ // .... -> transparency
+ int transPref = pref->addPreference( tr( "PREF_GROUP_NAMES_TRANSPARENCY" ), vtkGN,
+ LightApp_Preferences::DblSpin, "VTKViewer", "group_names_transparency" );
+ pref->setItemProperty( "min", 0.0, transPref );
+ pref->setItemProperty( "max", 1.0, transPref );
+ pref->setItemProperty( "step", 0.1, transPref );
+ // ... -> group names sub-group <<end>>
+ // .. "VTK viewer" group <<end>>
+#endif
+
+ // .. "Plot2d viewer" group <<start>>
+ int plot2dGroup = pref->addPreference( tr( "PREF_GROUP_PLOT2DVIEWER" ), salomeCat ); //viewTab
+ //pref->setItemProperty( "columns", 2, plot2dGroup );
+
+ // ... -> show legend