idl/Makefile \
Makefile
])
+
+AC_HACK_LIBTOOL
<b>Entry</b>, <b>IOR</b> and <b>Reference entry</b> columns in the Object Browser.</li>
</ul>
+<br><h2>Shortcuts Preferences</h2>
+
+\image html pref41.png
+
+<ul>
+<li>
+<b>Shortcuts settings</b> widget allows to define custom shortcuts for the presented actions.
+<br>To change keyboard sequence for the certain action - select the action and press desirable
+keys combination.
+</li>
+</ul>
+
*/
nodist_libcaf_la_SOURCES = $(MOC_FILES)
nodist_salomeres_DATA = \
- CAF_msg_en.qm
+ CAF_msg_en.qm \
+ CAF_msg_fr.qm
libcaf_la_CPPFLAGS = $(QT_INCLUDES) $(CAS_CPPFLAGS) -I$(srcdir)/../STD -I$(srcdir)/../SUIT -I$(srcdir)/../Qtx
libcaf_la_LDFLAGS = $(QT_MT_LIBS) $(CAS_OCAF) $(CAS_OCAFVIS)
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>CAF_Application</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>CAF_Application</name>
+ <message>
+ <source>MEN_APP_EDIT</source>
+ <translation>&Editer</translation>
+ </message>
+ <message>
+ <source>INF_ALL_FILTER</source>
+ <translation>Tous les Fichiers (*.*)</translation>
+ </message>
+ <message>
+ <source>INF_ALL_DOCUMENTS_FILTER</source>
+ <translation>Tous les Documents Lisibles</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_EDIT</source>
+ <translation>&Editer</translation>
+ </message>
+ <message>
+ <source>MEN_APP_EDIT_UNDO</source>
+ <translation>&Défaire</translation>
+ </message>
+ <message>
+ <source>MEN_APP_EDIT_REDO</source>
+ <translation>&Refaire</translation>
+ </message>
+ <message>
+ <source>PRP_APP_EDIT_REDO</source>
+ <translation>Refaire la dernière opération</translation>
+ </message>
+ <message>
+ <source>PRP_APP_EDIT_UNDO</source>
+ <translation>Défaire la dernière opération</translation>
+ </message>
+ <message>
+ <source>TOT_APP_EDIT_REDO</source>
+ <translation>Refaire</translation>
+ </message>
+ <message>
+ <source>TOT_APP_EDIT_UNDO</source>
+ <translation>Défaire</translation>
+ </message>
+ <message>
+ <source>INF_APP_REDOACTIONS</source>
+ <translation> Refait %1 action(s) </translation>
+ </message>
+ <message>
+ <source>INF_APP_UNDOACTIONS</source>
+ <translation> Défait %1 action(s) </translation>
+ </message>
+ <message>
+ <source>ABOUT_INFO</source>
+ <translation>SUIT Caf application</translation>
+ </message>
+</context>
+</TS>
*/
QAction* CAM_Module::createAction( const int id, const QString& text, const QIcon& icon,
const QString& menu, const QString& tip, const int key,
- QObject* parent, const bool toggle, QObject* reciever, const char* member )
+ QObject* parent, const bool toggle, QObject* reciever,
+ const char* member, const QString& shortcutAction )
{
- QtxAction* a = new QtxAction( text, icon, menu, key, parent, toggle );
+ QtxAction* a = new QtxAction( text, icon, menu, key, parent, toggle, shortcutAction );
a->setStatusTip( tip );
if ( reciever && member )
bool unregisterAction( QAction* );
QAction* createAction( const int, const QString&, const QIcon&, const QString&,
const QString&, const int, QObject* = 0,
- const bool = false, QObject* = 0, const char* = 0 );
+ const bool = false, QObject* = 0, const char* = 0, const QString& = QString() );
private:
CAM_Application* myApp; //!< parent application object
CAM_DataModel_moc.cxx
nodist_libCAM_la_SOURCES = $(MOC_FILES)
-nodist_salomeres_DATA = CAM_msg_en.qm
+nodist_salomeres_DATA = CAM_msg_en.qm CAM_msg_fr.qm
libCAM_la_CPPFLAGS = $(QT_INCLUDES) -I$(srcdir)/../SUIT -I$(srcdir)/../STD -I$(srcdir)/../Qtx
libCAM_la_LDFLAGS = $(QT_MT_LIBS)
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>ERROR_TLT</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>ERROR_ACTIVATE_MODULE_MSG</source>
+ <translation>Impossible d'activer le module %1</translation>
+ </message>
+ <message>
+ <source>MODULE_ROOT_OBJECT_TOOLTIP</source>
+ <translation>%1 objet-racine du module</translation>
+ </message>
+</context>
+</TS>
nodist_salomeres_DATA = \
GLViewer_images.qm \
- GLViewer_msg_en.qm
+ GLViewer_msg_en.qm \
+ GLViewer_msg_fr.qm
libGLViewer_la_CPPFLAGS = $(QT_INCLUDES) $(CAS_CPPFLAGS) -I$(srcdir)/../SUIT -I$(srcdir)/../Qtx
libGLViewer_la_LDFLAGS = $(QT_MT_LIBS) $(CAS_KERNEL) $(OGL_LIBS)
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>DSC_FITSELECT</source>
+ <translation>Montrer la zone choisie dans la vue</translation>
+ </message>
+ <message>
+ <source>ERROR</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>MNU_DUMP_VIEW</source>
+ <translation>Clicher</translation>
+ </message>
+ <message>
+ <source>MNU_PAN_VIEW</source>
+ <translation>Redimensionnement</translation>
+ </message>
+ <message>
+ <source>DSC_GLOBALPAN_VIEW</source>
+ <translation>Sélection d'un nouveau centre de vue</translation>
+ </message>
+ <message>
+ <source>MNU_ZOOM_VIEW</source>
+ <translation>Zoomer</translation>
+ </message>
+ <message>
+ <source>DSC_PAN_VIEW</source>
+ <translation>Redimensionner la vue</translation>
+ </message>
+ <message>
+ <source>DSC_FITALL</source>
+ <translation>Montrer tous les objets dans la vue</translation>
+ </message>
+ <message>
+ <source>MNU_FITALL</source>
+ <translation>Montrer Tous</translation>
+ </message>
+ <message>
+ <source>MNU_GLOBALPAN_VIEW</source>
+ <translation>Redimensionnement Global</translation>
+ </message>
+ <message>
+ <source>INF_APP_DUMP_VIEW</source>
+ <translation>Clicher la vue</translation>
+ </message>
+ <message>
+ <source>GL_IMAGE_FILES</source>
+ <translation>Fichiers Images (*.bmp *.png)</translation>
+ </message>
+ <message>
+ <source>MNU_RESET_VIEW</source>
+ <translation>Restaurer</translation>
+ </message>
+ <message>
+ <source>DSC_FITRECT</source>
+ <translation>Montrer la zone dans la vue</translation>
+ </message>
+ <message>
+ <source>MNU_FITRECT</source>
+ <translation>Montrer la zone</translation>
+ </message>
+ <message>
+ <source>CHANGE_BGCOLOR</source>
+ <translation>Changee la couleur d'arrier-plan...</translation>
+ </message>
+ <message>
+ <source>DSC_DUMP_VIEW</source>
+ <translation>Sauvegarder la vue en cours au fichier image</translation>
+ </message>
+ <message>
+ <source>MNU_FITSELECT</source>
+ <translation>Montrer la Sélection</translation>
+ </message>
+ <message>
+ <source>DSC_ZOOM_VIEW</source>
+ <translation>Zoomer la vue</translation>
+ </message>
+ <message>
+ <source>DSC_RESET_VIEW</source>
+ <translation>Restaurer le Point de Vue</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_CANT_SAVE_FILE</source>
+ <translation>Impossible de sauvegarder le fichier</translation>
+ </message>
+ <message>
+ <source>LBL_TOOLBAR_LABEL</source>
+ <translation>Opérations de Visualisation</translation>
+ </message>
+</context>
+<context>
+ <name>GLViewer_ViewFrame</name>
+ <message>
+ <source>DUMP_VIEW_SAVE_FILE_DLG_CAPTION</source>
+ <translation>Sauvegarder la Vue Clichée au Fichier</translation>
+ </message>
+ <message>
+ <source>DUMP_VIEW_ERROR_DLG_TEXT</source>
+ <translation>Impossible de Sauvegarder la Vue Clichée au Fichier</translation>
+ </message>
+ <message>
+ <source>DUMP_VIEW_ERROR_DLG_CAPTION</source>
+ <translation>Erreur</translation>
+ </message>
+</context>
+<context>
+ <name>GLViewer_ViewManager</name>
+ <message>
+ <source>GL_VIEW_TITLE</source>
+ <translation>GL Scène:%M - visualisateur:%V</translation>
+ </message>
+</context>
+</TS>
--- /dev/null
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>images/en.png</file>
+ <file>images/fr.png</file>
+</qresource>
+</RCC>
+
#include <SUIT_Study.h>
#include <SUIT_FileDlg.h>
#include <SUIT_ResourceMgr.h>
+#include <SUIT_ShortcutMgr.h>
#include <SUIT_Tools.h>
#include <SUIT_Accel.h>
#include <SUIT_MessageBox.h>
: CAM_Application( false ),
myPrefs( 0 )
{
+ Q_INIT_RESOURCE( LightApp );
+
STD_TabDesktop* desk = new STD_TabDesktop();
setDesktop( desk );
if ( desktop() )
resourceMgr()->setValue( "desktop", "geometry", desktop()->storeGeometry() );
resourceMgr()->save();
+
+ // Update shortcuts
+ shortcutMgr()->updateShortcuts();
}
delete prefDlg;
pref->setItemIcon( salomeCat, Qtx::scaleIcon( resourceMgr()->loadPixmap( "LightApp", tr( "APP_DEFAULT_ICO" ), false ), 20 ) );
int genTab = pref->addPreference( tr( "PREF_TAB_GENERAL" ), salomeCat );
+
+ int langGroup = pref->addPreference( tr( "PREF_GROUP_LANGUAGE" ), genTab );
+ pref->setItemProperty( "columns", 2, langGroup );
+ int curLang = pref->addPreference( tr( "PREF_CURRENT_LANGUAGE" ), langGroup,
+ LightApp_Preferences::Selector, "language", "language" );
+ QStringList aLangs = SUIT_Session::session()->resourceMgr()->stringValue( "language", "languages", "en" ).split( "," );
+ QList<QVariant> aIcons;
+ foreach ( QString aLang, aLangs ) {
+ aIcons << QPixmap( QString( ":/images/%1" ).arg( aLang ) );
+ }
+ pref->setItemProperty( "strings", aLangs, curLang );
+ pref->setItemProperty( "icons", aIcons, curLang );
+
int studyGroup = pref->addPreference( tr( "PREF_GROUP_STUDY" ), genTab );
pref->setItemProperty( "columns", 2, studyGroup );
pref->addPreference( tr( "PREF_RESIZE_ON_EXPAND_ITEM" ), objSetGroup, LightApp_Preferences::Bool,
"ObjectBrowser", "resize_on_expand_item" );
+ // Shortcuts preferences
+ int shortcutTab = pref->addPreference( tr( "PREF_TAB_SHORTCUTS" ), salomeCat );
+ int shortcutGroup = pref->addPreference( tr( "PREF_GROUP_SHORTCUTS" ), shortcutTab );
+ pref->addPreference( tr( "" ), shortcutGroup,
+ LightApp_Preferences::ShortcutTree, "shortcuts" );
+
// MRU preferences
int mruGroup = pref->addPreference( tr( "PREF_GROUP_MRU" ), genTab, LightApp_Preferences::Auto, "MRU", "show_mru" );
pref->setItemProperty( "columns", 4, mruGroup );
mru->setVisible( resMgr->booleanValue( "MRU", "show_mru", false ) ); // do not show MRU menu item by default
}
}
+ if ( sec == "language" && param == "language" )
+ {
+ SUIT_MessageBox::information( desktop(), tr( "WRN_WARNING" ), tr( "LANG_CHANGED" ) );
+ }
}
/*!
#include <SUIT_Operation.h>
#include <SUIT_ViewManager.h>
#include <SUIT_ResourceMgr.h>
+#include <SUIT_ShortcutMgr.h>
#include <SUIT_Desktop.h>
#include <SUIT_TreeModel.h>
if ( mySwitchOp == 0 )
mySwitchOp = new LightApp_SwitchOp( this );
+ // Enable Display and Erase actions
+ if ( action(myDisplay) )
+ action(myDisplay)->setEnabled(true);
+ if ( action(myErase) )
+ action(myErase)->setEnabled(true);
+
+ application()->shortcutMgr()->setSectionEnabled( moduleName() );
+
/* BUG 0020498 : The Entry column is always shown at module activation
The registration of column is moved into LightApp_Application
anIt.value()->abort();
}
+ // Disable Display and Erase action
+ if ( action(myDisplay) )
+ action(myDisplay)->setEnabled(false);
+ if ( action(myErase) )
+ action(myErase)->setEnabled(false);
+
+ application()->shortcutMgr()->setSectionEnabled( moduleName(), false );
+
/* BUG 0020498 : The Entry column is always shown at module activation
QString EntryCol = QObject::tr( "ENTRY_COLUMN" );
LightApp_DataModel* m = dynamic_cast<LightApp_DataModel*>( dataModel() );
QAction
*disp = createAction( -1, tr( "TOP_SHOW" ), p, tr( "MEN_SHOW" ), tr( "STB_SHOW" ),
- 0, d, false, this, SLOT( onShowHide() ) ),
+ 0, d, false, this, SLOT( onShowHide() ), QString("General:Show object(s)") ),
*erase = createAction( -1, tr( "TOP_HIDE" ), p, tr( "MEN_HIDE" ), tr( "STB_HIDE" ),
- 0, d, false, this, SLOT( onShowHide() ) ),
+ 0, d, false, this, SLOT( onShowHide() ) , QString("General:Hide object(s)") ),
*dispOnly = createAction( -1, tr( "TOP_DISPLAY_ONLY" ), p, tr( "MEN_DISPLAY_ONLY" ), tr( "STB_DISPLAY_ONLY" ),
0, d, false, this, SLOT( onShowHide() ) ),
*eraseAll = createAction( -1, tr( "TOP_ERASE_ALL" ), p, tr( "MEN_ERASE_ALL" ), tr( "STB_ERASE_ALL" ),
#
include $(top_srcdir)/adm_local/unix/make_common_starter.am
+EXTRA_DIST += images
+
+QRC_FILES = qrc_LightApp.cxx
+
lib_LTLIBRARIES = libLightApp.la
salomeinclude_HEADERS = \
if ENABLE_PLOT2DVIEWER
MOC_FILES += LightApp_Plot2dSelector_moc.cxx
endif
-nodist_libLightApp_la_SOURCES = $(MOC_FILES)
-
+nodist_libLightApp_la_SOURCES = $(MOC_FILES) $(QRC_FILES)
dist_salomeres_DATA = \
resources/icon_about.png \
resources/icon_applogo.png \
nodist_salomeres_DATA = \
LightApp_images.qm \
- LightApp_msg_en.qm
+ LightApp_msg_en.qm \
+ LightApp_msg_fr.qm
libLightApp_la_CPPFLAGS = $(PYTHON_INCLUDES) $(QT_INCLUDES) $(CAS_CPPFLAGS) \
$(HDF5_INCLUDES) @KERNEL_CXXFLAGS@ -I$(srcdir)/../SUIT -I$(srcdir)/../STD \
</section>
<section name="language">
<!-- Language settings (resource manager)-->
+ <parameter name="languages" value="en,fr"/>
<parameter name="language" value="en"/>
<parameter name="translators" value="%P_msg_%L.qm|%P_icons.qm|%P_images.qm"/>
</section>
</section>
<section name="resources">
<!-- Resource directories (resource manager)-->
+ <parameter name="Qtx" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="Style" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
<parameter name="SUIT" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
<parameter name="STD" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
<parameter name="Plot2d" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
<parameter name="User's Guide" value="${KERNEL_ROOT_DIR}/share/doc/salome/gui/KERNEL/index.html"/>
<parameter name="Developer's Guide" value="${KERNEL_ROOT_DIR}/share/doc/salome/tui/KERNEL/index.html"/>
</section>
+ <!--Salome shortcut settings-->
+ <section name="shortcuts_settings">
+ <parameter name="general_sections" value="General;Viewers"/>
+ </section>
+ <section name="shortcuts:General">
+ <parameter name="Show object(s)" value="Ctrl+S"/>
+ <parameter name="Hide object(s)" value="Ctrl+H" />
+ </section>
+ <section name="shortcuts:Viewers">
+ <parameter name="Front view" value="Ctrl+Alt+F"/>
+ <parameter name="Back view" value="Ctrl+Alt+B"/>
+ <parameter name="Top view" value="Ctrl+Alt+T"/>
+ <parameter name="Bottom view" value="Ctrl+Alt+B"/>
+ <parameter name="Left view" value="Ctrl+Alt+L"/>
+ <parameter name="Right view" value="Ctrl+Alt+R"/>
+ <parameter name="Reset view" value="Ctrl+Alt+E"/>
+ </section>
+ <section name="shortcuts:Geometry">
+ <parameter name="Increase number of isolines" value="Meta+I"/>
+ <parameter name="Decrease number of isolines" value="Ctrl+Alt+G"/>
+ <parameter name="Increase transparency" value="Ctrl+Alt+T"/>
+ <parameter name="Decrease transparency" value="Alt+T"/>
+ </section>
</document>
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
</context>
<context>
<name>LightApp_Application</name>
+ <message>
+ <source>LANG_CHANGED</source>
+ <translation>Application language has been changed.
+The changes will be applied on the next application session.</translation>
+ </message>
<message>
<source>MEN_DESK_THEME</source>
<translation>Theme</translation>
<source>PREF_HOR_AXIS_SCALE</source>
<translation>Horizontal axis scale:</translation>
</message>
+ <message>
+ <source>PREF_GROUP_LANGUAGE</source>
+ <translation>Language</translation>
+ </message>
+ <message>
+ <source>PREF_CURRENT_LANGUAGE</source>
+ <translation>Current language</translation>
+ </message>
<message>
<source>PREF_GROUP_STUDY</source>
<translation>Study properties</translation>
</message>
<message>
<source>PREFERENCES_NOT_SUPPORTED</source>
- <translation>Preferences for module "%1" not supported</translation>
+ <translation>Preferences for module "%1" not supported</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_SHORTCUTS</source>
+ <translation type="unfinished">Shortcuts</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_SHORTCUTS</source>
+ <translation type="unfinished">Shortcuts settings</translation>
</message>
+
</context>
<context>
<name>LightApp_Module</name>
<name>LightApp_ModuleDlg</name>
<message>
<source>DESCRIPTION</source>
- <translation>You're activating module
+ <translation>You're activating module
<b>%1</b>.<br>Please, select required action by pressing the corresponding button below.</translation>
</message>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>EXTERNAL_BROWSER_CANNOT_SHOW_PAGE</source>
+ <translation>Le navigateur externe "%1" ne peut pas trouver la page de référence "%2". Voulez-vous changer sa location dans les préférences?</translation>
+ </message>
+ <message>
+ <source>ABOUT_COPYRIGHT</source>
+ <translation>Copyright (C) 2007-2010 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</translation>
+ </message>
+ <message>
+ <source>ABOUT_CAPTION</source>
+ <translation>A propos de %1</translation>
+ </message>
+ <message>
+ <source>APP_NAME</source>
+ <translation>SALOME</translation>
+ </message>
+ <message>
+ <source>ABOUT_LICENSE</source>
+ <translation>GNU LGPL</translation>
+ </message>
+ <message>
+ <source>ABOUT_VERSION</source>
+ <translation>Version %1</translation>
+ </message>
+ <message>
+ <source>ENTRY_COLUMN</source>
+ <translation>Entrée</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_Application</name>
+ <message>
+ <source>LANG_CHANGED</source>
+ <translation>La langue de l'application a été modifié.
+Les modifications seront appliquées à la suivante session de l'application.</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_THEME</source>
+ <translation>T&hème</translation>
+ </message>
+ <message>
+ <source>TOT_THEME</source>
+ <translation>Thème</translation>
+ </message>
+ <message>
+ <source>PRP_THEME</source>
+ <translation>Changer les propriétés du style </translation>
+ </message>
+ <message>
+ <source>INF_TOOLBAR_MODULES</source>
+ <translation>Modules</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_LEGEND</source>
+ <translation>Montrer la légende</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_RENAME</source>
+ <translation>&Renommer</translation>
+ </message>
+ <message>
+ <source>PREF_MULTI_FILE</source>
+ <translation>Sauvegarder multi-fichier</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PREFERENCES</source>
+ <translation>&Préférences...</translation>
+ </message>
+ <message>
+ <source>PREF_TRIHEDRON_SHOW</source>
+ <translation>Montrer le trièdre</translation>
+ </message>
+ <message>
+ <source>PREF_TRIHEDRON_SIZE</source>
+ <translation>Taille du Trièdre</translation>
+ </message>
+ <message>
+ <source>OBJECT_BROWSER</source>
+ <translation>Navigateur d'Objets</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_PREFERENCES</source>
+ <translation>Permettre de changer les préférences</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DIRECTORIES</source>
+ <translation>Liste rapide de répertoires</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_VTKVIEWER</source>
+ <translation>Visualisateur VTK 3D</translation>
+ </message>
+ <message>
+ <source>PREF_STORE_POS</source>
+ <translation>Retenir les positions des fenêtres</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SAVE</source>
+ <translation>Intervale d'enregistrement automatique (min)</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SAVE_DISABLED</source>
+ <translation>Désactivé</translation>
+ </message>
+ <message>
+ <source>PREF_PROJECTION_MODE</source>
+ <translation>Mode de Projection:</translation>
+ </message>
+ <message>
+ <source>PREF_ORTHOGRAPHIC</source>
+ <translation>Orthogonal</translation>
+ </message>
+ <message>
+ <source>PREF_PERSPECTIVE</source>
+ <translation>Perspective</translation>
+ </message>
+ <message>
+ <source>PREF_NAVIGATION</source>
+ <translation>Navigation:</translation>
+ </message>
+ <message>
+ <source>PREF_STANDARD_STYLE</source>
+ <translation>Contrôles types Salomé</translation>
+ </message>
+ <message>
+ <source>PREF_KEYFREE_STYLE</source>
+ <translation>Style sans clavier</translation>
+ </message>
+ <message>
+ <source>PREF_INCREMENTAL_SPEED</source>
+ <translation>Incrément de vitesse:</translation>
+ </message>
+ <message>
+ <source>PREF_INCREMENTAL_SPEED_MODE</source>
+ <translation>Mode de Modification:</translation>
+ </message>
+ <message>
+ <source>PREF_ARITHMETIC</source>
+ <translation>Progression Arithmétique </translation>
+ </message>
+ <message>
+ <source>PREF_GEOMETRICAL</source>
+ <translation>Progression Géométrique</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_SPACEMOUSE</source>
+ <translation>Souris Spaciale</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_STATIC_TRIHEDRON</source>
+ <translation>Montrer le trièdre statique</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_1</source>
+ <translation>Rediure l'incrément de vitesse</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_2</source>
+ <translation>Rediure l'incrément de vitesse</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_3</source>
+ <translation>Changement Dominant / Combiné</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_1</source>
+ <translation>Bouton 1</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_2</source>
+ <translation>Bouton 2</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_3</source>
+ <translation>Bouton 3</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_4</source>
+ <translation>Bouton 4</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_5</source>
+ <translation>Bouton 5</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_6</source>
+ <translation>Bouton 6</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_7</source>
+ <translation>Bouton 7</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_8</source>
+ <translation>Bouton 8</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_*</source>
+ <translation>Bouton *</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_10</source>
+ <translation>Bouton 10</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_11</source>
+ <translation>Bouton 11</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_RECORDING</source>
+ <translation>Renregistrement AVI</translation>
+ </message>
+ <message>
+ <source>PREF_ALL_DISLPAYED_FRAMES</source>
+ <translation>Enregistrer tous les cadres visualisés</translation>
+ </message>
+ <message>
+ <source>PREF_FPS</source>
+ <translation>FPS</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_TTL</source>
+ <translation>Paramètres</translation>
+ </message>
+ <message>
+ <source>PREF_PROGRESSIVE</source>
+ <translation>Progressive</translation>
+ </message>
+ <message>
+ <source>PREF_QUALITY</source>
+ <translation>Qualité</translation>
+ </message>
+ <message>
+ <source>PREF_RECORDING_MODE</source>
+ <translation>Mode</translation>
+ </message>
+ <message>
+ <source>PREF_SKIPPED_FRAMES</source>
+ <translation>Enregistrer aux FPS donnés</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_GROUP_NAMES</source>
+ <translation>Noms des groupes</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_NAMES_TEXT_COLOR</source>
+ <translation>Couleur du Texte</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_NAMES_TRANSPARENCY</source>
+ <translation>Transparence</translation>
+ </message>
+ <message>
+ <source>PREF_BOTTOM</source>
+ <translation>Dessous</translation>
+ </message>
+ <message>
+ <source>PREF_CURVE_TYPE</source>
+ <translation>Type de Courbe:</translation>
+ </message>
+ <message>
+ <source>PREF_ISOS_U</source>
+ <translation>Numéro des isolignes au long de U</translation>
+ </message>
+ <message>
+ <source>PREF_ISOS_V</source>
+ <translation>Numéro des isolignes au long de V</translation>
+ </message>
+ <message>
+ <source>PREF_POINTS</source>
+ <translation>Points</translation>
+ </message>
+ <message>
+ <source>PRP_MODULE</source>
+ <translation>Changer au module "%1"</translation>
+ </message>
+ <message>
+ <source>PREF_ASCII_FILE</source>
+ <translation>Enregistrement ASCII</translation>
+ </message>
+ <message>
+ <source>PREFERENCES_NOT_LOADED</source>
+ <translation>Les préférences du module "<b>%N</b>" seront accessibles aussitôt que le module soit choisi</translation>
+ </message>
+ <message>
+ <source>PREF_LINEAR</source>
+ <translation>Linéaire</translation>
+ </message>
+ <message>
+ <source>DATA_MODELS</source>
+ <translation>Modèles de Données</translation>
+ </message>
+ <message>
+ <source>PRP_RENAME</source>
+ <translation>Renommer la fenêtre active</translation>
+ </message>
+ <message>
+ <source>TOT_RENAME</source>
+ <translation>Renommer</translation>
+ </message>
+ <message>
+ <source>LOG_WINDOW</source>
+ <translation>Fenêtre de Messages</translation>
+ </message>
+ <message>
+ <source>PREF_SPLINE</source>
+ <translation>Spline</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SEARCH_TOOL</source>
+ <translation>Outil de recherche</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_HIDE_SEARCH_TOOL</source>
+ <translation>Activer auto-cacher</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SETTINGS</source>
+ <translation>Paramètres du Navigateur d'Objets</translation>
+ </message>
+ <message>
+ <source>PRP_APP_MODULE</source>
+ <translation>Tourner au point neutre de la plate-forme SALOME</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_CONSOLE</source>
+ <translation>Propriétés du console Python</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_STYLE</source>
+ <translation>Style Salomé</translation>
+ </message>
+ <message>
+ <source>PREF_USE_SALOME_STYLE</source>
+ <translation>Utiliser le style Salome </translation>
+ </message>
+ <message>
+ <source>PREF_MARKER_SIZE</source>
+ <translation>Taille de repère:</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_VIEWERS</source>
+ <translation>Visualisateurs</translation>
+ </message>
+ <message>
+ <source>PREF_APP</source>
+ <translation>Application</translation>
+ </message>
+ <message>
+ <source>PREF_TOP</source>
+ <translation>Dessus</translation>
+ </message>
+ <message>
+ <source>MEN_REFRESH</source>
+ <translation>Rafraîchir</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SIZE_FIRST</source>
+ <translation>Taille automatique pour la première colonne</translation>
+ </message>
+ <message>
+ <source>PREF_RESIZE_ON_EXPAND_ITEM</source>
+ <translation>Redimensionner les colonnes de l'objet agrandi</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_SUPERV</source>
+ <translation>Superviseur des Graphes</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_OBJBROWSER</source>
+ <translation>Navigateur d'objets</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_GENERAL</source>
+ <translation>Général</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_0</source>
+ <translation>Vue &GL </translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_1</source>
+ <translation>Vue &Plot2d </translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_2</source>
+ <translation>Vue &OCC</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_3</source>
+ <translation>Vue VT&K</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_4</source>
+ <translation>Vue &QxGraph</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_5</source>
+ <translation>Vue Qx&Scene</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_NAME</source>
+ <translation>Objet</translation>
+ </message>
+ <message>
+ <source>PREF_LEGEND_POSITION</source>
+ <translation>Position de la Légende:</translation>
+ </message>
+ <message>
+ <source>PREF_RELATIVE_SIZE</source>
+ <translation>Taille Relative</translation>
+ </message>
+ <message>
+ <source>PREF_VIEWER_BACKGROUND</source>
+ <translation>Couleur de l'arrière-plan</translation>
+ </message>
+ <message>
+ <source>PREF_FONT</source>
+ <translation>Font</translation>
+ </message>
+ <message>
+ <source>PREF_LEFT</source>
+ <translation>Gauche</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_DIRECTORIES</source>
+ <translation>Répertoires</translation>
+ </message>
+ <message>
+ <source>ACTIVATING_MODULE</source>
+ <translation>Essayer d'activer le module "%1"</translation>
+ </message>
+ <message>
+ <source>PREF_VERT_AXIS_SCALE</source>
+ <translation>Echelle de l'axe verticale:</translation>
+ </message>
+ <message>
+ <source>PREF_HOR_AXIS_SCALE</source>
+ <translation>Echelle de l'axe horisontale:</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LANGUAGE</source>
+ <translation>Langue</translation>
+ </message>
+ <message>
+ <source>PREF_CURRENT_LANGUAGE</source>
+ <translation>Langue actuel</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_STUDY</source>
+ <translation>Propiétés d'une Etude</translation>
+ </message>
+ <message>
+ <source>PREF_CATEGORY_SALOME</source>
+ <translation>SALOME</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_OCCVIEWER</source>
+ <translation>Visualisateur OCC 3D</translation>
+ </message>
+ <message>
+ <source>PREF_LOGARITHMIC</source>
+ <translation>Logarithmique</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MODULE_HELP</source>
+ <translation>Module &Aide</translation>
+ </message>
+ <message>
+ <source>PREF_SUPERV_TITLE_COLOR</source>
+ <translation>Couleur titre</translation>
+ </message>
+ <message>
+ <source>PREF_PARAM</source>
+ <translation>Paramètres</translation>
+ </message>
+ <message>
+ <source>PREF_RIGHT</source>
+ <translation>Droit</translation>
+ </message>
+ <message>
+ <source>PREF_LINES</source>
+ <translation>Lignes</translation>
+ </message>
+ <message>
+ <source>INF_CANCELLED</source>
+ <translation>L'activation du module est annulée</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_EXT_BROWSER</source>
+ <translation>Navigateur Externe</translation>
+ </message>
+ <message>
+ <source>PREF_SUPERV_CTRL_COLOR</source>
+ <translation>Couleur alternatif</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DEF_COLUMNS</source>
+ <translation>Colonnnes de Défaut </translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PLOT2DVIEWER</source>
+ <translation>Visualisateur Plot2d</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MRU</source>
+ <translation>&Récemment Utilisés</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_PREFERENCES</source>
+ <translation>Préférences</translation>
+ </message>
+ <message>
+ <source>DEFINE_EXTERNAL_BROWSER</source>
+ <translation>Le navigateur externe n'est pas trouvé. Voulez-vous le définir dans les préférences?</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SIZE</source>
+ <translation>Taille automatique pour les autres colonnes</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_MRU</source>
+ <translation>Récemment utilisés</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_NEW</source>
+ <translation>&Nouveau</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_OPEN</source>
+ <translation>&Ouvrir...</translation>
+ </message>
+ <message>
+ <source>PYTHON_CONSOLE</source>
+ <translation>Console Python </translation>
+ </message>
+ <message>
+ <source>PREF_USE_ADVANCED_SELECTION_ALGORITHM</source>
+ <translation>Utiliser l'Algorithme Avancé de Sélection </translation>
+ </message>
+ <message>
+ <source>TOT_CLOSE</source>
+ <translation>Fermer</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CLOSE</source>
+ <translation>&Fermer</translation>
+ </message>
+ <message>
+ <source>PRP_CLOSE</source>
+ <translation>Fermer la fenêtre active</translation>
+ </message>
+ <message>
+ <source>TOT_CLOSE_ALL</source>
+ <translation>Fermer tous</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CLOSE_ALL</source>
+ <translation>Fermer &Tous</translation>
+ </message>
+ <message>
+ <source>PRP_CLOSE_ALL</source>
+ <translation>Fermer toutes les fenêtres</translation>
+ </message>
+ <message>
+ <source>TOT_GROUP_ALL</source>
+ <translation>Grouper Tous</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_GROUP_ALL</source>
+ <translation>&Grouper Tous</translation>
+ </message>
+ <message>
+ <source>PRP_GROUP_ALL</source>
+ <translation>Grouper toutes les fenêtres</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_NOT_EXISTS</source>
+ <translation>Impossible d'ouvrir %1.
+Le fichier n'existe pas</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_MRU</source>
+ <translation>Montrer les objets MRU</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_VISIBLE_COUNT</source>
+ <translation>Numéro d'objets MRU</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_INSERT_MODE</source>
+ <translation>Mode d'Insértion </translation>
+ </message>
+ <message>
+ <source>PREF_MRU_MOVE_FIRST</source>
+ <translation>Placer au commencement</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_MOVE_LAST</source>
+ <translation>Placer à la fin</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_ADD_FIRST</source>
+ <translation>Ajouter au commencement</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_ADD_LAST</source>
+ <translation>Ajouter à la fin</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_TYPE</source>
+ <translation>Référence type</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_AUTO</source>
+ <translation>Auto</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_SHORT</source>
+ <translation>Court</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_FULL</source>
+ <translation>Complet</translation>
+ </message>
+ <message>
+ <source>PREFERENCES_NOT_SUPPORTED</source>
+ <translation>Les préférences du module "%1" ne sont pas supportées</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_SHORTCUTS</source>
+ <translation type="unfinished">Shortcuts</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_SHORTCUTS</source>
+ <translation type="unfinished">Shortcuts settings</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_Module</name>
+ <message>
+ <source>MEN_HIDE</source>
+ <translation>Cacher</translation>
+ </message>
+ <message>
+ <source>TOP_DISPLAY_ONLY</source>
+ <translation>Montrer seulement</translation>
+ </message>
+ <message>
+ <source>STB_DISPLAY_ONLY</source>
+ <translation>Montrer seulement</translation>
+ </message>
+ <message>
+ <source>MEN_DISPLAY_ONLY</source>
+ <translation>Montrer Seulement</translation>
+ </message>
+ <message>
+ <source>TOP_HIDE</source>
+ <translation>Cacher</translation>
+ </message>
+ <message>
+ <source>MEN_ERASE_ALL</source>
+ <translation>Cacher tous</translation>
+ </message>
+ <message>
+ <source>STB_HIDE</source>
+ <translation>Cacher</translation>
+ </message>
+ <message>
+ <source>STB_SHOW</source>
+ <translation>Montrer</translation>
+ </message>
+ <message>
+ <source>TOP_SHOW</source>
+ <translation>Montrer</translation>
+ </message>
+ <message>
+ <source>MEN_SHOW</source>
+ <translation>Montrer</translation>
+ </message>
+ <message>
+ <source>STB_ERASE_ALL</source>
+ <translation>Cacher tous</translation>
+ </message>
+ <message>
+ <source>TOP_ERASE_ALL</source>
+ <translation>Cacher Tous</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_ModuleDlg</name>
+ <message>
+ <source>DESCRIPTION</source>
+ <translation>Vous activez le module
+ <b>%1</b>.<br>Choisissez l'action nécessaire avec la touche correspondante ci-dessous</translation>
+ </message>
+ <message>
+ <source>CANCEL</source>
+ <translation>&Annuler</translation>
+ </message>
+ <message>
+ <source>CAPTION</source>
+ <translation>Activer le module</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_NameDlg</name>
+ <message>
+ <source>TLT_RENAME</source>
+ <translation>Renommer</translation>
+ </message>
+ <message>
+ <source>NAME_LBL</source>
+ <translation>Nom: </translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_PreferencesDlg</name>
+ <message>
+ <source>IMPORT_PREFERENCES</source>
+ <translation>Importer les préférences</translation>
+ </message>
+ <message>
+ <source>CAPTION</source>
+ <translation>Préférences</translation>
+ </message>
+ <message>
+ <source>WARNING</source>
+ <translation>Avertissement</translation>
+ </message>
+ <message>
+ <source>IMPORT_BTN_TEXT</source>
+ <translation>Importer</translation>
+ </message>
+ <message>
+ <source>DEFAULT_QUESTION</source>
+ <translation>Voulez-vous restaurer les préférences de défaut?</translation>
+ </message>
+ <message>
+ <source>DEFAULT_BTN_TEXT</source>
+ <translation>Defauts</translation>
+ </message>
+</context>
+</TS>
nodist_libLogWindow_la_SOURCES = $(MOC_FILES)
nodist_salomeres_DATA = \
- LogWindow_msg_en.qm
+ LogWindow_msg_en.qm \
+ LogWindow_msg_fr.qm
libLogWindow_la_CPPFLAGS = $(QT_INCLUDES) -I$(srcdir)/../SUIT -I$(srcdir)/../Qtx
libLogWindow_la_LDFLAGS = $(QT_MT_LIBS)
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1">
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
--->
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>LogWindow</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>LogWindow</name>
+ <message>
+ <location filename="../LogWindow.cxx" line="293"/>
+ <source>EDIT_COPY_CMD</source>
+ <translation>&Copier</translation>
+ </message>
+ <message>
+ <location filename="../LogWindow.cxx" line="298"/>
+ <source>EDIT_CLEAR_CMD</source>
+ <translation>&Effacer</translation>
+ </message>
+ <message>
+ <location filename="../LogWindow.cxx" line="303"/>
+ <source>EDIT_SELECTALL_CMD</source>
+ <translation>Choisir &Tous</translation>
+ </message>
+ <message>
+ <location filename="../LogWindow.cxx" line="308"/>
+ <source>EDIT_SAVETOFILE_CMD</source>
+ <translation>&Sauvegarder le journal au fichier...</translation>
+ </message>
+ <message>
+ <location filename="../LogWindow.cxx" line="368"/>
+ <source>ERR_ERROR</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <location filename="../LogWindow.cxx" line="368"/>
+ <source>ERR_CANT_SAVE_FILE</source>
+ <translation>Impossible de sauvegarder le fichier</translation>
+ </message>
+ <message>
+ <location filename="../LogWindow.cxx" line="368"/>
+ <source>BUT_OK</source>
+ <translation>&OK</translation>
+ </message>
+</context>
+</TS>
nodist_salomeres_DATA = \
OCCViewer_images.qm \
- OCCViewer_msg_en.qm
+ OCCViewer_msg_en.qm \
+ OCCViewer_msg_fr.qm
libOCCViewer_la_CPPFLAGS = $(QT_INCLUDES) $(OGL_INCLUDES) $(CAS_CPPFLAGS) \
-I$(srcdir)/../SUIT -I$(srcdir)/../Qtx -I$(srcdir)/../OpenGLUtils
// Projections
aAction = new QtxAction(tr("MNU_FRONT_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_FRONT" ) ),
- tr( "MNU_FRONT_VIEW" ), 0, this);
+ tr( "MNU_FRONT_VIEW" ), 0, this, false, "Viewers:Front view");
aAction->setStatusTip(tr("DSC_FRONT_VIEW"));
connect(aAction, SIGNAL(triggered()), this, SLOT(onFrontView()));
+ this->addAction(aAction);
toolMgr()->registerAction( aAction, FrontId );
aAction = new QtxAction(tr("MNU_BACK_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_BACK" ) ),
- tr( "MNU_BACK_VIEW" ), 0, this);
+ tr( "MNU_BACK_VIEW" ), 0, this, false, "Viewers:Back view");
aAction->setStatusTip(tr("DSC_BACK_VIEW"));
connect(aAction, SIGNAL(triggered()), this, SLOT(onBackView()));
+ this->addAction(aAction);
toolMgr()->registerAction( aAction, BackId );
aAction = new QtxAction(tr("MNU_TOP_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_TOP" ) ),
- tr( "MNU_TOP_VIEW" ), 0, this);
+ tr( "MNU_TOP_VIEW" ), 0, this, false, "Viewers:Top view");
aAction->setStatusTip(tr("DSC_TOP_VIEW"));
connect(aAction, SIGNAL(triggered()), this, SLOT(onTopView()));
+ this->addAction(aAction);
toolMgr()->registerAction( aAction, TopId );
aAction = new QtxAction(tr("MNU_BOTTOM_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_BOTTOM" ) ),
- tr( "MNU_BOTTOM_VIEW" ), 0, this);
+ tr( "MNU_BOTTOM_VIEW" ), 0, this, false, "Viewers:Bottom view");
aAction->setStatusTip(tr("DSC_BOTTOM_VIEW"));
connect(aAction, SIGNAL(triggered()), this, SLOT(onBottomView()));
+ this->addAction(aAction);
+ this->addAction(aAction);
toolMgr()->registerAction( aAction, BottomId );
-
+
aAction = new QtxAction(tr("MNU_LEFT_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_LEFT" ) ),
- tr( "MNU_LEFT_VIEW" ), 0, this);
+ tr( "MNU_LEFT_VIEW" ), 0, this, false, "Viewers:Left view");
aAction->setStatusTip(tr("DSC_LEFT_VIEW"));
connect(aAction, SIGNAL(triggered()), this, SLOT(onLeftView()));
+ this->addAction(aAction);
toolMgr()->registerAction( aAction, LeftId );
aAction = new QtxAction(tr("MNU_RIGHT_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_RIGHT" ) ),
- tr( "MNU_RIGHT_VIEW" ), 0, this);
+ tr( "MNU_RIGHT_VIEW" ), 0, this, false, "Viewers:Right view");
aAction->setStatusTip(tr("DSC_RIGHT_VIEW"));
connect(aAction, SIGNAL(triggered()), this, SLOT(onRightView()));
+ this->addAction(aAction);
toolMgr()->registerAction( aAction, RightId );
// Reset
aAction = new QtxAction(tr("MNU_RESET_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_RESET" ) ),
- tr( "MNU_RESET_VIEW" ), 0, this);
+ tr( "MNU_RESET_VIEW" ), 0, this, false, "Viewers:Reset view");
aAction->setStatusTip(tr("DSC_RESET_VIEW"));
connect(aAction, SIGNAL(triggered()), this, SLOT(onResetView()));
+ this->addAction(aAction);
toolMgr()->registerAction( aAction, ResetId );
// Clone
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR" sourcelanguage="en_US">
+<context>
+ <name>@default</name>
+ <message>
+ <source>MNU_FRONT_VIEW</source>
+ <translation>Devant</translation>
+ </message>
+ <message>
+ <source>ERROR</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>MNU_DUMP_VIEW</source>
+ <translation>Sauvegarder la scène</translation>
+ </message>
+ <message>
+ <source>DSC_TOP_VIEW</source>
+ <translation>Vue de dessus</translation>
+ </message>
+ <message>
+ <source>MNU_PAN_VIEW</source>
+ <translation>Panoramique</translation>
+ </message>
+ <message>
+ <source>MNU_CLONE_VIEW</source>
+ <translation>Dupliquer la scène</translation>
+ </message>
+ <message>
+ <source>DSC_SHOW_TRIHEDRE</source>
+ <translation>Monter/Cacher les axes de coordonnées dans la scène</translation>
+ </message>
+ <message>
+ <source>MNU_SHOW_TRIHEDRE</source>
+ <translation>Monter/Cacher les axes de coordonnées</translation>
+ </message>
+ <message>
+ <source>MNU_TOP_VIEW</source>
+ <translation>Dessus</translation>
+ </message>
+ <message>
+ <source>DSC_GLOBALPAN_VIEW</source>
+ <translation>Sélection d'un nouveau centre de la vue</translation>
+ </message>
+ <message>
+ <source>DSC_ROTATE_VIEW</source>
+ <translation>Tourner le point de vue autour du centre de la scène</translation>
+ </message>
+ <message>
+ <source>MNU_ZOOM_VIEW</source>
+ <translation>Zoom</translation>
+ </message>
+ <message>
+ <source>DSC_PAN_VIEW</source>
+ <translation>Redimensionner la vue</translation>
+ </message>
+ <message>
+ <source>DSC_LEFT_VIEW</source>
+ <translation>Vue de gauche</translation>
+ </message>
+ <message>
+ <source>DSC_SHOOT_VIEW</source>
+ <translation>Memorizer l'état courant de la scène et l'ajouter dans la liste</translation>
+ </message>
+ <message>
+ <source>DSC_FITALL</source>
+ <translation>Redimentionner la scène pour montrer tous les objets</translation>
+ </message>
+ <message>
+ <source>MNU_FITALL</source>
+ <translation>Montrer tous</translation>
+ </message>
+ <message>
+ <source>MNU_ROTATE_VIEW</source>
+ <translation>Rotation</translation>
+ </message>
+ <message>
+ <source>DSC_FRONT_VIEW</source>
+ <translation>Vue de devant</translation>
+ </message>
+ <message>
+ <source>MNU_ROTATIONPOINTGRAVITY_VIEW</source>
+ <translation>Point de Rotation : le centre de gravité</translation>
+ </message>
+ <message>
+ <source>MNU_GLOBALPAN_VIEW</source>
+ <translation>Panoramique globale</translation>
+ </message>
+ <message>
+ <source>INF_APP_DUMP_VIEW</source>
+ <translation>Clicher la vue</translation>
+ </message>
+ <message>
+ <source>DSC_CLIPPING</source>
+ <translation>Définir le plan de découpe</translation>
+ </message>
+ <message>
+ <source>DSC_CLONE_VIEW</source>
+ <translation>Ouvrir une nouvelle fenêtre de visualisation pour la scène en cours</translation>
+ </message>
+ <message>
+ <source>INF_APP_SHOOT_VIEW</source>
+ <translation>Sauvegarder la scène</translation>
+ </message>
+ <message>
+ <source>MNU_CLIPPING</source>
+ <translation>Plan de coupe</translation>
+ </message>
+ <message>
+ <source>MNU_BACK_VIEW</source>
+ <translation>Arrière</translation>
+ </message>
+ <message>
+ <source>MNU_SHOOT_VIEW</source>
+ <translation>Memorizer la Vue</translation>
+ </message>
+ <message>
+ <source>DSC_CHANGINGROTATIONPOINT_VIEW</source>
+ <translation>Changer le point, autour duquel la scène est tournée</translation>
+ </message>
+ <message>
+ <source>MNU_BOTTOM_VIEW</source>
+ <translation>Dessous</translation>
+ </message>
+ <message>
+ <source>MNU_RESET_VIEW</source>
+ <translation>Restaurer le point de vue</translation>
+ </message>
+ <message>
+ <source>MNU_LEFT_VIEW</source>
+ <translation>Gauche</translation>
+ </message>
+ <message>
+ <source>DSC_RIGHT_VIEW</source>
+ <translation>Vue de droit</translation>
+ </message>
+ <message>
+ <source>MNU_CHANGINGROTATIONPOINT_VIEW</source>
+ <translation>Changer le point de rotation</translation>
+ </message>
+ <message>
+ <source>DSC_FITRECT</source>
+ <translation>Redimensionner la scène pour ne montrer que sa partie choisie par l'encadré</translation>
+ </message>
+ <message>
+ <source>MNU_FITRECT</source>
+ <translation>Montrer l'encadré</translation>
+ </message>
+ <message>
+ <source>DSC_BOTTOM_VIEW</source>
+ <translation>Vue de dessous</translation>
+ </message>
+ <message>
+ <source>DSC_DUMP_VIEW</source>
+ <translation>Sauvegarder la scène en cours au fichier image</translation>
+ </message>
+ <message>
+ <source>DSC_ZOOM_VIEW</source>
+ <translation>Zoom la vue</translation>
+ </message>
+ <message>
+ <source>MNU_ROTATIONPOINT000_VIEW</source>
+ <translation>Point de Rotation : (0,0,0)</translation>
+ </message>
+ <message>
+ <source>MNU_ROTATIONPOINTSELECTED_VIEW</source>
+ <translation>Point de Rotation : le point choisi par l'utilisateur</translation>
+ </message>
+ <message>
+ <source>DSC_RESET_VIEW</source>
+ <translation>Restaurer le point de vue</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_CANT_SAVE_FILE</source>
+ <translation>Il est impossible de sauvegarder le fichier</translation>
+ </message>
+ <message>
+ <source>DSC_PRESETS_VIEW</source>
+ <translation>Restaurer l'état mémorisé de la scène courante</translation>
+ </message>
+ <message>
+ <source>MNU_PRESETS_VIEW</source>
+ <translation>Restaurer la vue</translation>
+ </message>
+ <message>
+ <source>MNU_RIGHT_VIEW</source>
+ <translation>Droit</translation>
+ </message>
+ <message>
+ <source>INF_APP_PRESETS_VIEW</source>
+ <translation>Restaurer la scène</translation>
+ </message>
+ <message>
+ <source>LBL_TOOLBAR_LABEL</source>
+ <translation>Opérations de visualisation</translation>
+ </message>
+ <message>
+ <source>DSC_BACK_VIEW</source>
+ <translation>Vue d'arrière</translation>
+ </message>
+ <message>
+ <source>DSC_SCALING</source>
+ <translation>Changer l'échelle des axes de coordonnées</translation>
+ </message>
+ <message>
+ <source>MNU_SCALING</source>
+ <translation>Changer l'échelle</translation>
+ </message>
+ <message>
+ <source>DSC_AMBIENT</source>
+ <translation>Ne montrer que la lumière d'ambiance</translation>
+ </message>
+ <message>
+ <source>MNU_AMBIENT</source>
+ <translation>Ne montrer que la lumière d'ambiance</translation>
+ </message>
+ <message>
+ <source>DSC_STYLE_SWITCH</source>
+ <translation>Changer le style d'intéraction</translation>
+ </message>
+ <message>
+ <source>MNU_STYLE_SWITCH</source>
+ <translation>Changer le style d'intéraction</translation>
+ </message>
+ <message>
+ <source>OCC_IMAGE_FILES</source>
+ <translation>Fichiers Images (*.bmp *.png *.jpg *.jpeg)</translation>
+ </message>
+</context>
+<context>
+ <name>OCCViewer_CreateRestoreViewDlg</name>
+ <message>
+ <source>CAPTION</source>
+ <translation>Restaurer la vue</translation>
+ </message>
+</context>
+<context>
+ <name>OCCViewer_SetRotationPointDlg</name>
+ <message>
+ <source>LBL_X</source>
+ <translation>X:</translation>
+ </message>
+ <message>
+ <source>LBL_Y</source>
+ <translation>Y:</translation>
+ </message>
+ <message>
+ <source>LBL_Z</source>
+ <translation>Z:</translation>
+ </message>
+ <message>
+ <source>USE_BBCENTER</source>
+ <translation>Utiliser le Centre du Cadre d'Objet</translation>
+ </message>
+ <message>
+ <source>LBL_TOORIGIN</source>
+ <translation>Implanter á l'Origine</translation>
+ </message>
+ <message>
+ <source>CAPTION</source>
+ <translation>Indiquer le point de rotation</translation>
+ </message>
+ <message>
+ <source>LBL_SELECTPOINT</source>
+ <translation>Choisir le Point dans la Vue</translation>
+ </message>
+</context>
+<context>
+ <name>OCCViewer_ViewManager</name>
+ <message>
+ <source>OCC_VIEW_TITLE</source>
+ <translation>Scène OCC :%M - visualisateur:%V</translation>
+ </message>
+</context>
+<context>
+ <name>OCCViewer_Viewer</name>
+ <message>
+ <source>MEN_DUMP_VIEW</source>
+ <translation>Sauvegarder la Vue</translation>
+ </message>
+ <message>
+ <source>MEN_SHOW_TOOLBAR</source>
+ <translation>Montrer la Barre d'Outils</translation>
+ </message>
+ <message>
+ <source>MEN_CHANGE_BACKGROUD</source>
+ <translation>Changer l'Arrière Plan</translation>
+ </message>
+</context>
+<context>
+ <name>OCCViewer_AxialScaleDlg</name>
+ <message>
+ <source>DLG_SCALING</source>
+ <translation>Changer l'échelle des axes</translation>
+ </message>
+ <message>
+ <source>LBL_X</source>
+ <translation>X:</translation>
+ </message>
+ <message>
+ <source>LBL_Y</source>
+ <translation>Y:</translation>
+ </message>
+ <message>
+ <source>LBL_Z</source>
+ <translation>Z:</translation>
+ </message>
+</context>
+</TS>
nodist_libObjBrowser_la_SOURCES = $(MOC_FILES)
-nodist_salomeres_DATA = OB_msg_en.qm
+nodist_salomeres_DATA = OB_msg_en.qm OB_msg_fr.qm
libObjBrowser_la_CPPFLAGS = $(QT_INCLUDES) -I$(srcdir)/../Qtx
libObjBrowser_la_LDFLAGS = $(QT_MT_LIBS)
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>OB_Browser</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>OB_Browser</name>
+ <message>
+ <source>MEN_EXPAND_ALL</source>
+ <translation>Afficher Tous</translation>
+ </message>
+ <message>
+ <source>MEN_COLLAPSE_ALL</source>
+ <translation>Réduire Tous</translation>
+ </message>
+ <message>
+ <source>MEN_FIND</source>
+ <translation>Chercher</translation>
+ </message>
+</context>
+<context>
+ <name>OB_FindDlg</name>
+ <message>
+ <source>FIND</source>
+ <translation>Chercher</translation>
+ </message>
+ <message>
+ <source>CLOSE</source>
+ <translation>Fermer</translation>
+ </message>
+ <message>
+ <source>CASE_SENSITIVE</source>
+ <translation>Sensible à la casse</translation>
+ </message>
+ <message>
+ <source>IS_REG_EXP</source>
+ <translation>Expression Régulaire</translation>
+ </message>
+</context>
+</TS>
nodist_salomeres_DATA = \
Plot2d_images.qm \
- Plot2d_msg_en.qm
+ Plot2d_msg_en.qm \
+ Plot2d_msg_fr.qm
libPlot2d_la_CPPFLAGS = $(QT_INCLUDES) $(PYTHON_INCLUDES) $(QWT_INCLUDES) \
-I$(srcdir)/../Qtx -I$(srcdir)/../SUIT
}
break;
}
+ case QEvent::ContextMenu:
+ // Fix from SLN
+ // Do nothing because context menu is called from MouseRelease
+ return true;
}
}
return QWidget::eventFilter( watched, e );
void Plot2d_Viewer::clearPrs()
{
SUIT_ViewManager* aMgr = getViewManager();
- QVector<SUIT_ViewWindow*> aViews = aMgr->getViews();
+ QVector<SUIT_ViewWindow*> aViews;
+ if ( aMgr )
+ aViews = aMgr->getViews();
unsigned int aSize = aViews.size();
for (uint i = 0; i < aSize; i++) {
Plot2d_ViewWindow* aView = (Plot2d_ViewWindow*)aViews[i];
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>PLOT2D_CURVE_TYPE_LBL</source>
+ <translation>Type de Courbe:</translation>
+ </message>
+ <message>
+ <source>ERROR</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>PLOT2D_SET_AS_DEFAULT_CHECK</source>
+ <translation>Enregistrer comme les paramètres de defaut</translation>
+ </message>
+ <message>
+ <source>TLT_SETUP_CURVE</source>
+ <translation>Initialiser une Courbe</translation>
+ </message>
+ <message>
+ <source>MNU_DUMP_VIEW</source>
+ <translation>Clicher la vue...</translation>
+ </message>
+ <message>
+ <source>PLOT2D_SCALE_MODE_HOR</source>
+ <translation>Axe Horizontale:</translation>
+ </message>
+ <message>
+ <source>PLOT2D_SCALE_MODE_VER</source>
+ <translation>Axe Verticale:</translation>
+ </message>
+ <message>
+ <source>MNU_PAN_VIEW</source>
+ <translation>Panoramique</translation>
+ </message>
+ <message>
+ <source>MNU_CLONE_VIEW</source>
+ <translation>Cloner la Vue</translation>
+ </message>
+ <message>
+ <source>POSTSCRIPT_FILES</source>
+ <translation>Fichiers PostScript (*.ps)</translation>
+ </message>
+ <message>
+ <source>ENCAPSULATED_POSTSCRIPT_FILES</source>
+ <translation>Fichiers PostScript Encapsulés (*.eps)</translation>
+ </message>
+ <message>
+ <source>DSC_GLOBALPAN_VIEW</source>
+ <translation>Sélection d'un nouveau centre de la vue</translation>
+ </message>
+ <message>
+ <source>PRP_PLOT2D_MODE_LINEAR_VER</source>
+ <translation>Changer la vue au mode d'échelle linéaire au long de l'axe verticale</translation>
+ </message>
+ <message>
+ <source>PRP_PLOT2D_MODE_LINEAR_HOR</source>
+ <translation>Changer la vue au mode d'échelle linéaire au long de l'axe horizontale</translation>
+ </message>
+ <message>
+ <source>CURVE_LINE_WIDTH_LAB</source>
+ <translation>Largeur de la Ligne:</translation>
+ </message>
+ <message>
+ <source>CURVE_TYPE_POPUP</source>
+ <translation>Type de Courbe</translation>
+ </message>
+ <message>
+ <source>TOT_PLOT2D_MODE_LINEAR_VER</source>
+ <translation>Axe verticale: linéaire</translation>
+ </message>
+ <message>
+ <source>TOT_PLOT2D_MODE_LINEAR_HOR</source>
+ <translation>Axe horizontale: linéaire</translation>
+ </message>
+ <message>
+ <source>FIT_DATA_TLT</source>
+ <translation>Montrer le diapason des données</translation>
+ </message>
+ <message>
+ <source>MNU_ZOOM_VIEW</source>
+ <translation>Zoom</translation>
+ </message>
+ <message>
+ <source>PLOT2D_GRID_TLT</source>
+ <translation>Maillage / Repères des Axes</translation>
+ </message>
+ <message>
+ <source>DSC_PAN_VIEW</source>
+ <translation>Redimensionner la vue</translation>
+ </message>
+ <message>
+ <source>DASHDOT_LINE_LBL</source>
+ <translation>TiretPoint</translation>
+ </message>
+ <message>
+ <source>PRP_PLOT2D_CURVES_SPLINES</source>
+ <translation>Changer le mode de vue aux splines</translation>
+ </message>
+ <message>
+ <source>INF_AXES_X</source>
+ <translation>Axe X</translation>
+ </message>
+ <message>
+ <source>PLOT2D_SCALE_TLT</source>
+ <translation>Mode d'échelle</translation>
+ </message>
+ <message>
+ <source>DSC_FITALL</source>
+ <translation>Montrer tous les objets</translation>
+ </message>
+ <message>
+ <source>MNU_FITALL</source>
+ <translation>Montrer tous</translation>
+ </message>
+ <message>
+ <source>TOT_PLOT2D_MODE_LOGARITHMIC_HOR</source>
+ <translation>Axe horizontale: logarithmique</translation>
+ </message>
+ <message>
+ <source>TOT_PLOT2D_MODE_LOGARITHMIC_VER</source>
+ <translation>Axe Verticale: logarithmique</translation>
+ </message>
+ <message>
+ <source>MNU_GLOBALPAN_VIEW</source>
+ <translation>Panoramique Globale</translation>
+ </message>
+ <message>
+ <source>INF_APP_DUMP_VIEW</source>
+ <translation>Clicher la vue</translation>
+ </message>
+ <message>
+ <source>PLOT2D_LEGEND_POSITION_BOTTOM</source>
+ <translation>Dessous</translation>
+ </message>
+ <message>
+ <source>INF_COORDINATES</source>
+ <translation>Coordonnées: X : %1, Y : %2</translation>
+ </message>
+ <message>
+ <source>DSC_CLONE_VIEW</source>
+ <translation>Ouvrir un nouveau visualisateur OCC pour la scène actuelle</translation>
+ </message>
+ <message>
+ <source>DASH_LINE_LBL</source>
+ <translation>Tiret</translation>
+ </message>
+ <message>
+ <source>DTRIANGLE_MARKER_LBL</source>
+ <translation>Triangle orienté en bas</translation>
+ </message>
+ <message>
+ <source>UTRIANGLE_MARKER_LBL</source>
+ <translation>Triangle orienté en haut</translation>
+ </message>
+ <message>
+ <source>LTRIANGLE_MARKER_LBL</source>
+ <translation>Triangle orienté à Gauche </translation>
+ </message>
+ <message>
+ <source>RTRIANGLE_MARKER_LBL</source>
+ <translation>Triangle orienté à droit</translation>
+ </message>
+ <message>
+ <source>RECTANGLE_MARKER_LBL</source>
+ <translation>Rectangle</translation>
+ </message>
+ <message>
+ <source>TLT_SETUP_PLOT2D_VIEW</source>
+ <translation>Plot 2d Paramètres de Visualisation</translation>
+ </message>
+ <message>
+ <source>CURVE_LINE_TYPE_LAB</source>
+ <translation>Type de la Ligne:</translation>
+ </message>
+ <message>
+ <source>CROSS_MARKER_LBL</source>
+ <translation>Croix</translation>
+ </message>
+ <message>
+ <source>XCROSS_MARKER_LBL</source>
+ <translation>Croix Diagonale</translation>
+ </message>
+ <message>
+ <source>PLOT2D_ENABLE_VER_TITLE</source>
+ <translation>Titre de l'axe Verticale</translation>
+ </message>
+ <message>
+ <source>PLOT2D_ENABLE_HOR_TITLE</source>
+ <translation>Titre d'Axe Horizontale</translation>
+ </message>
+ <message>
+ <source>TOT_PLOT2D_SETTINGS</source>
+ <translation>Paramètres</translation>
+ </message>
+ <message>
+ <source>PLOT2D_CURVE_TYPE_LINES</source>
+ <translation>Lignes</translation>
+ </message>
+ <message>
+ <source>MEN_PLOT2D_CURVES_SPLINES</source>
+ <translation>Dessiner les Splines</translation>
+ </message>
+ <message>
+ <source>PRP_PLOT2D_MODE_LOGARITHMIC_HOR</source>
+ <translation>Changer la vue au mode d'échelle logarithmique au long de l'axe horizontale</translation>
+ </message>
+ <message>
+ <source>PRP_PLOT2D_MODE_LOGARITHMIC_VER</source>
+ <translation>Changer la vue au mode d'échelle logarithmique au long de l'axe verticale</translation>
+ </message>
+ <message>
+ <source>PLOT2D_IMAGE_FILES</source>
+ <translation>Fichiers Images (*.bmp *.png *.jpg *.jpeg)</translation>
+ </message>
+ <message>
+ <source>PLOT2D_MAX_INTERVALS</source>
+ <translation>Intervalles Maximaux</translation>
+ </message>
+ <message>
+ <source>INF_AXES_Y_LEFT</source>
+ <translation>Axe Y Gauche</translation>
+ </message>
+ <message>
+ <source>CURVE_COLOR_LAB</source>
+ <translation>Couleur:</translation>
+ </message>
+ <message>
+ <source>CURVE_PREVIEW_LAB</source>
+ <translation>Prévisualiser</translation>
+ </message>
+ <message>
+ <source>DIAMOND_MARKER_LBL</source>
+ <translation>Diamant</translation>
+ </message>
+ <message>
+ <source>PLOT2D_LEGEND_POSITION_TOP</source>
+ <translation>Dessus</translation>
+ </message>
+ <message>
+ <source>TOT_PLOT2D_CHANGE_BACKGROUND</source>
+ <translation>Changer l'arrière-plan</translation>
+ </message>
+ <message>
+ <source>MEN_PLOT2D_CHANGE_BACKGROUND</source>
+ <translation>Changer l'Arrère-Plan...</translation>
+ </message>
+ <message>
+ <source>PRP_PLOT2D_CHANGE_BACKGROUND</source>
+ <translation>Changer la couleur d'arrière plan</translation>
+ </message>
+ <message>
+ <source>SOLID_LINE_LBL</source>
+ <translation>Solide</translation>
+ </message>
+ <message>
+ <source>PLOT2D_GRID_ENABLE_VER_MAJOR</source>
+ <translation>La Verticale majeure</translation>
+ </message>
+ <message>
+ <source>PLOT2D_GRID_ENABLE_HOR_MAJOR</source>
+ <translation>La horizontale majeure</translation>
+ </message>
+ <message>
+ <source>PLOT2D_GRID_ENABLE_VER_MINOR</source>
+ <translation>La Verticale mineure</translation>
+ </message>
+ <message>
+ <source>TOT_PLOT2D_CURVES_POINTS</source>
+ <translation>Dessiner points</translation>
+ </message>
+ <message>
+ <source>PLOT2D_GRID_ENABLE_HOR_MINOR</source>
+ <translation>La horizontale mineure</translation>
+ </message>
+ <message>
+ <source>PLOT2D_BACKGROUND_COLOR_LBL</source>
+ <translation>Couleur d'arrière-plan:</translation>
+ </message>
+ <message>
+ <source>WRN_XLOG_NOT_ALLOWED</source>
+ <translation>On a détecté des points avec les valeurs non-positives sur l'abscisse.
+L'échelle logarithmique de l'abscisse n'est pas permise.</translation>
+ </message>
+ <message>
+ <source>WRN_YLOG_NOT_ALLOWED</source>
+ <translation>On a détecté des points avec les valeurs non-positives sur l'ordonnée.
+L'échelle logarithmique de l'ordonnée n'est pas permise.</translation>
+ </message>
+ <message>
+ <source>DSC_FITRECT</source>
+ <translation>Montrer la zone choisie par l'encadré</translation>
+ </message>
+ <message>
+ <source>PLOT2D_LEGEND_POSITION_LEFT</source>
+ <translation>Gauche</translation>
+ </message>
+ <message>
+ <source>MNU_FITRECT</source>
+ <translation>Montrer la Zone</translation>
+ </message>
+ <message>
+ <source>DOT_LINE_LBL</source>
+ <translation>Point</translation>
+ </message>
+ <message>
+ <source>MEN_PLOT2D_CURVES_POINTS</source>
+ <translation>Dessiner les Points</translation>
+ </message>
+ <message>
+ <source>PRP_PLOT2D_CURVES_POINTS</source>
+ <translation>Changer le mode de vue aux points</translation>
+ </message>
+ <message>
+ <source>PLOT2D_SCALE_MODE_LOGARITHMIC</source>
+ <translation>Logarithmique</translation>
+ </message>
+ <message>
+ <source>PLOT2D_LEGEND_POSITION_RIGHT</source>
+ <translation>Droit</translation>
+ </message>
+ <message>
+ <source>DSC_DUMP_VIEW</source>
+ <translation>Sauvegarder la vue actuelle au fichier image</translation>
+ </message>
+ <message>
+ <source>WARNING</source>
+ <translation>Avertissement</translation>
+ </message>
+ <message>
+ <source>PLOT2D_ENABLE_LEGEND</source>
+ <translation>Montrer la légende</translation>
+ </message>
+ <message>
+ <source>DSC_ZOOM_VIEW</source>
+ <translation>Zoomer la vue</translation>
+ </message>
+ <message>
+ <source>PRP_PLOT2D_SETTINGS</source>
+ <translation>Indiquer les paramètres de visualisation</translation>
+ </message>
+ <message>
+ <source>INF_COORDINATES_SOME_Y</source>
+ <translation>Coordonnées: X : %1, Y : %2 ( %3 )</translation>
+ </message>
+ <message>
+ <source>SCALING_POPUP</source>
+ <translation>Echelle</translation>
+ </message>
+ <message>
+ <source>PLOT2D_SCALE_MODE_LINEAR</source>
+ <translation>Linéaire</translation>
+ </message>
+ <message>
+ <source>TOT_PLOT2D_FITDATA</source>
+ <translation>Montrer le Diapason</translation>
+ </message>
+ <message>
+ <source>PLOT2D_CURVE_TYPE_POINTS</source>
+ <translation>Points</translation>
+ </message>
+ <message>
+ <source>PLOT2D_CURVE_TYPE_SPLINE</source>
+ <translation>Spline</translation>
+ </message>
+ <message>
+ <source>MEN_PLOT2D_FITDATA</source>
+ <translation>Montrer &Ranger</translation>
+ </message>
+ <message>
+ <source>MEN_PLOT2D_MODE_LOGARITHMIC_HOR</source>
+ <translation>Axe Horizontale: Logarithmique</translation>
+ </message>
+ <message>
+ <source>MEN_PLOT2D_MODE_LOGARITHMIC_VER</source>
+ <translation>Axe Verticale: Logarithmique</translation>
+ </message>
+ <message>
+ <source>PRP_PLOT2D_FITDATA</source>
+ <translation>Monter le diapason de données indiqué</translation>
+ </message>
+ <message>
+ <source>MEN_PLOT2D_MODE_LINEAR_VER</source>
+ <translation>Axe Verticale: Linéaire</translation>
+ </message>
+ <message>
+ <source>MEN_PLOT2D_MODE_LINEAR_HOR</source>
+ <translation>Axe Horizontale: Linéaire</translation>
+ </message>
+ <message>
+ <source>NONE_MARKER_LBL</source>
+ <translation>Zéro</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_CANT_SAVE_FILE</source>
+ <translation>Impossible de sauvegarder le fichier</translation>
+ </message>
+ <message>
+ <source>MEN_PLOT2D_SHOW_LEGEND</source>
+ <translation>Montrer &Légende</translation>
+ </message>
+ <message>
+ <source>PRP_PLOT2D_SHOW_LEGEND</source>
+ <translation>Activer/désactiver la légende</translation>
+ </message>
+ <message>
+ <source>TOT_PLOT2D_SHOW_LEGEND</source>
+ <translation>Montrer la Légende</translation>
+ </message>
+ <message>
+ <source>INF_AXES_Y_RIGHT</source>
+ <translation>Axe Y Droite</translation>
+ </message>
+ <message>
+ <source>DAHSDOTDOT_LINE_LBL</source>
+ <translation>TiretPointPoint</translation>
+ </message>
+ <message>
+ <source>TOT_PLOT2D_CURVES_SPLINES</source>
+ <translation>Dessiner splines</translation>
+ </message>
+ <message>
+ <source>CURVE_MARKER_TYPE_LAB</source>
+ <translation>Type de Repère:</translation>
+ </message>
+ <message>
+ <source>MEN_PLOT2D_SETTINGS</source>
+ <translation>&Paramètres</translation>
+ </message>
+ <message>
+ <source>CIRCLE_MARKER_LBL</source>
+ <translation>Circle</translation>
+ </message>
+ <message>
+ <source>LBL_TOOLBAR_LABEL</source>
+ <translation>Opérations de visualisation </translation>
+ </message>
+ <message>
+ <source>NONE_LINE_LBL</source>
+ <translation>Zéro</translation>
+ </message>
+ <message>
+ <source>PLOT2D_MARKER_SIZE_LBL</source>
+ <translation>Repère de Taille:</translation>
+ </message>
+ <message>
+ <source>PLOT2D_ENABLE_MAIN_TITLE</source>
+ <translation>Titre principal</translation>
+ </message>
+ <message>
+ <source>TOT_PLOT2D_CURVES_LINES</source>
+ <translation>Dessiner Lignes</translation>
+ </message>
+ <message>
+ <source>PRP_PLOT2D_CURVES_LINES</source>
+ <translation>Changer le mode de vue aux lignes</translation>
+ </message>
+ <message>
+ <source>MEN_PLOT2D_CURVES_LINES</source>
+ <translation>Dessiner les Lignes</translation>
+ </message>
+</context>
+<context>
+ <name>Plot2d_FitDataDlg</name>
+ <message>
+ <source>FIT_HORIZONTAL</source>
+ <translation>Montrer horizontale</translation>
+ </message>
+ <message>
+ <source>MIN_VALUE_LAB</source>
+ <translation>Min:</translation>
+ </message>
+ <message>
+ <source>VERTICAL_AXIS</source>
+ <translation>Axe Verticale</translation>
+ </message>
+ <message>
+ <source>MAX_VALUE_LAB</source>
+ <translation>Max:</translation>
+ </message>
+ <message>
+ <source>HORIZONTAL_AXIS</source>
+ <translation>Axe Horizontale</translation>
+ </message>
+ <message>
+ <source>VERTICAL_LEFT_AXIS</source>
+ <translation>Axe Gauche Verticale</translation>
+ </message>
+ <message>
+ <source>FIT_ALL</source>
+ <translation>Montrer tous</translation>
+ </message>
+ <message>
+ <source>VERTICAL_RIGHT_AXIS</source>
+ <translation>Axe droite verticale</translation>
+ </message>
+ <message>
+ <source>FIT_VERTICAL</source>
+ <translation>Montrer verticale</translation>
+ </message>
+</context>
+<context>
+ <name>Plot2d_ViewManager</name>
+ <message>
+ <source>PLOT2D_VIEW_TITLE</source>
+ <translation>Plot2d scène:%M - visualisateur:%V</translation>
+ </message>
+</context>
+</TS>
nodist_libPyConsole_la_SOURCES = $(MOC_FILES)
nodist_salomeres_DATA = \
- PyConsole_msg_en.qm
+ PyConsole_msg_en.qm \
+ PyConsole_msg_fr.qm
libPyConsole_la_CPPFLAGS = $(PYTHON_INCLUDES) $(QT_INCLUDES) \
-I$(srcdir)/../PyInterp -I$(srcdir)/../SUIT -I$(srcdir)/../Qtx
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1">
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>PyConsole_Console</name>
<message>
<translation>D&ump commands</translation>
</message>
</context>
-
<context>
<name>PyConsole_Editor</name>
<message>
<translation>Dump commands</translation>
</message>
<message>
- <source>PYTHON_FILES_FILTER</source>
- <translation>PYTHON Files (*.py)</translation>
+ <source>PYTHON_FILES_FILTER</source>
+ <translation>PYTHON Files (*.py)</translation>
</message>
</context>
</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>PyConsole_Console</name>
+ <message>
+ <location filename="../PyConsole_Console.cxx" line="216"/>
+ <source>EDIT_COPY_CMD</source>
+ <translation>&Copier</translation>
+ </message>
+ <message>
+ <location filename="../PyConsole_Console.cxx" line="221"/>
+ <source>EDIT_PASTE_CMD</source>
+ <translation>C&oller</translation>
+ </message>
+ <message>
+ <location filename="../PyConsole_Console.cxx" line="226"/>
+ <source>EDIT_CLEAR_CMD</source>
+ <translation>&Effacer</translation>
+ </message>
+ <message>
+ <location filename="../PyConsole_Console.cxx" line="231"/>
+ <source>EDIT_SELECTALL_CMD</source>
+ <translation>Choisir &Tous</translation>
+ </message>
+ <message>
+ <source>EDIT_DUMPCOMMANDS_CMD</source>
+ <translation>C&licher les commandes</translation>
+ </message>
+</context>
+<context>
+ <name>PyConsole_Editor</name>
+ <message>
+ <source>TOT_DUMP_PYCOMMANDS</source>
+ <translation>C&licher les commandes</translation>
+ </message>
+ <message>
+ <source>PYTHON_FILES_FILTER</source>
+ <translation>Fichiers PYTHON (*.py)</translation>
+ </message>
+</context>
+</TS>
nodist_libQDS_la_SOURCES = $(MOC_FILES)
-nodist_salomeres_DATA = QDS_msg_en.qm
+nodist_salomeres_DATA = QDS_msg_en.qm QDS_msg_fr.qm
libQDS_la_CPPFLAGS = $(QT_INCLUDES) $(CAS_CPPFLAGS) \
-I$(srcdir)/../Qtx -I$(srcdir)/../DDS
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>QDS_Datum</name>
<message>
</message>
<message>
<source>DATA_SHOULD_BE_VALUE</source>
- <translation>Should be%1 value</translation>
+ <translation>Should be %1 value</translation>
</message>
<message>
<source>DATA_INTEGER</source>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>QDS_Datum</name>
+ <message>
+ <source>DATA_ERR_TITLE</source>
+ <translation>Valeur incorrecte du paramètre</translation>
+ </message>
+ <message>
+ <source>DATA_STRING</source>
+ <translation> ligne non-vide</translation>
+ </message>
+ <message>
+ <source>DATA_NON_EMPTY</source>
+ <translation> non-vide</translation>
+ </message>
+ <message>
+ <source>DATA_MIN_LIMIT</source>
+ <translation> est plus de %1</translation>
+ </message>
+ <message>
+ <source>DATA_FLOAT</source>
+ <translation> réelle</translation>
+ </message>
+ <message>
+ <source>DATA_RANGE</source>
+ <translation> au diapason [%1, %2]</translation>
+ </message>
+ <message>
+ <source>DATA_SHOULD_BE_VALUE</source>
+ <translation>Une valeur %1 est nécessaire</translation>
+ </message>
+ <message>
+ <source>DATA_INTEGER</source>
+ <translation> entière</translation>
+ </message>
+ <message>
+ <source>DATA_INCORRECT_VALUE</source>
+ <translation>La Valeur du paramètre "%1" n'est pas correcte.</translation>
+ </message>
+ <message>
+ <source>DATA_MAX_LIMIT</source>
+ <translation> est moins de %1</translation>
+ </message>
+ <message>
+ <source>DATA_INPUT_VALUE</source>
+ <translation>Indiquez une valeur correcte.</translation>
+ </message>
+</context>
+</TS>
QtxResourceMgr.h \
QtxRubberBand.h \
QtxSearchTool.h \
- QtxShortcutEdit.h \
+ QtxShortcutEdit.h \
QtxSplash.h \
QtxToolBar.h \
QtxToolTip.h \
libqtx_la_CPPFLAGS = $(QT_INCLUDES)
libqtx_la_LDFLAGS = $(QT_MT_LIBS)
+
+nodist_salomeres_DATA = \
+ Qtx_msg_fr.qm
Creates an action owned by \a parent.
Parameter \a toggle can be used to make the action checkable.
+ Parameter \a shortcutAction can be used to assign the shortcut from
+ preferences. This parameter value corresponds to shortcut action identifier
+ in shortcut preferences.
\param parent parent object
\param toggle if \c true the action will be a toggle action
+ \param shortcutAction shortcut action identifier
*/
-QtxAction::QtxAction( QObject* parent, bool toggle )
+QtxAction::QtxAction( QObject* parent, bool toggle, const QString& shortcutAction )
: QWidgetAction( parent )
{
setCheckable( toggle );
+ setShortcutActionName(shortcutAction);
QApplication::instance()->installEventFilter( this );
}
Creates an action owned by \a parent. Parameters \a text,
\a icon, \a menuText and \a accel specify the action's attributes.
Parameter \a toggle can be used to make the action checkable.
+ Parameter \a shortcutAction can be used to assign the shortcut from
+ preferences. This parameter value corresponds to shortcut action identifier
+ in shortcut preferences.
\param text tooltip text
\param icon iconset
\param accel shortcut key sequence
\param parent parent object
\param toggle if \c true the action will be a toggle action
+ \param shortcutAction shortcut action identifier
*/
-QtxAction::QtxAction( const QString& text, const QIcon& icon,
- const QString& menuText, int accel, QObject* parent, bool toggle )
+QtxAction::QtxAction( const QString& text, const QIcon& icon, const QString& menuText,
+ int accel, QObject* parent, bool toggle, const QString& shortcutAction )
: QWidgetAction( parent )
{
setIcon( icon );
setToolTip( text );
setShortcut( accel );
setCheckable( toggle );
+ setShortcutActionName(shortcutAction);
QApplication::instance()->installEventFilter( this );
}
Creates an action owned by \a parent. Parameters \a text,
\a menuText and \a accel specify the action's attributes.
Parameter \a toggle can be used to make the action checkable.
+ Parameter \a shortcutAction can be used to assign the shortcut from
+ preferences. This parameter value corresponds to shortcut action identifier
+ in shortcut preferences.
\param text tooltip text
\param menuText menu text
\param accel shortcut key sequence
\param parent parent object
\param toggle if \c true the action is a toggle action
+ \param shortcutAction shortcut action identifier
*/
QtxAction::QtxAction( const QString& text, const QString& menuText,
- int accel, QObject* parent, bool toggle )
+ int accel, QObject* parent, bool toggle, const QString& shortcutAction )
: QWidgetAction( parent )
{
setText( menuText );
setToolTip( text );
setShortcut( accel );
setCheckable( toggle );
-
+ setShortcutActionName(shortcutAction);
+
QApplication::instance()->installEventFilter( this );
}
else
removedFrom( ae->widget() );
}
+
+/*!
+ \brief Return shortcut action name for the action.
+
+ \return shortcut action name
+ \sa setShortcutActionName()
+*/
+QString QtxAction::shortcutActionName() const
+{
+ return myShortcutActionName;
+}
+
+/*!
+ \brief Set shortcut action name to the action.
+
+ Shortcut action name is used for shortcuts customization.
+
+ \param shortcutAction shortcut action name
+ \sa shortcutActionName()
+*/
+void QtxAction::setShortcutActionName( const QString& shortcutAction )
+{
+ myShortcutActionName = shortcutAction;
+}
class ActionNotify;
public:
- QtxAction( QObject* = 0, bool = false );
- QtxAction( const QString&, const QString&, int, QObject*, bool = false );
- QtxAction( const QString&, const QIcon&, const QString&, int, QObject*, bool = false );
+ QtxAction( QObject* = 0, bool = false, const QString& = QString() );
+ QtxAction( const QString&, const QString&, int, QObject*, bool = false, const QString& = QString() );
+ QtxAction( const QString&, const QIcon&, const QString&, int, QObject*, bool = false, const QString& = QString() );
virtual ~QtxAction();
virtual bool eventFilter( QObject*, QEvent* );
+ QString shortcutActionName() const;
+ void setShortcutActionName( const QString& );
+
protected:
virtual void addedTo( QWidget* );
virtual void removedFrom( QWidget* );
virtual void customEvent( QEvent* );
+
+private:
+ QString myShortcutActionName;
};
#ifdef WIN32
: QToolButton( parent )
{
setCheckable( false );
- setPopupMode( MenuButtonPopup );
+ setPopupMode( InstantPopup );
QMenu* pm = new QMenu( this );
QGridLayout* grid = new QGridLayout( pm );
if ( QtxDoubleSpinBox* dsb = ::qobject_cast<QtxDoubleSpinBox*>( control() ) )
{
if ( prec.canConvert( QVariant::Int ) ) {
- dsb->setDecimals( prec.toInt() );
+ dsb->setDecimals( qAbs( prec.toInt() ) );
dsb->setPrecision( prec.toInt() );
}
}
const QString& param ): QtxPageNamedPrefItem( title, parent, sect, "" )
{
mySection = sect;
+
myShortcutTree = new QtxShortcutTree();
+
+ // Retrieve shortcuts common sections from resources
+ QtxResourceMgr* resMgr = resourceMgr();
+ if ( resMgr ){
+ QString generalSections = resourceMgr()->stringValue( "shortcuts_settings", "general_sections", QString() );
+ QStringList sectionsList = generalSections.split( ";", QString::SkipEmptyParts );
+ myShortcutTree->setGeneralSections( sectionsList );
+ }
+
setControl( myShortcutTree );
}
#include <QRegExp>
#include <QTextStream>
#include <QApplication>
+#include <QLibraryInfo>
#ifndef QT_NO_DOM
#include <QDomDocument>
#include <QDomElement>
else
prefixList = parameters( resSection() );
+ if ( pref.isEmpty() && lang != "en" ) {
+ // load Qt resources
+ QString qt_translations = QLibraryInfo::location( QLibraryInfo::TranslationsPath );
+ QTranslator* trans = new QtxTranslator( 0 );
+ if ( trans->load( QString("qt_%1").arg( lang ), qt_translations ) )
+ QApplication::instance()->installTranslator( trans );
+ }
+
for ( QStringList::ConstIterator iter = prefixList.begin(); iter != prefixList.end(); ++iter )
{
QString prefix = *iter;
#include <QToolButton>
#include <QLineEdit>
#include <QTableWidgetItem>
+#include <QMessageBox>
#include <QKeyEvent>
#include <QKeySequence>
if ( keyEvent->key() == Qt::Key_Delete || keyEvent->key() == Qt::Key_Backspace )
currentItem()->setText( 1, "" );
if ( text != "" ) {
- currentItem()->setText( 1, text );
+ if ( text.endsWith( "+" ) || checkUniqueness( currentItem(), text ) )
+ currentItem()->setText( 1, text );
}
return true;
}
if ( event->type() == QEvent::KeyRelease ) {
if ( currentItem()->text( 1 ).endsWith( "+" ) )
- currentItem()->setText( 1, myPrevBindings[ currentItem()->parent()->text( 0 ) ][ currentItem()->text( 0 ) ] );
+ currentItem()->setText( 1, myPrevBindings[ currentItem()->parent()->text( 0 ) ][ currentItem()->text( 0 ) ] );
else myPrevBindings[ currentItem()->parent()->text( 0 ) ][ currentItem()->text( 0 ) ] = currentItem()->text( 1 );
return true;
prev->setText( 1, myPrevBindings[ prev->parent()->text( 0 ) ][ prev->text( 0 ) ] );
}
-
/*!
\brief Set key bindings to the tree
\param title the name of top-level item
void QtxShortcutTree::setBindings( const QString& title, const ShortcutMap& theShortcutMap )
{
QTreeWidgetItem* item= new QTreeWidgetItem();
+ QFont font = item->font(0);
+ font.setBold(true);
+
if ( findItems( title, Qt::MatchFixedString ).isEmpty() ) {
item->setText( 0, title );
+ item->setFont( 0, font );
addTopLevelItem( item );
item->setFlags( Qt::ItemIsEnabled );
} else {
{
ShortcutMap* aMap = new ShortcutMap();
QTreeWidgetItem* item = findItems( sec, Qt::MatchFixedString ).first();
- QList< QTreeWidgetItem* > childLst = item->takeChildren();
+ int nbChildren = item->childCount();
- for( int i = 0; i < childLst.size(); i++ )
- aMap->insert( childLst.at(i)->text( 0 ), childLst.at(i)->text(1) );
+ for( int i = 0; i < nbChildren; i++ ) {
+ QTreeWidgetItem* child = item->child(i);
+ aMap->insert( child->text( 0 ), child->text( 1 ) );
+ }
return aMap;
}
void QtxShortcutTree::focusOutEvent ( QFocusEvent* event )
{
QWidget::focusOutEvent( event );
- if ( currentItem()->isSelected() )
+ if ( currentItem() && currentItem()->isSelected() )
currentItem()->setText( 1, myPrevBindings[ currentItem()->parent()->text( 0 ) ][ currentItem()->text( 0 ) ] );
}
+
+/*!
+ \brief Set the list of shortcuts general sections.
+
+ Key combinations in general sections should not intersect
+ with any other key combinations.
+
+ \param sectionsList list of common section names
+*/
+void QtxShortcutTree::setGeneralSections( const QStringList& sectionsList )
+{
+ myGeneralSections = sectionsList;
+}
+
+/*!
+ \brief Check uniqueness of the shortcut.
+ \param item current item of the shortcut tree
+ \param shortcut shortcut appointed for the current item
+ \return \c true if the given shortcut is allowed
+*/
+bool QtxShortcutTree::checkUniqueness( QTreeWidgetItem* item, const QString& shortcut )
+{
+ // List of sections to check shortcut intersections
+ QStringList sectionsList;
+
+ // Current section
+ QString currentSection = currentItem()->parent()->text( 0 );
+
+ // If the current section is general
+ if ( myGeneralSections.contains(currentSection) ) {
+ sectionsList = sections();
+ int currentSectionIndex = sectionsList.indexOf(currentSection);
+ sectionsList.move( currentSectionIndex, 0);
+ }
+ else {
+ sectionsList = myGeneralSections;
+ sectionsList.prepend(currentSection);
+ }
+
+ // Iterate on sections
+ QStringList::const_iterator it;
+ for( it = sectionsList.constBegin(); it != sectionsList.constEnd(); ++it ) {
+ QString section = *it;
+
+ // Iterate on actual section
+ QTreeWidgetItem* sectionRoot = findItems( section, Qt::MatchFixedString ).first();
+ int nbChildren = sectionRoot->childCount();
+
+ for( int i = 0; i < nbChildren; i++ ) {
+ QTreeWidgetItem* child = sectionRoot->child(i);
+
+ if ( (child != item) && (shortcut == child->text( 1 )) ) {
+ bool res = QMessageBox::warning( parentWidget(), tr("Warning"),
+ tr("The \"%1\" shortcut has already used by the \"%2\" action.\n")
+ .arg(shortcut, section + ":" + child->text( 0 ) ) +
+ tr("Do you want to reassign it from that action to the current one?"),
+ QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes;
+ if (res)
+ child->setText( 1, "" );
+ return res;
+ }
+ }
+ }
+
+ return true;
+}
void setBindings( const QString&, const ShortcutMap& );
ShortcutMap* bindings( const QString& ) const;
QStringList sections() const;
+ void setGeneralSections( const QStringList& );
protected:
virtual bool eventFilter( QObject*, QEvent* );
virtual void focusOutEvent( QFocusEvent* );
+ virtual bool checkUniqueness( QTreeWidgetItem*, const QString& );
private slots:
void onCurrentItemChanged( QTreeWidgetItem*, QTreeWidgetItem* );
private:
QMap< QString, ShortcutMap > myPrevBindings;
+ QStringList myGeneralSections;
};
#endif // QTXSHORTCUTEDIT_H
QAction* sortAction = 0;
if ( count() > 0 && myEnableSortMenu ) {
menu.addSeparator();
- sortAction = menu.addAction( tr( "Enable sorting" ) );
+ sortAction = menu.addAction( QtxTreeView::tr( "Enable sorting" ) );
sortAction->setCheckable( true );
sortAction->setChecked( isSortIndicatorShown() );
}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>QtxTreeView</name>
+ <message>
+ <source>Enable sorting</source>
+ <translation>Activer le triage</translation>
+ </message>
+</context>
+<context>
+ <name>QtxWorkspaceAction</name>
+ <message>
+ <source>Arranges the windows as overlapping tiles</source>
+ <translation>Ranger les fenêtres en pavés superposés</translation>
+ </message>
+ <message>
+ <source>Cascade</source>
+ <translation>Cascade</translation>
+ </message>
+ <message>
+ <source>Arranges the windows as nonoverlapping tiles</source>
+ <translation>Ranger les fenêtres en pavés sans superposition</translation>
+ </message>
+ <message>
+ <source>Tile</source>
+ <translation>Pavé</translation>
+ </message>
+ <message>
+ <source>Arranges the windows as nonoverlapping horizontal tiles</source>
+ <translation>Ranger les fenêtres en pavés à l'horisontale et sans superposition</translation>
+ </message>
+ <message>
+ <source>Tile horizontally</source>
+ <translation>Ranger à l'horisontale</translation>
+ </message>
+ <message>
+ <source>Arranges the windows as nonoverlapping vertical tiles</source>
+ <translation>Ranger les fenêtres en pavés à la verticale et sans superposition</translation>
+ </message>
+ <message>
+ <source>Tile vertically</source>
+ <translation>Ranger au verticale</translation>
+ </message>
+</context>
+<context>
+ <name>QtxMainWindow</name>
+ <message>
+ <source>Menu bar</source>
+ <translation>Barre de menu</translation>
+ </message>
+ <message>
+ <source>Status bar</source>
+ <translation>Barre de statut</translation>
+ </message>
+</context>
+<context>
+ <name>QtxPathDialog</name>
+ <message>
+ <source>Open file</source>
+ <translation>Ouvrir le fichier</translation>
+ </message>
+ <message>
+ <source>Save file</source>
+ <translation>Sauvegarder le fichier</translation>
+ </message>
+ <message>
+ <source>File name</source>
+ <translation>Nom du fichier</translation>
+ </message>
+ <message>
+ <source>File name not specified</source>
+ <translation>Le nom du fichier n'est pas indiqué</translation>
+ </message>
+ <message>
+ <source>File \"%1\" does not exist</source>
+ <translation>Le fichier \"%1\" n'existe pas</translation>
+ </message>
+ <message>
+ <source>File \"%1\" already exist. Do you want to overwrite it?</source>
+ <translation>Le fichier \"%1\" déjà existe. Voulez-vous le réécrire?</translation>
+ </message>
+ <message>
+ <source>Directory \"%1\" does not exist</source>
+ <translation>Le répertoire \"%1\" n'existe pas</translation>
+ </message>
+ <message>
+ <source>Directory \"%1\" can't be created because file with the same name exist</source>
+ <translation>Il est impossible de créer le répertoire \"%1\" parce qu'un fichier avec ce nom déjà existe</translation>
+ </message>
+ <message>
+ <source>Directory \"%1\" not empty. Do you want to remove all files in this directory?</source>
+ <translation>Le répertoire \"%1\" n'est pas vide. Voulez-vous supprimer tous les fichier dans ce répertoire?</translation>
+ </message>
+ <message>
+ <source>File dialog</source>
+ <translation>Dialogue de fichier</translation>
+ </message>
+ <message>
+ <source>All files (*.*)</source>
+ <translation>Tous les fichiers (*.*)</translation>
+ </message>
+</context>
+<context>
+ <name>QtxFontEdit</name>
+ <message>
+ <source>B</source>
+ <translatorcomment>Bold</translatorcomment>
+ <translation>G</translation>
+ </message>
+ <message>
+ <source>I</source>
+ <translatorcomment>Italic</translatorcomment>
+ <translation>I</translation>
+ </message>
+ <message>
+ <source>U</source>
+ <translatorcomment>Underline</translatorcomment>
+ <translation>S</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translatorcomment>Strikethrough</translatorcomment>
+ <translation>R</translation>
+ </message>
+</context>
+<context>
+ <name>QtxPathListEdit</name>
+ <message>
+ <source>Warning</source>
+ <translation>Avertissement</translation>
+ </message>
+ <message>
+ <source>Path \"%1\" doesn't exist. Add it to list anyway?</source>
+ <translation>Le chemin \"%1\" n'existe pas. Faut-il l'ajouter dans la liste?</translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>Location \"%1\" doesn't point to file</source>
+ <translation>La location \"%1\" ne contient pas d'indication du fichier</translation>
+ </message>
+ <message>
+ <source>Location \"%1\" doesn't point to directory</source>
+ <translation>La location \"%1\" ne contient pas d'indication du répertoire</translation>
+ </message>
+ <message>
+ <source>Path \"%1\" already exist in the list</source>
+ <translation>Le chemin \"%1\" déjà existe dans la liste</translation>
+ </message>
+</context>
+<context>
+ <name>QtxMRUAction</name>
+ <message>
+ <source>Most Recently Used</source>
+ <translation>Récemment utilisés</translation>
+ </message>
+ <message>
+ <source>Clear</source>
+ <translation>Effacer</translation>
+ </message>
+ <message>
+ <source><Empty></source>
+ <translation><Vide></translation>
+ </message>
+</context>
+<context>
+ <name>QtxDialog</name>
+ <message>
+ <source>&OK</source>
+ <translation>&OK</translation>
+ </message>
+ <message>
+ <source>&Cancel</source>
+ <translation>&Annuler</translation>
+ </message>
+ <message>
+ <source>C&lose</source>
+ <translation>&Fermer</translation>
+ </message>
+ <message>
+ <source>&Help</source>
+ <translation>&Aide</translation>
+ </message>
+ <message>
+ <source>&Apply</source>
+ <translation>A&ppliquer</translation>
+ </message>
+ <message>
+ <source>&Yes</source>
+ <translation>&Oui</translation>
+ </message>
+ <message>
+ <source>&No</source>
+ <translation>&Non</translation>
+ </message>
+</context>
+<context>
+ <name>QtxSearchTool</name>
+ <message>
+ <source>Case sensitive</source>
+ <translation>Sensible à la casse</translation>
+ </message>
+ <message>
+ <source>Regular expression</source>
+ <translation>Expression régulaire</translation>
+ </message>
+ <message>
+ <source>Wrap search</source>
+ <translation>Terminer la recherche</translation>
+ </message>
+</context>
+<context>
+ <name>QtxSplash</name>
+ <message>
+ <source>Error</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>&OK</source>
+ <translation>&OK</translation>
+ </message>
+</context>
+<context>
+ <name>QtxWorkstack</name>
+ <message>
+ <source>Split vertically</source>
+ <translation>Diviser verticalement</translation>
+ </message>
+ <message>
+ <source>Split horizontally</source>
+ <translation>Diviser horisontalement</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation>Fermer</translation>
+ </message>
+ <message>
+ <source>Rename</source>
+ <translation>Renommer</translation>
+ </message>
+ <message>
+ <source>Enter new name:</source>
+ <translation>Indiquer un nouveau nom</translation>
+ </message>
+</context>
+<context>
+ <name>QtxWorkstackAction</name>
+ <message>
+ <source>Split the active window on two vertical parts</source>
+ <translation>Diviser la fenêtre actuelle en deux parties verticales</translation>
+ </message>
+ <message>
+ <source>Split vertically</source>
+ <translation>Diviser à la verticale</translation>
+ </message>
+ <message>
+ <source>Split the active window on two horizontal parts</source>
+ <translation>Diviser la fenêtre actuelle en deux parties horisontales</translation>
+ </message>
+ <message>
+ <source>Split horizontally</source>
+ <translation>Diviser à l'horisontale</translation>
+ </message>
+</context>
+<context>
+ <name>QtxColorButton</name>
+ <message>
+ <source>Auto</source>
+ <translation>Auto</translation>
+ </message>
+ <message>
+ <source>Other colors...</source>
+ <translation>Autres couleurs...</translation>
+ </message>
+</context>
+<context>
+ <name>QtxColorScale</name>
+ <message>
+ <source>Color scale</source>
+ <translation>Echelle de couleurs</translation>
+ </message>
+</context>
+</TS>
nodist_salomeres_DATA = \
QxGraph_images.qm \
- QxGraph_msg_en.qm
+ QxGraph_msg_en.qm \
+ QxGraph_msg_fr.qm
libQxGraph_la_CPPFLAGS = $(QT_INCLUDES) $(CAS_CPPFLAGS) $(PYTHON_INCLUDES) $(BOOST_CPPFLAGS) \
-I$(srcdir)/../Qtx -I$(srcdir)/../SUIT
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>MEN_CHANGE_BACKGROUND</source>
+ <translation>Changer l'arrier-plan...</translation>
+ </message>
+ <message>
+ <source>MNU_PAN_VIEW</source>
+ <translation>Redimensionnement</translation>
+ </message>
+ <message>
+ <source>DSC_PAN_VIEW</source>
+ <translation>Redimensionner la vue</translation>
+ </message>
+ <message>
+ <source>MNU_RESET_VIEW</source>
+ <translation>Restaurer</translation>
+ </message>
+ <message>
+ <source>DSC_RESET_VIEW</source>
+ <translation>Restaurer le Point de Vue</translation>
+ </message>
+ <message>
+ <source>LBL_TOOLBAR_LABEL</source>
+ <translation>Opérations de Visualisation</translation>
+ </message>
+</context>
+</TS>
nodist_salomeres_DATA= \
QxSceneViewer_images.qm \
- QxSceneViewer_msg_en.qm
+ QxSceneViewer_msg_en.qm \
+ QxSceneViewer_msg_fr.qm
libQxScene_la_CPPFLAGS=$(QT_INCLUDES) $(CAS_CPPFLAGS) $(PYTHON_INCLUDES) $(BOOST_CPPFLAGS) \
-I$(srcdir)/../Qtx -I$(srcdir)/../SUIT
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>MEN_CHANGE_BACKGROUND</source>
+ <translation>Changer l'arrier-plan</translation>
+ </message>
+ <message>
+ <source>MNU_PAN_VIEW</source>
+ <translation>Redimensionnement</translation>
+ </message>
+ <message>
+ <source>DSC_PAN_VIEW</source>
+ <translation>Redimensionner la vue</translation>
+ </message>
+ <message>
+ <source>MNU_RESET_VIEW</source>
+ <translation>Restaurer</translation>
+ </message>
+ <message>
+ <source>DSC_RESET_VIEW</source>
+ <translation>Restaurer le Point de Vue</translation>
+ </message>
+ <message>
+ <source>LBL_TOOLBAR_LABEL</source>
+ <translation>Opérations de Visualisation</translation>
+ </message>
+</context>
+<context>
+ <name>QxScene_ViewManager</name>
+ <message>
+ <source>QXSCENE_VIEW_TITLE</source>
+ <translation>QGraphics scène:%M - visualisateur:%V</translation>
+ </message>
+</context>
+</TS>
nodist_salomeres_DATA = \
STD_images.qm \
- STD_msg_en.qm
+ STD_msg_en.qm \
+ STD_msg_fr.qm
libstd_la_CPPFLAGS = $(QT_INCLUDES) -I$(srcdir)/../SUIT -I$(srcdir)/../Qtx
libstd_la_LDFLAGS = $(QT_MT_LIBS)
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>TOT_DESK_EDIT_CUT</source>
+ <translation>Découpe</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_EDIT_CUT</source>
+ <translation>Couper la sélection et la placer dans la presse-papier</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_EDIT_CUT</source>
+ <translation>&Découper</translation>
+ </message>
+ <message>
+ <source>ERR_APP_NOAPP</source>
+ <translation>Pas d'application</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_WINDOW</source>
+ <translation>&Fenêtre</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_EDIT_COPY</source>
+ <translation>Copier</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_WINDOW_CASCADE</source>
+ <translation>&Cascade</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_EDIT_COPY</source>
+ <translation>Copier la sélection dans la presse-papiers</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_WINDOW_CASCADE</source>
+ <translation>Ranger les fenêtres en pavés superposés</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_SAVEAS</source>
+ <translation>Enregistrer le document sous...</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_EDIT_COPY</source>
+ <translation>&Copier</translation>
+ </message>
+ <message>
+ <source>MSG_CANT_SAVE</source>
+ <translation>Impossible de sauvegarder le fichier "%1".</translation>
+ </message>
+ <message>
+ <source>INF_DESK_TOOLBAR_STANDARD</source>
+ <translation>Standard</translation>
+ </message>
+ <message>
+ <source>ALL_FILES</source>
+ <translation>Tous les Fichiers (*.*)</translation>
+ </message>
+ <message>
+ <source>DESK_DEFAULTTITLE</source>
+ <translation>Qt Framework d'Applications</translation>
+ </message>
+ <message>
+ <source>QUE_DESK_EXIT</source>
+ <translation>Etes-vous sûr que vous voulez abandonner?</translation>
+ </message>
+ <message>
+ <source>INF_INFO</source>
+ <translation>Information</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_UNKNOWNTYPE_OPEN</source>
+ <translation>Vous essayez d'ouvrir le document d'un type inconnu
+( %1 )</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_UNKNOWNTYPE_SAVE</source>
+ <translation>Vous essayez de sauvegarder le document sous un type inconnu
+( %1 )</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_NEWWINDOW</source>
+ <translation>Créer une nouvelle fenêtre</translation>
+ </message>
+ <message>
+ <source>BUT_CANCEL</source>
+ <translation>&Annuler</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_HELP_ABOUT</source>
+ <translation>&A propos de...</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_NEWWINDOW</source>
+ <translation>Créer une nouvelle Fenêtre</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_VIEW_STATUSBAR</source>
+ <translation>&Barre de Status</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_NEWWINDOW</source>
+ <translation>&Nouvelle Fenêtre</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_VIEW_STATUSBAR</source>
+ <translation>Activer ou désactiver la barre de status</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_DIRWITHNAMEEXIST_SAVE</source>
+ <translation>Impossible de sauvegarder le fichier %1.
+Le répertoir avec ce nom existe sur la disque. Essayez d'utiliser un autre nom</translation>
+ </message>
+ <message>
+ <source>BUT_NO</source>
+ <translation>N&on</translation>
+ </message>
+ <message>
+ <source>BUT_OK</source>
+ <translation>O&k</translation>
+ </message>
+ <message>
+ <source>FILTER_FILES</source>
+ <translation>%1 Fichiers (%2)</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_WINDOW_ACTIVATE</source>
+ <translation>Activer la fenêtre</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_PRINT</source>
+ <translation>Imprimer un document</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_CLOSE</source>
+ <translation>Fermer le document</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_NEW</source>
+ <translation>Créer un nouveau document</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_NEW</source>
+ <translation>Créer un nouveau document</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_MRU</source>
+ <translation>Ouvrir un document</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_NEW</source>
+ <translation>&Nouveau</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_MRU</source>
+ <translation>&Fichiers Recents</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_EDIT_PASTE</source>
+ <translation>Coller</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_VIEW_DOCKWINDOWS</source>
+ <translation>W&indows</translation>
+ </message>
+ <message>
+ <source>BUT_YES</source>
+ <translation>O&ui</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_VIEW</source>
+ <translation>&Vue</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_HELP_ABOUT</source>
+ <translation>Montre la dialogue 'A propos'</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE</source>
+ <translation>Fic&hier</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_EDIT</source>
+ <translation>&Editer</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_HELP</source>
+ <translation>A&ide</translation>
+ </message>
+ <message>
+ <source>ERR_ERROR</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>ERR_DESK_NOAPP</source>
+ <translation>Pas d'applications enregistrées</translation>
+ </message>
+ <message>
+ <source>INF_DESK_DOC_CREATE</source>
+ <translation>Créer un nouveau document</translation>
+ </message>
+ <message>
+ <source>QUE_DOC_ALREADYOPEN</source>
+ <translation>Le document %1 est déjà ouvert.
+Voulez-vous le rouvrir?</translation>
+ </message>
+ <message>
+ <source>BUT_APPLY</source>
+ <translation>A&ppliquer</translation>
+ </message>
+ <message>
+ <source>BUT_CLOSE</source>
+ <translation>&Fermer</translation>
+ </message>
+ <message>
+ <source>INF_DESK_EXIT</source>
+ <translation>Abandonner</translation>
+ </message>
+ <message>
+ <source>ERR_UNKNOWN</source>
+ <translation>Erreur Inconnue</translation>
+ </message>
+ <message>
+ <source>BUT_HELP</source>
+ <translation>A&ide</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_CLOSE</source>
+ <translation>Fermer le document actuel</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_PRINT</source>
+ <translation>imprimer le document actuel</translation>
+ </message>
+ <message>
+ <source>WRN_WARNING</source>
+ <translation>Avertissement</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_HELP_ABOUT</source>
+ <translation>A propos...</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_VIEW_TOOLBARS</source>
+ <translation>Barres d'&Outils</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_WINDOW_HSPLIT</source>
+ <translation>Diviser la fenêtre actuelle en deux parties horizontales</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_WINDOW_HSPLIT</source>
+ <translation>Division &Horizontale</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_EDIT_PASTE</source>
+ <translation>Insérer le contenu du Presse-papiers au point d'insertion</translation>
+ </message>
+ <message>
+ <source>DLG_LOAD_STUDY_CAPTION</source>
+ <translation>Ouvrir une Etude</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_HELP_SEARCH</source>
+ <translation>Chercher de l'information sur le sujet</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_SAVEAS</source>
+ <translation>Sauvegarder le document actuel sous un nouveau nom</translation>
+ </message>
+ <message>
+ <source>INF_READY</source>
+ <translation>Prêt</translation>
+ </message>
+ <message>
+ <source>INF_CANCELLED</source>
+ <translation>Annulé</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_WINDOW_VSPLIT</source>
+ <translation>Diviser la fenêtre actuelle en deux parties verticales</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_WINDOW_VSPLIT</source>
+ <translation>Division &Verticale</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_WINDOW_TILE</source>
+ <translation>Ranger les fenêtres en pavés non-superposés</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_HELP_CONTENTS</source>
+ <translation>&Contenu</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_HELP_CONTENTS</source>
+ <translation>Montre le sommaire de la référence documentaire</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_WINDOW_HTILE</source>
+ <translation>&Paver Horizontalement</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_WINDOW_VTILE</source>
+ <translation>Paver Vertica&lement</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_PERMISSIONDENIED_SAVE</source>
+ <translation>Impossible de sauvegardet le fichier %1. Authorisaton refusée.</translation>
+ </message>
+ <message>
+ <source>INF_DESK_DOCALREADYOPEN</source>
+ <translation>Impossible de sauvegarder le document sous un nom du document déjà ouvert.
+Indiquez un autre nom du document que vous allez sauvegarder.
+( %1 )</translation>
+ </message>
+ <message>
+ <source>TIT_FILE_SAVEAS</source>
+ <translation>Enregistrer sous</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_CLOSE</source>
+ <translation>Fer&mer</translation>
+ </message>
+ <message>
+ <source>MSG_FILE_EXISTS</source>
+ <translation>Le Fichier "%1" déjà existe.
+Voulez-vous le réécrire?</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_PRINT</source>
+ <translation>&Imprimer</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_HELP_SEARCH</source>
+ <translation>&Recherche...</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_VIEW_STDTOOLBAR</source>
+ <translation>&Standard</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_SAVEAS</source>
+ <translation>Enre&gistrer Sous...</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_VIEW_STDTOOLBAR</source>
+ <translation>Activer ou désactiver la barre usuelle</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_SAVE</source>
+ <translation>Enregistrer un document</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_EXIT</source>
+ <translation>Abandonner l'application</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_LOAD</source>
+ <translation>Ouvrir le document</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_OPEN</source>
+ <translation>Ouvrir un document</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_REOPEN</source>
+ <translation>Rouvrir un document</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_EXIT</source>
+ <translation>Abandonner l'application</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_OPEN</source>
+ <translation>Ouvrir un document</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_REOPEN</source>
+ <translation>Rouvrir le document actuel d'un fichier</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_SAVE</source>
+ <translation>Sauvegarder le document actuel</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_LOAD</source>
+ <translation>Ouvrir un document</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_WINDOW_HTILE</source>
+ <translation>Ranger les fenêtres en pavés horizontales non-superposés</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_WINDOW_VTILE</source>
+ <translation>Ranger les fenêtres en pavés verticales non-superposés</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_WINDOW_TILE</source>
+ <translation>&Pavé</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_EXIT</source>
+ <translation>A&bandonner</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_OPEN</source>
+ <translation>&Ouvrir...</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_REOPEN</source>
+ <translation>&Rouvrir</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_LOAD</source>
+ <translation>Connec&ter...</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_SAVE</source>
+ <translation>&Enregistrer</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_EDIT_PASTE</source>
+ <translation>Co&ller</translation>
+ </message>
+ <message>
+ <source>MEN_STUDIES_CHOICE</source>
+ <translation>Choisir l'Etude Existante</translation>
+ </message>
+</context>
+<context>
+ <name>STD_Application</name>
+ <message>
+ <source>INF_DOC_MODIFIED</source>
+ <translation>Le document a été modifié.
+Voulez-vous sauvegarder les modifications?</translation>
+ </message>
+ <message>
+ <source>INF_DOC_SAVING</source>
+ <translation>Sauvegarder l'étude</translation>
+ </message>
+ <message>
+ <source>INF_DOC_SAVED</source>
+ <translation>L'étude %1 est sauvegardée</translation>
+ </message>
+ <message>
+ <source>TOT_DOCK_WINDOWS</source>
+ <translation>Montrer / cacher les fenêtres encrables et les barres d'outils</translation>
+ </message>
+ <message>
+ <source>MEN_DOCK_WINDOWS</source>
+ <translation>Fenêtres et Barres d'outils</translation>
+ </message>
+ <message>
+ <source>ABOUT_INFO</source>
+ <translation>SUIT Std application</translation>
+ </message>
+ <message>
+ <source>INF_DOC_SAVING_FAILS</source>
+ <translation>Impossible de sauvegarder le fichier "%1".
+Probablement, l'action n'est pas authorisée ou la disque est remplie.
+Essayez d'utiliser un autre nom de fichier.</translation>
+ </message>
+ <message>
+ <source>INF_DOCUMENT_MODIFIED</source>
+ <translation>Le document "%1" a été modifié.
+Voulez-vous sauvegarder les changements?</translation>
+ </message>
+ <message>
+ <source>CLOSE_STUDY</source>
+ <translation>Fermer l'étude actuelle</translation>
+ </message>
+ <message>
+ <source>CLOSE_QUESTION</source>
+ <translation>Voulez-vous sauvegarder l'étude avant de la fermer?</translation>
+ </message>
+ <message>
+ <source>REOPEN_STUDY</source>
+ <translation>Rouvrir l'étude</translation>
+ </message>
+ <message>
+ <source>REOPEN_QUESTION</source>
+ <translation>Voulez-vous rouvrir l'étude?
+Toutes les modifications introduites après le dernier enregistrement seront perdues.</translation>
+ </message>
+</context>
+</TS>
SUIT_TreeModel.h \
SUIT_ViewManager.h \
SUIT_ViewModel.h \
- SUIT_ViewWindow.h
+ SUIT_ViewWindow.h \
+ SUIT_ShortcutMgr.h
dist_libsuit_la_SOURCES = \
SUIT_Accel.cxx \
SUIT_TreeModel.cxx \
SUIT_ViewManager.cxx \
SUIT_ViewModel.cxx \
- SUIT_ViewWindow.cxx
+ SUIT_ViewWindow.cxx \
+ SUIT_ShortcutMgr.cxx
MOC_FILES = \
SUIT_Accel_moc.cxx \
SUIT_TreeModel_moc.cxx \
SUIT_ViewManager_moc.cxx \
SUIT_ViewModel_moc.cxx \
- SUIT_ViewWindow_moc.cxx
+ SUIT_ViewWindow_moc.cxx \
+ SUIT_ShortcutMgr_moc.cxx
nodist_libsuit_la_SOURCES = $(MOC_FILES)
nodist_salomeres_DATA = \
- SUIT_msg_en.qm
+ SUIT_msg_en.qm \
+ SUIT_msg_fr.qm
libsuit_la_CPPFLAGS = $(QT_INCLUDES) -I$(srcdir)/../Qtx -I$(srcdir)/../ObjBrowser
#include "SUIT_Session.h"
#include "SUIT_Desktop.h"
#include "SUIT_ResourceMgr.h"
+#include "SUIT_ShortcutMgr.h"
#include <QTimer>
#include <QLabel>
#include <QtxActionMenuMgr.h>
#include <QtxActionToolMgr.h>
+
/*!
\class StatusLabel
\brief Status bar customization label. Used to workaroubd desktop resizing bug.
{
if ( desktop() )
desktop()->show();
+
+ // Initialize shortcut manager
+ SUIT_ShortcutMgr::Init();
}
/*!
return SUIT_Session::session()->resourceMgr();
}
+/*!
+ \brief Get access to shortcut manager.
+ \return global shortcut manager
+*/
+SUIT_ShortcutMgr* SUIT_Application::shortcutMgr() const
+{
+ return SUIT_ShortcutMgr::getShortcutMgr();
+}
+
#define DEFAULT_MESSAGE_DELAY 3000
/*!
*/
QAction* SUIT_Application::createAction( const int id, const QString& text, const QIcon& icon,
const QString& menu, const QString& tip, const int key,
- QObject* parent, const bool toggle, QObject* reciever, const char* member )
+ QObject* parent, const bool toggle, QObject* reciever,
+ const char* member, const QString& shortcutAction )
{
- QtxAction* a = new QtxAction( text, icon, menu, key, parent, toggle );
+ QtxAction* a = new QtxAction( text, icon, menu, key, parent, toggle, shortcutAction );
a->setStatusTip( tip );
if ( reciever && member )
class SUIT_Desktop;
class SUIT_ViewModel;
class SUIT_ResourceMgr;
+class SUIT_ShortcutMgr;
class SUIT_Study;
#ifdef WIN32
SUIT_ResourceMgr* resourceMgr() const;
+ SUIT_ShortcutMgr* shortcutMgr() const;
+
//! Puts the message to the status bar
void putInfo ( const QString&, const int = 0 );
int registerAction( const int, QAction* );
QAction* createAction( const int, const QString&, const QIcon&, const QString&,
const QString&, const int, QObject* = 0,
- const bool = false, QObject* = 0, const char* = 0 );
+ const bool = false, QObject* = 0, const char* = 0,
+ const QString& = QString() );
protected slots:
virtual void onDesktopActivated();
SUIT_Study* myStudy;
SUIT_Desktop* myDesktop;
QMap<int, QAction*> myActionMap;
+ SUIT_ShortcutMgr* myShortcutMgr;
QLabel* myStatusLabel;
};
--- /dev/null
+// Copyright (C) 2007-2010 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.
+//
+// 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
+//
+
+#include "SUIT_ShortcutMgr.h"
+
+#include "SUIT_Session.h"
+#include "SUIT_ResourceMgr.h"
+
+#include <QtxAction.h>
+
+#include <QApplication>
+#include <QActionEvent>
+
+SUIT_ShortcutMgr* SUIT_ShortcutMgr::myShortcutMgr = NULL;
+
+/*!
+ \brief Constructor
+*/
+SUIT_ShortcutMgr::SUIT_ShortcutMgr()
+: QObject()
+{
+ qApp->installEventFilter( this );
+}
+
+/*!
+ \brief Destructor
+*/
+SUIT_ShortcutMgr::~SUIT_ShortcutMgr()
+{
+ qApp->removeEventFilter( this );
+}
+
+/*!
+ \brief Create new instance of shortcut manager.
+*/
+void SUIT_ShortcutMgr::Init()
+{
+ if( myShortcutMgr==NULL )
+ myShortcutMgr = new SUIT_ShortcutMgr();
+}
+
+/*!
+ \brief Return shortcut manager.
+*/
+SUIT_ShortcutMgr* SUIT_ShortcutMgr::getShortcutMgr()
+{
+ Init();
+
+ return myShortcutMgr;
+}
+
+/*!
+ \brief Custom event filter for qapplication .
+
+ Redefined from QObject::eventFilter();
+*/
+bool SUIT_ShortcutMgr::eventFilter( QObject* o, QEvent* e )
+{
+ if ( e->type() == QEvent::ActionAdded ) {
+ QActionEvent* anActionEvent = (QActionEvent*)e;
+ if (anActionEvent) {
+ QtxAction* anAction = qobject_cast<QtxAction*>( anActionEvent->action() );
+ if ( anAction )
+ processAction( anAction );
+ }
+ }
+
+ return QObject::eventFilter( o, e );
+}
+
+/*!
+ \brief Return key sequence for shortcut action name.
+ \param actionName name of shortcut action in preferences
+ \return key sequence defined in preferences or empty sequence
+*/
+QKeySequence SUIT_ShortcutMgr::getShortcutByActionName( const QString& actionName ) const
+{
+ SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
+
+ QString section = actionName.section( resMgr->sectionsToken(), 0, 0 );
+ section.prepend( QString("shortcuts") + resMgr->sectionsToken() );
+ QString parameter = actionName.section( resMgr->sectionsToken(), 1, 1 );
+
+ QString shortcutValue;
+ bool hasValue = resMgr->value( section, parameter, shortcutValue, false );
+
+ if ( !hasValue )
+ return QKeySequence();
+
+ return QKeySequence::fromString( shortcutValue );
+}
+
+/*!
+ \brief Set shortcut to the given action if the shortcut is defined.
+ \param action action to process
+ */
+void SUIT_ShortcutMgr::processAction( QtxAction* action )
+{
+ QString shortcutActionName = action->shortcutActionName();
+
+ if ( !shortcutActionName.isEmpty() ) {
+ // Add action to the actions map
+ if ( !myShortcutActions.contains( shortcutActionName, action ) ) {
+ myShortcutActions.insert( shortcutActionName, action );
+ connect( action, SIGNAL( destroyed( QObject* ) ),
+ this, SLOT ( onActionDestroyed( QObject* ) ) );
+ }
+
+ QKeySequence keySeq = getShortcutByActionName( shortcutActionName );
+ action->setShortcut( keySeq );
+ }
+}
+
+/*!
+ \brief Enable/disable a shortcuts section.
+
+ Enables or disables actions which belong to the given shortcuts section.
+ Only actions which have an active desktop as a parent widget
+ are taken into account.
+
+ \param section shorcuts section
+ \param on if \c true - action will be enabled, otherwise - disabled
+*/
+void SUIT_ShortcutMgr::setSectionEnabled( const QString& section, const bool on )
+{
+ QMap<QString, QtxAction*>::ConstIterator it;
+ for ( it = myShortcutActions.constBegin(); it != myShortcutActions.constEnd(); ++it ) {
+ QtxAction* action = it.value();
+ QString shortcutActionName = action->shortcutActionName();
+ QString actionSection = shortcutActionName.section( ":", 0, 0 );
+ if ( actionSection == section ) {
+ // Check if the action parent widget equals to the active desktop
+ SUIT_Application* app = SUIT_Session::session()->activeApplication();
+ if ( !app )
+ return;
+ if ( action->parentWidget() == (QWidget*)app->desktop() )
+ action->setEnabled( on );
+ }
+ }
+}
+
+/*!
+ \brief Update shortcuts from preferences.
+*/
+void SUIT_ShortcutMgr::updateShortcuts()
+{
+ QMap<QString, QtxAction*>::ConstIterator it;
+ for ( it = myShortcutActions.constBegin(); it != myShortcutActions.constEnd(); ++it ) {
+ QtxAction* action = it.value();
+ QKeySequence keySeq = getShortcutByActionName( action->shortcutActionName() );
+ action->setShortcut( keySeq );
+ }
+}
+
+/*!
+ \brief Called when the corresponding action is destroyed.
+
+ Removes destroyed action from the actions list.
+
+ \param obj action being destroyed
+*/
+void SUIT_ShortcutMgr::onActionDestroyed( QObject* obj )
+{
+ QtxAction* anAction = (QtxAction*)obj;
+
+ if ( anAction )
+ myShortcutActions.remove( anAction->shortcutActionName(), anAction );
+}
--- /dev/null
+// Copyright (C) 2007-2010 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.
+//
+// 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
+//
+
+#ifndef SUIT_SHORTCUTMGR_H
+#define SUIT_SHORTCUTMGR_H
+
+#include "SUIT.h"
+
+#include <QObject>
+#include <QMultiMap>
+
+class QtxAction;
+
+class QKeySequence;
+
+#if defined WIN32
+#pragma warning( disable: 4251 )
+#endif
+
+/*!
+ \class SUIT_ShortcutMgr
+ \brief Class which manages shortcuts customization.
+*/
+class SUIT_EXPORT SUIT_ShortcutMgr: public QObject
+{
+ Q_OBJECT
+public:
+ static void Init();
+ static SUIT_ShortcutMgr* getShortcutMgr();
+
+ void setSectionEnabled( const QString&, const bool = true );
+ void updateShortcuts();
+
+protected:
+ SUIT_ShortcutMgr();
+ virtual ~SUIT_ShortcutMgr();
+
+private slots:
+ void onActionDestroyed( QObject* );
+
+private:
+ virtual bool eventFilter( QObject* o, QEvent* e );
+
+ void processAction( QtxAction* );
+ QKeySequence getShortcutByActionName( const QString& ) const;
+
+private:
+ static SUIT_ShortcutMgr* myShortcutMgr;
+ QMultiMap<QString, QtxAction*> myShortcutActions;
+};
+
+#if defined WIN32
+#pragma warning( default: 4251 )
+#endif
+
+#endif
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>MEN_DESK_WINDOW</source>
+ <translation>&Fenêtre</translation>
+ </message>
+ <message>
+ <source>ERR_CANT_DUMP_VIEW</source>
+ <translation>Impossible de clicher le contenu de la vue au fichier.</translation>
+ </message>
+ <message>
+ <source>TLT_IMAGE_FILES</source>
+ <translation>Fichiers Images (*.bmp *.png *.jpg *.jpeg)</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_WINDOW_CASCADE</source>
+ <translation>&Cascade</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_WINDOW_CASCADE</source>
+ <translation>Superposer les fenêtres</translation>
+ </message>
+ <message>
+ <source>ERR_DIR_NOT_EXIST</source>
+ <translation>Le répertoire "%1" n'existe pas!</translation>
+ </message>
+ <message>
+ <source>ERR_FILE_NOT_DIR</source>
+ <translation>"%1" n'est pas un répertoire!</translation>
+ </message>
+ <message>
+ <source>CONTINUE</source>
+ <translation>Continuer</translation>
+ </message>
+ <message>
+ <source>CANCEL</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <source>ERR_FILE_NOT_EXIST</source>
+ <translation>Le fichier "%1" n'existe pas!</translation>
+ </message>
+ <message>
+ <source>QUE_DOC_FILEEXISTS</source>
+ <translation>Le fichier %1 déjà existe. Faut-il le réécrire?</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_WINDOW_ACTIVATE</source>
+ <translation>Activer la fenêtre</translation>
+ </message>
+ <message>
+ <source>ERR_PERMISSION_DENIED</source>
+ <translation>Impossible de sauvegarder le fichier "%1".
+Autorisation interdite.</translation>
+ </message>
+ <message>
+ <source>ERR_OPEN_PERMISSION_DENIED</source>
+ <translation>Impossible de sauvegarder le fichier "%1".
+Autorisation interdite.</translation>
+ </message>
+ <message>
+ <source>ERR_DIR_READ_PERMISSION_DENIED</source>
+ <translation>Impossible de sauvegarder le répertoire "%1".
+Autorisation interdite.</translation>
+ </message>
+ <message>
+ <source>ERR_DIR_WRITE_PERMISSION_DENIED</source>
+ <translation>Impossible de sauvegarder le répertoire "%1".
+Autorisation interdite.</translation>
+ </message>
+ <message>
+ <source>ERR_ERROR</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>QUE_FILE_EXISTS</source>
+ <translation>Le fichier "%1" déjà existe.
+Faut-il le réécrire?</translation>
+ </message>
+ <message>
+ <source>WRN_WARNING</source>
+ <translation>Avertissement</translation>
+ </message>
+ <message>
+ <source>TLT_DUMP_VIEW</source>
+ <translation>Clicher la Vue au Fichier</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_WINDOW_TILE</source>
+ <translation>Placer les fenêtres sans superposition</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_WINDOW_VTILE</source>
+ <translation>Paver &Verticalement</translation>
+ </message>
+ <message>
+ <source>INF_DIRECTORIES_FILTER</source>
+ <translation>Répertoires</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_WINDOW_VTILE</source>
+ <translation>Placer les fenêtres verticalement et sans superposition</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_WINDOW_TILE</source>
+ <translation>&Paver</translation>
+ </message>
+ <message>
+ <source>NAME_COLUMN</source>
+ <translation>Nom</translation>
+ </message>
+</context>
+<context>
+ <name>SUIT_Study</name>
+ <message>
+ <source>OPERATION_LAUNCH</source>
+ <translation>Lancer l'Opération</translation>
+ </message>
+ <message>
+ <source>PREVIOUS_NOT_FINISHED</source>
+ <translation>L'opération précédente n'est pas aboutie et sera interrompue</translation>
+ </message>
+</context>
+<context>
+ <name>SUIT_FileDlg</name>
+ <message>
+ <source>LAB_QUICK_PATH</source>
+ <translation>Chemin Court:</translation>
+ </message>
+ <message>
+ <source>BUT_ADD_PATH</source>
+ <translation>Ajouter un chemin</translation>
+ </message>
+ <message>
+ <source>INF_DESK_DOC_OPEN</source>
+ <translation>Ouvrir un Fichier</translation>
+ </message>
+ <message>
+ <source>INF_DESK_DOC_SAVE</source>
+ <translation>Sauvegarder un Fichier</translation>
+ </message>
+ <message>
+ <source>ALL_FILES_FILTER</source>
+ <translation>Tous les Fichiers (*)</translation>
+ </message>
+</context>
+</TS>
nodist_libSUITApp_la_SOURCES = $(MOC_FILES)
-nodist_salomeres_DATA = SUITApp_msg_en.qm
+nodist_salomeres_DATA = SUITApp_msg_en.qm SUITApp_msg_fr.qm
libSUITApp_la_CPPFLAGS = $(QT_INCLUDES) $(PYTHON_INCLUDES) \
-I$(srcdir)/../SUIT -I$(srcdir)/../Qtx -I$(srcdir)/../Style
{
if ( resMgr )
{
- resMgr->loadLanguage( false );
+ resMgr->loadLanguage();
splash = QtxSplash::splash( QPixmap() );
splash->readSettings( resMgr );
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>APP_OK</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <source>APP_ERROR</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>APP_UNK_EXCEPTION</source>
+ <translation>Exception inconnue</translation>
+ </message>
+</context>
+</TS>
nodist_salomeres_DATA = \
SUPERVGraph_images.qm \
- SUPERVGraph_msg_en.qm
+ SUPERVGraph_msg_en.qm \
+ SUPERVGraph_msg_fr.qm
libSUPERVGraph_la_CPPFLAGS = $(QT_INCLUDES) $(CAS_CPPFLAGS) $(PYTHON_INCLUDES) $(BOOST_CPPFLAGS) \
-I$(srcdir)/../Qtx -I$(srcdir)/../SUIT -I$(srcdir)/../OBJECT
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>MNU_PAN_VIEW</source>
+ <translation>Redimensionnement</translation>
+ </message>
+ <message>
+ <source>DSC_PAN_VIEW</source>
+ <translation>Redimensionnement de la vue</translation>
+ </message>
+ <message>
+ <source>MNU_RESET_VIEW</source>
+ <translation>Restaurer</translation>
+ </message>
+ <message>
+ <source>DSC_RESET_VIEW</source>
+ <translation>Restaurer le Point de Vue</translation>
+ </message>
+ <message>
+ <source>LBL_TOOLBAR_LABEL</source>
+ <translation>Opérations de Visualisation</translation>
+ </message>
+</context>
+</TS>
nodist_salomeres_DATA = \
SVTK_msg_en.qm \
+ SVTK_msg_fr.qm \
SVTK_images.qm
libSVTK_la_CPPFLAGS = \
// Projections
anAction = new QtxAction(tr("MNU_FRONT_VIEW"),
theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_FRONT" ) ),
- tr( "MNU_FRONT_VIEW" ), 0, this);
+ tr( "MNU_FRONT_VIEW" ), 0, this, false, "Viewers:Front view");
anAction->setStatusTip(tr("DSC_FRONT_VIEW"));
connect(anAction, SIGNAL(activated()), this, SLOT(onFrontView()));
+ this->addAction(anAction);
mgr->registerAction( anAction, FrontId );
anAction = new QtxAction(tr("MNU_BACK_VIEW"),
theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_BACK" ) ),
- tr( "MNU_BACK_VIEW" ), 0, this);
+ tr( "MNU_BACK_VIEW" ), 0, this, false, "Viewers:Back view");
anAction->setStatusTip(tr("DSC_BACK_VIEW"));
connect(anAction, SIGNAL(activated()), this, SLOT(onBackView()));
+ this->addAction(anAction);
mgr->registerAction( anAction, BackId );
anAction = new QtxAction(tr("MNU_TOP_VIEW"),
theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_TOP" ) ),
- tr( "MNU_TOP_VIEW" ), 0, this);
+ tr( "MNU_TOP_VIEW" ), 0, this, false, "Viewers:Top view");
anAction->setStatusTip(tr("DSC_TOP_VIEW"));
connect(anAction, SIGNAL(activated()), this, SLOT(onTopView()));
+ this->addAction(anAction);
mgr->registerAction( anAction, TopId );
anAction = new QtxAction(tr("MNU_BOTTOM_VIEW"),
theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_BOTTOM" ) ),
- tr( "MNU_BOTTOM_VIEW" ), 0, this);
+ tr( "MNU_BOTTOM_VIEW" ), 0, this, false, "Viewers:Bottom view");
anAction->setStatusTip(tr("DSC_BOTTOM_VIEW"));
connect(anAction, SIGNAL(activated()), this, SLOT(onBottomView()));
+ this->addAction(anAction);
mgr->registerAction( anAction, BottomId );
anAction = new QtxAction(tr("MNU_LEFT_VIEW"),
theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_LEFT" ) ),
- tr( "MNU_LEFT_VIEW" ), 0, this);
+ tr( "MNU_LEFT_VIEW" ), 0, this, false, "Viewers:Left view");
anAction->setStatusTip(tr("DSC_LEFT_VIEW"));
connect(anAction, SIGNAL(activated()), this, SLOT(onLeftView()));
+ this->addAction(anAction);
mgr->registerAction( anAction, LeftId );
anAction = new QtxAction(tr("MNU_RIGHT_VIEW"),
theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_RIGHT" ) ),
- tr( "MNU_RIGHT_VIEW" ), 0, this);
+ tr( "MNU_RIGHT_VIEW" ), 0, this, false, "Viewers:Right view");
anAction->setStatusTip(tr("DSC_RIGHT_VIEW"));
connect(anAction, SIGNAL(activated()), this, SLOT(onRightView()));
+ this->addAction(anAction);
mgr->registerAction( anAction, RightId );
// Reset
anAction = new QtxAction(tr("MNU_RESET_VIEW"),
theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_RESET" ) ),
- tr( "MNU_RESET_VIEW" ), 0, this);
+ tr( "MNU_RESET_VIEW" ), 0, this, false, "Viewers:Reset view");
anAction->setStatusTip(tr("DSC_RESET_VIEW"));
connect(anAction, SIGNAL(activated()), this, SLOT(onResetView()));
+ this->addAction(anAction);
mgr->registerAction( anAction, ResetId );
// onViewTrihedron: Shows - Hides Trihedron
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
<source>LBL_TOBBCENTER</source>
<translation>Set to Bounding Box Center</translation>
</message>
- <message>
+ <message>
<source>LBL_TOORIGIN</source>
<translation>Set to Origin</translation>
</message>
- <message>
+ <message>
<source>LBL_SELECTPOINT</source>
<translation>Select Point from View</translation>
</message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>MNU_FRONT_VIEW</source>
+ <translation>Arrière</translation>
+ </message>
+ <message>
+ <source>ERROR</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>MNU_DUMP_VIEW</source>
+ <translation>Clicher la scène...</translation>
+ </message>
+ <message>
+ <source>DSC_TOP_VIEW</source>
+ <translation>Vue de dessus</translation>
+ </message>
+ <message>
+ <source>MNU_PAN_VIEW</source>
+ <translation>Panoramique</translation>
+ </message>
+ <message>
+ <source>MNU_TOP_VIEW</source>
+ <translation>Devant</translation>
+ </message>
+ <message>
+ <source>DSC_GLOBALPAN_VIEW</source>
+ <translation>Sélection d'un nouveau centre de la vue</translation>
+ </message>
+ <message>
+ <source>DSC_ROTATE_VIEW</source>
+ <translation>Tourner le point de vue autour du centre de la scène</translation>
+ </message>
+ <message>
+ <source>MNU_ZOOM_VIEW</source>
+ <translation>Zoom</translation>
+ </message>
+ <message>
+ <source>DSC_PAN_VIEW</source>
+ <translation>Redimensionner la vue</translation>
+ </message>
+ <message>
+ <source>DSC_LEFT_VIEW</source>
+ <translation>Vue de gauche</translation>
+ </message>
+ <message>
+ <source>DSC_FITALL</source>
+ <translation>Redimensionner la scène pour montrer tous les objets</translation>
+ </message>
+ <message>
+ <source>MNU_FITALL</source>
+ <translation>Montrer Tous</translation>
+ </message>
+ <message>
+ <source>MNU_ROTATE_VIEW</source>
+ <translation>Rotation</translation>
+ </message>
+ <message>
+ <source>DSC_SHOW_TRIHEDRON</source>
+ <translation>Montrer/Cacher les axes de coordonnées dans la scène</translation>
+ </message>
+ <message>
+ <source>DSC_FRONT_VIEW</source>
+ <translation>Vue de devant</translation>
+ </message>
+ <message>
+ <source>MNU_GLOBALPAN_VIEW</source>
+ <translation>Panoramique globale</translation>
+ </message>
+ <message>
+ <source>INF_APP_DUMP_VIEW</source>
+ <translation>Clicher la vue</translation>
+ </message>
+ <message>
+ <source>MNU_BACK_VIEW</source>
+ <translation>Arrière</translation>
+ </message>
+ <message>
+ <source>MNU_SHOW_TRIHEDRON</source>
+ <translation>Montrer les axes de coordonnées</translation>
+ </message>
+ <message>
+ <source>DSC_CHANGINGROTATIONPOINT_VIEW</source>
+ <translation>Changer le point, autour duquel la scène est tournée</translation>
+ </message>
+ <message>
+ <source>MNU_BOTTOM_VIEW</source>
+ <translation>Dessous</translation>
+ </message>
+ <message>
+ <source>MNU_RESET_VIEW</source>
+ <translation>Restaurer</translation>
+ </message>
+ <message>
+ <source>MNU_LEFT_VIEW</source>
+ <translation>Gauche</translation>
+ </message>
+ <message>
+ <source>DSC_RIGHT_VIEW</source>
+ <translation>Vue de droit</translation>
+ </message>
+ <message>
+ <source>MNU_CHANGINGROTATIONPOINT_VIEW</source>
+ <translation>Changer le Point de Rotation</translation>
+ </message>
+ <message>
+ <source>DSC_FITRECT</source>
+ <translation>Redimensionner la scène pour ne montrer que sa partie choisie par l'encadré</translation>
+ </message>
+ <message>
+ <source>MNU_FITRECT</source>
+ <translation>Montrer l'encadré</translation>
+ </message>
+ <message>
+ <source>DSC_BOTTOM_VIEW</source>
+ <translation>Vue de dessous</translation>
+ </message>
+ <message>
+ <source>DSC_DUMP_VIEW</source>
+ <translation>Sauvegarder la scène actuelle au fichier image</translation>
+ </message>
+ <message>
+ <source>DSC_ZOOM_VIEW</source>
+ <translation>Zoomer la vue</translation>
+ </message>
+ <message>
+ <source>VTK_IMAGE_FILES</source>
+ <translation>Fichiers Images (*.bmp *.png *.jpg *.jpeg)</translation>
+ </message>
+ <message>
+ <source>DSC_RESET_VIEW</source>
+ <translation>Restaurer le Point de Vue</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_CANT_SAVE_FILE</source>
+ <translation>Impossible de sauvegarder le fichier</translation>
+ </message>
+ <message>
+ <source>MNU_RIGHT_VIEW</source>
+ <translation>Droit</translation>
+ </message>
+ <message>
+ <source>LBL_TOOLBAR_LABEL</source>
+ <translation>Opérations de Visualisation </translation>
+ </message>
+ <message>
+ <source>DSC_BACK_VIEW</source>
+ <translation>Vue d'arrière</translation>
+ </message>
+ <message>
+ <source>SVTK_IMAGE_FILES</source>
+ <translation>Fichiers Images (*.bmp *.png *.jpg *.jpeg *.pdf *.ps *.eps)</translation>
+ </message>
+ <message>
+ <source>MNU_VIEWPARAMETERS_VIEW</source>
+ <translation>Changer les Paramètres de Visualisation</translation>
+ </message>
+ <message>
+ <source>DSC_VIEWPARAMETERS_VIEW</source>
+ <translation>Changer les paramètres de la vue</translation>
+ </message>
+ <message>
+ <source>MNU_SVTK_PARALLEL_MODE</source>
+ <translation>Mode Orthogonal</translation>
+ </message>
+ <message>
+ <source>DSC_SVTK_PARALLEL_MODE</source>
+ <translation>Choisir la projection orthogonale</translation>
+ </message>
+ <message>
+ <source>MNU_SVTK_PERSPECTIVE_MODE</source>
+ <translation>Mode Perspective</translation>
+ </message>
+ <message>
+ <source>DSC_SVTK_PERSPECTIVE_MODE</source>
+ <translation>Choisir la projection perspective</translation>
+ </message>
+ <message>
+ <source>DSC_SVTK_STYLE_SWITCH</source>
+ <translation>Changer le style d'intéraction</translation>
+ </message>
+ <message>
+ <source>MNU_SVTK_STYLE_SWITCH</source>
+ <translation>Changer le Style d'Interaction</translation>
+ </message>
+</context>
+<context>
+ <name>SVTK_CubeAxesDlg</name>
+ <message>
+ <source>X_AXIS</source>
+ <translation>Axe X</translation>
+ </message>
+ <message>
+ <source>Y_AXIS</source>
+ <translation>Axe Y</translation>
+ </message>
+ <message>
+ <source>Z_AXIS</source>
+ <translation>Axe Z</translation>
+ </message>
+ <message>
+ <source>CAPTION</source>
+ <translation>Axes Graduées</translation>
+ </message>
+ <message>
+ <source>IS_VISIBLE</source>
+ <translation>Est visible</translation>
+ </message>
+ <message>
+ <source>FONT</source>
+ <translation>Font</translation>
+ </message>
+ <message>
+ <source>NAME</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <source>TICK_MARKS</source>
+ <translation>Marques de Graduation</translation>
+ </message>
+ <message>
+ <source>LABELS</source>
+ <translation>Repères</translation>
+ </message>
+ <message>
+ <source>LENGTH</source>
+ <translation>Longueur</translation>
+ </message>
+ <message>
+ <source>NUMBER</source>
+ <translation>Numéro</translation>
+ </message>
+ <message>
+ <source>OFFSET</source>
+ <translation>Décalage</translation>
+ </message>
+ <message>
+ <source>AXIS_NAME</source>
+ <translation>Nom de l'Axe </translation>
+ </message>
+</context>
+<context>
+ <name>SVTK_FontWidget</name>
+ <message>
+ <source>BOLD</source>
+ <translation>Gras</translation>
+ </message>
+ <message>
+ <source>ARIAL</source>
+ <translation>Arial</translation>
+ </message>
+ <message>
+ <source>TIMES</source>
+ <translation>Times</translation>
+ </message>
+ <message>
+ <source>ITALIC</source>
+ <translation>Italique</translation>
+ </message>
+ <message>
+ <source>SHADOW</source>
+ <translation>Ombré</translation>
+ </message>
+ <message>
+ <source>COURIER</source>
+ <translation>Courier</translation>
+ </message>
+</context>
+<context>
+ <name>SVTK_ViewWindow</name>
+ <message>
+ <source>DSC_SVTK_UPDATE_RATE</source>
+ <translation>Fréquence de mise à jour</translation>
+ </message>
+ <message>
+ <source>DSC_SVTK_SCALING</source>
+ <translation>Mise à l'échelle</translation>
+ </message>
+ <message>
+ <source>MNU_SVTK_SCALING</source>
+ <translation>Echelle</translation>
+ </message>
+ <message>
+ <source>MNU_SVTK_GRADUATED_AXES</source>
+ <translation>Axes Graduées</translation>
+ </message>
+ <message>
+ <source>DSC_SVTK_GRADUATED_AXES</source>
+ <translation>Axes Graduées</translation>
+ </message>
+ <message>
+ <source>MNU_SVTK_UPDATE_RATE</source>
+ <translation>Fréquence de mise à jour</translation>
+ </message>
+ <message>
+ <source>DSC_SVTK_RECORDING_START</source>
+ <translation>Commencer l'enregistrement</translation>
+ </message>
+ <message>
+ <source>MNU_SVTK_RECORDING_START</source>
+ <translation>Commencer</translation>
+ </message>
+ <message>
+ <source>DSC_SVTK_RECORDING_PLAY</source>
+ <translation>Reprendre l'enregistrement</translation>
+ </message>
+ <message>
+ <source>MNU_SVTK_RECORDING_PLAY</source>
+ <translation>Reprendre</translation>
+ </message>
+ <message>
+ <source>DSC_SVTK_RECORDING_PAUSE</source>
+ <translation>Pauser l'enregistrement</translation>
+ </message>
+ <message>
+ <source>MNU_SVTK_RECORDING_PAUSE</source>
+ <translation>Pauser</translation>
+ </message>
+ <message>
+ <source>DSC_SVTK_RECORDING_STOP</source>
+ <translation>Arrêter l'enregistrement</translation>
+ </message>
+ <message>
+ <source>MNU_SVTK_RECORDING_STOP</source>
+ <translation>Arrêter</translation>
+ </message>
+ <message>
+ <source>LBL_TOOLBAR_RECORD_LABEL</source>
+ <translation>Opérations d'Enregistrement</translation>
+ </message>
+ <message>
+ <source>MSG_NO_AVI_MAKER</source>
+ <translation>l'outil jpeg2yuv, requis pour enregistrer les fichiers AVI, n'est pas disponible.
+Adressez-vous à la documentation.</translation>
+ </message>
+</context>
+<context>
+ <name>SVTK_NonIsometricDlg</name>
+ <message>
+ <source>LBL_X</source>
+ <translation>X:</translation>
+ </message>
+ <message>
+ <source>LBL_Y</source>
+ <translation>Y:</translation>
+ </message>
+ <message>
+ <source>LBL_Z</source>
+ <translation>Z:</translation>
+ </message>
+ <message>
+ <source>MEN_SCALING</source>
+ <translation>Echelle</translation>
+ </message>
+ <message>
+ <source>DLG_TITLE</source>
+ <translation>Mise à l'échelle</translation>
+ </message>
+</context>
+<context>
+ <name>SVTK_RecorderDlg</name>
+ <message>
+ <source>ALL_DISLPAYED_FRAMES</source>
+ <translation>Enregistrer tous les cadres visualisés</translation>
+ </message>
+ <message>
+ <source>CLOSE</source>
+ <translation>Fermer</translation>
+ </message>
+ <message>
+ <source>DLG_RECORDER_TITLE</source>
+ <translation>Enregistrer</translation>
+ </message>
+ <message>
+ <source>FILE_NAME</source>
+ <translation>Sauvegarder au fichier : </translation>
+ </message>
+ <message>
+ <source>FLT_ALL_FILES</source>
+ <translation>Tous les Fichiers (*.*)</translation>
+ </message>
+ <message>
+ <source>FLT_AVI_FILES</source>
+ <translation>Fichiers AVI (*.avi)</translation>
+ </message>
+ <message>
+ <source>FPS</source>
+ <translation>FPS : </translation>
+ </message>
+ <message>
+ <source>HELP</source>
+ <translation>Aide</translation>
+ </message>
+ <message>
+ <source>PROGRESSIVE</source>
+ <translation>Progressive</translation>
+ </message>
+ <message>
+ <source>QUALITY</source>
+ <translation>Qualité : </translation>
+ </message>
+ <message>
+ <source>RECORDING_MODE</source>
+ <translation>Mode : </translation>
+ </message>
+ <message>
+ <source>SETTINGS</source>
+ <translation>Paramètres</translation>
+ </message>
+ <message>
+ <source>SKIPPED_FRAMES</source>
+ <translation>Enregistrer avec FPS donné</translation>
+ </message>
+ <message>
+ <source>START</source>
+ <translation>Commencer</translation>
+ </message>
+</context>
+<context>
+ <name>SVTK_SetRotationPointDlg</name>
+ <message>
+ <source>LBL_X</source>
+ <translation>X:</translation>
+ </message>
+ <message>
+ <source>LBL_Y</source>
+ <translation>Y:</translation>
+ </message>
+ <message>
+ <source>LBL_Z</source>
+ <translation>Z:</translation>
+ </message>
+ <message>
+ <source>LBL_CENTER_OF_BOUNDING_BOX</source>
+ <translation>Centre de la boîte englobante</translation>
+ </message>
+ <message>
+ <source>RBUTTONGROUP_TITLE</source>
+ <translation>Le type du point de rotation</translation>
+ </message>
+ <message>
+ <source>USE_BBCENTER</source>
+ <translation>Utiliser le Centre de la boîte englobante</translation>
+ </message>
+ <message>
+ <source>LBL_ORIGIN</source>
+ <translation>Origine du système de coordonnées</translation>
+ </message>
+ <message>
+ <source>LBL_SELECTED_POINT</source>
+ <translation>Point Choisi</translation>
+ </message>
+ <message>
+ <source>LBL_TOORIGIN</source>
+ <translation>Réinitialiser</translation>
+ </message>
+ <message>
+ <source>LBL_SELECTPOINT</source>
+ <translation>Choisir un Point dans la Vue</translation>
+ </message>
+ <message>
+ <source>DLG_TITLE</source>
+ <translation>Définir le Point de Rotation </translation>
+ </message>
+</context>
+<context>
+ <name>SVTK_ViewParameterDlg</name>
+ <message>
+ <source>LBL_X</source>
+ <translation>X :</translation>
+ </message>
+ <message>
+ <source>LBL_Y</source>
+ <translation>Y :</translation>
+ </message>
+ <message>
+ <source>LBL_Z</source>
+ <translation>Z :</translation>
+ </message>
+ <message>
+ <source>LBL_DX</source>
+ <translation>DX :</translation>
+ </message>
+ <message>
+ <source>LBL_DY</source>
+ <translation>DY :</translation>
+ </message>
+ <message>
+ <source>LBL_DZ</source>
+ <translation>DZ :</translation>
+ </message>
+ <message>
+ <source>PROJECTION_MODE</source>
+ <translation>Mode de Projection </translation>
+ </message>
+ <message>
+ <source>ORTHOGONAL_MODE</source>
+ <translation>Orthogonal</translation>
+ </message>
+ <message>
+ <source>PERSPECTIVE_MODE</source>
+ <translation>Perspective</translation>
+ </message>
+ <message>
+ <source>USE_BBCENTER</source>
+ <translation>Utiliser le Centre de la Boîte Englobante</translation>
+ </message>
+ <message>
+ <source>LBL_TOBBCENTER</source>
+ <translation>Initialiser au Centre de la Boîte Englobante</translation>
+ </message>
+ <message>
+ <source>LBL_TOORIGIN</source>
+ <translation>Initialiser à l'Origine</translation>
+ </message>
+ <message>
+ <source>LBL_SELECTPOINT</source>
+ <translation>Choisir un Point de la Vue</translation>
+ </message>
+ <message>
+ <source>FOCAL_POINT</source>
+ <translation>Point Focal </translation>
+ </message>
+ <message>
+ <source>CAMERA_POSITION</source>
+ <translation>Position de la Caméra </translation>
+ </message>
+ <message>
+ <source>WORLD_COORDINATES</source>
+ <translation>Coordonnées du Monde </translation>
+ </message>
+ <message>
+ <source>FOCAL_RELATIVE</source>
+ <translation>Relative au Point Focal</translation>
+ </message>
+ <message>
+ <source>PROJECTION_DIRECTION</source>
+ <translation>Direction de la Projection :</translation>
+ </message>
+ <message>
+ <source>FOCAL_DISTANCE</source>
+ <translation>Distance Focale :</translation>
+ </message>
+ <message>
+ <source>VIEW_UP_DIRECTION</source>
+ <translation>Direction du Regard en Haut:</translation>
+ </message>
+ <message>
+ <source>ZOOMING</source>
+ <translation>Zoom</translation>
+ </message>
+ <message>
+ <source>LBL_SCALE</source>
+ <translation>Echelle</translation>
+ </message>
+ <message>
+ <source>LBL_VIEW_ANGLE</source>
+ <translation>Angle de Visualisation</translation>
+ </message>
+ <message>
+ <source>DLG_TITLE</source>
+ <translation>Paramètres de la Visualisation</translation>
+ </message>
+</context>
+<context>
+ <name>SVTK_UpdateRateDlg</name>
+ <message>
+ <source>INFORMATION_FRAME_TITLE</source>
+ <translation>Information sur le Rendu</translation>
+ </message>
+ <message>
+ <source>STILL</source>
+ <translation>La fréquence réduite de mise à jour , FPS</translation>
+ </message>
+ <message>
+ <source>INPUT_FRAME_TITLE</source>
+ <translation>Activer</translation>
+ </message>
+ <message>
+ <source>NUMBER_CELLS</source>
+ <translation>Nombre de Cellules, -</translation>
+ </message>
+ <message>
+ <source>DESIRED</source>
+ <translation>La fréquence de mise à jour requise, FPS</translation>
+ </message>
+ <message>
+ <source>CURRENT_FPS</source>
+ <translation>La fréquence actuelle de mise à jour , FPS</translation>
+ </message>
+ <message>
+ <source>DLG_TITLE</source>
+ <translation>Fréquence de mise à jour </translation>
+ </message>
+</context>
+<context>
+ <name>SVTK_ViewManager</name>
+ <message>
+ <source>VTK_VIEW_TITLE</source>
+ <translation>VTK scène:%1 - visualisateur:%2</translation>
+ </message>
+</context>
+<context>
+ <name>SVTK_Viewer</name>
+ <message>
+ <source>MEN_DUMP_VIEW</source>
+ <translation>Clicher la Vue...</translation>
+ </message>
+ <message>
+ <source>MEN_SHOW_TOOLBAR</source>
+ <translation>Montrer la barre d'outils</translation>
+ </message>
+ <message>
+ <source>MEN_CHANGE_BACKGROUD</source>
+ <translation>Changer l'arrière-plan...</translation>
+ </message>
+</context>
+</TS>
# python modules
salomepython_PYTHON = salome_pluginsmanager.py
+dist_salomescript_DATA = addvars2notebook.py
+
dist_salomeres_DATA = \
resources/SalomeApp.ini \
resources/SalomeApp.xml
nodist_salomeres_DATA = \
SalomeApp_images.qm \
- SalomeApp_msg_en.qm
+ SalomeApp_msg_en.qm \
+ SalomeApp_msg_fr.qm
libSalomeApp_la_CPPFLAGS = $(PYTHON_INCLUDES) $(QT_INCLUDES) $(QWT_INCLUDES) \
$(CAS_CPPFLAGS) $(VTK_INCLUDES) $(BOOST_CPPFLAGS) @KERNEL_CXXFLAGS@ \
#include <QListWidget>
#include <QGridLayout>
#include <QMenu>
+#include <QtDebug>
#include <SALOMEDSClient_ClientFactory.hxx>
#include <Basics_Utils.hxx>
// import/execute python scripts
if ( pyfiles.count() > 0 && activeStudy() ) {
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( activeStudy() );
- if ( appStudy ) {
+ PyConsole_Console* pyConsole = pythonConsole();
+ if ( appStudy && pyConsole ) {
_PTR(Study) aStudy = appStudy->studyDS();
if ( !aStudy->GetProperties()->IsLocked() ) {
for (uint j = 0; j < pyfiles.count(); j++ ) {
QFileInfo fi ( pyfiles[j] );
- PyConsole_Console* pyConsole = pythonConsole();
- if ( pyConsole ) {
- QString extension = fi.suffix().toLower();
- if ( fi.exists() ) {
- // execute python script
- QString command = QString( "execfile(r\"%1\")" ).arg( fi.absoluteFilePath() );
- pyConsole->exec( command );
- }
- else {
- // import python module
- QString command = QString( "import %1" ).arg( pyfiles[j] );
- if ( extension == "py" )
- command = QString( "import %1" ).arg( fi.completeBaseName() );
- pyConsole->exec( command );
- }
+ QFileInfo fipy ( pyfiles[j] + ".py" );
+ QString command = QString( "execfile(r\"%1\")" );
+ if ( fi.isAbsolute() ) {
+ if ( fi.exists() )
+ pyConsole->exec( command.arg( fi.absoluteFilePath() ) );
+ else if ( fipy.exists() )
+ pyConsole->exec( command.arg( fipy.absoluteFilePath() ) );
+ else
+ qDebug() << "Can't execute file" << pyfiles[j];
+ }
+ else {
+ bool found = false;
+ QStringList dirs;
+ dirs << QDir::currentPath();
+ if ( ::getenv( "PYTHONPATH" ) )
+ dirs += QString( ::getenv( "PYTHONPATH" ) ).split( QRegExp( "[:|;]" ) );
+ foreach( QString dir, dirs ) {
+ qDebug() << "try" << QFileInfo( dir, pyfiles[j] ).absoluteFilePath();
+ qDebug() << "try" << QFileInfo( dir, pyfiles[j] + ".py" ).absoluteFilePath();
+ if ( QFileInfo( dir, pyfiles[j] ).exists() ) {
+ pyConsole->exec( command.arg( QFileInfo( dir, pyfiles[j] ).absoluteFilePath() ) );
+ found = true;
+ break;
+ }
+ else if ( QFileInfo( dir, pyfiles[j] + ".py" ).exists() ) {
+ pyConsole->exec( command.arg( QFileInfo( dir, pyfiles[j] + ".py" ).absoluteFilePath() ) );
+ found = true;
+ break;
+ }
+ }
+ if ( !found ) {
+ qDebug() << "Can't execute file" << pyfiles[j];
+ }
}
}
}
--- /dev/null
+
+import os
+import os.path
+
+def addvars2notebook(filename):
+ #
+ vars_and_values = []
+ contents = []
+ #
+ directory = os.path.dirname(filename)
+ base = os.path.basename(filename)
+ prefix = base[:-3] # remove ".py"
+ prefix = prefix + '_'
+ from os import listdir
+ l = listdir(directory)
+ for f in l:
+ if f.find(prefix) != 0: continue
+ if f[-3:] != ".py": continue
+ module = f[len(prefix):-3]
+ try:
+ mod = __import__("addvars2notebook_%s"%(module))
+ except ImportError:
+ continue
+ try:
+ func = mod.addvars2notebook
+ except AttributeError:
+ continue
+ fff = os.path.join(directory, f)
+ content = func(fff, vars_and_values)
+ contents.append([fff, content])
+ pass
+ #
+ if vars_and_values:
+ stream = open(filename)
+ content = stream.read()
+ stream.close()
+ fields = content.split("import iparameters")
+ if len(fields) == 2:
+ begin = fields[0]
+ if begin.find("## NoteBook E.A.") >= 0:
+ begin = begin.split("## NoteBook E.A.")[0]
+ pass
+ end = "import iparameters" + fields[1]
+ content = begin
+ content += "## NoteBook E.A.\n"
+ for var, value in vars_and_values:
+ content += "notebook.set(%s,%s)\n"%(var.__repr__(), value)
+ pass
+ content += end
+ stream = open(filename, "w")
+ stream.write(content)
+ stream.close()
+ #
+ for fff, content in contents:
+ stream = open(fff, "w")
+ stream.write(content)
+ stream.close()
+ pass
+ pass
+ pass
+ #
+ return
+
+if __name__ == "__main__":
+ import sys
+ addvars2notebook(sys.argv[1])
+ pass
</section>
<section name="language">
<!-- Language settings (resource manager)-->
+ <parameter name="languages" value="en,fr"/>
<parameter name="language" value="en"/>
<parameter name="translators" value="%P_msg_%L.qm|%PM_msg_%L.qm|%P_icons.qm|%P_images.qm|%PM_images.qm"/>
</section>
</section>
<section name="resources">
<!-- Resource directories (resource manager)-->
+ <parameter name="Qtx" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="Style" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
<parameter name="SUIT" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
<parameter name="STD" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
<parameter name="Plot2d" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
<parameter name="User's Guide" value="${KERNEL_ROOT_DIR}/share/doc/salome/gui/KERNEL/index.html"/>
<parameter name="Developer's Guide" value="${KERNEL_ROOT_DIR}/share/doc/salome/tui/KERNEL/index.html"/>
</section>
+ <!--Salome shortcut settings-->
+ <section name="shortcuts_settings">
+ <parameter name="general_sections" value="General;Viewers"/>
+ </section>
+ <section name="shortcuts:General">
+ <parameter name="Show object(s)" value="Ctrl+S"/>
+ <parameter name="Hide object(s)" value="Ctrl+H" />
+ </section>
+ <section name="shortcuts:Viewers">
+ <parameter name="Front view" value="Ctrl+Alt+F"/>
+ <parameter name="Back view" value="Ctrl+Alt+B"/>
+ <parameter name="Top view" value="Ctrl+Alt+T"/>
+ <parameter name="Bottom view" value="Ctrl+Alt+B"/>
+ <parameter name="Left view" value="Ctrl+Alt+L"/>
+ <parameter name="Right view" value="Ctrl+Alt+R"/>
+ <parameter name="Reset view" value="Ctrl+Alt+R"/>
+ </section>
+ <section name="shortcuts:Geometry">
+ <parameter name="Increase number of isolines" value="Meta+I"/>
+ <parameter name="Decrease number of isolines" value="Ctrl+Alt+G"/>
+ <parameter name="Increase transparency" value="Ctrl+Alt+T"/>
+ <parameter name="Decrease transparency" value="Alt+T"/>
+ </section>
</document>
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
</message>
<message>
<source>ERR_INCOMPATIBLE_TYPE</source>
- <translation>Variable with name "%1" has incompatible numeric type</translation>
+ <translation>Variable with name "%1" has incompatible numeric type</translation>
</message>
<message>
<source>ERR_INVALID_VALUE</source>
- <translation>Value hasn't been validated</translation>
+ <translation>Value hasn't been validated</translation>
</message>
<message>
<source>ERR_NO_VARIABLE</source>
- <translation>Variable with name "%1" doesn't exist</translation>
+ <translation>Variable with name "%1" doesn't exist</translation>
</message>
</context>
<context>
<source>TOT_DESK_CATALOG_GENERATOR</source>
<translation>Catalog generator</translation>
</message>
+ <message>
+ <source>TOT_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>Add vars to notebook</translation>
+ </message>
<message>
<source>PUBLISH_IN_STUDY</source>
<translation>Publish in study</translation>
<source>PRP_DESK_CATALOG_GENERATOR</source>
<translation>Generates XML catalog of a component's interface</translation>
</message>
+ <message>
+ <source>PRP_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>Add variables of the study to the notebook</translation>
+ </message>
<message>
<source>PRP_DESK_FILE_DUMP_STUDY</source>
<translation>Dumps study to the python script</translation>
<source>MEN_DESK_CATALOG_GENERATOR</source>
<translation>Catalog &Generator</translation>
</message>
+ <message>
+ <source>MEN_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>Add vars to NoteBook</translation>
+ </message>
<message>
<source>APPCLOSE_CAPTION</source>
<translation>Close active study</translation>
</context>
<context>
<name>NoteBook_Table</name>
- <message>
- <source>REMOVE_VARIABLE_IS_USED</source>
- <translation>Variable with name "%1" is used in the study.
+ <message>
+ <source>REMOVE_VARIABLE_IS_USED</source>
+ <translation>Variable with name "%1" is used in the study.
Do you really want to remove it?</translation>
- </message>
- <message>
- <source>RENAME_VARIABLE_IS_USED</source>
- <translation>Variable with name "%1" is used in the study.
+ </message>
+ <message>
+ <source>RENAME_VARIABLE_IS_USED</source>
+ <translation>Variable with name "%1" is used in the study.
Do you really want to rename it?</translation>
- </message>
- <message>
- <source>VARNAME_COLUMN</source>
- <translation>Variable Name</translation>
- </message>
- <message>
- <source>VARVALUE_COLUMN</source>
- <translation>Variable Value</translation>
- </message>
- <message>
- <source>VARVALUE_INCORRECT</source>
- <translation>Variable Value Incorrect: %1</translation>
- </message>
- <message>
- <source>VARNAME_INCORRECT</source>
- <translation>Variable Name Incorrect :%1</translation>
- </message>
- <message>
- <source>VARNAME_EXISTS</source>
- <translation>Variable with name "%1" exists</translation>
- </message>
+ </message>
+ <message>
+ <source>VARNAME_COLUMN</source>
+ <translation>Variable Name</translation>
+ </message>
+ <message>
+ <source>VARVALUE_COLUMN</source>
+ <translation>Variable Value</translation>
+ </message>
+ <message>
+ <source>VARVALUE_INCORRECT</source>
+ <translation>Variable Value Incorrect: %1</translation>
+ </message>
+ <message>
+ <source>VARNAME_INCORRECT</source>
+ <translation>Variable Name Incorrect :%1</translation>
+ </message>
+ <message>
+ <source>VARNAME_EXISTS</source>
+ <translation>Variable with name "%1" exists</translation>
+ </message>
</context>
<context>
<name>SalomeApp_NoteBookDlg</name>
- <message>
- <source>NOTEBOOK_TITLE</source>
- <translation>Salome NoteBook</translation>
- </message>
- <message>
- <source>BUT_UPDATE_STUDY</source>
- <translation>&Update Study</translation>
- </message>
- <message>
- <source>BUT_REMOVE</source>
- <translation>&Remove</translation>
- </message>
- <message>
- <source>BUT_APPLY_AND_CLOSE</source>
- <translation>A&pply and Close</translation>
- </message>
- <message>
- <source>BUT_HELP</source>
- <translation>&Help</translation>
- </message>
- <message>
- <source>CLOSE_CAPTION</source>
- <translation>Close NoteBook</translation>
- </message>
- <message>
- <source>CLOSE_DESCRIPTION</source>
- <translation>Do you want to save changes you made to NoteBook?</translation>
- </message>
- <message>
- <source>INCORRECT_DATA</source>
- <translation>At least one variable has been defined incorrectly.
+ <message>
+ <source>NOTEBOOK_TITLE</source>
+ <translation>Salome NoteBook</translation>
+ </message>
+ <message>
+ <source>BUT_UPDATE_STUDY</source>
+ <translation>&Update Study</translation>
+ </message>
+ <message>
+ <source>BUT_REMOVE</source>
+ <translation>&Remove</translation>
+ </message>
+ <message>
+ <source>BUT_APPLY_AND_CLOSE</source>
+ <translation>A&pply and Close</translation>
+ </message>
+ <message>
+ <source>BUT_HELP</source>
+ <translation>&Help</translation>
+ </message>
+ <message>
+ <source>CLOSE_CAPTION</source>
+ <translation>Close NoteBook</translation>
+ </message>
+ <message>
+ <source>CLOSE_DESCRIPTION</source>
+ <translation>Do you want to save changes you made to NoteBook?</translation>
+ </message>
+ <message>
+ <source>INCORRECT_DATA</source>
+ <translation>At least one variable has been defined incorrectly.
Please edit its parameters or remove it from table.</translation>
- </message>
- <message>
- <source>ERR_UPDATE_STUDY_FAILED</source>
- <translation>Failed to update study!</translation>
- </message>
+ </message>
+ <message>
+ <source>ERR_UPDATE_STUDY_FAILED</source>
+ <translation>Failed to update study!</translation>
+ </message>
</context>
<context>
- <name>SalomeApp_DoubleSpinBox</name>
- <message>
- <source>VALID_RANGE_VAR_MSG</source>
- <translation>Specify either a variable name or
+ <name>SalomeApp_DoubleSpinBox</name>
+ <message>
+ <source>VALID_RANGE_VAR_MSG</source>
+ <translation>Specify either a variable name or
a floating-point value in range ( %1; %2 )
with %3-digit precision</translation>
- </message>
- <message>
- <source>VALID_RANGE_NOVAR_MSG</source>
- <translation>Specify a floating-point value in range ( %1; %2 )
+ </message>
+ <message>
+ <source>VALID_RANGE_NOVAR_MSG</source>
+ <translation>Specify a floating-point value in range ( %1; %2 )
with %3-digit precision</translation>
- </message>
+ </message>
</context>
<context>
- <name>SalomeApp_IntSpinBox</name>
- <message>
- <source>VALID_RANGE_VAR_MSG</source>
- <translation>Specify either a variable name or
+ <name>SalomeApp_IntSpinBox</name>
+ <message>
+ <source>VALID_RANGE_VAR_MSG</source>
+ <translation>Specify either a variable name or
an integer value in range ( %1; %2 )</translation>
- </message>
- <message>
- <source>VALID_RANGE_NOVAR_MSG</source>
- <translation>Specify an integer value in range ( %1; %2 )</translation>
- </message>
+ </message>
+ <message>
+ <source>VALID_RANGE_NOVAR_MSG</source>
+ <translation>Specify an integer value in range ( %1; %2 )</translation>
+ </message>
</context>
</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>WRN_FILE_NAME_BAD</source>
+ <translation>Indiquez le nom de fichier correctement.
+Le fichier Python ne devrait inclure que de lettres, chiffres et soulignages et commencer avec une lettre ou soulignage.</translation>
+ </message>
+ <message>
+ <source>WRN_FILE_NOT_EXIST</source>
+ <translation>Le fichier %1 n'existe pas.</translation>
+ </message>
+ <message>
+ <source>CLOSE_LOCKED_STUDY</source>
+ <translation>Fermer l'étude?</translation>
+ </message>
+ <message>
+ <source>PUBLISH_IN_STUDY</source>
+ <translation>Publier dans l'étude</translation>
+ </message>
+ <message>
+ <source>BUT_NEW</source>
+ <translation>&Nouvelle</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_ROOT_NAME</source>
+ <translation>Etats d'IHM</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_ROOT_TOOLTIP</source>
+ <translation>Etats d'IHM persistents</translation>
+ </message>
+ <message>
+ <source>SAVE_GUI_STATE</source>
+ <translation>Sauvegarder l'état d'IHM</translation>
+ </message>
+ <message>
+ <source>BUT_LOAD</source>
+ <translation>&Charger</translation>
+ </message>
+ <message>
+ <source>BUT_OPEN</source>
+ <translation>&Ouvrir</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_OBJECT_TOOLTIP</source>
+ <translation>Sauvegarder l'état d'IHM: %1</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_DEF_NAME</source>
+ <translation>L'état d'IHM: </translation>
+ </message>
+ <message>
+ <source>VALUE_COLUMN</source>
+ <translation>Valeur</translation>
+ </message>
+ <message>
+ <source>IOR_COLUMN</source>
+ <translation>IOR</translation>
+ </message>
+ <message>
+ <source>REFENTRY_COLUMN</source>
+ <translation>Ref.Entrée</translation>
+ </message>
+ <message>
+ <source>ERR_INCOMPATIBLE_TYPE</source>
+ <translation>Le tupe numérique de la variable "%1" n'est pas compatible</translation>
+ </message>
+ <message>
+ <source>ERR_INVALID_VALUE</source>
+ <translation>La valeur n'a pas été validée</translation>
+ </message>
+ <message>
+ <source>ERR_NO_VARIABLE</source>
+ <translation>La variable "%1" n'existe pas.</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_Application</name>
+ <message>
+ <source>ALL_FILES_FILTER</source>
+ <translation>Tous les fichiers (*.*)</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_UNLOAD</source>
+ <translation>V&ider</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CLOSE</source>
+ <translation>&Fermer sans modifications</translation>
+ </message>
+ <message>
+ <source>MEN_WINDOWS_NEW</source>
+ <translation>Nouvelle Fenêtre</translation>
+ </message>
+ <message>
+ <source>MEN_DELETE_INVALID_REFERENCE</source>
+ <translation>Supprimer la Référence Invalide</translation>
+ </message>
+ <message>
+ <source>TOT_FILE_DESK_PREFERENCES</source>
+ <translation>Préférences</translation>
+ </message>
+ <message>
+ <source>MEN_DELETE_VS</source>
+ <translation>Supprimer</translation>
+ </message>
+ <message>
+ <source>MEN_OPENWITH</source>
+ <translation>Activer Module %1 </translation>
+ </message>
+ <message>
+ <source>MEN_DESK_REGISTRY_DISPLAY</source>
+ <translation>Enregistrer &Visualiser</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_SAVE</source>
+ <translation>&Sauvegarder && Fermer</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>Ouvrit un script python </translation>
+ </message>
+ <message>
+ <source>PREF_STORE_VISUAL_STATE</source>
+ <translation>Sauvegarder/restaurer le dernier ètat d'IHM</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>Sauvegarder l'état actuel des visualisateurs, des scènes, etc.</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>Sauvegarder l'état d'IHM</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>Sauvegarder l'état d'IHM</translation>
+ </message>
+ <message>
+ <source>MEN_RESTORE_VS</source>
+ <translation>Restaurer</translation>
+ </message>
+ <message>
+ <source>WRN_DUMP_STUDY_FAILED</source>
+ <translation>Impossible de clipper l'Sauvegarder l'étude</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PROPERTIES</source>
+ <translation>Pro&priétés...</translation>
+ </message>
+ <message>
+ <source>QUE_DOC_ALREADYEXIST</source>
+ <translation>Ce document %1 déjà existe dans l'étude.
+Allez-vous rouvrir ce document ?</translation>
+ </message>
+ <message>
+ <source>MEN_RENAME_VS</source>
+ <translation>Renommer</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_CATALOG_GENERATOR</source>
+ <translation>Générateur du Catalogue</translation>
+ </message>
+ <message>
+ <source>PUBLISH_IN_STUDY</source>
+ <translation>Publier dans l'étude</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SETTINGS</source>
+ <translation>Paramètres</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_REGISTRY_DISPLAY</source>
+ <translation>Visualiser le contenu du Registre du serveur CORBA</translation>
+ </message>
+ <message>
+ <source>PYTHON_FILES_FILTER</source>
+ <translation>Fichiers PYTHON (*.py)</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_DESCRIPTION</source>
+ <translation>Voulez-vous fermer ou vider l'étude avant de la fermer?</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_PROPERTIES</source>
+ <translation>Editer les propriétés de l'étude</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_OBJBROWSER</source>
+ <translation>Navigateur d'Objets</translation>
+ </message>
+ <message>
+ <source>STUDY_LOCKED</source>
+ <translation>BLOQUEE</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CANCEL</source>
+ <translation>&Annuler</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_NAME</source>
+ <translation>Objet</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_REGISTRY_DISPLAY</source>
+ <translation>Visualiser Registre</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_0</source>
+ <translation>Entrée</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_1</source>
+ <translation>Valeur</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_2</source>
+ <translation>IOR</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_3</source>
+ <translation>Entrée de Référence</translation>
+ </message>
+ <message>
+ <source>PREF_CATEGORY_SALOME</source>
+ <translation>SALOME</translation>
+ </message>
+ <message>
+ <source>PYTHON_CONSOLE</source>
+ <translation>Console Python </translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>Ouvrir Scrip&t...</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_TOOLS</source>
+ <translation>&Outils</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_DUMP_STUDY</source>
+ <translation>Clicher l'étude</translation>
+ </message>
+ <message>
+ <source>MEN_VIEW_WNDS</source>
+ <translation>Windows</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_DUMP_STUDY</source>
+ <translation>&Clicher l'étude...</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_CATALOG_GENERATOR</source>
+ <translation>Générer une catalogue XML de l'interface du composant</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_DUMP_STUDY</source>
+ <translation>Clicher l'étude au script python</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_NOTEBOOK</source>
+ <translation>Ouvrir le Carnet</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_NOTEBOOK</source>
+ <translation>Car&net...</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_NOTEBOOK</source>
+ <translation>Ouvrir le Carnet</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_PROPERTIES</source>
+ <translation>Propriétés de l'étude</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DEF_COLUMNS</source>
+ <translation>Colonnes de Défaut</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>Ouvrir le script python du fichier</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CATALOG_GENERATOR</source>
+ <translation>Catalogue &Générateur</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CAPTION</source>
+ <translation>Fermer l'étude actuelle</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MRU</source>
+ <translation>Le plus recemment utilisé</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_MRU</source>
+ <translation>Le plus recemment utilisé</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_LOAD</source>
+ <translation>&Charger...</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_StudyPropertiesDlg</name>
+ <message>
+ <source>PRP_MODE_FROM_SCRATCH</source>
+ <translation>du début</translation>
+ </message>
+ <message>
+ <source>PRP_AUTHOR</source>
+ <translation>Autheur</translation>
+ </message>
+ <message>
+ <source>PRP_LOCKED</source>
+ <translation>Bloqué</translation>
+ </message>
+ <message>
+ <source>PRP_MODIFICATIONS</source>
+ <translation>Modifications</translation>
+ </message>
+ <message>
+ <source>PRP_NO</source>
+ <translation>Non</translation>
+ </message>
+ <message>
+ <source>PRP_YES</source>
+ <translation>Oui</translation>
+ </message>
+ <message>
+ <source>PRP_MODIFIED</source>
+ <translation>Modifié</translation>
+ </message>
+ <message>
+ <source>PRP_DATE</source>
+ <translation>Crée</translation>
+ </message>
+ <message>
+ <source>PRP_MODE</source>
+ <translation>Mode</translation>
+ </message>
+ <message>
+ <source>PRP_MODE_FROM_COPYFROM</source>
+ <translation>copier de</translation>
+ </message>
+ <message>
+ <source>TLT_STUDY_PROPERTIES</source>
+ <translation>Propriétés de l'étude</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_ExitDlg</name>
+ <message>
+ <source>SHUTDOWN_SERVERS</source>
+ <translation>Arreter les serveurs autonomes</translation>
+ </message>
+</context>
+<context>
+ <name>NoteBook_Table</name>
+ <message>
+ <source>REMOVE_VARIABLE_IS_USED</source>
+ <translation>La variable "%1" est utilisée dans l'étude.
+Est-ce que vous allez vraiment la supprimer?</translation>
+ </message>
+ <message>
+ <source>RENAME_VARIABLE_IS_USED</source>
+ <translation>La variable "%1" est utilisée dans l'étude.
+Est-ce que vous allez vraiment la renommer?</translation>
+ </message>
+ <message>
+ <source>VARNAME_COLUMN</source>
+ <translation>Nom de la Variable</translation>
+ </message>
+ <message>
+ <source>VARVALUE_COLUMN</source>
+ <translation>Valeur de la Variable</translation>
+ </message>
+ <message>
+ <source>VARVALUE_INCORRECT</source>
+ <translation>La Valeur de la Variable n'est pas correcte: %1</translation>
+ </message>
+ <message>
+ <source>VARNAME_INCORRECT</source>
+ <translation>Le Nom de la Variable n'est pas correct: %1</translation>
+ </message>
+ <message>
+ <source>VARNAME_EXISTS</source>
+ <translation>La Variable "%1" existe</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_NoteBookDlg</name>
+ <message>
+ <source>NOTEBOOK_TITLE</source>
+ <translation>Carnet Salome</translation>
+ </message>
+ <message>
+ <source>BUT_UPDATE_STUDY</source>
+ <translation>&Mettre l'étude à jour</translation>
+ </message>
+ <message>
+ <source>BUT_REMOVE</source>
+ <translation>&Supprimer</translation>
+ </message>
+ <message>
+ <source>BUT_APPLY_AND_CLOSE</source>
+ <translation>A&ppliquer et Fermer</translation>
+ </message>
+ <message>
+ <source>BUT_HELP</source>
+ <translation>&Aide</translation>
+ </message>
+ <message>
+ <source>CLOSE_CAPTION</source>
+ <translation>Fermer le Carnet</translation>
+ </message>
+ <message>
+ <source>CLOSE_DESCRIPTION</source>
+ <translation>Allez-vous sauvegarder les changements faits au Carnet?</translation>
+ </message>
+ <message>
+ <source>INCORRECT_DATA</source>
+ <translation>Au moins une variable a été définie incorrectement.
+Editez ses paramètres ou l'éliminez de la table.</translation>
+ </message>
+ <message>
+ <source>ERR_UPDATE_STUDY_FAILED</source>
+ <translation>Impossible de mettre l'étude à jour!</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_DoubleSpinBox</name>
+ <message>
+ <source>VALID_RANGE_VAR_MSG</source>
+ <translation>Indiquez le nom de la variable ou
+la valeur du point flottant au diapason ( %1; %2 )
+avec la précision de %3 chiffres</translation>
+ </message>
+ <message>
+ <source>VALID_RANGE_NOVAR_MSG</source>
+ <translation>Indiquez la valeur du point flottant au diapason ( %1; %2 )
+avec la précision de %3 chiffres</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_IntSpinBox</name>
+ <message>
+ <source>VALID_RANGE_VAR_MSG</source>
+ <translation>Indiquez le nom de la variable ou
+une valeur entière au diapason ( %1; %2 )</translation>
+ </message>
+ <message>
+ <source>VALID_RANGE_NOVAR_MSG</source>
+ <translation>Indiquez une valeur entière au diapason ( %1; %2 )</translation>
+ </message>
+</context>
+</TS>
// ---------------------------- MAIN -----------------------
int main( int argc, char **argv )
{
-
if(getenv ("DEBUGGER"))
{
setsig(SIGSEGV,&Handler);
SUIT_ResourceMgr resMgr( "SalomeApp", QString( "%1Config" ) );
resMgr.setCurrentFormat( "xml" );
resMgr.setWorkingMode( QtxResourceMgr::IgnoreUserValues );
- resMgr.loadLanguage( "LightApp", "en" );
+ resMgr.loadLanguage( "LightApp" );
//
splash = QtxSplash::splash( QPixmap() );
splash->readSettings( &resMgr );
../Qtx/libqtx.la
dist_salomeres_DATA = resources/SalomeStyle.xml
+
+nodist_salomeres_DATA = Style_msg_fr.qm
l->addWidget( myActiveLab = new QLabel( tr( "Active" ), myContainer ), myCurrentRow, myCurrentColumn*4+1 );
l->addWidget( myInactiveLab = new QLabel( tr( "Inactive" ), myContainer ), myCurrentRow, myCurrentColumn*4+2 );
- l->addWidget( myDisabledLab = new QLabel( tr( "Disable" ), myContainer ), myCurrentRow, myCurrentColumn*4+3 );
+ l->addWidget( myDisabledLab = new QLabel( tr( "Disabled" ), myContainer ), myCurrentRow, myCurrentColumn*4+3 );
int w = 0;
w = qMax( w, myActiveLab->sizeHint().width() );
w = qMax( w, myInactiveLab->sizeHint().width() );
case Style_Model::BrightText: // 7
name = tr( "Bright text" ); break;
case Style_Model::ButtonText: // 8
- name = tr( "Buttont text" ); break;
+ name = tr( "Button text" ); break;
case Style_Model::Base: // 9
name = tr( "Base" ); break;
case Style_Model::Window: // 10
main->setMargin( 0 ); main->setSpacing( SPACING );
// create main widgets
- myStyleCheck = new QCheckBox( tr( "Use SALOME Style" ), this );
+ myStyleCheck = new QCheckBox( tr( "Enable SALOME Style" ), this );
QFrame* fr = new QFrame( this );
fr->setFrameStyle( QFrame::Box | QFrame::Sunken );
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>Style_PrefDlg</name>
+ <message>
+ <source>Quick</source>
+ <translation>Rapide</translation>
+ </message>
+ <message>
+ <source>Auto</source>
+ <translation>Auto</translation>
+ </message>
+ <message>
+ <source>Base colors</source>
+ <translation>Couleurs de base</translation>
+ </message>
+ <message>
+ <source>Additional colors</source>
+ <translation>Couleurs supplémentaires</translation>
+ </message>
+ <message>
+ <source>Active</source>
+ <translation>Actif</translation>
+ </message>
+ <message>
+ <source>Inactive</source>
+ <translation>Désactivé</translation>
+ </message>
+ <message>
+ <source>Disabled</source>
+ <translation>Désactivé</translation>
+ </message>
+ <message>
+ <source>Window text</source>
+ <translation>Texte du fenêtre</translation>
+ </message>
+ <message>
+ <source>Button</source>
+ <translation>Touche</translation>
+ </message>
+ <message>
+ <source>Light</source>
+ <translation>Clair</translation>
+ </message>
+ <message>
+ <source>Midlight</source>
+ <translation>Demi-clair</translation>
+ </message>
+ <message>
+ <source>Dark</source>
+ <translation>Foncé</translation>
+ </message>
+ <message>
+ <source>Mid</source>
+ <translation>Moyen</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation>Texte</translation>
+ </message>
+ <message>
+ <source>Bright text</source>
+ <translation>Texte éclairé</translation>
+ </message>
+ <message>
+ <source>Button text</source>
+ <translation>Texte de la touche</translation>
+ </message>
+ <message>
+ <source>Base</source>
+ <translation>Base</translation>
+ </message>
+ <message>
+ <source>Window</source>
+ <translation>Fenêtre</translation>
+ </message>
+ <message>
+ <source>Shadow</source>
+ <translation>Ombre</translation>
+ </message>
+ <message>
+ <source>Highlight</source>
+ <translation>Surligner</translation>
+ </message>
+ <message>
+ <source>Highlighted text</source>
+ <translation>Texte surligné</translation>
+ </message>
+ <message>
+ <source>Link</source>
+ <translation>Lien</translation>
+ </message>
+ <message>
+ <source>Visited link</source>
+ <translation>Lien visité</translation>
+ </message>
+ <message>
+ <source>Alternate base</source>
+ <translation>Base alternative</translation>
+ </message>
+ <message>
+ <source>Tooltip base</source>
+ <translation>Base d'infobulle</translation>
+ </message>
+ <message>
+ <source>Tooltip text</source>
+ <translation>Texte d'infobulle</translation>
+ </message>
+ <message>
+ <source>Border top</source>
+ <translation>Frontière de dessus</translation>
+ </message>
+ <message>
+ <source>Border bottom</source>
+ <translation>Frontière de dessous</translation>
+ </message>
+ <message>
+ <source>Tab border top</source>
+ <translation>Frontière de dessus de l'onglet</translation>
+ </message>
+ <message>
+ <source>Tab border bottom</source>
+ <translation>Frontière de dessous de l'onglet</translation>
+ </message>
+ <message>
+ <source>Field light</source>
+ <translation>Champ clair</translation>
+ </message>
+ <message>
+ <source>Field dark</source>
+ <translation>Champ foncé</translation>
+ </message>
+ <message>
+ <source>Slider</source>
+ <translation>Barre de défilement</translation>
+ </message>
+ <message>
+ <source>Lines</source>
+ <translation>Lignes</translation>
+ </message>
+ <message>
+ <source>Widget center</source>
+ <translation>Centre de l'objet-fenêtre</translation>
+ </message>
+ <message>
+ <source>Widget border</source>
+ <translation>Frontière de l'objet-fenêtre</translation>
+ </message>
+ <message>
+ <source>Header</source>
+ <translation>Titre</translation>
+ </message>
+ <message>
+ <source>Progress bar</source>
+ <translation>Barre de progrès</translation>
+ </message>
+ <message>
+ <source>Pointer</source>
+ <translation>Pointeur</translation>
+ </message>
+ <message>
+ <source>Checked</source>
+ <translation>Coché</translation>
+ </message>
+ <message>
+ <source>Table grid</source>
+ <translation>Maillage de la table</translation>
+ </message>
+ <message>
+ <source>SALOME style preferences</source>
+ <translation>Préférences de style Salomé</translation>
+ </message>
+ <message>
+ <source>Enable SALOME Style</source>
+ <translation>Activer le style Salomé</translation>
+ </message>
+ <message>
+ <source>Font</source>
+ <translation>Caractères</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Aucun</translation>
+ </message>
+ <message>
+ <source>Horizontal</source>
+ <translation>Horisontal</translation>
+ </message>
+ <message>
+ <source>Inclined</source>
+ <translation>Incliné</translation>
+ </message>
+ <message>
+ <source>Transparency</source>
+ <translation>Transparence</translation>
+ </message>
+ <message>
+ <source>Widgets rounding</source>
+ <translation>Arrondi des objets-fenêtres</translation>
+ </message>
+ <message>
+ <source>Buttons</source>
+ <translation>Touches</translation>
+ </message>
+ <message>
+ <source>Edit boxes</source>
+ <translation>Editer les boîtes</translation>
+ </message>
+ <message>
+ <source>Frames</source>
+ <translation>Cadres</translation>
+ </message>
+ <message>
+ <source>Sliders</source>
+ <translation>Barres de défilement</translation>
+ </message>
+ <message>
+ <source>Anti-aliased borders</source>
+ <translation>Frontières d'anticrénelage</translation>
+ </message>
+ <message>
+ <source>Handle</source>
+ <translation>Pointeur</translation>
+ </message>
+ <message>
+ <source>Horizontal spacin</source>
+ <translation>Espacement horisontal</translation>
+ </message>
+ <message>
+ <source>Vertical spacing</source>
+ <translation>Espacement vertical</translation>
+ </message>
+ <message>
+ <source>Splitter handle size</source>
+ <translation>Taille du pointeur du diviseur</translation>
+ </message>
+ <message>
+ <source>Slider handle size</source>
+ <translation>Taille du curseur de la barre de défilement</translation>
+ </message>
+ <message>
+ <source>Widget effect</source>
+ <translation>Effet de l'objet-fenêtre</translation>
+ </message>
+ <message>
+ <source>Highlight widgets</source>
+ <translation>Surligner les objets fenêtres</translation>
+ </message>
+ <message>
+ <source>Auto raise widgets</source>
+ <translation>Activer l'objet fenêtre automatiquement</translation>
+ </message>
+ <message>
+ <source>Colors</source>
+ <translation>Couleurs</translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation>Paramètres</translation>
+ </message>
+ <message>
+ <source>[ Current ]</source>
+ <translation>[ Actuel ]</translation>
+ </message>
+ <message>
+ <source>[ Default ]</source>
+ <translation>[ Défaut ]</translation>
+ </message>
+ <message>
+ <source>Delete user theme</source>
+ <translation>Supprimer la thème d'utilisateur</translation>
+ </message>
+ <message>
+ <source>Remove theme %1?</source>
+ <translation>Supprimer la thème %1?</translation>
+ </message>
+ <message>
+ <source>Custom schema</source>
+ <translation>Schéma actuel</translation>
+ </message>
+</context>
+</TS>
# .po files to transform in .qm
nodist_salomeres_DATA = \
- ToolsGUI_msg_en.qm
+ ToolsGUI_msg_en.qm \
+ ToolsGUI_msg_fr.qm
libToolsGUI_la_CPPFLAGS = $(QT_INCLUDES) $(CAS_CPPFLAGS) $(BOOST_CPPFLAGS) \
@KERNEL_CXXFLAGS@ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ \
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-// SALOME RegistryDisplay : GUI for Registry server implementation
-// File : ToolsGUI_RegWidget.cxx
-// Author : Pascale NOYRET, EDF
-//
# include "ToolsGUI_RegWidget.h"
-# include <QAction>
-# include <QDialog>
-# include <QSpinBox>
-# include <QPushButton>
-# include <QTreeWidget>
-# include <QTabWidget>
-# include <QStatusBar>
-# include <QTextEdit>
-# include <QTextStream>
-# include <QTimer>
-# include <QToolBar>
-# include <QEvent>
-# include <QKeyEvent>
-# include <QCloseEvent>
-# include <QFileInfo>
-# include <QGridLayout>
-# include <QLabel>
-# include <QGroupBox>
-
-# include <SALOME_NamingService.hxx>
-# include <ServiceUnreachable.hxx>
-# include <Utils_SINGLETON.hxx>
-# include <Utils_CommException.hxx>
-
-# include <utilities.h>
-# include <OpUtil.hxx>
-
-# include <Qtx.h>
-
-typedef int PIXELS;
+#include <QApplication>
+#include <QInputDialog>
+#include <QMenuBar>
+#include <QStatusBar>
+#include <QTabWidget>
+#include <QTextEdit>
+#include <QTimer>
+#include <QToolBar>
+#include <QTreeWidget>
+#include <QVBoxLayout>
+
+#include <Qtx.h>
+
+#include <SALOME_NamingService.hxx>
+#include <Utils_SINGLETON.hxx>
+#include <Utils_CommException.hxx>
#define MARGIN_SIZE 11
#define SPACING_SIZE 6
#define MIN_SPIN_WIDTH 100
-#define BOLD( text ) ( QString( "<b>" ) + QString( text ) + QString( "</b>" ) )
+#define BOLD( text ) QString( "<b>%1</b>" ).arg( QString( text ) )
static const char* const time_data[] = {
"16 16 6 1",
"......aaaaa....."};
/*!
- \brief Create components list.
+ \brief Get access to the Registry service
\internal
\param orb CORBA ORB reference
- \return list of registered components
+ \return reference to the Registry service
*/
-static Registry::Components_var MakeRegistry( CORBA::ORB_var& orb )
+static Registry::Components_ptr GetRegistry( CORBA::ORB_ptr orb )
{
-
- const char *registryName="Registry" ;
+ static const char* registryName = "Registry";
+ Registry::Components_var aRegistry;
- SALOME_NamingService &naming = *SINGLETON_<SALOME_NamingService>::Instance() ;
- naming.init_orb( orb ) ;
+ SALOME_NamingService& naming = *SINGLETON_<SALOME_NamingService>::Instance();
+ naming.init_orb( orb );
- // Recuperation de la reference de l'objet
- CORBA::Object_var object = 0 ;
+ CORBA::Object_var object = 0;
try
{
- SCRUTE(registryName) ;
- object = naming.Resolve( registryName ) ;
- if(CORBA::is_nil(object)) throw CommException( "unable to find the RegistryService" ) ;
+ object = naming.Resolve( registryName );
+ if ( CORBA::is_nil( object ) ) throw CommException( "Unable to find the Registry service" );
+ aRegistry = Registry::Components::_narrow( object );
}
- catch( const ServiceUnreachable& ex )
+ catch( const CORBA::Exception& ex )
{
- MESSAGE( ex.what() )
- exit( EXIT_FAILURE ) ;
- }
- catch( const CORBA::Exception& )
- {
- exit( EXIT_FAILURE ) ;
- }
-
- // Specialisation de l'objet generique
-
- return Registry::Components::_narrow( object ) ;
-}
-
-/*!
- \class ToolsGUI_RegWidget::InfoWindow
- \brief Information window.
- \internal
-*/
-
-class ToolsGUI_RegWidget::InfoWindow : public QMainWindow
-{
-public:
- InfoWindow( QWidget* parent );
-
- void setText( const QString& text );
-
-protected:
- void keyPressEvent( QKeyEvent * e );
-
-private:
- QTextEdit* myTextView;
-};
-
-/*!
- \brief Constructor.
- \internal
- \param parent parent widget
-*/
-ToolsGUI_RegWidget::InfoWindow::InfoWindow( QWidget* parent )
-: QMainWindow( parent )
-{
- setAttribute( Qt::WA_DeleteOnClose );
-
- myTextView = new QTextEdit( this );
- myTextView->setReadOnly( true );
- setCentralWidget( myTextView );
- setMinimumSize( 450, 250 );
-}
-
-/*!
- \brief Set text to the information window.
- \internal
- \param text ionfo text
-*/
-void ToolsGUI_RegWidget::InfoWindow::setText( const QString& text )
-{
- myTextView->setText( text );
-}
-
-/*!
- \brief Key press event handler. Closeswindow on \c Escape key pressing.
- \internal
- \param e key press event
-*/
-void ToolsGUI_RegWidget::InfoWindow::keyPressEvent( QKeyEvent * e )
-{
- QMainWindow::keyPressEvent( e );
- if ( e->key() == Qt::Key_Escape )
- close();
-}
-
-/*!
- \class ToolsGUI_RegWidget::HelpWindow
- \brief Help window.
- \internal
-*/
-
-class ToolsGUI_RegWidget::HelpWindow : public QMainWindow
-{
-public:
- HelpWindow( QWidget* parent );
- ~HelpWindow();
-
- void setText( const QString& text );
-
-private:
- QTextEdit* myTextView;
-};
-
-/*!
- \brief Constructor.
- \internal
- \param parent parent widget
-*/
-ToolsGUI_RegWidget::HelpWindow::HelpWindow( QWidget* parent )
-: QMainWindow( parent )
-{
- setAttribute( Qt::WA_DeleteOnClose );
- setWindowTitle( tr( "Help" ) );
-
- myTextView = new QTextEdit( this );
- myTextView->setReadOnly( true );
- QPalette pal = myTextView->palette();
-
- pal.setBrush( QPalette::Active, QPalette::Highlight, QBrush( QColor( 0, 0, 128 ) ) );
- pal.setBrush( QPalette::Active, QPalette::HighlightedText, QBrush( Qt::white ) );
- pal.setBrush( QPalette::Active, QPalette::Base, QBrush( QColor( 255,255,220 ) ) );
- pal.setBrush( QPalette::Active, QPalette::Text, QBrush( Qt::black ) );
-
- pal.setBrush( QPalette::Inactive, QPalette::Highlight, QBrush( QColor( 0, 0, 128 ) ) );
- pal.setBrush( QPalette::Inactive, QPalette::HighlightedText, QBrush( Qt::white ) );
- pal.setBrush( QPalette::Inactive, QPalette::Base, QBrush( QColor( 255,255,220 ) ) );
- pal.setBrush( QPalette::Inactive, QPalette::Text, QBrush( Qt::black ) );
-
- pal.setBrush( QPalette::Disabled, QPalette::Highlight, QBrush( QColor( 0, 0, 128 ) ) );
- pal.setBrush( QPalette::Disabled, QPalette::HighlightedText, QBrush( Qt::white ) );
- pal.setBrush( QPalette::Disabled, QPalette::Base, QBrush( QColor( 255,255,220 ) ) );
- pal.setBrush( QPalette::Disabled, QPalette::Text, QBrush( Qt::black ) );
-
- myTextView->setPalette( pal );
-
- setCentralWidget( myTextView );
- setMinimumSize( 450, 250 );
-
- QFile f ( "tmp.txt" );
- if ( f.open( QIODevice::ReadOnly ) ) {
- QTextStream t( &f );
- while ( !t.atEnd() ) {
- myTextView->append( t.readLine() );
- }
+ MESSAGE( "Error: can't access Registry server" );
}
- f.close();
-}
-
-/*!
- \brief Destructor.
- \internal
-*/
-ToolsGUI_RegWidget::HelpWindow::~HelpWindow()
-{
-};
-
-/*!
- \brief Set text to the help window.
- \internal
- \param text help text
-*/
-void ToolsGUI_RegWidget::HelpWindow::setText( const QString& text )
-{
- myTextView->setText( text );
-}
-
-/*!
- \class ToolsGUI_RegWidget::IntervalWindow
- \brief Dialog box to enter time delay between registry window updates
- \internal
-*/
-
-class ToolsGUI_RegWidget::IntervalWindow : public QDialog
-{
-public:
- IntervalWindow( QWidget* parent );
- ~IntervalWindow();
-
- QPushButton* Ok();
- QPushButton* Cancel();
-
- int getValue();
- void setValue( int );
-
-private:
- QSpinBox* mySpinBox;
- QPushButton* myButtonOk;
- QPushButton* myButtonCancel;
-};
-
-/*!
- \brief Constructor.
- \internal
- \param parent parent widget
-*/
-ToolsGUI_RegWidget::IntervalWindow::IntervalWindow ( QWidget* parent )
-: QDialog( parent )
-{
- setModal( true );
- setAttribute( Qt::WA_DeleteOnClose );
-
- setWindowTitle( tr( "Refresh Interval" ) );
- setSizeGripEnabled( true );
-
- QGridLayout* topLayout = new QGridLayout( this );
- topLayout->setSpacing( SPACING_SIZE );
- topLayout->setMargin( MARGIN_SIZE );
-
- QGroupBox* intervalGrp = new QGroupBox( this );
- intervalGrp->setObjectName( "intervalGrp" );
- QGridLayout* intervalGrpLayout = new QGridLayout( intervalGrp );
- intervalGrpLayout->setAlignment( Qt::AlignTop );
- intervalGrpLayout->setSpacing( SPACING_SIZE );
- intervalGrpLayout->setMargin( MARGIN_SIZE );
-
- QHBoxLayout* aBtnLayout = new QHBoxLayout;
- aBtnLayout->setSpacing( SPACING_SIZE );
- aBtnLayout->setMargin( 0 );
-
- myButtonOk = new QPushButton( this );
- myButtonOk->setObjectName( "buttonOk" );
- myButtonOk->setText( tr( "BUT_OK" ) );
- myButtonOk->setAutoDefault( TRUE );
- myButtonOk->setDefault( TRUE );
-
- myButtonCancel = new QPushButton( this );
- myButtonCancel->setObjectName( "buttonCancel" );
- myButtonCancel->setText( tr( "BUT_CANCEL" ) );
- myButtonCancel->setAutoDefault( TRUE );
-
- QLabel* TextLabel = new QLabel( intervalGrp );
- TextLabel->setObjectName( "TextLabel" );
- TextLabel->setText( tr( "Please, enter a number of seconds:" ) );
-
- mySpinBox = new QSpinBox( intervalGrp );
- mySpinBox->setMinimum( 1 );
- mySpinBox->setMaximum( 999999999 );
- mySpinBox->setSingleStep( 1 );
- mySpinBox->setObjectName( "SpinBox" );
- mySpinBox->setValue( 100 );
- mySpinBox->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
- mySpinBox->setMinimumWidth(MIN_SPIN_WIDTH);
-
- intervalGrpLayout->addWidget(TextLabel, 0, 0);
- intervalGrpLayout->addWidget(mySpinBox, 0, 1);
-
- aBtnLayout->addWidget( myButtonOk );
- aBtnLayout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ) );
- aBtnLayout->addWidget( myButtonCancel );
-
- topLayout->addWidget( intervalGrp, 0, 0 );
- topLayout->addLayout( aBtnLayout, 1, 0 );
-}
-
-/*!
- \brief Destructor
- \internal
-*/
-ToolsGUI_RegWidget::IntervalWindow::~IntervalWindow()
-{
-}
-
-/*!
- \brief Set time interval value
- \internal
- \param size interval value
-*/
-void ToolsGUI_RegWidget::IntervalWindow::setValue( const int size )
-{
- mySpinBox->setValue(size);
-}
-
-/*!
- \brief Get time interval value
- \internal
- \return interval value
-*/
-int ToolsGUI_RegWidget::IntervalWindow::getValue()
-{
- return mySpinBox->value();
-}
-/*!
- \brief Get \c OK button
- \internal
- \return a pointer to \c OK button
-*/
-QPushButton* ToolsGUI_RegWidget::IntervalWindow::Ok()
-{
- return myButtonOk;
-}
-
-/*!
- \brief Get \c Cancel button
- \internal
- \return a pointer to \c Cancel button
-*/
-QPushButton* ToolsGUI_RegWidget::IntervalWindow::Cancel()
-{
- return myButtonCancel;
+ return aRegistry._retn();
}
/*!
\param orb CORBA ORB reference
\param parent parent widget
*/
-ToolsGUI_RegWidget* ToolsGUI_RegWidget::GetRegWidget( CORBA::ORB_var& orb,
+ToolsGUI_RegWidget* ToolsGUI_RegWidget::GetRegWidget( CORBA::ORB_ptr orb,
QWidget* parent )
{
if ( !myRegWidgetPtr )
return myRegWidgetPtr;
}
-/*!
- \brief This virtual function is reimplenented to disable popup menu on dock areas
- (instead of QMainWindow::setDockMenuEnabled( false ) method used in Qt3).
- \return always 0 to disable menu
-*/
-QMenu* ToolsGUI_RegWidget::createPopupMenu()
-{
- QMenu* aPopup = 0;
- return aPopup;
-}
-
/*!
\brief Constructor
\param orb CORBA ORB reference
\param parent parent widget
*/
-ToolsGUI_RegWidget::ToolsGUI_RegWidget( CORBA::ORB_var& orb, QWidget* parent )
-: QMainWindow( parent, Qt::Window ),
- _VarComponents( MakeRegistry(orb) ),
- _clients( 0 ),
- _history( 0 ),
- _parent( parent ),
- _tabWidget( 0 ),
- _refresh( 0 ),
- _interval( 0 ),
- myInfoWindow( 0 ),
- myHelpWindow( 0 ),
- myIntervalWindow( 0 )
+ToolsGUI_RegWidget::ToolsGUI_RegWidget( CORBA::ORB_ptr orb, QWidget* parent )
+: QMainWindow( parent )
{
- setAttribute( Qt::WA_DeleteOnClose );
+ myOrb = CORBA::ORB::_duplicate( orb );
- if ( parent )
- setWindowIcon( parent->windowIcon() );
-
- // pixmap for buttons
- QPixmap image_refresh ( ( const char** ) refresh_data );
- QPixmap image_interval( ( const char** ) time_data );
- QPixmap image_close ( ( const char** ) close_data );
+ // set window attributes
+ setAttribute( Qt::WA_DeleteOnClose );
+ setWindowTitle( tr( "TLT_REGISTRY" ) );
- // Buttons definition
- QToolBar* topbar = new QToolBar( tr("Toolbar"), this );
- topbar->setToolButtonStyle( Qt::ToolButtonTextBesideIcon );
- addToolBar( Qt::TopToolBarArea, topbar );
+ // show status bar
+ statusBar();
- _refresh = topbar->addAction(image_refresh, tr( "Refresh" ), this, SLOT( slotListeSelect() ));
- _refresh->setToolTip( "" );
- _refresh->setStatusTip( tr("Immediately updates list of components") );
+ // get main menu bar
+ QMenuBar* mainMenu = menuBar();
- /* PAL5540 - this button is needless
- QPushButton* help = new QPushButton( tr( "Help" ), topbar );
- connect( help, SIGNAL( clicked() ), this, SLOT( slotHelp() ) );
- QToolTip::add( help, "", toolTipGroup(), tr("Opens Help window") );
- */
+ // add 'Actions' menu
+ QMenu* m = mainMenu->addMenu( tr( "MNU_ACTIONS" ) );
+ // add 'Actions' toolbar
+ QToolBar* tb = addToolBar( tr( "TB_ACTIONS" ) );
+
+ // create actions
+ myActions[Refresh] = new QAction( QPixmap( refresh_data ), tr( "MEN_REFRESH" ), this );
+ myActions[Refresh]->setStatusTip( tr( "STB_REFRESH" ) );
+ connect( myActions[Refresh], SIGNAL( triggered() ), this, SLOT( refresh() ) );
+ m->addAction( myActions[Refresh] );
+ tb->addAction( myActions[Refresh] );
- _interval = topbar->addAction(image_interval, tr( "Interval" ), this, SLOT( slotSelectRefresh() ));
- _interval->setToolTip( "" );
- _interval->setStatusTip( tr("Changes refresh interval") );
-
- topbar->addSeparator();
-
- _close = topbar->addAction( image_close, tr("Close"), this, SLOT( close() ));
- _close->setToolTip( "" );
- _close->setStatusTip( tr("Closes Registry window") );
+ myActions[Interval] = new QAction( QPixmap( time_data ), tr( "MEN_INTERVAL" ), this );
+ myActions[Interval]->setStatusTip( tr( "STB_INTERVAL" ) );
+ connect( myActions[Interval], SIGNAL( triggered() ), this, SLOT( refreshInterval() ) );
+ m->addAction( myActions[Interval] );
+ tb->addAction( myActions[Interval] );
- // Display area and associated slots definition
- _tabWidget = new QTabWidget( this );
- _clients = new QTreeWidget( _tabWidget );
- SetListe();
- _history = new QTreeWidget( _tabWidget );
- SetListeHistory();
-
- _tabWidget->addTab( _clients, tr( "Running" ) );
- _tabWidget->addTab( _history, tr( "History" ) );
- connect( _tabWidget, SIGNAL( currentChanged( QWidget* )), this, SLOT( slotListeSelect() ) );
- connect( _clients, SIGNAL( itemDoubleClicked( QTreeWidgetItem*, int ) ), this, SLOT( slotClientChanged( QTreeWidgetItem* , int ) ) );
- connect( _history, SIGNAL( itemDoubleClicked( QTreeWidgetItem*, int ) ), this, SLOT( slotHistoryChanged( QTreeWidgetItem* , int ) ) );
- setCentralWidget( _tabWidget );
+ m->addSeparator();
+ tb->addSeparator();
+
+ myActions[Close] = new QAction( QPixmap( close_data ), tr( "MEN_CLOSE" ), this );
+ myActions[Close]->setStatusTip( tr( "STB_CLOSE" ) );
+ connect( myActions[Close], SIGNAL( triggered() ), this, SLOT( close() ) );
+ m->addAction( myActions[Close] );
+ tb->addAction( myActions[Close] );
+
+ // central widget
+ setCentralWidget( new QWidget( this ) );
+
+ // Create tab widget: SALOME serives list (running and history)
+ QTabWidget* tabWidget = new QTabWidget( centralWidget() );
+
+ myViews[Clients] = new QTreeWidget( tabWidget );
+ myViews[Clients]->setColumnCount( 6 );
+ myViews[Clients]->setAllColumnsShowFocus( true );
+ myViews[Clients]->setRootIsDecorated( false );
+ QStringList runningLabels;
+ runningLabels << tr( "HDR_COMPONENT" ) << tr( "HDR_PID" ) << tr( "HDR_USERNAME" )
+ << tr( "HDR_HOSTNAME" ) << tr( "HDR_STARTED" ) << tr( "HDR_HELLO" );
+ myViews[Clients]->setHeaderLabels( runningLabels );
+ tabWidget->addTab( myViews[Clients], tr( "TAB_RUNNING" ) );
+
+ myViews[History] = new QTreeWidget( tabWidget );
+ myViews[History]->setColumnCount(6);
+ myViews[History]->setAllColumnsShowFocus( true );
+ myViews[History]->setRootIsDecorated( false );
+ QStringList historyLabels;
+ historyLabels << tr( "HDR_COMPONENT" ) << tr( "HDR_PID" ) << tr( "HDR_USERNAME" )
+ << tr( "HDR_HOSTNAME" ) << tr( "HDR_STARTED" ) << tr( "HDR_FINISHED" );
+ myViews[History]->setHeaderLabels( historyLabels );
+ tabWidget->addTab( myViews[History], tr( "TAB_HISTORY" ) );
+
+ connect( tabWidget, SIGNAL( currentChanged( int ) ), this, SLOT( refresh() ) );
+ connect( myViews[Clients], SIGNAL( itemActivated( QTreeWidgetItem*, int ) ),
+ this, SLOT( showDetails( QTreeWidgetItem*, int ) ) );
+ connect( myViews[History], SIGNAL( itemActivated( QTreeWidgetItem*, int ) ),
+ this, SLOT( showDetails( QTreeWidgetItem*, int ) ) );
+
+ // create information window
+ myDetails = new QTextEdit( centralWidget() );
+ myDetails->setReadOnly( true );
+ myDetails->setMinimumHeight( 100 );
+
+ // layout widgets
+ QVBoxLayout* topLayout = new QVBoxLayout( centralWidget() );
+ topLayout->setMargin( 0 );
+ topLayout->setSpacing( SPACING_SIZE );
+ topLayout->addWidget( tabWidget );
+ topLayout->addWidget( myDetails );
- // Timer definition (used to automaticaly refresh the display area)
- _counter = new QTimer( this );
- connect( _counter, SIGNAL( timeout() ), this, SLOT( slotListeSelect() ) );
- myRefreshInterval = 10;
- _counter->start( myRefreshInterval * 1000 );
+ // install auto-update timer
+ myTimer = new QTimer( this );
+ connect( myTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) );
+ myTimer->start( 10000 ); // 10 seconds by default
- PIXELS xpos = 160 ;
- PIXELS ypos = 100 ;
- PIXELS largeur = 800 ;
- PIXELS hauteur = 350 ;
- setGeometry( xpos, ypos, largeur, hauteur ) ;
- setWindowTitle( tr( "Registry" ) ) ;
- statusBar()->showMessage(" ");
-
- slotListeSelect();
+ // resize window and set its position
+ resize( 800, 400 );
+ Qtx::alignWidget( (QWidget*)this, (QWidget*)QApplication::desktop(), Qtx::AlignCenter );
+
+ // refresh registry information
+ refresh();
}
/*!
*/
ToolsGUI_RegWidget::~ToolsGUI_RegWidget()
{
- _counter->stop();
myRegWidgetPtr = 0;
};
/*!
- \brief Event filter
- \param object event receiver
- \param event event being processed
- \return \c true if event processing should be stopped
-*/
-bool ToolsGUI_RegWidget::eventFilter( QObject* object, QEvent* event )
-{
- if ( object ) {
- if ( object == myHelpWindow && event->type() == QEvent::Close ) {
- myHelpWindow = 0;
- }
- else if ( object == myInfoWindow && event->type() == QEvent::Close ) {
- myInfoWindow = 0;
- }
- else if ( object == myIntervalWindow && event->type() == QEvent::Close ) {
- myIntervalWindow = 0;
- }
- else if ( object == _clients && event->type() == QEvent::KeyPress ) {
- QKeyEvent* ke = (QKeyEvent*)event;
- if ( ke->key() == Qt::Key_Enter || ke->key() == Qt::Key_Return ) {
- slotClientChanged( _clients->currentItem(), 0 );
- }
- }
- else if ( object == _history && event->type() == QEvent::KeyPress ) {
- QKeyEvent* ke = (QKeyEvent*)event;
- if ( ke->key() == Qt::Key_Enter || ke->key() == Qt::Key_Return ) {
- slotHistoryChanged( _history->currentItem(), 0 );
- }
- }
- }
- return QMainWindow::eventFilter( object, event );
-}
-
-/*!
- \brief Search item in the list.
- \param name component name
- \param pid PID
- \param machine machine name
- \param listclient list of registry data
- \return item index or -1 if it is not found.
-*/
-int ToolsGUI_RegWidget::numitem( const QString& name,
- const QString& pid,
- const QString& machine,
- const Registry::AllInfos* listclient )
-{
- for (CORBA::ULong i=0; i<listclient->length(); i++) {
- const Registry::Infos & c_info=(*listclient)[i];
- ASSERT( c_info.name!=NULL);
- QString b;
- b.setNum(int(c_info.pid));
- if ( (name.compare(QString(c_info.name)) == 0) &&
- (machine.compare(QString(c_info.machine)) == 0) &&
- (pid.compare(b) == 0) ) {
- return i;
- }
- }
- return -1;
-}
-
-/*!
- \brief Get description text, containing information about client.
+ \brief Get description text, containing information about the service.
\param c_info client info data
\return formatted client description
*/
-QString ToolsGUI_RegWidget::setlongText( const Registry::Infos& c_info )
+QString ToolsGUI_RegWidget::getDetails( const Registry::Infos& c_info )
{
- ASSERT( c_info.name != NULL );
- QString a = QString( "<hr><h2>" ) + tr( "Code" ) + QString( " : " );
- a.append( QString( c_info.name ) );
- a.append( "</h1><hr><br>" );
- a.append( "<code>" ); // ASV: 28.07.06 : added <code> tags to make the text font be
- // fixed width (looks much better on Windows)
- a.append( tr( "Process Id" ) + QString( " : " ) );
- a.append( BOLD( QString::number( int( c_info.pid ) ) ) );
- a.append( QString( " " ) + tr( "on machine" ) + QString( " " ) );
- a.append( BOLD( c_info.machine ) );
- a.append( QString( " " ) + tr( "ip address" ) + QString( " : " ) );
- a.append( BOLD( c_info.adip ) );
- a.append( "<br>" );
-
- a.append( tr( "launched by user" ) + QString( " " ) );
- a.append( BOLD( c_info.pwname ) );
- a.append( QString( " ( " ) + tr( "pid" ) + QString( " : " ) );
- a.append( BOLD( QString::number( int( c_info.uid ) ) ) );
- a.append( QString( " )<br> " ) + tr( "in directory" ) + QString( " " ));
- a.append( BOLD( c_info.cdir ) );
-
- time_t aTime;
- a.append( QString( "<br>" ) + tr( "begins" ) + QString( " " ) );
- aTime = time_t(c_info.tc_start);
- char * t1 = (char * )duplicate(ctime(&aTime));
- t1 [strlen(t1) -1 ] = ' ';
- a.append( BOLD( t1 ) );
- delete [] t1;
- a.append( "<br>" );
-
- if (c_info.tc_hello != 0 ) {
- aTime = time_t(c_info.tc_hello);
- char * t2 = (char * )duplicate(ctime(&aTime));
- t2 [strlen(t2) -1 ] = ' ';
- a.append( tr( "last signal" ) + QString(" : ") );
- a.append( BOLD( t2 ) );
+ QString a;
+ if ( c_info.name != NULL ) {
+ time_t aStarted( c_info.tc_start );
+ time_t aLastPing( c_info.tc_hello );
+ time_t aFinished( c_info.tc_end );
+
+ a.append( BOLD( tr( "INFO_SERVICE" ).arg( QString( c_info.name ) ) ) );
a.append( "<br>" );
- delete [] t2;
- }
- if ((c_info.tc_end - c_info.difftime) != 0) {
- aTime = time_t(c_info.tc_end);
- char * t3 = (char * )duplicate(ctime(&aTime));
- t3 [strlen(t3) -1 ] = ' ';
- a.append( tr( "ends" ) + QString( " " ) );
- a.append( BOLD( t3 ) );
a.append( "<br>" );
- delete [] t3;
- }
- else {
- a.append( tr( "still running" ) + QString( "<br>" ) );
- }
-
- SCRUTE(c_info.difftime);
- if (c_info.difftime!= 0) {
- a.append( QString( "(" ) + tr( "Time on" ) + QString( " " ) );
- a.append( BOLD( c_info.machine ) );
- a.append( QString( " " ) + tr( "differs from server's time. The difference is" ) + QString( " " ));
- a.append( BOLD( QString::number( int( c_info.difftime ) ) ) );
- a.append( QString( " " ) + tr( "seconds" ) + QString( ")<br>" ) );
+ a.append( tr( "INFO_PROCESS" ).arg( BOLD( QString::number( c_info.pid ) ),
+ BOLD( c_info.machine ),
+ BOLD( c_info.adip ),
+ BOLD( c_info.pwname ),
+ BOLD( QString::number( c_info.uid ) ),
+ BOLD( c_info.cdir ) ) );
+ a.append( "<br>" );
+ a.append( "<br>" );
+ a.append( tr( "INFO_STARTED" ).arg( BOLD( QString( ctime( &aStarted ) ).trimmed() ) ) );
+ a.append( "<br>" );
+ if ( c_info.tc_hello != 0 ) {
+ a.append( tr( "INFO_LAST_PING" ).arg( BOLD( QString( ctime( &aLastPing ) ).trimmed() ) ) );
+ a.append( "<br>" );
+ }
+ if ( c_info.tc_end - c_info.difftime != 0 ) {
+ a.append( tr( "INFO_FINISHED" ).arg( BOLD( QString( ctime( &aFinished ) ).trimmed() ) ) );
+ a.append( "<br>" );
+ }
+ else {
+ a.append( tr( "INFO_RUNNING" ) );
+ a.append( "<br>" );
+ }
+ if ( c_info.difftime != 0 ) {
+ a.append( tr( "INFO_TIME_DIFF" ).arg( BOLD( c_info.machine ), BOLD( QString::number( c_info.difftime ) ) ) );
+ a.append( "<br>" );
+ }
+ a.append( "</code>" ); // ASV: 28.07.06 : added <code> tags to make the text font be
+ // fixed width (looks much better on Windows)
}
- a.append( "</code>" ); // ASV: 28.07.06 : added <code> tags to make the text font be
- // fixed width (looks much better on Windows)
return a;
-
}
/*!
- \brief Close event handler.
- \param e close event
+ \brief Refresh registry information
*/
-void ToolsGUI_RegWidget::closeEvent( QCloseEvent* e )
+void ToolsGUI_RegWidget::refresh()
{
- if ( myInfoWindow )
- myInfoWindow->close();
- if ( myHelpWindow )
- myHelpWindow->close();
- if (myIntervalWindow)
- myIntervalWindow->close();
- e->accept();
-};
-
-/*!
- \brief Setup clients list.
-*/
-void ToolsGUI_RegWidget::SetListe()
-{
- _clients->installEventFilter( this );
- _clients->setColumnCount(6);
- _clients->setAllColumnsShowFocus( true );
- QStringList aLabels;
- aLabels << tr("Component") << tr("PID") << tr("User Name") << tr("Machine") << tr("begins") << tr("hello");
- _clients->setHeaderLabels( aLabels );
- //_clients->setColumnAlignment( 1, Qt::AlignRight );
-}
-
-/*!
- \brief Setup history list.
-*/
-void ToolsGUI_RegWidget::SetListeHistory()
-{
- _history->installEventFilter( this );
- _history->setColumnCount(6);
- _history->setAllColumnsShowFocus( true );
- QStringList aLabels;
- aLabels << tr("Component") << tr("PID") << tr("User Name") << tr("Machine") << tr("begins") << tr("ends");
- _history->setHeaderLabels( aLabels );
- //_history->setColumnAlignment( 1, Qt::AlignRight );
-}
-
-/*!
- \brief Update history list
-*/
-void ToolsGUI_RegWidget::InfoHistory()
-{
-
- _history->clear();
try {
- time_t aTime;
- _serverhistory = _VarComponents->history();
- for (CORBA::ULong i=0; i<_serverhistory->length(); i++) {
- const Registry::Infos & c_info=(*_serverhistory)[i];
- ASSERT( c_info.name!=NULL);
- QString a;
- a.setNum(int(c_info.pid));
- aTime = time_t(c_info.tc_start);
- char * t1 = (char * )duplicate(ctime(&aTime));
- t1 [strlen(t1) -1 ] = ' ';
- aTime = time_t(c_info.tc_end);
- char * t2 = (char * )duplicate(ctime(&aTime));
- t2 [strlen(t2) -1 ] = ' ';
- QStringList anItem;
- anItem << QString(c_info.name) << a << QString(c_info.pwname) << QString(c_info.machine) << QString(t1) << QString(t2);
- QTreeWidgetItem * item = new QTreeWidgetItem(_history, anItem);
- item=0 ;
- delete [] t1;
- delete [] t2;
-
+ // get reference to the Registry service
+ Registry::Components_var aRegistry = GetRegistry( myOrb );
+ if ( aRegistry->_is_nil() ) {
+ myActions[Interval]->setDisabled( true );
+ myActions[Refresh]->setDisabled( true );
+ myTimer->stop();
+ MESSAGE( "Sorry, no more Registry Server" );
+ statusBar()->showMessage( tr( "ERR_NO_REGISTRY" ) );
+ return;
}
- }
- catch( ... ) {
- _interval->setDisabled( TRUE ) ;
- _refresh->setDisabled( TRUE ) ;
- _counter->stop();
- MESSAGE("Sorry, No more Registry Server") ;
- statusBar()->showMessage( tr( "Sorry, No more Registry Server" ) ) ;
- }
-}
-/*!
- \brief Update clients list
-*/
-void ToolsGUI_RegWidget::InfoReg()
-{
- _clients->clear();
- try {
- time_t aTime;
- _serverclients = _VarComponents->getall();
- for (CORBA::ULong i=0; i<_serverclients->length(); i++) {
- const Registry::Infos & c_info=(*_serverclients)[i];
- ASSERT( c_info.name!=NULL);
- QString a;
- a.setNum(int(c_info.pid));
- aTime = time_t(c_info.tc_start);
- char * t1 = (char * )duplicate(ctime(&aTime));
- t1 [strlen(t1) -1 ] = ' ';
- aTime = time_t(c_info.tc_hello);
- char * t2 = (char * )duplicate(ctime(&aTime));
- t2 [strlen(t2) -1 ] = ' ';
- QStringList anItem;
- anItem << QString(c_info.name) << a << QString(c_info.pwname) << QString(c_info.machine) << QString(t1) << QString(t2);
- QTreeWidgetItem * item = new QTreeWidgetItem(_clients, anItem);
- item=0 ;
- delete [] t1;
- delete [] t2;
-
+ myData[Clients] = aRegistry->getall();
+ myData[History] = aRegistry->history();
+
+ // update current services list
+ myViews[Clients]->clear();
+ for ( int i = 0; i < myData[Clients]->length(); i++ ) {
+ const Registry::Infos& c_info = (*myData[Clients])[i];
+ time_t aStarted = time_t( c_info.tc_start );
+ time_t aLastPing = time_t( c_info.tc_hello );
+ QStringList aData;
+ aData << QString( c_info.name )
+ << QString::number( c_info.pid )
+ << QString( c_info.pwname )
+ << QString( c_info.machine )
+ << QString( ctime( &aStarted ) ).trimmed()
+ << QString( ctime( &aLastPing ) ).trimmed();
+ myViews[Clients]->addTopLevelItem( new QTreeWidgetItem( aData ) );
}
- }
- catch( ... ) {
- _interval->setDisabled( TRUE ) ;
- _refresh->setDisabled( TRUE ) ;
- _counter->stop();
- MESSAGE("Sorry, No more Registry Server") ;
- statusBar()->showMessage( tr( "Sorry, No more Registry Server" ) ) ;
- }
-}
-/*!
- \brief Called when \c Refresh button is clicked
-*/
-void ToolsGUI_RegWidget::slotListeSelect()
-{
- try {
- ASSERT(_tabWidget->currentWidget() != NULL);
- if (_tabWidget->currentWidget () == _clients) InfoReg();
- else if (_tabWidget->currentWidget () == _history) InfoHistory();
+ // update history
+ myViews[History]->clear();
+ for ( int i = 0; i < myData[History]->length(); i++ ) {
+ const Registry::Infos& c_info = (*myData[History])[i];
+ time_t aStarted = time_t( c_info.tc_start );
+ time_t aFinished = time_t( c_info.tc_end );
+ QStringList aData;
+ aData << QString( c_info.name )
+ << QString::number( c_info.pid )
+ << QString( c_info.pwname )
+ << QString( c_info.machine )
+ << QString( ctime( &aStarted ) ).trimmed()
+ << QString( ctime( &aFinished ) ).trimmed();
+ myViews[History]->addTopLevelItem( new QTreeWidgetItem( aData ) );
+ }
}
catch( ... ) {
- MESSAGE("Sorry, No more Registry Server") ;
- statusBar()->showMessage( tr( "Sorry, No more Registry Server" ) ) ;
+ myActions[Interval]->setDisabled( true );
+ myActions[Refresh]->setDisabled( true );
+ myTimer->stop();
+ MESSAGE( "Sorry, no more Registry Server" );
+ statusBar()->showMessage( tr( "ERR_NO_REGISTRY" ) );
}
}
\brief Called when \c Interval button is clicked (open dialog box to
change refresh interval).
*/
-void ToolsGUI_RegWidget::slotSelectRefresh()
+void ToolsGUI_RegWidget::refreshInterval()
{
- myIntervalWindow = new ToolsGUI_RegWidget::IntervalWindow(this);
- myIntervalWindow->installEventFilter( this );
- myIntervalWindow->setValue(myRefreshInterval);
- myIntervalWindow->show();
- connect( myIntervalWindow->Cancel(), SIGNAL( clicked() ), myIntervalWindow, SLOT( close() ) );
- connect( myIntervalWindow->Ok(), SIGNAL( clicked() ), this, SLOT( slotIntervalOk() ) );
+ bool ok;
+ int sec = QInputDialog::getInt( this, tr( "TLT_REFRESH_INTERVAL" ), tr( "LAB_REFRESH_INTERVAL" ),
+ myTimer->interval() / 1000, 1, 24 * 60 * 60, 1, &ok );
+ if ( ok )
+ myTimer->start( sec * 1000 );
}
/*!
- \brief Called when IntervalWindow's \c OK button is clicked
-*/
-void ToolsGUI_RegWidget::slotIntervalOk()
-{
- myRefreshInterval = myIntervalWindow->getValue();
- _counter->start( myRefreshInterval * 1000 );
- SCRUTE(myRefreshInterval);
- myIntervalWindow->close();
-}
-/*!
- \brief Called when \c Help button is clicked
+ \brief Show details about the chosen service.
+ \param item item activated by the user
+ \param column column index
*/
-void ToolsGUI_RegWidget::slotHelp()
+void ToolsGUI_RegWidget::showDetails( QTreeWidgetItem* item, int column )
{
- if ( !myHelpWindow ) {
- myHelpWindow = new ToolsGUI_RegWidget::HelpWindow( this );
- myHelpWindow->installEventFilter( this );
- }
- myHelpWindow->show();
- myHelpWindow->raise();
- myHelpWindow->activateWindow();
+ if ( !item || column < 0 ) return;
+ int i = sender() == myViews[Clients] ? Clients : History;
+ int idx = myViews[i]->indexOfTopLevelItem( item );
+ int size = myData[i]->length();
+ if ( idx < 0 || idx > size-1 ) return;
+ const Registry::Infos& c_info = (*myData[i])[idx];
+ myDetails->setText( getDetails( c_info ) );
}
-
-/*!
- \brief Called when user clicks on item in \c Running list
- \param item item clicked by the user
-*/
-void ToolsGUI_RegWidget::slotClientChanged( QTreeWidgetItem* item, int col )
-{
- if ( !item || col < 0 )
- return;
-
- blockSignals( true ); // for sure that item will not be deleted when refreshing
-
- int numeroItem = numitem(item->text(0), item->text(1), item->text(3), _serverclients);
- SCRUTE(numeroItem) ;
- SCRUTE(item->text(1).toLatin1().constData()) ;
-
- ASSERT(numeroItem>=0) ;
- ASSERT((size_t)numeroItem<_serverclients->length()) ;
- const Registry::Infos & c_info=(*_serverclients)[numeroItem];
- ASSERT( c_info.name!=NULL);
-
- if ( !myInfoWindow ) {
- myInfoWindow = new ToolsGUI_RegWidget::InfoWindow( this );
- myInfoWindow->installEventFilter( this );
- }
- QString a = tr( "More about" ) + QString( " " ) + QString( c_info.name );
- myInfoWindow->setWindowTitle(a);
- myInfoWindow->setText( ToolsGUI_RegWidget::setlongText( c_info) );
- myInfoWindow->show();
- myInfoWindow->raise();
- myInfoWindow->activateWindow();
-
- blockSignals( false ); // enabling signals again
-}
-
-/*!
- \brief Called when user clicks on item in \c History list
- \param item item clicked by the user
-*/
-void ToolsGUI_RegWidget::slotHistoryChanged( QTreeWidgetItem* item, int col )
-{
- if ( !item || col < 0 )
- return;
-
- blockSignals( true ); // for sure that item will not be deleted when refreshing
-
- int numeroItem = numitem(item->text(0), item->text(1), item->text(3), _serverhistory);
-
- SCRUTE(numeroItem) ;
- SCRUTE(item->text(1).toLatin1().constData()) ;
- ASSERT(numeroItem>=0) ;
- ASSERT((size_t)numeroItem<_serverhistory->length()) ;
- const Registry::Infos & c_info=(*_serverhistory)[numeroItem];
- ASSERT( c_info.name!=NULL);
-
- if ( !myInfoWindow ) {
- myInfoWindow = new ToolsGUI_RegWidget::InfoWindow( this );
- myInfoWindow->installEventFilter( this );
- }
- QString a = tr( "More about" ) + QString( " " ) + QString( c_info.name );
- myInfoWindow->setWindowTitle(a);
- myInfoWindow->setText( ToolsGUI_RegWidget::setlongText( c_info ) );
- myInfoWindow->show();
- myInfoWindow->raise();
- myInfoWindow->activateWindow();
-
- blockSignals( false ); // enabling signals again
-}
-
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-// SALOME RegistryDisplay : GUI for Registry server implementation
-// File : ToolsGUI_RegWidget.h
-// Author : Pascale NOYRET, EDF
-//
#ifndef TOOLSGUI_REGWIDGET_H
#define TOOLSGUI_REGWIDGET_H
#include "ToolsGUI.h"
#include <QMainWindow>
+#include <QMap>
#include <SALOMEconfig.h>
#include CORBA_CLIENT_HEADER(SALOME_Registry)
-class QTabWidget;
class QTreeWidget;
class QTreeWidgetItem;
-class QWidget;
class QTimer;
-class QCloseEvent;
class QAction;
+class QTextEdit;
class TOOLSGUI_EXPORT ToolsGUI_RegWidget : public QMainWindow
{
Q_OBJECT
- class HelpWindow;
- class IntervalWindow;
- class InfoWindow;
+ enum { Refresh, Interval, Close };
+ enum { Clients, History };
- ToolsGUI_RegWidget( CORBA::ORB_var& orb, QWidget* parent = 0 );
+ ToolsGUI_RegWidget( CORBA::ORB_ptr orb, QWidget* parent = 0 );
public:
~ToolsGUI_RegWidget();
- void SetListe();
- void SetListeHistory();
- void InfoReg();
- void InfoHistory();
-
- bool eventFilter( QObject* object, QEvent* event );
-
- static ToolsGUI_RegWidget* GetRegWidget( CORBA::ORB_var& orb,
+ static ToolsGUI_RegWidget* GetRegWidget( CORBA::ORB_ptr orb,
QWidget* parent = 0 );
- virtual QMenu* createPopupMenu();
+private slots:
+ void refresh();
+ void showDetails( QTreeWidgetItem*, int );
+ void refreshInterval();
-public slots:
- void slotHelp();
- void slotListeSelect();
- void slotClientChanged( QTreeWidgetItem*, int );
- void slotHistoryChanged( QTreeWidgetItem*, int );
- void slotSelectRefresh();
- void slotIntervalOk();
-
-protected:
- static QString setlongText( const Registry::Infos& c_info );
- int numitem( const QString& name,
- const QString& pid,
- const QString& machine,
- const Registry::AllInfos* clistclient );
- void closeEvent( QCloseEvent* e );
+private:
+ static QString getDetails( const Registry::Infos& c_info );
-protected :
- QTreeWidget* _clients;
- QTreeWidget* _history;
- QWidget* _parent;
- QTabWidget* _tabWidget;
- QAction* _refresh;
- QAction* _interval;
- QAction* _close;
- QTimer* _counter;
- Registry::AllInfos* _serverhistory;
- Registry::AllInfos* _serverclients;
- InfoWindow* myInfoWindow;
- HelpWindow* myHelpWindow;
- IntervalWindow* myIntervalWindow;
- int myRefreshInterval;
-
private:
- const Registry::Components_var _VarComponents;
- static ToolsGUI_RegWidget* myRegWidgetPtr;
+ static ToolsGUI_RegWidget* myRegWidgetPtr;
+
+ CORBA::ORB_var myOrb;
+ QMap<int, Registry::AllInfos*> myData;
+ QMap<int, QAction*> myActions;
+ QMap<int, QTreeWidget*> myViews;
+ QTextEdit* myDetails;
+ QTimer* myTimer;
};
#endif // TOOLSGUI_REGWIDGET_H
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
<translation>IDL : </translation>
</message>
</context>
+<context>
+ <name>ToolsGUI_RegWidget</name>
+ <message>
+ <source>TLT_REFRESH_INTERVAL</source>
+ <translation>Refresh Interval</translation>
+ </message>
+ <message>
+ <source>LAB_REFRESH_INTERVAL</source>
+ <translation>New refresh interval (in seconds)</translation>
+ </message>
+ <message>
+ <source>TLT_REGISTRY</source>
+ <translation>Registry</translation>
+ </message>
+ <message>
+ <source>MNU_ACTIONS</source>
+ <translation>Actions</translation>
+ </message>
+ <message>
+ <source>TB_ACTIONS</source>
+ <translation>Actions</translation>
+ </message>
+ <message>
+ <source>MEN_REFRESH</source>
+ <translation>Refresh</translation>
+ </message>
+ <message>
+ <source>STB_REFRESH</source>
+ <translation>Immediately updates list of components</translation>
+ </message>
+ <message>
+ <source>MEN_INTERVAL</source>
+ <translation>Refresh interval...</translation>
+ </message>
+ <message>
+ <source>STB_INTERVAL</source>
+ <translation>Change refresh interval</translation>
+ </message>
+ <message>
+ <source>MEN_CLOSE</source>
+ <translation>Close</translation>
+ </message>
+ <message>
+ <source>STB_CLOSE</source>
+ <translation>Close Registry window</translation>
+ </message>
+ <message>
+ <source>TAB_RUNNING</source>
+ <translation>Running</translation>
+ </message>
+ <message>
+ <source>TAB_HISTORY</source>
+ <translation>History</translation>
+ </message>
+ <message>
+ <source>HDR_COMPONENT</source>
+ <translation>Component</translation>
+ </message>
+ <message>
+ <source>HDR_PID</source>
+ <translation>PID</translation>
+ </message>
+ <message>
+ <source>HDR_USERNAME</source>
+ <translation>User name</translation>
+ </message>
+ <message>
+ <source>HDR_HOSTNAME</source>
+ <translation>Host name</translation>
+ </message>
+ <message>
+ <source>HDR_STARTED</source>
+ <translation>Started</translation>
+ </message>
+ <message>
+ <source>HDR_FINISHED</source>
+ <translation>Finished</translation>
+ </message>
+ <message>
+ <source>HDR_HELLO</source>
+ <translation>Last ping</translation>
+ </message>
+ <message>
+ <source>ERR_NO_REGISTRY</source>
+ <translation>Error: Registry Server is not found</translation>
+ </message>
+ <message>
+ <source>INFO_SERVICE</source>
+ <translation>Service : %1</translation>
+ </message>
+ <message>
+ <source>INFO_PROCESS</source>
+ <translation>Process ( PID : %1 ) on the machine %2 ( ip address : %3 ); launched by the user %4 ( UID : %5 ) in directory %6.</translation>
+ </message>
+ <message>
+ <source>INFO_STARTED</source>
+ <translation>Started : %1</translation>
+ </message>
+ <message>
+ <source>INFO_LAST_PING</source>
+ <translation>Last signal : %1</translation>
+ </message>
+ <message>
+ <source>INFO_FINISHED</source>
+ <translation>Finished : %1</translation>
+ </message>
+ <message>
+ <source>INFO_RUNNING</source>
+ <translation>Still running</translation>
+ </message>
+ <message>
+ <source>INFO_TIME_DIFF</source>
+ <translation>Time on %1 differs from server's time. The difference is %2 seconds.</translation>
+ </message>
+</context>
</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>TOOLS_WRN_WARNING</source>
+ <translation>Avertissement</translation>
+ </message>
+ <message>
+ <source>TOOLS_BUT_BROWSE</source>
+ <translation>Naviquer...</translation>
+ </message>
+ <message>
+ <source>TOOLS_ERR_ERROR</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>TOOLS_ERR_FILE_NOT_EXIST</source>
+ <translation>%1
+Le fichier n'existe pas</translation>
+ </message>
+ <message>
+ <source>TOOLS_BUT_OK</source>
+ <translation>&Ok</translation>
+ </message>
+ <message>
+ <source>TOOLS_BUT_APPLY</source>
+ <translation>&Appliquer</translation>
+ </message>
+ <message>
+ <source>TOOLS_BUT_CLOSE</source>
+ <translation>&Fermer</translation>
+ </message>
+</context>
+<context>
+ <name>ToolsGUI_CatalogGeneratorDlg</name>
+ <message>
+ <source>TOOLS_MEN_EXPORT</source>
+ <translation>Exporter</translation>
+ </message>
+ <message>
+ <source>TOOLS_MEN_IMPORT</source>
+ <translation>Importer</translation>
+ </message>
+ <message>
+ <source>TOOLS_VERSION</source>
+ <translation>Version : </translation>
+ </message>
+ <message>
+ <source>TOOLS_COMP_NAME</source>
+ <translation>Nom : </translation>
+ </message>
+ <message>
+ <source>TOOLS_COMP_TYPE</source>
+ <translation>Type : </translation>
+ </message>
+ <message>
+ <source>TOOLS_XML_FILE</source>
+ <translation>XML : </translation>
+ </message>
+ <message>
+ <source>TOOLS_PNG_FILE</source>
+ <translation>Icône : </translation>
+ </message>
+ <message>
+ <source>TOOLS_SUPPLEMENT</source>
+ <translation>Données du Composant Supplémentaires</translation>
+ </message>
+ <message>
+ <source>TOOLS_AUTHOR</source>
+ <translation>Autheur : </translation>
+ </message>
+ <message>
+ <source>TOOLS_COMP_MULTISTD</source>
+ <translation>Multiétude : </translation>
+ </message>
+ <message>
+ <source>TOOLS_COMP_USERNAME</source>
+ <translation>NomUtilisateur : </translation>
+ </message>
+ <message>
+ <source>TOOLS_CATALOG_GENERATOR</source>
+ <translation>Générateur du Catalogue</translation>
+ </message>
+ <message>
+ <source>TOOLS_FILES</source>
+ <translation>Fichiers</translation>
+ </message>
+ <message>
+ <source>TOOLS_MEN_IMPORT_PNG</source>
+ <translation>Fichiers PNG ( *.png )</translation>
+ </message>
+ <message>
+ <source>TOOLS_MEN_IMPORT_IDL</source>
+ <translation>Fichiers IDL ( *.idl )</translation>
+ </message>
+ <message>
+ <source>TOOLS_MEN_EXPORT_XML</source>
+ <translation>Fichiers XML ( *.xml )</translation>
+ </message>
+ <message>
+ <source>TOOLS_IDL_FILE</source>
+ <translation>IDL : </translation>
+ </message>
+</context>
+<context>
+ <name>ToolsGUI_RegWidget</name>
+ <message>
+ <source>TLT_REFRESH_INTERVAL</source>
+ <translation>Fréquence d'actualisation</translation>
+ </message>
+ <message>
+ <source>LAB_REFRESH_INTERVAL</source>
+ <translation>Nouvelle fréquence d'actualisation (en secondes)</translation>
+ </message>
+ <message>
+ <source>TLT_REGISTRY</source>
+ <translation>Registre</translation>
+ </message>
+ <message>
+ <source>MNU_ACTIONS</source>
+ <translation>Actions</translation>
+ </message>
+ <message>
+ <source>TB_ACTIONS</source>
+ <translation>Actions</translation>
+ </message>
+ <message>
+ <source>MEN_REFRESH</source>
+ <translation>Refresh</translation>
+ </message>
+ <message>
+ <source>STB_REFRESH</source>
+ <translation>Met à jour toutb de suite la liste des composants</translation>
+ </message>
+ <message>
+ <source>MEN_INTERVAL</source>
+ <translation>Fréquence d'actualisation...</translation>
+ </message>
+ <message>
+ <source>STB_INTERVAL</source>
+ <translation>Changer la fréquence d'actualisation</translation>
+ </message>
+ <message>
+ <source>MEN_CLOSE</source>
+ <translation>Fermer</translation>
+ </message>
+ <message>
+ <source>STB_CLOSE</source>
+ <translation>Fermer la fenêtre du Registre</translation>
+ </message>
+ <message>
+ <source>TAB_RUNNING</source>
+ <translation>En cours</translation>
+ </message>
+ <message>
+ <source>TAB_HISTORY</source>
+ <translation>Historique</translation>
+ </message>
+ <message>
+ <source>HDR_COMPONENT</source>
+ <translation>Composant</translation>
+ </message>
+ <message>
+ <source>HDR_PID</source>
+ <translation>PID</translation>
+ </message>
+ <message>
+ <source>HDR_USERNAME</source>
+ <translation>Nom de l'utilisateur</translation>
+ </message>
+ <message>
+ <source>HDR_HOSTNAME</source>
+ <translation>Nom de l'hôte</translation>
+ </message>
+ <message>
+ <source>HDR_STARTED</source>
+ <translation>Commencé</translation>
+ </message>
+ <message>
+ <source>HDR_FINISHED</source>
+ <translation>Fini</translation>
+ </message>
+ <message>
+ <source>HDR_HELLO</source>
+ <translation>Dernier ping</translation>
+ </message>
+ <message>
+ <source>ERR_NO_REGISTRY</source>
+ <translation>Erreur: le Serveur du Registre n'est pas trouvé</translation>
+ </message>
+ <message>
+ <source>INFO_SERVICE</source>
+ <translation>Service : %1</translation>
+ </message>
+ <message>
+ <source>INFO_PROCESS</source>
+ <translation>Le procédé ( PID : %1 ) sur la station %2 ( ip adresse : %3 ); lancé par l'utilisateur %4 ( UID : %5 ) au répertoire %6.</translation>
+ </message>
+ <message>
+ <source>INFO_STARTED</source>
+ <translation>Commencé : %1</translation>
+ </message>
+ <message>
+ <source>INFO_LAST_PING</source>
+ <translation>Dernier signal : %1</translation>
+ </message>
+ <message>
+ <source>INFO_FINISHED</source>
+ <translation>Fini : %1</translation>
+ </message>
+ <message>
+ <source>INFO_RUNNING</source>
+ <translation>Demeure en cours</translation>
+ </message>
+ <message>
+ <source>INFO_TIME_DIFF</source>
+ <translation>Le temps de la station %1 est différent du temps du serveur. La différence est %2 secondes.</translation>
+ </message>
+</context>
+</TS>
VTKViewer_MarkerWidget.h \
VTKViewer_MarkerDlg.h \
VTKViewer_PolyDataMapper.h \
- VTKViewer_DataSetMapper.h
+ VTKViewer_DataSetMapper.h \
+ VTKViewer_CellCenters.h
dist_libVTKViewer_la_SOURCES = \
VTKViewer_CellLocationsArray.cxx \
VTKViewer_MarkerWidget.cxx \
VTKViewer_MarkerDlg.cxx \
VTKViewer_PolyDataMapper.cxx \
- VTKViewer_DataSetMapper.cxx
+ VTKViewer_DataSetMapper.cxx \
+ VTKViewer_CellCenters.cxx
MOC_FILES = \
VTKViewer_RenderWindow_moc.cxx \
nodist_salomeres_DATA = \
VTKViewer_images.qm \
- VTKViewer_msg_en.qm
+ VTKViewer_msg_en.qm \
+ VTKViewer_msg_fr.qm
libVTKViewer_la_CPPFLAGS = $(QT_INCLUDES) $(VTK_INCLUDES) $(CAS_CPPFLAGS) \
-I$(srcdir)/../Qtx -I$(srcdir)/../SUIT
--- /dev/null
+// Copyright (C) 2007-2010 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.
+//
+// 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
+//
+
+#include "VTKViewer_CellCenters.h"
+
+#include <vtkCell.h>
+#include <vtkCellData.h>
+#include <vtkDataSet.h>
+#include <vtkInformation.h>
+#include <vtkInformationVector.h>
+#include <vtkObjectFactory.h>
+#include <vtkPointData.h>
+#include <vtkPoints.h>
+#include <vtkPolyData.h>
+#include <vtkCellArray.h>
+
+vtkCxxRevisionMacro(VTKViewer_CellCenters, "$Revision$");
+vtkStandardNewMacro(VTKViewer_CellCenters);
+
+/*!
+ * Class : VTKViewer_CellCenters
+ * Description : Filter computing geometrical centers of given cells
+ * (differs from native vtk filter by small fix for VTK_CONVEX_POINT_SET cells)
+ */
+
+/*!
+ Constructor
+*/
+VTKViewer_CellCenters::VTKViewer_CellCenters()
+{
+}
+
+/*!
+ Redefined main method
+*/
+int VTKViewer_CellCenters::RequestData(
+ vtkInformation *vtkNotUsed(request),
+ vtkInformationVector **inputVector,
+ vtkInformationVector *outputVector)
+{
+ // get the info objects
+ vtkInformation *inInfo = inputVector[0]->GetInformationObject(0);
+ vtkInformation *outInfo = outputVector->GetInformationObject(0);
+
+ // get the input and ouptut
+ vtkDataSet *input = vtkDataSet::SafeDownCast(
+ inInfo->Get(vtkDataObject::DATA_OBJECT()));
+ vtkPolyData *output = vtkPolyData::SafeDownCast(
+ outInfo->Get(vtkDataObject::DATA_OBJECT()));
+
+ vtkIdType cellId, numCells;
+ int subId;
+ vtkCellData *inCD;
+ vtkPointData *outPD;
+ vtkPoints *newPts;
+ vtkCell *cell;
+ double x[3], pcoords[3];
+ double *weights;
+
+ inCD=input->GetCellData();
+ outPD=output->GetPointData();
+
+ if ( (numCells = input->GetNumberOfCells()) < 1 )
+ {
+ vtkWarningMacro(<<"No cells to generate center points for");
+ return 1;
+ }
+
+ newPts = vtkPoints::New();
+ newPts->SetNumberOfPoints(numCells);
+ weights = new double [input->GetMaxCellSize()];
+
+ int abort=0;
+ vtkIdType progressInterval = numCells/10 + 1;
+ int hasEmptyCells = 0;
+ for (cellId=0; cellId < numCells && !abort; cellId++)
+ {
+ if ( ! (cellId % progressInterval) )
+ {
+ vtkDebugMacro(<<"Processing #" << cellId);
+ this->UpdateProgress (0.5*cellId/numCells);
+ abort = this->GetAbortExecute();
+ }
+
+ cell = input->GetCell(cellId);
+ if (cell->GetCellType() != VTK_EMPTY_CELL)
+ {
+ // fix for VTK_CONVEX_POINT_SET cells
+ if (cell->GetCellType() == VTK_CONVEX_POINT_SET )
+ {
+ x[0] = x[1] = x[2] = 0;
+ vtkPoints* aPoints = cell->GetPoints();
+ int aNbPoints = aPoints->GetNumberOfPoints();
+ for( int i = 0; i < aNbPoints; i++ )
+ {
+ double aCoord[3];
+ aPoints->GetPoint( i, aCoord );
+ x[0] += aCoord[0];
+ x[1] += aCoord[1];
+ x[2] += aCoord[2];
+ }
+ x[0] /= aNbPoints;
+ x[1] /= aNbPoints;
+ x[2] /= aNbPoints;
+ }
+ else
+ {
+ subId = cell->GetParametricCenter(pcoords);
+ cell->EvaluateLocation(subId, pcoords, x, weights);
+ }
+ newPts->SetPoint(cellId,x);
+ }
+ else
+ {
+ hasEmptyCells = 1;
+ }
+ }
+
+ if ( this->VertexCells )
+ {
+ vtkIdType pts[1];
+ vtkCellData *outCD=output->GetCellData();
+ vtkCellArray *verts = vtkCellArray::New();
+ verts->Allocate(verts->EstimateSize(1,numCells),1);
+
+ for (cellId=0; cellId < numCells && !abort; cellId++)
+ {
+ if ( ! (cellId % progressInterval) )
+ {
+ vtkDebugMacro(<<"Processing #" << cellId);
+ this->UpdateProgress (0.5+0.5*cellId/numCells);
+ abort = this->GetAbortExecute();
+ }
+
+ cell = input->GetCell(cellId);
+ if (cell->GetCellType() != VTK_EMPTY_CELL)
+ {
+ pts[0] = cellId;
+ verts->InsertNextCell(1,pts);
+ }
+ }
+
+ output->SetVerts(verts);
+ verts->Delete();
+ if (!hasEmptyCells)
+ {
+ outCD->PassData(inCD); //only if verts are generated
+ }
+ }
+
+ // clean up and update output
+ output->SetPoints(newPts);
+ newPts->Delete();
+
+ if (!hasEmptyCells)
+ {
+ outPD->PassData(inCD); //because number of points = number of cells
+ }
+ if (weights)
+ {
+ delete [] weights;
+ }
+
+ return 1;
+}
--- /dev/null
+// Copyright (C) 2007-2010 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.
+//
+// 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
+//
+
+#ifndef VTKVIEWER_CELLCENTERS_H
+#define VTKVIEWER_CELLCENTERS_H
+
+#include "VTKViewer.h"
+
+#include <vtkCellCenters.h>
+
+#ifdef WIN32
+#pragma warning ( disable:4251 )
+#endif
+
+/*!
+ * Class : VTKViewer_CellCenters
+ * Description : Filter computing geometrical centers of given cells
+ * (differs from native vtk filter by small fix for VTK_CONVEX_POINT_SET cells)
+ */
+class VTKVIEWER_EXPORT VTKViewer_CellCenters : public vtkCellCenters
+{
+public:
+ vtkTypeRevisionMacro(VTKViewer_CellCenters,vtkCellCenters);
+
+ static VTKViewer_CellCenters *New();
+
+protected:
+ VTKViewer_CellCenters();
+
+ virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
+
+private:
+ VTKViewer_CellCenters(const VTKViewer_CellCenters&); // Not implemented.
+ void operator=(const VTKViewer_CellCenters&); // Not implemented.
+};
+
+#ifdef WIN32
+#pragma warning ( default:4251 )
+#endif
+
+#endif
-<!DOCTYPE TS><TS>
-<!--
- Copyright (C) 2007-2010 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.
-
- 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
-
--->
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
<context>
<name>@default</name>
<message>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>MNU_FRONT_VIEW</source>
+ <translation>Devant</translation>
+ </message>
+ <message>
+ <source>ERROR</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>MNU_DUMP_VIEW</source>
+ <translation>Clipper une vue...</translation>
+ </message>
+ <message>
+ <source>DSC_TOP_VIEW</source>
+ <translation>Vue de dessus</translation>
+ </message>
+ <message>
+ <source>MNU_PAN_VIEW</source>
+ <translation>Panoramique</translation>
+ </message>
+ <message>
+ <source>MNU_TOP_VIEW</source>
+ <translation>Dessus</translation>
+ </message>
+ <message>
+ <source>DSC_GLOBALPAN_VIEW</source>
+ <translation>Sélection d'un nouveau centre de la vue</translation>
+ </message>
+ <message>
+ <source>DSC_ROTATE_VIEW</source>
+ <translation>Tourner le point de vue autour du centre de la scène</translation>
+ </message>
+ <message>
+ <source>MNU_ZOOM_VIEW</source>
+ <translation>Zoom</translation>
+ </message>
+ <message>
+ <source>DSC_PAN_VIEW</source>
+ <translation>Redimensionner la vue</translation>
+ </message>
+ <message>
+ <source>DSC_LEFT_VIEW</source>
+ <translation>Vue de gauche</translation>
+ </message>
+ <message>
+ <source>DSC_FITALL</source>
+ <translation>Redimensionner la scène pour montrer tous les objets</translation>
+ </message>
+ <message>
+ <source>MNU_FITALL</source>
+ <translation>Montrer tous</translation>
+ </message>
+ <message>
+ <source>MNU_ROTATE_VIEW</source>
+ <translation>Rotation</translation>
+ </message>
+ <message>
+ <source>DSC_SHOW_TRIHEDRON</source>
+ <translation>Montrer/Cacher les axes de coordonnées dans la scène</translation>
+ </message>
+ <message>
+ <source>DSC_FRONT_VIEW</source>
+ <translation>Vue de Devant</translation>
+ </message>
+ <message>
+ <source>MNU_GLOBALPAN_VIEW</source>
+ <translation>Panoramique Globale</translation>
+ </message>
+ <message>
+ <source>INF_APP_DUMP_VIEW</source>
+ <translation>Clicher la vue</translation>
+ </message>
+ <message>
+ <source>MNU_BACK_VIEW</source>
+ <translation>Arrière</translation>
+ </message>
+ <message>
+ <source>MNU_SHOW_TRIHEDRON</source>
+ <translation>Montrer/Cacher les axes de coordonnées</translation>
+ </message>
+ <message>
+ <source>MNU_BOTTOM_VIEW</source>
+ <translation>Dessous</translation>
+ </message>
+ <message>
+ <source>MNU_RESET_VIEW</source>
+ <translation>Restaurer le point de vue</translation>
+ </message>
+ <message>
+ <source>MNU_LEFT_VIEW</source>
+ <translation>Gauche</translation>
+ </message>
+ <message>
+ <source>DSC_RIGHT_VIEW</source>
+ <translation>Veu de Droit</translation>
+ </message>
+ <message>
+ <source>DSC_FITRECT</source>
+ <translation>Redimensionner la scène pour ne montrer que la partie choisie par l'encadré</translation>
+ </message>
+ <message>
+ <source>MNU_FITRECT</source>
+ <translation>Montrer l'encadré</translation>
+ </message>
+ <message>
+ <source>DSC_BOTTOM_VIEW</source>
+ <translation>Vue de Dessous</translation>
+ </message>
+ <message>
+ <source>DSC_DUMP_VIEW</source>
+ <translation>Sauvegarder la scène en cours au fichier image</translation>
+ </message>
+ <message>
+ <source>DSC_ZOOM_VIEW</source>
+ <translation>Zoom la vue</translation>
+ </message>
+ <message>
+ <source>VTK_IMAGE_FILES</source>
+ <translation>Fichiers Images (*.bmp *.png *.jpg *.jpeg)</translation>
+ </message>
+ <message>
+ <source>DSC_RESET_VIEW</source>
+ <translation>Restaurer le Point de Vue </translation>
+ </message>
+ <message>
+ <source>ERR_DOC_CANT_SAVE_FILE</source>
+ <translation>Il est impossible de sauvegarder le fichier</translation>
+ </message>
+ <message>
+ <source>MNU_RIGHT_VIEW</source>
+ <translation>Droit</translation>
+ </message>
+ <message>
+ <source>LBL_TOOLBAR_LABEL</source>
+ <translation>Visualiser les Opérations</translation>
+ </message>
+ <message>
+ <source>DSC_BACK_VIEW</source>
+ <translation>Vue d'Arrière</translation>
+ </message>
+</context>
+<context>
+ <name>VTKViewer_MarkerDlg</name>
+ <message>
+ <source>SET_MARKER_TLT</source>
+ <translation>Définir le Repère Point</translation>
+ </message>
+</context>
+<context>
+ <name>VTKViewer_MarkerWidget</name>
+ <message>
+ <source>STANDARD_MARKER</source>
+ <translation>Standard</translation>
+ </message>
+ <message>
+ <source>CUSTOM_MARKER</source>
+ <translation>Personnalisé</translation>
+ </message>
+ <message>
+ <source>TYPE</source>
+ <translation>Type:</translation>
+ </message>
+ <message>
+ <source>SCALE</source>
+ <translation>Echelle:</translation>
+ </message>
+ <message>
+ <source>CUSTOM</source>
+ <translation>Texture:</translation>
+ </message>
+ <message>
+ <source>BROWSE</source>
+ <translation>Naviguer...</translation>
+ </message>
+ <message>
+ <source>LOAD_TEXTURE_TLT</source>
+ <translation>Charger une Texture</translation>
+ </message>
+</context>
+<context>
+ <name>VTKViewer_ViewManager</name>
+ <message>
+ <source>VTK_VIEW_TITLE</source>
+ <translation>VTK scène:%M - visualisateur:%V</translation>
+ </message>
+</context>
+<context>
+ <name>VTKViewer_Viewer</name>
+ <message>
+ <source>MEN_DUMP_VIEW</source>
+ <translation>Clicher la Vue...</translation>
+ </message>
+ <message>
+ <source>MEN_SHOW_TOOLBAR</source>
+ <translation>Montrer la Barre d'Outils</translation>
+ </message>
+ <message>
+ <source>MEN_CHANGE_BACKGROUD</source>
+ <translation>Changer l'Arrière-Plan...</translation>
+ </message>
+</context>
+</TS>