*.pro.user
moc_*.*
*.qm
+*.ts
#Resources
resources
!src/*/resources
PartSet_icons.qrc
)
-SET(TEXT_RESOURCES
- PartSet_msg_en.ts
-)
+#SET(TEXT_RESOURCES
+# PartSet_msg_fr.ts
+#)
SET(PROJECT_LIBRARIES
ModuleBase
)
QT4_ADD_RESOURCES(PROJECT_COMPILED_RESOURCES ${PROJECT_RESOURCES})
-QT4_ADD_TRANSLATION(QM_RESOURCES ${TEXT_RESOURCES})
+#QT4_ADD_TRANSLATION(QM_RESOURCES ${TEXT_RESOURCES})
+#QT4_CREATE_TRANSLATION(QM_RESOURCES
+# ${PROJECT_SOURCES}
+# ${TEXT_RESOURCES}
+# OPTIONS -extensions cpp -no-recursive
+# )
-SOURCE_GROUP ("Generated Files" FILES ${PROJECT_AUTOMOC} ${PROJECT_COMPILED_RESOURCES} ${QM_RESOURCES})
-SOURCE_GROUP ("Resource Files" FILES ${TEXT_RESOURCES} ${PROJECT_RESOURCES})
+#SOURCE_GROUP ("Generated Files" FILES ${PROJECT_AUTOMOC} ${PROJECT_COMPILED_RESOURCES} ${QM_RESOURCES})
+SOURCE_GROUP ("Generated Files" FILES ${PROJECT_AUTOMOC} ${PROJECT_COMPILED_RESOURCES})
+#SOURCE_GROUP ("Resource Files" FILES ${TEXT_RESOURCES} ${PROJECT_RESOURCES})
+SOURCE_GROUP ("Resource Files" FILES ${PROJECT_RESOURCES})
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/XGUI
${CMAKE_SOURCE_DIR}/src/Config
${PROJECT_SOURCES}
${PROJECT_HEADERS}
${PROJECT_COMPILED_RESOURCES}
- ${TEXT_RESOURCES}
- ${QM_RESOURCES}
+# ${TEXT_RESOURCES}
+# ${QM_RESOURCES}
)
# The Qt5Widgets_LIBRARIES variable also includes QtGui and QtCore
ADD_DEPENDENCIES(PartSet ModuleBase)
INSTALL(TARGETS PartSet DESTINATION bin)
+#INSTALL(FILES ${QM_RESOURCES} DESTINATION bin)
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="en_US">
-<context>
- <name>@default</name>
-</context>
-<context>
- <name>XGUI_Workshop</name>
- <message>
- <source>HOME_MENU_TITLE</source>
- <translation>Home</translation>
- </message>
- <message>
- <source>NEW_MENU</source>
- <translation>New</translation>
- </message>
-</context>
-</TS>
# resource files / to be processed by lrelease
SET(TEXT_RESOURCES
- resources/PyConsole_msg_en.ts
- resources/PyConsole_msg_fr.ts
- resources/PyConsole_msg_ja.ts
+ PyConsole_msg_fr.ts
)
+
# sources / static
SET(PROJECT_SOURCES
PyConsole_Console.cpp
${PYTHON_LIBRARIES}
)
-QT4_ADD_TRANSLATION(QM_RESOURCES ${TEXT_RESOURCES})
+#QT4_ADD_TRANSLATION(QM_RESOURCES ${TEXT_RESOURCES})
+QT4_CREATE_TRANSLATION(QM_RESOURCES
+ ${PROJECT_SOURCES}
+ ${TEXT_RESOURCES}
+ OPTIONS -extensions cpp -no-recursive
+ )
SOURCE_GROUP ("Generated Files" FILES ${PROJECT_AUTOMOC} ${QM_RESOURCES})
TARGET_LINK_LIBRARIES(PyConsole ${PROJECT_LIBRARIES})
INSTALL(TARGETS PyConsole DESTINATION bin)
+INSTALL(FILES ${QM_RESOURCES} DESTINATION bin)
*/
void PyConsole_Console::createActions()
{
- QAction* a = new QAction( tr( "EDIT_COPY_CMD" ), this );
- a->setStatusTip( tr( "EDIT_COPY_CMD" ) );
+ QAction* a = new QAction( tr( "&Copy" ), this );
+ a->setStatusTip( tr( "Copy" ) );
connect( a, SIGNAL( triggered( bool ) ), myEditor, SLOT( copy() ) );
myActions.insert( CopyId, a );
- a = new QAction( tr( "EDIT_PASTE_CMD" ), this );
- a->setStatusTip( tr( "EDIT_PASTE_CMD" ) );
+ a = new QAction( tr( "&Paste" ), this );
+ a->setStatusTip( tr( "Paste" ) );
connect( a, SIGNAL( triggered( bool ) ), myEditor, SLOT( paste() ) );
myActions.insert( PasteId, a );
- a = new QAction( tr( "EDIT_CLEAR_CMD" ), this );
- a->setStatusTip( tr( "EDIT_CLEAR_CMD" ) );
+ a = new QAction( tr( "Clea&r" ), this );
+ a->setStatusTip( tr( "Clear" ) );
connect( a, SIGNAL( triggered( bool ) ), myEditor, SLOT( clear() ) );
myActions.insert( ClearId, a );
- a = new QAction( tr( "EDIT_SELECTALL_CMD" ), this );
- a->setStatusTip( tr( "EDIT_SELECTALL_CMD" ) );
+ a = new QAction( tr( "Select &All" ), this );
+ a->setStatusTip( tr( "Select all" ) );
connect( a, SIGNAL( triggered( bool ) ), myEditor, SLOT( selectAll() ) );
myActions.insert( SelectAllId, a );
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="en_US">
-<context>
- <name>PyConsole_Console</name>
- <message>
- <location filename="../PyConsole_Console.cxx" line="216"/>
- <source>EDIT_COPY_CMD</source>
- <translation>&Copy</translation>
- </message>
- <message>
- <location filename="../PyConsole_Console.cxx" line="221"/>
- <source>EDIT_PASTE_CMD</source>
- <translation>&Paste</translation>
- </message>
- <message>
- <location filename="../PyConsole_Console.cxx" line="226"/>
- <source>EDIT_CLEAR_CMD</source>
- <translation>Clea&r</translation>
- </message>
- <message>
- <location filename="../PyConsole_Console.cxx" line="231"/>
- <source>EDIT_SELECTALL_CMD</source>
- <translation>Select &All</translation>
- </message>
- <message>
- <source>EDIT_DUMPCOMMANDS_CMD</source>
- <translation>D&ump commands</translation>
- </message>
-</context>
-<context>
- <name>PyConsole_Editor</name>
- <message>
- <source>TOT_DUMP_PYCOMMANDS</source>
- <translation>Dump commands</translation>
- </message>
- <message>
- <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>&Tout sélectionner</translation>
- </message>
- <message>
- <source>EDIT_DUMPCOMMANDS_CMD</source>
- <translation>&Générer le script des commandes</translation>
- </message>
-</context>
-<context>
- <name>PyConsole_Editor</name>
- <message>
- <source>TOT_DUMP_PYCOMMANDS</source>
- <translation>&Générer le script des commandes</translation>
- </message>
- <message>
- <source>PYTHON_FILES_FILTER</source>
- <translation>Fichiers PYTHON (*.py)</translation>
- </message>
-</context>
-</TS>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS>
- <context>
- <name>PyConsole_Console</name>
- <message>
- <location filename="../PyConsole_Console.cxx" line="216"/>
- <source>EDIT_COPY_CMD</source>
- <translation>コピー(&C)</translation>
- </message>
- <message>
- <location filename="../PyConsole_Console.cxx" line="221"/>
- <source>EDIT_PASTE_CMD</source>
- <translation>貼り付け(&P)</translation>
- </message>
- <message>
- <location filename="../PyConsole_Console.cxx" line="226"/>
- <source>EDIT_CLEAR_CMD</source>
- <translation>削除(&r)</translation>
- </message>
- <message>
- <location filename="../PyConsole_Console.cxx" line="231"/>
- <source>EDIT_SELECTALL_CMD</source>
- <translation>すべて選択します。(&A)</translation>
- </message>
- <message>
- <source>EDIT_DUMPCOMMANDS_CMD</source>
- <translation>スクリプト コマンドを生成します。(&u)</translation>
- </message>
- </context>
- <context>
- <name>PyConsole_Editor</name>
- <message>
- <source>TOT_DUMP_PYCOMMANDS</source>
- <translation>スクリプト コマンドを生成します。</translation>
- </message>
- <message>
- <source>PYTHON_FILES_FILTER</source>
- <translation>ファイル (*.py) PYTHON</translation>
- </message>
- </context>
-</TS>
XGUI_PartDataModel* aModel = new XGUI_PartDataModel(myDocument, this);
aModel->setPartId(myPartModels.count());
myPartModels.append(aModel);
- insertRows(partFolderNode(), aStart, aStart);
+ insertRow(aStart, partFolderNode());
} else { // Update top groups (other except parts
QModelIndex aIndex = myModel->findParent(aFeature);
int aStart = myModel->rowCount(aIndex) - 1;
aIndex = createIndex(aIndex.row(), aIndex.column(), (void*)getModelIndex(aIndex));
- insertRows(aIndex, aStart, aStart);
+ insertRow(aStart, aIndex);
}
} else { // if sub-objects of first level nodes
XGUI_PartModel* aPartModel = 0;
QModelIndex aIndex = aPartModel->findParent(aFeature);
int aStart = aPartModel->rowCount(aIndex) - 1;
aIndex = createIndex(aIndex.row(), aIndex.column(), (void*)getModelIndex(aIndex));
- insertRows(aIndex, aStart, aStart);
+ insertRow(aStart, aIndex);
}
}
if (aDoc == myDocument) { // If root objects
if (aUpdMsg->group().compare(PARTS_GROUP) == 0) { // Updsate only Parts group
int aStart = myPartModels.size();
- beginRemoveRows(partFolderNode(), aStart, aStart);
removeSubModel(myPartModels.size() - 1);
- endRemoveRows();
+ removeRow(aStart - 1, partFolderNode());
} else { // Update top groups (other except parts
QModelIndex aIndex = myModel->findGroup(aUpdMsg->group());
int aStart = myModel->rowCount(aIndex);
aIndex = createIndex(aIndex.row(), aIndex.column(), (void*)getModelIndex(aIndex));
- beginRemoveRows(aIndex, aStart, aStart);
- endRemoveRows();
+ removeRow(aStart - 1, aIndex);
}
} else {
XGUI_PartModel* aPartModel = 0;
QModelIndex aIndex = aPartModel->findGroup(aUpdMsg->group());
int aStart = aPartModel->rowCount(aIndex);
aIndex = createIndex(aIndex.row(), aIndex.column(), (void*)getModelIndex(aIndex));
- beginRemoveRows(aIndex, aStart, aStart);
- endRemoveRows();
+ removeRow(aStart - 1, aIndex);
}
}
{
if (!theIndex.isValid())
return QVariant();
- if (theIndex.internalId() == 0){
+ switch (theIndex.internalId()) {
+ case PartsFolder:
switch (theRole) {
case Qt::DisplayRole:
return tr("Parts") + QString(" (%1)").arg(rowCount(theIndex));
default:
return QVariant();
}
+ break;
+ case HistoryNode:
+ {
+ int aOffset = historyOffset();
+ FeaturePtr aFeature = myDocument->feature(FEATURES_GROUP, theIndex.row() - aOffset);
+ switch (theRole) {
+ case Qt::DisplayRole:
+ if (aFeature)
+ return aFeature->data()->getName().c_str();
+ else
+ return QVariant();
+ case Qt::DecorationRole:
+ {
+ std::string aType = aFeature->getKind();
+ if (aType.compare("Point") == 0)
+ return QIcon(":pictures/point_ico.png");
+ if (aType.compare("Part") == 0)
+ return QIcon(":pictures/part_ico.png");
+ if (aType.compare("Sketch") == 0)
+ return QIcon(":icons/sketch.png");
+ }
+ case Qt::ToolTipRole:
+ return tr("Feature object");
+ default:
+ return QVariant();
+ }
+ }
+ break;
}
QModelIndex aParent = theIndex.parent();
- if (aParent.isValid() && (aParent.internalId() == 0)) {
+ if (aParent.isValid() && (aParent.internalId() == PartsFolder)) {
return myPartModels.at(theIndex.row())->data(QModelIndex(), theRole);
}
return toSourceModelIndex(theIndex).data(theRole);
int XGUI_DocumentDataModel::rowCount(const QModelIndex& theParent) const
{
if (!theParent.isValid()) {
- int aVal = myModel->rowCount(theParent) + myPartModels.size();
- return myModel->rowCount(theParent) + 1;//myPartModels.size();
+ // Size of external models
+ int aVal = historyOffset();
+ // Plus history size
+ aVal += myDocument->size(FEATURES_GROUP);
+ return aVal;
}
- if (theParent.internalId() == 0) {
+ if (theParent.internalId() == PartsFolder) {
return myPartModels.size();
}
+ if (theParent.internalId() == HistoryNode) {
+ return 0;
+ }
QModelIndex aParent = toSourceModelIndex(theParent);
if (!isSubModel(aParent.model()))
return 0;
aIndex = myModel->index(theRow, theColumn, theParent);
aIndex = createIndex(theRow, theColumn, (void*)getModelIndex(aIndex));
} else {
- // Create Parts node
- aIndex = partFolderNode();
+ if (theRow == aOffs) // Create Parts node
+ aIndex = partFolderNode();
+ else // create history node
+ aIndex = createIndex(theRow, theColumn, HistoryNode);
}
} else {
- if (theParent.internalId() == 0) {
+ if (theParent.internalId() == PartsFolder) {
aIndex = myPartModels.at(theRow)->index(0, theColumn, QModelIndex());
} else {
QModelIndex* aParent = (QModelIndex*)theParent.internalPointer();
QModelIndex XGUI_DocumentDataModel::parent(const QModelIndex& theIndex) const
{
- if (theIndex.internalId() == 0)
+ if ((theIndex.internalId() == PartsFolder) || (theIndex.internalId() == HistoryNode))
return QModelIndex();
QModelIndex aIndex = toSourceModelIndex(theIndex);
FeaturePtr XGUI_DocumentDataModel::feature(const QModelIndex& theIndex) const
{
- if (theIndex.internalId() == 0)
+ if (theIndex.internalId() == PartsFolder)
return FeaturePtr();
QModelIndex aIndex = toSourceModelIndex(theIndex);
return aModel->feature(aIndex);
}
-void XGUI_DocumentDataModel::insertRows(const QModelIndex& theParent, int theStart, int theEnd)
+bool XGUI_DocumentDataModel::insertRows(int theRow, int theCount, const QModelIndex& theParent)
{
- beginInsertRows(theParent, theStart, theEnd);
+ beginInsertRows(theParent, theRow, theRow + theCount - 1);
+ //endInsertRows();
+
+ // Update history
+ QModelIndex aRoot;
+ int aRow = rowCount(aRoot);
+ beginInsertRows(aRoot, aRow, aRow);
endInsertRows();
- if (theStart == 0) // Update parent if this is a first child in order to update node decoration
- emit dataChanged(theParent, theParent);
+
+ return true;
}
+bool XGUI_DocumentDataModel::removeRows(int theRow, int theCount, const QModelIndex& theParent)
+{
+ beginRemoveRows(theParent, theRow, theRow + theCount - 1);
+ endRemoveRows();
+ return true;
+}
+
+
void XGUI_DocumentDataModel::removeSubModel(int theModelId)
{
XGUI_PartModel* aModel = myPartModels.at(theModelId);
QModelIndex XGUI_DocumentDataModel::partFolderNode() const
{
int aPos = myModel->rowCount(QModelIndex());
- return createIndex(aPos, columnCount() - 1, 0);
+ return createIndex(aPos, columnCount() - 1, PartsFolder);
}
+
+int XGUI_DocumentDataModel::historyOffset() const
+{
+ // Nb of rows of top model + Parts folder
+ return myModel->rowCount(QModelIndex()) + 1;
+}
\ No newline at end of file
virtual bool hasChildren(const QModelIndex& theParent = QModelIndex()) const;
+ bool insertRows(int theRow, int theCount, const QModelIndex& theParent = QModelIndex());
+
+ bool removeRows(int theRow, int theCount, const QModelIndex& theParent = QModelIndex());
+
//! Returns Feature object by the given Model index.
//! Returns 0 if the given index is not index of a feature
FeaturePtr feature(const QModelIndex& theIndex) const;
private:
+ enum {PartsFolder, HistoryNode};
+
+
//! Converts QModelIndex of this model to QModelIndex of a one of sub-models.
QModelIndex toSourceModelIndex(const QModelIndex& theProxy) const;
//! Deletes all saved pointers on QModelIndex objects.
void clearModelIndexes();
- //! Causes inserting of new nodes for given parent and indexes
- void insertRows(const QModelIndex& theParent, int theStart, int theEnd);
-
//! Removes sub-model on removing a part object. Also it removes QModelIndex-es which refer to this model
void removeSubModel(int theModelId);
//! Returns true if the given model is a one of sub-models of Part type
bool isPartSubModel(const QAbstractItemModel* theModel) const;
+ //! Returns Parts Folder node
QModelIndex partFolderNode() const;
+ int historyOffset() const;
+
//! Document
boost::shared_ptr<ModelAPI_Document> myDocument;
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="fr_FR">
-<context>
- <name>XGUI_DocumentDataModel</name>
- <message>
- <location filename="XGUI_DocumentDataModel.cpp" line="152"/>
- <source>Parts</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_DocumentDataModel.cpp" line="156"/>
- <source>Parts folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>XGUI_ErrorDialog</name>
- <message>
- <location filename="XGUI_ErrorDialog.cpp" line="19"/>
- <source>Application errors</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>XGUI_MainMenu</name>
- <message>
- <location filename="XGUI_MainMenu.cpp" line="16"/>
- <source>General</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>XGUI_MainWindow</name>
- <message>
- <location filename="XGUI_MainWindow.cpp" line="33"/>
- <source>New Geom</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>XGUI_OperationMgr</name>
- <message>
- <location filename="XGUI_OperationMgr.cpp" line="63"/>
- <source>Operation launch</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_OperationMgr.cpp" line="64"/>
- <source>Previous operation is not finished and will be aborted</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>XGUI_PartDataModel</name>
- <message>
- <location filename="XGUI_PartDataModel.cpp" line="191"/>
- <source>Parameters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_PartDataModel.cpp" line="193"/>
- <source>Constructions</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_PartDataModel.cpp" line="195"/>
- <source>Bodies</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>XGUI_PropertyPanel</name>
- <message>
- <location filename="XGUI_PropertyPanel.cpp" line="24"/>
- <source>Property Panel</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>XGUI_TopDataModel</name>
- <message>
- <location filename="XGUI_PartDataModel.cpp" line="29"/>
- <source>Parameters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_PartDataModel.cpp" line="37"/>
- <source>Constructions</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>XGUI_ViewWindow</name>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="213"/>
- <source>Dump view</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="217"/>
- <source>Fit all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="221"/>
- <source>Fit area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="225"/>
- <source>Zoom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="229"/>
- <source>Panning</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="233"/>
- <source>Global panning</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="237"/>
- <source>Rotate</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="241"/>
- <source>Reset</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="245"/>
- <source>Front</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="249"/>
- <source>Back</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="253"/>
- <source>Top</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="257"/>
- <source>Bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="261"/>
- <source>Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="265"/>
- <source>Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="269"/>
- <source>Clone</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_ViewWindow.cpp" line="1030"/>
- <source>Images Files (*.bmp *.png *.jpg *.jpeg *.eps *.ps)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>XGUI_Viewer</name>
- <message>
- <location filename="XGUI_Viewer.cpp" line="70"/>
- <source>Horizontal gradient</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Viewer.cpp" line="70"/>
- <source>Vertical gradient</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Viewer.cpp" line="71"/>
- <source>First diagonal gradient</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Viewer.cpp" line="71"/>
- <source>Second diagonal gradient</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Viewer.cpp" line="72"/>
- <source>First corner gradient</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Viewer.cpp" line="72"/>
- <source>Second corner gradient</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Viewer.cpp" line="73"/>
- <source>Third corner gradient</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Viewer.cpp" line="73"/>
- <source>Fourth corner gradient</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Viewer.cpp" line="80"/>
- <source>Image files (*.bmp *.gif *.pix *.xwd *.rgb *.rs)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>XGUI_Workshop</name>
- <message>
- <location filename="XGUI_Workshop.cpp" line="116"/>
- <location filename="XGUI_Workshop.cpp" line="140"/>
- <source>Undo</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="116"/>
- <location filename="XGUI_Workshop.cpp" line="140"/>
- <source>Undo last command</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="121"/>
- <location filename="XGUI_Workshop.cpp" line="144"/>
- <source>Redo</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="121"/>
- <location filename="XGUI_Workshop.cpp" line="144"/>
- <source>Redo last command</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="135"/>
- <source>Save...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="135"/>
- <source>Save the document</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="148"/>
- <source>Rebuild</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="148"/>
- <source>Rebuild data objects</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="151"/>
- <source>Save as...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="151"/>
- <source>Save the document into a file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="156"/>
- <source>Open...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="156"/>
- <source>Open a new document</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="164"/>
- <source>Exit</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="164"/>
- <source>Exit application</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="356"/>
- <location filename="XGUI_Workshop.cpp" line="396"/>
- <source>Save current file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="357"/>
- <source>The document is modified, save before exit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="397"/>
- <source>The document is modified, save before opening another?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="414"/>
- <location filename="XGUI_Workshop.cpp" line="446"/>
- <source>Warning</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="414"/>
- <source>Unable to open the file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="446"/>
- <source>Unable to save the file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="478"/>
- <source>Information about module "%1" doesn't exist.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="525"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="XGUI_Workshop.cpp" line="584"/>
- <source>Object browser</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
<file>pictures/rebuild.png</file>
<!--For test purposes-->
- <file>pictures/ViewPort.png</file>
-
<file>pictures/occ_view_back.png</file>
<file>pictures/occ_view_bottom.png</file>
<file>pictures/occ_view_camera_dump.png</file>