From 41aded95c12ed86b77866d9dfe5212fa66869ab2 Mon Sep 17 00:00:00 2001 From: rnv Date: Thu, 14 Dec 2017 16:51:24 +0300 Subject: [PATCH] Redesign SALOME documentation --- CMakeLists.txt | 2 + doc/salome/gui/CMakeLists.txt | 23 +- doc/salome/gui/conf.py.in | 224 +++ doc/salome/gui/doxyfile.in | 82 -- doc/salome/gui/input/common_functionality.doc | 141 -- doc/salome/gui/input/common_functionality.rst | 141 ++ doc/salome/gui/input/drag_and_drop.rst | 281 ++++ doc/salome/gui/input/gl_2d_viewer.doc | 71 - doc/salome/gui/input/gl_2d_viewer.rst | 93 ++ .../gui/input/howtos_and_best_practives.doc | 463 ------- .../gui/input/howtos_and_best_practives.rst | 20 + doc/salome/gui/input/index.doc | 82 -- doc/salome/gui/input/index.rst | 17 + doc/salome/gui/input/introduction.rst | 82 ++ doc/salome/gui/input/introduction_to_gui.doc | 68 - doc/salome/gui/input/introduction_to_gui.rst | 72 + doc/salome/gui/input/occ_3d_viewer.doc | 379 ----- doc/salome/gui/input/occ_3d_viewer.rst | 462 +++++++ doc/salome/gui/input/plot2d_viewer.doc | 245 ---- doc/salome/gui/input/plot2d_viewer.rst | 319 +++++ doc/salome/gui/input/python_viewer.doc | 97 -- doc/salome/gui/input/python_viewer.rst | 143 ++ doc/salome/gui/input/qxscene_2d_viewer.doc | 54 - doc/salome/gui/input/qxscene_2d_viewer.rst | 77 ++ doc/salome/gui/input/salome_desktop.doc | 89 -- doc/salome/gui/input/salome_desktop.rst | 84 ++ .../gui/input/select_color_and_font.doc | 32 - .../gui/input/select_color_and_font.rst | 43 + doc/salome/gui/input/setting_preferences.doc | 425 ------ doc/salome/gui/input/setting_preferences.rst | 391 ++++++ .../gui/input/study_management_chapter.doc | 143 -- .../gui/input/study_management_chapter.rst | 130 ++ doc/salome/gui/input/text_user_interface.doc | 78 -- doc/salome/gui/input/text_user_interface.rst | 83 ++ .../gui/input/{themes.doc => themes.rst} | 36 +- doc/salome/gui/input/use_case_builder.rst | 206 +++ .../gui/input/using_catalog_generator.doc | 65 - .../gui/input/using_catalog_generator.rst | 59 + doc/salome/gui/input/using_find_tool.doc | 76 - doc/salome/gui/input/using_find_tool.rst | 59 + ...ut_widgets.doc => using_input_widgets.rst} | 55 +- doc/salome/gui/input/using_notebook.doc | 40 - doc/salome/gui/input/using_notebook.rst | 43 + doc/salome/gui/input/using_object_browser.doc | 52 - doc/salome/gui/input/using_object_browser.rst | 48 + doc/salome/gui/input/using_pluginsmanager.doc | 208 --- doc/salome/gui/input/using_pluginsmanager.rst | 218 +++ doc/salome/gui/input/using_registry_tool.doc | 49 - doc/salome/gui/input/using_registry_tool.rst | 49 + doc/salome/gui/input/viewers_chapter.doc | 38 - doc/salome/gui/input/viewers_chapter.rst | 33 + doc/salome/gui/input/vtk_3d_viewer.doc | 279 ---- doc/salome/gui/input/vtk_3d_viewer.rst | 369 +++++ ...ts.doc => working_with_python_scripts.rst} | 17 +- .../fr/LC_MESSAGES/common_functionality.po | 318 +++++ .../locale/fr/LC_MESSAGES/drag_and_drop.po | 232 ++++ .../gui/locale/fr/LC_MESSAGES/gl_2d_viewer.po | 102 ++ .../LC_MESSAGES/howtos_and_best_practives.po | 46 + doc/salome/gui/locale/fr/LC_MESSAGES/index.po | 33 + .../gui/locale/fr/LC_MESSAGES/intoduction.po | 223 +++ .../gui/locale/fr/LC_MESSAGES/introduction.po | 223 +++ .../fr/LC_MESSAGES/introduction_to_gui.po | 144 ++ .../locale/fr/LC_MESSAGES/occ_3d_viewer.po | 599 ++++++++ .../locale/fr/LC_MESSAGES/plot2d_viewer.po | 405 ++++++ .../locale/fr/LC_MESSAGES/python_viewer.po | 186 +++ .../fr/LC_MESSAGES/qxscene_2d_viewer.po | 91 ++ .../locale/fr/LC_MESSAGES/salome_desktop.po | 258 ++++ .../fr/LC_MESSAGES/select_color_and_font.po | 66 + .../fr/LC_MESSAGES/setting_preferences.po | 1226 +++++++++++++++++ .../LC_MESSAGES/study_management_chapter.po | 277 ++++ .../fr/LC_MESSAGES/text_user_interface.po | 44 + .../gui/locale/fr/LC_MESSAGES/themes.po | 100 ++ .../locale/fr/LC_MESSAGES/use_case_builder.po | 158 +++ .../fr/LC_MESSAGES/using_catalog_generator.po | 147 ++ .../locale/fr/LC_MESSAGES/using_find_tool.po | 214 +++ .../fr/LC_MESSAGES/using_input_widgets.po | 151 ++ .../locale/fr/LC_MESSAGES/using_notebook.po | 79 ++ .../fr/LC_MESSAGES/using_object_browser.po | 139 ++ .../fr/LC_MESSAGES/using_pluginsmanager.po | 330 +++++ .../fr/LC_MESSAGES/using_registry_tool.po | 116 ++ .../locale/fr/LC_MESSAGES/viewers_chapter.po | 80 ++ .../locale/fr/LC_MESSAGES/vtk_3d_viewer.po | 459 ++++++ .../working_with_python_scripts.po | 59 + doc/salome/gui/static/footer.html | 14 - doc/salome/gui/static/header.html.in | 23 - doc/salome/gui/static/salome_extra.css | 29 - doc/salome/gui/static/switchers.js.in | 72 + doc/salome/gui/templates/layout.html | 30 + doc/salome/tui/images/image54.png | Bin 0 -> 330988 bytes doc/salome/tui/images/image67.png | Bin 0 -> 129948 bytes doc/salome/tui/input/index.doc | 1 + .../input/salome_architecture.doc | 0 src/LightApp/CMakeLists.txt | 2 + src/LightApp/LightApp_Application.cxx | 104 +- src/LightApp/LightApp_Application.h | 1 + src/LightApp/LightApp_PreferencesDlg.cxx | 2 +- src/LightApp/resources/LightApp.xml | 9 +- src/LightApp/resources/LightApp_images.ts | 8 + src/LightApp/resources/LightApp_msg_en.ts | 12 + src/LightApp/resources/icon_earth.png | Bin 0 -> 1670 bytes src/LightApp/resources/icon_life_ring.png | Bin 0 -> 1549 bytes src/OCCViewer/OCCViewer_ClippingDlg.cxx | 2 +- src/OCCViewer/OCCViewer_EnvTextureDlg.cxx | 2 +- src/OCCViewer/OCCViewer_LightSourceDlg.cxx | 2 +- src/OCCViewer/OCCViewer_RayTracingDlg.cxx | 2 +- src/Plot2d/Plot2d_AnalyticalCurveDlg.cxx | 2 +- src/Plot2d/Plot2d_SetupViewDlg.cxx | 2 +- src/PyViewer/PyViewer_ViewWindow.cxx | 4 +- src/STD/CMakeLists.txt | 1 + src/STD/STD_Application.cxx | 3 +- src/STD/resources/STD_images.ts | 4 + src/STD/resources/about.png | Bin 0 -> 459 bytes 112 files changed, 10566 insertions(+), 3405 deletions(-) create mode 100644 doc/salome/gui/conf.py.in delete mode 100755 doc/salome/gui/doxyfile.in delete mode 100644 doc/salome/gui/input/common_functionality.doc create mode 100755 doc/salome/gui/input/common_functionality.rst create mode 100755 doc/salome/gui/input/drag_and_drop.rst delete mode 100644 doc/salome/gui/input/gl_2d_viewer.doc create mode 100755 doc/salome/gui/input/gl_2d_viewer.rst delete mode 100644 doc/salome/gui/input/howtos_and_best_practives.doc create mode 100755 doc/salome/gui/input/howtos_and_best_practives.rst delete mode 100644 doc/salome/gui/input/index.doc create mode 100755 doc/salome/gui/input/index.rst create mode 100755 doc/salome/gui/input/introduction.rst delete mode 100644 doc/salome/gui/input/introduction_to_gui.doc create mode 100755 doc/salome/gui/input/introduction_to_gui.rst delete mode 100644 doc/salome/gui/input/occ_3d_viewer.doc create mode 100755 doc/salome/gui/input/occ_3d_viewer.rst delete mode 100644 doc/salome/gui/input/plot2d_viewer.doc create mode 100755 doc/salome/gui/input/plot2d_viewer.rst delete mode 100644 doc/salome/gui/input/python_viewer.doc create mode 100755 doc/salome/gui/input/python_viewer.rst delete mode 100644 doc/salome/gui/input/qxscene_2d_viewer.doc create mode 100755 doc/salome/gui/input/qxscene_2d_viewer.rst delete mode 100644 doc/salome/gui/input/salome_desktop.doc create mode 100755 doc/salome/gui/input/salome_desktop.rst delete mode 100644 doc/salome/gui/input/select_color_and_font.doc create mode 100755 doc/salome/gui/input/select_color_and_font.rst delete mode 100644 doc/salome/gui/input/setting_preferences.doc create mode 100755 doc/salome/gui/input/setting_preferences.rst delete mode 100644 doc/salome/gui/input/study_management_chapter.doc create mode 100755 doc/salome/gui/input/study_management_chapter.rst delete mode 100644 doc/salome/gui/input/text_user_interface.doc create mode 100755 doc/salome/gui/input/text_user_interface.rst rename doc/salome/gui/input/{themes.doc => themes.rst} (51%) create mode 100755 doc/salome/gui/input/use_case_builder.rst delete mode 100644 doc/salome/gui/input/using_catalog_generator.doc create mode 100755 doc/salome/gui/input/using_catalog_generator.rst delete mode 100644 doc/salome/gui/input/using_find_tool.doc create mode 100755 doc/salome/gui/input/using_find_tool.rst rename doc/salome/gui/input/{using_input_widgets.doc => using_input_widgets.rst} (51%) delete mode 100644 doc/salome/gui/input/using_notebook.doc create mode 100755 doc/salome/gui/input/using_notebook.rst delete mode 100644 doc/salome/gui/input/using_object_browser.doc create mode 100755 doc/salome/gui/input/using_object_browser.rst delete mode 100644 doc/salome/gui/input/using_pluginsmanager.doc create mode 100755 doc/salome/gui/input/using_pluginsmanager.rst delete mode 100644 doc/salome/gui/input/using_registry_tool.doc create mode 100755 doc/salome/gui/input/using_registry_tool.rst delete mode 100644 doc/salome/gui/input/viewers_chapter.doc create mode 100755 doc/salome/gui/input/viewers_chapter.rst delete mode 100644 doc/salome/gui/input/vtk_3d_viewer.doc create mode 100755 doc/salome/gui/input/vtk_3d_viewer.rst rename doc/salome/gui/input/{working_with_python_scripts.doc => working_with_python_scripts.rst} (79%) mode change 100644 => 100755 create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/common_functionality.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/drag_and_drop.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/gl_2d_viewer.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/howtos_and_best_practives.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/index.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/intoduction.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/introduction.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/introduction_to_gui.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/occ_3d_viewer.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/plot2d_viewer.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/python_viewer.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/qxscene_2d_viewer.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/salome_desktop.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/select_color_and_font.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/setting_preferences.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/study_management_chapter.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/text_user_interface.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/themes.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/use_case_builder.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/using_catalog_generator.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/using_find_tool.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/using_input_widgets.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/using_notebook.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/using_object_browser.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/using_pluginsmanager.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/using_registry_tool.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/viewers_chapter.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/vtk_3d_viewer.po create mode 100644 doc/salome/gui/locale/fr/LC_MESSAGES/working_with_python_scripts.po delete mode 100755 doc/salome/gui/static/footer.html delete mode 100755 doc/salome/gui/static/header.html.in delete mode 100644 doc/salome/gui/static/salome_extra.css create mode 100644 doc/salome/gui/static/switchers.js.in create mode 100644 doc/salome/gui/templates/layout.html create mode 100644 doc/salome/tui/images/image54.png create mode 100644 doc/salome/tui/images/image67.png rename doc/salome/{gui => tui}/input/salome_architecture.doc (100%) create mode 100755 src/LightApp/resources/icon_earth.png create mode 100755 src/LightApp/resources/icon_life_ring.png create mode 100755 src/STD/resources/about.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 56b1d24d7..0c8c6acf4 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,6 +73,8 @@ OPTION(SALOME_BUILD_DOC "Generate SALOME GUI documentation" ON) OPTION(SALOME_BUILD_TESTS "Build SALOME tests" ON) OPTION(SALOME_GUI_USE_OBSERVERS "Use study observers in GUI (advanced)" ON) OPTION(SALOME_BUILD_WITH_QT5 "Build SALOME with Qt 5" ON) +CMAKE_DEPENDENT_OPTION(SALOME_GUI_BUILD_FRENCH_DOC "Generate SALOME GUI French documentation" OFF + "NOT SALOME_BUILD_DOC" OFF) # Advanced options: CMAKE_DEPENDENT_OPTION(SALOME_LIGHT_ONLY "Build SALOME Light only (no CORBA)" OFF diff --git a/doc/salome/gui/CMakeLists.txt b/doc/salome/gui/CMakeLists.txt index 92e077bda..ca39efcc3 100755 --- a/doc/salome/gui/CMakeLists.txt +++ b/doc/salome/gui/CMakeLists.txt @@ -20,13 +20,22 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -SALOME_CONFIGURE_FILE(doxyfile.in doxyfile) -SALOME_CONFIGURE_FILE(static/header.html.in static/header.html) - -ADD_CUSTOM_TARGET(usr_docs ${DOXYGEN_EXECUTABLE}) +INCLUDE(UseSphinx) + +SALOME_CONFIGURE_FILE(conf.py.in conf.py) + +IF(SALOME_GUI_BUILD_FRENCH_DOC) + SET(BUILD_LANGUAGE_SWITCHER "true") + SALOME_CONFIGURE_FILE(static/switchers.js.in static/switchers.js) + ADD_MULTI_LANG_DOCUMENTATION(TARGET_NAME usr_docs MODULE GUI LANGUAGES fr) +ELSE() + SET(BUILD_LANGUAGE_SWITCHER "false") + SALOME_CONFIGURE_FILE(static/switchers.js.in static/switchers.js) + ADD_MULTI_LANG_DOCUMENTATION(TARGET_NAME usr_docs MODULE GUI) +ENDIF() INSTALL(CODE "EXECUTE_PROCESS(COMMAND \"${CMAKE_COMMAND}\" --build ${PROJECT_BINARY_DIR} --target usr_docs)") INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/GUI DESTINATION ${SALOME_INSTALL_DOC}/gui) -INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/GUI) - -SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES GUI) +IF(SALOME_GUI_BUILD_FRENCH_DOC) + INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/GUI_fr DESTINATION ${SALOME_INSTALL_DOC}/gui) +ENDIF() diff --git a/doc/salome/gui/conf.py.in b/doc/salome/gui/conf.py.in new file mode 100644 index 000000000..ddc1afe6b --- /dev/null +++ b/doc/salome/gui/conf.py.in @@ -0,0 +1,224 @@ +# -*- coding: utf-8 -*- +# +# yacs documentation build configuration file, created by +# sphinx-quickstart on Fri Aug 29 09:57:25 2008. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# The contents of this file are pickled, so don't put values in the namespace +# that aren't pickleable (module imports are okay, they're removed automatically). +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If your extensions are in another directory, add it here. If the directory +# is relative to the documentation root, use os.path.abspath to make it +# absolute, like shown here. +#sys.path.append(os.path.abspath('.')) + +# General configuration +# --------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.autodoc', + 'sphinxcontrib.napoleon' +] +#add pdfbuilder to build a pdf with rst2pdf +#extensions = ['rst2pdf.pdfbuilder'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = [os.path.join('@CMAKE_CURRENT_SOURCE_DIR@','templates')] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = 'GUI' + +# Copyright is shown via custom footer +html_show_copyright = False + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '@SALOMEGUI_VERSION@' +# The full version, including alpha/beta/rc tags. +release = '@SALOMEGUI_VERSION@' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +#unused_docs = [] + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = ['.build','ref','images','CVS'] + +# A list of glob-style patterns that should be excluded when looking for source +# files. They are matched against the source file names relative to the +# source directory, using slashes as directory separators on all platforms. +exclude_patterns = ['**/CVS'] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + + +# Options for HTML output +# ----------------------- + +# The theme to use for HTML and HTML Help pages. Major themes that come with +# Sphinx are currently 'default' and 'sphinxdoc'. +html_theme = '@SPHINX_THEME@' + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = [os.path.join('@CMAKE_CURRENT_BINARY_DIR@','static')] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +html_sidebars = { '**': ['globaltoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'],} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +html_use_modindex = True + +# If false, no index is generated. +html_use_index = False + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, the reST sources are included in the HTML build as _sources/. +#html_copy_source = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'guidoc' + + +# Options for LaTeX output +# ------------------------ + +# The paper size ('letter' or 'a4'). +latex_paper_size = 'a4' + +# The font size ('10pt', '11pt' or '12pt'). +latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, document class [howto/manual]). +latex_documents = [ + ('index', 'GUI.tex', 'GUI User Documentation', '', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +latex_preamble = """ +\RecustomVerbatimEnvironment + {Verbatim}{Verbatim} + {fontsize=\scriptsize} +""" + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +latex_use_modindex = True + +#Options for rst2pdf output (through reportlab) +pdf_documents = [ + ('index', 'GUI.tex', 'GUI User Documentation', '', 'manual'), +] + +# A comma-separated list of custom stylesheets. +pdf_stylesheets = ['sphinx','kerning','a4'] + +# Create a compressed PDF +# Use True/False or 1/0 +#pdf_compressed = False + +# A colon-separated list of folders to search for fonts. Example: +# pdf_font_path = ['/usr/share/fonts', '/usr/share/texmf-dist/fonts/'] + +# Language to be used for hyphenation support +#pdf_language = "en_US" + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {'https://docs.python.org/': None} + +locale_dirs = [os.path.join('@CMAKE_CURRENT_BINARY_DIR@','locale')] # path is example but recommended. +gettext_compact = False # optional diff --git a/doc/salome/gui/doxyfile.in b/doc/salome/gui/doxyfile.in deleted file mode 100755 index 5926c1bb4..000000000 --- a/doc/salome/gui/doxyfile.in +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE -# -# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = "SALOME GUI User's Guide" -OUTPUT_DIRECTORY = GUI -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -TAB_SIZE = 5 - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES - -#--------------------------------------------------------------------------- -#Input related options -#--------------------------------------------------------------------------- -INPUT = @CMAKE_CURRENT_SOURCE_DIR@/input -FILE_PATTERNS = *.doc -IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/images \ - @PROJECT_SOURCE_DIR@/src/OCCViewer/resources \ - @PROJECT_SOURCE_DIR@/src/VTKViewer/resources \ - @PROJECT_SOURCE_DIR@/src/SVTK/resources \ - @PROJECT_SOURCE_DIR@/src/Plot2d/resources \ - @PROJECT_SOURCE_DIR@/src/GLViewer/resources \ - @PROJECT_SOURCE_DIR@/src/QxScene/resources \ - -#--------------------------------------------------------------------------- -#HTML related options -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = . -HTML_HEADER = @CMAKE_CURRENT_BINARY_DIR@/static/header.html -HTML_FOOTER = @CMAKE_CURRENT_SOURCE_DIR@/static/footer.html -HTML_EXTRA_STYLESHEET = @CMAKE_CURRENT_SOURCE_DIR@/static/salome_extra.css -TOC_EXPAND = YES -DISABLE_INDEX = NO -GENERATE_TREEVIEW = YES -TREEVIEW_WIDTH = 300 - -#--------------------------------------------------------------------------- -#SORT related options -#--------------------------------------------------------------------------- -SORT_GROUP_NAMES = NO - -#--------------------------------------------------------------------------- -#LaTeX related option -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO - -#--------------------------------------------------------------------------- -#RTF related options -#--------------------------------------------------------------------------- -GENERATE_RTF = NO - -#--------------------------------------------------------------------------- -#Search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO diff --git a/doc/salome/gui/input/common_functionality.doc b/doc/salome/gui/input/common_functionality.doc deleted file mode 100644 index 1963d6ec3..000000000 --- a/doc/salome/gui/input/common_functionality.doc +++ /dev/null @@ -1,141 +0,0 @@ -/*! - -\page common_functionality_page Functionality common for OCC and VTK viewers - -\anchor viewer_background -

Background

- -Viewers background can be customized using the "Change background" -popup menu command that opens the following dialog box: - -\image html change_background_dlg.png - -The following types of the background are supported: - -- Single color: the background is colored with the solid color - specified by the user in the dialog box. - -- Gradient background: the background is gradiently colored according - to two colors and the gradient type specified in the dialog box. The - following types of background are supported: - - - Horizontal - - - Vertical - - - First diagonal - - - Second diagonal - - - First corner - - - Second corner - - - Third corner - - - Fourth corner - -- \b Image: allows to set image as viewer background and define filling type: - - - \b Center: the image is located at the center of the viewer backgound - - - \b Tile: the image fills the entire viewer backgound one by one - - - \b Stretch: the image is stretched to the entire viewer backgound. - -Default background for the OCC viewer is specified via the -\ref occ_preferences "OCC 3D Viewer Preferences" and for the -VTK viewer via the \ref vtk_preferences "VTK 3D Viewer Preferences". - -
- -

Selection

- -An element can be selected by clicking on it with the left mouse button. -Selecting objects with locked \em Shift key produces a multi selection. - -Additionally, when the viewer owns an input focus, an object can be selected -by pressing \em "S" on the keyboard. Pressing \em "S" when holding -\em Shift key allows adding/removing an object to/from the current selection. - -OCC viewer provides a way to navigate between the selectable objects. -This feature (disabled by default) is used in some dialog boxes (for example, -in Geometry module). When there are several objects which suit current -selection requirements (specified by the dialog) under the current mouse cursor, -it is possible to switch between them by means of mouse scroll wheel. -The same can be also done by pressing \em "N" and \em "P" keys. - -There are also two additional selection mechanisms: rectangle and -polyline selection. - -

Rectangle selection

- -Rectangle Selection is the basic and commonly used selection tool. - -To select a rectangle area press and hold the left mouse button while drawing the diagonal of the selection rectangle in the viewer. - -\image html rectselectionvtk.png - -As a result, the objects within the rectangle are selected. - -\image html rectselectionvtk2.png - -\note It is possible to add an area to the existing selection by holding down -\em Shift key while selecting. - -

Polyline selection

- -OCC and VTK Viewers feature a special Polyline Selection mechanism, -which allows selecting an arbitrary part of the graphic area using a -polygon frame (rubber band), instead of the usual selection with a -rectangular frame. - -To produce a Polyline Selection, press and hold the right mouse button and draw -the first side of the selection polygon, then change the direction by clicking -the left mouse button add draw another side, etc. Click twice by left mouse -button to finish drawing. - -\image html polyselectionvtk11.png - -As a result, the objects within the polygon are selected. - -\image html polyselectionvtk21.png - -To add an area to the existing selection it is necessary to hold down -\em Shift key while selecting. - -
- -\anchor viewer_navigation_modes -

Navigation modes

- -OCC and VTK 3D viewers support two different navigation modes: - -- Salome standard controls - - Rectangle selection in this mode is performed by the left mouse button - and polyline selection by the right mouse button; - multiple selection is available when \em Shift button is pressed. - - Also, holding \em Ctrl key with pressed mouse buttons performs the following view transformations: - - \em Ctrl + left mouse button - zooming; - - \em Ctrl + middle mouse button - panning; - - \em Ctrl + right mouse button - rotation. - -- Keyboard free style - - This mode allows performing all view transformations without using the - keyboard (only by the mouse): - - Left mouse button performs view rotation; - - Middle mouse button performs panning; - - Right mouse button makes zooming. - - In this style rectangle selection is done by the left mouse button with \em Ctrl key pressed; - polyline selection is done by the right mouse button with \em Ctrl key pressed. - -In both styles selection of objects in the viewer can be performed by pressing -\em "S" key or by the left mouse button click. - -Zooming can be alternatively done by scrolling mouse wheel. - -*/ diff --git a/doc/salome/gui/input/common_functionality.rst b/doc/salome/gui/input/common_functionality.rst new file mode 100755 index 000000000..005c36cdc --- /dev/null +++ b/doc/salome/gui/input/common_functionality.rst @@ -0,0 +1,141 @@ +.. _common_functionality_page: + +******************************************** +Functionality common for OCC and VTK viewers +******************************************** + +.. _viewer_background: + +Background +########## + +Viewers background can be customized using the "Change background" +popup menu command that opens the following dialog box: + +.. image:: ../images/change_background_dlg.png + :align: center + +The following types of the background are supported: + +* **Single color:** the background is colored with the solid color specified by the user in the dialog box. + +* **Gradient background:** the background is gradiently colored according to two colors and the gradient type specified in the dialog box. The following types of background are supported: + + * Horizontal + * Vertical + * First diagonal + * Second diagonal + * First corner + * Second corner + * Third corner + * Fourth corner + +* **Image:** allows to set image as viewer background and define filling type: + + * **Center:** the image is located at the center of the viewer backgound + * **Tile:** the image fills the entire viewer backgound one by one + * **Stretch:** the image is stretched to the entire viewer backgound. + +Default background for the OCC viewer is specified via the +:ref:`occ_preferences` and for the +VTK viewer via the :ref:`vtk_preferences`. + + +Selection +######### + +An element can be selected by clicking on it with the left mouse button. +Selecting objects with locked *Shift* key produces a multi selection. + +Additionally, when the viewer owns an input focus, an object can be selected +by pressing *"S"* on the keyboard. Pressing *"S"* when holding +\em Shift key allows adding/removing an object to/from the current selection. + +OCC viewer provides a way to navigate between the selectable objects. +This feature (disabled by default) is used in some dialog boxes (for example, +in Geometry module). When there are several objects which suit current +selection requirements (specified by the dialog) under the current mouse cursor, +it is possible to switch between them by means of mouse scroll wheel. +The same can be also done by pressing *"N"* and *"P"* keys. + +There are also two additional selection mechanisms: rectangle and +polyline selection. + +Rectangle selection +******************* + +Rectangle Selection is the basic and commonly used selection tool. + +To select a rectangle area press and hold the left mouse button while drawing the diagonal of the selection rectangle in the viewer. + +.. image:: ../images/rectselectionvtk.png + :align: center + +As a result, the objects within the rectangle are selected. + +.. image:: ../images/rectselectionvtk2.png + :align: center + +.. note:: It is possible to add an area to the existing selection by holding down *Shift* key while selecting. + +Polyline selection +****************** + +OCC and VTK Viewers feature a special Polyline Selection mechanism, +which allows selecting an arbitrary part of the graphic area using a +polygon frame (rubber band), instead of the usual selection with a +rectangular frame. + +To produce a Polyline Selection, press and hold the right mouse button and draw +the first side of the selection polygon, then change the direction by clicking +the left mouse button add draw another side, etc. Click twice by left mouse +button to finish drawing. + +.. image:: ../images/polyselectionvtk11.png + :align: center + +As a result, the objects within the polygon are selected. + +.. image:: ../images/polyselectionvtk21.png + :align: center + +To add an area to the existing selection it is necessary to hold down +*Shift* key while selecting. + +.. _viewer_navigation_modes: + +Navigation modes +################ + + +OCC and VTK 3D viewers support two different navigation modes: + +* **Salome standard controls** + Rectangle selection in this mode is performed by the left mouse button + and polyline selection by the right mouse button; + multiple selection is available when *Shift* button is pressed. + + Also, holding *Ctrl* key with pressed mouse buttons performs the following view transformations: + + * *Ctrl* + left mouse button - zooming; + * *Ctrl* + middle mouse button - panning; + * *Ctrl* + right mouse button - rotation. + +* **Keyboard free style** + + This mode allows performing all view transformations without using the + keyboard (only by the mouse): + + * Left mouse button performs view rotation; + * Middle mouse button performs panning; + * Right mouse button makes zooming. + + In this style rectangle selection is done by the left mouse button with *Ctrl* key pressed; + polyline selection is done by the right mouse button with *Ctrl* key pressed. + +In both styles selection of objects in the viewer can be performed by pressing +*"S"* key or by the left mouse button click. + +Zooming can be alternatively done by scrolling mouse wheel. + + diff --git a/doc/salome/gui/input/drag_and_drop.rst b/doc/salome/gui/input/drag_and_drop.rst new file mode 100755 index 000000000..f3221237e --- /dev/null +++ b/doc/salome/gui/input/drag_and_drop.rst @@ -0,0 +1,281 @@ +.. _drag_and_drop: + +********************************************************* +Implementing Drag and Drop functionality in SALOME module +********************************************************* + +.. contents:: Table of Contents + +**Drag and Drop** provides a simple visual mechanism to transfer +information between and within applications. + +In some aspects Drag and drop operates similarly to the clipboard copy/cut/paste +mechanism. + +Since SALOME GUI is implemented on Qt, the drag and drop functionality support +is provided by means of the corresponding Qt mechanisms. + +Currently dragging and dropping of the items can be done within Object browser only, +however this functionality can be extended to other GUI elements as well. + +.. _enable_drag_and_drop: + +Enabling drag and drop in SALOME module +======================================= + +The Drag and drop functionality is enabled by default in the Object browser. However, +to allow dragging of a data object or dropping data on it, it is necessary to redefine +**isDraggable()** and **isDropAccepted()** methods of the corresponding class, a successor +of the **SUIT_DataObject**. These methods are defined in the base class **SUIT_DataObject** +and default implementation of both functions returns **false**, which prevents dragging and +dropping: + +:: + + bool SUIT_DataObject::isDraggable() const + { + return false; + } + + bool SUIT_DataObject::isDropAccepted() const + { + return false; + } + +If your data model is based on the **SUIT_DataObject** and **SUIT_TreeModel**, just +re-implement these functions in your successor data object class and return **true** +when it is needed (for example, depending on the data object type, state, etc). + +Another alternative is available if your module is directly inherited from +**LightApp_Module** or **SalomeApp_Module** class (as the majority of existing SALOME modules). +The class **LightApp_Module** (and thus **SalomeApp_Module** also) already provides +high-level API that can be used for enabling drag and drop functionality. + +To enable dragging, redefine **isDraggable()** method of your module class. In this method +you can analyze the data object subject to the drag operation and decide if +it is necessary to enable or prevent its dragging: + +:: + + bool MyModuleGUI::isDraggable( const SUIT_DataObject* what ) const + { + bool result = false; + const MyDataObject* obj = dynamic_cast( what ); + if ( obj ) { + // check if object can be dragged + result = ; + } + return result; + } + +Note, that you should not invoke here method **isDragEnabled()** of your data object class +(in case if it inherits **LightApp_DataObject** or **SalomeApp_DataObject**), unless you +redefine methods **isDraggable()** and **isDropAccepted()** in your data object class. +The reason is that the implementation of these methods in **LightApp_DataObject** class +redirects calls to the **LightApp_Module** - be careful to avoid entering endless +recursion loop. + +To allow data dropping to an object (the object under the mouse cursor in the +Object browser during the drag operation) redefine **isDropAccepted()** method of your +module class: + +:: + + bool MyModuleGUI::isDropAccepted( const SUIT_DataObject* where ) const + { + bool result = false; + const MyDataObject* obj = dynamic_cast( where ); + if ( obj ) { + // check if object supports dropping + result = ; + } + return result; + } + +The caution about avoiding recursive loop mentioned above is also valid for +**isDropAccepted()** method. + +.. _handle_data_dropping: + +Handling data dropping +====================== + +When dragging operation is completed (the data is dropped to an object) the module owning +the item on which the data is dropped is notified by invoking its **dropObjects()** method: + +:: + + void LightApp_Module::dropObjects( const DataObjectList& what, + SUIT_DataObject* where, + const int row, + Qt::DropAction action ) + { + } + +The default implementation does nothing. However, this method can be redifined in the +successor class and handle the operation properly. The list of dropped +data objects is passed via **what** parameter. The data object on which +the data is dropped is passed via **where** parameter. The parameter **row** specifies in the children list +the position of object where data is dropped; if this parameter is equal to -1, the +data is dropped to the end of the children list. Performed drop action is passed +via **action** parameter; possible values are **Qt::CopyAction** and **Qt::MoveAction** +(other actions are currently unsupported). + +The method **dropObjects()** should analyze the parameters and apply +the corresponding actions for rearrangement of the data tree, copying or moving the data items depending on the +operation performed. For example: + +:: + + void MyModuleGUI::dropObjects( const DataObjectList& what, SUIT_DataObject* where, + const int row, Qt::DropAction action ) + { + if ( action != Qt::CopyAction && action != Qt::MoveAction ) + return; // unsupported action + + // get parent object + MyDataObject* whereObj = dynamic_cast( where ); + if ( !dataObj ) return; // wrong parent + + // iterate through all objects being dropped + for ( int i = 0; i < what.count(); i++ ) { + MyDataObject* whatObj = dynamic_cast( what[i] ); + if ( !whatObj ) continue; // skip wrong objects + // perform copying or moving + copyOrMove( whatObj, // data object being copied/moved + whereObj, // target data object + row, // index in the target data object + action == Qt::CopyAction ); // true if copying is done + } + // update Object browser + getApp()->updateObjectBrowser( false ); + } + + +In the above code the function **copyOrMove()** performs actual data tree rearrangement. + +.. _drag_drop_light_modules: + + +Drag and Drop in "light" modules +================================ + +The data model of the **light** (not having CORBA engine) SALOME module is usually +based on the custom tree of data objects. The general approach is to +inherit a custom data +object class from the **LightApp_DataObject** and a custom data model from the +**LightApp_DataModel** class. The data model class is responsible for building the +appropriate presentation of the data tree in the Object browser. + +Thus, the implementation of the drag and drop functionality in a **light** module (more +precisely, the method **dropObjects()** as described above), consists in copying data +entities (by creating new instances of the corresponding data object class) or moving +existing data objects to the new position in a tree. The Object browser will update the +tree representation automatically, as soon as **updateObjectBrowser()** function is called. + + +.. _drag_drop_full_modules: + +Using UseCaseBuilder for Drag and Drop handling in "full" modules +================================================================= + +Drag and drop operation requires underlying data model to allow flexible re-arrangement of +the data entities inside the data tree. In a **full** (CORBA engine based) SALOME +module, which data model is usually based on the hierarchy of **SALOMEDS::SObject** entities +provided by the data server functionality, re-arrangement of the data +tree is not a trivial task. + +However, SALOME data server (**SALOMEDS**) CORBA module proposes a mechanism that can be used +to customize data tree representation in a simple and flexible way - +:ref:`use_case_builder`. + +With use case builder, the **dropObjects()** function can be easily implemented. For example: + +:: + + // GUI part: process objects dropping + void MyModuleGUI::dropObjects( const DataObjectList& what, SUIT_DataObject* where, + const int row, Qt::DropAction action ) + { + if ( action != Qt::CopyAction && action != Qt::MoveAction ) + return; // unsupported action + + // get parent object + SalomeApp_DataObject* dataObj = dynamic_cast( where ); + if ( !dataObj ) return; // wrong parent + _PTR(SObject) parentObj = dataObj->object(); + + // collect objects being dropped + MYMODULE_ORB::object_list_var objects = new MYMODULE_ORB::object_list(); + objects->length( what.count() ); + int count = 0; + for ( int i = 0; i < what.count(); i++ ) { + dataObj = dynamic_cast( what[i] ); + if ( !dataObj ) continue; // skip wrong objects + _PTR(SObject) sobj = dataObj->object(); + objects[i] = _CAST(SObject, sobj)->GetSObject(); + count++; + } + objects->length( count ); + + // call engine function + engine()->copyOrMove( objects.in(), // what + _CAST(SObject, parentObj)->GetSObject(), // where + row, // row + action == Qt::CopyAction ); // isCopy + + // update Object browser + getApp()->updateObjectBrowser( false ); + } + + // Engine part: perform actual data copying / moving + void MyModule::copyOrMove( const MYMODULE_ORB::object_list& what, + SALOMEDS::SObject_ptr where, + CORBA::Long row, CORBA::Boolean isCopy ) + { + if ( CORBA::is_nil( where ) ) return; // bad parent + + SALOMEDS::Study_var study = where->GetStudy(); // study + SALOMEDS::StudyBuilder_var studyBuilder = study->NewBuilder(); // study builder + SALOMEDS::UseCaseBuilder_var useCaseBuilder = study->GetUseCaseBuilder(); // use case builder + SALOMEDS::SComponent_var father = where->GetFatherComponent(); // father component + std::string dataType = father->ComponentDataType(); + if ( dataType != "MYMODULE" ) return; // not a MYMODULE component + + SALOMEDS::SObject_var objAfter; + if ( row >= 0 && useCaseBuilder->HasChildren( where ) ) { + // insert at a given row -> find insertion position + SALOMEDS::UseCaseIterator_var useCaseIt = useCaseBuilder->GetUseCaseIterator( where ); + int i; + for ( i = 0; i < row && useCaseIt->More(); i++, useCaseIt->Next() ); + if ( i == row && useCaseIt->More() ) { + objAfter = useCaseIt->Value(); + } + } + // process all objects in a given list + for ( int i = 0; i < what.length(); i++ ) { + SALOMEDS::SObject_var sobj = what[i]; + if ( CORBA::is_nil( sobj ) ) continue; // skip bad object + if ( isCopy ) { + // copying is performed + // get the name of the object + CORBA::String_var name = sobj->GetName(); + // create a new object, as a child of the component object + SALOMEDS::SObject_var new_sobj = studyBuilder->NewObject( father ); + new_sobj->SetAttrString( "AttributeName", name.in() ); + sobj = new_sobj; + // ... perform other necessary data copying like + // adding the corresponding attributes or creation + // of servant data entities... + } + // insert the object or its copy to the use case tree + if ( !CORBA::is_nil( objAfter ) ) + useCaseBuilder->InsertBefore( sobj, objAfter ); // insert at a given row + else + useCaseBuilder->AppendTo( where, sobj ); // append to the + end of the list + } + } + + + diff --git a/doc/salome/gui/input/gl_2d_viewer.doc b/doc/salome/gui/input/gl_2d_viewer.doc deleted file mode 100644 index 3f0c35f57..000000000 --- a/doc/salome/gui/input/gl_2d_viewer.doc +++ /dev/null @@ -1,71 +0,0 @@ -/*! - -\page gl_2d_viewer_page GL 2D Viewer - -

Operations

- -The functionalities of GL viewer are available via its Viewer -Toolbar. Buttons marked with small downward triangles have extended -functionality which can be accessed by locking on them with left mouse -button. - -\image html glviewer_toolbar.png -
- -\image html gl_view_dump.png - -Dump View - exports an object from the viewer in bmp, png or -jpeg image format. -
- -\image html gl_view_fitall.png - -Fit all - scales the presentation so that it could fit within -the Viewer boundaries. -
- -\image html gl_view_fitarea.png - -Fit area - resizes the view to place in the visible area only -the contents of a frame drawn with pressed left mouse button. -
- -\image html gl_view_fitselect.png - -Fit selection - resizes the view to fit in the visible area -only currently selected objects. -
- -\image html gl_view_zoom.png - -Zoom - allows to zoom in and out. -
- -\image html gl_view_pan.png - -Panning - if the represented objects are greater that the -visible area and you don't wish to use Fit all functionality, -click on this button and you'll be able to drag the scene to see its -remote parts. -
- -\image html gl_view_glpan.png - -Global panning - allows to select a point to be the center of -the presentation showing all displayed objects in the visible ares. -
- -\image html gl_view_reset.png - -Reset - restores the default position the scene. -
- -\anchor gl_background -

Background

- -GL Viewer background can be customized using the "Change background" -popup menu command that opens standard "Select Color" dialog box: - -\image html selectcolor.png - -*/ diff --git a/doc/salome/gui/input/gl_2d_viewer.rst b/doc/salome/gui/input/gl_2d_viewer.rst new file mode 100755 index 000000000..7fc3947b6 --- /dev/null +++ b/doc/salome/gui/input/gl_2d_viewer.rst @@ -0,0 +1,93 @@ +.. _gl_2d_viewer_page: + +************ +GL 2D Viewer +************ + +Operations +########## + +The functionalities of GL viewer are available via its Viewer +Toolbar. Buttons marked with small downward triangles have extended +functionality which can be accessed by locking on them with left mouse +button. + +.. image:: ../images/glviewer_toolbar.png + :align: center + +____ + +.. image:: ../../../../src/GLViewer/resources/gl_view_dump.png + :align: center + +**Dump View** - exports an object from the viewer in bmp, png or jpeg image format. + +____ + +.. image:: ../../../../src/GLViewer/resources/gl_view_fitall.png + :align: center + +**Fit all** - scales the presentation so that it could fit within the Viewer boundaries. + +____ + +.. image:: ../../../../src/GLViewer/resources/gl_view_fitarea.png + :align: center + +**Fit area** - resizes the view to place in the visible area only the contents of a frame drawn +with pressed left mouse button. + +____ + +.. image:: ../../../../src/GLViewer/resources/gl_view_fitselect.png + :align: center + +**Fit selection** - resizes the view to fit in the visible area only currently selected objects. + +____ + +.. image:: ../../../../src/GLViewer/resources/gl_view_zoom.png + :align: center + +**Zoom** - allows to zoom in and out. + +____ + +.. image:: ../../../../src/GLViewer/resources/gl_view_pan.png + :align: center + +**Panning** - if the represented objects are greater that the +visible area and you don't wish to use **Fit all** functionality, +click on this button and you'll be able to drag the scene to see its +remote parts. + +____ + +.. image:: ../../../../src/GLViewer/resources/gl_view_glpan.png + :align: center + +**Global panning** - allows to select a point to be the center of +the presentation showing all displayed objects in the visible ares. + +____ + +.. image:: ../../../../src/GLViewer/resources/gl_view_reset.png + :align: center + +**Reset** - restores the default position the scene. + +____ + + +.. _gl_background: + +Background +########## + +GL Viewer background can be customized using the "Change background" +popup menu command that opens standard "Select Color" dialog box: + +.. image:: ../images/selectcolor.png + :align: center + + diff --git a/doc/salome/gui/input/howtos_and_best_practives.doc b/doc/salome/gui/input/howtos_and_best_practives.doc deleted file mode 100644 index e064bf281..000000000 --- a/doc/salome/gui/input/howtos_and_best_practives.doc +++ /dev/null @@ -1,463 +0,0 @@ -/*! - -\page howtos How-To's and Best Practices - -These documents provide guidelines and best practices explaining different aspects -and usage examples of SALOME platform. - -- \subpage use_case_builder -- \subpage drag_and_drop -- \subpage using_pluginsmanager - -\page use_case_builder Customize data tree representation in the Object browser by means of use case builder - -\tableofcontents - -In SALOME, the representation of the data tree in the Object browser for the \a full -(CORBA-based) module is done basing on the study contents as it is supplied by SALOME -data server (SALOMEDS). In contrast to the \a light module which data tree is completely -defined and can be easily attuned by the module specific implementation, \a full module -must publish its data in the CORBA study by means of the corresponding API of SALOME -data server, namely \c SALOMEDS::StudyBuilder. As soon as data entities are published -in the study, they are shown in the Object browser, in the same order as they appear -in the study tree. Re-arrangement of the data entities with such approach is not a -trivial task: for example, when copying/moving any data entity at the new position -within the tree, it is necessary to copy all its attributes as well -and to clear (in case of move operation) the data entity at the original position. Also, it is not possible to -make some data items in the tree "invisible" for the user (though it might be useful). - -Use case builder provides an alternative and more flexible way for customizing the -data tree representation. It implements another approach to the data tree hierarchy, -based on the tree node attributes. With use case builder it is possible to arrange -and easily re-arrange the data items in the data tree in any appropriate way. - -For example, with use case builder it is easy to implement such operations as -\ref drag_and_drop "Drag and Drop" and Copy/Cut/Paste. With use case builder approach -it is not important how data entities are arranged in the study tree, they even may -lie on the same level - use case builder allows providing custom data tree -representation, completely indepedent on the study data tree itself. It is even possible -to hide some data entities in the tree representation while still keeping them in the -study (to store specific module data). - -Object browser automatically checks it the module root data object -contains a tree node attribute and switches to the browsing of the -data tree for such module using the use case -builder. Otherwise, it browses data using an ordinary study tree iterator. Thus, it is -possible to have in the same study some modules based on use case builder approach and -others not using it. - -\section use_case_builder_usage Use case builder usage - -To obtain a reference to the use case builder, the function \c GetUseCaseBuilder() of the -\c SALOMEDS::Study interface can be used: - -\code -interface Study -{ - // Get reference to the use case builder - UseCaseBuilder GetUseCaseBuilder(); -}; -\endcode - -\c SALOMEDS::UseCaseBuilder interface of the \c SALOMEDS CORBA module provides several -methods that can be used to build a custom data tree. Its API is -similar to the API of -\c SALOMEDS::StudyBuilder interface - it operates with terms \a "father object" and -\a "child object". In addition, use case builder uses term \a "current object" that is -used as a parent of the children objects added if the parent is not explicitly -specified. - -\code -interface UseCaseBuilder -{ - // Set top-level root object of the use case tree as the current one. - // This method is usually used to add SComponent items to the top level of the tree - boolean SetRootCurrent(); - - // Set the object theObject as the current object of the use case builder - boolean SetCurrentObject(in SObject theObject); - - // Append object SObject to the end of children list of the current object - boolean Append(in SObject theObject); - - // Append object SObject to the end of children list of the parent object theFather - boolean AppendTo(in SObject theFather, in SObject theObject); - - // Insert object theFirst before the object theNext (under the same parent object) - boolean InsertBefore(in SObject theFirst, in SObject theNext); - - // Remove object from the use case tree (without removing it from the study) - boolean Remove(in SObject theObject); - - // Check if the object theObject has children (in the use case tree) - boolean HasChildren(in SObject theObject); - - // Get father object of the given object theObject in the use cases tree - SObject GetFather(in SObject theObject); - - // Check if given object theObject is added to the use case tree - boolean IsUseCaseNode(in SObject theObject); - - // Get the current object of the use case builder - SObject GetCurrentObject(); -}; -\endcode - -\section browse_use_case_tree Browsing use case data tree - -Browsing the use case tree can be done by means of the use case iterator, that is -provided by the \c SALOMEDS::UseCaseIterator interface of the \c SALOMEDS CORBA -module. Access to the use case iterator can be done via \c SALOMEDS::UseCaseBuilder -interface: - -\code -interface UseCaseBuilder -{ - // Get a reference to the use case iterator and initialize it - // by the given object theObject - UseCaseIterator GetUseCaseIterator(in SObject theObject); -}; -\endcode - -The API of the \c SALOMEDS::UseCaseIterator interface is similar to the -\c SALOMEDS::ChildIterator: - -\code -interface UseCaseIterator -{ - // Activate or reset use case iterator; boolean parameter allLevels - // specifies if the iterator should browse recursively on all sub-levels or - // on the first sub-level only. - void Init(in boolean allLevels); - // Check if the iterator can browse to the next item - boolean More(); - // Browse the iterator to the next object - void Next(); - // Get the object currently pointed by the iterator - SObject Value(); -}; -\endcode - -Typical usage of the \c UseCaseIterator is as follows: - -\code -// get use case builder -SALOMEDS::UseCaseBuilder_var useCaseBuilder = study->GetUseCaseBuilder(); - -// get the use case iterator -SALOMEDS::UseCaseIterator_var iter = useCaseIter->GetUseCaseIterator( sobject.in() ); -// iterate through the sub-items recursively -for ( useCaseIter->Init( true ); useCaseIter->More(); useCaseIter->Next() ) { - SALOMEDS::SObject_var child = useCaseIter->Value(); - // do something with the child - // ... - // clean-up - child->UnRegister(); -} -// clean-up -useCaseIter->UnRegister(); -useCaseBuilder->UnRegister(); -\endcode - -\section use_case_compatibility Remark about compatibility with existing studies - -If you decide to switch your module to the use case builder approach to provide -customization for the data tree representation, you must take care of compatibility -with existing SALOME studies. Basically it means that you have to add -a simple code to \c Load() (and \c LoadASCII() if necessary) method -of your module, which adds tree node attributes to all data entities -in the data tree of your module. The simplest way to do -this is to iterate through all data items and recursively add them to -the use case builder: - -\code -// find component -SALOMEDS::SComponent_var comp = study->FindComponent( "MYMODULE" ); -// add tree node attributes only if component data is present in the study -if ( !CORBA::is_nil( comp ) ) { - // get the use case builder - SALOMEDS::UseCaseBuilder_var useCaseBuilder = study->GetUseCaseBuilder(); - // check if tree nodes are already set - if ( !useCaseBuilder->IsUseCaseNode( comp.in() ) ) { - // set the current node of the use case builder to the root - useCaseBuilder->SetRootCurrent(); - // add component item to the top level of the use case tree - useCaseBuilder->Append( comp.in() ); - // iterate through all child items recursively - SALOMEDS::ChildIterator_var iter = study->NewChildIterator( comp.in() ); - for ( iter->InitEx( true ); iter->More(); iter->Next() ) { - SALOMEDS::SObject_var sobj = iter->Value(); - SALOMEDS::SObject_var father = sobj->GetFather(); - // add an object to the corresponding level in the use case tree - useCaseBuilder->AppendTo( father.in(), sobj.in() ); - // clean up (avoid memory leaks) - sobj->UnRegister(); - father->UnRegister(); - } - } - useCaseBuilder->UnRegister(); // clean up -} -\endcode - -\page drag_and_drop Implementing Drag and Drop functionality in SALOME module - -\tableofcontents - -Drag and Drop provides a simple visual mechanism to transfer -information between and within applications. - -In some aspects Drag and drop operates similarly to the clipboard copy/cut/paste -mechanism. - -Since SALOME GUI is implemented on Qt, the drag and drop functionality support -is provided by means of the corresponding Qt mechanisms. - -Currently dragging and dropping of the items can be done within Object browser only, -however this functionality can be extended to other GUI elements as well. - -\section enable_drag_and_drop Enabling drag and drop in SALOME module - -The Drag and drop functionality is enabled by default in the Object browser. However, -to allow dragging of a data object or dropping data on it, it is necessary to redefine -\c isDraggable() and \c isDropAccepted() methods of the corresponding class, a successor -of the \c SUIT_DataObject. These methods are defined in the base class \c SUIT_DataObject -and default implementation of both functions returns \c false, which prevents dragging and -dropping: - -\code -bool SUIT_DataObject::isDraggable() const -{ - return false; -} - -bool SUIT_DataObject::isDropAccepted() const -{ - return false; -} -\endcode - -If your data model is based on the \c SUIT_DataObject and \c SUIT_TreeModel, just -re-implement these functions in your successor data object class and return \c true -when it is needed (for example, depending on the data object type, state, etc). - -Another alternative is available if your module is directly inherited from -\c LightApp_Module or \c SalomeApp_Module class (as the majority of existing SALOME modules). -The class \c LightApp_Module (and thus \c SalomeApp_Module also) already provides -high-level API that can be used for enabling drag and drop functionality. - -To enable dragging, redefine \c isDraggable() method of your module class. In this method -you can analyze the data object subject to the drag operation and decide if -it is necessary to enable or prevent its dragging: - -\code -bool MyModuleGUI::isDraggable( const SUIT_DataObject* what ) const -{ - bool result = false; - const MyDataObject* obj = dynamic_cast( what ); - if ( obj ) { - // check if object can be dragged - result = ; - } - return result; -} -\endcode - -Note, that you should not invoke here method \c isDragEnabled() of your data object class -(in case if it inherits \c LightApp_DataObject or \c SalomeApp_DataObject), unless you -redefine methods \c isDraggable() and \c isDropAccepted() in your data object class. -The reason is that the implementation of these methods in \c LightApp_DataObject class -redirects calls to the \c LightApp_Module - be careful to avoid entering endless -recursion loop. - -To allow data dropping to an object (the object under the mouse cursor in the -Object browser during the drag operation) redefine \c isDropAccepted() method of your -module class: - -\code -bool MyModuleGUI::isDropAccepted( const SUIT_DataObject* where ) const -{ - bool result = false; - const MyDataObject* obj = dynamic_cast( where ); - if ( obj ) { - // check if object supports dropping - result = ; - } - return result; -} -\endcode - -The caution about avoiding recursive loop mentioned above is also valid for -\c isDropAccepted() method. - -\section handle_data_dropping Handling data dropping - -When dragging operation is completed (the data is dropped to an object) the module owning -the item on which the data is dropped is notified by invoking its \c dropObjects() method: - -\code -void LightApp_Module::dropObjects( const DataObjectList& what, - SUIT_DataObject* where, - const int row, - Qt::DropAction action ) -{ -} -\endcode - -The default implementation does nothing. However, this method can be redifined in the -successor class and handle the operation properly. The list of dropped -data objects is passed via \c what parameter. The data object on which -the data is dropped is passed via \c where parameter. The parameter \c row specifies in the children list -the position of object where data is dropped; if this parameter is equal to -1, the -data is dropped to the end of the children list. Performed drop action is passed -via \c action parameter; possible values are \c Qt::CopyAction and \c Qt::MoveAction -(other actions are currently unsupported). - -The method \c dropObjects() should analyze the parameters and apply -the corresponding actions for rearrangement of the data tree, copying or moving the data items depending on the -operation performed. For example: - -\code -void MyModuleGUI::dropObjects( const DataObjectList& what, SUIT_DataObject* where, - const int row, Qt::DropAction action ) -{ - if ( action != Qt::CopyAction && action != Qt::MoveAction ) - return; // unsupported action - - // get parent object - MyDataObject* whereObj = dynamic_cast( where ); - if ( !dataObj ) return; // wrong parent - - // iterate through all objects being dropped - for ( int i = 0; i < what.count(); i++ ) { - MyDataObject* whatObj = dynamic_cast( what[i] ); - if ( !whatObj ) continue; // skip wrong objects - // perform copying or moving - copyOrMove( whatObj, // data object being copied/moved - whereObj, // target data object - row, // index in the target data object - action == Qt::CopyAction ); // true if copying is done - } - // update Object browser - getApp()->updateObjectBrowser( false ); -} -\endcode - -In the above code the function \c copyOrMove() performs actual data tree rearrangement. - -\section drag_drop_light_modules Drag and Drop in "light" modules - -The data model of the \a light (not having CORBA engine) SALOME module is usually -based on the custom tree of data objects. The general approach is to -inherit a custom data -object class from the \c LightApp_DataObject and a custom data model from the -\c LightApp_DataModel class. The data model class is responsible for building the -appropriate presentation of the data tree in the Object browser. - -Thus, the implementation of the drag and drop functionality in a \a light module (more -precisely, the method \a dropObjects() as described above), consists in copying data -entities (by creating new instances of the corresponding data object class) or moving -existing data objects to the new position in a tree. The Object browser will update the -tree representation automatically, as soon as \c updateObjectBrowser() function is called. - -\section drag_drop_full_modules Using UseCaseBuilder for Drag and Drop handling in "full" modules - -Drag and drop operation requires underlying data model to allow flexible re-arrangement of -the data entities inside the data tree. In a \a full (CORBA engine based) SALOME -module, which data model is usually based on the hierarchy of \c SALOMEDS::SObject entities -provided by the data server functionality, re-arrangement of the data -tree is not a trivial task. - -However, SALOME data server (\c SALOMEDS) CORBA module proposes a mechanism that can be used -to customize data tree representation in a simple and flexible way - -\ref use_case_builder "use case builder". - -With use case builder, the \c dropObjects() function can be easily implemented. For example: - -\code -// GUI part: process objects dropping -void MyModuleGUI::dropObjects( const DataObjectList& what, SUIT_DataObject* where, - const int row, Qt::DropAction action ) -{ - if ( action != Qt::CopyAction && action != Qt::MoveAction ) - return; // unsupported action - - // get parent object - SalomeApp_DataObject* dataObj = dynamic_cast( where ); - if ( !dataObj ) return; // wrong parent - _PTR(SObject) parentObj = dataObj->object(); - - // collect objects being dropped - MYMODULE_ORB::object_list_var objects = new MYMODULE_ORB::object_list(); - objects->length( what.count() ); - int count = 0; - for ( int i = 0; i < what.count(); i++ ) { - dataObj = dynamic_cast( what[i] ); - if ( !dataObj ) continue; // skip wrong objects - _PTR(SObject) sobj = dataObj->object(); - objects[i] = _CAST(SObject, sobj)->GetSObject(); - count++; - } - objects->length( count ); - - // call engine function - engine()->copyOrMove( objects.in(), // what - _CAST(SObject, parentObj)->GetSObject(), // where - row, // row - action == Qt::CopyAction ); // isCopy - - // update Object browser - getApp()->updateObjectBrowser( false ); -} - -// Engine part: perform actual data copying / moving -void MyModule::copyOrMove( const MYMODULE_ORB::object_list& what, - SALOMEDS::SObject_ptr where, - CORBA::Long row, CORBA::Boolean isCopy ) -{ - if ( CORBA::is_nil( where ) ) return; // bad parent - - SALOMEDS::Study_var study = where->GetStudy(); // study - SALOMEDS::StudyBuilder_var studyBuilder = study->NewBuilder(); // study builder - SALOMEDS::UseCaseBuilder_var useCaseBuilder = study->GetUseCaseBuilder(); // use case builder - SALOMEDS::SComponent_var father = where->GetFatherComponent(); // father component - std::string dataType = father->ComponentDataType(); - if ( dataType != "MYMODULE" ) return; // not a MYMODULE component - - SALOMEDS::SObject_var objAfter; - if ( row >= 0 && useCaseBuilder->HasChildren( where ) ) { - // insert at a given row -> find insertion position - SALOMEDS::UseCaseIterator_var useCaseIt = useCaseBuilder->GetUseCaseIterator( where ); - int i; - for ( i = 0; i < row && useCaseIt->More(); i++, useCaseIt->Next() ); - if ( i == row && useCaseIt->More() ) { - objAfter = useCaseIt->Value(); - } - } - // process all objects in a given list - for ( int i = 0; i < what.length(); i++ ) { - SALOMEDS::SObject_var sobj = what[i]; - if ( CORBA::is_nil( sobj ) ) continue; // skip bad object - if ( isCopy ) { - // copying is performed - // get the name of the object - CORBA::String_var name = sobj->GetName(); - // create a new object, as a child of the component object - SALOMEDS::SObject_var new_sobj = studyBuilder->NewObject( father ); - new_sobj->SetAttrString( "AttributeName", name.in() ); - sobj = new_sobj; - // ... perform other necessary data copying like - // adding the corresponding attributes or creation - // of servant data entities... - } - // insert the object or its copy to the use case tree - if ( !CORBA::is_nil( objAfter ) ) - useCaseBuilder->InsertBefore( sobj, objAfter ); // insert at a given row - else - useCaseBuilder->AppendTo( where, sobj ); // append to the - end of the list - } -} - -\endcode - -*/ diff --git a/doc/salome/gui/input/howtos_and_best_practives.rst b/doc/salome/gui/input/howtos_and_best_practives.rst new file mode 100755 index 000000000..b8463fb89 --- /dev/null +++ b/doc/salome/gui/input/howtos_and_best_practives.rst @@ -0,0 +1,20 @@ +.. _howtos: + +########################### +How-To's and Best Practices +########################### + +These documents provide guidelines and best practices explaining different aspects +and usage examples of SALOME platform. + +* :ref:`use_case_builder`: +* :ref:`drag_and_drop` +* :ref:`using_pluginsmanager` + + +.. toctree:: + + use_case_builder.rst + drag_and_drop.rst + using_pluginsmanager.rst + diff --git a/doc/salome/gui/input/index.doc b/doc/salome/gui/input/index.doc deleted file mode 100644 index c306e7609..000000000 --- a/doc/salome/gui/input/index.doc +++ /dev/null @@ -1,82 +0,0 @@ -/*! - -\mainpage Introduction to Salome Platform - -\image html icon_about.png - -
-         -Welcome to SALOME Platform! Modern technological products (cars, -structures, electrical or electronic equipment) are getting more and -more complex every year and must meet increasingly severe requirements -in terms of quality and performance. For example, for structures and -their environment the demands to reduce risks and optimize costs are -extremely high. It requires particularly refined simulations -concerning structural behavior and robustness to ensure high -reliability. -\n The numeric modeling of a physical problem, the development of -solutions and their integration into the design process are often -handled in very specific environments. SALOME represents a generic -CAD-based application for digital simulation with "high reactivity to -market evolutions and customer expectations". - -SALOME is a free software that provides a generic platform for Pre and -Post-Processing for numerical simulation. It is based on an open and -flexible architecture made of reusable components available as free -software. - -SALOME is a CAD/CAE integration platform. It provides reusable -components for: -
    -
  • 3D modeling (bottom-up construction, import, healing); -
  • Visualization; -
  • Computational schemas management; -
  • Post-processing. -
- -SALOME is tailored for integration of custom components: -
    -
  • CAD interfaces; -
  • Mesh generators; -
  • Finite Element solvers with specific pre-processors. -
- -The SALOME platform is available in Open Source. - -Salome Platform: -
    -
  • Supports interoperability between CAD modeling and computation software (CAD-CAE link) -
  • Makes easier the integration of new components on heterogeneous systems for numerical computation -
  • Sets the priority to multi-physics coupling between computation software -
  • Provides a generic user interface, user-friendly and efficient, which helps to reduce the costs and delays of carrying out the studies -
  • Reduces training time to the specific time for learning the software solution which has been based on this platform -
  • All functionalities are accessible through the programmatic -integrated Python console -
- -\image html image65.png - -What can you do in SALOME? (Some of SALOME main functions) -
    -
  • Define geometrical models (create/modify geometrical items), import and export them using the BREP, IGES and STEP formats; -
  • Define meshing of these geometrical items, import and export them; -
  • Handle physical properties and quantities attached to geometrical items, import and export them to a reusable format; -
  • Perform computations using a solver (optionally provided): read input data, configure the solver, and write calculation results); -
  • Visualize result fields in 3D, 2D and export images of their visualization to an appropriate format; -
  • Manage study schemes: definition, save/restore; -
  • Manage computation schemes: definition, execution. -
- -From the point of view of the \subpage salome_architecture_page "Architecture", -Salome is composed of several modules. - -This part of documentation on Salome also covers -\subpage introduction_to_gui_page "general Salome functionalities", -common for all modules, such as study management, Salome viewers, -preferences, etc. - - -And finally, there is an additional chapter, which provides a short -guide about the \subpage tui_page "usage of SALOME GUI Python interface" to access SALOME GUI -functionalities from the Python code. -*/ diff --git a/doc/salome/gui/input/index.rst b/doc/salome/gui/input/index.rst new file mode 100755 index 000000000..5300742d9 --- /dev/null +++ b/doc/salome/gui/input/index.rst @@ -0,0 +1,17 @@ +.. GUI documentation master file, created by + sphinx-quickstart on Tue Nov 21 15:18:10 2017. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to GUI's documentation! +================================= + +.. toctree:: + + introduction.rst + howtos_and_best_practives.rst + +Indices and tables +================== + +* :ref:`search` diff --git a/doc/salome/gui/input/introduction.rst b/doc/salome/gui/input/introduction.rst new file mode 100755 index 000000000..37a79d6ca --- /dev/null +++ b/doc/salome/gui/input/introduction.rst @@ -0,0 +1,82 @@ +******************************* +Introduction to Salome Platform +******************************* + +.. image:: ../images/icon_about.png + :align: center + +Welcome to SALOME Platform! Modern technological products (cars, +structures, electrical or electronic equipment) are getting more and +more complex every year and must meet increasingly severe requirements +in terms of quality and performance. For example, for structures and +their environment the demands to reduce risks and optimize costs are +extremely high. It requires particularly refined simulations +concerning structural behavior and robustness to ensure high +reliability. + +The numeric modeling of a physical problem, the development of +solutions and their integration into the design process are often +handled in very specific environments. SALOME represents a generic +CAD-based application for digital simulation with "high reactivity to +market evolutions and customer expectations". + +SALOME is a free software that provides a generic platform for Pre and +Post-Processing for numerical simulation. It is based on an open and +flexible architecture made of reusable components available as free +software. + +SALOME is a CAD/CAE integration platform. It provides reusable +components for: + +#. 3D modeling (bottom-up construction, import, healing); +#. Visualization; +#. Computational schemas management; +#. Post-processing. + + +SALOME is tailored for integration of custom components: + +#. CAD interfaces; +#. Mesh generators; +#. Finite Element solvers with specific pre-processors. + + +The SALOME platform is available in Open Source. + +**Salome Platform:** + +#. Supports interoperability between CAD modeling and computation software (CAD-CAE link) +#. Makes easier the integration of new components on heterogeneous systems for numerical computation +#. Sets the priority to multi-physics coupling between computation software +#. Provides a generic user interface, user-friendly and efficient, which helps to reduce the costs and delays of carrying out the studies +#. Reduces training time to the specific time for learning the software solution which has been based on this platform +#. All functionalities are accessible through the programmatic integrated Python console + + +.. image:: ../images/image65.png + :align: center + +**What can you do in SALOME? (Some of SALOME main functions)** + +#. Define geometrical models (create/modify geometrical items), import and export them using the BREP, IGES and STEP formats; +#. Define meshing of these geometrical items, import and export them; +#. Handle physical properties and quantities attached to geometrical items, import and export them to a reusable format; +#. Perform computations using a solver (optionally provided): read input data, configure the solver, and write calculation results); +#. Visualize result fields in 3D, 2D and export images of their visualization to an appropriate format; +#. Manage study schemes: definition, save/restore; +#. Manage computation schemes: definition, execution. + +This part of documentation on Salome also covers +:ref:`introduction_to_gui_page`, common for all modules, such as study management, Salome viewers, +preferences, etc. + + +And finally, there is an additional chapter, which provides a short +guide about the :ref:`tui_page` to access SALOME GUI +functionalities from the Python code. + + +.. toctree:: + + introduction_to_gui.rst + text_user_interface.rst diff --git a/doc/salome/gui/input/introduction_to_gui.doc b/doc/salome/gui/input/introduction_to_gui.doc deleted file mode 100644 index 75c02ae41..000000000 --- a/doc/salome/gui/input/introduction_to_gui.doc +++ /dev/null @@ -1,68 +0,0 @@ -/*! - -\page introduction_to_gui_page Introduction to GUI - -\image html view2.png - -\b SALOME \b GUI is based on SUIT (Salome User Interface -Toolkit) that proposes very flexible, powerful and safe mechanisms of -interaction with SALOME tool components (both CORBA and standalone), -resource management, viewers and selection handling, -exception and signals processing. - -All Graphical User Interfaces of standard modules have plug-in -structure, i.e. each module is placed in a dynamic library which is -loaded on demand. So, all modules add their own menu items, buttons -in toolbar, windows etc. -\b GUI (Graphical User Interface) provides a common shell for all -components, which can be integrated into the SALOME platform and some -basic GUI functionalities, common for all modules. - -\image html mainmenu.png - -
    -
  • \b File menu corresponds to \subpage study_management_page "Study management" functionalities -(creation, saving, loading, connecting, disconnecting, editing studies, etc.)
  • -
  • \b Edit menu gives access to Copy/Paste allowing to paste the -objects from one study into the other. The availability of this -functionality depends on the module and the nature of an operation or -an object.
  • -
  • \b View and \b Window menus provide functionalities of -\subpage salome_desktop_page "Desktop management". Basically, they -allow to show/hide toolbars, activate and manage study windows, change -the appearance of Salome, etc. Among key parts of study window are: - -
      -
    • Viewer window, used for visualization of objects,
    • -
    • \subpage using_object_browser_page "Object Browser", used for -management of objects created or imported into the SALOME -application, also providing search possibilities with the -\subpage using_find_tool_page "Find Tool", and
    • -
    • \subpage using_notebook "Notebook" - allows to predefine study variables.
    • -
    • \subpage python_interpreter_page "Python interpreter", used for -direct input of python commands and dumping studies into Python -scripts.
    • -
    • Almost all aspects of Salome look and feel can be tuned by the -user in \subpage themes_page "Themes" dialog.
    • -
    -
  • - -
  • \b Tools menu gives access to: \subpage using_catalog_generator_page "Catalogue Generator", -\subpage using_registry_tool_page "Registry tool" and \ref using_pluginsmanager "Python plugins"
  • -
  • \b Help menu gives access to the help on Salome modules. The -appropriate help page can also be called from any operation dialog via -\b Help button.
  • -
- -Help for the GUI module provides information about standard -\subpage viewers_page "Salome Viewers". - -General application preferences are described in the \subpage setting_preferences_page "Preferences" -section of SALOME GUI Help. - - -\subpage using_input_widgets_page "Using input widgets" sub-section -covers specific aspects of behavior of certain kinds of SALOME GUI -input fields. - -*/ diff --git a/doc/salome/gui/input/introduction_to_gui.rst b/doc/salome/gui/input/introduction_to_gui.rst new file mode 100755 index 000000000..026866837 --- /dev/null +++ b/doc/salome/gui/input/introduction_to_gui.rst @@ -0,0 +1,72 @@ +.. _introduction_to_gui_page: + +################### +Introduction to GUI +################### + +.. image:: ../images/view2.png + :align: center + +**SALOME GUI** is based on SUIT (Salome User Interface +Toolkit) that proposes very flexible, powerful and safe mechanisms of +interaction with SALOME tool components (both CORBA and standalone), +resource management, viewers and selection handling, +exception and signals processing. + +All Graphical User Interfaces of standard modules have plug-in +structure, i.e. each module is placed in a dynamic library which is +loaded on demand. So, all modules add their own menu items, buttons +in toolbar, windows etc. + +**GUI** (Graphical User Interface) provides a common shell for all +components, which can be integrated into the SALOME platform and some +basic GUI functionalities, common for all modules. + +.. image:: ../images/mainmenu.png + :align: center + + +* **File** menu corresponds to :ref:`study_management_page` functionalities (creation, saving, loading, connecting, disconnecting, editing studies, etc.) +* **Edit** menu gives access to ** Copy/Paste** allowing to paste the objects from one study into the other. The availability of this functionality depends on the module and the nature of an operation or an object. +* **View** and **Window** menus provide functionalities of :ref:`salome_desktop_page`. Basically, they allow to show/hide toolbars, activate and manage study windows, change the appearance of Salome, etc. Among key parts of study window are: + + * Viewer window, used for visualization of objects, + * :ref:`using_object_browser_page`, used for management of objects created or imported into the SALOME application, also providing search possibilities with the :ref:`using_find_tool_page`, and + * :ref:`using_notebook` - allows to predefine study variables. + * :ref:`python_interpreter_page`, used for direct input of python commands and dumping studies into Python scripts. + * Almost all aspects of Salome look and feel can be tuned by the user in :ref:` themes_page "Themes" dialog. + +* **Tools** menu gives access to: :ref:`using_catalog_generator_page`, :ref:`using_registry_tool_page` and :ref:`using_pluginsmanager` +* **Help** menu gives access to the help on Salome modules. The appropriate help page can also be called from any operation dialog via **Help** button. + + +Help for the GUI module provides information about standard +:ref:`viewers_page`. + +General application preferences are described in the :ref:`setting_preferences_page` +section of SALOME GUI Help. + + +:ref:`using_input_widgets_page` sub-section +covers specific aspects of behavior of certain kinds of SALOME GUI +input fields. + + +.. toctree:: + :maxdepth: 3 + + study_management_chapter.rst + salome_desktop.rst + using_object_browser.rst + using_find_tool.rst + using_notebook.rst + themes.rst + using_catalog_generator.rst + working_with_python_scripts.rst + using_registry_tool.rst + viewers_chapter.rst + setting_preferences.rst + using_input_widgets.rst + + + diff --git a/doc/salome/gui/input/occ_3d_viewer.doc b/doc/salome/gui/input/occ_3d_viewer.doc deleted file mode 100644 index fcbb14384..000000000 --- a/doc/salome/gui/input/occ_3d_viewer.doc +++ /dev/null @@ -1,379 +0,0 @@ -/*! - -\page occ_3d_viewer_page OCC 3D Viewer - -

Operations

- -The functionalities of OCC viewer are available via its Viewer -Toolbar. Buttons marked with small downward triangles have extended -functionality which can be accessed by locking on them with left mouse -button. - -\image html occviewer_toolbar.png -
- -\image html occ_view_camera_dump.png - -Dump View - exports an object from the viewer in bmp, png, -jpeg or another image format. -
- -\image html occ_view_style_switch.png - -Interaction style switch - allows to switch between standard -and "keyboard free" interaction styles. "Keyboard free" style allows -to process all view transformations without using keyboard (only by -mouse). By default, rotation in this mode is performed by left mouse -button, panning - by middle mouse button, zooming - by right mouse -button. Selection in view by pressing "s" key works in both -styles. -
- -\image html occ_view_zooming_style_switch.png - -Zooming style switch - allows to switch between standard -(zooming at the center of the view) and advanced (zooming at the -current cursor position) zooming styles. -
- -\image html occ_view_triedre.png - -Show/Hide Trihedron - shows or hides coordinate axes. -
- -\image html occ_view_preselection.png - -Enable/Disable preselection - enables or disables preselection (highlighting) in the view. -
- -\image html occ_view_selection.png - -Enable/Disable selection - enables or disables selection in the view. -
- -\image html occ_view_fitall.png - -Fit all - represents all displayed objects in the -visible area. -
- -\image html occ_view_fitarea.png - -Fit area - resizes the view to place in the visible area only -the contents of a frame drawn with pressed left mouse button. -
- -\image html occ_view_fitselection.png - -Fit selection - fits view contents to the current selection. -
- -\image html occ_view_zoom.png - -Zoom - allows to zoom in and out. -
- -\image html occ_view_pan.png - -Panning - if the represented objects are greater that the -visible area and you don't wish to use Fit all functionality, -click on this button and you'll be able to drag the scene to see its -remote parts. -
- -\image html occ_view_glpan.png - -Global panning - allows to select a point to be the center of a scene -representing all displayed objects in the visible area. -
- -\image html occ_view_rotation_point.png - -Change rotation point - allows to choose the point around -which the rotation is performed. - -\image html set_rotation_point_dialog1.png - -By default the rotation point is located in the Center of the bounding -box of represented objects. - -\image html set_rotation_point_dialog2.png - -Unchecking Use Bounding Box Center check-box allows you to -change rotation point: - -- Set to Origin button sets the rotation point to -origin of coordinates: (0, 0, 0). - -- Gravity Center of Selected Object button allows using the -gravity center of the object selected in the viewer as the center of -the rotation point. -When you click this button, you should first choose the type of -selectable object: Point, Edge, Face or Solid and only then proceed -with selection in the viewer. - -- Also you can define the coordinates of the rotation point manually. - -
- -\image html occ_view_rotate.png - -Rotation - allows to rotate the scene using the mouse. -
- -\image html occ_view_front.png -\image html occ_view_back.png -\image html occ_view_top.png -\image html occ_view_bottom.png -\image html occ_view_left.png -\image html occ_view_right.png - -These buttons orientate the scene strictly about coordinate axes: -\b Front, \b Back, \b Top, \b Bottom, \b Left or \b Right side. -
- -\image html occ_view_anticlockwise.png - -Rotate counterclockwise - rotates view 90 @htmlonly ° @endhtmlonly counterclockwise. -
- -\image html occ_view_clockwise.png - -Rotate clockwise - rotates view 90 @htmlonly ° @endhtmlonly clockwise. -
- -\image html occ_view_orthographic.png - -Ortographic projection - default OCC viewer projection mode. -
- -\image html occ_view_perspective.png - -Perspective projection - perspective OCC viewer projection mode. -
- -\image html occ_view_stereo.png - -Stereo projection - stereoscopic rendering of the view. -\note Activation of this mode also switches the view to perpective projection -in case if the orthographic one has been active. -\note By default, quad-buffered stereo is activated, if it is supported by the graphic card. -If no stereo capabilities are available, an error message is shown. -\note The stereoscopic view settings can be defined in -\ref occ_preferences "OCC 3D Viewer" preferences. - -
- -\image html occ_view_reset.png - -Reset - restores the default position (isometric) of objects in -the scene. -
- -\image html occ_view_shoot.png - -Memorize view - saves the current position of objects in the -scene. -
- -\image html occ_view_presets.png - -Restore view - restores the saved position of objects in the -scene. -
- -\image html occ_view_clone.png - -Clone view - opens a new duplicate scene. -
- -\anchor clipping_planes - -\b Clipping allows creating cross-section views (clipping planes) -of your mesh. - -To create a clipping plane, click on the \b New button in the dialog and choose how it will be defined by \b Absolute or \b Relative coordinates. - -Absolute Coordinates - -\image html Clipping_Absolute.png - -- Base point - allows defining the coordinates of the base - point for the clipping plane. - - - Reset - returns the base point to coordinate origin. - -- Direction - allows defining the orientation of the - clipping plane. - - - Invert - allows selecting, which part of the object will be - removed and which will remain after clipping. - -Relative mode - -\image html Clipping_Relative.png - -- \b Orientation ( ||X-Y, ||X-Z or ||Y-Z). - -- \b Distance between the opposite extremities of the boundary box of -represented objects, if it is set to 0.5 the boundary box is split in two halves. - -- \b Rotation (in angle degrees) around X (Y to Z) and around -Y (X to Z) (depending on the chosen Orientation) - -The other parameters are available in both modes : -- Active checkbox is used to apply/erase current plane and it's affect to/from view. -- Delete removes the active clipping plane and discards it's view changes. -- Disable all deactivates all created clipping planes and clears Auto Apply checkbox. -- Preview check-box shows the clipping plane in the 3D Viewer. -- Auto Apply check-box allows you to see the result of clipping -in the 3D Viewer immediately. Be careful, it is not a preview -and Close button could not cancel the applied modifications. - -It is also possible to interact with the clipping plane directly in 3D -view using the mouse. - -
- -\image html occ_view_scaling.png - -Scaling - represents objects deformed (stretched or stuffed) -along the axes of coordinates. -
- -\image html occ_view_graduated_axes.png - -Graduated axes - allows to define axes parameters and graduate -them. - -\image html graduatedaxes2.png - -- Axis name - if checked the axis name is displayed in the viewer. - - - Name - allows to redefine the axis name. - - - Font - allows to define the font color of the axis name. - -- Labels - if checked the labels are displayed in the viewer. - - - Number - allows to define the number of labels. - - - Offset - allows to define the distance between axis and labels. - - - Font - allows to define the font color of labels names. - -- Tick marks - if checked the tick marks are displayed in the viewer. - - - Length - allows to define the length of tick marks. - -- Is visible - if checked the graduated axes are displayed in the viewer. - -
- -\image html occ_view_ambient.png - -Toggle ambient light - toggle "keep only ambient light" flag -on/off. -
- -\image html occ_view_minimized.png -\image html occ_view_maximized.png - -Minimize/Maximize - these buttons allow switching the current -view area to the minimized / maximized state. -
- -\image html occ_view_return_3d_view.png - -Return to 3D - this button switches from 2D view projection back to the 3D view mode. -
- -\image html occ_view_sync.png - -Synchronize view - allows to synchronize 3d view -parameters. This button has two states - checked and -unchecked. Clicking on this button opens a drop-down menu listing the -compatible 3d views. As soon as the user selects any view from the -list, the parameters (view point, position, zoom coefficient, etc.) of -the current view are synchronized with the selected view (static -synchronization). - -In addition, when this button is in the "checked" state, the dynamic -synchronization of the views is performed, i.e. any zoom, pan, rotate -or other view operation done in one view is automatically applied to -the other view. -
- -\image html occ_view_ray_tracing.png - -\anchor ray_tracing - -Ray tracing - allows to switch between rendering methods in run-time -in the current OCCT 3D view. It can be used to produce images with photorealistic quality. - -\image html doc_ray_tracing.png - -- Ray tracing - specifies rendering mode: OpenGL rasterization (by default) or GPU ray-tracing. - - - Depth - defines maximum ray-tracing depth. - - - Specular reflections - enables/disables specular reflections. - - - Adaptive anti-aliasing - enables/disables adaptive anti-aliasing. - - - Shadows rendering - enables/disables shadows rendering. - - - Transparent shadow - enables/disables light propagation through transparent media. - -
- -\image html occ_view_env_texture.png - -\anchor env_texture - -Environment texture - allows to set parameters for environment texture. -This is a special mode of texture mapping when specular reflection of environment texture -is simulated by OpenGL using a special texture coordinates generation algorithm (a sphere map). - -\image html doc_env_texture.png - -- Environment texture - enables/disables environment texture in the current OCCT 3D view. - -User can select one of 7 predefined environment texture from the list or define its texture from file by -choosing item "Custom..." in a combo box. - -\note Environment texture file should normally satisfy the following requirements -in order to produce good visual result: -- The image file should have 2:1 width-to-height ratio. -- It should constitute a 360-degrees panoramic image created using a fish-eye lens. - -
- -\image html occ_view_light_source.png - -\anchor light_source - -Light source - allows to set parameters for light source. - -It's possible to choose a type of light source between directional and positional light. - -\image html doc_dir_light_source.png - -Directional light - creates a directional light source in the viewer. -It is defined by direction coordinates, color and headlight parameter. - -\image html doc_pos_light_source.png - -Positional light - creates an isolated light source X,Y,Z in the viewer. -It is also defined by the color and headlight parameter. - -Click: - -- Apply and Close to apply defined light source to the OCC 3D Viewer. - -- Default to restore default values of light source. - -- Close to return parameters of light source on initial values. - -
-*/ diff --git a/doc/salome/gui/input/occ_3d_viewer.rst b/doc/salome/gui/input/occ_3d_viewer.rst new file mode 100755 index 000000000..002dbffc2 --- /dev/null +++ b/doc/salome/gui/input/occ_3d_viewer.rst @@ -0,0 +1,462 @@ +.. _occ_3d_viewer_page: + +************* +OCC 3D Viewer +************* + +Operations +########## + +The functionalities of OCC viewer are available via its Viewer +Toolbar. Buttons marked with small downward triangles have extended +functionality which can be accessed by locking on them with left mouse +button. + +.. image:: ../images/occviewer_toolbar.png + :align: center + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_camera_dump.png + :align: center + +**Dump View** - exports an object from the viewer in bmp, png, jpeg or another image format. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_style_switch.png + :align: center + +**Interaction style switch** - allows to switch between standard +and "keyboard free" interaction styles. "Keyboard free" style allows +to process all view transformations without using keyboard (only by +mouse). By default, rotation in this mode is performed by left mouse +button, panning - by middle mouse button, zooming - by right mouse +button. Selection in view by pressing "s" key works in both +styles. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_zooming_style_switch.png + :align: center + +**Zooming style switch** - allows to switch between standard +(zooming at the center of the view) and advanced (zooming at the +current cursor position) zooming styles. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_triedre.png + :align: center + +**Show/Hide Trihedron** - shows or hides coordinate axes. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_preselection.png + :align: center + +**Enable/Disable preselection** - enables or disables preselection (highlighting) in the view. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_selection.png + :align: center + +**Enable/Disable selection** - enables or disables selection in the view. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_fitall.png + :align: center + +**Fit all** - represents all displayed objects in the +visible area. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_fitarea.png + :align: center + +**Fit area** - resizes the view to place in the visible area only +the contents of a frame drawn with pressed left mouse button. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_fitselection.png + :align: center + +**Fit selection** - fits view contents to the current selection. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_zoom.png + :align: center + +**Zoom** - allows to zoom in and out. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_pan.png + :align: center + +**Panning** - if the represented objects are greater that the +visible area and you don't wish to use **Fit all** functionality, +click on this button and you'll be able to drag the scene to see its +remote parts. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_glpan.png + :align: center + +**Global panning** - allows to select a point to be the center of a scene +representing all displayed objects in the visible area. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_rotation_point.png + :align: center + +**Change rotation point** - allows to choose the point around +which the rotation is performed. + +.. image:: ../images/set_rotation_point_dialog1.png + :align: center + +By default the rotation point is located in the Center of the bounding +box of represented objects. + +.. image:: ../images/set_rotation_point_dialog2.png + :align: center + +Unchecking **Use Bounding Box Center** check-box allows you to +change rotation point: + +- **Set to Origin** button sets the rotation point to origin of coordinates: (0, 0, 0). +- **Gravity Center of Selected Object** button allows using the gravity center of the object selected in the viewer as the center of the rotation point. When you click this button, you should first choose the type of selectable object: Point, Edge, Face or Solid and only then proceed with selection in the viewer. +- Also you can define the coordinates of the rotation point manually. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_rotate.png + :align: center + +**Rotation** - allows to rotate the scene using the mouse. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_front.png + :align: center + +.. image:: ../../../../src/OCCViewer/resources/occ_view_back.png + :align: center + +.. image:: ../../../../src/OCCViewer/resources/occ_view_top.png + :align: center + +.. image:: ../../../../src/OCCViewer/resources/occ_view_bottom.png + :align: center + +.. image:: ../../../../src/OCCViewer/resources/occ_view_left.png + :align: center + +.. image:: ../../../../src/OCCViewer/resources/occ_view_right.png + :align: center + +These buttons orientate the scene strictly about coordinate axes: +**Front**, **Back**, **Top**, **Bottom**, **Left** or **Right** side. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_anticlockwise.png + :align: center + +**Rotate counterclockwise** - rotates view 90 @htmlonly ° @endhtmlonly counterclockwise. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_clockwise.png + :align: center + +**Rotate clockwise** - rotates view 90 @htmlonly ° @endhtmlonly clockwise. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_orthographic.png + :align: center + +**Ortographic projection** - default OCC viewer projection mode. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_perspective.png + :align: center + +**Perspective projection** - perspective OCC viewer projection mode. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_stereo.png + :align: center + +**Stereo projection** - stereoscopic rendering of the view. +.. note:: Activation of this mode also switches the view to perpective projection in case if the orthographic one has been active. +.. note:: By default, quad-buffered stereo is activated, if it is supported by the graphic card. If no stereo capabilities are available, an error message is shown. +.. note:: The stereoscopic view settings can be defined in :ref:`occ_preferences` preferences. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_reset.png + :align: center + +**Reset** - restores the default position (isometric) of objects in +the scene. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_shoot.png + :align: center + +**Memorize view** - saves the current position of objects in the +scene. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_presets.png + :align: center + +**Restore view** - restores the saved position of objects in the +scene. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_clone.png + :align: center + +**Clone view** - opens a new duplicate scene. + +____ + +.. _clipping_planes: + +Clipping Planes +############### + +**Clipping** allows creating cross-section views (clipping planes) +of your mesh. + +To create a clipping plane, click on the **New** button in the dialog and choose how it will be defined by **Absolute** or **Relative** coordinates. + +**Absolute Coordinates** + +.. image:: ../images/Clipping_Absolute.png + :align: center + +- **Base point** - allows defining the coordinates of the base point for the clipping plane. + + - **Reset** - returns the base point to coordinate origin. + +- **Direction** - allows defining the orientation of the clipping plane. + + - **Invert** - allows selecting, which part of the object will be removed and which will remain after clipping. + + +**Relative mode** + +.. image:: ../images/Clipping_Relative.png + :align: center + +- **Orientation** ( ||X-Y, ||X-Z or ||Y-Z). + +- **Distance** between the opposite extremities of the boundary box of represented objects, if it is set to 0.5 the boundary box is split in two halves. + +- **Rotation** (in angle degrees) **around X** (Y to Z) and **around Y** (X to Z) (depending on the chosen Orientation) + +The other parameters are available in both modes : + +- **Active** checkbox is used to apply/erase current plane and it's affect to/from view. +- **Delete** removes the active clipping plane and discards it's view changes. +- **Disable all** deactivates all created clipping planes and clears **Auto Apply** checkbox. +- **Preview** check-box shows the clipping plane in the **3D Viewer**. +- **Auto Apply** check-box allows you to see the result of clipping in the **3D Viewer** immediately. Be careful, it is not a preview 2and Close button could not cancel the applied modifications. + +It is also possible to interact with the clipping plane directly in 3D +view using the mouse. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_scaling.png + :align: center + +**Scaling** - represents objects deformed (stretched or stuffed) +along the axes of coordinates. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_graduated_axes.png + :align: center + +**Graduated axes** - allows to define axes parameters and graduate +them. + +.. image:: ../images/graduatedaxes2.png + :align: center + +- **Axis name** - if checked the axis name is displayed in the viewer. + + - **Name** - allows to redefine the axis name. + + - **Font** - allows to define the font color of the axis name. + +- **Labels** - if checked the labels are displayed in the viewer. + + - **Number** - allows to define the number of labels. + + - **Offset** - allows to define the distance between axis and labels. + + - **Font** - allows to define the font color of labels names. + +- **Tick marks** - if checked the tick marks are displayed in the viewer. + + - **Length** - allows to define the length of tick marks. + +- **Is visible** - if checked the graduated axes are displayed in the viewer. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_ambient.png + :align: center + +**Toggle ambient light** - toggle "keep only ambient light" flag +on/off. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_minimized.png + :align: center + +| + +.. image:: ../../../../src/OCCViewer/resources/occ_view_maximized.png + :align: center + +**Minimize/Maximize** - these buttons allow switching the current +view area to the minimized / maximized state. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_return_3d_view.png + :align: center + +**Return to 3D** - this button switches from 2D view projection back to the 3D view mode. + +____ + +.. image:: ../images/occ_view_sync.png + :align: center + +**Synchronize view** - allows to synchronize 3d view +parameters. This button has two states - checked and +unchecked. Clicking on this button opens a drop-down menu listing the +compatible 3d views. As soon as the user selects any view from the +list, the parameters (view point, position, zoom coefficient, etc.) of +the current view are synchronized with the selected view (static +synchronization). + +In addition, when this button is in the "checked" state, the dynamic +synchronization of the views is performed, i.e. any zoom, pan, rotate +or other view operation done in one view is automatically applied to +the other view. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_ray_tracing.png + :align: center + +.. _ray_tracing: + +Ray tracing +=========== + +**Ray tracing** - allows to switch between rendering methods in run-time +in the current OCCT 3D view. It can be used to produce images with photorealistic quality. + +.. image:: ../images/doc_ray_tracing.png + :align: center + +- **Ray tracing** - specifies rendering mode: OpenGL rasterization (by default) or GPU ray-tracing. + + - **Depth** - defines maximum ray-tracing depth. + + - **Specular reflections** - enables/disables specular reflections. + + - **Adaptive anti-aliasing** - enables/disables adaptive anti-aliasing. + + - **Shadows rendering** - enables/disables shadows rendering. + + - **Transparent shadow** - enables/disables light propagation through transparent media. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_env_texture.png + :align: center + +.. _env_texture: + +Environment texture +################### + +**Environment texture** - allows to set parameters for environment texture. +This is a special mode of texture mapping when specular reflection of environment texture +is simulated by OpenGL using a special texture coordinates generation algorithm (a sphere map). + +.. image:: ../images/doc_env_texture.png + :align: center + +- **Environment texture** - enables/disables environment texture in the current OCCT 3D view. + +User can select one of 7 predefined environment texture from the list or define its texture from file by +choosing item **"Custom..."** in a combo box. + +.. note:: + Environment texture file should normally satisfy the following requirements in order to produce good visual result: + * The image file should have 2:1 width-to-height ratio. + * It should constitute a 360-degrees panoramic image created using a fish-eye lens. + +____ + +.. image:: ../../../../src/OCCViewer/resources/occ_view_light_source.png + :align: center + +.. _light_source: + +Light source +============ + +**Light source** - allows to set parameters for light source. + +It's possible to choose a type of light source between directional and positional light. + +.. image:: ../images/doc_dir_light_source.png + :align: center + +**Directional** light - creates a directional light source in the viewer. +It is defined by direction coordinates, color and headlight parameter. + +.. image:: ../images/doc_pos_light_source.png + :align: center + +**Positional** light - creates an isolated light source X,Y,Z in the viewer. +It is also defined by the color and headlight parameter. + +Click: + +- **Apply and Close** to apply defined light source to the OCC 3D Viewer. + +- **Default** to restore default values of light source. + +- **Close** to return parameters of light source on initial values. + + + diff --git a/doc/salome/gui/input/plot2d_viewer.doc b/doc/salome/gui/input/plot2d_viewer.doc deleted file mode 100644 index 823c8cf49..000000000 --- a/doc/salome/gui/input/plot2d_viewer.doc +++ /dev/null @@ -1,245 +0,0 @@ -/*! - -\page plot2d_viewer_page Plot 2D viewer - -The functionalities of Plot2d viewer are available via its Viewer -Toolbar. Buttons marked with small downward triangles have extended -functionality which can be accessed by locking on them with left mouse -button. - -\image html plot2dviewer_toolbar.png -
- -\image html plot2d_camera_dump.png - -Dump View - exports an object from the viewer in -bmp, png or jpeg image format. -
- -\image html plot2d_fitall.png -Fit all - scales the display to show the entire scene. Use this -to resize the scene so that it could fit within the Viewer boundary. -
- -\image html plot2d_fitarea.png - -Fit area - resizes the view to place in the visible area only -the contents of a frame drawn with pressed left mouse button. -
- -\image html plot2d_zoom.png - -Zoom - allows to zoom in and out. -
- -\image html plot2d_pan.png - -\b Panning - if the represented objects are greater that the visible -area and you don't wish to use Fit all functionality, click on this -button and you'll be able to drag the scene to see its remote parts. -
- -\image html plot2d_glpan.png - -Global panning - allows to define the center of the scene -presenting all displayed objects in the visible area. -
- -\image html plot2d_points.png - -Draw Points - switches display mode to \em Points. In -this mode, each curve is displayed as a set of points. -
- -\image html plot2d_lines.png - -Draw Lines - switches display mode to \em Lines. In this -mode, each curve is represented as a set of plain line segments. -
- -\image html plot2d_splines.png - -Draw Splines - switches display mode to \em Splines. In -this mode, each curve is represented as a spline. -
- -\image html plot2d_lmin_normalization.png - -Normalization to global minimum by left Y axis - switches -normalization mode to Left Y Axis: Minimum normalization. -In this mode, all curves are normalized to the global minimum by the left Y axis. - -\image html plot2d_lmax_normalization.png - -Normalization to global maximum by left Y axis - switches -normalization mode to Left Y Axis: Maximum normalization. -In this mode, all curves are normalized to the global maximum by the left Y axis. -
- -\image html plot2d_rmin_normalization.png - -Normalization to global minimum by right Y axis - switches -normalization mode to Right Y Axis: Minimum normalization. -In this mode, all curves are normalized to the global minimum by -the right Y axis. - -\image html plot2d_rmax_normalization.png - -Normalization to global maximum by right Y axis - switch -normalization mode to Right Y Axis: Maximum normalization. -In this mode, all curves are normalized to the global maximum by -the right Y axis. -
- -\image html plot2d_linear.png -\image html plot2d_log.png - -These buttons allow to switch horizontal axis scale to the linear or -logarithmic mode. - -\note The logarithmic mode of the horizontal -axis scale is allowed only if the minimum value of abscissa component -of displayed points is greater than zero. - -
- -\image html plot2d_linear_y.png -\image html plot2d_log_y.png - -These buttons allow to switch vertical axis scale to the linear or -logarithmic mode. - -\note The logarithmic mode of the vertical -axis scale is allowed only if the minimum value of ordinate component -of displayed points is greater than zero. - -
- -\image html plot2d_legend.png - -Show Legend - Shows / hides information about the displayed -objects in a legend. -
- -\image html plot2d_settings.png - -\b Settings - provides an access to the settings dialog box, that -allows to specify advanced parameters for the Plot 2d Viewer. - -\anchor settings -\image html plot2d_view_settings.png - -The following options are available: - -- Main title is the XY plot title. By default, it contains the names of tables, from which the curve - lines are constructed. - -- Curve type allows selecting from \em Points, \em Lines or \em Spline. - -- Marker size - size of the points (markers) forming curve lines. - -- Background color of the XY plot. - -- Selection color - defines the color of selected object in the viewer. - -- Legend specifies the legend properties. - - - Show legend - specifies if the legend is shown by default. - - - Legend Position allows positioning the - description table on XY plot (to the \em Left, to the \em Right, - on \em Top or on \em Bottom). - - - Symbol type allows positioning the legend item symbol: "Marker on line" or "Marker above line". - - - Legend font allows setting font variant, size and style for legend items. - - - Legend font color allows selecting the font color for legend items. - - - Highlighted legend font color allows selecting font color for selected legend items. - -- Deviation marker specifies the properties of the marker, which is used for drawing deviations data. - - - Line width line width of the marker. - - - Tick size size of the upper and lower horizontal lines of the marker. - - - Color color of the marker. - -- Normalization allows selecting the type of - normalization (\em minimum or/and \em maximum) for the displayed - presentations of 2d curves in the view. - -- Scale mode allows selecting the type of scaling (\em Linear - or \em Logarithmic) for X (Horizontal) or Y (Vertical) - axes separately. Note that the \em Logarithmic scale can be used - only if the minimum value of corresponding component (abscissa or - ordinate) of all points displayed in the viewer is greater than - zero. - -- Axis ... options group allows specifying additional settings - for each axis separately: - - - Axis title - an axis title. - - - Grid / Axes marks allows defining the maximum number - of major and minor scale divisions for a given axis. The real - number of intervals fits to {1,2,5}*10^N, where N is a natural - number, and does not exceed the maximum. - -- Save settings as default If this check box is marked, all XY - plots will be displayed with these defined properties. - -
- -\anchor analytical_curve -\image html plot2d_analytical_curve.png - -Analytical curves - provides an access to the analytical curves -dialog box that allows to add, remove and modify analytical curves -for the Plot 2d Viewer. - -\image html analytical_curves_dlg.png - -The options are as follows: - -- Curve parameters: - - - y(x)= allows specifying a python expression, which is used to - calculate the coordinates of the curve points, where x - corresponds to the horizontal range, shown in plot 2D viewer. - - - Nb. itervals allows specifying the number of the curve points. - -- Curve properties: - - - Auto assign if checked, the properties - (Line type, Line width, Marker type and - Color) are assigned to curves automatically. To define - the curve properties manually, uncheck this control. - - - Line type allows to choose curve line type from \em None, - \em Solid, \em Dash, \em Dot, Dash - Dot and - Dash - Dot - Dot. - - - Line width allows to specify line width of the curve. - - - Marker type allows to choose curve marker type from - \em Circle, \em Rectangle, \em Diamond, Rightward Triangle, - Leftward Triangle, Downward Triangle, - Upward Triangle, \em Cross and Diagonal Cross). - - - Color allows specifying the curve color. - -
- -\image html plot2d_clone.png - -Clone view - opens a new duplicate scene. -
- -\image html plot2d_print.png - -Print view - prints the current view scene. - -*/ diff --git a/doc/salome/gui/input/plot2d_viewer.rst b/doc/salome/gui/input/plot2d_viewer.rst new file mode 100755 index 000000000..080ffe94b --- /dev/null +++ b/doc/salome/gui/input/plot2d_viewer.rst @@ -0,0 +1,319 @@ +.. _plot2d_viewer_page: + +************** +Plot 2D viewer +************** + +The functionalities of Plot2d viewer are available via its Viewer +Toolbar. Buttons marked with small downward triangles have extended +functionality which can be accessed by locking on them with left mouse +button. + +.. image:: ../images/plot2dviewer_toolbar.png + :align: center + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_camera_dump.png + :align: center + +**Dump View** - exports an object from the viewer in +bmp, png or jpeg image format. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_fitall.png + :align: center + +**Fit all** - scales the display to show the entire scene. Use this +to resize the scene so that it could fit within the Viewer boundary. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_fitarea.png + :align: center + +**Fit area** - resizes the view to place in the visible area only +the contents of a frame drawn with pressed left mouse button. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_zoom.png + :align: center + +**Zoom** - allows to zoom in and out. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_pan.png + :align: center + +**Panning** - if the represented objects are greater that the visible +area and you don't wish to use Fit all functionality, click on this +button and you'll be able to drag the scene to see its remote parts. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_glpan.png + :align: center + +**Global panning** - allows to define the center of the scene +presenting all displayed objects in the visible area. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_points.png + :align: center + +**Draw Points** - switches display mode to *Points*. In +this mode, each curve is displayed as a set of points. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_lines.png + :align: center + +**Draw Lines** - switches display mode to *Lines*. In this +mode, each curve is represented as a set of plain line segments. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_splines.png + :align: center + +**Draw Splines** - switches display mode to *Splines*. In +this mode, each curve is represented as a spline. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_lmin_normalization.png + :align: center + +**Normalization to global minimum by left Y axis** - switches +normalization mode to **Left Y Axis: Minimum normalization**. +In this mode, all curves are normalized to the global minimum by the left Y axis. + +.. image:: ../../../../src/Plot2d/resources/plot2d_lmax_normalization.png + :align: center + +**Normalization to global maximum by left Y axis** - switches +normalization mode to **Left Y Axis: Maximum normalization**. +In this mode, all curves are normalized to the global maximum by the left Y axis. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_rmin_normalization.png + :align: center + +**Normalization to global minimum by right Y axis** - switches +normalization mode to **Right Y Axis: Minimum normalization**. +In this mode, all curves are normalized to the global minimum by +the right Y axis. + +.. image:: ../../../../src/Plot2d/resources/plot2d_rmax_normalization.png + :align: center + +**Normalization to global maximum by right Y axis** - switch +normalization mode to **Right Y Axis: Maximum normalization**. +In this mode, all curves are normalized to the global maximum by +the right Y axis. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_linear.png + :align: center + +| + +.. image:: ../../../../src/Plot2d/resources/plot2d_log.png + :align: center + +These buttons allow to switch horizontal axis scale to the linear or +logarithmic mode. + +.. note:: + The logarithmic mode of the horizontal axis scale is allowed only if the minimum value of abscissa component of displayed points is greater than zero. + + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_linear_y.png + :align: center + +| + +.. image:: ../../../../src/Plot2d/resources/plot2d_log_y.png + :align: center + +These buttons allow to switch vertical axis scale to the linear or +logarithmic mode. + +.. note:: + The logarithmic mode of the vertical axis scale is allowed only if the minimum value of ordinate component of displayed points is greater than zero. + + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_legend.png + :align: center + +**Show Legend** - Shows / hides information about the displayed +objects in a legend. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_settings.png + :align: center + +**Settings** - provides an access to the settings dialog box, that +allows to specify advanced parameters for the Plot 2d Viewer. + +.. _settings: + +Settings +======== + +.. image:: ../images/plot2d_view_settings.png + :align: center + +The following options are available: + +- **Main title** is the XY plot title. By default, it contains the names of tables, from which the curve + lines are constructed. + +- **Curve type** allows selecting from *Points*, *Lines* or *Spline*. + +- **Marker size** - size of the points (markers) forming curve lines. + +- **Background color** of the XY plot. + +- **Selection color** - defines the color of selected object in the viewer. + +- **Legend** specifies the legend properties. + + - **Show legend** - specifies if the legend is shown by default. + + - **Legend Position** allows positioning the description table on XY plot (to the *Left*, to the *Right*, on *Top* or on *Bottom*). + + - **Symbol type** allows positioning the legend item symbol: "Marker on line" or "Marker above line". + + - **Legend font** allows setting font variant, size and style for legend items. + + - **Legend font color** allows selecting the font color for legend items. + + - **Highlighted legend font color** allows selecting font color for selected legend items. + +- **Deviation marker** specifies the properties of the marker, which is used for drawing deviations data. + + - **Line width** line width of the marker. + + - **Tick size** size of the upper and lower horizontal lines of the marker. + + - **Color** color of the marker. + +- **Normalization** allows selecting the type of + normalization (*minimum* or/and *maximum*) for the displayed + presentations of 2d curves in the view. + +- **Scale mode** allows selecting the type of scaling (*Linear* + or *Logarithmic*) for **X (Horizontal)** or **Y (Vertical)** + axes separately. Note that the *Logarithmic* scale can be used + only if the minimum value of corresponding component (abscissa or + ordinate) of all points displayed in the viewer is greater than + zero. + +- **Axis ...** options group allows specifying additional settings + for each axis separately: + + - **Axis title** - an axis title. + + - **Grid / Axes marks** allows defining the maximum number + of major and minor scale divisions for a given axis. The real + number of intervals fits to {1,2,5}*10^N, where N is a natural + number, and does not exceed the maximum. + +- **Save settings as default** If this check box is marked, all XY + plots will be displayed with these defined properties. + + +____ + + +.. _analytical_curve: + +Analytical curves +================= + +.. image:: ../../../../src/Plot2d/resources/plot2d_analytical_curve.png + :align: center + +**Analytical curves** - provides an access to the analytical curves +dialog box that allows to add, remove and modify analytical curves +for the Plot 2d Viewer. + +.. image:: ../images/analytical_curves_dlg.png + :align: center + +The options are as follows: + +- Curve parameters: + + - **y(x)=** allows specifying a python expression, which is used to + calculate the coordinates of the curve points, where **x** + corresponds to the horizontal range, shown in plot 2D viewer. + + - **Nb. itervals** allows specifying the number of the curve points. + +- Curve properties: + + - **Auto assign** if checked, the properties + (*Line type*, *Line width*, *Marker type* and + *Color*) are assigned to curves automatically. To define + the curve properties manually, uncheck this control. + + - **Line type** allows to choose curve line type from *None*, + *Solid*, *Dash*, *Dot*, *Dash - Dot* and + *Dash - Dot - Dot*. + + - **Line width** allows to specify line width of the curve. + + - **Marker type** allows to choose curve marker type from + *Circle*, *Rectangle*, *Diamond*, *Rightward Triangle*, + *Leftward Triangle*, *Downward Triangle*, + *Upward Triangle*, *Cross* and *Diagonal Cross*). + + - **Color** allows specifying the curve color. + + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_clone.png + :align: center + +**Clone view** - opens a new duplicate scene. + +____ + + +.. image:: ../../../../src/Plot2d/resources/plot2d_print.png + :align: center + +**Print view** - prints the current view scene. + + diff --git a/doc/salome/gui/input/python_viewer.doc b/doc/salome/gui/input/python_viewer.doc deleted file mode 100644 index 2120f037a..000000000 --- a/doc/salome/gui/input/python_viewer.doc +++ /dev/null @@ -1,97 +0,0 @@ -/*! - -\page python_viewer_page Python viewer - -The functionalities of Python viewer are available via its Toolbar. - -\image html pythonviewer_toolbar.png -
- -\image html python_new.png - -New - clears the viewer to create a new script. If viewer was modified, you will be asked to close it before removing. -
- -\image html python_open.png -Open - allows opening an existing script by browsing for it in a standard Open File dialog box, choosing the required .py file and clicking \b Open button. If there is an already opened script, you will be asked to close it before opening new one. -
- -\image html python_save.png - -Save - saves the current script. - -\note If the script has not been previously saved, Save calls the standard Save File dialog, where you can enter the script name and save it. - -
- -\image html python_saveas.png - -Save As... - allows saving the current script with a new name. Input a new name for the script in the standard Save file as dialog box and click \b Save button. -
- -\image html python_undo.png - -Undo - undoes the last action in Python viewer. -
- -\image html python_redo.png - -Redo - redoes the previously undone action in Python viewer. -
- -\image html python_cut.png - -Cut - saves the selected text into the clipboard and removes it from the viewer. -
- -\image html python_copy.png - -Copy - saves the selected text into the clipboard. -
- -\image html python_paste.png - -Paste - restores the saved text from the clipboard. -
- -\image html python_delete.png - -Delete - removes the selected text. -
- -\image html python_selectall.png - -Select All - selects the whole text. -
- -\image html python_preferences.png - -Preferences - provides access to the preferences dialog box, that allows specifying advanced parameters for the Python Viewer. - -\anchor custom_python_preferences -\image html python_view_preferences.png - -The following options are available: - -- Font settings allows setting font variant and its size. - -- Display settings specifies the script representation in the viewer: - - - Enable current line highlight switches on background coloring of the current line. - - Enable text wrapping wraps lines at the view border of the editor. - - Center cursor on scroll scrolls the script vertically to make the cursor visible at the center of the viewer. - - Display line numbers area shows a panel with line numbers of the script at the left border of the editor. - -- Tab settings allows displaying tab indentation as a certain number of white-spaces. - -- Vertical edge settings manages drawing of a vertical line at the specified column of the viewer. - -- Save settings as default button stores the applied Python viewer settings in the SALOME preferences .xml file. The settings will be restored in the current and next SALOME sessions. - -The buttons in in the bottom part of dialog box peform the following actions: -- \b OK button applies preferences to the editor; -- \b Cancel button rejects changes; -- \b Defaults button restores preferences from applicaion's defaults; -- \b Help button opens Help browser. - -*/ diff --git a/doc/salome/gui/input/python_viewer.rst b/doc/salome/gui/input/python_viewer.rst new file mode 100755 index 000000000..0d0c1e74f --- /dev/null +++ b/doc/salome/gui/input/python_viewer.rst @@ -0,0 +1,143 @@ +.. _python_viewer_page: + +************* +Python viewer +************* + +The functionalities of Python viewer are available via its Toolbar. + +.. image:: ../images/pythonviewer_toolbar.png + :align: center + +____ + + +.. image:: ../images/python_new.png + :align: center + +**New** - clears the viewer to create a new script. If viewer was modified, you will be asked to close it before removing. + +____ + + +.. image:: ../images/python_open.png + :align: center + +**Open** - allows opening an existing script by browsing for it in a standard **Open File** dialog box, choosing the required .py file and clicking **Open** button. If there is an already opened script, you will be asked to close it before opening new one. + +____ + + +.. image:: ../images/python_save.png + :align: center + +**Save** - saves the current script. + +.. note:: + If the script has not been previously saved, Save calls the standard **Save File** dialog, where you can enter the script name and save it. + + +____ + + +.. image:: ../images/python_saveas.png + :align: center + +**Save As...** - allows saving the current script with a new name. Input a new name for the script in the standard **Save file as ** dialog box and click **Save** button. + +____ + + +.. image:: ../images/python_undo.png + :align: center + +**Undo** - undoes the last action in Python viewer. + +____ + + +.. image:: ../images/python_redo.png + :align: center + +**Redo** - redoes the previously undone action in Python viewer. + +____ + + +.. image:: ../images/python_cut.png + :align: center + +**Cut** - saves the selected text into the clipboard and removes it from the viewer. + +____ + + +.. image:: ../images/python_copy.png + :align: center + +**Copy** - saves the selected text into the clipboard. + +____ + + +.. image:: ../images/python_paste.png + :align: center + +**Paste** - restores the saved text from the clipboard. + +____ + + +.. image:: ../images/python_delete.png + :align: center + +**Delete** - removes the selected text. + +____ + + +.. image:: ../images/python_selectall.png + :align: center + +**Select All** - selects the whole text. + +____ + + +.. image:: ../images/python_preferences.png + :align: center + +**Preferences** - provides access to the preferences dialog box, that allows specifying advanced parameters for the Python Viewer. + +.. _custom_python_preferences: + +Custom Python preferences +========================= + +.. image:: ../images/python_view_preferences.png + :align: center + +The following options are available: + +- **Font settings** allows setting font variant and its size. + +- **Display settings** specifies the script representation in the viewer: + + - **Enable current line highlight** switches on background coloring of the current line. + - **Enable text wrapping** wraps lines at the view border of the editor. + - **Center cursor on scroll** scrolls the script vertically to make the cursor visible at the center of the viewer. + - **Display line numbers area** shows a panel with line numbers of the script at the left border of the editor. + +- **Tab settings** allows displaying tab indentation as a certain number of white-spaces. + +- **Vertical edge settings** manages drawing of a vertical line at the specified column of the viewer. + +- **Save settings as default** button stores the applied Python viewer settings in the SALOME preferences .xml file. The settings will be restored in the current and next SALOME sessions. + +The buttons in in the bottom part of dialog box peform the following actions: +- **OK** button applies preferences to the editor; +- **Cancel** button rejects changes; +- **Defaults** button restores preferences from applicaion's defaults; +- **Help** button opens Help browser. + + diff --git a/doc/salome/gui/input/qxscene_2d_viewer.doc b/doc/salome/gui/input/qxscene_2d_viewer.doc deleted file mode 100644 index 08cc74db9..000000000 --- a/doc/salome/gui/input/qxscene_2d_viewer.doc +++ /dev/null @@ -1,54 +0,0 @@ -/*! - -\page qxscene_2d_viewer_page QxScene 2D Viewer - -

Operations

- -The functionalities of QxScene viewer are available via its Viewer -Toolbar. Buttons marked with small downward triangles have extended -functionality which can be accessed by locking on them with left mouse -button. - -\image html qxviewer_toolbar.png -
- -\image html qx_view_fitall.png - -Fit all - scales the presentation so that it could fit within -the Viewer boundaries. -
- -\image html qx_view_fitarea.png - -Fit area - resizes the view to place in the visible area only -the contents of a frame drawn with pressed left mouse button. -
- -\image html qx_view_zoom.png - -Zoom - allows to zoom in and out. -
- -\image html qx_view_pan.png - -Panning - if the represented objects are greater that the -visible area and you don't wish to use Fit all functionality, -click on this button and you'll be able to drag the scene to see its -remote parts. -
- -\image html qx_view_glpan.png - -Global panning - allows to select a point to be the center of -the presentation showing all displayed objects in the visible ares. -
- -\image html qx_view_reset.png - -Reset - restores the default position the scene. -
- -For more details about QxScene viewer, refer to the SALOME YACS module -User's guide. - -*/ diff --git a/doc/salome/gui/input/qxscene_2d_viewer.rst b/doc/salome/gui/input/qxscene_2d_viewer.rst new file mode 100755 index 000000000..d35dbe500 --- /dev/null +++ b/doc/salome/gui/input/qxscene_2d_viewer.rst @@ -0,0 +1,77 @@ +.. _qxscene_2d_viewer_page: + +***************** +QxScene 2D Viewer +***************** + +Operations +########## + +The functionalities of QxScene viewer are available via its Viewer +Toolbar. Buttons marked with small downward triangles have extended +functionality which can be accessed by locking on them with left mouse +button. + +.. image:: ../images/qxviewer_toolbar.png + :align: center + +____ + + +.. image:: ../../../../src/QxScene/resources/qx_view_fitall.png + :align: center + +**Fit all** - scales the presentation so that it could fit within +the Viewer boundaries. + +____ + + +.. image:: ../../../../src/QxScene/resources/qx_view_fitarea.png + :align: center + +**Fit area** - resizes the view to place in the visible area only +the contents of a frame drawn with pressed left mouse button. + +____ + + +.. image:: ../../../../src/QxScene/resources/qx_view_zoom.png + :align: center + +**Zoom** - allows to zoom in and out. + +____ + + +.. image:: ../../../../src/QxScene/resources/qx_view_pan.png + :align: center + +**Panning** - if the represented objects are greater that the +visible area and you don't wish to use **Fit all** functionality, +click on this button and you'll be able to drag the scene to see its +remote parts. + +____ + + +.. image:: ../../../../src/QxScene/resources/qx_view_glpan.png + :align: center + +**Global panning** - allows to select a point to be the center of +the presentation showing all displayed objects in the visible ares. + +____ + + +.. image:: ../../../../src/QxScene/resources/qx_view_reset.png + :align: center + +**Reset** - restores the default position the scene. + +____ + + +For more details about QxScene viewer, refer to the **Help > User's guide > YACS module**. + + diff --git a/doc/salome/gui/input/salome_desktop.doc b/doc/salome/gui/input/salome_desktop.doc deleted file mode 100644 index 2eb5ffd46..000000000 --- a/doc/salome/gui/input/salome_desktop.doc +++ /dev/null @@ -1,89 +0,0 @@ -/*! - -\page salome_desktop_page SALOME desktop - -SALOME applies Single Document Interface (SDI) approach. Only one -\ref study_management_page "study (document)" can be opened at any given moment. - -The front-end of the application is a single Desktop top-level window -that embeds all GUI operations. The desktop window provides access to standard GUI elements, -such as viewers, main menu, toolbars, dockable windows, dialog boxes, etc. - -The main elements of the SALOME Desktop are represented on the picture below: - -\image html desktop.png - -The main parts of the SALOME Desktop are: -- Main menu - This is a set of context-sensitive menus -updated according to the functionality of the currently active component. In -general, these menus contain all functional options of SALOME platform. -- Standard toolbar - contains standard actions -that allow creating new or opening existing study, saving study, deleting -objects, etc. -- Components toolbar - allows activating -components in SALOME platform. -- Module toolbars - contain actions specific to the -currently active module. -- Viewer toolbar - provides a set of tools destined for visualization -of the presentations in the viewer. - -All toolbars in the \b SALOME Platform are context-sensitive. Loading of a definite component -(Geometry, Mesh etc.) will automatically add some additional -toolbars specific to this component. To display/hide a toolbar, in the main menu choose View > Toolbars, and from this submenu check or uncheck the toolbar that you would like to display/hide. - -By default all toolbars are located on top of the SALOME desktop, but you can relocate a toolbar by dragging it with the mouse and dropping in any place of the window. - -Parts of the study window: -- Object browser - Management of objects created or imported into -SALOME application. -- \b Viewer - This window is destined for visualization of -presentations. -- Python console - Window for Python interpreter. This window -functions like a standard document: the pop-up menu invoked by -right-click in this window gives access to -Copy/Paste/SelectAll/ClearAll options. - -Object Browser, Python Console, MenuBar, etc are, in fact, separate dockable windows. -Dockable windows can be placed in special areas, on the borders of -desktop like toolbars. You can change the size and the position of -dockable windows, hide them or even place outside desktop. SALOME -saves in the same file all positions and sizes of dockable windows. It -means that the difference in settings of the same windows (for example -Python console) is possible between different modules (the same window -can have different size and position when other module is -activated). Also each module can indicate which common windows are -necessary for working, and only they will be displayed when this -module is active. - -All parts of Salome desktop and study window can be managed through \b View menu. - -\image html viewmenu.png - -- \b Toolbars - allows to show and hide toolbars. -- \b Windows - allows to show and hide dockable windows, such as -Object Browser and Python Console. -- Status Bar allows showing and hiding the Status Bar. -- \ref themes_page "Theme" - allows to select and edit the style (colors and fonts) for Salome session. - -If there are several viewer windows in your current study and you want to display more then one at the same time, you can use the functionalities provided by the \b Window menu. - -\image html windowmenu.png - -- New window - allows to open a new instance of any viewer. -- Close - closes the currently active viewer window. -- Close all - closes all viewer windows. -- Group all - arranges all created viewer windows on the same desktop. -- Arrange Views - allows choosing the necessary views and their layout (see image below). - - The radio-buttons in Views Layout section allow choosing the number of views to be arranged (2, 3 or 4). The buttons with images allow choosing the view layout (depending on the chosen number of views). - - Views List contains the list of opened view windows, where it is possible to check in the necessary views. - - Close the remaining views check-box allows closing all non-selected views. - - Stack the remaining views check-box allows stacking all non-selected views in the last tab area. - -\image html arrange_views_dlg.png - -- Split Vertically and Split Horizontally allow splitting -the representation area into two parts, in horizontal or vertical direction. -- List of all opened viewer windows provides fast access to them. -- \b Rename - allows renaming the currently selected viewer window. - -*/ diff --git a/doc/salome/gui/input/salome_desktop.rst b/doc/salome/gui/input/salome_desktop.rst new file mode 100755 index 000000000..742de2218 --- /dev/null +++ b/doc/salome/gui/input/salome_desktop.rst @@ -0,0 +1,84 @@ +.. _salome_desktop_page: + +************** +SALOME desktop +************** + +SALOME applies **Single Document Interface** (SDI) approach. Only one +:ref:`study_management_page` "study (document)" can be opened at any given moment. + +The front-end of the application is a single Desktop top-level window +that embeds all GUI operations. The desktop window provides access to standard GUI elements, +such as viewers, main menu, toolbars, dockable windows, dialog boxes, etc. + +The main elements of the SALOME Desktop are represented on the picture below: + +.. image:: ../images/desktop.png + :align: center + +The main parts of the SALOME Desktop are: + +* **Main menu** - This is a set of context-sensitive menus updated according to the functionality of the currently active component. In general, these menus contain all functional options of SALOME platform. +* **Standard toolbar** - contains standard actions that allow creating new or opening existing study, saving study, deleting objects, etc. +* **Components toolbar** - allows activating components in SALOME platform. +* **Module toolbars** - contain actions specific to the currently active module. +* **Viewer toolbar** - provides a set of tools destined for visualization of the presentations in the viewer. + +All toolbars in the **SALOME** Platform are context-sensitive. Loading of a definite component +(Geometry, Mesh etc.) will automatically add some additional +toolbars specific to this component. To display/hide a toolbar, in the main menu choose **View > Toolbars**, and from this submenu check or uncheck the toolbar that you would like to display/hide. + +By default all toolbars are located on top of the SALOME desktop, but you can relocate a toolbar by dragging it with the mouse and dropping in any place of the window. + +Parts of the study window: + +* **Object browser** - Management of objects created or imported into SALOME application. +* **Viewer** - This window is destined for visualization of presentations. +* **Python console** - Window for Python interpreter. This window functions like a standard document: the pop-up menu invoked by right-click in this window gives access to **Copy/Paste/SelectAll/ClearAll** options. + +Object Browser, Python Console, MenuBar, etc are, in fact, separate dockable windows. +Dockable windows can be placed in special areas, on the borders of +desktop like toolbars. You can change the size and the position of +dockable windows, hide them or even place outside desktop. SALOME +saves in the same file all positions and sizes of dockable windows. It +means that the difference in settings of the same windows (for example +Python console) is possible between different modules (the same window +can have different size and position when other module is +activated). Also each module can indicate which common windows are +necessary for working, and only they will be displayed when this +module is active. + +All parts of Salome desktop and study window can be managed through **View** menu. + +.. image:: ../images/viewmenu.png + :align: center + +- **Toolbars** - allows to show and hide toolbars. +- **Windows** - allows to show and hide dockable windows, such as Object Browser and Python Console. +- **Status Bar** allows showing and hiding the Status Bar. +- :ref:`themes_page` - allows to select and edit the style (colors and fonts) for Salome session. + +If there are several viewer windows in your current study and you want to display more then one at the same time, you can use the functionalities provided by the **Window** menu. + +.. image:: ../images/windowmenu.png + :align: center + +- **New window** - allows to open a new instance of any viewer. +- **Close** - closes the currently active viewer window. +- **Close all** - closes all viewer windows. +- **Group all** - arranges all created viewer windows on the same desktop. +- **Arrange Views** - allows choosing the necessary views and their layout (see image below). + + - The radio-buttons in **Views Layout** section allow choosing the number of views to be arranged (2, 3 or 4). The buttons with images allow choosing the view layout (depending on the chosen number of views). + - **Views List** contains the list of opened view windows, where it is possible to check in the necessary views. + - **Close the remaining views** check-box allows closing all non-selected views. + - **Stack the remaining views** check-box allows stacking all non-selected views in the last tab area. + +.. image:: ../images/arrange_views_dlg.png + :align: center + +- **Split Vertically** and **Split Horizontally** allow splitting the representation area into two parts, in horizontal or vertical direction. +- List of all opened viewer windows provides fast access to them. +- **Rename** - allows renaming the currently selected viewer window. + + diff --git a/doc/salome/gui/input/select_color_and_font.doc b/doc/salome/gui/input/select_color_and_font.doc deleted file mode 100644 index 4e6e6258e..000000000 --- a/doc/salome/gui/input/select_color_and_font.doc +++ /dev/null @@ -1,32 +0,0 @@ -/*! - -\page select_color_and_font_page Select Color and Font - -\anchor select_color_dlg -Select Color and Select Font menus are used in many -Preferences. - -

Select color

- -\image html selectcolor.png - -This menu allows to choose from either predefined Basic Colors -grouped in the upper left corner of the window or Custom Colors, which -you can define yourselves. To define a Custom Color, click on one of -the Custom Color cells, select the color you need in the field of -colors or by typing in its numeric parameters in the lower right -corner of the window, then click Add to Custom Colors button. The -chosen color will be added to Custom Colors table. - -\anchor font_color_dlg -

Select font

- -\image html selectfont.png - -This menu provides a wide choice of \b Fonts, Font Styles and -\b Sizes. Characters can be underlined or struck out. It is possible to -preview them in the \b Sample window. \b Script dialog-box gives the -possibility to use not only Latin and Latin Extended but also -Cyrillic, Greek, Arabic, Runic and many other subsets. - -*/ diff --git a/doc/salome/gui/input/select_color_and_font.rst b/doc/salome/gui/input/select_color_and_font.rst new file mode 100755 index 000000000..c7f0717d0 --- /dev/null +++ b/doc/salome/gui/input/select_color_and_font.rst @@ -0,0 +1,43 @@ +.. _select_color_and_font_page: + +********************* +Select Color and Font +********************* + +.. _select_color_dlg: + +Select Color Dialog +=================== + +**Select Color** and **Select Font** menus are used in many +Preferences. + +Select color +############ + +.. image:: ../images/selectcolor.png + :align: center + +This menu allows to choose from either predefined **Basic Colors** +grouped in the upper left corner of the window or **Custom Colors**, which +you can define yourselves. To define a Custom Color, click on one of +the Custom Color cells, select the color you need in the field of +colors or by typing in its numeric parameters in the lower right +corner of the window, then click **Add to Custom Colors** button. The +chosen color will be added to **Custom Colors** table. + +.. _font_color_dlg: + +Select font +########### + +.. image:: ../images/selectfont.png + :align: center + +This menu provides a wide choice of **Fonts**, **Font Styles** and +**Sizes**. Characters can be underlined or struck out. It is possible to +preview them in the **Sample** window. **Script** dialog-box gives the +possibility to use not only Latin and Latin Extended but also +Cyrillic, Greek, Arabic, Runic and many other subsets. + + diff --git a/doc/salome/gui/input/setting_preferences.doc b/doc/salome/gui/input/setting_preferences.doc deleted file mode 100644 index 9fc1772b2..000000000 --- a/doc/salome/gui/input/setting_preferences.doc +++ /dev/null @@ -1,425 +0,0 @@ -/*! - -\page setting_preferences_page Setting Preferences - -All user preferences of \b SALOME application can be customized using the -common \b Preferences dialog box. This dialog can be open using the -File > Preferences... menu item. - -The \b Preferences dialog box consists of two parts: -- Available preferences sections are listed in the left part of the dialog -box; usually this list contains "SALOME" item that specifies general -application preferences and a separate section for each SALOME module -available in the current session. -- The tabbed widget at the right side of the dialog box provides -controls that can be used to customize the preferences. - -\note The preferences for modules become accessible only after -explicit loading of these modules. Until then the dialog box will -show the corresponding warning message. - -More detailed information about preferences for certain modules can be found in the User's guide of the corresponding module. - -General application preferences are specified in the \b SALOME section -of the \b Preferences dialog box. These preferences affect on the -application look-n-feel and common functionality. - -If the study has just been started and other -modules have not been loaded yet, it will be possible to change only the settings which refer to -the whole GUI SALOME session. - -

General Preferences

- -\image html pref_salome_general.png - -- Language - - Current language - the language used by the application - GUI. The language change will come in force only after the application is restarted. - - Use C locale - when checked, the C locale will be set for the application, - otherwise a system locale will be used. The locale change will come in force only after - the application is restarted. -- Look and feel - - Show splash screen at start-up - allows showing or hiding the splash screen at start-up. - - Opaque resize - force opaque resize mode for viewers area (tabbed workspace). - Clear this checkbox for less perfomant workstations. - - Drop-down buttons in toolbars for action groups - when - checked, the action groups are represented in the viewer toolbars as - a single drop-down button, switchable by the user. Otherwise, all - the buttons from the action groups are displayed in the toolbar. -- Study Properties - - Multi file save - if checked in, your study will be saved in - several HDF files (one basic HDF file which will store the main - information about the saved study and several other files for the - data created by each component used during the study - session). Opening of this study requires that \b ALL saved files - should be stored in the \b SAME directory. If you would like to - copy your saved study in another directory or machine, you should - copy all stored files. Otherwise, if you try to open this study, - some data will be lost and it will lead to invalid functioning of - the SALOME platform. - - ASCII save - if checked in, your study will be saved in - ASCII format file (or files). - - Automatic loading of light modules when opening study - if checked in, - Light Modules of the current study will be automatically loaded at the next study - opening, allowing completion of object browser. - - Store positions of windows - if checked in, positions of windows - will be saved in a special file at the end of the current session and - then restored for a new session. - - Store positions of toolbars - if checked in, positions of toolbars - will be saved in a special file at the end of the current session and - then restored for a new session. - - Auto-save interval (min) - allows to specify the time interval (in - minutes) for automatic study saving operation. If the time interval is - equal to 0 ("Disabled" value is shown) the automatic saving is not performed. - - Store/restore last GUI state - if checked in, all GUI settings are - saved with the rest of the data whenever you save the study. When the - study is reopened, the GUI state is restored. - - Publish in study in python dump - if this option is switched on, - the Python script resulting from Dump Python operation will - include commands related to the publication of the data in the - study (if this option is supported by specific module). - - Multi file python dump - allows to generate multiple files - (separately for each component) for dumping of a study to a python script. - If the option is disabled, the study is dumped to a single python script. - - Save GUI state in python dump - if this option is switched on, - the Python script resulting from Dump Python operation will - include commands related to the GUI state. -- External browser - allows to define what browser will - be used to show SALOME reference manuals: internal (built-in - SALOME browser) or external (IE, Netscape, Mozilla, ...). In - addition, it is possible to specify - - \b Application - this option allows you to set an external browser (IE, - Netscape) which will be used for viewing SALOME reference manuals. By - default, Mozilla is used. - - \b Parameters - additional parameters required for launching of - the external browser (if applicable). -- Python console - - \b Font - allows quickly setting the parameters (style, size, face) of the - \ref font_color_dlg "font" used in embedded Python console. - - Show banner - this option allows to show/hide the Python banner - on top of the console window. -- Show MRU items - allows to define the maximum \b Number of -items in Most Recently Used list and the Link type: - - \b Long - shows the full path to the file. - - \b Short - shows the file name only. - - \b Auto - shows full paths to the files only if some files from -different locations have the same name. -- Full-screen - - Hide object browser and viewers toolbars - switches automatic hiding of - Object Browser and OCC viewer toolbar in full-screen mode. - -

3D Viewer Preferences

- -\image html pref_salome_3dviewer.png - -- Navigation style - this option allows to choose one of the - modes of work with mouse in OCC and VTK 3D viewers. - - Salome Standard Controls - allows to manipulate objects in the - viewer with the mouse and locked Ctrl button: increase or decrease the - zoom ratio with the left mouse button, translate object in any - direction with the central mouse button or rotate it with the right - mouse button. - - Keyboard Free - allows to manipulate objects in the viewer - with the mouse without locking Ctrl button. In this case the - operations are assigned to the buttons differently: rotation is made - with the left button, translation with the right and zoom with both - pressed in the same time. -- Zooming style - this option allows to choose a zooming mode. - - Relative to the view's center - allows to zoom the view - relatively to its center. - - Relative to the cursor - allows to zoom the view - relatively to the current cursor position. -- Trihedron - viewer trihedron settings: - - Size - size of the coordinate axes (global trihedron) - displayed in the viewer. - - Relative - if this option is switched on, trihedron - axes scale to fit the size of the scene displayed in 3D viewer. - - Show static trihedron - allows to show/hide the static - mini-trihedron located in the bottom-left corner of the viewer. - -\anchor occ_preferences -

OCC 3D Viewer Preferences

- -\image html pref_salome_occviewer.png - -- Projection mode - sets the default projection mode for the viewers: Orthogonal or Perpective. -- Stereo render - stereoscopic view settings: - - Stereo type - specifies a stereo pair type: - - Shutter glasses (OpenGL quad-buffer) - - Anaglyph - - Row-interlaced - - Column-interlaced - - Chess-board stereo for DLP TVs - - Horizontal-anamorphic (side-by-side) - - Vertical-anamorphic (Half OverUnder) - \note The stereo pair type selected in this combobox is applied - for all existing OCC 3D views with stereo rendering already turned on - within the same SALOME GUI session. It is not possible to use - different stereo modes in several OCC 3D views at the same time - within the same SALOME GUI session. - - Anaglyph filter - specifies the format of anaglyph stereo pair: - - Red-Cyan (default) - - Yellow-Blue - - Green-Magenta - - Convergence distance type: Absolute or Relative (default). - - Stereographic focus value - 1 by default. - - IOD type - Absolute or Relative (default). - - Interocular distance (IOD) value - 0.05 by default. - - Reverse stereo - option to swap left and right frames. - - Enable V-Sync - activates vertical synchronization. - - Enable quad-buffer support - allows quad-buffered rendering. - \note It is neccessary to enable quad-buffered stereoscopic rendering - manually in graphic driver settings. SALOME does not do it automatically. - \note All existing OCC 3D views should be re-created for quad-buffer support. - -- Background - specifies the default background for the viewers, - separately for (for more details, refer to the \ref viewer_background - "this page"): - - 3D View - - XZ View - - YZ View - - XY View -- Selection - - Enable preselection - switches preselection on/off. - - Enable selection - switches selection on/off. -- Clipping parameters - specifies the default clipping plane parameters. - - Color - allows to change the color of the clipped region. - - Use default texture - if this option is switched on, the default texture - will be used for clipping texture, otherwise - the texture specified in "Texture" field. - - Texture - allows to change the texture of the clipped region (enable if "Use default texture" is switched off). - - Modulate - controls if "Texture" should be mixed with "Color" parameter or not. - - Scale factor - sets the scale factor for default and custom textures. -- Ray tracing - specifies the default GPU ray-tracing parameters. - - Depth - defines maximum ray-tracing depth. - - Specular reflections - enables/disables specular reflections. - - Adaptive anti-aliasing - enables/disables adaptive anti-aliasing. - - Shadows rendering - enables/disables shadows rendering. - - Transparent shadow - enables/disables light propagation through transparent media. -- Light source - allows to set default parameters for directional light source. - - Color - allows to change the color of light source. - - Dx, Dy, Dz - sets direction coordinates. - -\anchor vtk_preferences -

VTK 3D Viewer Preferences

- -\image html pref_salome_vtkviewer.png - -- Projection mode - allows choosing between \b Orthogonal and -\b Perspective projection mode. -- Background - specifies the default background for the viewer; - for more details, refer to the \ref viewer_background "this page". -- Speed Increment - defines the number of units by - which the speed increases or respectively decreases after pressing [+] - or [-] keyboard buttons. -- Modification Mode - allows choosing between \b Arithmetic - and \b Geometrical progression used for zooming. -- Stereo render - stereoscopic view settings: - - Stereo type - specifies a stereo pair type: - - Crystal Eyes - - Red-Blue - - Interlaced - - Left - - Right - - Dresden - - Anaglyph - - Checkerboard - - Split View Port Horizontal - \note The stereo pair type selected in this combobox is applied - for all existing VTK 3D views with stereo rendering already turned on - within the same SALOME GUI session. It is not possible to use - different stereo modes in several VTK 3D views at the same time - within the same SALOME GUI session. - - Anaglyph filter - specifies the format of anaglyph stereo pair: - - Red-Cyan (default) - - Yellow-Blue - - Green-Magenta - - Enable quad-buffer support - allows quad-buffered rendering. - \note It is neccessary to enable quad-buffered stereoscopic rendering - manually in graphic driver settings. SALOME does not do it automatically. - \note All existing VTK 3D views should be re-created for quad-buffer support. -- Selection - - Preselection - allows to choose among three possible preselection modes: - - Standard - this mode works quickly, by checking only - bounding boxes of objects. It does not deal with the order of actors in the view - or with their data (points/ cells). - - Dynamic - works directly with cells of actors, which provides the - exact area of preselection. This mode is much more slower. - - Disabled - switches off the preselection. - - Enable selection - switches selection on/off. -- Spacemouse - a mouse-like manipulator device specially designed - for working with 3D presentations, objects, etc. You can reassign the - actions listed below to any of its buttons. - - Decrease Speed Increment - decreases by 1 the speed - increment used for the keyboard (same as [-] key). - - Increase Speed Increment - increase by 1 the speed - increment used for the keyboard (same as [+] key). - - Dominant / combined switch - toggles button to switch to - dominant or combined movements. -- AVI Recording - - Mode - allows to choose from two recording regimes: - - Recording all displayed frames - records exactly at the - FPS rate specified by the user. - - Recording at a given FPS - records only when the contents - of the viewer change (some activity is performed). In the AVI file - non-recorded images are substituted with the copies of the latest - recorded image, which produces files with lower quality but requires - less system resources. - - FPS - allows to define the FPS (frames per second) rate for - the clip. Set greater value for better quality. - - Quality - allows to set the quality of the clip in the - interval between 0 and 100. - - Progressive - allows to record a progressive API file. -- Names of groups - allows to specify parameters of the -titles displayed in the viewer: - - Text color - allows selecting the text color; - - Transparency - allows selecting the text transparency. - -\anchor plot2d_preferences -

Plot 2D Viewer Preferences

- -\image html pref_salome_plot2dviewer.png - -- Background color - this submenu allows to select the background -color. Click on the colored line to access to the -\ref select_color_and_font_page "Select Color" dialog box. -- Selection color - this submenu allows to select the color of -selected object in the viewer. -- Viewer - allows specifying the properties of the Plot 2D Viewer. - - Curve Type - this allows to set the representation of graphs in - your presentations. You can see only Points, points connected with - Lines or points connected with smooth Splines. - - Marker Size - this submenu allows you to set the size of - markers in your graphs. - - Horizontal and Vertical axis scale - this submenus allow you to set - the scale for vertical and horizontal axes. It can be either Linear or - Logarithmic. Note that the Logarithmic scale can be used only - if the minimum value of corresponding component (abscissa or ordinate) - of all points displayed in the viewer is greater than zero. - If this condition is not met, the scale is switched to Linear - automatically, even if it is set to Logarithmic. - - Deviation marker color - this submenu allows to select the - color of the deviation marker. - - Deviation marker line width allows to define line width of - the deviation marker. - - Deviation marker tick size allows to define size of the upper - and lower horizontal lines of the deviation marker. -- Legend - allows specifying the properties of the legend. - - Show legend - this options specifies if it's necessary to - show legend by default. - - Legend Position - this submenu allows to set the default position - of the legend, it can be located to the left, to the right, on top or - on bottom of the graph. - - Symbol type you can select the type of legend item symbol from "Marker on line" - or "Marker above line" - - Legend font - this allows to set type and face for the font of Legend item. - - Legend font color - this allows to select the color of the - font of the legend item. - - Highlighted legend font color - this submenu allows to select - the color of the font of the selected legend item. - -\anchor default_python_preferences -

Python Viewer Preferences

- -\image html pref_salome_pythonviewer.png - -\note The following settings are default and will be applied only for newly created Python viewers. Customization of already opened viewers can be done using local \ref custom_python_preferences "Preferences dialog box" called by clicking on the corresponding icon of \ref python_viewer_page "Python viewer toolbar". - -- Font settings allows setting font variant, size and style. - -- Display settings specifies the script representation in the viewer: - - - Enable current line highlight switches on background coloring of the current line. - - Enable text wrapping wraps lines at the view border of the editor. - - - Center cursor on scroll scrolls the script vertically to make the cursor visible at the center of the viewer. - - - Display line numbers area shows a panel with line numbers of the script at the left border of the editor. - -- Tab settings allows displaying tab indentation as a certain number of white-spaces. - -- Vertical edge settings manages drawing of a vertical line at the specified column of the viewer. - -

Directories Preferences

- -\image html pref_salome_directories.png - -- Quick Directory List - this section allows to create and manage -a custom quick directory list. To add a directory in the list, press -the "Add directory" button: -\image html image70.png -then the "..." button and browse the data tree for the -directory you need. -The "Up" and "Down" buttons(see the picture below) help you to sort -the directories in the list: -\image html image73.png -\image html image75.png -To remove the selected directory from the list, press the "Delete" -button: -\image html image72.png - -

Object Browser Preferences

- -\image html pref_salome_objbrowser.png - -- Search Tool - specifies behavior of the -\ref using_find_tool_page "Search tool". - - Enable auto-hiding checkbox - hides the search tool - automatically after short perioud of time when it is not used. -- Look and feel - - Auto size for “Name” column - this checkbox enables automatic - resizing for the “Name” column. - - Auto size for other columns - this checkbox enables - automatic resizing for the other columns. - - Resize columns on expand item - this checkbox enables - resizing columns on expanding an object browser item. - - Browse to the published object - this combobox allows to enable - automatic browsing to the objects just published to the study (using GUI - dialogs only). It means that the object browser will be scrolled to the - published objects, make them visible if they are collapsed and select the - first of them. Three modes are allowed for activating this feature: - - Never - automatic browsing is disabled. - - After Apply & Close only - browsing is activated when the - dialog is accepted by Apply & Close or Ok buttons (or if - the objects are published without using a dialog, for example, by - clicking a context menu button) and not activated when the - Apply button is pressed and therefore the dialog remains visible. - - Always - automatic browsing is always enabled. -- Default columns - these checkboxes allow to display or hide Value, -Entry, IOR and Reference entry columns in the Object Browser. - -

Shortcuts Preferences

- -\image html pref_salome_shortcuts.png - -- Shortcuts settings widget allows to define custom shortcuts for -various operations. To change keyboard sequence for a certain action - select the -action and press the custom keys combination. - - -\subpage select_color_and_font_page "Font and color preferences" -are most oftenly used types of user settings. - -When you change settings (click \b OK or \b Apply button) each module -receives the notification about what preferences are changed. You can -also click \b Defaults button to restore default preferences or \b Close -button to quit the dialog box without any changes. - -\b Import button allows loading specific user file containing -preferences from any location at the computer through a standard -Import dialog box. - -\image html import.png - -The preferences files usually have *.xml extension. Also, -preferences files automatically saved by the application (stored in the -~/.config/salome directory) have no extension and by default start with -.SalomeApprc. followed by SALOME version number. Usually there is a -separate preferences file for each SALOME version in use. Preferences -are saved to the file in the end of the working session and restored -at the application start-up. - -\note The preferences you set will be default preferences for all \b new -objects, but they are not retroactive and do not automatically apply -to the existing objects. - -*/ diff --git a/doc/salome/gui/input/setting_preferences.rst b/doc/salome/gui/input/setting_preferences.rst new file mode 100755 index 000000000..53cd002ac --- /dev/null +++ b/doc/salome/gui/input/setting_preferences.rst @@ -0,0 +1,391 @@ +.. _setting_preferences_page: + +******************* +Setting Preferences +******************* + +All user preferences of **SALOME** application can be customized using the +common **Preferences** dialog box. This dialog can be open using the +***File > Preferences...*** menu item. + +The **Preferences** dialog box consists of two parts: + +- Available preferences sections are listed in the left part of the dialog box; usually this list contains "SALOME" item that specifies general application preferences and a separate section for each SALOME module available in the current session. +- The tabbed widget at the right side of the dialog box provides controls that can be used to customize the preferences. + +.. note:: The preferences for modules become accessible only after explicit loading of these modules. Until then the dialog box will show the corresponding warning message. + +More detailed information about preferences for certain modules can be found in the User's guide of the corresponding module. + +General application preferences are specified in the **SALOME** section +of the **Preferences** dialog box. These preferences affect on the +application look-n-feel and common functionality. + +If the study has just been started and other +modules have not been loaded yet, it will be possible to change only the settings which refer to +the whole GUI SALOME session. + +General Preferences +################### + +.. image:: ../images/pref_salome_general.png + :align: center + +- **Language** + + - **Current language** - the language used by the application GUI. The language change will come in force only after the application is restarted. + - **Use C locale** - when checked, the C locale will be set for the application, otherwise a system locale will be used. The locale change will come in force only after the application is restarted. + +- **Look and feel** + + - **Show splash screen at start-up** - allows showing or hiding the splash screen at start-up. + - **Opaque resize** - force opaque resize mode for viewers area (tabbed workspace). Clear this checkbox for less perfomant workstations. + - **Drop-down buttons in toolbars for action groups** - when checked, the action groups are represented in the viewer toolbars as a single drop-down button, switchable by the user. Otherwise, all the buttons from the action groups are displayed in the toolbar. + +- **Study Properties** + + - **Multi file save** - if checked in, your study will be saved in several HDF files (one basic HDF file which will store the main information about the saved study and several other files for the data created by each component used during the study session). Opening of this study requires that **ALL** saved files should be stored in the **SAME** directory. If you would like to copy your saved study in another directory or machine, you should copy all stored files. Otherwise, if you try to open this study, some data will be lost and it will lead to invalid functioning of the SALOME platform. + - **ASCII save** - if checked in, your study will be saved in ASCII format file (or files). + - **Automatic loading of light modules when opening study** - if checked in, Light Modules of the current study will be automatically loaded at the next study opening, allowing completion of object browser. + - **Store positions of windows** - if checked in, positions of windows will be saved in a special file at the end of the current session and then restored for a new session. + - **Store positions of toolbars** - if checked in, positions of toolbars will be saved in a special file at the end of the current session and then restored for a new session. + - **Auto-save interval (min)** - allows to specify the time interval (in minutes) for automatic study saving operation. If the time interval is equal to 0 ("Disabled" value is shown) the automatic saving is not performed. + - **Store/restore last GUI state** - if checked in, all GUI settings are saved with the rest of the data whenever you save the study. When the study is reopened, the GUI state is restored. + - **Publish in study in python dump** - if this option is switched on, the Python script resulting from Dump Python operation will include commands related to the publication of the data in the study (if this option is supported by specific module). + - **Multi file python dump** - allows to generate multiple files (separately for each component) for dumping of a study to a python script. If the option is disabled, the study is dumped to a single python script. + - **Save GUI state in python dump** - if this option is switched on, the Python script resulting from Dump Python operation will include commands related to the GUI state. + +- **External browser** - allows to define what browser will be used to show SALOME reference manuals: internal (built-in SALOME browser) or external (IE, Netscape, Mozilla, ...). In addition, it is possible to specify + + - **Application** - this option allows you to set an external browser (IE, Netscape) which will be used for viewing SALOME reference manuals. By default, Mozilla is used. + - **Parameters** - additional parameters required for launching of the external browser (if applicable). + +- **Python console** + + - **Font** - allows quickly setting the parameters (style, size, face) of the :ref:`font_color_dlg` used in embedded Python console. + - **Show banner** - this option allows to show/hide the Python banner on top of the console window. + +- **Show MRU items** - allows to define the maximum **Number** of items in **Most Recently Used** list and the **Link type**: + + - **Long** - shows the full path to the file. + - **Short** - shows the file name only. + - **Auto** - shows full paths to the files only if some files from different locations have the same name. + +- **Full-screen** + + - **Hide object browser and viewers toolbars** - switches automatic hiding of Object Browser and OCC viewer toolbar in full-screen mode. + +3D Viewer Preferences +##################### + +.. image:: ../images/pref_salome_3dviewer.png + :align: center + +- **Navigation style** - this option allows to choose one of the modes of work with mouse in OCC and VTK 3D viewers. + + - **Salome Standard Controls** - allows to manipulate objects in the viewer with the mouse and locked Ctrl button: increase or decrease the zoom ratio with the left mouse button, translate object in any direction with the central mouse button or rotate it with the right mouse button. + - **Keyboard Free** - allows to manipulate objects in the viewer with the mouse without locking Ctrl button. In this case the operations are assigned to the buttons differently: rotation is made with the left button, translation with the right and zoom with both pressed in the same time. + +- **Zooming style** - this option allows to choose a zooming mode. + + - **Relative to the view's center** - allows to zoom the view relatively to its center. + - **Relative to the cursor** - allows to zoom the view relatively to the current cursor position. + +- **Trihedron** - viewer trihedron settings: + + - **Size** - size of the coordinate axes (global trihedron) displayed in the viewer. + - **Relative** - if this option is switched on, trihedron axes scale to fit the size of the scene displayed in 3D viewer. + - **Show static trihedron** - allows to show/hide the static mini-trihedron located in the bottom-left corner of the viewer. + +.. _occ_preferences: + +OCC 3D Viewer Preferences +######################### + +.. image:: ../images/pref_salome_occviewer.png + :align: center + +- **Projection mode** - sets the default projection mode for the viewers: Orthogonal or Perpective. +- **Stereo render** - stereoscopic view settings: + + - **Stereo type** - specifies a stereo pair type: + + - Shutter glasses (OpenGL quad-buffer) + - Anaglyph + - Row-interlaced + - Column-interlaced + - Chess-board stereo for DLP TVs + - Horizontal-anamorphic (side-by-side) + - Vertical-anamorphic (Half OverUnder) + + .. note:: + The stereo pair type selected in this combobox is applied for all existing OCC 3D views with stereo rendering already turned on within the same SALOME GUI session. It is not possible to use different stereo modes in several OCC 3D views at the same time within the same SALOME GUI session. + + - **Anaglyph filter** - specifies the format of anaglyph stereo pair: + + - Red-Cyan (default) + - Yellow-Blue + - Green-Magenta + + - **Convergence distance type**: Absolute or Relative (default). + - **Stereographic focus value** - 1 by default. + - **IOD type** - Absolute or Relative (default). + - **Interocular distance (IOD) value** - 0.05 by default. + - **Reverse stereo** - option to swap left and right frames. + - **Enable V-Sync** - activates vertical synchronization. + - **Enable quad-buffer support** - allows quad-buffered rendering. + + .. note:: + It is neccessary to enable quad-buffered stereoscopic rendering manually in graphic driver settings. SALOME does not do it automatically. + + .. note:: + All existing OCC 3D views should be re-created for quad-buffer support. + +- **Background** - specifies the default background for the viewers, separately for (for more details, refer to the :ref:`viewer_background` page"): + + - **3D View** + - **XZ View** + - **YZ View** + - **XY View** + +- **Selection** + + - **Enable preselection** - switches preselection on/off. + - **Enable selection** - switches selection on/off. + +- **Clipping parameters** - specifies the default clipping plane parameters. + + - **Color** - allows to change the color of the clipped region. + - **Use default texture** - if this option is switched on, the default texture will be used for clipping texture, otherwise - the texture specified in "Texture" field. + - **Texture** - allows to change the texture of the clipped region (enable if "Use default texture" is switched off). + - **Modulate** - controls if "Texture" should be mixed with "Color" parameter or not. + - **Scale factor** - sets the scale factor for default and custom textures. + +- **Ray tracing** - specifies the default GPU ray-tracing parameters. + + - **Depth** - defines maximum ray-tracing depth. + - **Specular reflections** - enables/disables specular reflections. + - **Adaptive anti-aliasing** - enables/disables adaptive anti-aliasing. + - **Shadows rendering** - enables/disables shadows rendering. + - **Transparent shadow** - enables/disables light propagation through transparent media. + +- **Light source** - allows to set default parameters for directional light source. + + - **Color** - allows to change the color of light source. + - **Dx, Dy, Dz** - sets direction coordinates. + +.. _vtk_preferences: + +VTK 3D Viewer Preferences +######################### + +.. image:: ../images/pref_salome_vtkviewer.png + :align: center + +- **Projection mode** - allows choosing between **Orthogonal** and **Perspective** projection mode. +- **Background** - specifies the default background for the viewer; for more details, refer to the :ref:`viewer_background`. +- **Speed Increment** - defines the number of units by which the speed increases or respectively decreases after pressing [+] or [-] keyboard buttons. +- **Modification Mode** - allows choosing between **Arithmetic** and **Geometrical** progression used for zooming. +- **Stereo render** - stereoscopic view settings: + + - **Stereo type** - specifies a stereo pair type: + + - Crystal Eyes + - Red-Blue + - Interlaced + - Left + - Right + - Dresden + - Anaglyph + - Checkerboard + - Split View Port Horizontal + + .. note:: + The stereo pair type selected in this combobox is applied for all existing VTK 3D views with stereo rendering already turned on within the same SALOME GUI session. It is not possible to use different stereo modes in several VTK 3D views at the same time within the same SALOME GUI session. + + - **Anaglyph filter** - specifies the format of anaglyph stereo pair: + + - Red-Cyan (default) + - Yellow-Blue + - Green-Magenta + + - **Enable quad-buffer support** - allows quad-buffered rendering. + + .. note:: + It is neccessary to enable quad-buffered stereoscopic rendering manually in graphic driver settings. SALOME does not do it automatically. + .. note:: + All existing VTK 3D views should be re-created for quad-buffer support. + +- **Selection** + + - **Preselection** - allows to choose among three possible preselection modes: + + - **Standard** - this mode works quickly, by checking only bounding boxes of objects. It does not deal with the order of actors in the view or with their data (points/ cells). + - **Dynamic** - works directly with cells of actors, which provides the exact area of preselection. This mode is much more slower. + - **Disabled** - switches off the preselection. + + - **Enable selection** - switches selection on/off. + +- **Spacemouse** - a mouse-like manipulator device specially designed for working with 3D presentations, objects, etc. You can reassign the actions listed below to any of its buttons. + + - **Decrease Speed Increment** - decreases by 1 the speed increment used for the keyboard (same as [-] key). + - **Increase Speed Increment** - increase by 1 the speed increment used for the keyboard (same as [+] key). + - **Dominant / combined switch** - toggles button to switch to dominant or combined movements. + +- **AVI Recording** + + - **Mode** - allows to choose from two recording regimes: + + - **Recording all displayed frames** - records exactly at the FPS rate specified by the user. + - **Recording at a given FPS** - records only when the contents of the viewer change (some activity is performed). In the AVI file non-recorded images are substituted with the copies of the latest recorded image, which produces files with lower quality but requires less system resources. + + - **FPS** - allows to define the FPS (frames per second) rate for the clip. Set greater value for better quality. + - **Quality** - allows to set the quality of the clip in the interval between 0 and 100. + - **Progressive** - allows to record a progressive API file. + +- **Names of groups** - allows to specify parameters of the titles displayed in the viewer: + + - **Text color** - allows selecting the text color; + - **Transparency** - allows selecting the text transparency. + +.. _plot2d_preferences: + +Plot 2D Viewer Preferences +########################## + + +.. image:: ../images/pref_salome_plot2dviewer.png + :align: center + +- **Background color** - this submenu allows to select the background color. Click on the colored line to access to the :ref:`select_color_and_font_page` dialog box. +- **Selection color** - this submenu allows to select the color of selected object in the viewer. +- **Viewer** - allows specifying the properties of the Plot 2D Viewer. + + - **Curve Type** - this allows to set the representation of graphs in your presentations. You can see only **Points**, points connected with **Lines** or points connected with smooth **Splines**. + - **Marker Size** - this submenu allows you to set the size of markers in your graphs. + - **Horizontal** and **Vertical axis scale** - this submenus allow you to set the scale for vertical and horizontal axes. It can be either **Linear** or **Logarithmic**. Note that the **Logarithmic** scale can be used only if the minimum value of corresponding component (abscissa or ordinate) of all points displayed in the viewer is greater than zero. If this condition is not met, the scale is switched to **Linear** automatically, even if it is set to **Logarithmic**. + - **Deviation marker color** - this submenu allows to select the color of the deviation marker. + - **Deviation marker line width** allows to define line width of the deviation marker. + - **Deviation marker tick size** allows to define size of the upper and lower horizontal lines of the deviation marker. + +- **Legend** - allows specifying the properties of the legend. + + - **Show legend** - this options specifies if it's necessary to show legend by default. + - **Legend Position** - this submenu allows to set the default position of the legend, it can be located to the left, to the right, on top or on bottom of the graph. + - **Symbol type** you can select the type of legend item symbol from "Marker on line" or "Marker above line" + - **Legend font** - this allows to set type and face for the font of Legend item. + - **Legend font color** - this allows to select the color of the font of the legend item. + - **Highlighted legend font color** - this submenu allows to select the color of the font of the selected legend item. + +.. _default_python_preferences: + +Python Viewer Preferences +######################### + +.. image:: ../images/pref_salome_pythonviewer.png + :align: center + +.. note:: + The following settings are default and will be applied only for newly created Python viewers. Customization of already opened viewers can be done using local :ref:`custom_python_preferences` called by clicking on the corresponding icon of :ref:`python_viewer_page`. + +- **Font settings** allows setting font variant, size and style. +- **Display settings** specifies the script representation in the viewer: + + - **Enable current line highlight** switches on background coloring of the current line. + - **Enable text wrapping** wraps lines at the view border of the editor. + - **Center cursor on scroll** scrolls the script vertically to make the cursor visible at the center of the viewer. + - **Display line numbers area** shows a panel with line numbers of the script at the left border of the editor. + +- **Tab settings** allows displaying tab indentation as a certain number of white-spaces. +- **Vertical edge settings** manages drawing of a vertical line at the specified column of the viewer. + +Directories Preferences +####################### + +.. image:: ../images/pref_salome_directories.png + :align: center + +- **Quick Directory List** - this section allows to create and manage a custom quick directory list. To add a directory in the list, press the "Add directory" button: + +.. image:: ../images/image70.png + :align: center + +then the **"..."** button and browse the data tree for the directory you need. +The "Up" and "Down" buttons(see the picture below) help you to sort the directories in the list: + +.. image:: ../images/image73.png + :align: center + +.. image:: ../images/image75.png + :align: center + +To remove the selected directory from the list, press the "Delete" +button: + +.. image:: ../images/image72.png + :align: center + +Object Browser Preferences +########################## + +.. image:: ../images/pref_salome_objbrowser.png + :align: center + +- **Search Tool** - specifies behavior of the :ref:`using_find_tool_page`. + + - **Enable auto-hiding** checkbox - hides the search tool automatically after short perioud of time when it is not used. + +- **Look and feel** + + - **Auto size for "Name" column** - this checkbox enables automatic resizing for the "Name" column. + - **Auto size for other columns** - this checkbox enables automatic resizing for the other columns. + - **Resize columns on expand item** - this checkbox enables resizing columns on expanding an object browser item. + - **Browse to the published object** - this combobox allows to enable automatic browsing to the objects just published to the study (using GUI dialogs only). It means that the object browser will be scrolled to the published objects, make them visible if they are collapsed and select the first of them. Three modes are allowed for activating this feature: + + - **Never** - automatic browsing is disabled. + - **After Apply & Close only** - browsing is activated when the dialog is accepted by **Apply & Close** or **Ok** buttons (or if the objects are published without using a dialog, for example, by clicking a context menu button) and not activated when the **Apply** button is pressed and therefore the dialog remains visible. + - **Always** - automatic browsing is always enabled. + +- **Default columns** - these checkboxes allow to display or hide **Value**, **Entry**, **IOR** and **Reference entry** columns in the Object Browser. + +Shortcuts Preferences +##################### + +.. image:: ../images/pref_salome_shortcuts.png + :align: center + +- **Shortcuts settings** widget allows to define custom shortcuts for various operations. To change keyboard sequence for a certain action - select the action and press the custom keys combination. + + +:ref:`select_color_and_font_page`: "Font and color preferences" +are most oftenly used types of user settings. + +When you change settings (click **OK** or **Apply** button) each module +receives the notification about what preferences are changed. You can +also click **Defaults** button to restore default preferences or **Close** +button to quit the dialog box without any changes. + +**Import** button allows loading specific user file containing +preferences from any location at the computer through a standard +Import dialog box. + +.. image:: ../images/import.png + :align: center + +The preferences files usually have \*.xml extension. Also, +preferences files automatically saved by the application (stored in the +~/.config/salome directory) have no extension and by default start with +.SalomeApprc. followed by SALOME version number. Usually there is a +separate preferences file for each SALOME version in use. Preferences +are saved to the file in the end of the working session and restored +at the application start-up. + +.. note:: + The preferences you set will be default preferences for all **new** objects, but they are not retroactive and do not automatically apply to the existing objects. + + + +.. toctree:: + :maxdepth: 2 + + select_color_and_font.rst diff --git a/doc/salome/gui/input/study_management_chapter.doc b/doc/salome/gui/input/study_management_chapter.doc deleted file mode 100644 index 68b3774ab..000000000 --- a/doc/salome/gui/input/study_management_chapter.doc +++ /dev/null @@ -1,143 +0,0 @@ -/*! - -\page study_management_page Study management - -Study is a document within the application, where you can carry out all -operations provided by the SALOME functionality. -This is a certain abstraction layer between actual -document data (probably, remote data available through CORBA) and data -presentation (in the Object Browser). The study is composed of Data -Object instances, combined into a tree-like structure. - -All operations with study are available from the \b File menu. - -\note SALOME is a single-study application. It means that only one study -can be opened at the moment. - -Immediately after the application is launched there is (normally) no active study. -However, you have access to the embedded Python console, that can be used to initialize -a study by means of Python API (see documentation on SALOME KERNEL module for more details). - -The following operations are available from the \b File menu: - -\image html menu_file.png - -As soon as a study is created or loaded from a file or a data server, -additional operations become available from the \b File menu: - -\image html studymanagement.png - -\b New - creates a new study. The study will be created -with default name \b Study1. If there is an already opened study, -you will be asked to close it before creating new one. - -\b Open - allows to open an existing study by browsing for it in a -standard Open File dialog box, choosing the required -*.hdf file and clicking \a Open button. -If there is already opened study, you will be asked to close it -before opening new one. - -\b Reopen - reloads the current study from the associated *.hdf file. -This menu command can be used to reverse the study to the latest saved state. - -\b Save - saves the current study. Saving a study you also save its layout, i.e. all positions and sizes -of dockable windows. It means that the difference in settings of the -same windows (for example Python console) is possible between -different modules (the same window can have different size and -position when other module is activated). Also each module can -indicate which common windows are necessary for working, and only they -will be displayed when this module is active. - -\note If the study hasn't been previously saved, \b Save will -call the standard Save File dialog box where you can enter the name -for your study and save it. - -\b Save \b as - allows to save the current study with a new name. -Input a new name for the study in the standard -Search File dialog box and click \a Save button. - -\b Close - closes the current study; alternatively closing of the study -can be done by clicking on the cross in the upper right corner of the desktop window. - -\note If the study has not been previously saved, you will be prompted -by the following dialog box with several options: - -\image html closestudy.png - -\b Connect - allows to open an unloaded or created outside GUI study. - -\note Connect is available only if there is an opened study on the data server. - -\b Disconnect - unloads the current study from the desktop. The study stays opened -in the data server; it can be then reloaded in the same working session -(using \b Connect operation), but if you quit SALOME application, all changes in the -unloaded study can be lost. - -\note If the study has not been previously saved, you will be prompted -by the following dialog box with several options: - -\image html disconnect_study.png - -Dump study - allows to Dump a SALOME Study in one or several -Python scripts. The following dialog box allows to browse for the location and -define the name for a Python file. - -\image html dumpstudy.png - -
    -
  • -Publish in study - if checked in, the component objects created by -Python commands will be published in the created Study when the script -is played, otherwise the objects will not be published in the Study. -
  • -
  • -Save GUI state - if checked in, the current application layout will be -saved in the Python file. -
  • -
-To confirm your choice click \a Save. - -Load Script - allows to load a saved Python Script. - -\image html loadscript.png - -To confirm your choice click \a Open. - -Properties - allows to show/edit the properties of the current study. - -\image html studyproperties.png - -
    -
  • \b Author - allows to change the name of the study author.
  • -
  • Creation date - gives the date and time of Study creation.
  • -
  • \b Locked - allows to lock the study for modifications. -In case if \b Locked checkbox is checked your study will be locked for any modifications -for all users. Next time you try to edit it, you will see the -following warning message: -\image html lockedstudy.png
  • -
  • Modified/Not Modified - allows to see if any modifications have been -introduced into study since its last save.
  • -
  • Length units - allows to change the units of the study.
  • -
  • \b Comment - allows to add arbitrary comment for the study.
  • -
  • \b Modifications - allows to view the list of changes made in the study. -Each record contains the date and time of the -modification and the name of the user, who has introduced it.
  • -
  • Stored data - Shows the versions of data currently stored -in the study. Note, that this information does not concern the current -versions of SALOME modules, it shows the version in which the data has been -initially created. If the study is re-saved in the version of SALOME, -different from the initial one, the version information is -highlighted by the red-colored font, which means that the version information -is not actually valid.
  • -
- -\b Preferences - allows \ref setting_preferences_page "setting preferences" - applicable to Salome in general and its modules. - -Most recently used - contains a list of recently opened -studies, giving the possibility to fast load the required study. - -\b Exit - unlike \b Close, closes not only the current, but all opened -Salome studies. - -*/ diff --git a/doc/salome/gui/input/study_management_chapter.rst b/doc/salome/gui/input/study_management_chapter.rst new file mode 100755 index 000000000..f6976fd48 --- /dev/null +++ b/doc/salome/gui/input/study_management_chapter.rst @@ -0,0 +1,130 @@ +.. _study_management_page: + +**************** +Study management +**************** + +Study is a document within the application, where you can carry out all +operations provided by the SALOME functionality. +This is a certain abstraction layer between actual +document data (probably, remote data available through CORBA) and data +presentation (in the Object Browser). The study is composed of Data +Object instances, combined into a tree-like structure. + +All operations with study are available from the **File** menu. + +.. note:: SALOME is a single-study application. It means that only one study can be opened at the moment. + +Immediately after the application is launched there is (normally) no active study. +However, you have access to the embedded Python console, that can be used to initialize +a study by means of Python API (see documentation on SALOME KERNEL module for more details). + +The following operations are available from the **File** menu: + +.. image:: ../images/menu_file.png + :align: center + +As soon as a study is created or loaded from a file or a data server, +additional operations become available from the **File** menu: + +.. image:: ../images/studymanagement.png + :align: center + +**New** - creates a new study. The study will be created +with default name **Study1**. If there is an already opened study, +you will be asked to close it before creating new one. + +**Open** - allows to open an existing study by browsing for it in a +standard Open File dialog box, choosing the required +*.hdf file and clicking *Open* button. +If there is already opened study, you will be asked to close it +before opening new one. + +**Reopen** - reloads the current study from the associated \*.hdf file. +This menu command can be used to reverse the study to the latest saved state. + +**Save** - saves the current study. Saving a study you also save its layout, i.e. all positions and sizes +of dockable windows. It means that the difference in settings of the +same windows (for example Python console) is possible between +different modules (the same window can have different size and +position when other module is activated). Also each module can +indicate which common windows are necessary for working, and only they +will be displayed when this module is active. + +.. note:: If the study hasn't been previously saved, **Save** will call the standard Save File dialog box where you can enter the name for your study and save it. + +**Save as** - allows to save the current study with a new name. +Input a new name for the study in the standard +Search File dialog box and click *Save* button. + +**Close** - closes the current study; alternatively closing of the study +can be done by clicking on the cross in the upper right corner of the desktop window. + +.. note:: If the study has not been previously saved, you will be prompted by the following dialog box with several options: + +.. image:: ../images/closestudy.png + :align: center + +**Connect** - allows to open an unloaded or created outside GUI study. + +.. note:: Connect is available only if there is an opened study on the data server. + +**Disconnect** - unloads the current study from the desktop. The study stays opened +in the data server; it can be then reloaded in the same working session +(using **Connect** operation), but if you quit SALOME application, all changes in the +unloaded study can be lost. + +.. note:: If the study has not been previously saved, you will be prompted by the following dialog box with several options: + +.. image:: ../images/disconnect_study.png + :align: center + +**Dump study** - allows to Dump a SALOME Study in one or several +Python scripts. The following dialog box allows to browse for the location and +define the name for a Python file. + +.. image:: ../images/dumpstudy.png + :align: center + + +* **Publish in study** - if checked in, the component objects created by Python commands will be published in the created Study when the script is played, otherwise the objects will not be published in the Study. + +* **Save GUI state** - if checked in, the current application layout will be saved in the Python file. + + +To confirm your choice click *Save*. + +**Load Script** - allows to load a saved Python Script. + +.. image:: ../images/loadscript.png + :align: center + +To confirm your choice click *Open*. + +**Properties** - allows to show/edit the properties of the current study. + +.. image:: ../images/studyproperties.png + :align: center + +* **Author** - allows to change the name of the study author. +* **Creation date** - gives the date and time of Study creation. +* **Locked** - allows to lock the study for modifications. In case if **Locked** checkbox is checked your study will be locked for any modifications for all users. Next time you try to edit it, you will see the following warning message: + + .. image:: ../images/lockedstudy.png + :align: center + +* **Modified/Not Modified** - allows to see if any modifications have been introduced into study since its last save. +* **Length units** - allows to change the units of the study. +* **Comment** - allows to add arbitrary comment for the study. +* **Modifications** - allows to view the list of changes made in the study. Each record contains the date and time of the modification and the name of the user, who has introduced it. +* **Stored data** - Shows the versions of data currently stored in the study. Note, that this information does not concern the current versions of SALOME modules, it shows the version in which the data has been initially created. If the study is re-saved in the version of SALOME, different from the initial one, the version information is highlighted by the red-colored font, which means that the version information is not actually valid. + +**Preferences** - allows :ref:`setting_preferences_page` applicable to Salome in general and its modules. + +**Most recently used** - contains a list of recently opened +studies, giving the possibility to fast load the required study. + +**Exit** - unlike **Close**, closes not only the current, but all opened +Salome studies. + + diff --git a/doc/salome/gui/input/text_user_interface.doc b/doc/salome/gui/input/text_user_interface.doc deleted file mode 100644 index 5501c21ce..000000000 --- a/doc/salome/gui/input/text_user_interface.doc +++ /dev/null @@ -1,78 +0,0 @@ -/*! - -\page tui_page Using SALOME GUI python interface - - -The extended salome.py Python module provides \b sg variable, which gives access to some GUI functions. - -\b Note, that this variable is not available if you use salome.py -Python module outside of the GUI desktop, i.e. without the embedded Python -console (since SWIG library is linked directly to the GUI library). - -The example of usage: -\code -# update Object browser contents -salome.sg.updateObjBrowser(True) - -# get the active study ID -studyId = salome.sg.getActiveStudyId() - -# get the active study name -studyName = salome.sg.getActiveStudyName() - -# get the selected objects -selCount = salome.sg.SelectedCount() # the number of selected items -for i in range(selCount): - print salome.sg.getSelected(i) # print the entry ID of i-th selected item -\endcode - -\code -# get the list of IDs of all selected objects -selected = salome.sg.getAllSelected() - -# add an object to the selection -salome.sg.AddIObject("0:1:1:1") # "0:1:1:1" is an object ID - -# remove an object from the selection (make it unselected) -salome.sg.RemoveIObject("0:1:1:1") # "0:1:1:1" is an object ID - -# clear the selection (set all objects unselected) -salome.sg.ClearIObjects() - -# display an object in the current view (if possible) -salome.sg.Display("0:1:1:1") # "0:1:1:1" is an object ID -salome.sg.UpdateView() # update view - -# erase an object from the current view -salome.sg.Erase("0:1:1:1") # "0:1:1:1" is an object ID -salome.sg.UpdateView() # update view - -# display all objects in the current view (if possible) -salome.sg.DisplayAll() -salome.sg.UpdateView() # update view - -# erase all objects from the current view -salome.sg.EraseAll() -salome.sg.UpdateView() # update view - -# set top, bottom, front, rear, left, right view -salome.sg.ViewTop() # top view -salome.sg.ViewBottom() # bottom view -salome.sg.ViewFront() # front view -salome.sg.ViewTop() # back view -salome.sg.ViewLeft() # left view -salome.sg.ViewRight() # right view - -# reset the current view -salome.sg.ResetView() - -# get the component symbolic name by its user name -compName = salome.sg.getComponentName("Geometry") # compoName = "GEOM" - -# get the component user name by its symbolic name -compName = salome.sg.getComponentUserName("SMESH") # compoName = "Mesh" - -# ... -\endcode - -*/ diff --git a/doc/salome/gui/input/text_user_interface.rst b/doc/salome/gui/input/text_user_interface.rst new file mode 100755 index 000000000..8b4982443 --- /dev/null +++ b/doc/salome/gui/input/text_user_interface.rst @@ -0,0 +1,83 @@ +.. _tui_page: + +################################# +Using SALOME GUI python interface +################################# + + +The extended salome.py Python module provides **sg** variable, which gives access to some GUI functions. + +**Note**, that this variable is not available if you use salome.py +Python module outside of the GUI desktop, i.e. without the embedded Python +console (since SWIG library is linked directly to the GUI library). + +The example of usage: + +.. code-block:: python + :linenos: + + # update Object browser contents + salome.sg.updateObjBrowser(True) + + # get the active study ID + studyId = salome.sg.getActiveStudyId() + + # get the active study name + studyName = salome.sg.getActiveStudyName() + + # get the selected objects + selCount = salome.sg.SelectedCount() # the number of selected items + for i in range(selCount): + print salome.sg.getSelected(i) # print the entry ID of i-th selected item + +.. code-block:: python + :linenos: + + # get the list of IDs of all selected objects + selected = salome.sg.getAllSelected() + + # add an object to the selection + salome.sg.AddIObject("0:1:1:1") # "0:1:1:1" is an object ID + + # remove an object from the selection (make it unselected) + salome.sg.RemoveIObject("0:1:1:1") # "0:1:1:1" is an object ID + + # clear the selection (set all objects unselected) + salome.sg.ClearIObjects() + + # display an object in the current view (if possible) + salome.sg.Display("0:1:1:1") # "0:1:1:1" is an object ID + salome.sg.UpdateView() # update view + + # erase an object from the current view + salome.sg.Erase("0:1:1:1") # "0:1:1:1" is an object ID + salome.sg.UpdateView() # update view + + # display all objects in the current view (if possible) + salome.sg.DisplayAll() + salome.sg.UpdateView() # update view + + # erase all objects from the current view + salome.sg.EraseAll() + salome.sg.UpdateView() # update view + + # set top, bottom, front, rear, left, right view + salome.sg.ViewTop() # top view + salome.sg.ViewBottom() # bottom view + salome.sg.ViewFront() # front view + salome.sg.ViewTop() # back view + salome.sg.ViewLeft() # left view + salome.sg.ViewRight() # right view + + # reset the current view + salome.sg.ResetView() + + # get the component symbolic name by its user name + compName = salome.sg.getComponentName("Geometry") # compoName = "GEOM" + + # get the component user name by its symbolic name + compName = salome.sg.getComponentUserName("SMESH") # compoName = "Mesh" + + # ... + + diff --git a/doc/salome/gui/input/themes.doc b/doc/salome/gui/input/themes.rst similarity index 51% rename from doc/salome/gui/input/themes.doc rename to doc/salome/gui/input/themes.rst index d5f459f73..4eac96111 100755 --- a/doc/salome/gui/input/themes.doc +++ b/doc/salome/gui/input/themes.rst @@ -1,15 +1,18 @@ -/*! +.. _themes_page: -\page themes_page Theme +***** +Theme +***** The look and feel of the SALOME desktop can be customized by the user via SALOME style preferences. -SALOME style prefereces dialog box is used for customization of +**SALOME style prefereces** dialog box is used for customization of the look and feel of SALOME style. To open it, select in the Main menu -View -> Theme item. +**View -> Theme** item. -\image html theme1.png +.. image:: ../images/theme1.png + :align: center It is possible to choose a predefined scheme in the list to the left or to create a custom scheme using the controls to the right. @@ -17,26 +20,25 @@ or to create a custom scheme using the controls to the right. The dialog box contains two pages. The first page allows specifying the color palette. -- \b Quick button allows automatic color palette definition basing on +- **Quick** button allows automatic color palette definition basing on the main color specified by the user. -\image html theme2.png +.. image:: ../images/theme2.png + :align: center The second page allows specifying different properties of the theme: -- \b Font group allows to edit the font used in menus, dialog boxes, etc. -- \b Lines group allows to apply dashing to Salome elements. -- Widgets rounding allows to round corners of Salome dialog -boxes and define their parameters. -- \b Handle allows to define parameters of the handle. -- Widget effect allows to apply special effects to Salome -dialog boxes. +- **Font** group allows to edit the font used in menus, dialog boxes, etc. +- **Lines** group allows to apply dashing to Salome elements. +- **Widgets rounding** allows to round corners of Salome dialog boxes and define their parameters. +- **Handle** allows to define parameters of the handle. +- **Widget effect** allows to apply special effects to Salome dialog boxes. -If SALOME Theme is not used (Use SALOME Style checkbox is +If SALOME Theme is not used (**Use SALOME Style** checkbox is switched off), the global system settings are applied (for example, KDE settings). So, the look and feel of the application (for example, palette and/or font) can be customized by using the Qt utility -qtconfig. +*qtconfig*. + -*/ diff --git a/doc/salome/gui/input/use_case_builder.rst b/doc/salome/gui/input/use_case_builder.rst new file mode 100755 index 000000000..ba1b9d982 --- /dev/null +++ b/doc/salome/gui/input/use_case_builder.rst @@ -0,0 +1,206 @@ +.. _use_case_builder: + +************************************************************************************* +Customize data tree representation in the Object browser by means of use case builder +************************************************************************************* + +.. contents:: Table of Contents + +In SALOME, the representation of the data tree in the Object browser for the *full* +(CORBA-based) module is done basing on the study contents as it is supplied by SALOME +data server (SALOMEDS). In contrast to the *light* module which data tree is completely +defined and can be easily attuned by the module specific implementation, *full* module +must publish its data in the CORBA study by means of the corresponding API of SALOME +data server, namely **SALOMEDS::StudyBuilder**. + +As soon as data entities are published +in the study, they are shown in the Object browser, in the same order as they appear +in the study tree. Re-arrangement of the data entities with such approach is not a +trivial task: for example, when copying/moving any data entity at the new position +within the tree, it is necessary to copy all its attributes as well +and to clear (in case of move operation) the data entity at the original position. Also, it is not possible to +make some data items in the tree "invisible" for the user (though it might be useful). + +Use case builder provides an alternative and more flexible way for customizing the +data tree representation. It implements another approach to the data tree hierarchy, +based on the tree node attributes. With use case builder it is possible to arrange +and easily re-arrange the data items in the data tree in any appropriate way. + +For example, with use case builder it is easy to implement such operations as +:ref:`drag_and_drop` and Copy/Cut/Paste. With use case builder approach +it is not important how data entities are arranged in the study tree, they even may +lie on the same level - use case builder allows providing custom data tree +representation, completely indepedent on the study data tree itself. It is even possible +to hide some data entities in the tree representation while still keeping them in the +study (to store specific module data). + +Object browser automatically checks it the module root data object +contains a tree node attribute and switches to the browsing of the +data tree for such module using the use case +builder. Otherwise, it browses data using an ordinary study tree iterator. Thus, it is +possible to have in the same study some modules based on use case builder approach and +others not using it. + +.. _use_case_builder_usage: + +Use case builder +================ + +To obtain a reference to the use case builder, the function **GetUseCaseBuilder()** +of the **SALOMEDS::Study** interface can be used: + +:: + + interface Study + { + // Get reference to the use case builder + UseCaseBuilder GetUseCaseBuilder(); + }; + +**SALOMEDS::UseCaseBuilder** interface of the **SALOMEDS CORBA** module provides several +methods that can be used to build a custom data tree. Its API is similar to the API of +**SALOMEDS::StudyBuilder** interface - it operates with terms *"father object"* and +*"child object"*. In addition, use case builder uses term *"current object"* that is +used as a parent of the children objects added if the parent is not explicitly +specified. + +:: + + interface UseCaseBuilder + { + // Set top-level root object of the use case tree as the current one. + // This method is usually used to add SComponent items to the top level of the tree + boolean SetRootCurrent(); + + // Set the object theObject as the current object of the use case builder + boolean SetCurrentObject(in SObject theObject); + + // Append object SObject to the end of children list of the current object + boolean Append(in SObject theObject); + + // Append object SObject to the end of children list of the parent object theFather + boolean AppendTo(in SObject theFather, in SObject theObject); + + // Insert object theFirst before the object theNext (under the same parent object) + boolean InsertBefore(in SObject theFirst, in SObject theNext); + + // Remove object from the use case tree (without removing it from the study) + boolean Remove(in SObject theObject); + + // Check if the object theObject has children (in the use case tree) + boolean HasChildren(in SObject theObject); + + // Get father object of the given object theObject in the use cases tree + SObject GetFather(in SObject theObject); + + // Check if given object theObject is added to the use case tree + boolean IsUseCaseNode(in SObject theObject); + + // Get the current object of the use case builder + SObject GetCurrentObject(); + }; + + +.. _browse_use_case_tree: + +Browsing use case data tree +=========================== + +Browsing the use case tree can be done by means of the use case iterator, that is +provided by the **SALOMEDS::UseCaseIterator** interface of the **SALOMEDS CORBA** +module. Access to the use case iterator can be done via **SALOMEDS::UseCaseBuilder** +interface: + +:: + + interface UseCaseBuilder + { + // Get a reference to the use case iterator and initialize it + // by the given object theObject + UseCaseIterator GetUseCaseIterator(in SObject theObject); + }; + + +The API of the **SALOMEDS::UseCaseIterator** interface is similar to the +**SALOMEDS::ChildIterator**: + +:: + + interface UseCaseIterator + { + // Activate or reset use case iterator; boolean parameter allLevels + // specifies if the iterator should browse recursively on all sub-levels or + // on the first sub-level only. + void Init(in boolean allLevels); + // Check if the iterator can browse to the next item + boolean More(); + // Browse the iterator to the next object + void Next(); + // Get the object currently pointed by the iterator + SObject Value(); + }; + +Typical usage of the **UseCaseIterator** is as follows: + +:: + + // get use case builder + SALOMEDS::UseCaseBuilder_var useCaseBuilder = study->GetUseCaseBuilder(); + + // get the use case iterator + SALOMEDS::UseCaseIterator_var iter = useCaseIter->GetUseCaseIterator( sobject.in() ); + // iterate through the sub-items recursively + for ( useCaseIter->Init( true ); useCaseIter->More(); useCaseIter->Next() ) { + SALOMEDS::SObject_var child = useCaseIter->Value(); + // do something with the child + // ... + // clean-up + child->UnRegister(); + } + // clean-up + useCaseIter->UnRegister(); + useCaseBuilder->UnRegister(); + +.. _use_case_compatibility: + +Remark about compatibility with existing studies +================================================ + +If you decide to switch your module to the use case builder approach to provide +customization for the data tree representation, you must take care of compatibility +with existing SALOME studies. Basically it means that you have to add +a simple code to **Load()** (and **LoadASCII()** if necessary) method +of your module, which adds tree node attributes to all data entities +in the data tree of your module. The simplest way to do +this is to iterate through all data items and recursively add them to +the use case builder: + +:: + + // find component + SALOMEDS::SComponent_var comp = study->FindComponent( "MYMODULE" ); + // add tree node attributes only if component data is present in the study + if ( !CORBA::is_nil( comp ) ) { + // get the use case builder + SALOMEDS::UseCaseBuilder_var useCaseBuilder = study->GetUseCaseBuilder(); + // check if tree nodes are already set + if ( !useCaseBuilder->IsUseCaseNode( comp.in() ) ) { + // set the current node of the use case builder to the root + useCaseBuilder->SetRootCurrent(); + // add component item to the top level of the use case tree + useCaseBuilder->Append( comp.in() ); + // iterate through all child items recursively + SALOMEDS::ChildIterator_var iter = study->NewChildIterator( comp.in() ); + for ( iter->InitEx( true ); iter->More(); iter->Next() ) { + SALOMEDS::SObject_var sobj = iter->Value(); + SALOMEDS::SObject_var father = sobj->GetFather(); + // add an object to the corresponding level in the use case tree + useCaseBuilder->AppendTo( father.in(), sobj.in() ); + // clean up (avoid memory leaks) + sobj->UnRegister(); + father->UnRegister(); + } + } + useCaseBuilder->UnRegister(); // clean up + } + diff --git a/doc/salome/gui/input/using_catalog_generator.doc b/doc/salome/gui/input/using_catalog_generator.doc deleted file mode 100644 index d2208a7d2..000000000 --- a/doc/salome/gui/input/using_catalog_generator.doc +++ /dev/null @@ -1,65 +0,0 @@ -/*! - -\page using_catalog_generator_page Using Catalog Generator - -SALOME platform is an open platform for -integration of your custom components, which can used in the same way -as typical modules provided in the standard installed package. The -Catalog Generator tool serves for implementation of the interface of -your custom component. It allows to generate from IDL description of -your component interface its xml description. The component xml -description allows SALOME application to know about the component and -its services and provides the possibility to call the component -services, for example, inside Supervisor module. - -If you have a look at runSalome, -runSalomeWithPort scripts running SALOME application, which are stored -in build/bin directory you will see that SALOME_ModuleCatalog_Server -is started with two xml files as its input parameters: -\b CatalogModuleGeneral.xml and \b CatalogModulePersonnel.xml. These two -files store the descriptions of interfaces and services of all -components, provided with typical SALOME package. To add a new -component into SALOME platform you should either update one of these -existing xml files with generated xml description of your component or -create a new one. - -To open the Catalog Generator: -\par -From the main menu choose Tools > Catalog Generator, the following -dialog box will appear: - -\image html cataloggenerator.png - -
In this dialog box you can specify: -
    -
  • Name and location of the IDL file describing the interface of your -component (Click the \b Browse button to find it using the data tree).
  • -
  • Name and location of an existing XML file, which will be updated -with the interface of you component or name and desired location of a -new XML file, which will be generated (Click the \b Browse button to find -it using the data tree).
  • -
  • Name of the author.
  • -
  • Name of the component.
  • -
  • Name of the user.
  • -
  • Version.
  • -
  • Capability of multi study support.
  • -
  • Type of the component.
  • -
  • Icon of your component (Click the \b Browse button to find it using -the data tree).
  • -
- -\note If you have chosen to create a new xml file containing the -description of your component, don't forget to specify it as -input parameter for SALOME_ModuleCatalog_Server in the file, you are -using as a running script of SALOME platform (in runSalomeWithPort, -for example). - -When launching SALOME next time you will see your module alongside other components. - -\b Tip: You can use the Catalog Generator tool, if you would like to \b -test the functionality of your new component. After implementation of -your component interface, launch SUPERVISION module where you can try -using the services of your new component. (see also: Adding factory -nodes) - -*/ \ No newline at end of file diff --git a/doc/salome/gui/input/using_catalog_generator.rst b/doc/salome/gui/input/using_catalog_generator.rst new file mode 100755 index 000000000..b3aefc0bc --- /dev/null +++ b/doc/salome/gui/input/using_catalog_generator.rst @@ -0,0 +1,59 @@ +.. _using_catalog_generator_page: + +*********************** +Using Catalog Generator +*********************** + +SALOME platform is an open platform for +integration of your custom components, which can used in the same way +as typical modules provided in the standard installed package. The +**Catalog Generator** tool serves for implementation of the interface of +your custom component. It allows to generate from IDL description of +your component interface its xml description. The component xml +description allows SALOME application to know about the component and +its services and provides the possibility to call the component +services, for example, inside Supervisor module. + +If you have a look at runSalome, +runSalomeWithPort scripts running SALOME application, which are stored +in build/bin directory you will see that SALOME_ModuleCatalog_Server +is started with two xml files as its input parameters: +**CatalogModuleGeneral.xml** and **CatalogModulePersonnel.xml**. These two +files store the descriptions of interfaces and services of all +components, provided with typical SALOME package. To add a new +component into SALOME platform you should either update one of these +existing xml files with generated xml description of your component or +create a new one. + +*To open the Catalog Generator:* + +From the main menu choose **Tools > Catalog Generator**, the following +dialog box will appear: + +.. image:: ../images/cataloggenerator.png + :align: center + +In this dialog box you can specify: + +* Name and location of the IDL file describing the interface of your component (Click the **Browse** button to find it using the data tree). +* Name and location of an existing XML file, which will be updated with the interface of you component or name and desired location of a new XML file, which will be generated (Click the **Browse** button to find it using the data tree). +* Name of the author. +* Name of the component. +* Name of the user. +* Version. +* Capability of multi study support. +* Type of the component. +* Icon of your component (Click the **Browse** button to find it using the data tree). + + +.. note:: + If you have chosen to create a new xml file containing the description of your component, don't forget to specify it as input parameter for SALOME_ModuleCatalog_Server in the file, you are using as a running script of SALOME platform (in runSalomeWithPort, for example). + +When launching SALOME next time you will see your module alongside other components. + +**Tip:** You can use the **Catalog Generator** tool, if you would like to +**test** the functionality of your new component. After implementation of +your component interface, launch SUPERVISION module where you can try +using the services of your new component. (see also: Adding factory +nodes) + diff --git a/doc/salome/gui/input/using_find_tool.doc b/doc/salome/gui/input/using_find_tool.doc deleted file mode 100644 index add541a3b..000000000 --- a/doc/salome/gui/input/using_find_tool.doc +++ /dev/null @@ -1,76 +0,0 @@ -/*! - -\page using_find_tool_page Using Find Tool - -The Object Browser is supplied with the \b Find toolbox. This tool -allows performing context search of the items in the Object Browser: - -\image html findtool1.png - -The \b Find toolbox can be invoked in several ways: -- Pressing \a <Ctrl>-<F> key combination starts a new -search; the text previously input by the user in the edit control of -the \b Find toolbox is automatically selected. -- Pressing \a </> (slash) key starts a new search; the text -previously input by the user is cleared. -- Pressing \a <F3> key repeats the previous search in the forward -direction (from top to bottom). -- Pressing \a <Shift>-<F3> key repeats the previous search in -the backward direction (from bottom to top). -- Activating \a Find command from the Object Browser context popup -menu starts a new search (the same as \a <Ctrl>-<F>). - -Pressing \a <Escape> key closes the \b Find toolbox. - -The search is always started from the first selected item in -the Object Browser. If there are no selected items, the search is -started from the top of the Object Browser contents. If there is an -item which satisfies the search conditions, it is selected and the -Object Browser is expanded to show this item (if it is collapsed). - -The \b Find toolbox provides a set of widgets which are used to -perform the search operations or change the search conditions: -- \a "Close" button closes the \b Find toolbox. -- Line edit box is used to input the searched text. Note that the -search is always done by the object name, i.e. by the data displayed -in the "Name" column of the Object Browser. -- \a "Find first item" button searches the very first item -which satisfies the search conditions. -- \a "Find previous item" button searches the previous item -which satisfies the search conditions. -- \a "Find next item" button searches the next item -which satisfies the search conditions. -- \a "Find last item" button searches the very last item -which satisfies the search conditions. -- \a "Case sensitive" check box allows performing case sensitive -search. -- \a "Regular Expression" check box allows performing the search of the -items by the regular expression, for example: - - Face - matches all faces - - Face_[\\d] - matches Face_1, Face_2, etc.. (all faces) - - Face_[\\d]$ - matches Face_1, Face_2, but does not match Face_11, Face_12. - - ^Face_[\\d]$ - the same as above - - ^ Face_[\\d]$ - matches nothing - -- \a "Wrap search" check box: if checked and the search -reaches the last item, satisfying the search conditions, pressing \a "Find -Next" button moves the selection to the very first item which matches -the search conditions (i.e. a cyclic search is performed). - -If there are no items satisfying the search -conditions in the Object Browser, the edit control of the \b Find toolbox becomes -red-colored: - -\image html findtool2.png - -The \b Find toolbox also has an auto-hiding feature. This works as -follows: -- If the input focus is inside the \b Find toolbox, auto-hiding is -automatically deactivated. -- If the input focus moves outside the \b Find toolbox, it hides -automatically in 10 seconds after the last search operation (which can -be done by clicking \a "Find Next", \a "Find Previous" button, or typing -something in the edit field); each new search operation -restarts the auto-hide timer. - -*/ diff --git a/doc/salome/gui/input/using_find_tool.rst b/doc/salome/gui/input/using_find_tool.rst new file mode 100755 index 000000000..c630d026c --- /dev/null +++ b/doc/salome/gui/input/using_find_tool.rst @@ -0,0 +1,59 @@ +.. _using_find_tool_page: + +*************** +Using Find Tool +*************** + +The **Object Browser** is supplied with the **Find** toolbox. This tool +allows performing context search of the items in the Object Browser: + +.. image:: ../images/findtool1.png + :align: center + +The **Find** toolbox can be invoked in several ways: + +- Pressing :kbd:`Ctrl-F` key combination starts a new search; the text previously input by the user in the edit control of the **Find** toolbox is automatically selected. +- Pressing :kbd:`/` (slash) key starts a new search; the text previously input by the user is cleared. +- Pressing :kbd:`F3` key repeats the previous search in the forward direction (from top to bottom). +- Pressing :kbd:`Shift-F3` key repeats the previous search in the backward direction (from bottom to top). +- Activating *Find* command from the Object Browser context popup menu starts a new search (the same as :kbd:`Ctrl-F`). + +Pressing :kbd:`Escape` key closes the **Find** toolbox. + +The search is always started from the first selected item in +the Object Browser. If there are no selected items, the search is +started from the top of the Object Browser contents. If there is an +item which satisfies the search conditions, it is selected and the +Object Browser is expanded to show this item (if it is collapsed). + +The **Find** toolbox provides a set of widgets which are used to +perform the search operations or change the search conditions: + +- *"Close"* button closes the **Find** toolbox. +- Line edit box is used to input the searched text. Note that the search is always done by the object name, i.e. by the data displayed in the "Name" column of the Object Browser. +- *"Find first item"* button searches the very first item which satisfies the search conditions. +- *"Find previous item"* button searches the previous item which satisfies the search conditions. +- *"Find next item"* button searches the next item which satisfies the search conditions. +- *"Find last item"* button searches the very last item which satisfies the search conditions. +- *"Case sensitive"* check box allows performing case sensitive search. +- *"Regular Expression"* check box allows performing the search of the items by the regular expression, for example: + + - *Face* - matches all faces + - *Face_[\\d]* - matches Face_1, Face_2, etc.. (all faces) + - *Face_[\\d]$* - matches Face_1, Face_2, but does not match Face_11, Face_12. + - *^Face_[\\d]$* - the same as above + - *^ Face_[\\d]$* - matches nothing + +- *"Wrap search"* check box: if checked and the search reaches the last item, satisfying the search conditions, pressing *"Find Next"* button moves the selection to the very first item which matches the search conditions (i.e. a cyclic search is performed). + + If there are no items satisfying the search conditions in the Object Browser, the edit control of the **Find** toolbox becomes red-colored: + +.. image:: ../images/findtool2.png + :align: center + +The **Find** toolbox also has an auto-hiding feature. This works as follows: + +- If the input focus is inside the **Find** toolbox, auto-hiding is automatically deactivated. +- If the input focus moves outside the **Find** toolbox, it hides automatically in 10 seconds after the last search operation (which can be done by clicking * "Find Next"*, *"Find Previous"* button, or typing something in the edit field); each new search operation restarts the auto-hide timer. + + diff --git a/doc/salome/gui/input/using_input_widgets.doc b/doc/salome/gui/input/using_input_widgets.rst similarity index 51% rename from doc/salome/gui/input/using_input_widgets.doc rename to doc/salome/gui/input/using_input_widgets.rst index bf0d0d8e4..555ca6b2d 100755 --- a/doc/salome/gui/input/using_input_widgets.doc +++ b/doc/salome/gui/input/using_input_widgets.rst @@ -1,38 +1,32 @@ -/*! +.. _using_input_widgets_page: -\page using_input_widgets_page Using input widgets +******************* +Using input widgets +******************* This section contains some hints that might be useful when working with SALOME GUI input widgets. -

Spin boxes

+Spin boxes +########## This type of widgets is used for numeric (integer or floating-point) -data input. Spin boxes are used in standard \b SALOME modules if the +data input. Spin boxes are used in standard **SALOME** modules if the input value has a clearly defined input range (and precision in case of a floating-point value). -Input precision has a specific semantics in \b SALOME floating-point +Input precision has a specific semantics in **SALOME** floating-point spin boxes: -- Positive precision value means that a number in the fixed-point format -(corresponding to the "f" format specifier for C printf function) is -expected. Positive precision value is the maximum allowed number of -digits after the decimal separator. -- Negative precision value means that a number either in the fixed-point -or the scientific (exponetial) format is expected. This is similar to the -behavior of the "g" format specifier for C printf function. Negative -precision value is the maximum allowed number of significant digits in -mantissa (note that one digit is always before the decimal separator). + +- Positive precision value means that a number in the fixed-point format (corresponding to the "f" format specifier for C printf function) is expected. Positive precision value is the maximum allowed number of digits after the decimal separator. +- Negative precision value means that a number either in the fixed-point or the scientific (exponetial) format is expected. This is similar to the behavior of the "g" format specifier for C printf function. Negative precision value is the maximum allowed number of significant digits in mantissa (note that one digit is always before the decimal separator). To make the user aware of an input value constraints applied by some -\b SALOME operations, the following basic capabilties are provided by -spin boxes: -- The text input manually in a spin box by the user is checked to be a -number of valid type (integer or floating-point). -- The text is converted to a number and checked to be within the valid -range. -- Additionally, for floating-point data the input text is checked -against the precision rules described above. +**SALOME** operations, the following basic capabilties are provided by spin boxes: + +- The text input manually in a spin box by the user is checked to be a number of valid type (integer or floating-point). +- The text is converted to a number and checked to be within the valid range. +- Additionally, for floating-point data the input text is checked against the precision rules described above. If the input text in a spin box does not meet the constraints, the user is shown a message in a @@ -40,25 +34,26 @@ tooltip near the spin box just as he types in it. The tooltip contains information about the valid data range. For a floating-point input, the tooltip also contains information about the expected precision. -In standard \b SALOME modules the precision value can be adjusted through -\ref setting_preferences_page "user preferences" of the correspodning modules, and the tooltip contains a +In standard **SALOME** modules the precision value can be adjusted through +:ref:`setting_preferences_page` of the correspodning modules, and the tooltip contains a reference to the corresponding parameter in the preferences. On-line documentation for each standard SALOME module contains the list of user preferences that can be used for tuning floating-point precision for different types of input quantities. -

Spin boxes and SALOME Notebook

+Spin boxes and SALOME Notebook +############################## -Apart from the numeric input, spin boxes in some \b SALOME modules accept -the names of \b Notebook variables (see \ref using_notebook "Using Notebook" -page for more details about \b Notebook). +Apart from the numeric input, spin boxes in some **SALOME** modules accept +the names of **Notebook** variables (see :ref:`using_notebook` +page for more details about **Notebook**). If a spin box accepts variable names, then it is additionally checked whether the manually input text represents a variable name. Variable -names should comply with the common naming rules for \b Python variables. +names should comply with the common naming rules for **Python** variables. If the input is neither a valid number nor a variable name, the tooltip informs the user that variable names are also acceptable in this spin box. -*/ + diff --git a/doc/salome/gui/input/using_notebook.doc b/doc/salome/gui/input/using_notebook.doc deleted file mode 100644 index ea7e81eeb..000000000 --- a/doc/salome/gui/input/using_notebook.doc +++ /dev/null @@ -1,40 +0,0 @@ -/*! - -\page using_notebook Using NoteBook - -SALOME NoteBook allows to predefine numerical and boolean -parameters (variables). - -By default, the NoteBook is located in a tabbed widget to the left (shared with the Object Browser). - -\image html notebook1.png - -To hide/show this tab choose View > Windows > Notebook. - -Here you can add new variables, remove and rename existing variables and -change their values. - -If you have modified some variables, which are already used in the current -study, you should click Update Study button to apply your changes -to the study. - -\note The study can not be updated until at least one of the variables in -the table has an invalid name or value (marked by red color). The names of -variables should be unique and their values should be numerical (integer or -double) or boolean ("True" / "False"). - -Here is an example of setting variables in python scripts: -\code -import salome_notebook - -notebook = salome_notebook.notebook - -notebook.set("Length", 100) -notebook.set("Radius", 37.5) -notebook.set("Flag", True) -\endcode - -Later these values can be used as parameters for any operations in -various components. - -*/ diff --git a/doc/salome/gui/input/using_notebook.rst b/doc/salome/gui/input/using_notebook.rst new file mode 100755 index 000000000..f4f4fbb99 --- /dev/null +++ b/doc/salome/gui/input/using_notebook.rst @@ -0,0 +1,43 @@ +.. _using_notebook: + +************** +Using NoteBook +************** + +SALOME **NoteBook** allows to predefine numerical and boolean +parameters (variables). + +By default, the **NoteBook** is located in a tabbed widget to the left (shared with the Object Browser). + +.. image:: ../images/notebook1.png + :align: center + +To hide/show this tab choose **View > Windows > Notebook**. + +Here you can add new variables, remove and rename existing variables and +change their values. + +If you have modified some variables, which are already used in the current +study, you should click **Update Study** button to apply your changes +to the study. + +.. note:: + The study can not be updated until at least one of the variables in the table has an invalid name or value (marked by red color). The names of variables should be unique and their values should be numerical (integer or double) or boolean ("True" / "False"). + +Here is an example of setting variables in python scripts: + +.. code-block:: python + :linenos: + + import salome_notebook + + notebook = salome_notebook.notebook + + notebook.set("Length", 100) + notebook.set("Radius", 37.5) + notebook.set("Flag", True) + +Later these values can be used as parameters for any operations in +various components. + + diff --git a/doc/salome/gui/input/using_object_browser.doc b/doc/salome/gui/input/using_object_browser.doc deleted file mode 100644 index d147ad329..000000000 --- a/doc/salome/gui/input/using_object_browser.doc +++ /dev/null @@ -1,52 +0,0 @@ -/*! - -\page using_object_browser_page Using Object Browser - -The Object Browser in SALOME is destined for displaying the -structure of the current study in a tree-like form. It contains: - -
    -
  • components, loaded during the current session
  • -
  • objects created with the help of different components (The objects -created with the help of a definite component are located in the -folder having the name of this component) -
  • -
  • references to different objects (they are highlighted in red)
  • -
- -\image html objectbrowser1.png - -\note The Object Browser is destined to getting quick access to -different objects created during SALOME session. All pop-up menus -associated with the objects displayed in the Object Browser are -context-sensitive. So it depends on a definite currently loaded SALOME -component what options you will see in the pop-up menu, if you -right-click on a definite object in the Object Browser. - -The Object Browser may contain supplementary attributes of the objects -displayed in additional columns. By default, these columns are not -displayed - displaying/hiding these columns is possible through -\ref setting_preferences_page "setting study preferences" or -right-clicking on the attributes bar and toggling the necessary -attributes. - -\image html objectbrowser2.png - -- \b Name; -- \b Entry - Identification index of the object in the structure of the study; -- \b IOR - Interoperable Object Reference; -- Reference entry - Identification index of the references to the objects; -- \b Value - Displays the value of the first object attribute. - -\note Entry, IOR and Reference entry attributes are displayed for debugging purposes only. - -

Sorting

- -By default the objects in the object browser are sorted in the creation order. -\n -However, it is possible to enable sorting in the alphabetical order (or the reverse alphabetical order) by right clicking in the header of the tree (near the \b Name field) and checking "enable sorting" in the context menu. -\n -It is possible to use the arrow near "Name" to reverse the order. -If "enable sorting" is unchecked, the objects are sorted in the default order again. - -*/ diff --git a/doc/salome/gui/input/using_object_browser.rst b/doc/salome/gui/input/using_object_browser.rst new file mode 100755 index 000000000..fd953b70d --- /dev/null +++ b/doc/salome/gui/input/using_object_browser.rst @@ -0,0 +1,48 @@ +.. _using_object_browser_page: + +******************** +Using Object Browser +******************** + +The **Object Browser** in SALOME is destined for displaying the +structure of the current study in a tree-like form. It contains: + +* components, loaded during the current session +* objects created with the help of different components (The objects created with the help of a definite component are located in the folder having the name of this component) +* references to different objects (they are highlighted in red) + +.. image:: ../images/objectbrowser1.png + :align: center + +.. note:: + The **Object Browser** is destined to getting quick access to different objects created during SALOME session. All pop-up menus associated with the objects displayed in the Object Browser are context-sensitive. So it depends on a definite currently loaded SALOME component what options you will see in the pop-up menu, if you right-click on a definite object in the Object Browser. + +The Object Browser may contain supplementary attributes of the objects +displayed in additional columns. By default, these columns are not +displayed - displaying/hiding these columns is possible through +:ref:`setting_preferences_page` or right-clicking on the attributes bar and toggling the necessary +attributes. + +.. image:: ../images/objectbrowser2.png + :align: center + +- **Name**; +- **Entry** - Identification index of the object in the structure of the study; +- **IOR** - Interoperable Object Reference; +- **Reference entry** - Identification index of the references to the objects; +- **Value** - Displays the value of the first object attribute. + +.. note:: **Entry, IOR and Reference entry** attributes are displayed for debugging purposes only. + +Sorting +####### + +By default the objects in the object browser are sorted in the creation order. + +However, it is possible to enable sorting in the alphabetical order (or the reverse alphabetical order) by right clicking in the header of the tree (near the **Name** field) and checking "enable sorting" in the context menu. + +It is possible to use the arrow near "Name" to reverse the order. + +If "enable sorting" is unchecked, the objects are sorted in the default order again. + + diff --git a/doc/salome/gui/input/using_pluginsmanager.doc b/doc/salome/gui/input/using_pluginsmanager.doc deleted file mode 100644 index bff116f05..000000000 --- a/doc/salome/gui/input/using_pluginsmanager.doc +++ /dev/null @@ -1,208 +0,0 @@ -/*! - -\page using_pluginsmanager Extend SALOME gui functions using python plugins - --# \ref S1_SALOMEPLUGINS --# \ref S2_SALOMEPLUGINS --# \ref S3_SALOMEPLUGINS --# \ref S4_SALOMEPLUGINS --# \ref S5_SALOMEPLUGINS - -\section S1_SALOMEPLUGINS Objectives - -The SALOME python plugin manager allows the end user to extend the -graphic interface of SALOME with custom functions written as python -modules. The screenshots below show the example of a tool that creates -a mesh from a set of geometrical parameters with the support of -simple graphical interface: - -The default menu for plugins is "Tool->Extensions": -\image html SALOME_pythonplugins_menu.png - -In this example, the plugin provides a small interface to input the -parameters (not provided by the plugin manager): -\image html SALOME_pythonplugins_dialog.png - -Then creates the mesh model: -\image html SALOME_pythonplugins_result.png - -In this example, the end user has to write: - --# the python script that creates the mesh from the parameters, using - the GEOM and SMESH python interface, as in a classic use case, --# the dialog box in PyQt to input the parameters, --# the file salome_plugins.py that declares the plugins. - -This page explains only the last point. - -\section S2_SALOMEPLUGINS Principles - -The general form of the file salome_plugins.py is: - -\code -import salome_pluginsmanager - -# Creation of the plugin -def myplugin1(context): - ... - # Here is the code of the plugin myplugin1 - ... - -def myplugin2(context): - ... - # Here is the code of the plugin myplugin2 - ... - -# Declaration of the plugins to the pluginsmanager -salome_pluginsmanager.AddFunction('My plugin n°1', 'This action runs the plugin n°1', myplugin1) -salome_pluginsmanager.AddFunction('My plugin n°2', 'This action runs the plugin n°2', myplugin2) -... -\endcode - -The procedure is to define a function that implements the plugin, and -to declare this function to the plugins manager. The implementation -can be very variable. It is advisable to consider this function as a -proxy to your code that you can manage in a python package -installed in the standard SALOME python directories. - -In this code, the variable "context" is automatically transmitted by -the pluginmanager when you request the plugin. This context provides -you with at least the following attributes: - -\code -activeStudy = context.study -salomegui = context.sg -\endcode - -Once written, this script salome_plugin.py has to be moved to a -specific place on your filesystem where SALOME is programmed to search -for plugins. The possible directories are (in search order): - --# The directory <*_ROOT_DIR>/share/salome/plugins/, when - this plugin is developped in the framework of a SALOME module - (<*_ROOT_DIR> is the root installation directory of the module, and - is the name of the module in low letters). --# The directory ~/.config/salome/Plugins for personnal end user - plugins. --# Any path in the shell variable SALOME_PLUGINS_PATH (each path must be - separated by a comma ":" for unix and ";" for windows). This - variable should be set and exported before running the SALOME application. - -\section S3_SALOMEPLUGINS A complete example - -Suppose that you write a SALOME script that creates a trihedron for each of -your studies (a simple and standard SALOME script, that every end user -is capable to write if he reads the documentation and follows the -training course): - -\code -# Intialize the geompy factory with the active study -import salome -import GEOM -from salome.geom import geomBuilder -geompy = geomBuilder.New(salome.myStudy) - -# Create the objects -Vx = geompy.MakeVectorDXDYDZ(10, 0, 0) -Vy = geompy.MakeVectorDXDYDZ(0, 10, 0) -Vz = geompy.MakeVectorDXDYDZ(0, 0, 10) -origin = geompy.MakeVertex(0, 0, 0) - -# Register the objects in the active study -geompy.addToStudy( Vx, "Vx" ) -geompy.addToStudy( Vy, "Vy" ) -geompy.addToStudy( Vz, "Vz" ) -geompy.addToStudy( origin, "origin" ) -\endcode - -The job consists in creating the file salome_plugins.py as follows: - -\code -import salome_pluginsmanager -def trihedron(context): - import GEOM - from salome.geom import geomBuilder - geompy = geomBuilder.New(salome.myStudy) - # Intialize the geompy factory with the active study - activeStudy = context.study - geompy.init_geom(activeStudy) - # Create the objects - Vx = geompy.MakeVectorDXDYDZ(10, 0, 0) - Vy = geompy.MakeVectorDXDYDZ(0, 10, 0) - Vz = geompy.MakeVectorDXDYDZ(0, 0, 10) - origin = geompy.MakeVertex(0, 0, 0) - # Register the objects in the active study - geompy.addToStudy( Vx, "Vx" ) - geompy.addToStudy( Vy, "Vy" ) - geompy.addToStudy( Vz, "Vz" ) - geompy.addToStudy( origin, "origin" ) - -# Register the function in the plugin manager -salome_pluginsmanager.AddFunction('O,Vx,Vy,Vz', - 'Creates the trihedron', - trihedron) - -\endcode - -Move this script in the directory -~/.config/salome/Plugins, run SALOME and enjoy your new function. - -\section S4_SALOMEPLUGINS How to select an object of the object browser - -Sometimes it can be useful to retrieve an object of the object browser to perform -an action on it, for example, to select a mesh and display some information related to it. - -Some important methods and objects to use are as follows: --# context.sg.getObjectBrowser(): to connect the signal event - `selectionChanged()` to a custom slot --# context.salome.sg.getAllSelected(): to get the list of selected object - in the object browser --# objId = context.salome.sg.getSelected(0): - to get the first selected object in the object browser --# salomeObj = context.salome.study.FindObjectID(objId).GetObject(): - to retrieve the salome object from selection. It can be a GEOM, SMESH, or any - other module object. - - If it is a mesh, then it is possible to call methods of the SMESH::SMESH_Mesh interface - on the object, for example GetShapeToMesh(). - If it is not a mesh, this call will raise an exception. - So it is possible to write the code retrieving the shape a mesh is built on in the following way: -\code -mesh = None -try: - shape = salomeObj.GetShapeToMesh() -except: - print "The selection is not a mesh" -\endcode - -An example of those methods is available with the demo examples. -See the next chapter \ref S5_SALOMEPLUGINS. - -\section S5_SALOMEPLUGINS Other examples - -The GUI module provides you with some basic demo examples located in -the directory src/SalomeApp/pluginsdemo of the source space and -installed in the directory $GUI_ROOT_DIR/share/salome/plugins/gui/demo. - -\note These examples are automatically installed when you install the GUI -but are not activated. To activate the plugins, edit the file -$GUI_ROOT_DIR/share/salome/plugins/gui/demo/salome_plugins.py and turn the -variable DEMO_IS_ACTIVATED to True. - -The demo examples are: --# \b trihedron: create a trihedron and display it with fit on the size --# \b tube_shapewithgui: create a geom object from parameters given by a - dialog box. --# \b tube_meshwithgui: create a mesh object from parameters given by a - dialog box. This illustrates that a plugin can work with more than - one SALOME module. --# \b tube_shapewithguiAndPreview: same than tube_shapewithgui but with - an additionnal preview function (button apply in the dialog box). --# \b runSalomeShellSession: run a SALOME prepared shell session in a - xterm. --# \b minmax: computes the min and max values of a control on a selected mesh. - \note This plugin is available in the SMESH module only. To activate it, edit - the file $GUI_ROOT_DIR/share/salome/plugins/gui/demo/smesh_plugins.py and turn the variable - DEMO_IS_ACTIVATED to True. - -*/ diff --git a/doc/salome/gui/input/using_pluginsmanager.rst b/doc/salome/gui/input/using_pluginsmanager.rst new file mode 100755 index 000000000..db6de3509 --- /dev/null +++ b/doc/salome/gui/input/using_pluginsmanager.rst @@ -0,0 +1,218 @@ + + +.. _using_pluginsmanager: + +************************************************ +Extend SALOME gui functions using python plugins +************************************************ + +#. :ref:`S1_SALOMEPLUGINS` +#. :ref:`S2_SALOMEPLUGINS` +#. :ref:`S3_SALOMEPLUGINS` +#. :ref:`S4_SALOMEPLUGINS` +#. :ref:`S5_SALOMEPLUGINS` + +.. _S1_SALOMEPLUGINS: + +Objectives +========== + +The SALOME python plugin manager allows the end user to extend the +graphic interface of SALOME with custom functions written as python +modules. The screenshots below show the example of a tool that creates +a mesh from a set of geometrical parameters with the support of +simple graphical interface: + +The default menu for plugins is "Tool->Extensions": + +.. image:: ../images/SALOME_pythonplugins_menu.png + :align: center + +In this example, the plugin provides a small interface to input the +parameters (not provided by the plugin manager): + +.. image:: ../images/SALOME_pythonplugins_dialog.png + :align: center + +Then creates the mesh model: + +.. image:: ../images/SALOME_pythonplugins_result.png + :align: center + +In this example, the end user has to write: + +#. the python script that creates the mesh from the parameters, using the GEOM and SMESH python interface, as in a classic use case, +#. the dialog box in PyQt to input the parameters, +#. the file salome_plugins.py that declares the plugins. + +This page explains only the last point. + +.. _S2_SALOMEPLUGINS: + +Principles +========== + +The general form of the file salome_plugins.py is: + +.. code-block:: python + :linenos: + + import salome_pluginsmanager + + # Creation of the plugin + def myplugin1(context): + ... + # Here is the code of the plugin myplugin1 + ... + + def myplugin2(context): + ... + # Here is the code of the plugin myplugin2 + ... + + # Declaration of the plugins to the pluginsmanager + salome_pluginsmanager.AddFunction('My plugin n°1', 'This action runs the plugin n°1', myplugin1) + salome_pluginsmanager.AddFunction('My plugin n°2', 'This action runs the plugin n°2', myplugin2) + ... + +The procedure is to define a function that implements the plugin, and +to declare this function to the plugins manager. The implementation +can be very variable. It is advisable to consider this function as a +proxy to your code that you can manage in a python package +installed in the standard SALOME python directories. + +In this code, the variable "context" is automatically transmitted by +the pluginmanager when you request the plugin. This context provides +you with at least the following attributes: + +.. code-block:: python + :linenos: + + activeStudy = context.study + salomegui = context.sg + +Once written, this script salome_plugin.py has to be moved to a +specific place on your filesystem where SALOME is programmed to search +for plugins. The possible directories are (in search order): + +#. The directory <\*_ROOT_DIR>/share/salome/plugins/, when this plugin is developped in the framework of a SALOME module (<\*_ROOT_DIR> is the root installation directory of the module, and is the name of the module in low letters). +#. The directory ~/.config/salome/Plugins for personnal end user plugins. +#. Any path in the shell variable SALOME_PLUGINS_PATH (each path must be separated by a comma ":" for unix and ";" for windows). This variable should be set and exported before running the SALOME application. + +.. _S3_SALOMEPLUGINS: + +A complete example +================== + +Suppose that you write a SALOME script that creates a trihedron for each of +your studies (a simple and standard SALOME script, that every end user +is capable to write if he reads the documentation and follows the +training course): + +.. code-block:: python + :linenos: + + # Intialize the geompy factory with the active study + import salome + import GEOM + from salome.geom import geomBuilder + geompy = geomBuilder.New(salome.myStudy) + + # Create the objects + Vx = geompy.MakeVectorDXDYDZ(10, 0, 0) + Vy = geompy.MakeVectorDXDYDZ(0, 10, 0) + Vz = geompy.MakeVectorDXDYDZ(0, 0, 10) + origin = geompy.MakeVertex(0, 0, 0) + + # Register the objects in the active study + geompy.addToStudy( Vx, "Vx" ) + geompy.addToStudy( Vy, "Vy" ) + geompy.addToStudy( Vz, "Vz" ) + geompy.addToStudy( origin, "origin" ) + +The job consists in creating the file salome_plugins.py as follows: + +.. code-block:: python + :linenos: + + import salome_pluginsmanager + def trihedron(context): + import GEOM + from salome.geom import geomBuilder + geompy = geomBuilder.New(salome.myStudy) + # Intialize the geompy factory with the active study + activeStudy = context.study + geompy.init_geom(activeStudy) + # Create the objects + Vx = geompy.MakeVectorDXDYDZ(10, 0, 0) + Vy = geompy.MakeVectorDXDYDZ(0, 10, 0) + Vz = geompy.MakeVectorDXDYDZ(0, 0, 10) + origin = geompy.MakeVertex(0, 0, 0) + # Register the objects in the active study + geompy.addToStudy( Vx, "Vx" ) + geompy.addToStudy( Vy, "Vy" ) + geompy.addToStudy( Vz, "Vz" ) + geompy.addToStudy( origin, "origin" ) + + # Register the function in the plugin manager + salome_pluginsmanager.AddFunction('O,Vx,Vy,Vz', + 'Creates the trihedron', + trihedron) + + +Move this script in the directory ~/.config/salome/Plugins, run SALOME and enjoy your new function. + +.. _S4_SALOMEPLUGINS: + +How to select an object of the object browser +============================================= + +Sometimes it can be useful to retrieve an object of the object browser to perform +an action on it, for example, to select a mesh and display some information related to it. + +Some important methods and objects to use are as follows: + +#. context.sg.getObjectBrowser(): to connect the signal event `selectionChanged()` to a custom slot +#. context.salome.sg.getAllSelected(): to get the list of selected object in the object browser +#. objId = context.salome.sg.getSelected(0): to get the first selected object in the object browser +#. salomeObj = context.salome.study.FindObjectID(objId).GetObject(): to retrieve the salome object from selection. It can be a GEOM, SMESH, or any other module object. + + If it is a mesh, then it is possible to call methods of the SMESH::SMESH_Mesh interface + on the object, for example GetShapeToMesh(). + If it is not a mesh, this call will raise an exception. + So it is possible to write the code retrieving the shape a mesh is built on in the following way: + +.. code-block:: python + :linenos: + + mesh = None + try: + shape = salomeObj.GetShapeToMesh() + except: + print "The selection is not a mesh" + +An example of those methods is available with the demo examples. +See the next chapter :ref:`S5_SALOMEPLUGINS`. + +.. _S5_SALOMEPLUGINS: + +Other examples +============== + +The GUI module provides you with some basic demo examples located in +the directory src/SalomeApp/pluginsdemo of the source space and +installed in the directory $GUI_ROOT_DIR/share/salome/plugins/gui/demo. + +.. note:: These examples are automatically installed when you install the GUI but are not activated. To activate the plugins, edit the file $GUI_ROOT_DIR/share/salome/plugins/gui/demo/salome_plugins.py and turn the variable DEMO_IS_ACTIVATED to True. + +The demo examples are: + +#. **trihedron:** create a trihedron and display it with fit on the size +#. **tube_shapewithgui:** create a geom object from parameters given by a dialog box. +#. **tube_meshwithgui:** create a mesh object from parameters given by a dialog box. This illustrates that a plugin can work with more than one SALOME module. +#. **tube_shapewithguiAndPreview:** same than tube_shapewithgui but with an additionnal preview function (button apply in the dialog box). +#. **runSalomeShellSession:** run a SALOME prepared shell session in a xterm. +#. **minmax:** computes the min and max values of a control on a selected mesh. + .. note:: This plugin is available in the SMESH module only. To activate it, edit the file $GUI_ROOT_DIR/share/salome/plugins/gui/demo/smesh_plugins.py and turn the variable DEMO_IS_ACTIVATED to True. + + diff --git a/doc/salome/gui/input/using_registry_tool.doc b/doc/salome/gui/input/using_registry_tool.doc deleted file mode 100644 index a652a78ea..000000000 --- a/doc/salome/gui/input/using_registry_tool.doc +++ /dev/null @@ -1,49 +0,0 @@ -/*! - -\page using_registry_tool_page Using Registry tool - -\b Registry tool is in the SALOME platform is destined for providing -information about the processes (components), which have ever been -launched in the current study session. - -To view the Registry: -\par -From the main menu choose Tools > Registry display, the -following dialog box will appear: - -\image html registry1.png - -\b Running tab of this dialog box displays a list of the currently -started processes (components) with supplementary information on each -of them divided into columns: - -
    -
  • \b Component: name of the started component -
  • \b PID: process identification number -
  • \b User \b Name: name of the user launching the component -
  • \b Machine: name of the machine, on which the process has been started -
  • \b begins: date and time of the starting of the component -
  • \b hello: date and time of the last call to the component -
- -\b History tab displays a list of all processes, which have ever been -launched within this study session. It contains the same supplementary -information on each of the processes (components). - -\b Refresh button allows to refresh the current list of processes -(components). - -\b Interval button allows to set an interval for refreshment of the -current list of processes (components). - -\image html registry3.png - -To display complete information on a definite process -(component): -\par -Double-click on this process (component). The following window will -appear: - -\image html registry4.png - -*/ \ No newline at end of file diff --git a/doc/salome/gui/input/using_registry_tool.rst b/doc/salome/gui/input/using_registry_tool.rst new file mode 100755 index 000000000..863a26ea6 --- /dev/null +++ b/doc/salome/gui/input/using_registry_tool.rst @@ -0,0 +1,49 @@ +.. _using_registry_tool_page: + +******************* +Using Registry tool +******************* + +**Registry** tool is in the SALOME platform is destined for providing +information about the processes (components), which have ever been +launched in the current study session. + +*To view the Registry:* + +From the main menu choose **Tools > Registry display**, the +following dialog box will appear: + +.. image:: ../images/registry1.png + :align: center + +**Running** tab of this dialog box displays a list of the currently +started processes (components) with supplementary information on each +of them divided into columns: + +* **Component:** name of the started component +* **PID:** process identification number +* **User Name:** name of the user launching the component +* **Machine:** name of the machine, on which the process has been started +* **begins:** date and time of the starting of the component +* **hello:** date and time of the last call to the component + +**History** tab displays a list of all processes, which have ever been +launched within this study session. It contains the same supplementary +information on each of the processes (components). + +**Refresh** button allows to refresh the current list of processes +(components). + +**Interval** button allows to set an interval for refreshment of the +current list of processes (components). + +.. image:: ../images/registry3.png + :align: center + +*To display complete information on a definite process (component):* + +Double-click on this process (component). The following window will appear: + +.. image:: ../images/registry4.png + :align: center + diff --git a/doc/salome/gui/input/viewers_chapter.doc b/doc/salome/gui/input/viewers_chapter.doc deleted file mode 100644 index 8b07f1cdf..000000000 --- a/doc/salome/gui/input/viewers_chapter.doc +++ /dev/null @@ -1,38 +0,0 @@ -/*! - -\page viewers_page Viewers - - - -SALOME GUI module includes several 2D and 3D viewers, that are used for -different purposes within the platform: - -- \subpage occ_3d_viewer_page has been developed on -the basis of Open CASCADE Technology (http://www.opencascade.org). -This is the default viewer for SALOME Geometry module, it provides good -representation of construction and transformation of geometrical objects. - -- \subpage vtk_3d_viewer_page has been developed -basing on Kitware Visualization ToolKit library (http://www.vtk.org). -This is the default viewer for SALOME Mesh module, where it is used -for visualization of meshes. - -OCC and VTK 3d viewers share some \subpage common_functionality_page "common functionality". - -- \subpage plot2d_viewer_page has been developed -basing on the open-source Qwt library (http://qwt.sourceforge.net). -It can be used, for example, for the representation of 2D plots and graphs. - -- \subpage gl_2d_viewer_page is a general purpose -OpenGL-based viewer, which can be used for visualization of 2D -scenes. This type of viewer is not currently used in SALOME platform -directly, but can be used in custom modules for 2D visualization purposes. - -- \subpage qxscene_2d_viewer_page has been -developed on the basis of Qt QGraphicsView scene. This viewer is used -in SALOME YACS module for visualization of computation schemes. - -- \subpage python_viewer_page is an editor for Python scripts. - - -*/ diff --git a/doc/salome/gui/input/viewers_chapter.rst b/doc/salome/gui/input/viewers_chapter.rst new file mode 100755 index 000000000..e39d6863d --- /dev/null +++ b/doc/salome/gui/input/viewers_chapter.rst @@ -0,0 +1,33 @@ +.. _viewers_page: + +####### +Viewers +####### + +SALOME GUI module includes several 2D and 3D viewers, that are used for +different purposes within the platform: + +* :ref:`occ_3d_viewer_page` has been developed on the basis of Open CASCADE Technology (http://www.opencascade.org). This is the default viewer for SALOME Geometry module, it provides good representation of construction and transformation of geometrical objects. + +* :ref:`vtk_3d_viewer_page` has been developed basing on Kitware Visualization ToolKit library (http://www.vtk.org). This is the default viewer for SALOME Mesh module, where it is used for visualization of meshes. OCC and VTK 3d viewers share some :ref:`common_functionality_page`. + +* :ref:`plot2d_viewer_page` has been developed basing on the open-source Qwt library (http://qwt.sourceforge.net). It can be used, for example, for the representation of 2D plots and graphs. + +* :ref:`gl_2d_viewer_page` is a general purpose OpenGL-based viewer, which can be used for visualization of 2D scenes. This type of viewer is not currently used in SALOME platform directly, but can be used in custom modules for 2D visualization purposes. + +* :ref:`qxscene_2d_viewer_page` has been developed on the basis of Qt QGraphicsView scene. This viewer is used in SALOME YACS module for visualization of computation schemes. + +* :ref:`python_viewer_page` is an editor for Python scripts. + + +.. toctree:: + :maxdepth: 2 + + occ_3d_viewer.rst + vtk_3d_viewer.rst + common_functionality.rst + plot2d_viewer.rst + gl_2d_viewer.rst + qxscene_2d_viewer.rst + python_viewer.rst + diff --git a/doc/salome/gui/input/vtk_3d_viewer.doc b/doc/salome/gui/input/vtk_3d_viewer.doc deleted file mode 100644 index 0905cb397..000000000 --- a/doc/salome/gui/input/vtk_3d_viewer.doc +++ /dev/null @@ -1,279 +0,0 @@ -/*! - -\page vtk_3d_viewer_page VTK 3D Viewer - -

Operations

- -The functionalities of VTK viewer are available via its Viewer -Toolbar. Buttons marked with small downward triangles have extended -functionality, which can be accessed by locking on them with left mouse -button. - -\image html vtkviewer_toolbar.png -
- -\image html vtk_view_camera_dump.png - -Dump View - exports an object snap-shot from the viewer in bmp, png or jpeg image format. -
- -\image html vtk_view_style_switch.png - -Interaction style switch - allows to switch between "Salome -standard controls" and "Keyboard free" \ref viewer_navigation_modes "interaction styles". - -
- -\image html vtk_view_zooming_style_switch.png - -Zooming style switch - allows to switch between standard -(zooming at the center of the view) and advanced (zooming at the -current cursor position) zooming styles. The second mode is available -only for parallel (non-perspective) view's mode. -
- -\image html vtk_view_highlight.png - -These buttons allow switching between three pre-selection (highlighting) modes: -- Static pre-selection mode - pre-selection is done in terms of bounding boxes; -- Dynamic pre-selection mode - pre-selection is done in terms of cells, i.e. an object can be selected by clicking the point/cell belonging to this object. This mode causes some performance loss. It is advisable to switch dynamic pre-selection off to have a good performance on big objects (for example, huge meshes); -- Disable pre-selection - pre-selection is disabled. - -
- -\image html vtk_view_selection.png - -Enable/Disable selection - enables or disables selection in the view. -
- -\image html vtk_view_triedre.png - -Show/Hide Trihedron - shows or hides coordinate axes. -
- -\image html vtk_view_fitall.png - -Fit all - scales the presentation so that it could fit within -the Viewer boundaries. -
- -\image html vtk_view_fitarea.png - -Fit area - resizes the view to place in the visible area only -the contents of a frame drawn with pressed left mouse button. -
- -\image html vtk_view_fitselection.png - -Fit selection - fits view contents to the current selection. -
- -\image html vtk_view_zoom.png - -Zoom - allows to zoom in and out. -
- -\image html vtk_view_pan.png - -Panning - if the represented objects are greater that the -visible area and you do not wish to use Fit all functionality, -click on this button to drag the scene to see its remote parts. -
- -\image html vtk_view_glpan.png - -Global panning - allows to select a point to be the center of -the presentation showing all displayed objects in the visible area. -
- -\image html vtk_view_rotation_point.png - -Change rotation point - allows to to choose the point around -which the rotation is performed. - -\image html set_rotation_point_dialog1.png - -By default the rotation point is located in the Center of the bounding -box of an object. - -\image html set_rotation_point_dialog3.png - -Unchecking Use Bounding Box Center check-box allows you to -define the coordinates of the rotation point manually. - -- Set to Origin button restores the default rotation point - coordinates. - -- Gravity Center of Selected Object button allows using the gravity center of the object selected in the viewer as the center of the rotation point. -When you click this button, you should first choose the type of selectable object: Point, Edge, Face or Solid and only then proceed with selection in the viewer. - -
- -\image html vtk_view_rotate.png - -Rotation - allows to rotate the selected object using the -mouse. -
- -\image html vtk_view_front.png -\image html vtk_view_back.png -\image html vtk_view_top.png -\image html vtk_view_bottom.png -\image html vtk_view_left.png -\image html vtk_view_right.png - -These buttons orientate the scene strictly about coordinate axes: -\b Front, \b Back, \b Top, \b Bottom, \b Left or \b Right side. -
- -\image html vtk_view_anticlockwise.png - -Rotate counter-clockwise - rotates view 90 @htmlonly ° @endhtmlonly counter-clockwise. -
- -\image html vtk_view_clockwise.png - -Rotate clockwise - rotates view 90 @htmlonly ° @endhtmlonly clockwise. -
- -\image html vtk_view_reset.png - -Reset - restores the default position (isometric) of objects in -the scene. -
- -\image html vtk_view_update_rate.png - -Update Rate - allows to define the Update Rate for the -presentations displayed in the viewer. - -\image html updaterate.png - -- Desired Update Rate, FPS - allows to set the target Update - Rate - -- Still Update Rate, FPS - allows to set the Update Rate for - the periods when both the user and the application do not perform - any actions in the viewer - -- Current Update Rate, FPS - shows the Update Rate currently - available on your configuration - -- Number of Cells - shows the number of cells currently in - display - -
- -\image html vtk_view_scaling.png - -Scaling - represents objects deformed (stretched or stuffed) -along the axes of coordinates. -
- -\image html vtk_view_graduated_axes.png - -Graduated axes - allows to define parameters of axes and -graduate them. - -\image html graduatedaxes1.png - -- Axis name - if checked the axis name is displayed in the viewer. - - - Name - allows to redefine the name of the axis. - - - Font - allows to define color and properties of the font of axis name. - -- Labels - if checked the labels are displayed in the viewer.< - - - Number - allows to define the number of labels. - - - Offset - allows to define the distance between labels. - - - Font - allows to define color and properties of the font of labels names. - -- Tick marks - if checked the tick marks are displayed in the viewer. - - - Length - allows to define the length of tick marks. - -- Is visible - if checked the axis is displayed in the viewer. - -
- -\image html vtk_view_parameters.png - -Change View Parameters - this button gives access to the -dialog for customization of various view parameters. - -\image html vtk_view_parameters_dlg.png - -- Projection Mode - switches between the \b Orthogonal and \b Perspective projection modes. - -- Focal Point - allows to specify the focal point of the view - - - Set to Bounding Box Center - chooses the center of the - bounding box of the current scene as the focal point; - - Set to Origin - chooses the global coordinates system origin as - the focal point; - - Select Point from View - allows to specify the focal point by the - direct selection of a point in the view window; - - X, Y, Z - allows to input the coordinates of the focal - point directly. - -- Camera Position - allows to specify the position of the view camera: - - Absolute Coordinates - in absolute coordinates; - - Relative to Focal Point - as a offset to the focal point; - - Projection Direction - allows specify the direction of the - projection vector; - - Focal Distance - the focal distance value. - -- View Up Direction - direction of the "view up" vector. - -- Zooming - - - \b Scale - the current zoom factor (available in the Orthogonal - mode only); - - View Angle - the current view angle (available in the Perspective - mode only). - -
- -\image html vtk_view_sync.png - -Synchronize view - allows to synchronize 3d view -parameters. This button has two states - checked and -unchecked. Clicking on this button opens a drop-down menu listing -compatible 3d views. When a view is selected in the list , the parameters (view point, position, zoom coefficient, etc.) of the current view are synchronized with the selected view (static -synchronization). - -In addition, when this button is "checked", the -views are synchronized dynamically, i.e. any zoom, pan, rotate -or other view operation done in one view is automatically applied to the other view. -
- -\image html vtk_view_parallel.png - -Orthogonal mode - Switches the view to the orthogonal mode. -
- -\image html vtk_view_perspective.png - -Perspective mode - Switches the view to the perspective mode. -
- -\image html vtk_view_recording_start.png -\image html vtk_view_recording_play.png -\image html vtk_view_recording_pause.png -\image html vtk_view_recording_stop.png - -These buttons allow recording viewing operations as a video file in -the AVI format using external software (jpeg2yuv): - -- Start recording - specify parameters and start recording; - -- Pause recording - suspend recording; - -- Continue recording - resume recording; - -- Stop recording - stop recording. - -*/ diff --git a/doc/salome/gui/input/vtk_3d_viewer.rst b/doc/salome/gui/input/vtk_3d_viewer.rst new file mode 100755 index 000000000..b7e794037 --- /dev/null +++ b/doc/salome/gui/input/vtk_3d_viewer.rst @@ -0,0 +1,369 @@ +.. _vtk_3d_viewer_page: + +************* +VTK 3D Viewer +************* + +Operations +########## + +The functionalities of VTK viewer are available via its Viewer +Toolbar. Buttons marked with small downward triangles have extended +functionality, which can be accessed by locking on them with left mouse +button. + +.. image:: ../images/vtkviewer_toolbar.png + :align: center + + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_camera_dump.png + :align: center + +**Dump View** - exports an object snap-shot from the viewer in bmp, png or jpeg image format. + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_style_switch.png + :align: center + +**Interaction style switch** - allows to switch between "Salome +standard controls" and "Keyboard free" :ref:`viewer_navigation_modes`. + + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_zooming_style_switch.png + :align: center + +**Zooming style switch** - allows to switch between standard +(zooming at the center of the view) and advanced (zooming at the +current cursor position) zooming styles. The second mode is available +only for parallel (non-perspective) view's mode. + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_highlight.png + :align: center + +These buttons allow switching between three pre-selection (highlighting) modes: + +- **Static pre-selection mode** - pre-selection is done in terms of bounding boxes; +- **Dynamic pre-selection mode** - pre-selection is done in terms of cells, i.e. an object can be selected by clicking the point/cell belonging to this object. This mode causes some performance loss. It is advisable to switch dynamic pre-selection off to have a good performance on big objects (for example, huge meshes); +- **Disable pre-selection** - pre-selection is disabled. + + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_selection.png + :align: center + +**Enable/Disable selection** - enables or disables selection in the view. + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_triedre.png + :align: center + +**Show/Hide Trihedron** - shows or hides coordinate axes. + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_fitall.png + :align: center + +**Fit all** - scales the presentation so that it could fit within +the Viewer boundaries. + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_fitarea.png + :align: center + +**Fit area** - resizes the view to place in the visible area only +the contents of a frame drawn with pressed left mouse button. + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_fitselection.png + :align: center + +**Fit selection** - fits view contents to the current selection. + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_zoom.png + :align: center + +**Zoom** - allows to zoom in and out. + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_pan.png + :align: center + +**Panning** - if the represented objects are greater that the +visible area and you do not wish to use **Fit all** functionality, +click on this button to drag the scene to see its remote parts. + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_glpan.png + :align: center + +**Global panning** - allows to select a point to be the center of +the presentation showing all displayed objects in the visible area. + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_rotation_point.png + :align: center + +**Change rotation point** - allows to to choose the point around +which the rotation is performed. + +.. image:: ../images/set_rotation_point_dialog1.png + :align: center + +By default the rotation point is located in the Center of the bounding +box of an object. + +.. image:: ../images/set_rotation_point_dialog3.png + :align: center + +Unchecking **Use Bounding Box Center** check-box allows you to +define the coordinates of the rotation point manually. + +- **Set to Origin** button restores the default rotation point coordinates. + +- **Gravity Center of Selected Object** button allows using the gravity center of the object selected in the viewer as the center of the rotation point. When you click this button, you should first choose the type of selectable object: Point, Edge, Face or Solid and only then proceed with selection in the viewer. + + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_rotate.png + :align: center + +**Rotation** - allows to rotate the selected object using the +mouse. + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_front.png + :align: center + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_back.png + :align: center + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_top.png + :align: center + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_bottom.png + :align: center + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_left.png + :align: center + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_right.png + :align: center + +These buttons orientate the scene strictly about coordinate axes: +**Front**, **Back**, **Top**, **Bottom**, **Left** or **Right** side. + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_anticlockwise.png + :align: center + +**Rotate counter-clockwise** - rotates view 90 @htmlonly ° @endhtmlonly counter-clockwise. + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_clockwise.png + :align: center + +**Rotate clockwise** - rotates view 90 @htmlonly ° @endhtmlonly clockwise. + +____ + + +.. image:: ../../../../src/VTKViewer/resources/vtk_view_reset.png + :align: center + +**Reset** - restores the default position (isometric) of objects in +the scene. + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_update_rate.png + :align: center + +**Update Rate** - allows to define the Update Rate for the +presentations displayed in the viewer. + +.. image:: ../images/updaterate.png + :align: center + +- **Desired Update Rate, FPS** - allows to set the target Update Rate + +- **Still Update Rate, FPS** - allows to set the Update Rate for the periods when both the user and the application do not perform any actions in the viewer + +- **Current Update Rate, FPS** - shows the Update Rate currently available on your configuration + +- **Number of Cells** - shows the number of cells currently in display + + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_scaling.png + :align: center + +**Scaling** - represents objects deformed (stretched or stuffed) along the axes of coordinates. + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_graduated_axes.png + :align: center + +**Graduated axes** - allows to define parameters of axes and graduate them. + +.. image:: ../images/graduatedaxes1.png + :align: center + +- **Axis name** - if checked the axis name is displayed in the viewer. + + - **Name** - allows to redefine the name of the axis. + + - **Font** - allows to define color and properties of the font of axis name. + +- **Labels** - if checked the labels are displayed in the viewer. + + - **Number** - allows to define the number of labels. + + - **Offset** - allows to define the distance between labels. + + - **Font** - allows to define color and properties of the font of labels names. + +- **Tick marks** - if checked the tick marks are displayed in the viewer. + + - **Length** - allows to define the length of tick marks. + +- **Is visible** - if checked the axis is displayed in the viewer. + + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_parameters.png + :align: center + +**Change View Parameters** - this button gives access to the +dialog for customization of various view parameters. + +.. image:: ../images/vtk_view_parameters_dlg.png + :align: center + +- **Projection Mode** - switches between the **Orthogonal** and **Perspective** projection modes. + +- **Focal Point** - allows to specify the focal point of the view + + - **Set to Bounding Box Center** - chooses the center of the bounding box of the current scene as the focal point; + - **Set to Origin** - chooses the global coordinates system origin as the focal point; + - **Select Point from View** - allows to specify the focal point by the direct selection of a point in the view window; + - **X**, **Y**, **Z** - allows to input the coordinates of the focal point directly. + +- **Camera Position** - allows to specify the position of the view camera: + + - **Absolute Coordinates** - in absolute coordinates; + - **Relative to Focal Point** - as a offset to the focal point; + - **Projection Direction** - allows specify the direction of the projection vector; + - **Focal Distance** - the focal distance value. + +- **View Up Direction** - direction of the "view up" vector. + +- **Zooming** + + - **Scale** - the current zoom factor (available in the **Orthogonal mode** only); + - **View Angle** - the current view angle (available in the **Perspective mode** only). + + +____ + + +.. image:: ../images/vtk_view_sync.png + :align: center + +**Synchronize view** - allows to synchronize 3d view +parameters. This button has two states - checked and +unchecked. Clicking on this button opens a drop-down menu listing +compatible 3d views. When a view is selected in the list , the parameters (view point, position, zoom coefficient, etc.) of the current view are synchronized with the selected view (static +synchronization). + +In addition, when this button is "checked", the +views are synchronized dynamically, i.e. any zoom, pan, rotate +or other view operation done in one view is automatically applied to the other view. + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_parallel.png + :align: center + +**Orthogonal mode** - Switches the view to the orthogonal mode. + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_perspective.png + :align: center + +**Perspective mode** - Switches the view to the perspective mode. + +____ + + +.. image:: ../../../../src/SVTK/resources/vtk_view_recording_start.png + :align: center + +.. image:: ../../../../src/SVTK/resources/vtk_view_recording_play.png + :align: center + +.. image:: ../../../../src/SVTK/resources/vtk_view_recording_pause.png + :align: center + +.. image:: ../../../../src/SVTK/resources/vtk_view_recording_stop.png + :align: center + +These buttons allow recording viewing operations as a video file in +the AVI format using external software (jpeg2yuv): + +- **Start recording** - specify parameters and start recording; + +- **Pause recording** - suspend recording; + +- **Continue recording** - resume recording; + +- **Stop recording** - stop recording. + + diff --git a/doc/salome/gui/input/working_with_python_scripts.doc b/doc/salome/gui/input/working_with_python_scripts.rst old mode 100644 new mode 100755 similarity index 79% rename from doc/salome/gui/input/working_with_python_scripts.doc rename to doc/salome/gui/input/working_with_python_scripts.rst index 1b54bc87e..a05d27959 --- a/doc/salome/gui/input/working_with_python_scripts.doc +++ b/doc/salome/gui/input/working_with_python_scripts.rst @@ -1,12 +1,15 @@ -/*! +.. _python_interpreter_page: -\page python_interpreter_page Python Interpreter +****************** +Python Interpreter +****************** -\b SALOME Platform can be launched in the batch mode, without Graphical +**SALOME** Platform can be launched in the batch mode, without Graphical User Interface, and operated with the use of Python scripts, which can fulfill most of the necessary tasks, however, the process of scripting is quite time consuming and rather error-prone. -\n This problem has been resolved by the possibility to automatically + +This problem has been resolved by the possibility to automatically generate a set of Python scripts from data created with SALOME GUI, which greatly increases the productivity of using SALOME platform in the batch mode. This mechanism can convert a SALOME Study in one or @@ -21,8 +24,8 @@ of the component specific Python scripts without touching others, thus avoiding expert knowledge of Python API of unused components. To Dump a SALOME Study in one or several scripts, in the main menu -select \b File --> Dump study. +select **File --> Dump study**. Reversibly, it is possible to load a saved Python Script selecting in -the main menu \b File -> Load Script. +the main menu **File -> Load Script**. + -*/ diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/common_functionality.po b/doc/salome/gui/locale/fr/LC_MESSAGES/common_functionality.po new file mode 100644 index 000000000..81f50475a --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/common_functionality.po @@ -0,0 +1,318 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 54c022b14f0e4453bf7ce230dc758197 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:5 +msgid "Functionality common for OCC and VTK viewers" +msgstr "" + +# 83afa961883f47eab6b65d12964038fc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:10 +msgid "Background" +msgstr "" + +# fb968bc9d9f44492bcdd49a8507d8513 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:12 +msgid "" +"Viewers background can be customized using the \"Change background\" " +"popup menu command that opens the following dialog box:" +msgstr "" + +# 7b839e3691464ae6ad1361b41485082c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:18 +msgid "The following types of the background are supported:" +msgstr "" + +# 97d6b068a3be4284b86f61f2697788db +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:20 +msgid "" +"**Single color:** the background is colored with the solid color " +"specified by the user in the dialog box." +msgstr "" + +# 334b1a5c72214844b30e5385e40a3bc5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:22 +msgid "" +"**Gradient background:** the background is gradiently colored according " +"to two colors and the gradient type specified in the dialog box. The " +"following types of background are supported:" +msgstr "" + +# 22550ebe91bf4ee5a8794a46eedfbcde +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:24 +msgid "Horizontal" +msgstr "" + +# 98d6cd2214f14d089c9697ceedf9233b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:25 +msgid "Vertical" +msgstr "" + +# 365d73cff65c4895ba7ca34bb741be6a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:26 +msgid "First diagonal" +msgstr "" + +# 296e8dd5babb4eb48c24370833e9c906 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:27 +msgid "Second diagonal" +msgstr "" + +# 5ffc074a79534059beadf10b3b6b4d35 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:28 +msgid "First corner" +msgstr "" + +# d51cdd4c50ee4904a13df362c17a919d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:29 +msgid "Second corner" +msgstr "" + +# 180fe3394489422a904f11c03d7f8531 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:30 +msgid "Third corner" +msgstr "" + +# 52a6312b194847e6a173933ed176dfaa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:31 +msgid "Fourth corner" +msgstr "" + +# c0d00c5514384e5d8a9ab459c76c8046 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:33 +msgid "" +"**Image:** allows to set image as viewer background and define filling " +"type:" +msgstr "" + +# 812c7860c3474feab2456d645902348f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:35 +msgid "**Center:** the image is located at the center of the viewer backgound" +msgstr "" + +# 206cdccb86e34e01b056f6e00050f983 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:36 +msgid "**Tile:** the image fills the entire viewer backgound one by one" +msgstr "" + +# ae2d913c1f2b4c538ddf1e41ff678f63 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:37 +msgid "**Stretch:** the image is stretched to the entire viewer backgound." +msgstr "" + +# 615cd01d9ae44a5aaf0a7c6cb3d466dc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:39 +msgid "" +"Default background for the OCC viewer is specified via the " +":ref:`occ_preferences` and for the VTK viewer via the " +":ref:`vtk_preferences`." +msgstr "" + +# d412fa233f9c4677a5e64201630aa6d5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:45 +msgid "Selection" +msgstr "" + +# 4747130419b041adb688515be94e1ca7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:47 +msgid "" +"An element can be selected by clicking on it with the left mouse button. " +"Selecting objects with locked *Shift* key produces a multi selection." +msgstr "" + +# f0f2925a9b07405a8f606b0190344af3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:50 +msgid "" +"Additionally, when the viewer owns an input focus, an object can be " +"selected by pressing *\"S\"* on the keyboard. Pressing *\"S\"* when " +"holding \\em Shift key allows adding/removing an object to/from the " +"current selection." +msgstr "" + +# 404ae3199ee3495ab048342338f88ed4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:54 +msgid "" +"OCC viewer provides a way to navigate between the selectable objects. " +"This feature (disabled by default) is used in some dialog boxes (for " +"example, in Geometry module). When there are several objects which suit " +"current selection requirements (specified by the dialog) under the " +"current mouse cursor, it is possible to switch between them by means of " +"mouse scroll wheel. The same can be also done by pressing *\"N\"* and " +"*\"P\"* keys." +msgstr "" + +# 3935dcdbfb1c445d92db6ff759225962 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:61 +msgid "" +"There are also two additional selection mechanisms: rectangle and " +"polyline selection." +msgstr "" + +# 6e918360403a48f28cc08010fa2baf82 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:65 +msgid "Rectangle selection" +msgstr "" + +# 6c0d63a1c25d4f859eea20ae507d0102 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:67 +msgid "Rectangle Selection is the basic and commonly used selection tool." +msgstr "" + +# 35f27335bf9e405aad330beb80bb876c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:69 +msgid "" +"To select a rectangle area press and hold the left mouse button while " +"drawing the diagonal of the selection rectangle in the viewer." +msgstr "" + +# df95a2cc3acd454d98331e23c65ff7c6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:74 +msgid "As a result, the objects within the rectangle are selected." +msgstr "" + +# 532448bb71834dfeb00aa69694072742 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:79 +msgid "" +"It is possible to add an area to the existing selection by holding down " +"*Shift* key while selecting." +msgstr "" + +# ca0f77e08c6a44a080dd37587e4ec1bb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:82 +msgid "Polyline selection" +msgstr "" + +# 83661f8af38d490c92f6083e4938dc44 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:84 +msgid "" +"OCC and VTK Viewers feature a special Polyline Selection mechanism, which" +" allows selecting an arbitrary part of the graphic area using a polygon " +"frame (rubber band), instead of the usual selection with a rectangular " +"frame." +msgstr "" + +# 412c35a9fb524be8b8fb45fdaa7a090c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:89 +msgid "" +"To produce a Polyline Selection, press and hold the right mouse button " +"and draw the first side of the selection polygon, then change the " +"direction by clicking the left mouse button add draw another side, etc. " +"Click twice by left mouse button to finish drawing." +msgstr "" + +# 335bcdc8eddb4405b502f4a237f6e218 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:97 +msgid "As a result, the objects within the polygon are selected." +msgstr "" + +# ef93c2135b7e4e5ea80fda6173c8ee2a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:102 +msgid "" +"To add an area to the existing selection it is necessary to hold down " +"*Shift* key while selecting." +msgstr "" + +# 65898a88ed354fc1bbd99460b858888d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:108 +msgid "Navigation modes" +msgstr "" + +# 29cfbceb0fcd4233adf52f499933bce5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:111 +msgid "OCC and VTK 3D viewers support two different navigation modes:" +msgstr "" + +# 3ea905a62d034bfa9dde0f90d1c4be7a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:113 +msgid "" +"**Salome standard controls** Rectangle selection in this mode is " +"performed by the left mouse button and polyline selection by the right " +"mouse button; multiple selection is available when *Shift* button is " +"pressed." +msgstr "" + +# a65eb8ab4bc04fb78a6a2d69ff19a319 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:118 +msgid "" +"Also, holding *Ctrl* key with pressed mouse buttons performs the " +"following view transformations:" +msgstr "" + +# 90fd47fc08e1471cbe6afa1c00a60baa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:120 +msgid "*Ctrl* + left mouse button - zooming;" +msgstr "" + +# be4e66b5c8134cb58ff45697a53206d0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:121 +msgid "*Ctrl* + middle mouse button - panning;" +msgstr "" + +# 0ee19547cf0242a4b5bd5922b266b326 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:122 +msgid "*Ctrl* + right mouse button - rotation." +msgstr "" + +# c0f33651c521471baec81d2bf97d6e81 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:124 +msgid "**Keyboard free style**" +msgstr "" + +# 3dc2e4157ed84f81b0d29b4ab37fa59f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:126 +msgid "" +"This mode allows performing all view transformations without using the " +"keyboard (only by the mouse):" +msgstr "" + +# cd8c3d6c0f6648759db4497469b7291f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:129 +msgid "Left mouse button performs view rotation;" +msgstr "" + +# 9d273e07879448fbbb58197d4eed2753 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:130 +msgid "Middle mouse button performs panning;" +msgstr "" + +# bdc5c8d64b6d4255b2ad7d20b598122d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:131 +msgid "Right mouse button makes zooming." +msgstr "" + +# 1665cd478a8c4a03a25b804650632ae7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:133 +msgid "" +"In this style rectangle selection is done by the left mouse button with " +"*Ctrl* key pressed; polyline selection is done by the right mouse button " +"with *Ctrl* key pressed." +msgstr "" + +# 76ec17847b8f482885ab1bc1e59af551 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:136 +msgid "" +"In both styles selection of objects in the viewer can be performed by " +"pressing *\"S\"* key or by the left mouse button click." +msgstr "" + +# edbd1195129048adb7c6e00e7ad5395e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/common_functionality.rst:139 +msgid "Zooming can be alternatively done by scrolling mouse wheel." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/drag_and_drop.po b/doc/salome/gui/locale/fr/LC_MESSAGES/drag_and_drop.po new file mode 100644 index 000000000..ee8b41442 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/drag_and_drop.po @@ -0,0 +1,232 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 9200d6a2d1844c9481302767e7661566 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:5 +msgid "Implementing Drag and Drop functionality in SALOME module" +msgstr "" + +# b9c1f0ead041494ebf746296d4668aa4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:0 +msgid "Table of Contents" +msgstr "" + +# d3f4d8edbcea4ad8bcbf33ccd91e48a6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:9 +msgid "" +"**Drag and Drop** provides a simple visual mechanism to transfer " +"information between and within applications." +msgstr "" + +# ecb0ca211c3c4bf69244e773643da3d4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:12 +msgid "" +"In some aspects Drag and drop operates similarly to the clipboard " +"copy/cut/paste mechanism." +msgstr "" + +# 69fe06b44d4744dea55a3b93ad4581c0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:15 +msgid "" +"Since SALOME GUI is implemented on Qt, the drag and drop functionality " +"support is provided by means of the corresponding Qt mechanisms." +msgstr "" + +# ca821ed8f6f740349bc7ac1f7da0316e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:18 +msgid "" +"Currently dragging and dropping of the items can be done within Object " +"browser only, however this functionality can be extended to other GUI " +"elements as well." +msgstr "" + +# ad2feb0b721e4e09a4ccc300e4c23a78 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:24 +msgid "Enabling drag and drop in SALOME module" +msgstr "" + +# cd261b7b6164434193df4d9b53872acd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:26 +msgid "" +"The Drag and drop functionality is enabled by default in the Object " +"browser. However, to allow dragging of a data object or dropping data on " +"it, it is necessary to redefine **isDraggable()** and " +"**isDropAccepted()** methods of the corresponding class, a successor of " +"the **SUIT_DataObject**. These methods are defined in the base class " +"**SUIT_DataObject** and default implementation of both functions returns " +"**false**, which prevents dragging and dropping:" +msgstr "" + +# 36fda16fb1274be1b22c0615dec21862 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:45 +msgid "" +"If your data model is based on the **SUIT_DataObject** and " +"**SUIT_TreeModel**, just re-implement these functions in your successor " +"data object class and return **true** when it is needed (for example, " +"depending on the data object type, state, etc)." +msgstr "" + +# 09b5c44e19e5480892ee2531656bfecb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:49 +msgid "" +"Another alternative is available if your module is directly inherited " +"from **LightApp_Module** or **SalomeApp_Module** class (as the majority " +"of existing SALOME modules). The class **LightApp_Module** (and thus " +"**SalomeApp_Module** also) already provides high-level API that can be " +"used for enabling drag and drop functionality." +msgstr "" + +# 03e22c0bffef45798f6db41024442b63 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:54 +msgid "" +"To enable dragging, redefine **isDraggable()** method of your module " +"class. In this method you can analyze the data object subject to the drag" +" operation and decide if it is necessary to enable or prevent its " +"dragging:" +msgstr "" + +# 7b0b499d1be04f09b345b1f4dc41c1f2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:71 +msgid "" +"Note, that you should not invoke here method **isDragEnabled()** of your " +"data object class (in case if it inherits **LightApp_DataObject** or " +"**SalomeApp_DataObject**), unless you redefine methods **isDraggable()** " +"and **isDropAccepted()** in your data object class. The reason is that " +"the implementation of these methods in **LightApp_DataObject** class " +"redirects calls to the **LightApp_Module** - be careful to avoid entering" +" endless recursion loop." +msgstr "" + +# d1ad6f043a0644baab90c8263486b29b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:78 +msgid "" +"To allow data dropping to an object (the object under the mouse cursor in" +" the Object browser during the drag operation) redefine " +"**isDropAccepted()** method of your module class:" +msgstr "" + +# b0a027ba1eb0472c85de792798b6b3ae +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:95 +msgid "" +"The caution about avoiding recursive loop mentioned above is also valid " +"for **isDropAccepted()** method." +msgstr "" + +# dd17374552fa4090b7c523afe1003891 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:101 +msgid "Handling data dropping" +msgstr "" + +# 6ef963370b9b425b85518b84a0779bf1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:103 +msgid "" +"When dragging operation is completed (the data is dropped to an object) " +"the module owning the item on which the data is dropped is notified by " +"invoking its **dropObjects()** method:" +msgstr "" + +# 8030f81706f045198257acf181a5e82b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:115 +msgid "" +"The default implementation does nothing. However, this method can be " +"redifined in the successor class and handle the operation properly. The " +"list of dropped data objects is passed via **what** parameter. The data " +"object on which the data is dropped is passed via **where** parameter. " +"The parameter **row** specifies in the children list the position of " +"object where data is dropped; if this parameter is equal to -1, the data " +"is dropped to the end of the children list. Performed drop action is " +"passed via **action** parameter; possible values are **Qt::CopyAction** " +"and **Qt::MoveAction** (other actions are currently unsupported)." +msgstr "" + +# b7d1e488938b44898da6a1055ae1689b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:124 +msgid "" +"The method **dropObjects()** should analyze the parameters and apply the " +"corresponding actions for rearrangement of the data tree, copying or " +"moving the data items depending on the operation performed. For example:" +msgstr "" + +# bedf284048f746cb831166b8a3c39df2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:155 +msgid "" +"In the above code the function **copyOrMove()** performs actual data tree" +" rearrangement." +msgstr "" + +# 3cd2ffe9e3ac46e7ba0bcdcf4fa3bcc2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:161 +msgid "Drag and Drop in \"light\" modules" +msgstr "" + +# 94e7ece95ee04d38bdf6b7ac0f17cfc0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:163 +msgid "" +"The data model of the **light** (not having CORBA engine) SALOME module " +"is usually based on the custom tree of data objects. The general approach" +" is to inherit a custom data object class from the " +"**LightApp_DataObject** and a custom data model from the " +"**LightApp_DataModel** class. The data model class is responsible for " +"building the appropriate presentation of the data tree in the Object " +"browser." +msgstr "" + +# ca44d8e18ff94f42b2846cc60f67d477 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:170 +msgid "" +"Thus, the implementation of the drag and drop functionality in a " +"**light** module (more precisely, the method **dropObjects()** as " +"described above), consists in copying data entities (by creating new " +"instances of the corresponding data object class) or moving existing data" +" objects to the new position in a tree. The Object browser will update " +"the tree representation automatically, as soon as " +"**updateObjectBrowser()** function is called." +msgstr "" + +# 1d318a4887a34b2cbb7e12001811d719 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:180 +msgid "Using UseCaseBuilder for Drag and Drop handling in \"full\" modules" +msgstr "" + +# fdfc12e87b64442d9425ea353db7d2d7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:182 +msgid "" +"Drag and drop operation requires underlying data model to allow flexible " +"re-arrangement of the data entities inside the data tree. In a **full** " +"(CORBA engine based) SALOME module, which data model is usually based on " +"the hierarchy of **SALOMEDS::SObject** entities provided by the data " +"server functionality, re-arrangement of the data tree is not a trivial " +"task." +msgstr "" + +# 1f82a0376c4043bda778a3c0447d7ee5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:188 +msgid "" +"However, SALOME data server (**SALOMEDS**) CORBA module proposes a " +"mechanism that can be used to customize data tree representation in a " +"simple and flexible way - :ref:`use_case_builder`." +msgstr "" + +# 80f9647465a6412d91ea0ef85855913b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/drag_and_drop.rst:192 +msgid "" +"With use case builder, the **dropObjects()** function can be easily " +"implemented. For example:" +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/gl_2d_viewer.po b/doc/salome/gui/locale/fr/LC_MESSAGES/gl_2d_viewer.po new file mode 100644 index 000000000..09404d549 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/gl_2d_viewer.po @@ -0,0 +1,102 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 1ee71843c22c4d2aaaf9f163138d8b80 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:5 +msgid "GL 2D Viewer" +msgstr "" + +# ab320e3a70d6400894d03f59284c37b5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:8 +msgid "Operations" +msgstr "" + +# 6bd154d41ce04cdd8ac5ad11d1843f4d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:10 +msgid "" +"The functionalities of GL viewer are available via its Viewer Toolbar. " +"Buttons marked with small downward triangles have extended functionality " +"which can be accessed by locking on them with left mouse button." +msgstr "" + +# f4d2d4b3313b403595463c2c3ebd04cf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:23 +msgid "" +"**Dump View** - exports an object from the viewer in bmp, png or jpeg " +"image format." +msgstr "" + +# adab0525a9ad49b69ba10b39fbe79434 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:30 +msgid "" +"**Fit all** - scales the presentation so that it could fit within the " +"Viewer boundaries." +msgstr "" + +# c561714ba5b94ab8b6879b2febe85f0a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:37 +msgid "" +"**Fit area** - resizes the view to place in the visible area only the " +"contents of a frame drawn with pressed left mouse button." +msgstr "" + +# 0622e0cb6e53449b804d86837cca077c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:45 +msgid "" +"**Fit selection** - resizes the view to fit in the visible area only " +"currently selected objects." +msgstr "" + +# ca5b773f36214b43bf880bab1526c27e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:52 +msgid "**Zoom** - allows to zoom in and out." +msgstr "" + +# d8ec79f3fade404caf112b34958177d8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:59 +msgid "" +"**Panning** - if the represented objects are greater that the visible " +"area and you don't wish to use **Fit all** functionality, click on this " +"button and you'll be able to drag the scene to see its remote parts." +msgstr "" + +# e5c56d8cfb8c4aea8a49130e6f1db949 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:69 +msgid "" +"**Global panning** - allows to select a point to be the center of the " +"presentation showing all displayed objects in the visible ares." +msgstr "" + +# 74974e6ed9bd423eb049c96bfae54650 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:77 +msgid "**Reset** - restores the default position the scene." +msgstr "" + +# 4db1a8c08c8342ce8711e5ccd3952572 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:85 +msgid "Background" +msgstr "" + +# f5b5c6090f5e45839136ef307bc0af59 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/gl_2d_viewer.rst:87 +msgid "" +"GL Viewer background can be customized using the \"Change background\" " +"popup menu command that opens standard \"Select Color\" dialog box:" +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/howtos_and_best_practives.po b/doc/salome/gui/locale/fr/LC_MESSAGES/howtos_and_best_practives.po new file mode 100644 index 000000000..e2955b795 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/howtos_and_best_practives.po @@ -0,0 +1,46 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# b85fda66a24c4699bb0e9c5a529a91bc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/howtos_and_best_practives.rst:5 +msgid "How-To's and Best Practices" +msgstr "" + +# 696ceb802786485b94f7803b0369bee5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/howtos_and_best_practives.rst:7 +msgid "" +"These documents provide guidelines and best practices explaining " +"different aspects and usage examples of SALOME platform." +msgstr "" + +# 52c0b9925beb4cc4ab0f32df360dfbeb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/howtos_and_best_practives.rst:10 +msgid ":ref:`use_case_builder`:" +msgstr "" + +# 15eefca5c998491b8cfca7f50558ef57 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/howtos_and_best_practives.rst:11 +msgid ":ref:`drag_and_drop`" +msgstr "" + +# ec648c3b2e1c46b58b0aaea366988fac +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/howtos_and_best_practives.rst:12 +msgid ":ref:`using_pluginsmanager`" +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/index.po b/doc/salome/gui/locale/fr/LC_MESSAGES/index.po new file mode 100644 index 000000000..f6a5a7135 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/index.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# a50311d338ef4a5288430b2756e113d5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/index.rst:7 +msgid "Welcome to GUI's documentation!" +msgstr "Bienvenue dans la documentation de GUI!" + +# a15abe2a621c41429afdbbdfddef4677 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/index.rst:15 +msgid "Indices and tables" +msgstr "Indices et tableaux" + +# df759101e57f457993794f9028b1e682 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/index.rst:17 +msgid ":ref:`search`" +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/intoduction.po b/doc/salome/gui/locale/fr/LC_MESSAGES/intoduction.po new file mode 100644 index 000000000..a703a8e00 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/intoduction.po @@ -0,0 +1,223 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:01+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# ed75a7af50374f3fb44fe68d8b018bd7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:3 +msgid "Introduction to Salome Platform" +msgstr "" + +# 5941340805194ca296cebb55742a0f8e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:8 +msgid "" +"Welcome to SALOME Platform! Modern technological products (cars, " +"structures, electrical or electronic equipment) are getting more and more" +" complex every year and must meet increasingly severe requirements in " +"terms of quality and performance. For example, for structures and their " +"environment the demands to reduce risks and optimize costs are extremely " +"high. It requires particularly refined simulations concerning structural " +"behavior and robustness to ensure high reliability." +msgstr "" + +# 43f6d25dc4a54e259e9301498ea12d2b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:17 +msgid "" +"The numeric modeling of a physical problem, the development of solutions " +"and their integration into the design process are often handled in very " +"specific environments. SALOME represents a generic CAD-based application " +"for digital simulation with \"high reactivity to market evolutions and " +"customer expectations\"." +msgstr "" + +# d75ccadb632647dda291b37b68bf4c3b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:23 +msgid "" +"SALOME is a free software that provides a generic platform for Pre and " +"Post-Processing for numerical simulation. It is based on an open and " +"flexible architecture made of reusable components available as free " +"software." +msgstr "" + +# 30383a000a364882adab54e30d534af7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:28 +msgid "" +"SALOME is a CAD/CAE integration platform. It provides reusable components" +" for:" +msgstr "" + +# acf7b47bd43540ad9a7ab7bca5c41115 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:31 +msgid "3D modeling (bottom-up construction, import, healing);" +msgstr "" + +# c20a5e28bce145459cd9e7d985880c3f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:32 +msgid "Visualization;" +msgstr "" + +# 40ca7358195b4a4683b325687c2a28ba +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:33 +msgid "Computational schemas management;" +msgstr "" + +# 7355abeefe304d4282aa7f3fb61d8de6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:34 +msgid "Post-processing." +msgstr "" + +# 6c4809c68d8c4ca4bd019b843d69cfeb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:37 +msgid "SALOME is tailored for integration of custom components:" +msgstr "" + +# d09f30628787422fac8e6d05417d551e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:39 +msgid "CAD interfaces;" +msgstr "" + +# 8d51e12e8b1a4a50a9e58cd378b79ded +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:40 +msgid "Mesh generators;" +msgstr "" + +# c5922f3daaae488faee7414488f7daed +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:41 +msgid "Finite Element solvers with specific pre-processors." +msgstr "" + +# 6320ccdb21ea4cf6a88710f1c407d95a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:44 +msgid "The SALOME platform is available in Open Source." +msgstr "" + +# ba329a1b62514eda8310b99b079a2fad +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:46 +msgid "**Salome Platform:**" +msgstr "" + +# 5e0bdb03b0b54d5ba325b59dce425374 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:48 +msgid "" +"Supports interoperability between CAD modeling and computation software " +"(CAD-CAE link)" +msgstr "" + +# b17c7d041a3a4542a0577cb75a371b0e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:49 +msgid "" +"Makes easier the integration of new components on heterogeneous systems " +"for numerical computation" +msgstr "" + +# 2337eaeaf8cc4e6abb088db3d668e980 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:50 +msgid "Sets the priority to multi-physics coupling between computation software" +msgstr "" + +# cbeaa9f02c20443ab32bbae14f33aeb5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:51 +msgid "" +"Provides a generic user interface, user-friendly and efficient, which " +"helps to reduce the costs and delays of carrying out the studies" +msgstr "" + +# a7dc8b5d0c6c428fa9b018f266cd914d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:52 +msgid "" +"Reduces training time to the specific time for learning the software " +"solution which has been based on this platform" +msgstr "" + +# 4c1c3b12b2d1481db37f48c59ad6193c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:53 +msgid "" +"All functionalities are accessible through the programmatic integrated " +"Python console" +msgstr "" + +# 29a822f339114278a5821a7461f81663 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:59 +msgid "**What can you do in SALOME? (Some of SALOME main functions)**" +msgstr "" + +# d30d6238b76840d7ad7273e3c1a6988b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:61 +msgid "" +"Define geometrical models (create/modify geometrical items), import and " +"export them using the BREP, IGES and STEP formats;" +msgstr "" + +# 205eef655f674394a85daed05845acd6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:62 +msgid "Define meshing of these geometrical items, import and export them;" +msgstr "" + +# 69c12db738264a3fb199a320ab556b37 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:63 +msgid "" +"Handle physical properties and quantities attached to geometrical items, " +"import and export them to a reusable format;" +msgstr "" + +# 4bfb66fb8e56469a8a678d630cd617b4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:64 +msgid "" +"Perform computations using a solver (optionally provided): read input " +"data, configure the solver, and write calculation results);" +msgstr "" + +# 6d40eae4a8f84ac89815b46eae4b992e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:65 +msgid "" +"Visualize result fields in 3D, 2D and export images of their " +"visualization to an appropriate format;" +msgstr "" + +# f7af5f7de02543c1b438185860009ad1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:66 +msgid "Manage study schemes: definition, save/restore;" +msgstr "" + +# 50be82fcd89948e69de0ba4d7c921972 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:67 +msgid "Manage computation schemes: definition, execution." +msgstr "" + +# a551accf0cd646f9981180e2d4a11527 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:69 +msgid "" +"From the point of view of the :ref:`salome_architecture_page`, Salome is " +"composed of several modules." +msgstr "" + +# 988389fbf81d4f00b71c698e8a16b401 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:72 +msgid "" +"This part of documentation on Salome also covers " +":ref:`introduction_to_gui_page`, common for all modules, such as study " +"management, Salome viewers, preferences, etc." +msgstr "" + +# 37581881baff494f9e4a59377b01ca60 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/intoduction.rst:77 +msgid "" +"And finally, there is an additional chapter, which provides a short guide" +" about the :ref:`tui_page` to access SALOME GUI functionalities from the " +"Python code." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/introduction.po b/doc/salome/gui/locale/fr/LC_MESSAGES/introduction.po new file mode 100644 index 000000000..0395f4f18 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/introduction.po @@ -0,0 +1,223 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 16:43+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 181f678e075f46cca5cab298e9afb8fc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:3 +msgid "Introduction to Salome Platform" +msgstr "" + +# 1d2810744d394c90899793129e8963ed +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:8 +msgid "" +"Welcome to SALOME Platform! Modern technological products (cars, " +"structures, electrical or electronic equipment) are getting more and more" +" complex every year and must meet increasingly severe requirements in " +"terms of quality and performance. For example, for structures and their " +"environment the demands to reduce risks and optimize costs are extremely " +"high. It requires particularly refined simulations concerning structural " +"behavior and robustness to ensure high reliability." +msgstr "" + +# 73c0a90d7c0246cba14921ff5d0aac07 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:17 +msgid "" +"The numeric modeling of a physical problem, the development of solutions " +"and their integration into the design process are often handled in very " +"specific environments. SALOME represents a generic CAD-based application " +"for digital simulation with \"high reactivity to market evolutions and " +"customer expectations\"." +msgstr "" + +# 06477acbc7824a5aa060b2d05b7c0305 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:23 +msgid "" +"SALOME is a free software that provides a generic platform for Pre and " +"Post-Processing for numerical simulation. It is based on an open and " +"flexible architecture made of reusable components available as free " +"software." +msgstr "" + +# 5a53dacf7d704daf885f4ce8d7106083 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:28 +msgid "" +"SALOME is a CAD/CAE integration platform. It provides reusable components" +" for:" +msgstr "" + +# 7b8ca68f537543aab5842fa01c5c4882 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:31 +msgid "3D modeling (bottom-up construction, import, healing);" +msgstr "" + +# 855187209ed2412092575123d3c84cdc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:32 +msgid "Visualization;" +msgstr "" + +# b14692c68c5142639ea26805a01488ec +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:33 +msgid "Computational schemas management;" +msgstr "" + +# 752921bf326647caa1e7a63e0ce96d9f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:34 +msgid "Post-processing." +msgstr "" + +# e171dd6bec2a4060920fd420a7d16134 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:37 +msgid "SALOME is tailored for integration of custom components:" +msgstr "" + +# d99364f5203147358593487c841adc55 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:39 +msgid "CAD interfaces;" +msgstr "" + +# 3aaff76fe65c43fa8aa73a391bbd8310 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:40 +msgid "Mesh generators;" +msgstr "" + +# 2ec62294808d44b3972809f65297f1c6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:41 +msgid "Finite Element solvers with specific pre-processors." +msgstr "" + +# 489e3776d53a4b69a76da97ec2e3a563 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:44 +msgid "The SALOME platform is available in Open Source." +msgstr "" + +# 0ccf6ffe776b4fbc8aca7160f48bbe1b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:46 +msgid "**Salome Platform:**" +msgstr "" + +# 0263369c0a1e4deaa56f9ec69f4b4863 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:48 +msgid "" +"Supports interoperability between CAD modeling and computation software " +"(CAD-CAE link)" +msgstr "" + +# 43bcc164a53b4b74b12976fd54f8d4b6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:49 +msgid "" +"Makes easier the integration of new components on heterogeneous systems " +"for numerical computation" +msgstr "" + +# 58a3967b68964c6c9a7901886688baa0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:50 +msgid "Sets the priority to multi-physics coupling between computation software" +msgstr "" + +# 8abb4e02e04a4de68393d6d884bed6f7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:51 +msgid "" +"Provides a generic user interface, user-friendly and efficient, which " +"helps to reduce the costs and delays of carrying out the studies" +msgstr "" + +# 9881f88d90024a3a8d0963c1e027a516 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:52 +msgid "" +"Reduces training time to the specific time for learning the software " +"solution which has been based on this platform" +msgstr "" + +# 4cef1ecd29ec46c1a1b6919168eb9cbe +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:53 +msgid "" +"All functionalities are accessible through the programmatic integrated " +"Python console" +msgstr "" + +# 7810fb1db7c14766a05d0030eea6789b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:59 +msgid "**What can you do in SALOME? (Some of SALOME main functions)**" +msgstr "" + +# c7439d3c8c7a414b9ca34b26db5d28d5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:61 +msgid "" +"Define geometrical models (create/modify geometrical items), import and " +"export them using the BREP, IGES and STEP formats;" +msgstr "" + +# 0de92fb3975b42e0af8053a1f441ea34 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:62 +msgid "Define meshing of these geometrical items, import and export them;" +msgstr "" + +# 2092ff988681400ea3f41096b39a77ca +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:63 +msgid "" +"Handle physical properties and quantities attached to geometrical items, " +"import and export them to a reusable format;" +msgstr "" + +# 3290acdc6e684ca59eb74e5a2dc4a8e5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:64 +msgid "" +"Perform computations using a solver (optionally provided): read input " +"data, configure the solver, and write calculation results);" +msgstr "" + +# 84fbe09f1ea845af95588ddd807914cf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:65 +msgid "" +"Visualize result fields in 3D, 2D and export images of their " +"visualization to an appropriate format;" +msgstr "" + +# b6a598d908b44a6db6bda031159902fa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:66 +msgid "Manage study schemes: definition, save/restore;" +msgstr "" + +# d8a5d682f8b04ef8b082791a902a9da6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:67 +msgid "Manage computation schemes: definition, execution." +msgstr "" + +# 3a2d9442a31c4ead9bf70a55f455c730 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:69 +msgid "" +"This part of documentation on Salome also covers " +":ref:`introduction_to_gui_page`, common for all modules, such as study " +"management, Salome viewers, preferences, etc." +msgstr "" + +# 334c5e7c09db41deaffaca860aa318c6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction.rst:74 +msgid "" +"And finally, there is an additional chapter, which provides a short guide" +" about the :ref:`tui_page` to access SALOME GUI functionalities from the " +"Python code." +msgstr "" + +# b405bc809144469988bbb66affe66729 +#~ msgid "" +#~ "From the point of view of the " +#~ ":ref:`salome_architecture_page`, Salome is composed" +#~ " of several modules." +#~ msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/introduction_to_gui.po b/doc/salome/gui/locale/fr/LC_MESSAGES/introduction_to_gui.po new file mode 100644 index 000000000..42df8c324 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/introduction_to_gui.po @@ -0,0 +1,144 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 493e2dd0877f4dc2a9ad7abe04a32396 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:5 +msgid "Introduction to GUI" +msgstr "" + +# 4df606c9eb01428e82e43c7cc4e2c5f9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:10 +msgid "" +"**SALOME GUI** is based on SUIT (Salome User Interface Toolkit) that " +"proposes very flexible, powerful and safe mechanisms of interaction with " +"SALOME tool components (both CORBA and standalone), resource management, " +"viewers and selection handling, exception and signals processing." +msgstr "" + +# b9804dc938cf477d922c5cfcf594d401 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:16 +msgid "" +"All Graphical User Interfaces of standard modules have plug-in structure," +" i.e. each module is placed in a dynamic library which is loaded on " +"demand. So, all modules add their own menu items, buttons in toolbar, " +"windows etc." +msgstr "" + +# 6925a3c00b3d43e7b829be04445a1d0e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:21 +msgid "" +"**GUI** (Graphical User Interface) provides a common shell for all " +"components, which can be integrated into the SALOME platform and some " +"basic GUI functionalities, common for all modules." +msgstr "" + +# 864e3e888090494bac5dccef8622a282 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:29 +msgid "" +"**File** menu corresponds to :ref:`study_management_page` functionalities" +" (creation, saving, loading, connecting, disconnecting, editing studies, " +"etc.)" +msgstr "" + +# b0830df90b834e47b792a8cfb3adad33 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:30 +msgid "" +"**Edit** menu gives access to ** Copy/Paste** allowing to paste the " +"objects from one study into the other. The availability of this " +"functionality depends on the module and the nature of an operation or an " +"object." +msgstr "" + +# 3ecb2e91011a46e5a244cb388329455c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:31 +msgid "" +"**View** and **Window** menus provide functionalities of " +":ref:`salome_desktop_page`. Basically, they allow to show/hide toolbars, " +"activate and manage study windows, change the appearance of Salome, etc. " +"Among key parts of study window are:" +msgstr "" + +# 9445063cd9824e9e9e80996420757896 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:33 +msgid "Viewer window, used for visualization of objects," +msgstr "" + +# 5ae44e97b8714709bbb0518a9dd1b9eb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:34 +msgid "" +":ref:`using_object_browser_page`, used for management of objects created " +"or imported into the SALOME application, also providing search " +"possibilities with the :ref:`using_find_tool_page`, and" +msgstr "" + +# c89cc9f0f1ec4681aa1e04cf22d2bd11 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:35 +msgid ":ref:`using_notebook` - allows to predefine study variables." +msgstr "" + +# e9ccd15f92034354af7a4c59b010f122 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:36 +msgid "" +":ref:`python_interpreter_page`, used for direct input of python commands " +"and dumping studies into Python scripts." +msgstr "" + +# c10ae8ab1e3e479e96079642e7b3270b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:37 +msgid "" +"Almost all aspects of Salome look and feel can be tuned by the user in " +":ref:` themes_page \"Themes\" dialog." +msgstr "" + +# 8605f55aeeb84087b280b866ab2ed5ae +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:39 +msgid "" +"**Tools** menu gives access to: :ref:`using_catalog_generator_page`, " +":ref:`using_registry_tool_page` and :ref:`using_pluginsmanager`" +msgstr "" + +# ab49d85c66ae40639b4b1580a7086383 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:40 +msgid "" +"**Help** menu gives access to the help on Salome modules. The appropriate" +" help page can also be called from any operation dialog via **Help** " +"button." +msgstr "" + +# fe265a0c1111430997e02c7556669754 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:43 +msgid "" +"Help for the GUI module provides information about standard " +":ref:`viewers_page`." +msgstr "" + +# d2edb07c36ef483a82ff30b38f1a10cd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:46 +msgid "" +"General application preferences are described in the " +":ref:`setting_preferences_page` section of SALOME GUI Help." +msgstr "" + +# 3579962bb04e45d58e34c812e184d116 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/introduction_to_gui.rst:50 +msgid "" +":ref:`using_input_widgets_page` sub-section covers specific aspects of " +"behavior of certain kinds of SALOME GUI input fields." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/occ_3d_viewer.po b/doc/salome/gui/locale/fr/LC_MESSAGES/occ_3d_viewer.po new file mode 100644 index 000000000..ad68f888e --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/occ_3d_viewer.po @@ -0,0 +1,599 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# edb8448e5e2e48ebbfd8b386bba7d4a0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:5 +msgid "OCC 3D Viewer" +msgstr "" + +# 5f0a10b86b0745bab33ab22d08541575 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:8 +msgid "Operations" +msgstr "" + +# 6105786db0c84af481b37834cfa8bbbf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:10 +msgid "" +"The functionalities of OCC viewer are available via its Viewer Toolbar. " +"Buttons marked with small downward triangles have extended functionality " +"which can be accessed by locking on them with left mouse button." +msgstr "" + +# 7d2d79f84eaa4698b57a3e10ba9fe037 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:23 +msgid "" +"**Dump View** - exports an object from the viewer in bmp, png, jpeg or " +"another image format." +msgstr "" + +# 2c51788487f14db8b2689de03e1bc6ce +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:30 +msgid "" +"**Interaction style switch** - allows to switch between standard and " +"\"keyboard free\" interaction styles. \"Keyboard free\" style allows to " +"process all view transformations without using keyboard (only by mouse). " +"By default, rotation in this mode is performed by left mouse button, " +"panning - by middle mouse button, zooming - by right mouse button. " +"Selection in view by pressing \"s\" key works in both styles." +msgstr "" + +# 8c1ebf4dbbec4aa7824408fa7e41cec1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:43 +msgid "" +"**Zooming style switch** - allows to switch between standard (zooming at " +"the center of the view) and advanced (zooming at the current cursor " +"position) zooming styles." +msgstr "" + +# 0f72bdbcbba942c5b46e2b904568c198 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:52 +msgid "**Show/Hide Trihedron** - shows or hides coordinate axes." +msgstr "" + +# 511c661f99a94aa796ff3bfbcbb94f0e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:59 +msgid "" +"**Enable/Disable preselection** - enables or disables preselection " +"(highlighting) in the view." +msgstr "" + +# 79d06086f04c4d6c9fa99574b64b591d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:66 +msgid "**Enable/Disable selection** - enables or disables selection in the view." +msgstr "" + +# f36e954304dc41b5b977d2ae09aa51d0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:73 +msgid "**Fit all** - represents all displayed objects in the visible area." +msgstr "" + +# b4db21371b594ce7b4837fd3e0eeda37 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:81 +msgid "" +"**Fit area** - resizes the view to place in the visible area only the " +"contents of a frame drawn with pressed left mouse button." +msgstr "" + +# d2b8bb6a469e4cd09b6aa3b17c9fd721 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:89 +msgid "**Fit selection** - fits view contents to the current selection." +msgstr "" + +# bdd29f2475664e2680e66653fb25c499 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:96 +msgid "**Zoom** - allows to zoom in and out." +msgstr "" + +# f225c2090b254c9b908589e690bb1327 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:103 +msgid "" +"**Panning** - if the represented objects are greater that the visible " +"area and you don't wish to use **Fit all** functionality, click on this " +"button and you'll be able to drag the scene to see its remote parts." +msgstr "" + +# 2b445536fe1e48dcad787775b2563a2f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:113 +msgid "" +"**Global panning** - allows to select a point to be the center of a scene" +" representing all displayed objects in the visible area." +msgstr "" + +# 258426eee41f464abbb0ed43921bf1ff +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:121 +msgid "" +"**Change rotation point** - allows to choose the point around which the " +"rotation is performed." +msgstr "" + +# 491ed593fdeb455484d207451432a761 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:127 +msgid "" +"By default the rotation point is located in the Center of the bounding " +"box of represented objects." +msgstr "" + +# 21681dbe0a914185a7ec10b808b04449 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:133 +msgid "" +"Unchecking **Use Bounding Box Center** check-box allows you to change " +"rotation point:" +msgstr "" + +# 506e066ae75848fd905a452557ecf305 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:136 +msgid "" +"**Set to Origin** button sets the rotation point to origin of " +"coordinates: (0, 0, 0)." +msgstr "" + +# 5e75938dd95d43d59e9cbb8be531ee92 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:137 +msgid "" +"**Gravity Center of Selected Object** button allows using the gravity " +"center of the object selected in the viewer as the center of the rotation" +" point. When you click this button, you should first choose the type of " +"selectable object: Point, Edge, Face or Solid and only then proceed with " +"selection in the viewer." +msgstr "" + +# 4c398b1f69b74199814a54f700faf78a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:138 +msgid "Also you can define the coordinates of the rotation point manually." +msgstr "" + +# 11fb42efaf2b4d2d9ea46490dd78ed63 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:145 +msgid "**Rotation** - allows to rotate the scene using the mouse." +msgstr "" + +# f501bdf17e1d47e38904c12f90b3648f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:167 +msgid "" +"These buttons orientate the scene strictly about coordinate axes: " +"**Front**, **Back**, **Top**, **Bottom**, **Left** or **Right** side." +msgstr "" + +# 1d56af2c92804fecad7ebb0e81e6c627 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:175 +msgid "" +"**Rotate counterclockwise** - rotates view 90 @htmlonly ° " +"@endhtmlonly counterclockwise." +msgstr "" + +# 04bbccb4c185462ca7904926c88deec1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:182 +msgid "" +"**Rotate clockwise** - rotates view 90 @htmlonly ° @endhtmlonly " +"clockwise." +msgstr "" + +# ab4f03c1383a4b09be5b3ddb3077012d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:189 +msgid "**Ortographic projection** - default OCC viewer projection mode." +msgstr "" + +# 69ee8f1f0d8c46428065050295a4ff5a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:196 +msgid "**Perspective projection** - perspective OCC viewer projection mode." +msgstr "" + +# 4e6bd91beaa743a8a5c1bfbbde1a5ac4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:203 +msgid "" +"**Stereo projection** - stereoscopic rendering of the view. .. note:: " +"Activation of this mode also switches the view to perpective projection " +"in case if the orthographic one has been active. .. note:: By default, " +"quad-buffered stereo is activated, if it is supported by the graphic " +"card. If no stereo capabilities are available, an error message is shown." +" .. note:: The stereoscopic view settings can be defined in " +":ref:`occ_preferences` preferences." +msgstr "" + +# 7a1a3affc2a942f789904b4d7e9bacd3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:213 +msgid "" +"**Reset** - restores the default position (isometric) of objects in the " +"scene." +msgstr "" + +# 9a9311db82ed4b0aa101bdc53ed7784a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:221 +msgid "**Memorize view** - saves the current position of objects in the scene." +msgstr "" + +# c66cd9df583b40a6ab953f3aa010ff13 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:229 +msgid "**Restore view** - restores the saved position of objects in the scene." +msgstr "" + +# a90836b57fae4c8ea0bf00144b1b11db +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:237 +msgid "**Clone view** - opens a new duplicate scene." +msgstr "" + +# b720ad6e71b94dcf88939ad65438c142 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:244 +msgid "Clipping Planes" +msgstr "" + +# 4728621efd304609a18055d23a74ed99 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:246 +msgid "" +"**Clipping** allows creating cross-section views (clipping planes) of " +"your mesh." +msgstr "" + +# 4cdb83c510f54e168e85a5a358188faa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:249 +msgid "" +"To create a clipping plane, click on the **New** button in the dialog and" +" choose how it will be defined by **Absolute** or **Relative** " +"coordinates." +msgstr "" + +# a395c00866ed478190f2fae1071b799e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:251 +msgid "**Absolute Coordinates**" +msgstr "" + +# 9fe56524a22c4eb0ae965b10b2b8996e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:256 +msgid "" +"**Base point** - allows defining the coordinates of the base point for " +"the clipping plane." +msgstr "" + +# ff2dd6b702754c8cad50abdf5e56e9bf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:258 +msgid "**Reset** - returns the base point to coordinate origin." +msgstr "" + +# b81e17892cbb408ab2587a04385dd457 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:260 +msgid "**Direction** - allows defining the orientation of the clipping plane." +msgstr "" + +# da939f4681e2407c8e8efff25446ddd8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:262 +msgid "" +"**Invert** - allows selecting, which part of the object will be removed " +"and which will remain after clipping." +msgstr "" + +# 207d3f3c7f494b9ca47599e6a3497686 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:265 +msgid "**Relative mode**" +msgstr "" + +# 14704a9aadc94812b6e59c31e9476145 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:270 +msgid "**Orientation** ( ||X-Y, ||X-Z or ||Y-Z)." +msgstr "" + +# f446cc2a842343c79f8fb484d84e7e00 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:272 +msgid "" +"**Distance** between the opposite extremities of the boundary box of " +"represented objects, if it is set to 0.5 the boundary box is split in two" +" halves." +msgstr "" + +# 613150bca3724c579791cc6e9cd77233 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:274 +msgid "" +"**Rotation** (in angle degrees) **around X** (Y to Z) and **around Y** (X" +" to Z) (depending on the chosen Orientation)" +msgstr "" + +# 7b2b696e6b1b40e69b411c3524f40f2d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:276 +msgid "The other parameters are available in both modes :" +msgstr "" + +# f3f79f79e96c4c7a8d851f0058c1b5c7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:278 +msgid "" +"**Active** checkbox is used to apply/erase current plane and it's affect " +"to/from view." +msgstr "" + +# 597cf13c13054c88a08e2a1938c5695c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:279 +msgid "" +"**Delete** removes the active clipping plane and discards it's view " +"changes." +msgstr "" + +# 30c0dff4834c49d28e4d69a7fbaafbbc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:280 +msgid "" +"**Disable all** deactivates all created clipping planes and clears **Auto" +" Apply** checkbox." +msgstr "" + +# eaf958796f3a49ad8a05bbf118734a7a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:281 +msgid "**Preview** check-box shows the clipping plane in the **3D Viewer**." +msgstr "" + +# fb74485207ca4d8d9d17cb1c3d9f975a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:282 +msgid "" +"**Auto Apply** check-box allows you to see the result of clipping in the " +"**3D Viewer** immediately. Be careful, it is not a preview 2and Close " +"button could not cancel the applied modifications." +msgstr "" + +# 853cc63ab412420caac383c6c96fac5e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:284 +msgid "" +"It is also possible to interact with the clipping plane directly in 3D " +"view using the mouse." +msgstr "" + +# fef03fa2ea4a40ce841deb3583cc2e8e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:292 +msgid "" +"**Scaling** - represents objects deformed (stretched or stuffed) along " +"the axes of coordinates." +msgstr "" + +# c4e889c8134e469cbce9fdd07df3f25f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:300 +msgid "**Graduated axes** - allows to define axes parameters and graduate them." +msgstr "" + +# ab21f90ae19c455fbf312cd54f169765 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:306 +msgid "**Axis name** - if checked the axis name is displayed in the viewer." +msgstr "" + +# 6e6cd5dc06a34514983e65f42d4c4e16 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:308 +msgid "**Name** - allows to redefine the axis name." +msgstr "" + +# 1774516d068b453db6897560a3e77930 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:310 +msgid "**Font** - allows to define the font color of the axis name." +msgstr "" + +# 1f8f55583c0148a5ababc422b53055f3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:312 +msgid "**Labels** - if checked the labels are displayed in the viewer." +msgstr "" + +# 9b7c593ec0e44f7eaef3b1af99a68d53 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:314 +msgid "**Number** - allows to define the number of labels." +msgstr "" + +# b9e0349af5e443448aa902880a2b20c3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:316 +msgid "**Offset** - allows to define the distance between axis and labels." +msgstr "" + +# 8657bd54ff68436c9cee93c39c9aed15 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:318 +msgid "**Font** - allows to define the font color of labels names." +msgstr "" + +# e45ec749cdbd476e9fc3152e1613b9e4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:320 +msgid "**Tick marks** - if checked the tick marks are displayed in the viewer." +msgstr "" + +# 378296b383cc4f41bcba4bb2da0bcb22 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:322 +msgid "**Length** - allows to define the length of tick marks." +msgstr "" + +# 6602e5af259d43199c1c87bef65a15e7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:324 +msgid "" +"**Is visible** - if checked the graduated axes are displayed in the " +"viewer." +msgstr "" + +# cf733d6f31c34a41a1209efbe86eca29 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:331 +msgid "**Toggle ambient light** - toggle \"keep only ambient light\" flag on/off." +msgstr "" + +# a0786e2bbbbf41dd85d6ce344d7fdb06 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:344 +msgid "" +"**Minimize/Maximize** - these buttons allow switching the current view " +"area to the minimized / maximized state." +msgstr "" + +# b1d4a1f5c68a4ff2a05b293461b1d572 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:352 +msgid "" +"**Return to 3D** - this button switches from 2D view projection back to " +"the 3D view mode." +msgstr "" + +# cf501138dae14e9eb2462c7c91ea5f6a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:359 +msgid "" +"**Synchronize view** - allows to synchronize 3d view parameters. This " +"button has two states - checked and unchecked. Clicking on this button " +"opens a drop-down menu listing the compatible 3d views. As soon as the " +"user selects any view from the list, the parameters (view point, " +"position, zoom coefficient, etc.) of the current view are synchronized " +"with the selected view (static synchronization)." +msgstr "" + +# cddb399d118c4c06b9eba1218be632b0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:367 +msgid "" +"In addition, when this button is in the \"checked\" state, the dynamic " +"synchronization of the views is performed, i.e. any zoom, pan, rotate or " +"other view operation done in one view is automatically applied to the " +"other view." +msgstr "" + +# 5474cbcb118c421386fdfc663380286a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:380 +msgid "Ray tracing" +msgstr "" + +# 9ea273a72e53490aaa114c745ed87c26 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:382 +msgid "" +"**Ray tracing** - allows to switch between rendering methods in run-time " +"in the current OCCT 3D view. It can be used to produce images with " +"photorealistic quality." +msgstr "" + +# 54a6d111e4bc4eb8845b1da143889b5a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:388 +msgid "" +"**Ray tracing** - specifies rendering mode: OpenGL rasterization (by " +"default) or GPU ray-tracing." +msgstr "" + +# 844c7808f5da4df39819b117e1049573 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:390 +msgid "**Depth** - defines maximum ray-tracing depth." +msgstr "" + +# d72d6880ef04437c9eb57fdff137c30a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:392 +msgid "**Specular reflections** - enables/disables specular reflections." +msgstr "" + +# c8a99eca0fbb4132b902efcd7534cdb9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:394 +msgid "**Adaptive anti-aliasing** - enables/disables adaptive anti-aliasing." +msgstr "" + +# 350131a35d9c4428abe9038cb53b9525 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:396 +msgid "**Shadows rendering** - enables/disables shadows rendering." +msgstr "" + +# 58471157964641908730c9b6cb84aebf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:398 +msgid "" +"**Transparent shadow** - enables/disables light propagation through " +"transparent media." +msgstr "" + +# e437fd68f79f465994c4750128e2314b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:408 +msgid "Environment texture" +msgstr "" + +# dd9ed685518e48e7b6de70a3aad0c421 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:410 +msgid "" +"**Environment texture** - allows to set parameters for environment " +"texture. This is a special mode of texture mapping when specular " +"reflection of environment texture is simulated by OpenGL using a special " +"texture coordinates generation algorithm (a sphere map)." +msgstr "" + +# e45dbdf97d2b4bfa82f7967a25bb29c5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:417 +msgid "" +"**Environment texture** - enables/disables environment texture in the " +"current OCCT 3D view." +msgstr "" + +# 4e7c9918d17747539f26f469fc70415a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:419 +msgid "" +"User can select one of 7 predefined environment texture from the list or " +"define its texture from file by choosing item **\"Custom...\"** in a " +"combo box." +msgstr "" + +# 894ccb13741142a8b1b2e6cdc787ecb2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:424 +msgid "" +"Environment texture file should normally satisfy the following " +"requirements in order to produce good visual result:" +msgstr "" + +# 3fbbc871fefd4836bd6de54c179d3ed6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:424 +msgid "The image file should have 2:1 width-to-height ratio." +msgstr "" + +# e0d0e446c5ea456f9ecc7b623e4ef7a2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:425 +msgid "" +"It should constitute a 360-degrees panoramic image created using a fish-" +"eye lens." +msgstr "" + +# 14644aff7a5a4df0ad5cd7f819492d67 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:435 +msgid "Light source" +msgstr "" + +# 66f761f1a25244559d22f4cf89ced351 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:437 +msgid "**Light source** - allows to set parameters for light source." +msgstr "" + +# b496c483ee644da5a4d0b8bd8b5bfe4e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:439 +msgid "" +"It's possible to choose a type of light source between directional and " +"positional light." +msgstr "" + +# b532628134194931bb2736ec15abd942 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:444 +msgid "" +"**Directional** light - creates a directional light source in the viewer." +" It is defined by direction coordinates, color and headlight parameter." +msgstr "" + +# 9bdf5ead3d044ffebb59cd6293b9f7ec +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:450 +msgid "" +"**Positional** light - creates an isolated light source X,Y,Z in the " +"viewer. It is also defined by the color and headlight parameter." +msgstr "" + +# 871469fd93524c778f11b7f655900b86 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:453 +msgid "Click:" +msgstr "" + +# 87b0705ba1da4716b9122e5a4a0df6dc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:455 +msgid "**Apply and Close** to apply defined light source to the OCC 3D Viewer." +msgstr "" + +# e00383e0e3334d408c19c7736c3b1b31 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:457 +msgid "**Default** to restore default values of light source." +msgstr "" + +# 698c0f033f1d48b6a0ec0497cbd4ba75 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/occ_3d_viewer.rst:459 +msgid "**Close** to return parameters of light source on initial values." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/plot2d_viewer.po b/doc/salome/gui/locale/fr/LC_MESSAGES/plot2d_viewer.po new file mode 100644 index 000000000..7994cb579 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/plot2d_viewer.po @@ -0,0 +1,405 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 8c0d38178ed04c1f9a930b89c94aa46f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:5 +msgid "Plot 2D viewer" +msgstr "" + +# ef36f53d766a41ce8caf1464c73b9843 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:7 +msgid "" +"The functionalities of Plot2d viewer are available via its Viewer " +"Toolbar. Buttons marked with small downward triangles have extended " +"functionality which can be accessed by locking on them with left mouse " +"button." +msgstr "" + +# 286c07e6d77a4a7c96dd6811bff9d6ee +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:21 +msgid "" +"**Dump View** - exports an object from the viewer in bmp, png or jpeg " +"image format." +msgstr "" + +# 037d30c9f0164c54b90b2825330367a4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:30 +msgid "" +"**Fit all** - scales the display to show the entire scene. Use this to " +"resize the scene so that it could fit within the Viewer boundary." +msgstr "" + +# 09a7a02a0cd948de9fd02d80c3fe752a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:39 +msgid "" +"**Fit area** - resizes the view to place in the visible area only the " +"contents of a frame drawn with pressed left mouse button." +msgstr "" + +# 5cf87a0cd45043958eff998309e7b3cd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:48 +msgid "**Zoom** - allows to zoom in and out." +msgstr "" + +# 7058322dbbc34986838cda040a555389 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:56 +msgid "" +"**Panning** - if the represented objects are greater that the visible " +"area and you don't wish to use Fit all functionality, click on this " +"button and you'll be able to drag the scene to see its remote parts." +msgstr "" + +# e5a76f3d95314094bc5c95d25d25a14c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:66 +msgid "" +"**Global panning** - allows to define the center of the scene presenting " +"all displayed objects in the visible area." +msgstr "" + +# 1d4caeea0d744b5f935af9d48dc9fdf0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:75 +msgid "" +"**Draw Points** - switches display mode to *Points*. In this mode, each " +"curve is displayed as a set of points." +msgstr "" + +# e8cc1dce5c234d9da7c8e37a45582e4d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:84 +msgid "" +"**Draw Lines** - switches display mode to *Lines*. In this mode, each " +"curve is represented as a set of plain line segments." +msgstr "" + +# 31b0ff6ce63a481cb5482809a68392d0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:93 +msgid "" +"**Draw Splines** - switches display mode to *Splines*. In this mode, each" +" curve is represented as a spline." +msgstr "" + +# 485ddf22635d43d590410a87d071bda3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:102 +msgid "" +"**Normalization to global minimum by left Y axis** - switches " +"normalization mode to **Left Y Axis: Minimum normalization**. In this " +"mode, all curves are normalized to the global minimum by the left Y axis." +msgstr "" + +# cf25abc058734656b17f15628423fd72 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:109 +msgid "" +"**Normalization to global maximum by left Y axis** - switches " +"normalization mode to **Left Y Axis: Maximum normalization**. In this " +"mode, all curves are normalized to the global maximum by the left Y axis." +msgstr "" + +# 5bdfd7eb7b7c45288490201f878d89d1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:119 +msgid "" +"**Normalization to global minimum by right Y axis** - switches " +"normalization mode to **Right Y Axis: Minimum normalization**. In this " +"mode, all curves are normalized to the global minimum by the right Y " +"axis." +msgstr "" + +# a2a4677fb39148f190e689c31ea1b0a7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:127 +msgid "" +"**Normalization to global maximum by right Y axis** - switch " +"normalization mode to **Right Y Axis: Maximum normalization**. In this " +"mode, all curves are normalized to the global maximum by the right Y " +"axis." +msgstr "" + +# 84ecddf888234b289ce0a52ed2701d36 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:143 +msgid "" +"These buttons allow to switch horizontal axis scale to the linear or " +"logarithmic mode." +msgstr "" + +# 9fdfd781226744c28e6a89fcc4dcf4d5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:147 +msgid "" +"The logarithmic mode of the horizontal axis scale is allowed only if the " +"minimum value of abscissa component of displayed points is greater than " +"zero." +msgstr "" + +# 6e56c9986bd6478590128e41cf656c73 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:161 +msgid "" +"These buttons allow to switch vertical axis scale to the linear or " +"logarithmic mode." +msgstr "" + +# e20197d909a7417eb9ecc2cbd242a6d2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:165 +msgid "" +"The logarithmic mode of the vertical axis scale is allowed only if the " +"minimum value of ordinate component of displayed points is greater than " +"zero." +msgstr "" + +# f90c69fbbec54121ab8e0553d2b20303 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:174 +msgid "" +"**Show Legend** - Shows / hides information about the displayed objects " +"in a legend." +msgstr "" + +# ea94f1330a9d41038576093a48e3fa10 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:183 +msgid "" +"**Settings** - provides an access to the settings dialog box, that allows" +" to specify advanced parameters for the Plot 2d Viewer." +msgstr "" + +# aef50596d9c24800bb06b9718da86b3f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:189 +msgid "Settings" +msgstr "" + +# 60408d27f9c44133b944c12c3f21fc01 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:194 +msgid "The following options are available:" +msgstr "" + +# a2063a4e4e9b4b9f9c21ed8485c91054 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:196 +msgid "" +"**Main title** is the XY plot title. By default, it contains the names of" +" tables, from which the curve lines are constructed." +msgstr "" + +# 97f866596e4f47dc862a670d7a876b81 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:199 +msgid "**Curve type** allows selecting from *Points*, *Lines* or *Spline*." +msgstr "" + +# 9a4bcdfc50cf486ab11abfad42f05e1c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:201 +msgid "**Marker size** - size of the points (markers) forming curve lines." +msgstr "" + +# 5455c3afb7e64c6390b9d35bc04a5e2c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:203 +msgid "**Background color** of the XY plot." +msgstr "" + +# 4b49de357ced4af9b5e681ecbb56e6fa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:205 +msgid "**Selection color** - defines the color of selected object in the viewer." +msgstr "" + +# ba98d69138874dc39de99e561d943f2c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:207 +msgid "**Legend** specifies the legend properties." +msgstr "" + +# e4d35770ac70493caee6313d4155fd3f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:209 +msgid "**Show legend** - specifies if the legend is shown by default." +msgstr "" + +# 8397b47c5d834bd9aa588bab5c554814 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:211 +msgid "" +"**Legend Position** allows positioning the description table on XY plot " +"(to the *Left*, to the *Right*, on *Top* or on *Bottom*)." +msgstr "" + +# 2cbde1d0af7d4de1bd4904d07396f0d7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:213 +msgid "" +"**Symbol type** allows positioning the legend item symbol: \"Marker on " +"line\" or \"Marker above line\"." +msgstr "" + +# ff49c61e8aa94c958fe83dee7eb6538d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:215 +msgid "" +"**Legend font** allows setting font variant, size and style for legend " +"items." +msgstr "" + +# d872cd85da9845bd9a0c879a24dc5f9e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:217 +msgid "**Legend font color** allows selecting the font color for legend items." +msgstr "" + +# c4d35834ddff44debf47418c12d8ae42 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:219 +msgid "" +"**Highlighted legend font color** allows selecting font color for " +"selected legend items." +msgstr "" + +# 269c4c52de004cdd97dfddabcece3baa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:221 +msgid "" +"**Deviation marker** specifies the properties of the marker, which is " +"used for drawing deviations data." +msgstr "" + +# af9725dea6ff4f3fbf63f4d182fec0b7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:223 +msgid "**Line width** line width of the marker." +msgstr "" + +# a1fff69dabe444c896ee4a5e33aa0b3a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:225 +msgid "**Tick size** size of the upper and lower horizontal lines of the marker." +msgstr "" + +# 1102c359f861404883737634b626c609 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:227 +msgid "**Color** color of the marker." +msgstr "" + +# 3850208e44054228acb9006e6bf01d7a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:229 +msgid "" +"**Normalization** allows selecting the type of normalization (*minimum* " +"or/and *maximum*) for the displayed presentations of 2d curves in the " +"view." +msgstr "" + +# 39a8b8bd3f7a4707b3d726b0c718ec72 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:233 +msgid "" +"**Scale mode** allows selecting the type of scaling (*Linear* or " +"*Logarithmic*) for **X (Horizontal)** or **Y (Vertical)** axes " +"separately. Note that the *Logarithmic* scale can be used only if the " +"minimum value of corresponding component (abscissa or ordinate) of all " +"points displayed in the viewer is greater than zero." +msgstr "" + +# 2eb9009b66464c70b3adcbf299cfd932 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:240 +msgid "" +"**Axis ...** options group allows specifying additional settings for each" +" axis separately:" +msgstr "" + +# 04c4ba169b6646289c203122d7e495d8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:243 +msgid "**Axis title** - an axis title." +msgstr "" + +# 90e6dc0e19584b53993a994c54401333 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:245 +msgid "" +"**Grid / Axes marks** allows defining the maximum number of major and " +"minor scale divisions for a given axis. The real number of intervals fits" +" to {1,2,5}*10^N, where N is a natural number, and does not exceed the " +"maximum." +msgstr "" + +# 7d5bbac7fc0247c58b2896069bea8d63 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:250 +msgid "" +"**Save settings as default** If this check box is marked, all XY plots " +"will be displayed with these defined properties." +msgstr "" + +# efeb2353babb47688f8a1c8e5bb19a86 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:260 +msgid "Analytical curves" +msgstr "" + +# 1efa3d36ad5b4621bb47544e38e4b805 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:265 +msgid "" +"**Analytical curves** - provides an access to the analytical curves " +"dialog box that allows to add, remove and modify analytical curves for " +"the Plot 2d Viewer." +msgstr "" + +# 27352ab37f524f1ba7a170bbf027b484 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:272 +msgid "The options are as follows:" +msgstr "" + +# 87177ed06e404e5c9a4df7393231ea87 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:274 +msgid "Curve parameters:" +msgstr "" + +# 51d5677fe5604ae6ab4657b5fe2af338 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:276 +msgid "" +"**y(x)=** allows specifying a python expression, which is used to " +"calculate the coordinates of the curve points, where **x** corresponds to" +" the horizontal range, shown in plot 2D viewer." +msgstr "" + +# 195b0ee5151547699c5c46d9f0a3103c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:280 +msgid "**Nb. itervals** allows specifying the number of the curve points." +msgstr "" + +# c6422998f3b64f399d318bc4eb1f4fb7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:282 +msgid "Curve properties:" +msgstr "" + +# aa21cb8d6b2140f183da3bb06c192d20 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:284 +msgid "" +"**Auto assign** if checked, the properties (*Line type*, *Line width*, " +"*Marker type* and *Color*) are assigned to curves automatically. To " +"define the curve properties manually, uncheck this control." +msgstr "" + +# 609fc2350634443ebe1231e3e4c9021f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:289 +msgid "" +"**Line type** allows to choose curve line type from *None*, *Solid*, " +"*Dash*, *Dot*, *Dash - Dot* and *Dash - Dot - Dot*." +msgstr "" + +# 19d1bb34aacb4e30819e7115aa1750cf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:293 +msgid "**Line width** allows to specify line width of the curve." +msgstr "" + +# 7ff4a059e07f4af389a2361fc0ab9f20 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:295 +msgid "" +"**Marker type** allows to choose curve marker type from *Circle*, " +"*Rectangle*, *Diamond*, *Rightward Triangle*, *Leftward Triangle*, " +"*Downward Triangle*, *Upward Triangle*, *Cross* and *Diagonal Cross*)." +msgstr "" + +# ba737f113d544994ac556ff4e410e335 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:300 +msgid "**Color** allows specifying the curve color." +msgstr "" + +# 4276c0e2859f4792ba99274b557edc73 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:309 +msgid "**Clone view** - opens a new duplicate scene." +msgstr "" + +# 3469e239d507416f9cc55310361a17e1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/plot2d_viewer.rst:317 +msgid "**Print view** - prints the current view scene." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/python_viewer.po b/doc/salome/gui/locale/fr/LC_MESSAGES/python_viewer.po new file mode 100644 index 000000000..329547b5c --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/python_viewer.po @@ -0,0 +1,186 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# f6244ffeeaff426898421d055ae33fb5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:5 +msgid "Python viewer" +msgstr "" + +# 1174fa6c6dda4a52bd2b61d73d1cdad0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:7 +msgid "The functionalities of Python viewer are available via its Toolbar." +msgstr "" + +# a1376c5f66df43f084070784a91b78c2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:18 +msgid "" +"**New** - clears the viewer to create a new script. If viewer was " +"modified, you will be asked to close it before removing." +msgstr "" + +# 6a597d803a8e42d2be4dcb9df351652a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:26 +msgid "" +"**Open** - allows opening an existing script by browsing for it in a " +"standard **Open File** dialog box, choosing the required .py file and " +"clicking **Open** button. If there is an already opened script, you will " +"be asked to close it before opening new one." +msgstr "" + +# 220cc8ba1dd44761bc811a5649f1c032 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:34 +msgid "**Save** - saves the current script." +msgstr "" + +# e4a837ad1a16464e89abfa8d581fc018 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:37 +msgid "" +"If the script has not been previously saved, Save calls the standard " +"**Save File** dialog, where you can enter the script name and save it." +msgstr "" + +# e62ab7725b884bea8b6b25270a01ee17 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:46 +msgid "" +"**Save As...** - allows saving the current script with a new name. Input " +"a new name for the script in the standard **Save file as ** dialog box " +"and click **Save** button." +msgstr "" + +# 716b5a5e4ddf4863985c66d233214f34 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:54 +msgid "**Undo** - undoes the last action in Python viewer." +msgstr "" + +# 88e98226d11b4aa5b1e9b3324e574c41 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:62 +msgid "**Redo** - redoes the previously undone action in Python viewer." +msgstr "" + +# ac2dfecde2d9467e875010472bed308b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:70 +msgid "" +"**Cut** - saves the selected text into the clipboard and removes it from " +"the viewer." +msgstr "" + +# c4a1d09477f4458584be16fbb275ac6c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:78 +msgid "**Copy** - saves the selected text into the clipboard." +msgstr "" + +# ed4adbcf50a742de948f60d45fb3a6c7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:86 +msgid "**Paste** - restores the saved text from the clipboard." +msgstr "" + +# 4f5abff86cd24ad58e7d712b020bda27 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:94 +msgid "**Delete** - removes the selected text." +msgstr "" + +# 548a96f1e3e1483bb5bee328680b6956 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:102 +msgid "**Select All** - selects the whole text." +msgstr "" + +# f6c0d97349e94477bbf8f6ba47de7b43 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:110 +msgid "" +"**Preferences** - provides access to the preferences dialog box, that " +"allows specifying advanced parameters for the Python Viewer." +msgstr "" + +# 7802522587db489f8e55a20a72b02314 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:115 +msgid "Custom Python preferences" +msgstr "" + +# ed70730ae9af45fcb807096860ad037a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:120 +msgid "The following options are available:" +msgstr "" + +# 3711af50fc6141f08c397b4e7d126af2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:122 +msgid "**Font settings** allows setting font variant and its size." +msgstr "" + +# b5c85bfd65a542d0bd149c737db56e0d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:124 +msgid "**Display settings** specifies the script representation in the viewer:" +msgstr "" + +# e861eee5632845b2981089b0fd4a0906 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:126 +msgid "" +"**Enable current line highlight** switches on background coloring of the " +"current line." +msgstr "" + +# 988983d81450493da0fd9efb42969302 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:127 +msgid "**Enable text wrapping** wraps lines at the view border of the editor." +msgstr "" + +# 3fb8e6b3b75749c79e5b40c8b0b64c8d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:128 +msgid "" +"**Center cursor on scroll** scrolls the script vertically to make the " +"cursor visible at the center of the viewer." +msgstr "" + +# 5baca2e26a9a4e2f9c51699e960c8b30 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:129 +msgid "" +"**Display line numbers area** shows a panel with line numbers of the " +"script at the left border of the editor." +msgstr "" + +# 96af9b7924404bdbb1c819547486e711 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:131 +msgid "" +"**Tab settings** allows displaying tab indentation as a certain number of" +" white-spaces." +msgstr "" + +# 1ab36852fe564bc9aff9b48ac5f3ecb3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:133 +msgid "" +"**Vertical edge settings** manages drawing of a vertical line at the " +"specified column of the viewer." +msgstr "" + +# a34dcfc0b25d447492eeb483637c81a7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:135 +msgid "" +"**Save settings as default** button stores the applied Python viewer " +"settings in the SALOME preferences .xml file. The settings will be " +"restored in the current and next SALOME sessions." +msgstr "" + +# 9bf239662be249bda21a1cd100a35746 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/python_viewer.rst:137 +msgid "" +"The buttons in in the bottom part of dialog box peform the following " +"actions: - **OK** button applies preferences to the editor; - **Cancel** " +"button rejects changes; - **Defaults** button restores preferences from " +"applicaion's defaults; - **Help** button opens Help browser." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/qxscene_2d_viewer.po b/doc/salome/gui/locale/fr/LC_MESSAGES/qxscene_2d_viewer.po new file mode 100644 index 000000000..96fe1e792 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/qxscene_2d_viewer.po @@ -0,0 +1,91 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-28 19:42+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# c4e14bcbb7bb40ceb35cd58ead1c6d3d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/qxscene_2d_viewer.rst:5 +msgid "QxScene 2D Viewer" +msgstr "" + +# 6b683ec7f10142d0bd2e0f974a12783e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/qxscene_2d_viewer.rst:8 +msgid "Operations" +msgstr "" + +# c314e0474e7f4a329f93611ddf13de3d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/qxscene_2d_viewer.rst:10 +msgid "" +"The functionalities of QxScene viewer are available via its Viewer " +"Toolbar. Buttons marked with small downward triangles have extended " +"functionality which can be accessed by locking on them with left mouse " +"button." +msgstr "" + +# e336811cfc5a46a083bb026177fec68c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/qxscene_2d_viewer.rst:24 +msgid "" +"**Fit all** - scales the presentation so that it could fit within the " +"Viewer boundaries." +msgstr "" + +# df283d5167a84e4380e3c2ffc119422e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/qxscene_2d_viewer.rst:33 +msgid "" +"**Fit area** - resizes the view to place in the visible area only the " +"contents of a frame drawn with pressed left mouse button." +msgstr "" + +# e27b2c5f552a4c5c8ff0a406da6fb435 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/qxscene_2d_viewer.rst:42 +msgid "**Zoom** - allows to zoom in and out." +msgstr "" + +# 7c3ea446d4e34e16b8dafe453684d917 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/qxscene_2d_viewer.rst:50 +msgid "" +"**Panning** - if the represented objects are greater that the visible " +"area and you don't wish to use **Fit all** functionality, click on this " +"button and you'll be able to drag the scene to see its remote parts." +msgstr "" + +# 07afce1c8531419998e83c5ce1f6bcd6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/qxscene_2d_viewer.rst:61 +msgid "" +"**Global panning** - allows to select a point to be the center of the " +"presentation showing all displayed objects in the visible ares." +msgstr "" + +# 17222b171d824beaaaea908a1057e963 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/qxscene_2d_viewer.rst:70 +msgid "**Reset** - restores the default position the scene." +msgstr "" + +# 7987d35632c24b029779480ebaa1ece5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/qxscene_2d_viewer.rst:75 +msgid "" +"For more details about QxScene viewer, refer to the **Help > User's guide" +" > YACS module**." +msgstr "" + +# b4dfbbd5bd40407fb808a154c3dfc3a9 +#~ msgid "" +#~ "For more details about QxScene viewer," +#~ " refer to the SALOME YACS module " +#~ "User's guide." +#~ msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/salome_desktop.po b/doc/salome/gui/locale/fr/LC_MESSAGES/salome_desktop.po new file mode 100644 index 000000000..0cc1f3383 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/salome_desktop.po @@ -0,0 +1,258 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 0e5e3ceba2f54c5e822c439cc550364a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:5 +msgid "SALOME desktop" +msgstr "" + +# 975311cf90464650af541c9c76900db0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:7 +msgid "" +"SALOME applies **Single Document Interface** (SDI) approach. Only one " +":ref:`study_management_page` \"study (document)\" can be opened at any " +"given moment." +msgstr "" + +# 2701d503476c423b9f73c42f23882020 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:10 +msgid "" +"The front-end of the application is a single Desktop top-level window " +"that embeds all GUI operations. The desktop window provides access to " +"standard GUI elements, such as viewers, main menu, toolbars, dockable " +"windows, dialog boxes, etc." +msgstr "" + +# dd7f4e04f584454880dff9ccbf29f3fc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:14 +msgid "" +"The main elements of the SALOME Desktop are represented on the picture " +"below:" +msgstr "" + +# bb34f6ca8835455cacf6653b7ba2a8ef +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:19 +msgid "The main parts of the SALOME Desktop are:" +msgstr "" + +# 47298d10ef0e477d8be39bd65a1a3221 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:21 +msgid "" +"**Main menu** - This is a set of context-sensitive menus updated " +"according to the functionality of the currently active component. In " +"general, these menus contain all functional options of SALOME platform." +msgstr "" + +# 093f72b1f68144d99f5bbdfa2185ca8e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:22 +msgid "" +"**Standard toolbar** - contains standard actions that allow creating new " +"or opening existing study, saving study, deleting objects, etc." +msgstr "" + +# f4f9cd8c5b51454580bebc368b2a787c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:23 +msgid "**Components toolbar** - allows activating components in SALOME platform." +msgstr "" + +# a0fa34dd25f6430587af814435665c15 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:24 +msgid "" +"**Module toolbars** - contain actions specific to the currently active " +"module." +msgstr "" + +# 99f6cca745f44fc8bb84f360a8c0c898 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:25 +msgid "" +"**Viewer toolbar** - provides a set of tools destined for visualization " +"of the presentations in the viewer." +msgstr "" + +# 6e203e249d7c48d1bf35d98dd97c1356 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:27 +msgid "" +"All toolbars in the **SALOME** Platform are context-sensitive. Loading of" +" a definite component (Geometry, Mesh etc.) will automatically add some " +"additional toolbars specific to this component. To display/hide a " +"toolbar, in the main menu choose **View > Toolbars**, and from this " +"submenu check or uncheck the toolbar that you would like to display/hide." +msgstr "" + +# 5c78f90a0eef4fa4be287853f62cf144 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:31 +msgid "" +"By default all toolbars are located on top of the SALOME desktop, but you" +" can relocate a toolbar by dragging it with the mouse and dropping in any" +" place of the window." +msgstr "" + +# 66b0a56f2f934bdabb014553c10a37b8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:33 +msgid "Parts of the study window:" +msgstr "" + +# 3e5c22453a4647cb8424732caa3d05f2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:35 +msgid "" +"**Object browser** - Management of objects created or imported into " +"SALOME application." +msgstr "" + +# f3dc35a87eb3404f81b87fc6e081937f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:36 +msgid "**Viewer** - This window is destined for visualization of presentations." +msgstr "" + +# 22e7305ae28b4e288305deaacfad577c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:37 +msgid "" +"**Python console** - Window for Python interpreter. This window functions" +" like a standard document: the pop-up menu invoked by right-click in this" +" window gives access to **Copy/Paste/SelectAll/ClearAll** options." +msgstr "" + +# 3f29315ff2744762850ea2a054b9a097 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:39 +msgid "" +"Object Browser, Python Console, MenuBar, etc are, in fact, separate " +"dockable windows. Dockable windows can be placed in special areas, on the" +" borders of desktop like toolbars. You can change the size and the " +"position of dockable windows, hide them or even place outside desktop. " +"SALOME saves in the same file all positions and sizes of dockable " +"windows. It means that the difference in settings of the same windows " +"(for example Python console) is possible between different modules (the " +"same window can have different size and position when other module is " +"activated). Also each module can indicate which common windows are " +"necessary for working, and only they will be displayed when this module " +"is active." +msgstr "" + +# 64b21baf61a94821b4c4d5fb15b5d185 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:51 +msgid "" +"All parts of Salome desktop and study window can be managed through " +"**View** menu." +msgstr "" + +# 141c909fc28e4ba798e68ea2c4911bfa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:56 +msgid "**Toolbars** - allows to show and hide toolbars." +msgstr "" + +# 3ff6798c819f455d8c4d0616c495b279 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:57 +msgid "" +"**Windows** - allows to show and hide dockable windows, such as Object " +"Browser and Python Console." +msgstr "" + +# 4e165d2fff12471696593ff9e02516f2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:58 +msgid "**Status Bar** allows showing and hiding the Status Bar." +msgstr "" + +# 913fd9c37be3421f9f506ceb5b5aadea +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:59 +msgid "" +":ref:`themes_page` - allows to select and edit the style (colors and " +"fonts) for Salome session." +msgstr "" + +# f4068464af804adc84a28a9eb1f8eb24 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:61 +msgid "" +"If there are several viewer windows in your current study and you want to" +" display more then one at the same time, you can use the functionalities " +"provided by the **Window** menu." +msgstr "" + +# 5afb1a7e02774a43932c73172a107d80 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:66 +msgid "**New window** - allows to open a new instance of any viewer." +msgstr "" + +# 7c87455ce13143cfbc91c0612d1a468e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:67 +msgid "**Close** - closes the currently active viewer window." +msgstr "" + +# 3384b07cf5174c96bd2e75f4dec78d56 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:68 +msgid "**Close all** - closes all viewer windows." +msgstr "" + +# 8be06758e2744bf08a87d40cb71030e7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:69 +msgid "**Group all** - arranges all created viewer windows on the same desktop." +msgstr "" + +# 45c3819814cc40e4a13feb2653dcd695 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:70 +msgid "" +"**Arrange Views** - allows choosing the necessary views and their layout " +"(see image below)." +msgstr "" + +# b5697a7c2f45459cb6b0bceb3299c18b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:72 +msgid "" +"The radio-buttons in **Views Layout** section allow choosing the number " +"of views to be arranged (2, 3 or 4). The buttons with images allow " +"choosing the view layout (depending on the chosen number of views)." +msgstr "" + +# d64d61d307a04406920ade77a1f64d7c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:73 +msgid "" +"**Views List** contains the list of opened view windows, where it is " +"possible to check in the necessary views." +msgstr "" + +# 9bdffd7eba7d40f1936b2f0a927fcebb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:74 +msgid "" +"**Close the remaining views** check-box allows closing all non-selected " +"views." +msgstr "" + +# 1b1f65a4de7d428d8f91c890ee1946f4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:75 +msgid "" +"**Stack the remaining views** check-box allows stacking all non-selected " +"views in the last tab area." +msgstr "" + +# beb795c232ac4fd1a451b223d65806ab +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:80 +msgid "" +"**Split Vertically** and **Split Horizontally** allow splitting the " +"representation area into two parts, in horizontal or vertical direction." +msgstr "" + +# 8e37126027e34444ab27a780ed783575 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:81 +msgid "List of all opened viewer windows provides fast access to them." +msgstr "" + +# bc32f1e8f6e148efae5f201c477155e3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/salome_desktop.rst:82 +msgid "**Rename** - allows renaming the currently selected viewer window." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/select_color_and_font.po b/doc/salome/gui/locale/fr/LC_MESSAGES/select_color_and_font.po new file mode 100644 index 000000000..37c25d337 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/select_color_and_font.po @@ -0,0 +1,66 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 28d6dee8eab74a1898d8059218955f16 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/select_color_and_font.rst:5 +msgid "Select Color and Font" +msgstr "" + +# a6e889b3cb5049ba8bd5c8c51cd4ed9e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/select_color_and_font.rst:10 +msgid "Select Color Dialog" +msgstr "" + +# a81897b0787e414499f6c9aac184091f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/select_color_and_font.rst:12 +msgid "**Select Color** and **Select Font** menus are used in many Preferences." +msgstr "" + +# b628e5698a4b436bae538543c1413f57 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/select_color_and_font.rst:16 +msgid "Select color" +msgstr "" + +# 66b0c69125454b57a72cacb54e5d992d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/select_color_and_font.rst:21 +msgid "" +"This menu allows to choose from either predefined **Basic Colors** " +"grouped in the upper left corner of the window or **Custom Colors**, " +"which you can define yourselves. To define a Custom Color, click on one " +"of the Custom Color cells, select the color you need in the field of " +"colors or by typing in its numeric parameters in the lower right corner " +"of the window, then click **Add to Custom Colors** button. The chosen " +"color will be added to **Custom Colors** table." +msgstr "" + +# 64bbf4472c034c2a9c1ba350ead0bc5d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/select_color_and_font.rst:32 +msgid "Select font" +msgstr "" + +# 2de55080378d4fae907465fba1f64230 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/select_color_and_font.rst:37 +msgid "" +"This menu provides a wide choice of **Fonts**, **Font Styles** and " +"**Sizes**. Characters can be underlined or struck out. It is possible to " +"preview them in the **Sample** window. **Script** dialog-box gives the " +"possibility to use not only Latin and Latin Extended but also Cyrillic, " +"Greek, Arabic, Runic and many other subsets." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/setting_preferences.po b/doc/salome/gui/locale/fr/LC_MESSAGES/setting_preferences.po new file mode 100644 index 000000000..81d695f41 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/setting_preferences.po @@ -0,0 +1,1226 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# b84af266090546d98bf39f1f03a10e95 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:5 +msgid "Setting Preferences" +msgstr "" + +# e9a1760127164987be8b96969e7a8d44 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:7 +msgid "" +"All user preferences of **SALOME** application can be customized using " +"the common **Preferences** dialog box. This dialog can be open using the " +"***File > Preferences...*** menu item." +msgstr "" + +# 133190bcd9a84e6bb470db721ae11fe3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:11 +msgid "The **Preferences** dialog box consists of two parts:" +msgstr "" + +# 105d8682936a4172910fe2f540c8cff1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:13 +msgid "" +"Available preferences sections are listed in the left part of the dialog " +"box; usually this list contains \"SALOME\" item that specifies general " +"application preferences and a separate section for each SALOME module " +"available in the current session." +msgstr "" + +# fcf8f422e51f4606a4ce2db696a83802 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:14 +msgid "" +"The tabbed widget at the right side of the dialog box provides controls " +"that can be used to customize the preferences." +msgstr "" + +# 07ed76e9acec4fc28c52483cf424ab35 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:16 +msgid "" +"The preferences for modules become accessible only after explicit loading" +" of these modules. Until then the dialog box will show the corresponding " +"warning message." +msgstr "" + +# 5d2cb65e363a4d1aa184192a454cb791 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:18 +msgid "" +"More detailed information about preferences for certain modules can be " +"found in the User's guide of the corresponding module." +msgstr "" + +# 5b8a4c5920c8430fad3971090ba6e053 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:20 +msgid "" +"General application preferences are specified in the **SALOME** section " +"of the **Preferences** dialog box. These preferences affect on the " +"application look-n-feel and common functionality." +msgstr "" + +# 3a22ce4da4af4545b381ab47f2ca8f2b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:24 +msgid "" +"If the study has just been started and other modules have not been loaded" +" yet, it will be possible to change only the settings which refer to the " +"whole GUI SALOME session." +msgstr "" + +# 3fef0d64380e4b4f9a45e24b54697d72 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:29 +msgid "General Preferences" +msgstr "" + +# afa87ab972174f52b73869118e771da5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:34 +msgid "**Language**" +msgstr "" + +# 429d3474db9249f996e536d28b8aa482 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:36 +msgid "" +"**Current language** - the language used by the application GUI. The " +"language change will come in force only after the application is " +"restarted." +msgstr "" + +# 5b0ad5452578470cb4fdd8501f78dd3e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:37 +msgid "" +"**Use C locale** - when checked, the C locale will be set for the " +"application, otherwise a system locale will be used. The locale change " +"will come in force only after the application is restarted." +msgstr "" + +# 9545dbc3160641a598798232e2705552 +# f7087d6e559d47a58ea257d8195821ff +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:39 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:338 +msgid "**Look and feel**" +msgstr "" + +# 29be3055dfa54199b14a56db0475fc88 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:41 +msgid "" +"**Show splash screen at start-up** - allows showing or hiding the splash " +"screen at start-up." +msgstr "" + +# 1d7a8fdcc3f047dcae39f4c66f67c9cc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:42 +msgid "" +"**Opaque resize** - force opaque resize mode for viewers area (tabbed " +"workspace). Clear this checkbox for less perfomant workstations." +msgstr "" + +# fc85ab02915a4c99ad1405516f7abca8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:43 +msgid "" +"**Drop-down buttons in toolbars for action groups** - when checked, the " +"action groups are represented in the viewer toolbars as a single drop-" +"down button, switchable by the user. Otherwise, all the buttons from the " +"action groups are displayed in the toolbar." +msgstr "" + +# 08e51837fbea488e842a08eb7056ef19 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:45 +msgid "**Study Properties**" +msgstr "" + +# 593e999ecaa04d428cc6181833d5d71c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:47 +msgid "" +"**Multi file save** - if checked in, your study will be saved in several " +"HDF files (one basic HDF file which will store the main information about" +" the saved study and several other files for the data created by each " +"component used during the study session). Opening of this study requires " +"that **ALL** saved files should be stored in the **SAME** directory. If " +"you would like to copy your saved study in another directory or machine, " +"you should copy all stored files. Otherwise, if you try to open this " +"study, some data will be lost and it will lead to invalid functioning of " +"the SALOME platform." +msgstr "" + +# 9b93090f390c474b90d96dc651ec9b81 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:48 +msgid "" +"**ASCII save** - if checked in, your study will be saved in ASCII format " +"file (or files)." +msgstr "" + +# 462e11e50d744afcab78664d37ac7fbe +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:49 +msgid "" +"**Automatic loading of light modules when opening study** - if checked " +"in, Light Modules of the current study will be automatically loaded at " +"the next study opening, allowing completion of object browser." +msgstr "" + +# 41a1d3d7bab94506b1adfebe44b8f474 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:50 +msgid "" +"**Store positions of windows** - if checked in, positions of windows " +"will be saved in a special file at the end of the current session and " +"then restored for a new session." +msgstr "" + +# f2b0bffd76bd4d929ff0df1e348299ee +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:51 +msgid "" +"**Store positions of toolbars** - if checked in, positions of toolbars " +"will be saved in a special file at the end of the current session and " +"then restored for a new session." +msgstr "" + +# 6554c7fac50b469988e29c97107c60c3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:52 +msgid "" +"**Auto-save interval (min)** - allows to specify the time interval (in " +"minutes) for automatic study saving operation. If the time interval is " +"equal to 0 (\"Disabled\" value is shown) the automatic saving is not " +"performed." +msgstr "" + +# f13a4806fe484cc8b06ae7f1d297bf1a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:53 +msgid "" +"**Store/restore last GUI state** - if checked in, all GUI settings are " +"saved with the rest of the data whenever you save the study. When the " +"study is reopened, the GUI state is restored." +msgstr "" + +# ae3f8fcca5aa4faeba22ba751afcadaa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:54 +msgid "" +"**Publish in study in python dump** - if this option is switched on, the " +"Python script resulting from Dump Python operation will include commands " +"related to the publication of the data in the study (if this option is " +"supported by specific module)." +msgstr "" + +# e9d3a453a58e4bc186fb26ed5994e801 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:55 +msgid "" +"**Multi file python dump** - allows to generate multiple files " +"(separately for each component) for dumping of a study to a python " +"script. If the option is disabled, the study is dumped to a single python" +" script." +msgstr "" + +# 3ec4e09393d048968f3ba295bd5c6f90 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:56 +msgid "" +"**Save GUI state in python dump** - if this option is switched on, the " +"Python script resulting from Dump Python operation will include commands " +"related to the GUI state." +msgstr "" + +# d5cab3b226b24ff4874f7a132f4bc0ec +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:58 +msgid "" +"**External browser** - allows to define what browser will be used to show" +" SALOME reference manuals: internal (built-in SALOME browser) or external" +" (IE, Netscape, Mozilla, ...). In addition, it is possible to specify" +msgstr "" + +# f18682451fdb44adbac62383bbc4038a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:60 +msgid "" +"**Application** - this option allows you to set an external browser (IE, " +"Netscape) which will be used for viewing SALOME reference manuals. By " +"default, Mozilla is used." +msgstr "" + +# 30af2c474568432791d235487f49ef56 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:61 +msgid "" +"**Parameters** - additional parameters required for launching of the " +"external browser (if applicable)." +msgstr "" + +# 98de952b7ae341b98c8634a642db6330 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:63 +msgid "**Python console**" +msgstr "" + +# d5af74ab68764d3a90a5dec85c85f9a1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:65 +msgid "" +"**Font** - allows quickly setting the parameters (style, size, face) of " +"the :ref:`font_color_dlg` used in embedded Python console." +msgstr "" + +# 5467aba25d2c4c4eb3dd4d8ae894aba4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:66 +msgid "" +"**Show banner** - this option allows to show/hide the Python banner on " +"top of the console window." +msgstr "" + +# dfd7dbfa319348bd841d7559671ceeb5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:68 +msgid "" +"**Show MRU items** - allows to define the maximum **Number** of items in " +"**Most Recently Used** list and the **Link type**:" +msgstr "" + +# 55923747d46141d691fe8747c063c34e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:70 +msgid "**Long** - shows the full path to the file." +msgstr "" + +# 1ebb15bac13d4a7c9c64963fae033b66 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:71 +msgid "**Short** - shows the file name only." +msgstr "" + +# 9398ca73c31b4420b99979722557e71a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:72 +msgid "" +"**Auto** - shows full paths to the files only if some files from " +"different locations have the same name." +msgstr "" + +# c168bce2a2a94e488f0078f6b882147f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:74 +msgid "**Full-screen**" +msgstr "" + +# 5fdb1e1d55504d84aec2cb0685a150a4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:76 +msgid "" +"**Hide object browser and viewers toolbars** - switches automatic hiding " +"of Object Browser and OCC viewer toolbar in full-screen mode." +msgstr "" + +# c3df5b6638cd40f9a5d995945324821e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:79 +msgid "3D Viewer Preferences" +msgstr "" + +# e34be8d3ea6445758ab0158ae58732ce +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:84 +msgid "" +"**Navigation style** - this option allows to choose one of the modes of " +"work with mouse in OCC and VTK 3D viewers." +msgstr "" + +# 2e5976b643a94596bbfe628b63b901df +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:86 +msgid "" +"**Salome Standard Controls** - allows to manipulate objects in the viewer" +" with the mouse and locked Ctrl button: increase or decrease the zoom " +"ratio with the left mouse button, translate object in any direction with " +"the central mouse button or rotate it with the right mouse button." +msgstr "" + +# e946a369edd848f7a811f3de8e4c5b5e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:87 +msgid "" +"**Keyboard Free** - allows to manipulate objects in the viewer with the " +"mouse without locking Ctrl button. In this case the operations are " +"assigned to the buttons differently: rotation is made with the left " +"button, translation with the right and zoom with both pressed in the same" +" time." +msgstr "" + +# 1169f991e7c1471786c47280ba2acf7f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:89 +msgid "**Zooming style** - this option allows to choose a zooming mode." +msgstr "" + +# a9551f9404414d3d8e9cfc53828a9dac +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:91 +msgid "" +"**Relative to the view's center** - allows to zoom the view relatively to" +" its center." +msgstr "" + +# 97471e8b8abe4717ac28116c0cf2b411 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:92 +msgid "" +"**Relative to the cursor** - allows to zoom the view relatively to the " +"current cursor position." +msgstr "" + +# 572c3dc3310d4551975f92f14b9a3813 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:94 +msgid "**Trihedron** - viewer trihedron settings:" +msgstr "" + +# ced44597b2bd4efda1b91443c32d0e80 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:96 +msgid "" +"**Size** - size of the coordinate axes (global trihedron) displayed in " +"the viewer." +msgstr "" + +# 6f7fa11e49084a3c89705aa05508db77 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:97 +msgid "" +"**Relative** - if this option is switched on, trihedron axes scale to fit" +" the size of the scene displayed in 3D viewer." +msgstr "" + +# ce8c5815b33a4b2f866c04ce4fe7e5bc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:98 +msgid "" +"**Show static trihedron** - allows to show/hide the static mini-trihedron" +" located in the bottom-left corner of the viewer." +msgstr "" + +# d2b09f87c4e9429ba85e0a5050627138 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:103 +msgid "OCC 3D Viewer Preferences" +msgstr "" + +# f4fe138ab7d34a9b9dd3ce06d5d63023 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:108 +msgid "" +"**Projection mode** - sets the default projection mode for the viewers: " +"Orthogonal or Perpective." +msgstr "" + +# 5fac8579bf214846928d3c36a6f6b74a +# 6c1fd770d5da4beea990694168ea1e55 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:109 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:189 +msgid "**Stereo render** - stereoscopic view settings:" +msgstr "" + +# 27f69a2d716f47feb7e90dafaaf5964c +# f10c91a7bf374ceebf36faaff62e6b87 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:111 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:191 +msgid "**Stereo type** - specifies a stereo pair type:" +msgstr "" + +# d4ba4434b49c4225806d4ae01acd0549 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:113 +msgid "Shutter glasses (OpenGL quad-buffer)" +msgstr "" + +# 6dbd8483a40748238eb022174009f39f +# 1c266e5e12a14601909afb564ca10965 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:114 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:199 +msgid "Anaglyph" +msgstr "" + +# 09e9c626d89245cc85e357b6bd5f7a0f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:115 +msgid "Row-interlaced" +msgstr "" + +# d80fcaa5668445bd813354f6c30db86e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:116 +msgid "Column-interlaced" +msgstr "" + +# d107b71a59a64fd986299e648af6fd0d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:117 +msgid "Chess-board stereo for DLP TVs" +msgstr "" + +# 9bef4f54f0034c0c8d2136b79664fd70 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:118 +msgid "Horizontal-anamorphic (side-by-side)" +msgstr "" + +# fd4931d307db4b30ae3eff7a851379f8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:119 +msgid "Vertical-anamorphic (Half OverUnder)" +msgstr "" + +# bbc58bb83186414fae7ff4162288b4f3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:122 +msgid "" +"The stereo pair type selected in this combobox is applied for all " +"existing OCC 3D views with stereo rendering already turned on within the " +"same SALOME GUI session. It is not possible to use different stereo modes" +" in several OCC 3D views at the same time within the same SALOME GUI " +"session." +msgstr "" + +# 4b419e54c88b48a3afe449bc772e2373 +# 0a6290a6055a43409b6cce7b2f67d55a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:124 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:206 +msgid "**Anaglyph filter** - specifies the format of anaglyph stereo pair:" +msgstr "" + +# af83b1ddd165433299ffa6683d66934e +# 01e6ee14147f4ab6993ca931cd18d216 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:126 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:208 +msgid "Red-Cyan (default)" +msgstr "" + +# 3ac63d966e5f458a9014b76076acf365 +# c761c6f9f48d45399feac71ac710a2d0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:127 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:209 +msgid "Yellow-Blue" +msgstr "" + +# 7386ba7984714462a59a14512a9c3f6f +# 356e40b83b3a4e76b1caacdaac3e14e3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:128 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:210 +msgid "Green-Magenta" +msgstr "" + +# 1bee844a3d844df89a7e0c7ab41de697 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:130 +msgid "**Convergence distance type**: Absolute or Relative (default)." +msgstr "" + +# 86cfd4cac8044588b53425c05b54d49a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:131 +msgid "**Stereographic focus value** - 1 by default." +msgstr "" + +# 76f699c9bb4f4c0385973bed2e310fe2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:132 +msgid "**IOD type** - Absolute or Relative (default)." +msgstr "" + +# 9a6071f0b6e74425a75748b60e8df1b3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:133 +msgid "**Interocular distance (IOD) value** - 0.05 by default." +msgstr "" + +# 1366b93e63284b5ab49024d3a8d6c64f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:134 +msgid "**Reverse stereo** - option to swap left and right frames." +msgstr "" + +# 3539391546974b1182b713e730678478 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:135 +msgid "**Enable V-Sync** - activates vertical synchronization." +msgstr "" + +# b9fa24ffbab74a7b98302152e74f2b62 +# 7cee7e406e9742adbeee5f9b7eb20a97 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:136 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:212 +msgid "**Enable quad-buffer support** - allows quad-buffered rendering." +msgstr "" + +# 5522f9ba3e9b43bb9b554c9aae4008a7 +# d3bfd165fb6942ee957088e779b9cfa6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:139 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:215 +msgid "" +"It is neccessary to enable quad-buffered stereoscopic rendering manually " +"in graphic driver settings. SALOME does not do it automatically." +msgstr "" + +# 7ba739649e644279a0fb8e103aaf13a8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:142 +msgid "All existing OCC 3D views should be re-created for quad-buffer support." +msgstr "" + +# d152e19107cd42a5882f78ebf0da6fa3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:144 +msgid "" +"**Background** - specifies the default background for the viewers, " +"separately for (for more details, refer to the :ref:`viewer_background` " +"page\"):" +msgstr "" + +# 6cd1aaf3842c48bab80da2f056fdc919 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:146 +msgid "**3D View**" +msgstr "" + +# 9dd96ddd360d458597ee924fda26fc0c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:147 +msgid "**XZ View**" +msgstr "" + +# b680bc43b87b48c0a99ab9d1eeb70b59 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:148 +msgid "**YZ View**" +msgstr "" + +# 29c96adc8d13438c8ac2cf4428ca6373 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:149 +msgid "**XY View**" +msgstr "" + +# 00260bf6550b42f7b580e37c46cc4415 +# 7eaccd954b1d457aa8957b9d0e77ad5e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:151 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:219 +msgid "**Selection**" +msgstr "" + +# 802bee84151f4802b0ad655176b4bcc9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:153 +msgid "**Enable preselection** - switches preselection on/off." +msgstr "" + +# ea9db45ba35f4c6c86950476f9f8b068 +# c5c19003135740d68a9df304116e72b7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:154 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:227 +msgid "**Enable selection** - switches selection on/off." +msgstr "" + +# 19394846299d44d8a5b99c0b44cb7833 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:156 +msgid "**Clipping parameters** - specifies the default clipping plane parameters." +msgstr "" + +# ea6c8e8b84e44db7b9d7fe5eed79164d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:158 +msgid "**Color** - allows to change the color of the clipped region." +msgstr "" + +# fc31c43de7ad4076bf41bb5f561810f5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:159 +msgid "" +"**Use default texture** - if this option is switched on, the default " +"texture will be used for clipping texture, otherwise - the texture " +"specified in \"Texture\" field." +msgstr "" + +# 90cfff3246064c8599da1ca361bba5bc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:160 +msgid "" +"**Texture** - allows to change the texture of the clipped region (enable " +"if \"Use default texture\" is switched off)." +msgstr "" + +# 374d643e79224e1aba766b40eb1c05f8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:161 +msgid "" +"**Modulate** - controls if \"Texture\" should be mixed with \"Color\" " +"parameter or not." +msgstr "" + +# ee49b1a6ff2c4832b5f42c837104eb2a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:162 +msgid "**Scale factor** - sets the scale factor for default and custom textures." +msgstr "" + +# 3112e68958934d729f6e1db8750a28b4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:164 +msgid "**Ray tracing** - specifies the default GPU ray-tracing parameters." +msgstr "" + +# 2d9433c3698f4d1295e835f8532474fa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:166 +msgid "**Depth** - defines maximum ray-tracing depth." +msgstr "" + +# e4a2c52669234c60b6cc427ab528bbcd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:167 +msgid "**Specular reflections** - enables/disables specular reflections." +msgstr "" + +# 186feecaabbf46a8b64e4687465f31aa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:168 +msgid "**Adaptive anti-aliasing** - enables/disables adaptive anti-aliasing." +msgstr "" + +# 129021758f304b98ae91d5579deca1bc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:169 +msgid "**Shadows rendering** - enables/disables shadows rendering." +msgstr "" + +# 5fe1fb512b974594bb49d6d7d5e90df8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:170 +msgid "" +"**Transparent shadow** - enables/disables light propagation through " +"transparent media." +msgstr "" + +# 9f92d9a57f734ff5b4b1befb9a3ab2b3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:172 +msgid "" +"**Light source** - allows to set default parameters for directional light" +" source." +msgstr "" + +# b51fe5c5800547829e7497e49a22b707 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:174 +msgid "**Color** - allows to change the color of light source." +msgstr "" + +# eff8115cc9744172bbf3500e1c415920 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:175 +msgid "**Dx, Dy, Dz** - sets direction coordinates." +msgstr "" + +# 6771aac8a3bf4f44aebaf1f9b0bf0d35 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:180 +msgid "VTK 3D Viewer Preferences" +msgstr "" + +# e4f2936bece344f8aa31dcf5eb71d724 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:185 +msgid "" +"**Projection mode** - allows choosing between **Orthogonal** and " +"**Perspective** projection mode." +msgstr "" + +# 709327bd7a8b405991ca412af9e7227d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:186 +msgid "" +"**Background** - specifies the default background for the viewer; for " +"more details, refer to the :ref:`viewer_background`." +msgstr "" + +# aedb26e3136e4bf1ac7378340983e046 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:187 +msgid "" +"**Speed Increment** - defines the number of units by which the speed " +"increases or respectively decreases after pressing [+] or [-] keyboard " +"buttons." +msgstr "" + +# 569c00e566db45d18c57f26609cd6889 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:188 +msgid "" +"**Modification Mode** - allows choosing between **Arithmetic** and " +"**Geometrical** progression used for zooming." +msgstr "" + +# 8e9737bb1d314c4086a541e0ecfe3d83 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:193 +msgid "Crystal Eyes" +msgstr "" + +# 4ba6884209874eeb9db759e79d20db6f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:194 +msgid "Red-Blue" +msgstr "" + +# e18bc26133784a4ab256a7a83914f23c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:195 +msgid "Interlaced" +msgstr "" + +# 8e0aa0ce0b12452abdefff10eae8ec7d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:196 +msgid "Left" +msgstr "" + +# f5391f1e40ee4ed3ab0c97a35bcc0704 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:197 +msgid "Right" +msgstr "" + +# 3f5a34ae8ab6442ebd6dac384cc1e446 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:198 +msgid "Dresden" +msgstr "" + +# b3e30bebbabf4d9aa64dd2dbc120f4f2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:200 +msgid "Checkerboard" +msgstr "" + +# d9fe6b61e0c547af9cd1f891181b988c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:201 +msgid "Split View Port Horizontal" +msgstr "" + +# bae72857293c44ee8fd2c5da4854eda7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:204 +msgid "" +"The stereo pair type selected in this combobox is applied for all " +"existing VTK 3D views with stereo rendering already turned on within the " +"same SALOME GUI session. It is not possible to use different stereo modes" +" in several VTK 3D views at the same time within the same SALOME GUI " +"session." +msgstr "" + +# d92fbfe06d3d4d54a181362d488d3e88 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:217 +msgid "All existing VTK 3D views should be re-created for quad-buffer support." +msgstr "" + +# 03399cda6a744053b0e205f8e068bb9e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:221 +msgid "" +"**Preselection** - allows to choose among three possible preselection " +"modes:" +msgstr "" + +# 7323d9b906ee40008bd28b6aa8083478 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:223 +msgid "" +"**Standard** - this mode works quickly, by checking only bounding boxes " +"of objects. It does not deal with the order of actors in the view or with" +" their data (points/ cells)." +msgstr "" + +# c117803945ad4c4a8d39686f7fa4dba9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:224 +msgid "" +"**Dynamic** - works directly with cells of actors, which provides the " +"exact area of preselection. This mode is much more slower." +msgstr "" + +# 44f7d3d0fa3d41b487066f7f83009cef +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:225 +msgid "**Disabled** - switches off the preselection." +msgstr "" + +# a62400672b104214a330bdd85627a122 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:229 +msgid "" +"**Spacemouse** - a mouse-like manipulator device specially designed for " +"working with 3D presentations, objects, etc. You can reassign the actions" +" listed below to any of its buttons." +msgstr "" + +# 91f208679dce4ce9ad83a9e24a08411a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:231 +msgid "" +"**Decrease Speed Increment** - decreases by 1 the speed increment used " +"for the keyboard (same as [-] key)." +msgstr "" + +# 1d84f31169574e28b7e4833ddd286e3e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:232 +msgid "" +"**Increase Speed Increment** - increase by 1 the speed increment used for" +" the keyboard (same as [+] key)." +msgstr "" + +# 1980608125614934820ef3ba21166a18 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:233 +msgid "" +"**Dominant / combined switch** - toggles button to switch to dominant or " +"combined movements." +msgstr "" + +# 1b2f0cb1b65d4899b7ee053ac7d38cab +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:235 +msgid "**AVI Recording**" +msgstr "" + +# 766b30a3acea49f88442958cee8bff86 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:237 +msgid "**Mode** - allows to choose from two recording regimes:" +msgstr "" + +# 329b8009133a44ab92b567abd745b6b1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:239 +msgid "" +"**Recording all displayed frames** - records exactly at the FPS rate " +"specified by the user." +msgstr "" + +# 148b1c4ea3ec48d2bd4fcc122502a201 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:240 +msgid "" +"**Recording at a given FPS** - records only when the contents of the " +"viewer change (some activity is performed). In the AVI file non-recorded" +" images are substituted with the copies of the latest recorded image, " +"which produces files with lower quality but requires less system " +"resources." +msgstr "" + +# c9075652112c4e3786b1663ee79df24d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:242 +msgid "" +"**FPS** - allows to define the FPS (frames per second) rate for the clip." +" Set greater value for better quality." +msgstr "" + +# 1c961a8b04d2433ea70d977a555499cb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:243 +msgid "" +"**Quality** - allows to set the quality of the clip in the interval " +"between 0 and 100." +msgstr "" + +# 5d6d65b9ec5d4ce3ab4f47e43cf26cd2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:244 +msgid "**Progressive** - allows to record a progressive API file." +msgstr "" + +# 83119d186f7a4f6a9e19b4ca800e87fa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:246 +msgid "" +"**Names of groups** - allows to specify parameters of the titles " +"displayed in the viewer:" +msgstr "" + +# d552c5d2cab24590b98b250fc1fab4ec +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:248 +msgid "**Text color** - allows selecting the text color;" +msgstr "" + +# 2f7fd9ff3b1842f3b83578acf8eb3389 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:249 +msgid "**Transparency** - allows selecting the text transparency." +msgstr "" + +# e37e81d21cea4799a2b6a257117dc222 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:254 +msgid "Plot 2D Viewer Preferences" +msgstr "" + +# 371f8cfddd5e4f82a93f73f369537f79 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:260 +msgid "" +"**Background color** - this submenu allows to select the background " +"color. Click on the colored line to access to the " +":ref:`select_color_and_font_page` dialog box." +msgstr "" + +# 96d75a21b7104b309f0a09cbbd368cee +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:261 +msgid "" +"**Selection color** - this submenu allows to select the color of selected" +" object in the viewer." +msgstr "" + +# a83718e044e04194b5b4364098665d4b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:262 +msgid "**Viewer** - allows specifying the properties of the Plot 2D Viewer." +msgstr "" + +# 69f2719887324886bf3d827da2147d24 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:264 +msgid "" +"**Curve Type** - this allows to set the representation of graphs in your " +"presentations. You can see only **Points**, points connected with " +"**Lines** or points connected with smooth **Splines**." +msgstr "" + +# 5f8b8c9fc6ea47a9ab8cf638c23c2e72 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:265 +msgid "" +"**Marker Size** - this submenu allows you to set the size of markers in " +"your graphs." +msgstr "" + +# 129c0c94991c49689b89d488a67fce71 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:266 +msgid "" +"**Horizontal** and **Vertical axis scale** - this submenus allow you to " +"set the scale for vertical and horizontal axes. It can be either " +"**Linear** or **Logarithmic**. Note that the **Logarithmic** scale can be" +" used only if the minimum value of corresponding component (abscissa or " +"ordinate) of all points displayed in the viewer is greater than zero. If " +"this condition is not met, the scale is switched to **Linear** " +"automatically, even if it is set to **Logarithmic**." +msgstr "" + +# 7b767f32b7b94258984fac4db9c0f542 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:267 +msgid "" +"**Deviation marker color** - this submenu allows to select the color of " +"the deviation marker." +msgstr "" + +# af4be0c82eb149049a8c4573ecb0ac0f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:268 +msgid "" +"**Deviation marker line width** allows to define line width of the " +"deviation marker." +msgstr "" + +# 35480b5cdb6b4ade9284150e236dccaa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:269 +msgid "" +"**Deviation marker tick size** allows to define size of the upper and " +"lower horizontal lines of the deviation marker." +msgstr "" + +# 760cff26bb7f46d8bd97c8674c4e4d14 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:271 +msgid "**Legend** - allows specifying the properties of the legend." +msgstr "" + +# d1d9bf98fe71431fad83c73b84c5977c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:273 +msgid "" +"**Show legend** - this options specifies if it's necessary to show legend" +" by default." +msgstr "" + +# ccb5dd3aba1d4f5db3a4a47119572c1c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:274 +msgid "" +"**Legend Position** - this submenu allows to set the default position of " +"the legend, it can be located to the left, to the right, on top or on " +"bottom of the graph." +msgstr "" + +# 68773c7e19594882b009a4de657ffa98 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:275 +msgid "" +"**Symbol type** you can select the type of legend item symbol from " +"\"Marker on line\" or \"Marker above line\"" +msgstr "" + +# 425fe67711294fc48e4dee06c3a5a79b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:276 +msgid "" +"**Legend font** - this allows to set type and face for the font of Legend" +" item." +msgstr "" + +# 1f4104e03d8146b18f6dede2c54adff0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:277 +msgid "" +"**Legend font color** - this allows to select the color of the font of " +"the legend item." +msgstr "" + +# b9ba0545068e4d3dad2a0bc917f473fd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:278 +msgid "" +"**Highlighted legend font color** - this submenu allows to select the " +"color of the font of the selected legend item." +msgstr "" + +# 325e3a4cf33b4059a82854854146b4db +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:283 +msgid "Python Viewer Preferences" +msgstr "" + +# fba9e050191c437f9759d742c4f9aed9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:289 +msgid "" +"The following settings are default and will be applied only for newly " +"created Python viewers. Customization of already opened viewers can be " +"done using local :ref:`custom_python_preferences` called by clicking on " +"the corresponding icon of :ref:`python_viewer_page`." +msgstr "" + +# 905d601787624dc4a2055b1aa9f47d09 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:291 +msgid "**Font settings** allows setting font variant, size and style." +msgstr "" + +# 1de289804ca2490185f3c50ef27cde52 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:292 +msgid "**Display settings** specifies the script representation in the viewer:" +msgstr "" + +# 56ce71e58de04c9aa3286565338647d8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:294 +msgid "" +"**Enable current line highlight** switches on background coloring of the " +"current line." +msgstr "" + +# ec277ce3752c4501ba58284bc8bf7222 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:295 +msgid "**Enable text wrapping** wraps lines at the view border of the editor." +msgstr "" + +# 003b3091f67347e198d876417e3bfcaa +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:296 +msgid "" +"**Center cursor on scroll** scrolls the script vertically to make the " +"cursor visible at the center of the viewer." +msgstr "" + +# e326648b352a44f7ae7dec8af06b7f16 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:297 +msgid "" +"**Display line numbers area** shows a panel with line numbers of the " +"script at the left border of the editor." +msgstr "" + +# c82b994b70b248f19e083b177717dc41 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:299 +msgid "" +"**Tab settings** allows displaying tab indentation as a certain number of" +" white-spaces." +msgstr "" + +# c69c91f1ba1448e6869acfa5e1c211a1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:300 +msgid "" +"**Vertical edge settings** manages drawing of a vertical line at the " +"specified column of the viewer." +msgstr "" + +# b12b9e82dec04b9295cb81118c2452cd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:303 +msgid "Directories Preferences" +msgstr "" + +# 40d15ac7d9c942f8a482ddfbab12e2e5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:308 +msgid "" +"**Quick Directory List** - this section allows to create and manage a " +"custom quick directory list. To add a directory in the list, press the " +"\"Add directory\" button:" +msgstr "" + +# e725b3c2e57a49fda021a910b0fdb3cf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:313 +msgid "" +"then the **\"...\"** button and browse the data tree for the directory " +"you need. The \"Up\" and \"Down\" buttons(see the picture below) help you" +" to sort the directories in the list:" +msgstr "" + +# fea3a943cefe489790b9628be0dc2a13 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:322 +msgid "" +"To remove the selected directory from the list, press the \"Delete\" " +"button:" +msgstr "" + +# dd60db969e5c45329b9c0294eb2256e4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:329 +msgid "Object Browser Preferences" +msgstr "" + +# a930816a7839449c9ff1c34811765fb6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:334 +msgid "**Search Tool** - specifies behavior of the :ref:`using_find_tool_page`." +msgstr "" + +# 3967790fde4e40d9a61e362c8a081f97 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:336 +msgid "" +"**Enable auto-hiding** checkbox - hides the search tool automatically " +"after short perioud of time when it is not used." +msgstr "" + +# 687c4ce9fe13485bb360ba2dcb85c8f1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:340 +msgid "" +"**Auto size for \"Name\" column** - this checkbox enables automatic " +"resizing for the \"Name\" column." +msgstr "" + +# 42d3dfcadedc4c5099b1514195200dee +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:341 +msgid "" +"**Auto size for other columns** - this checkbox enables automatic " +"resizing for the other columns." +msgstr "" + +# 27e1625dbb8d45b3938cc5e13aabb674 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:342 +msgid "" +"**Resize columns on expand item** - this checkbox enables resizing " +"columns on expanding an object browser item." +msgstr "" + +# 296c630f910946afab11935baff315be +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:343 +msgid "" +"**Browse to the published object** - this combobox allows to enable " +"automatic browsing to the objects just published to the study (using GUI " +"dialogs only). It means that the object browser will be scrolled to the " +"published objects, make them visible if they are collapsed and select the" +" first of them. Three modes are allowed for activating this feature:" +msgstr "" + +# 6c84b50131594b13b9dd718aba90b073 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:345 +msgid "**Never** - automatic browsing is disabled." +msgstr "" + +# d1b2f93d69464f3d8f97e19449607f94 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:346 +msgid "" +"**After Apply & Close only** - browsing is activated when the dialog is " +"accepted by **Apply & Close** or **Ok** buttons (or if the objects are " +"published without using a dialog, for example, by clicking a context menu" +" button) and not activated when the **Apply** button is pressed and " +"therefore the dialog remains visible." +msgstr "" + +# 164ffa430c5d456ebdfa8ca5caa43111 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:347 +msgid "**Always** - automatic browsing is always enabled." +msgstr "" + +# 4bf12cac54d04892ae9b046f39a4d7c3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:349 +msgid "" +"**Default columns** - these checkboxes allow to display or hide " +"**Value**, **Entry**, **IOR** and **Reference entry** columns in the " +"Object Browser." +msgstr "" + +# 8f5b32b2b30e431db7eaa22a72203b2c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:352 +msgid "Shortcuts Preferences" +msgstr "" + +# e081f044dacf408690aa128eca010f21 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:357 +msgid "" +"**Shortcuts settings** widget allows to define custom shortcuts for " +"various operations. To change keyboard sequence for a certain action - " +"select the action and press the custom keys combination." +msgstr "" + +# b92effbcdf6240a1aa0b92349c31f60f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:360 +msgid "" +":ref:`select_color_and_font_page`: \"Font and color preferences\" are " +"most oftenly used types of user settings." +msgstr "" + +# 4592c7a570f5405ba61b720caf16b4b3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:363 +msgid "" +"When you change settings (click **OK** or **Apply** button) each module " +"receives the notification about what preferences are changed. You can " +"also click **Defaults** button to restore default preferences or " +"**Close** button to quit the dialog box without any changes." +msgstr "" + +# 6d9a4a3b874a438caebb458c37023766 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:368 +msgid "" +"**Import** button allows loading specific user file containing " +"preferences from any location at the computer through a standard Import " +"dialog box." +msgstr "" + +# 8400fd1b7e244f378c3bc72230433fe0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:375 +msgid "" +"The preferences files usually have \\*.xml extension. Also, preferences " +"files automatically saved by the application (stored in the " +"~/.config/salome directory) have no extension and by default start with " +".SalomeApprc. followed by SALOME version number. Usually there is a " +"separate preferences file for each SALOME version in use. Preferences are" +" saved to the file in the end of the working session and restored at the " +"application start-up." +msgstr "" + +# 8bf9524d3b064fa6bcdd1132288666cb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:384 +msgid "" +"The preferences you set will be default preferences for all **new** " +"objects, but they are not retroactive and do not automatically apply to " +"the existing objects." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/study_management_chapter.po b/doc/salome/gui/locale/fr/LC_MESSAGES/study_management_chapter.po new file mode 100644 index 000000000..71759a7df --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/study_management_chapter.po @@ -0,0 +1,277 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# e8b419e370784719a04b09169115e194 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:5 +msgid "Study management" +msgstr "" + +# ff27b50ec309457db9c642d72a70a73b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:7 +msgid "" +"Study is a document within the application, where you can carry out all " +"operations provided by the SALOME functionality. This is a certain " +"abstraction layer between actual document data (probably, remote data " +"available through CORBA) and data presentation (in the Object Browser). " +"The study is composed of Data Object instances, combined into a tree-like" +" structure." +msgstr "" + +# 0ea617e2befe42b2882390b15f9aa068 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:14 +msgid "All operations with study are available from the **File** menu." +msgstr "" + +# a82fdd9d2a444a45a0236c9fbc0a43de +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:16 +msgid "" +"SALOME is a single-study application. It means that only one study can be" +" opened at the moment." +msgstr "" + +# a2fbe607915c4cb3a71b64bdc67ede31 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:18 +msgid "" +"Immediately after the application is launched there is (normally) no " +"active study. However, you have access to the embedded Python console, " +"that can be used to initialize a study by means of Python API (see " +"documentation on SALOME KERNEL module for more details)." +msgstr "" + +# b38a0a79d98141fab8b0ca80c66a4e19 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:22 +msgid "The following operations are available from the **File** menu:" +msgstr "" + +# 0d79c41e80594334924befb32e595367 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:27 +msgid "" +"As soon as a study is created or loaded from a file or a data server, " +"additional operations become available from the **File** menu:" +msgstr "" + +# 152f1d0a7ebd409097fb6593af2d8513 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:33 +msgid "" +"**New** - creates a new study. The study will be created with default " +"name **Study1**. If there is an already opened study, you will be asked " +"to close it before creating new one." +msgstr "" + +# d26a0983226c40c0895b8a99cf0a9143 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:37 +msgid "" +"**Open** - allows to open an existing study by browsing for it in a " +"standard Open File dialog box, choosing the required *.hdf file and " +"clicking *Open* button. If there is already opened study, you will be " +"asked to close it before opening new one." +msgstr "" + +# 3ed224d5fa884a4c922393cf892c456f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:43 +msgid "" +"**Reopen** - reloads the current study from the associated \\*.hdf file. " +"This menu command can be used to reverse the study to the latest saved " +"state." +msgstr "" + +# 461f84d8074e46448cf4a0a715c95bac +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:46 +msgid "" +"**Save** - saves the current study. Saving a study you also save its " +"layout, i.e. all positions and sizes of dockable windows. It means that " +"the difference in settings of the same windows (for example Python " +"console) is possible between different modules (the same window can have " +"different size and position when other module is activated). Also each " +"module can indicate which common windows are necessary for working, and " +"only they will be displayed when this module is active." +msgstr "" + +# 44d5ab19400840e1be26e8d0f8b71eb3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:54 +msgid "" +"If the study hasn't been previously saved, **Save** will call the " +"standard Save File dialog box where you can enter the name for your study" +" and save it." +msgstr "" + +# 3a100b8e93e34b29b43e5ffb6d947dd9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:56 +msgid "" +"**Save as** - allows to save the current study with a new name. Input a " +"new name for the study in the standard Search File dialog box and click " +"*Save* button." +msgstr "" + +# f5727ac6d29940359c7e0496e8fa942e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:60 +msgid "" +"**Close** - closes the current study; alternatively closing of the study " +"can be done by clicking on the cross in the upper right corner of the " +"desktop window." +msgstr "" + +# 1e2135da3b984be6bbb84b5c13e51ab5 +# b02293ff7d224cae8512057e75e4d608 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:63 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:77 +msgid "" +"If the study has not been previously saved, you will be prompted by the " +"following dialog box with several options:" +msgstr "" + +# aa6f420e138b44d48f57a36bc29fa6c4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:68 +msgid "**Connect** - allows to open an unloaded or created outside GUI study." +msgstr "" + +# f6d15463a7804518966ea9469cf6a706 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:70 +msgid "Connect is available only if there is an opened study on the data server." +msgstr "" + +# 0e260a1a36074eabafa16966a1a53712 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:72 +msgid "" +"**Disconnect** - unloads the current study from the desktop. The study " +"stays opened in the data server; it can be then reloaded in the same " +"working session (using **Connect** operation), but if you quit SALOME " +"application, all changes in the unloaded study can be lost." +msgstr "" + +# 207789bcd2ba4ff1b19f74c34aeee0de +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:82 +msgid "" +"**Dump study** - allows to Dump a SALOME Study in one or several Python " +"scripts. The following dialog box allows to browse for the location and " +"define the name for a Python file." +msgstr "" + +# cbf3d01b882b4353b26ae3ceb2df18d8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:90 +msgid "" +"**Publish in study** - if checked in, the component objects created by " +"Python commands will be published in the created Study when the script is" +" played, otherwise the objects will not be published in the Study." +msgstr "" + +# c28297a2177442f09a29989653a28595 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:92 +msgid "" +"**Save GUI state** - if checked in, the current application layout will " +"be saved in the Python file." +msgstr "" + +# 6ee970eeab874f6482f5f724e98acd86 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:95 +msgid "To confirm your choice click *Save*." +msgstr "" + +# d72902d062634c0a818022e86edbf056 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:97 +msgid "**Load Script** - allows to load a saved Python Script." +msgstr "" + +# bc5ba2bb04444997b524181d28028017 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:102 +msgid "To confirm your choice click *Open*." +msgstr "" + +# c6f666b62a424137938f141b297643bb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:104 +msgid "**Properties** - allows to show/edit the properties of the current study." +msgstr "" + +# bea99405842a46d68ac63eddc0cde9f8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:109 +msgid "**Author** - allows to change the name of the study author." +msgstr "" + +# b370cbb1b2184bb7b989358bb9cb463a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:110 +msgid "**Creation date** - gives the date and time of Study creation." +msgstr "" + +# 6222734e665a45f5a15c44eda2727cc3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:111 +msgid "" +"**Locked** - allows to lock the study for modifications. In case if " +"**Locked** checkbox is checked your study will be locked for any " +"modifications for all users. Next time you try to edit it, you will see " +"the following warning message:" +msgstr "" + +# 43f6f629b9ec4cf9b02e5d7204f6fcfc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:116 +msgid "" +"**Modified/Not Modified** - allows to see if any modifications have been " +"introduced into study since its last save." +msgstr "" + +# 02aec2d893974cca87b0cd2a0659f5b0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:117 +msgid "**Length units** - allows to change the units of the study." +msgstr "" + +# 375675ee183c4013bc8a9d6f29251c56 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:118 +msgid "**Comment** - allows to add arbitrary comment for the study." +msgstr "" + +# ca5ea9e84598488cb422cf2eafebfa95 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:119 +msgid "" +"**Modifications** - allows to view the list of changes made in the " +"study. Each record contains the date and time of the modification and the" +" name of the user, who has introduced it." +msgstr "" + +# aa9eecb09d8c48c9a41693a84301dd52 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:120 +msgid "" +"**Stored data** - Shows the versions of data currently stored in the " +"study. Note, that this information does not concern the current versions " +"of SALOME modules, it shows the version in which the data has been " +"initially created. If the study is re-saved in the version of SALOME, " +"different from the initial one, the version information is highlighted by" +" the red-colored font, which means that the version information is not " +"actually valid." +msgstr "" + +# 15711f895f8b4204aef358f0cf85b4c3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:122 +msgid "" +"**Preferences** - allows :ref:`setting_preferences_page` applicable to " +"Salome in general and its modules." +msgstr "" + +# 1198a9e91ae043d4b763b706cebc9259 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:124 +msgid "" +"**Most recently used** - contains a list of recently opened studies, " +"giving the possibility to fast load the required study." +msgstr "" + +# 7617140e81a34367af8934a673aab006 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/study_management_chapter.rst:127 +msgid "" +"**Exit** - unlike **Close**, closes not only the current, but all opened " +"Salome studies." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/text_user_interface.po b/doc/salome/gui/locale/fr/LC_MESSAGES/text_user_interface.po new file mode 100644 index 000000000..9e462f39c --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/text_user_interface.po @@ -0,0 +1,44 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 14779d11a44e42e8bf6c2eb7fb603ffb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/text_user_interface.rst:5 +msgid "Using SALOME GUI python interface" +msgstr "" + +# 7f657f1913cf485cbbb0ee8ce04837c2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/text_user_interface.rst:8 +msgid "" +"The extended salome.py Python module provides **sg** variable, which " +"gives access to some GUI functions." +msgstr "" + +# 51d46e1866bd441798a97aae8dc70bb9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/text_user_interface.rst:10 +msgid "" +"**Note**, that this variable is not available if you use salome.py Python" +" module outside of the GUI desktop, i.e. without the embedded Python " +"console (since SWIG library is linked directly to the GUI library)." +msgstr "" + +# 7b87711a4c26409cbe229791dac78f1f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/text_user_interface.rst:14 +msgid "The example of usage:" +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/themes.po b/doc/salome/gui/locale/fr/LC_MESSAGES/themes.po new file mode 100644 index 000000000..ed2183c20 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/themes.po @@ -0,0 +1,100 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# e0c99cf8f8574011997d8b162fb35341 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:5 +msgid "Theme" +msgstr "" + +# 0b56865b8a3d43d0b4741436753ce68f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:7 +msgid "" +"The look and feel of the SALOME desktop can be customized by the user via" +" SALOME style preferences." +msgstr "" + +# 479b374ec27e4632a9f0cd3ae168885c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:10 +msgid "" +"**SALOME style prefereces** dialog box is used for customization of the " +"look and feel of SALOME style. To open it, select in the Main menu **View" +" -> Theme** item." +msgstr "" + +# ac92f1bcc6e34afcac71d5c85e11cd40 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:17 +msgid "" +"It is possible to choose a predefined scheme in the list to the left or " +"to create a custom scheme using the controls to the right." +msgstr "" + +# fab657eaace04188a60d888adb9ef502 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:20 +msgid "The dialog box contains two pages." +msgstr "" + +# 1021be42657d4256af0b2b068cad6c11 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:22 +msgid "" +"The first page allows specifying the color palette. - **Quick** button " +"allows automatic color palette definition basing on the main color " +"specified by the user." +msgstr "" + +# ff71dbaebe814b2b966175b4604cb55b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:29 +msgid "The second page allows specifying different properties of the theme:" +msgstr "" + +# 82660cf256ad42a68f832c7c8852aca2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:31 +msgid "**Font** group allows to edit the font used in menus, dialog boxes, etc." +msgstr "" + +# c354e73f1fa240f6851b7569a46e379a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:32 +msgid "**Lines** group allows to apply dashing to Salome elements." +msgstr "" + +# 00a68948431d46d9b6cd81efde6f1644 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:33 +msgid "" +"**Widgets rounding** allows to round corners of Salome dialog boxes and " +"define their parameters." +msgstr "" + +# 03cb624bdbb64401827c698350e1042f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:34 +msgid "**Handle** allows to define parameters of the handle." +msgstr "" + +# a08f1bccf0bf4ce395c3592dd011e27b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:35 +msgid "**Widget effect** allows to apply special effects to Salome dialog boxes." +msgstr "" + +# 3590008e8bf94add9770ea0348424fa0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/themes.rst:37 +msgid "" +"If SALOME Theme is not used (**Use SALOME Style** checkbox is switched " +"off), the global system settings are applied (for example, KDE settings)." +" So, the look and feel of the application (for example, palette and/or " +"font) can be customized by using the Qt utility *qtconfig*." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/use_case_builder.po b/doc/salome/gui/locale/fr/LC_MESSAGES/use_case_builder.po new file mode 100644 index 000000000..d806c6acb --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/use_case_builder.po @@ -0,0 +1,158 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 1c9b0f33340d4a8aa86b13de5fcc773a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:5 +msgid "" +"Customize data tree representation in the Object browser by means of use " +"case builder" +msgstr "" + +# 387eafa373f3470f850a25f2360af6d6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:0 +msgid "Table of Contents" +msgstr "" + +# be2ab450af3d46f980daef4f4a17151a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:9 +msgid "" +"In SALOME, the representation of the data tree in the Object browser for " +"the *full* (CORBA-based) module is done basing on the study contents as " +"it is supplied by SALOME data server (SALOMEDS). In contrast to the " +"*light* module which data tree is completely defined and can be easily " +"attuned by the module specific implementation, *full* module must publish" +" its data in the CORBA study by means of the corresponding API of SALOME " +"data server, namely **SALOMEDS::StudyBuilder**." +msgstr "" + +# f160e822421d45a88250706c150521b6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:16 +msgid "" +"As soon as data entities are published in the study, they are shown in " +"the Object browser, in the same order as they appear in the study tree. " +"Re-arrangement of the data entities with such approach is not a trivial " +"task: for example, when copying/moving any data entity at the new " +"position within the tree, it is necessary to copy all its attributes as " +"well and to clear (in case of move operation) the data entity at the " +"original position. Also, it is not possible to make some data items in " +"the tree \"invisible\" for the user (though it might be useful)." +msgstr "" + +# 0b7753bf1fe94c04bc2bc4590b365083 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:24 +msgid "" +"Use case builder provides an alternative and more flexible way for " +"customizing the data tree representation. It implements another approach " +"to the data tree hierarchy, based on the tree node attributes. With use " +"case builder it is possible to arrange and easily re-arrange the data " +"items in the data tree in any appropriate way." +msgstr "" + +# ba0a7c8d383945bc9a27083409be5d59 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:29 +msgid "" +"For example, with use case builder it is easy to implement such " +"operations as :ref:`drag_and_drop` and Copy/Cut/Paste. With use case " +"builder approach it is not important how data entities are arranged in " +"the study tree, they even may lie on the same level - use case builder " +"allows providing custom data tree representation, completely indepedent " +"on the study data tree itself. It is even possible to hide some data " +"entities in the tree representation while still keeping them in the study" +" (to store specific module data)." +msgstr "" + +# 648fa68d44e24a8ea419114da4fafa4e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:37 +msgid "" +"Object browser automatically checks it the module root data object " +"contains a tree node attribute and switches to the browsing of the data " +"tree for such module using the use case builder. Otherwise, it browses " +"data using an ordinary study tree iterator. Thus, it is possible to have " +"in the same study some modules based on use case builder approach and " +"others not using it." +msgstr "" + +# cafa736d3f2e4994a8e2aaba20adc014 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:47 +msgid "Use case builder" +msgstr "" + +# 8b847b497fd149aeb2c8b99d0c2fc142 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:49 +msgid "" +"To obtain a reference to the use case builder, the function " +"**GetUseCaseBuilder()** of the **SALOMEDS::Study** interface can be used:" +msgstr "" + +# 6963f9b61fa54a3b99e813f3d79df7f3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:60 +msgid "" +"**SALOMEDS::UseCaseBuilder** interface of the **SALOMEDS CORBA** module " +"provides several methods that can be used to build a custom data tree. " +"Its API is similar to the API of **SALOMEDS::StudyBuilder** interface - " +"it operates with terms *\"father object\"* and *\"child object\"*. In " +"addition, use case builder uses term *\"current object\"* that is used as" +" a parent of the children objects added if the parent is not explicitly " +"specified." +msgstr "" + +# 0ec81aecb8d645b5b84969e2782ba30f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:107 +msgid "Browsing use case data tree" +msgstr "" + +# 7dc27b0f0b1e4976bd0753a829a874c9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:109 +msgid "" +"Browsing the use case tree can be done by means of the use case iterator," +" that is provided by the **SALOMEDS::UseCaseIterator** interface of the " +"**SALOMEDS CORBA** module. Access to the use case iterator can be done " +"via **SALOMEDS::UseCaseBuilder** interface:" +msgstr "" + +# a69dc38a978145d18c72b133a7a75ab5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:124 +msgid "" +"The API of the **SALOMEDS::UseCaseIterator** interface is similar to the " +"**SALOMEDS::ChildIterator**:" +msgstr "" + +# 9b465eb573d54949b895d6a556ce9062 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:143 +msgid "Typical usage of the **UseCaseIterator** is as follows:" +msgstr "" + +# b63e224d85514b1ca72c2d4628f7b3c9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:167 +msgid "Remark about compatibility with existing studies" +msgstr "" + +# 3b7a7820691942da989ad96dedc90a8c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/use_case_builder.rst:169 +msgid "" +"If you decide to switch your module to the use case builder approach to " +"provide customization for the data tree representation, you must take " +"care of compatibility with existing SALOME studies. Basically it means " +"that you have to add a simple code to **Load()** (and **LoadASCII()** if" +" necessary) method of your module, which adds tree node attributes to all" +" data entities in the data tree of your module. The simplest way to do " +"this is to iterate through all data items and recursively add them to the" +" use case builder:" +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/using_catalog_generator.po b/doc/salome/gui/locale/fr/LC_MESSAGES/using_catalog_generator.po new file mode 100644 index 000000000..07178d5e8 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/using_catalog_generator.po @@ -0,0 +1,147 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# ca413d61997041c48748754d9dbc4999 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:5 +msgid "Using Catalog Generator" +msgstr "" + +# f72fd1f7fa76431ca63b0d6b6e50e072 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:7 +msgid "" +"SALOME platform is an open platform for integration of your custom " +"components, which can used in the same way as typical modules provided in" +" the standard installed package. The **Catalog Generator** tool serves " +"for implementation of the interface of your custom component. It allows " +"to generate from IDL description of your component interface its xml " +"description. The component xml description allows SALOME application to " +"know about the component and its services and provides the possibility to" +" call the component services, for example, inside Supervisor module." +msgstr "" + +# 6a3b5cdc4acc4adcadcf69c66b301996 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:17 +msgid "" +"If you have a look at runSalome, runSalomeWithPort scripts running SALOME" +" application, which are stored in build/bin directory you will see that " +"SALOME_ModuleCatalog_Server is started with two xml files as its input " +"parameters: **CatalogModuleGeneral.xml** and " +"**CatalogModulePersonnel.xml**. These two files store the descriptions of" +" interfaces and services of all components, provided with typical SALOME " +"package. To add a new component into SALOME platform you should either " +"update one of these existing xml files with generated xml description of " +"your component or create a new one." +msgstr "" + +# cf27325c458642ff9b6e02f86073a0dd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:28 +msgid "*To open the Catalog Generator:*" +msgstr "" + +# cfd82896bc744c2ea9deb7c9bd1b1472 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:30 +msgid "" +"From the main menu choose **Tools > Catalog Generator**, the following " +"dialog box will appear:" +msgstr "" + +# c39d278080f640db98913577cc760828 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:36 +msgid "In this dialog box you can specify:" +msgstr "" + +# 1ad43600b0754365a776f048ce50bcb3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:38 +msgid "" +"Name and location of the IDL file describing the interface of your " +"component (Click the **Browse** button to find it using the data tree)." +msgstr "" + +# 5cb26b517b3d4b7db2d36a0a733577d1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:39 +msgid "" +"Name and location of an existing XML file, which will be updated with the" +" interface of you component or name and desired location of a new XML " +"file, which will be generated (Click the **Browse** button to find it " +"using the data tree)." +msgstr "" + +# a1205640dd024faca5e0443621dd9c75 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:40 +msgid "Name of the author." +msgstr "" + +# bd6a2b4417884b3480de0519b36019db +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:41 +msgid "Name of the component." +msgstr "" + +# fa59aa40e5b640ebbd691011e35da2f1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:42 +msgid "Name of the user." +msgstr "" + +# c64f5a8333834dd5943fd35adae95bcb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:43 +msgid "Version." +msgstr "" + +# 44ed1a6885ba4f20a1eb5c0b19b7a02f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:44 +msgid "Capability of multi study support." +msgstr "" + +# ace23e61c47b495289c6b343c7f9a32a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:45 +msgid "Type of the component." +msgstr "" + +# 85f6edd727824fb39c3e4a0ce5891c46 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:46 +msgid "" +"Icon of your component (Click the **Browse** button to find it using the " +"data tree)." +msgstr "" + +# ade8197d740c4396b53cd5e557c91040 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:50 +msgid "" +"If you have chosen to create a new xml file containing the description of" +" your component, don't forget to specify it as input parameter for " +"SALOME_ModuleCatalog_Server in the file, you are using as a running " +"script of SALOME platform (in runSalomeWithPort, for example)." +msgstr "" + +# d6dbc919e0a54457bf682d81fb7dcae1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:52 +msgid "" +"When launching SALOME next time you will see your module alongside other " +"components." +msgstr "" + +# 18fd1b5b5c43492c97ee5476e6b292a4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_catalog_generator.rst:54 +msgid "" +"**Tip:** You can use the **Catalog Generator** tool, if you would like to" +" **test** the functionality of your new component. After implementation " +"of your component interface, launch SUPERVISION module where you can try " +"using the services of your new component. (see also: Adding factory " +"nodes)" +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/using_find_tool.po b/doc/salome/gui/locale/fr/LC_MESSAGES/using_find_tool.po new file mode 100644 index 000000000..99179c479 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/using_find_tool.po @@ -0,0 +1,214 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 0029fe08bab14034a739c8049ad14aab +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:5 +msgid "Using Find Tool" +msgstr "" + +# 1aab2477494346c7a02dfef39d8ac50c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:7 +msgid "" +"The **Object Browser** is supplied with the **Find** toolbox. This tool " +"allows performing context search of the items in the Object Browser:" +msgstr "" + +# a0b41dc1ab0d459ca6ab637d62d9a56f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:13 +msgid "The **Find** toolbox can be invoked in several ways:" +msgstr "" + +# 1bc6d1987170474196ca2dc976160c6a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:15 +msgid "" +"Pressing :kbd:`Ctrl-F` key combination starts a new search; the text " +"previously input by the user in the edit control of the **Find** toolbox " +"is automatically selected." +msgstr "" + +# b74d123bf7894b9d9b7602b7a90c9b3a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:16 +msgid "" +"Pressing :kbd:`/` (slash) key starts a new search; the text previously " +"input by the user is cleared." +msgstr "" + +# 1716e492f1f647669a3a3ba1b4ff2028 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:17 +msgid "" +"Pressing :kbd:`F3` key repeats the previous search in the forward " +"direction (from top to bottom)." +msgstr "" + +# 6c23557f3e6e4327be09685ac1c39a83 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:18 +msgid "" +"Pressing :kbd:`Shift-F3` key repeats the previous search in the backward " +"direction (from bottom to top)." +msgstr "" + +# e0caf6b8fbb9493ab470b533d3b91568 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:19 +msgid "" +"Activating *Find* command from the Object Browser context popup menu " +"starts a new search (the same as :kbd:`Ctrl-F`)." +msgstr "" + +# ccf51e06778d42a4b680ad48c5efdfbf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:21 +msgid "Pressing :kbd:`Escape` key closes the **Find** toolbox." +msgstr "" + +# 47a44df59cf243efb37163853d6a7fe5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:23 +msgid "" +"The search is always started from the first selected item in the Object " +"Browser. If there are no selected items, the search is started from the " +"top of the Object Browser contents. If there is an item which satisfies " +"the search conditions, it is selected and the Object Browser is expanded " +"to show this item (if it is collapsed)." +msgstr "" + +# f16f689bd01f4a9cafdc03aafa712dc9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:29 +msgid "" +"The **Find** toolbox provides a set of widgets which are used to perform " +"the search operations or change the search conditions:" +msgstr "" + +# c6a5610f23a94e5bacf781a59e33b957 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:32 +msgid "*\"Close\"* button closes the **Find** toolbox." +msgstr "" + +# 1ac116c5575a46abbd080ffcd4e027d2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:33 +msgid "" +"Line edit box is used to input the searched text. Note that the search is" +" always done by the object name, i.e. by the data displayed in the " +"\"Name\" column of the Object Browser." +msgstr "" + +# 4ea63098f6574d2494110e17c59517b4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:34 +msgid "" +"*\"Find first item\"* button searches the very first item which satisfies" +" the search conditions." +msgstr "" + +# 524e3714f2b0472db0390086f9c6b497 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:35 +msgid "" +"*\"Find previous item\"* button searches the previous item which " +"satisfies the search conditions." +msgstr "" + +# 0222d93590824f1389f07b6e9eb41d87 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:36 +msgid "" +"*\"Find next item\"* button searches the next item which satisfies the " +"search conditions." +msgstr "" + +# 78c773b09b734426be5105c38af14c8b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:37 +msgid "" +"*\"Find last item\"* button searches the very last item which satisfies " +"the search conditions." +msgstr "" + +# d86db0e5b8b34c2084a326a503a88f66 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:38 +msgid "*\"Case sensitive\"* check box allows performing case sensitive search." +msgstr "" + +# 22ea11330d04428aa847d6890fdc8673 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:39 +msgid "" +"*\"Regular Expression\"* check box allows performing the search of the " +"items by the regular expression, for example:" +msgstr "" + +# de4f1ca0042f462cadb39fae439c53fd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:41 +msgid "*Face* - matches all faces" +msgstr "" + +# 4f7b2b89458e4220a1c97ddd2c75529c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:42 +msgid "*Face_[\\\\d]* - matches Face_1, Face_2, etc.. (all faces)" +msgstr "" + +# cfdfb96a4c9c46c1b8adb0f4ca376e83 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:43 +msgid "" +"*Face_[\\\\d]$* - matches Face_1, Face_2, but does not match Face_11, " +"Face_12." +msgstr "" + +# 61225225186349be93a67b9728a489ab +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:44 +msgid "*^Face_[\\\\d]$* - the same as above" +msgstr "" + +# e124424f410744afb64066894e6646ba +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:45 +msgid "*^ Face_[\\\\d]$* - matches nothing" +msgstr "" + +# f115b8e0e5d04af1803c111e3d9c8e0a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:47 +msgid "" +"*\"Wrap search\"* check box: if checked and the search reaches the last " +"item, satisfying the search conditions, pressing *\"Find Next\"* button " +"moves the selection to the very first item which matches the search " +"conditions (i.e. a cyclic search is performed)." +msgstr "" + +# e37dd0fa0cca4f38bb90a88564c37803 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:49 +msgid "" +"If there are no items satisfying the search conditions in the Object " +"Browser, the edit control of the **Find** toolbox becomes red-colored:" +msgstr "" + +# 3c42a9bbb34147b6976934705b6c1130 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:54 +msgid "" +"The **Find** toolbox also has an auto-hiding feature. This works as " +"follows:" +msgstr "" + +# 74ce5017dd7f423da9b552493fef023f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:56 +msgid "" +"If the input focus is inside the **Find** toolbox, auto-hiding is " +"automatically deactivated." +msgstr "" + +# 4b572194b68a4d539b963b498658035a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_find_tool.rst:57 +msgid "" +"If the input focus moves outside the **Find** toolbox, it hides " +"automatically in 10 seconds after the last search operation (which can be" +" done by clicking * \"Find Next\"*, *\"Find Previous\"* button, or typing" +" something in the edit field); each new search operation restarts the " +"auto-hide timer." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/using_input_widgets.po b/doc/salome/gui/locale/fr/LC_MESSAGES/using_input_widgets.po new file mode 100644 index 000000000..0c78fb95f --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/using_input_widgets.po @@ -0,0 +1,151 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 4c2c8f38a513439d9ba5b24679725af5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:5 +msgid "Using input widgets" +msgstr "" + +# d60e24f551624fda9e900f3c804b9584 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:7 +msgid "" +"This section contains some hints that might be useful when working with " +"SALOME GUI input widgets." +msgstr "" + +# dbd5e9989a5a4edb84d8d08167251523 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:11 +msgid "Spin boxes" +msgstr "" + +# b0e319ba17924dd782a498102c74b572 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:13 +msgid "" +"This type of widgets is used for numeric (integer or floating-point) data" +" input. Spin boxes are used in standard **SALOME** modules if the input " +"value has a clearly defined input range (and precision in case of a " +"floating-point value)." +msgstr "" + +# 57b307c7cf7349a9a7df974903abf9cd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:18 +msgid "" +"Input precision has a specific semantics in **SALOME** floating-point " +"spin boxes:" +msgstr "" + +# a84c98f63a9b40fcbaca5a418c614115 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:21 +msgid "" +"Positive precision value means that a number in the fixed-point format " +"(corresponding to the \"f\" format specifier for C printf function) is " +"expected. Positive precision value is the maximum allowed number of " +"digits after the decimal separator." +msgstr "" + +# 9d8cebacdf8a4a87978a8837f238742a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:22 +msgid "" +"Negative precision value means that a number either in the fixed-point or" +" the scientific (exponetial) format is expected. This is similar to the " +"behavior of the \"g\" format specifier for C printf function. Negative " +"precision value is the maximum allowed number of significant digits in " +"mantissa (note that one digit is always before the decimal separator)." +msgstr "" + +# a036c66b36f2485a98e8688e2ea23018 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:24 +msgid "" +"To make the user aware of an input value constraints applied by some " +"**SALOME** operations, the following basic capabilties are provided by " +"spin boxes:" +msgstr "" + +# ce86daca78834249ac292b267e9a1f4c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:27 +msgid "" +"The text input manually in a spin box by the user is checked to be a " +"number of valid type (integer or floating-point)." +msgstr "" + +# e79825a4b67e42b7b33da70831f0b1de +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:28 +msgid "" +"The text is converted to a number and checked to be within the valid " +"range." +msgstr "" + +# 0f90ba6be8054d45a4fdd97e7963501c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:29 +msgid "" +"Additionally, for floating-point data the input text is checked against " +"the precision rules described above." +msgstr "" + +# d91dcec54e78452092df82bb9badbc18 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:31 +msgid "" +"If the input text in a spin box does not meet the constraints, the user " +"is shown a message in a tooltip near the spin box just as he types in it." +" The tooltip contains information about the valid data range. For a " +"floating-point input, the tooltip also contains information about the " +"expected precision." +msgstr "" + +# dbf514f6b6fa43a9a9b7b93971f3fe68 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:37 +msgid "" +"In standard **SALOME** modules the precision value can be adjusted " +"through :ref:`setting_preferences_page` of the correspodning modules, " +"and the tooltip contains a reference to the corresponding parameter in " +"the preferences." +msgstr "" + +# a03a793f703f459ea3bb9fc3899f2ed3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:41 +msgid "" +"On-line documentation for each standard SALOME module contains the list " +"of user preferences that can be used for tuning floating-point precision " +"for different types of input quantities." +msgstr "" + +# bb281ad16915462da96ef5c32af96f9c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:46 +msgid "Spin boxes and SALOME Notebook" +msgstr "" + +# f8dc175032e74afe976c056bbeba657d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:48 +msgid "" +"Apart from the numeric input, spin boxes in some **SALOME** modules " +"accept the names of **Notebook** variables (see :ref:`using_notebook` " +"page for more details about **Notebook**)." +msgstr "" + +# 6cef1d0b55aa4b93946c8b1dd0a8dcfc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_input_widgets.rst:52 +msgid "" +"If a spin box accepts variable names, then it is additionally checked " +"whether the manually input text represents a variable name. Variable " +"names should comply with the common naming rules for **Python** " +"variables. If the input is neither a valid number nor a variable name, " +"the tooltip informs the user that variable names are also acceptable in " +"this spin box." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/using_notebook.po b/doc/salome/gui/locale/fr/LC_MESSAGES/using_notebook.po new file mode 100644 index 000000000..7855087a2 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/using_notebook.po @@ -0,0 +1,79 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 755a77ad0e4e4e7eadf6e0b351cd1311 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_notebook.rst:5 +msgid "Using NoteBook" +msgstr "" + +# 4b7a0c6eefdc4089a3b0e99c5469cfe6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_notebook.rst:7 +msgid "" +"SALOME **NoteBook** allows to predefine numerical and boolean parameters " +"(variables)." +msgstr "" + +# 2b223087edff44eea28c8798a67d63fc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_notebook.rst:10 +msgid "" +"By default, the **NoteBook** is located in a tabbed widget to the left " +"(shared with the Object Browser)." +msgstr "" + +# be71d47f5b114b7899fd3d1b128cd0e5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_notebook.rst:15 +msgid "To hide/show this tab choose **View > Windows > Notebook**." +msgstr "" + +# b54fbe3eb7a2452a8abab84960d155b9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_notebook.rst:17 +msgid "" +"Here you can add new variables, remove and rename existing variables and " +"change their values." +msgstr "" + +# 5a22dd3987914ee8af5862390e34cf1f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_notebook.rst:20 +msgid "" +"If you have modified some variables, which are already used in the " +"current study, you should click **Update Study** button to apply your " +"changes to the study." +msgstr "" + +# 4905f4081d6d469089ad359de3d097f3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_notebook.rst:25 +msgid "" +"The study can not be updated until at least one of the variables in the " +"table has an invalid name or value (marked by red color). The names of " +"variables should be unique and their values should be numerical (integer " +"or double) or boolean (\"True\" / \"False\")." +msgstr "" + +# 1e1ae8f8742642559b21c6f381323533 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_notebook.rst:27 +msgid "Here is an example of setting variables in python scripts:" +msgstr "" + +# 1c5936316c6745b7aa9e52c4dece7b08 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_notebook.rst:40 +msgid "" +"Later these values can be used as parameters for any operations in " +"various components." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/using_object_browser.po b/doc/salome/gui/locale/fr/LC_MESSAGES/using_object_browser.po new file mode 100644 index 000000000..2706b8723 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/using_object_browser.po @@ -0,0 +1,139 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 02b3795ebe1d40f180c036d5d13c0f29 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:5 +msgid "Using Object Browser" +msgstr "" + +# d75392795fc84bb7a7e6fdca606c1e85 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:7 +msgid "" +"The **Object Browser** in SALOME is destined for displaying the structure" +" of the current study in a tree-like form. It contains:" +msgstr "" + +# e156a14fa62743c395c22893d802f0b0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:10 +msgid "components, loaded during the current session" +msgstr "" + +# 646b4009cda6499f8a52317d6374eda7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:11 +msgid "" +"objects created with the help of different components (The objects " +"created with the help of a definite component are located in the folder " +"having the name of this component)" +msgstr "" + +# 82c1565fc45148ae83fdee41f8fbe91f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:12 +msgid "references to different objects (they are highlighted in red)" +msgstr "" + +# b997408b927246d2ae052effab26e0a8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:18 +msgid "" +"The **Object Browser** is destined to getting quick access to different " +"objects created during SALOME session. All pop-up menus associated with " +"the objects displayed in the Object Browser are context-sensitive. So it " +"depends on a definite currently loaded SALOME component what options you " +"will see in the pop-up menu, if you right-click on a definite object in " +"the Object Browser." +msgstr "" + +# 7f0f39cf83c74ff282b3d1e79b2ff4b1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:20 +msgid "" +"The Object Browser may contain supplementary attributes of the objects " +"displayed in additional columns. By default, these columns are not " +"displayed - displaying/hiding these columns is possible through " +":ref:`setting_preferences_page` or right-clicking on the attributes bar " +"and toggling the necessary attributes." +msgstr "" + +# 38c13237bbd44b168d0ab345d606c7a7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:29 +msgid "**Name**;" +msgstr "" + +# 5b94cc5a14c847bfbb731972999b4a63 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:30 +msgid "" +"**Entry** - Identification index of the object in the structure of the " +"study;" +msgstr "" + +# f76fbe23174c4e18bf789177611c5060 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:31 +msgid "**IOR** - Interoperable Object Reference;" +msgstr "" + +# cb7d7851195941dab0caf35244579acd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:32 +msgid "" +"**Reference entry** - Identification index of the references to the " +"objects;" +msgstr "" + +# c0f0ede9930b48d39d4bf6d4dbe6774a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:33 +msgid "**Value** - Displays the value of the first object attribute." +msgstr "" + +# 3043d3dc914840cbbbc3af574aa0dfde +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:35 +msgid "" +"**Entry, IOR and Reference entry** attributes are displayed for debugging" +" purposes only." +msgstr "" + +# 792e0054b3bf4c9fbad9e3657e4ae056 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:38 +msgid "Sorting" +msgstr "" + +# 2a12f95626284eb0b6f94c145e1c9265 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:40 +msgid "" +"By default the objects in the object browser are sorted in the creation " +"order." +msgstr "" + +# 21ebe6c02ba4470eba31ebe7868f546c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:42 +msgid "" +"However, it is possible to enable sorting in the alphabetical order (or " +"the reverse alphabetical order) by right clicking in the header of the " +"tree (near the **Name** field) and checking \"enable sorting\" in the " +"context menu." +msgstr "" + +# f226f911c37f4e728f656da44c96de4f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:44 +msgid "It is possible to use the arrow near \"Name\" to reverse the order." +msgstr "" + +# c8c7301d736a42d3a1a3e3366b5383d2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_object_browser.rst:46 +msgid "" +"If \"enable sorting\" is unchecked, the objects are sorted in the default" +" order again." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/using_pluginsmanager.po b/doc/salome/gui/locale/fr/LC_MESSAGES/using_pluginsmanager.po new file mode 100644 index 000000000..7f7ce5234 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/using_pluginsmanager.po @@ -0,0 +1,330 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# fac521da706d4ebb9d6f86e06d860776 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:7 +msgid "Extend SALOME gui functions using python plugins" +msgstr "" + +# 6bedc75f15914ac78daf8d3b20834cda +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:9 +msgid ":ref:`S1_SALOMEPLUGINS`" +msgstr "" + +# 31ec006356a64dc6a113775f4ef7e5cf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:10 +msgid ":ref:`S2_SALOMEPLUGINS`" +msgstr "" + +# 8f3cd214d2434d2d852eed5056139b3c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:11 +msgid ":ref:`S3_SALOMEPLUGINS`" +msgstr "" + +# 29123f4f61fa4c5aa2e0d9616df2326c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:12 +msgid ":ref:`S4_SALOMEPLUGINS`" +msgstr "" + +# 45b824aecfa946da9d283d1a3e66f0ba +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:13 +msgid ":ref:`S5_SALOMEPLUGINS`" +msgstr "" + +# b9426ec23eb64c7eaf689185424e8578 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:18 +msgid "Objectives" +msgstr "" + +# d0ea0c8031684393966faa00b62d1229 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:20 +msgid "" +"The SALOME python plugin manager allows the end user to extend the " +"graphic interface of SALOME with custom functions written as python " +"modules. The screenshots below show the example of a tool that creates a " +"mesh from a set of geometrical parameters with the support of simple " +"graphical interface:" +msgstr "" + +# b7c4d33464114470be65435be3379556 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:26 +msgid "The default menu for plugins is \"Tool->Extensions\":" +msgstr "" + +# a1d7cfbc27334752b1ae0e6c0df97af3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:31 +msgid "" +"In this example, the plugin provides a small interface to input the " +"parameters (not provided by the plugin manager):" +msgstr "" + +# 2bef5c0de8de46e5a7fb7e3ffa302216 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:37 +msgid "Then creates the mesh model:" +msgstr "" + +# 8a6e226ea68a498d811f4a2eb0ec2069 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:42 +msgid "In this example, the end user has to write:" +msgstr "" + +# 448a48535b234a1bb4ddbf2642d80330 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:44 +msgid "" +"the python script that creates the mesh from the parameters, using the " +"GEOM and SMESH python interface, as in a classic use case," +msgstr "" + +# 358ec05bec7e471499d8bb820c9db398 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:45 +msgid "the dialog box in PyQt to input the parameters," +msgstr "" + +# 8868d589a2644d528f45e0dd372390ae +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:46 +msgid "the file salome_plugins.py that declares the plugins." +msgstr "" + +# 94f97b4bf9a449fda1b6073f0f074ebd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:48 +msgid "This page explains only the last point." +msgstr "" + +# 8b28f1e86ee34aa694ca06ba10418c01 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:53 +msgid "Principles" +msgstr "" + +# 85e23efe12994b58a2d4e02f43a9c1cd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:55 +msgid "The general form of the file salome_plugins.py is:" +msgstr "" + +# 903c22f87b0f473e8b0a998b81e3a503 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:78 +msgid "" +"The procedure is to define a function that implements the plugin, and to " +"declare this function to the plugins manager. The implementation can be " +"very variable. It is advisable to consider this function as a proxy to " +"your code that you can manage in a python package installed in the " +"standard SALOME python directories." +msgstr "" + +# 46702664320040e29ff11d8ffebbaeb9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:84 +msgid "" +"In this code, the variable \"context\" is automatically transmitted by " +"the pluginmanager when you request the plugin. This context provides you " +"with at least the following attributes:" +msgstr "" + +# cb906cc66148475ea939d85fb1d2941a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:94 +msgid "" +"Once written, this script salome_plugin.py has to be moved to a specific " +"place on your filesystem where SALOME is programmed to search for " +"plugins. The possible directories are (in search order):" +msgstr "" + +# 311b4fba4836457a8186c3226c874d87 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:98 +msgid "" +"The directory <\\*_ROOT_DIR>/share/salome/plugins/, when " +"this plugin is developped in the framework of a SALOME module " +"(<\\*_ROOT_DIR> is the root installation directory of the module, and " +" is the name of the module in low letters)." +msgstr "" + +# d09ccefa4f01400ba7f1c33f0c2025d6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:99 +msgid "The directory ~/.config/salome/Plugins for personnal end user plugins." +msgstr "" + +# 275f37e4ed81451aa8746d3e6730ec89 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:100 +msgid "" +"Any path in the shell variable SALOME_PLUGINS_PATH (each path must be " +"separated by a comma \":\" for unix and \";\" for windows). This variable" +" should be set and exported before running the SALOME application." +msgstr "" + +# 9415324d8c644fc3b2c1e13e97c526ed +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:105 +msgid "A complete example" +msgstr "" + +# 227244433b9447b99930f0c45faf1d3a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:107 +msgid "" +"Suppose that you write a SALOME script that creates a trihedron for each " +"of your studies (a simple and standard SALOME script, that every end user" +" is capable to write if he reads the documentation and follows the " +"training course):" +msgstr "" + +# 9801da957d8548cc92d225cacd647d9b +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:133 +msgid "The job consists in creating the file salome_plugins.py as follows:" +msgstr "" + +# b20c95556cd34b73884767d7d7ab9949 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:163 +msgid "" +"Move this script in the directory ~/.config/salome/Plugins, run SALOME " +"and enjoy your new function." +msgstr "" + +# 5bbb2f7c6dd34fef84b3f5be514e4161 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:168 +msgid "How to select an object of the object browser" +msgstr "" + +# 31a077eed83d4b9ebc8576e94aa2a3de +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:170 +msgid "" +"Sometimes it can be useful to retrieve an object of the object browser to" +" perform an action on it, for example, to select a mesh and display some " +"information related to it." +msgstr "" + +# bb78ad76697d4e9aa77791f28b3581bb +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:173 +msgid "Some important methods and objects to use are as follows:" +msgstr "" + +# df343d6c2f054b7aae25905a24a48ad6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:175 +msgid "" +"context.sg.getObjectBrowser(): to connect the signal event " +"`selectionChanged()` to a custom slot" +msgstr "" + +# 6bd95666e09242968766e619f82671bd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:176 +msgid "" +"context.salome.sg.getAllSelected(): to get the list of selected object in" +" the object browser" +msgstr "" + +# 4107479424604782afe3763a57e74cda +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:177 +msgid "" +"objId = context.salome.sg.getSelected(0): to get the first selected " +"object in the object browser" +msgstr "" + +# 941477c6f92e432ab3615243eda78e28 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:178 +msgid "" +"salomeObj = context.salome.study.FindObjectID(objId).GetObject(): to " +"retrieve the salome object from selection. It can be a GEOM, SMESH, or " +"any other module object." +msgstr "" + +# 0fc2ff4710624da0b67fa094afe6c4f0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:180 +msgid "" +"If it is a mesh, then it is possible to call methods of the " +"SMESH::SMESH_Mesh interface on the object, for example GetShapeToMesh(). " +"If it is not a mesh, this call will raise an exception. So it is possible" +" to write the code retrieving the shape a mesh is built on in the " +"following way:" +msgstr "" + +# 9efdb1c1d2fd430d9c22028cf04c594a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:194 +msgid "" +"An example of those methods is available with the demo examples. See the " +"next chapter :ref:`S5_SALOMEPLUGINS`." +msgstr "" + +# 43d1764cfa014448af15e2670a728097 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:200 +msgid "Other examples" +msgstr "" + +# 961e1f6f48cb444b8c00461428403355 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:202 +msgid "" +"The GUI module provides you with some basic demo examples located in the " +"directory src/SalomeApp/pluginsdemo of the source space and installed in " +"the directory $GUI_ROOT_DIR/share/salome/plugins/gui/demo." +msgstr "" + +# fdff83713d974345aa6dede472940f72 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:206 +msgid "" +"These examples are automatically installed when you install the GUI but " +"are not activated. To activate the plugins, edit the file " +"$GUI_ROOT_DIR/share/salome/plugins/gui/demo/salome_plugins.py and turn " +"the variable DEMO_IS_ACTIVATED to True." +msgstr "" + +# 5fdf88deea164af2b094fb7f845ea94e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:208 +msgid "The demo examples are:" +msgstr "" + +# f869117eeca44e0eac45eeee21e781de +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:210 +msgid "**trihedron:** create a trihedron and display it with fit on the size" +msgstr "" + +# ddc5d778d7164af28339ba0ee400a56e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:211 +msgid "" +"**tube_shapewithgui:** create a geom object from parameters given by a " +"dialog box." +msgstr "" + +# dc888994da8744189e62959b71d3446f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:212 +msgid "" +"**tube_meshwithgui:** create a mesh object from parameters given by a " +"dialog box. This illustrates that a plugin can work with more than one " +"SALOME module." +msgstr "" + +# c826fed95a1649139f958591d1eefdc6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:213 +msgid "" +"**tube_shapewithguiAndPreview:** same than tube_shapewithgui but with an " +"additionnal preview function (button apply in the dialog box)." +msgstr "" + +# fb48766a628049c49b36a42e7d41ad89 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:214 +msgid "**runSalomeShellSession:** run a SALOME prepared shell session in a xterm." +msgstr "" + +# 9d68bcbfa8364e6e9b121beb7904e6f7 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:217 +msgid "" +"**minmax:** computes the min and max values of a control on a selected " +"mesh." +msgstr "" + +# 53ab7eb332db4706bc09a0b56aa5c91a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_pluginsmanager.rst:216 +msgid "" +"This plugin is available in the SMESH module only. To activate it, edit " +"the file $GUI_ROOT_DIR/share/salome/plugins/gui/demo/smesh_plugins.py and" +" turn the variable DEMO_IS_ACTIVATED to True." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/using_registry_tool.po b/doc/salome/gui/locale/fr/LC_MESSAGES/using_registry_tool.po new file mode 100644 index 000000000..695a51f41 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/using_registry_tool.po @@ -0,0 +1,116 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# a5167baf83bb4cb3a90463915ed6e3b8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:5 +msgid "Using Registry tool" +msgstr "" + +# 8707a15c5d924f5698deaa7c967bd220 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:7 +msgid "" +"**Registry** tool is in the SALOME platform is destined for providing " +"information about the processes (components), which have ever been " +"launched in the current study session." +msgstr "" + +# f115064f996740c99cda1debefafa162 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:11 +msgid "*To view the Registry:*" +msgstr "" + +# d2bc2f614ba848608dc1100c83e9fa8a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:13 +msgid "" +"From the main menu choose **Tools > Registry display**, the following " +"dialog box will appear:" +msgstr "" + +# 99a4fc0c60a849c688403eb598fddc96 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:19 +msgid "" +"**Running** tab of this dialog box displays a list of the currently " +"started processes (components) with supplementary information on each of " +"them divided into columns:" +msgstr "" + +# 5d59f2e44abe48739c14a94ed62466b1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:23 +msgid "**Component:** name of the started component" +msgstr "" + +# 6814386c374e43c3a55022f5741ee5ac +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:24 +msgid "**PID:** process identification number" +msgstr "" + +# 2590b3d0cc634290b02fca9dd86edecf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:25 +msgid "**User Name:** name of the user launching the component" +msgstr "" + +# ee4d89f6cf4544349d658a8fbfdcce6d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:26 +msgid "**Machine:** name of the machine, on which the process has been started" +msgstr "" + +# 4b7ea862bc784569966452683dfa3cb2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:27 +msgid "**begins:** date and time of the starting of the component" +msgstr "" + +# 8b7faf33c2a44a28bd6c6cfa60236620 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:28 +msgid "**hello:** date and time of the last call to the component" +msgstr "" + +# 41f729b6a117488e8a29f33de58ada37 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:30 +msgid "" +"**History** tab displays a list of all processes, which have ever been " +"launched within this study session. It contains the same supplementary " +"information on each of the processes (components)." +msgstr "" + +# 3531979cf62d431d8096b1889ac48b07 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:34 +msgid "" +"**Refresh** button allows to refresh the current list of processes " +"(components)." +msgstr "" + +# 6dbc5e05090c41d8957384e76d672f07 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:37 +msgid "" +"**Interval** button allows to set an interval for refreshment of the " +"current list of processes (components)." +msgstr "" + +# 3a4cd3d6c43741d5b140d210f1bc3027 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:43 +msgid "*To display complete information on a definite process (component):*" +msgstr "" + +# 3555664b9750495991910f10ecedd7d4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/using_registry_tool.rst:45 +msgid "" +"Double-click on this process (component). The following window will " +"appear:" +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/viewers_chapter.po b/doc/salome/gui/locale/fr/LC_MESSAGES/viewers_chapter.po new file mode 100644 index 000000000..ac77cd73d --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/viewers_chapter.po @@ -0,0 +1,80 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 29fc99c994c8492084b8d1865d0f34ef +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/viewers_chapter.rst:5 +msgid "Viewers" +msgstr "" + +# 419c3d124ebd47a4a680be422bcc6bbf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/viewers_chapter.rst:7 +msgid "" +"SALOME GUI module includes several 2D and 3D viewers, that are used for " +"different purposes within the platform:" +msgstr "" + +# 2d475bf5307e43b8bb4a939305519126 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/viewers_chapter.rst:10 +msgid "" +":ref:`occ_3d_viewer_page` has been developed on the basis of Open CASCADE" +" Technology (http://www.opencascade.org). This is the default viewer for " +"SALOME Geometry module, it provides good representation of construction " +"and transformation of geometrical objects." +msgstr "" + +# 5ed35c4a2382479bb5eca338b3af9af1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/viewers_chapter.rst:12 +msgid "" +":ref:`vtk_3d_viewer_page` has been developed basing on Kitware " +"Visualization ToolKit library (http://www.vtk.org). This is the default " +"viewer for SALOME Mesh module, where it is used for visualization of " +"meshes. OCC and VTK 3d viewers share some " +":ref:`common_functionality_page`." +msgstr "" + +# 8836722eacab4c88a628dd1857943a3a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/viewers_chapter.rst:14 +msgid "" +":ref:`plot2d_viewer_page` has been developed basing on the open-source " +"Qwt library (http://qwt.sourceforge.net). It can be used, for example, " +"for the representation of 2D plots and graphs." +msgstr "" + +# 99032759ce854da2825691ac278458da +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/viewers_chapter.rst:16 +msgid "" +":ref:`gl_2d_viewer_page` is a general purpose OpenGL-based viewer, which " +"can be used for visualization of 2D scenes. This type of viewer is not " +"currently used in SALOME platform directly, but can be used in custom " +"modules for 2D visualization purposes." +msgstr "" + +# 25edfbc06c184805a60bf0e2c59b6fab +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/viewers_chapter.rst:18 +msgid "" +":ref:`qxscene_2d_viewer_page` has been developed on the basis of Qt " +"QGraphicsView scene. This viewer is used in SALOME YACS module for " +"visualization of computation schemes." +msgstr "" + +# 17e68ec8e7724c5197c17a98f7d483e9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/viewers_chapter.rst:20 +msgid ":ref:`python_viewer_page` is an editor for Python scripts." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/vtk_3d_viewer.po b/doc/salome/gui/locale/fr/LC_MESSAGES/vtk_3d_viewer.po new file mode 100644 index 000000000..a2f54e811 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/vtk_3d_viewer.po @@ -0,0 +1,459 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# 3a48480d05004b6488b7cb5677bf2a3d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:5 +msgid "VTK 3D Viewer" +msgstr "" + +# f6a45f2e426c413a8edb084280d8cc23 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:8 +msgid "Operations" +msgstr "" + +# c36810575ae74b16849882ad9b378d93 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:10 +msgid "" +"The functionalities of VTK viewer are available via its Viewer Toolbar. " +"Buttons marked with small downward triangles have extended functionality," +" which can be accessed by locking on them with left mouse button." +msgstr "" + +# 8a9ca03dea5149ae84d3746be9b24d63 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:25 +msgid "" +"**Dump View** - exports an object snap-shot from the viewer in bmp, png " +"or jpeg image format." +msgstr "" + +# 71386da91d6c444cbc09a3ac140c5a0c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:33 +msgid "" +"**Interaction style switch** - allows to switch between \"Salome standard" +" controls\" and \"Keyboard free\" :ref:`viewer_navigation_modes`." +msgstr "" + +# 9e7b494762a94cc3928c57eef624789d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:43 +msgid "" +"**Zooming style switch** - allows to switch between standard (zooming at " +"the center of the view) and advanced (zooming at the current cursor " +"position) zooming styles. The second mode is available only for parallel " +"(non-perspective) view's mode." +msgstr "" + +# 0fa73d58a65342aaaf39cbab3d8c9833 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:54 +msgid "" +"These buttons allow switching between three pre-selection (highlighting) " +"modes:" +msgstr "" + +# 798585a5982f423fb050e40944145be8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:56 +msgid "" +"**Static pre-selection mode** - pre-selection is done in terms of " +"bounding boxes;" +msgstr "" + +# 19eb06cc5bb44a37b373470b3bc5c2c1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:57 +msgid "" +"**Dynamic pre-selection mode** - pre-selection is done in terms of cells," +" i.e. an object can be selected by clicking the point/cell belonging to " +"this object. This mode causes some performance loss. It is advisable to " +"switch dynamic pre-selection off to have a good performance on big " +"objects (for example, huge meshes);" +msgstr "" + +# cf6164a49abd44d8ab453a59f7bb964a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:58 +msgid "**Disable pre-selection** - pre-selection is disabled." +msgstr "" + +# 847c82712fe342789db13ab3d42c9520 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:67 +msgid "**Enable/Disable selection** - enables or disables selection in the view." +msgstr "" + +# 7445990def5c4f8fa48059e7d84b8d4e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:75 +msgid "**Show/Hide Trihedron** - shows or hides coordinate axes." +msgstr "" + +# 2df2f66194d44a6dad1fa3cbb4ca2931 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:83 +msgid "" +"**Fit all** - scales the presentation so that it could fit within the " +"Viewer boundaries." +msgstr "" + +# f015550a2e3c4ef0aa1448fa7242f8ac +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:92 +msgid "" +"**Fit area** - resizes the view to place in the visible area only the " +"contents of a frame drawn with pressed left mouse button." +msgstr "" + +# fe79e168fa1d4a279750e8598a25aec6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:101 +msgid "**Fit selection** - fits view contents to the current selection." +msgstr "" + +# ab1137726884400db979dc517c7780ac +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:109 +msgid "**Zoom** - allows to zoom in and out." +msgstr "" + +# 755188d148b5480a9b03e34b4f55fecc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:117 +msgid "" +"**Panning** - if the represented objects are greater that the visible " +"area and you do not wish to use **Fit all** functionality, click on this " +"button to drag the scene to see its remote parts." +msgstr "" + +# 4ce7bd1d7daf449894cff22f65294953 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:127 +msgid "" +"**Global panning** - allows to select a point to be the center of the " +"presentation showing all displayed objects in the visible area." +msgstr "" + +# 4ae4a21184e04093895bcbafe79d7514 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:136 +msgid "" +"**Change rotation point** - allows to to choose the point around which " +"the rotation is performed." +msgstr "" + +# 0373c8ac75094a5ca212f99a7be69903 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:142 +msgid "" +"By default the rotation point is located in the Center of the bounding " +"box of an object." +msgstr "" + +# 4b32a7f25de948ddb62d4cb4995483e4 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:148 +msgid "" +"Unchecking **Use Bounding Box Center** check-box allows you to define the" +" coordinates of the rotation point manually." +msgstr "" + +# d8ac091748044da2be694936296eca97 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:151 +msgid "**Set to Origin** button restores the default rotation point coordinates." +msgstr "" + +# e46849d67fe54ab99378f2ebf150399c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:153 +msgid "" +"**Gravity Center of Selected Object** button allows using the gravity " +"center of the object selected in the viewer as the center of the rotation" +" point. When you click this button, you should first choose the type of " +"selectable object: Point, Edge, Face or Solid and only then proceed with " +"selection in the viewer." +msgstr "" + +# d86cb8e9447d483daca0ab3d23d00852 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:162 +msgid "**Rotation** - allows to rotate the selected object using the mouse." +msgstr "" + +# 319b76c242654997addd352006c91d38 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:186 +msgid "" +"These buttons orientate the scene strictly about coordinate axes: " +"**Front**, **Back**, **Top**, **Bottom**, **Left** or **Right** side." +msgstr "" + +# 4aa43bdd15284f328d5733cdda008307 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:195 +msgid "" +"**Rotate counter-clockwise** - rotates view 90 @htmlonly ° " +"@endhtmlonly counter-clockwise." +msgstr "" + +# 53fe5737d7644fc986dc5f8ad5428b45 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:203 +msgid "" +"**Rotate clockwise** - rotates view 90 @htmlonly ° @endhtmlonly " +"clockwise." +msgstr "" + +# 79faf7dc61a24ee7be3b844d5a85cbbf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:211 +msgid "" +"**Reset** - restores the default position (isometric) of objects in the " +"scene." +msgstr "" + +# 0570456b70ff41c089313e9837f8f5a1 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:220 +msgid "" +"**Update Rate** - allows to define the Update Rate for the presentations " +"displayed in the viewer." +msgstr "" + +# 7622b93c90bd44498b193adb24f86480 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:226 +msgid "**Desired Update Rate, FPS** - allows to set the target Update Rate" +msgstr "" + +# 349dc763ba194d14b6fd61c91512a37c +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:228 +msgid "" +"**Still Update Rate, FPS** - allows to set the Update Rate for the " +"periods when both the user and the application do not perform any actions" +" in the viewer" +msgstr "" + +# 94d760f73c9a4df3b4708d9de19e3231 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:230 +msgid "" +"**Current Update Rate, FPS** - shows the Update Rate currently available " +"on your configuration" +msgstr "" + +# a22d4e67fd024827a7be984f4ee1890a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:232 +msgid "**Number of Cells** - shows the number of cells currently in display" +msgstr "" + +# ab7919b315fb4fca8951044c329cfc96 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:241 +msgid "" +"**Scaling** - represents objects deformed (stretched or stuffed) along " +"the axes of coordinates." +msgstr "" + +# a67c15bfb2474e888d148b2e60c6783d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:249 +msgid "" +"**Graduated axes** - allows to define parameters of axes and graduate " +"them." +msgstr "" + +# 7b256cab465c4880b630e62517e0e597 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:254 +msgid "**Axis name** - if checked the axis name is displayed in the viewer." +msgstr "" + +# 50fdbf6c654f40b49e3080bbc5b06d48 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:256 +msgid "**Name** - allows to redefine the name of the axis." +msgstr "" + +# 9473ee7e5631410daa9e9bd45687b5d3 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:258 +msgid "**Font** - allows to define color and properties of the font of axis name." +msgstr "" + +# c43b6b6ba3a94a098f5521307f929767 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:260 +msgid "**Labels** - if checked the labels are displayed in the viewer." +msgstr "" + +# 3817b92d21db449bbce6b834a3dbeeaf +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:262 +msgid "**Number** - allows to define the number of labels." +msgstr "" + +# 13ca6c6b429f4ba5899b9b164247dac5 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:264 +msgid "**Offset** - allows to define the distance between labels." +msgstr "" + +# 1b73f054b13941c395ac032d49b53a12 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:266 +msgid "" +"**Font** - allows to define color and properties of the font of labels " +"names." +msgstr "" + +# 3116afbb662846d8b45886a7fae2ee53 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:268 +msgid "**Tick marks** - if checked the tick marks are displayed in the viewer." +msgstr "" + +# 9c32c2784b53477baf8d659a8bcfb7d9 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:270 +msgid "**Length** - allows to define the length of tick marks." +msgstr "" + +# ad775ee4301747acbd9c1baaf58ebf0e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:272 +msgid "**Is visible** - if checked the axis is displayed in the viewer." +msgstr "" + +# c8ebc4d053fb4a5ba460d8db269b0e7e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:281 +msgid "" +"**Change View Parameters** - this button gives access to the dialog for " +"customization of various view parameters." +msgstr "" + +# d8eb365044ee4321934e5930ee09f1ef +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:287 +msgid "" +"**Projection Mode** - switches between the **Orthogonal** and " +"**Perspective** projection modes." +msgstr "" + +# cc73c89b0407427d8238c4f26488831d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:289 +msgid "**Focal Point** - allows to specify the focal point of the view" +msgstr "" + +# 6f4fcf6f410040d7b09c6a2c0e7823b0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:291 +msgid "" +"**Set to Bounding Box Center** - chooses the center of the bounding box " +"of the current scene as the focal point;" +msgstr "" + +# f22c594f762e406dba86a17d00d9440f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:292 +msgid "" +"**Set to Origin** - chooses the global coordinates system origin as the " +"focal point;" +msgstr "" + +# 79d5e3a52f4543dd8a9f2ff72795dcbd +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:293 +msgid "" +"**Select Point from View** - allows to specify the focal point by the " +"direct selection of a point in the view window;" +msgstr "" + +# 0ff3ae1886094ad0aaa7668a2c86d412 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:294 +msgid "" +"**X**, **Y**, **Z** - allows to input the coordinates of the focal point " +"directly." +msgstr "" + +# 40ab2dcd2eb14d149eb6186917df9cdc +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:296 +msgid "**Camera Position** - allows to specify the position of the view camera:" +msgstr "" + +# 557a2ab9dee14e82a6e8d2f6898aa4b2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:298 +msgid "**Absolute Coordinates** - in absolute coordinates;" +msgstr "" + +# 2254b40b26a94f90b6f07d39721e709a +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:299 +msgid "**Relative to Focal Point** - as a offset to the focal point;" +msgstr "" + +# f5c164287b194e6fb6d0c76a0a2dc973 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:300 +msgid "" +"**Projection Direction** - allows specify the direction of the projection" +" vector;" +msgstr "" + +# bb6bdb260dc84facbca68ae61d4d8a87 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:301 +msgid "**Focal Distance** - the focal distance value." +msgstr "" + +# 57b9a58e799945128e412b155ff4f868 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:303 +msgid "**View Up Direction** - direction of the \"view up\" vector." +msgstr "" + +# 93971003bb384e2e8212394fdb935267 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:305 +msgid "**Zooming**" +msgstr "" + +# f1ddd3eef47043c7afedc5df8078f626 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:307 +msgid "" +"**Scale** - the current zoom factor (available in the **Orthogonal mode**" +" only);" +msgstr "" + +# 5aa65046b1e24b4ba58f0f53eba6a4a8 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:308 +msgid "" +"**View Angle** - the current view angle (available in the **Perspective " +"mode** only)." +msgstr "" + +# 093375939da14fafa0c4dce4c616df22 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:317 +msgid "" +"**Synchronize view** - allows to synchronize 3d view parameters. This " +"button has two states - checked and unchecked. Clicking on this button " +"opens a drop-down menu listing compatible 3d views. When a view is " +"selected in the list , the parameters (view point, position, zoom " +"coefficient, etc.) of the current view are synchronized with the selected" +" view (static synchronization)." +msgstr "" + +# 0aa7b4a340904754a02fb17f6082f86f +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:323 +msgid "" +"In addition, when this button is \"checked\", the views are synchronized " +"dynamically, i.e. any zoom, pan, rotate or other view operation done in " +"one view is automatically applied to the other view." +msgstr "" + +# 3fea394d277f432eab0aca38d2dbf26e +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:333 +msgid "**Orthogonal mode** - Switches the view to the orthogonal mode." +msgstr "" + +# a6a941bc363a44119c6f3b5d03d58c15 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:341 +msgid "**Perspective mode** - Switches the view to the perspective mode." +msgstr "" + +# 63f3c1e950e64a86a4d1eed5a4d2bb45 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:358 +msgid "" +"These buttons allow recording viewing operations as a video file in the " +"AVI format using external software (jpeg2yuv):" +msgstr "" + +# 1e9e05ecfb5545b18cc0317bef4e44e2 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:361 +msgid "**Start recording** - specify parameters and start recording;" +msgstr "" + +# 27c558d1229b436bb26a0d2d214ff16d +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:363 +msgid "**Pause recording** - suspend recording;" +msgstr "" + +# e553f80a57ee4dc692bfc67887a04a95 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:365 +msgid "**Continue recording** - resume recording;" +msgstr "" + +# b8477725e26e44fab4ab33e41881fd70 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/vtk_3d_viewer.rst:367 +msgid "**Stop recording** - stop recording." +msgstr "" + diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/working_with_python_scripts.po b/doc/salome/gui/locale/fr/LC_MESSAGES/working_with_python_scripts.po new file mode 100644 index 000000000..254edb899 --- /dev/null +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/working_with_python_scripts.po @@ -0,0 +1,59 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) +# This file is distributed under the same license as the GUI package. +# FIRST AUTHOR , 2017. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GUI 8.4.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:16+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +# d490c2e7f4224812aa4fe41839c4aed0 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/working_with_python_scripts.rst:5 +msgid "Python Interpreter" +msgstr "" + +# 131b7e98293e4bff8fd0c8dea9755869 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/working_with_python_scripts.rst:7 +msgid "" +"**SALOME** Platform can be launched in the batch mode, without Graphical " +"User Interface, and operated with the use of Python scripts, which can " +"fulfill most of the necessary tasks, however, the process of scripting is" +" quite time consuming and rather error-prone." +msgstr "" + +# 996ca944dfb64590b9db96fabf4325f6 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/working_with_python_scripts.rst:12 +msgid "" +"This problem has been resolved by the possibility to automatically " +"generate a set of Python scripts from data created with SALOME GUI, which" +" greatly increases the productivity of using SALOME platform in the batch" +" mode. This mechanism can convert a SALOME Study in one or several Python" +" scripts, which can be stored and imported later to re-create the content" +" of the original study. The first script is a SALOME document, which re-" +"creates the SALOME Study, adds the stored Salome components to the SALOME" +" and automatically calls Python scripts of the second type containing " +"component specific Python function calls. This architecture gives great " +"flexibility in manual modification of the generated scripts because you " +"can modify only one of the component specific Python scripts without " +"touching others, thus avoiding expert knowledge of Python API of unused " +"components." +msgstr "" + +# 9774ea709d84415fb515c0ff9c816117 +#: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/working_with_python_scripts.rst:26 +msgid "" +"To Dump a SALOME Study in one or several scripts, in the main menu " +"select **File --> Dump study**. Reversibly, it is possible to load a " +"saved Python Script selecting in the main menu **File -> Load Script**." +msgstr "" + diff --git a/doc/salome/gui/static/footer.html b/doc/salome/gui/static/footer.html deleted file mode 100755 index 7cf11feba..000000000 --- a/doc/salome/gui/static/footer.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - diff --git a/doc/salome/gui/static/header.html.in b/doc/salome/gui/static/header.html.in deleted file mode 100755 index 3603a0545..000000000 --- a/doc/salome/gui/static/header.html.in +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - -$projectname: $title -$title - - - -$treeview -$search -$mathjax - -$extrastylesheet - - -
- -
Version: @SALOMEGUI_VERSION@
- diff --git a/doc/salome/gui/static/salome_extra.css b/doc/salome/gui/static/salome_extra.css deleted file mode 100644 index 3e8b838a6..000000000 --- a/doc/salome/gui/static/salome_extra.css +++ /dev/null @@ -1,29 +0,0 @@ -/* The extra CSS for doxygen 1.8.3.1 */ - -#titlearea { - background-image:url('head.png'); - background-color: #175783; - border: 1px solid; - height: 80px; - background-repeat: no-repeat; - padding: 0px; - margin: 0px; - width: 99.9%; - border-bottom: 1px solid #5373B4; -} - -div.version { - border:1px solid #0000FF; - color: #CCCCCC; - font-family: Arial, Helvetica, sans-serif; - font-size: 9pt; - text-align: center; - width:100px; - -moz-border-radius: 8px; - margin: 5px; -} - -.navpath li.footer { - line-height:15px; - text-align: right; -} \ No newline at end of file diff --git a/doc/salome/gui/static/switchers.js.in b/doc/salome/gui/static/switchers.js.in new file mode 100644 index 000000000..f25369329 --- /dev/null +++ b/doc/salome/gui/static/switchers.js.in @@ -0,0 +1,72 @@ +(function() { + 'use strict'; + + // Parses versions in URL segments like: + + var all_languages = { + 'en': 'English', + 'fr': 'French', + }; + + function build_language_select(current_language) { + var buf = [''); + return buf.join(''); + } + + function on_language_switch() { + var selected_language = $(this).children('option:selected').attr('value') + '/'; + var url = window.location.href; + + var current_language = language_segment_from_url(url); + var current_suffix = ""; + if (current_language != "") { + current_suffix = "_"; + } else { + current_language = "/"; + } + + var selected_suffix = "_"; + if (selected_language == 'en/') { // Special 'default' case for english. + selected_language = ''; + selected_suffix = "/"; + } + + var new_url = url.replace('/gui/GUI' + current_suffix + current_language, + '/gui/GUI' + selected_suffix + selected_language); + if (new_url != url) { + window.location.href = new_url; + } + } + + // Returns the path segment of the language as a string, like 'fr/' + // or '' if not found. + function language_segment_from_url(url) { + var language_regexp = '\/gui/GUI_([a-z]{2}(?:-[a-z]{2})?/)'; + var match = url.match(language_regexp); + if (match !== null) + return match[1]; + return ''; + } + + $(document).ready(function() { + if(@BUILD_LANGUAGE_SWITCHER@) { + var release = DOCUMENTATION_OPTIONS.VERSION; + var language_segment = language_segment_from_url(window.location.href); + var current_language = language_segment.replace(/\/+$/g, '') || 'English'; + + var language_select = build_language_select(current_language); + + $('.language_switcher_placeholder').html(language_select); + $('.language_switcher_placeholder select').bind('change', on_language_switch); + } + }); +})(); diff --git a/doc/salome/gui/templates/layout.html b/doc/salome/gui/templates/layout.html new file mode 100644 index 000000000..94d467b51 --- /dev/null +++ b/doc/salome/gui/templates/layout.html @@ -0,0 +1,30 @@ +{% extends "!layout.html" %} + +{% block rootrellink %} + {{ language or 'English' }} + {{ super() }} +{% endblock %} + +{% block extrahead %} + +{{ super() }} +{% endblock %} + +{%- block sidebarlogo %} +{{ super() }} +{%- +include "searchbox.html" +%} +

+{%- endblock %} +{%- block sidebarsearch %} +{%- endblock %} + +{%- block footer %} +

+ {{ super() }} +{%- endblock %} diff --git a/doc/salome/tui/images/image54.png b/doc/salome/tui/images/image54.png new file mode 100644 index 0000000000000000000000000000000000000000..8e6b1e52b3c9ed5858139591713f9fe96cd662d6 GIT binary patch literal 330988 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
  • (3eNUigeA5tzb1f#ZJ(H6$= zI(}PEqcQx@K(c1l1&cvD-=*w)AgxNBF1%zF{*)FfjaA|-7ii;Y6^5!ym7*kN;NGnf zdZv@mbw%EVwIbd49iC(4KGBQ}C^~`T(E96P8^X>GP)5LsU39Ue(CWNxt^ z3FzVl7_F~pf{aW^?M-Do2%6Lb0!_>kMIodL**p_(7?O7&vkk0;5i@|i<$&GFi!it* z;6YkG9+DuKMg>c`oO~ObVG&l+8CLJ_ndEGSvGccH2qT9-lb2FRICYAsR;~F-zC|%b zSunK%*Y4!7NI9*8*5Z&HKt7UB$#c04i0Ak=-K&vN$y~Whj|NyVDp?BJ*%bvn7)qokO+{G}7lK#C2duMsL5T_iy1a@BI3?cfA3O=2MJ zV3f@~#c7+|qEMMUM-fAqqVMDlQIyTj`r0LB2q{H09w{srk(^CC2S)G3G*XgzM3ftJ zj52~SmD+@PTMXNq+g1Oi>l`W#st}I$m*&6*CaC~fWJ`WOASXUtbep0@_fJXw-B5`K2S>>N2rU^Gf2<|YOJW>q zH<6^NE{MaN5?|UK#I!i5=q@zjCcptG9p_JAMb}9!0L4~xlz>_W55(^CkxrzPLE;8& z(l)Xu*^|K%q92WGRu2S`Rdd0FOG@@sD6C5nSNb9d27y5II@lCb<$ua;tdYl+7=uX? z`lLoppofYdL=j>;mkqBzswcAY(co>q$F zR{}`$<$SSbMc%qH1Xhs0qAdEnK&_4qg*87@5(%yVTBXJeof}J9AYkFQk#U+wJbgTL z>EH$j*c5Ql4>-g=kN}e_bEIKS(_uwMl)f+vUU($bK@dh|3D+-eu;^}|{;U!aS`aU~ zyos8V*dh3vOhHh4!)TM&a(knPo&xp@Ry7o7@T z5fq5-13k}Oi}V!Yrf`hnO&8_xk5LPJceREOY{;1t+cZASe%btECs&~21=S!$RX%yi z6#|FNaHSS9q-{BqhOx-%7;v>ER{iG}xSFD@3le!HXIZ|+r(0_54A<_J>o&K&&K)7Y zv`FeGn23l1+GN`L>)=SSK*k3%R|vuTnGh#?M>0-8r&tlz(|Q;}335hO!eOg{My6{5 zYHol5#$E%^kZF3j3VR0t16D|knV{{36!`=`L*DA)q$%89b2ngAYu0=S*=!m%NgWs6 zEHRg8yMQd33`aGCzBDC?o(M?5GNB=0an&0~(BJFp)Gs1; zM5dr9tEd|yA#tGv0HS;=gn}bu^{HekBWQ!N?Ud9OFtQvn1p!4a&L3BWZel}Lyd(gt z-9?AQ7jcLxCa_txByU+TW|jsc6c}QHL5Z&W;bb+za}`dP2WN|@LleCC!rl~tjH5>b zaZpWAS)k-TS#aVjKn+T44drI0RyA5rkOJY1WvK;9BJRqcpiu&SaK!r{5``h|r+yf( z#O!$MdWo1B9^?~--S&aB>1}Nb7!lc61vjW;WLtGyo{nX=ggz(TjLHw0RVRiZ1HdN4 zp=2RVwXURqDUsB}NW&d}!M}nE<|mMnfDB{8{czFCG@N_?2IHnI5}3@ab6)W0NH4*e z&+PU;7zalpX!7z5CO#VBh;ihRb7v`lYvA!FjtVkVM;$V$YdGLBIhfbhxh1&gbgKh% zP>8cqNfb)8Q+Cb|!EH!60hFkfQ$US=jbhzKhMeNQ!!FEBlc~T8*kN~38;XFShWve02$g?P5coJ|aI6u=9dH@>9Z42*3f+ zWhyUr+1(QGK${Iz#DYIq1a_Dc#LaAey5fhjNjf7(!}miU`Y3Ea61R+JE

    P=qSph4f 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�k>M`jX!*bD-Q-m=gW#koxXWXt@igIR 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 literal 0 HcmV?d00001 diff --git a/doc/salome/tui/images/image67.png b/doc/salome/tui/images/image67.png new file mode 100644 index 0000000000000000000000000000000000000000..ce4bda602dff17086e04872ee11ad18e642eb4d7 GIT binary patch literal 129948 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 =X=OW!CGS{j8`+{&}B=N^hIQBT24d^ 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 literal 0 HcmV?d00001 diff --git a/doc/salome/tui/input/index.doc b/doc/salome/tui/input/index.doc index 678dda879..30c916a61 100644 --- a/doc/salome/tui/input/index.doc +++ b/doc/salome/tui/input/index.doc @@ -4,6 +4,7 @@ To browse the \b SALOME GUI module Developer Documentation, follow the links below or use navigation menu at the top of the page:
        +
      • \subpage salome_architecture_page - SALOME architecture.
      • Packages - list of GUI module packages and scripts.
      • Data Structures - list of all data structures and classes with brief descriptions.
      • Files - list of all files with brief descriptions.
      • diff --git a/doc/salome/gui/input/salome_architecture.doc b/doc/salome/tui/input/salome_architecture.doc similarity index 100% rename from doc/salome/gui/input/salome_architecture.doc rename to doc/salome/tui/input/salome_architecture.doc diff --git a/src/LightApp/CMakeLists.txt b/src/LightApp/CMakeLists.txt index 9a868aa2b..41e4fbb78 100755 --- a/src/LightApp/CMakeLists.txt +++ b/src/LightApp/CMakeLists.txt @@ -227,6 +227,8 @@ SET(_other_RESOURCES resources/icon_module.png resources/icon_module_big.png resources/icon_select.png + resources/icon_earth.png + resources/icon_life_ring.png resources/LightApp.ini resources/LightApp.xml ) diff --git a/src/LightApp/LightApp_Application.cxx b/src/LightApp/LightApp_Application.cxx index 529725ad4..7e0661fb6 100644 --- a/src/LightApp/LightApp_Application.cxx +++ b/src/LightApp/LightApp_Application.cxx @@ -603,13 +603,47 @@ void LightApp_Application::createActions() int helpMenu = createMenu( tr( "MEN_DESK_HELP" ), -1, -1, 1000 ); createMenu( separator(), helpMenu, -1, 10 ); + + // Site && forum + int id = LightApp_Application::UserID + FIRST_HELP_ID; + + QString site = tr ( "SALOME_SITE" ); + QAction* as = createAction( id, site, + resMgr->loadPixmap( "LightApp", tr( "ICON_WWW" ), false ), + site, site, + 0, desk, false, this, SLOT( onHelpOnline() ) ); + as->setData( "salome-platform.org" ); + createMenu( as, helpMenu, -1, 0 ); + id++; + + QString forum = tr ( "SALOME_FORUM" ); + + QAction* af = createAction( helpMenu, forum, + resMgr->loadPixmap( "LightApp", tr( "ICON_WWW" ), false ), + forum, forum, + 0, desk, false, this, SLOT( onHelpOnline() ) ); + af->setData( "salome-platform.org/forum" ); + createMenu( af, helpMenu, -1, 0 ); + id++; + + createMenu( separator(), helpMenu, -1, 0 ); + + // YouTube channel + QString video = tr ( "SALOME_VIDEO_TUTORIALS" ); + QAction* av = createAction( helpMenu, video, + resMgr->loadPixmap( "LightApp", tr( "ICON_LIFE_RIGN" ), false ), + video, video, + 0, desk, false, this, SLOT( onHelpOnline() ) ); + av->setData( "not-created-yet.com" ); + createMenu( av, helpMenu, -1, 0 ); + id++; + + QStringList aModuleList; modules( aModuleList, false ); aModuleList.prepend( "GUI" ); aModuleList.prepend( "KERNEL" ); - int id = LightApp_Application::UserID + FIRST_HELP_ID; - QString aModule; foreach( aModule, aModuleList ) { if ( aModule.isEmpty() ) // module title (user name) @@ -1097,16 +1131,23 @@ public: const QString& theApp, const QString& theParams, const QString& theHelpFile, - const QString& theContext = QString() ) + const QString& theContext = QString(), + //For the external browser always specify 'file://' protocol, + //because some WEB browsers (for example Mozilla Firefox) can't open local file without protocol. + const QString& theProtocol = QString("file://"), + const bool isFile = true) : myApp( theApp ), myParams( theParams ), myContext( theContext ), myStatus(0), myLApp( app ) { - //For the external browser always specify 'file://' protocol, - //because some WEB browsers (for example Mozilla Firefox) can't open local file without protocol. - myHelpFile = QString("file://%1").arg( QFileInfo( theHelpFile ).canonicalFilePath() ); + QString path_begin = theProtocol+"%1"; + QString path_end = theHelpFile; + if( isFile ) { + path_end = QFileInfo( theHelpFile ).canonicalFilePath(); + } + myHelpFile = path_begin.arg( path_end ); } virtual void run() @@ -1261,6 +1302,57 @@ void LightApp_Application::onHelpContextModule( const QString& theComponentName, } } +/*! + SLOT: Displays help contents for choosen module +*/ +void LightApp_Application::onHelpOnline() +{ + const QAction* a = (QAction*) sender(); + QString url = a->data().toString(); + if ( url.isEmpty() ) return; + + SUIT_ResourceMgr* resMgr = resourceMgr(); + QString platform; +#ifdef WIN32 + platform = "winapplication"; +#else + platform = "application"; +#endif + QString anApp = resMgr->stringValue("ExternalBrowser", platform); +#ifdef WIN32 + QString quote("\""); + anApp.prepend( quote ); + anApp.append( quote ); +#endif + QString aParams = resMgr->stringValue("ExternalBrowser", "parameters"); +#if DISABLE_QTXWEBBROWSER + bool useExtBrowser = true; +#else + bool useExtBrowser = resMgr->booleanValue("ExternalBrowser", "use_external_browser", false ); +#endif + + if( useExtBrowser ) { + if ( !anApp.isEmpty() ) { + RunBrowser* rs = new RunBrowser( this, anApp, aParams, url, "", "http://", false ); + rs->start(); + } + else { + if ( SUIT_MessageBox::question( desktop(), tr( "WRN_WARNING" ), tr( "DEFINE_EXTERNAL_BROWSER" ), + SUIT_MessageBox::Yes | SUIT_MessageBox::No, + SUIT_MessageBox::Yes ) == SUIT_MessageBox::Yes ) + + showPreferences( tr( "PREF_APP" ) ); + } + } + else { + QStringList parameters; + parameters << QString( "--language=%1" ).arg( resMgr->stringValue( "language", "language" ) ); + parameters << QString( "--add=%1" ).arg( QApplication::instance()->applicationPid() ); + parameters << "http://" + url; + QProcess::startDetached( "HelpBrowser", parameters ); + } +} + /*! Sets enable or disable some actions on selection changed. */ diff --git a/src/LightApp/LightApp_Application.h b/src/LightApp/LightApp_Application.h index cd9ce2e15..3b41aeceb 100644 --- a/src/LightApp/LightApp_Application.h +++ b/src/LightApp/LightApp_Application.h @@ -198,6 +198,7 @@ signals: public slots: virtual void onHelpContentsModule(); + virtual void onHelpOnline(); virtual void onHelpContextModule( const QString&, const QString&, const QString& = QString() ); virtual void onNewDoc(); virtual void onOpenDoc(); diff --git a/src/LightApp/LightApp_PreferencesDlg.cxx b/src/LightApp/LightApp_PreferencesDlg.cxx index 147ab8117..7ee2a302b 100644 --- a/src/LightApp/LightApp_PreferencesDlg.cxx +++ b/src/LightApp/LightApp_PreferencesDlg.cxx @@ -122,7 +122,7 @@ void LightApp_PreferencesDlg::onHelp() { SUIT_Application* app = SUIT_Session::session()->activeApplication(); if ( app ) - app->onHelpContextModule( "GUI", "setting_preferences_page.html" ); + app->onHelpContextModule( "GUI", "setting_preferences.html" ); } /*!Store preferences on apply.*/ diff --git a/src/LightApp/resources/LightApp.xml b/src/LightApp/resources/LightApp.xml index 3f74985a9..5e9e844ab 100644 --- a/src/LightApp/resources/LightApp.xml +++ b/src/LightApp/resources/LightApp.xml @@ -246,14 +246,11 @@
        - - - + +
        - - - +
        diff --git a/src/LightApp/resources/LightApp_images.ts b/src/LightApp/resources/LightApp_images.ts index 98d12bcfc..d8a16f562 100644 --- a/src/LightApp/resources/LightApp_images.ts +++ b/src/LightApp/resources/LightApp_images.ts @@ -31,5 +31,13 @@ APP_MODULE_ICO icon_module.png + + ICON_WWW + icon_earth.png + + + ICON_LIFE_RIGN + icon_life_ring.png + diff --git a/src/LightApp/resources/LightApp_msg_en.ts b/src/LightApp/resources/LightApp_msg_en.ts index fd899055d..9efc62202 100644 --- a/src/LightApp/resources/LightApp_msg_en.ts +++ b/src/LightApp/resources/LightApp_msg_en.ts @@ -46,6 +46,18 @@ CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITASABOUT_VERSION Version %1 + + SALOME_SITE + SALOME Website + + + SALOME_FORUM + SALOME Forum + + + SALOME_VIDEO_TUTORIALS + Video Tutorials + ENTRY_COLUMN Entry diff --git a/src/LightApp/resources/icon_earth.png b/src/LightApp/resources/icon_earth.png new file mode 100755 index 0000000000000000000000000000000000000000..76d691411b5d2cc8f08b8388f1fa441bd7feb257 GIT binary patch literal 1670 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 zkQactiveApplication(); if ( app ) - app->onHelpContextModule( "GUI", "occ_3d_viewer_page.html", "clipping_planes" ); + app->onHelpContextModule( "GUI", "occ_3d_viewer.html", "clipping-planes" ); } /*! diff --git a/src/OCCViewer/OCCViewer_EnvTextureDlg.cxx b/src/OCCViewer/OCCViewer_EnvTextureDlg.cxx index 4ed2aab2e..263064308 100644 --- a/src/OCCViewer/OCCViewer_EnvTextureDlg.cxx +++ b/src/OCCViewer/OCCViewer_EnvTextureDlg.cxx @@ -218,7 +218,7 @@ void OCCViewer_EnvTextureDlg::ClickOnHelp() { SUIT_Application* app = SUIT_Session::session()->activeApplication(); if ( app ) - app->onHelpContextModule( "GUI", "occ_3d_viewer_page.html", "env_texture" ); + app->onHelpContextModule( "GUI", "occ_3d_viewer.html", "env-texture" ); } /*! diff --git a/src/OCCViewer/OCCViewer_LightSourceDlg.cxx b/src/OCCViewer/OCCViewer_LightSourceDlg.cxx index 2247273c5..7cf3e294e 100644 --- a/src/OCCViewer/OCCViewer_LightSourceDlg.cxx +++ b/src/OCCViewer/OCCViewer_LightSourceDlg.cxx @@ -427,5 +427,5 @@ void OCCViewer_LightSourceDlg::ClickOnHelp() { SUIT_Application* app = SUIT_Session::session()->activeApplication(); if ( app ) - app->onHelpContextModule( "GUI", "occ_3d_viewer_page.html", "light_source" ); + app->onHelpContextModule( "GUI", "occ_3d_viewer.html", "light-source" ); } diff --git a/src/OCCViewer/OCCViewer_RayTracingDlg.cxx b/src/OCCViewer/OCCViewer_RayTracingDlg.cxx index 0f3b3c30c..bf7717135 100644 --- a/src/OCCViewer/OCCViewer_RayTracingDlg.cxx +++ b/src/OCCViewer/OCCViewer_RayTracingDlg.cxx @@ -184,5 +184,5 @@ void OCCViewer_RayTracingDlg::ClickOnHelp() { SUIT_Application* app = SUIT_Session::session()->activeApplication(); if ( app ) - app->onHelpContextModule( "GUI", "occ_3d_viewer_page.html", "ray_tracing" ); + app->onHelpContextModule( "GUI", "occ_3d_viewer.html", "ray-tracing" ); } diff --git a/src/Plot2d/Plot2d_AnalyticalCurveDlg.cxx b/src/Plot2d/Plot2d_AnalyticalCurveDlg.cxx index 03a4437be..26a138516 100755 --- a/src/Plot2d/Plot2d_AnalyticalCurveDlg.cxx +++ b/src/Plot2d/Plot2d_AnalyticalCurveDlg.cxx @@ -499,7 +499,7 @@ void Plot2d_AnalyticalCurveDlg::help() { SUIT_Application* app = SUIT_Session::session()->activeApplication(); if ( app ) - app->onHelpContextModule( "GUI", "plot2d_viewer_page.html", "analytical_curve" ); + app->onHelpContextModule( "GUI", "plot2d_viewer.html", "analytical-curve" ); } /*! diff --git a/src/Plot2d/Plot2d_SetupViewDlg.cxx b/src/Plot2d/Plot2d_SetupViewDlg.cxx index e7d25311d..d3275cc37 100755 --- a/src/Plot2d/Plot2d_SetupViewDlg.cxx +++ b/src/Plot2d/Plot2d_SetupViewDlg.cxx @@ -1195,6 +1195,6 @@ void Plot2d_SetupViewDlg::onHelp() #ifndef NO_SUIT SUIT_Application* app = SUIT_Session::session()->activeApplication(); if ( app ) - app->onHelpContextModule( "GUI", "plot2d_viewer_page.html", "settings" ); + app->onHelpContextModule( "GUI", "plot2d_viewer.html", "settings" ); #endif } diff --git a/src/PyViewer/PyViewer_ViewWindow.cxx b/src/PyViewer/PyViewer_ViewWindow.cxx index bb8320a11..9436968f4 100644 --- a/src/PyViewer/PyViewer_ViewWindow.cxx +++ b/src/PyViewer/PyViewer_ViewWindow.cxx @@ -423,9 +423,9 @@ void PyViewer_ViewWindow::onHelp() { SUIT_Application* app = SUIT_Session::session()->activeApplication(); if ( app ) { - QString page = "python_viewer_page.html"; + QString page = "python_viewer.html"; if ( qobject_cast( sender() ) ) - page += "#custom_python_preferences"; + page += "#custom-python-preferences"; app->onHelpContextModule( "GUI", page ); } } diff --git a/src/STD/CMakeLists.txt b/src/STD/CMakeLists.txt index cdc6b67fe..55f753fe7 100755 --- a/src/STD/CMakeLists.txt +++ b/src/STD/CMakeLists.txt @@ -79,6 +79,7 @@ SET(_other_RESOURCES resources/std.ini resources/undo.png resources/vtile.png + resources/about.png ) # --- sources --- diff --git a/src/STD/STD_Application.cxx b/src/STD/STD_Application.cxx index d5751cf34..208115b83 100755 --- a/src/STD/STD_Application.cxx +++ b/src/STD/STD_Application.cxx @@ -203,7 +203,8 @@ void STD_Application::createActions() createAction( NewWindowId, tr( "TOT_DESK_NEWWINDOW" ), QIcon(), tr( "MEN_DESK_NEWWINDOW" ), tr( "PRP_DESK_NEWWINDOW" ), 0, desk ); - createAction( HelpAboutId, tr( "TOT_DESK_HELP_ABOUT" ), QIcon(), + createAction( HelpAboutId, tr( "TOT_DESK_HELP_ABOUT" ), + resMgr->loadPixmap( "STD", tr( "ICON_DESK_ABOUT" ) ), tr( "MEN_DESK_HELP_ABOUT" ), tr( "PRP_DESK_HELP_ABOUT" ), Qt::ALT+Qt::SHIFT+Qt::Key_A, desk, false, this, SLOT( onHelpAbout() ) ); diff --git a/src/STD/resources/STD_images.ts b/src/STD/resources/STD_images.ts index e26af0264..ccc6ba2c5 100644 --- a/src/STD/resources/STD_images.ts +++ b/src/STD/resources/STD_images.ts @@ -79,5 +79,9 @@ ICON_FILE_CLOSE close.png + + ICON_DESK_ABOUT + about.png + diff --git a/src/STD/resources/about.png b/src/STD/resources/about.png new file mode 100755 index 0000000000000000000000000000000000000000..25dbd81dff729833d78e808db31aa325196805d0 GIT binary patch literal 459 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjjKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85sDEfH31!Z9ZwBAbW|YuPgf_Mln7!?GGg-Pl2X*d%8G=cpN`E zZSSgP2Z7dfSHXkFlsdLf@Y=u`@rz@lr>2wKK`qwsR@yCLG z%Z0C$@~(UR=z*z((*5uEZxzZM&R|$7qBs3?bl(2^|7*qfZn>NH{N^(KrI}ozp@!TN zZH$fr9~f=UH$VS;lEq`vk@pJci+9AWKf~00lL60^l7<5mr{q)Z=Jfg>7}=}*`BXHu-HG?QnEq7sHRJK