From 0156fa89144843206478336021339a1383437277 Mon Sep 17 00:00:00 2001 From: nds Date: Thu, 30 Aug 2018 12:22:28 +0300 Subject: [PATCH] 0030095: Inspectors - Standalone build - possibility to switch on/off some of plugins in CMakeLists - flags of the issue - extending number of rows in trees(now, one root item always exists). In new implementation the model root item is not visible in tree view. Children of the root item are shown and the top items of the view. --- .../inspector/images/build_cmake_tools.png | Bin 0 -> 56766 bytes dox/user_guides/inspector/inspector.md | 16 +++++++ tools/CMakeLists.txt | 40 +++++++++++++++--- tools/DFBrowser/DFBrowser_TreeModel.cxx | 8 ++-- tools/ShapeView/ShapeView_TreeModel.cxx | 6 +-- tools/TreeModel/TreeModel_ModelBase.cxx | 8 ---- tools/VInspector/VInspector_ViewModel.cxx | 6 +-- 7 files changed, 59 insertions(+), 25 deletions(-) create mode 100644 dox/user_guides/inspector/images/build_cmake_tools.png diff --git a/dox/user_guides/inspector/images/build_cmake_tools.png b/dox/user_guides/inspector/images/build_cmake_tools.png new file mode 100644 index 0000000000000000000000000000000000000000..871a49ac1951dd4760c9d77aaeada2fcfc026595 GIT binary patch literal 56766 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

a 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 g-T#Y79lfLul-C`C%m1a_5c6? literal 0 HcmV?d00001 diff --git a/dox/user_guides/inspector/inspector.md b/dox/user_guides/inspector/inspector.md index 94430b69ea..e6bd87503b 100644 --- a/dox/user_guides/inspector/inspector.md +++ b/dox/user_guides/inspector/inspector.md @@ -557,6 +557,22 @@ When this option is switched ON, MS Visual Studio project has an additional tree @figure{VStudio_projects.png,"Inspector packages in MS Visual Studio",160} +@subsection occt_inspector_5_1 Building tools with CMake outside of OCCT + +To compile OCCT tools, run CMake and set the source directory into the "tools" folder of OCCT. +@figure{build_cmake_tools.png,"OCCT tools",160} + +"OpenCASCADE_Dir" should be defined and point into cmake directory of installed OCCT. (Please be sure that sources +of OCCT for compiled tools are the same as sources of installed OCCT, otherwise interface might be different and +you have compilation errors) + +After, define 3RDPARTY_QT_DIR + +Checked variables BUILD_PLUGIN_* define which plugins should be compiled. +If only BUILD_PLUGIN_TreeModel is checked, no plugins are compiled, only TreeModel library that might be used as an interface +of communication to Qt tree model by items implementation. + + @section occt_inspector_6 Sources and packaging OCCT sources are extended by the /tools directory. diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index e22c877da1..8cbf3cdf93 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -26,6 +26,23 @@ set (CMAKE_SUPPRESS_REGENERATION TRUE) set (CMAKE_CONFIGURATION_TYPES Release Debug RelWithDebInfo CACHE INTERNAL "" FORCE) +# build variables +macro (BUILD_TOOL_MESSAGE BUILD_TOOL_TARGET_VARIABLE BUILD_TOOL_TARGET_STRING) +set (${BUILD_TOOL_TARGET_VARIABLE}_DESCR +"Indicates whether ${BUILD_TOOL_TARGET_STRING} tool should be built or not. +It should be noted that some toolkits of the module can be built even if this module +is not checked (this happens if some other modules depend on these toolkits)") +set (${BUILD_TOOL_TARGET_VARIABLE} ON CACHE BOOL "${${BUILD_TOOL_TARGET_VARIABLE}_DESCR}") +endmacro() + +BUILD_TOOL_MESSAGE (BUILD_PLUGIN_TKTreeModel "TKTreeModel") +BUILD_TOOL_MESSAGE (BUILD_PLUGIN_TKDFBrowser "TKDFBrowser") +BUILD_TOOL_MESSAGE (BUILD_PLUGIN_TKVInspector "TKVInspector") +BUILD_TOOL_MESSAGE (BUILD_PLUGIN_TKShapeView "TKShapeView") +if (NOT BUILD_PLUGIN_TKDFBrowser AND NOT BUILD_PLUGIN_TKVInspector AND NOT BUILD_PLUGIN_TKShapeView) + set (BUILD_TREE_MODEL_ONLY ON) +endif() + # macro: include patched file if it exists macro (OCCT_INCLUDE_CMAKE_FILE BEING_INCLUDED_FILE) if (BUILD_PATCH AND EXISTS "${BUILD_PATCH}/${BEING_INCLUDED_FILE}.cmake") @@ -333,9 +350,16 @@ endif() # list will contain all tools #if (BUILD_Inspector) OCCT_MODULES_AND_TOOLKITS (TOOLS "TOOL_TOOLKITS" OCCT_TOOLS) - foreach (OCCT_TOOL ${OCCT_TOOLS}) - list (APPEND BUILD_TOOL_TOOLKITS ${${OCCT_TOOL}_TOOL_TOOLKITS}) - endforeach() + + if (DEFINED BUILD_TREE_MODEL_ONLY AND BUILD_TREE_MODEL_ONLY) + list (APPEND BUILD_TOOL_TOOLKITS "TKTreeModel") + else() + foreach (OCCT_TOOL ${OCCT_TOOLS}) + list (APPEND BUILD_TOOL_TOOLKITS ${${OCCT_TOOL}_TOOL_TOOLKITS}) + endforeach() + endif() + + message("Build: ${BUILD_TOOL_TOOLKITS}") # collect all the headers to /inc/inspector folder string(TIMESTAMP CURRENT_TIME "%H:%M:%S") @@ -363,9 +387,15 @@ if (3RDPARTY_LIBRARY_DIRS) endif() # include patched toolkit projects or original ones -if (BUILD_TOOL_TOOLKITS) +if (BUILD_TREE_MODEL_ONLY) + OCCT_ADD_SUBDIRECTORY ("tools/TKTreeModel") + message (STATUS "Info: TKTreeModel OCCT toolkits processed") +else() foreach (BUILD_TOOL_TOOLKIT ${BUILD_TOOL_TOOLKITS}) - OCCT_ADD_SUBDIRECTORY ("tools/${BUILD_TOOL_TOOLKIT}") + if (NOT DEFINED BUILD_PLUGIN_${BUILD_TOOL_TOOLKIT} OR BUILD_PLUGIN_${BUILD_TOOL_TOOLKIT}) + OCCT_ADD_SUBDIRECTORY ("tools/${BUILD_TOOL_TOOLKIT}") + message (STATUS "Info: ${BUILD_TOOL_TOOLKIT} toolkits processed") + endif() endforeach() endif() diff --git a/tools/DFBrowser/DFBrowser_TreeModel.cxx b/tools/DFBrowser/DFBrowser_TreeModel.cxx index 16fe10485e..c5d25f1e5d 100644 --- a/tools/DFBrowser/DFBrowser_TreeModel.cxx +++ b/tools/DFBrowser/DFBrowser_TreeModel.cxx @@ -98,12 +98,12 @@ QModelIndex DFBrowser_TreeModel::FindIndex (const TDF_Label& theLabel) const } } bool aDocumentItemFound = false; - QModelIndex aParentIndex = index (0, 0); - TreeModel_ItemBasePtr aParentItem = TreeModel_ModelBase::GetItemByIndex (aParentIndex); // application item + QModelIndex aParentIndex; + TreeModel_ItemBasePtr aParentItem; // find document, where label of document item is equal to Root label - for (int aChildId = 0, aCount = aParentItem->rowCount(); aChildId < aCount; aChildId++) + for (int aChildId = 0, aCount = rowCount(); aChildId < aCount; aChildId++) { - QModelIndex anIndex = index (aChildId, 0, aParentIndex); + QModelIndex anIndex = index (aChildId, 0); TreeModel_ItemBasePtr anItemBase = TreeModel_ModelBase::GetItemByIndex (anIndex); DFBrowser_ItemDocumentPtr anItem = itemDynamicCast (anItemBase); if (anItem->GetLabel() == aRoot) diff --git a/tools/ShapeView/ShapeView_TreeModel.cxx b/tools/ShapeView/ShapeView_TreeModel.cxx index bc29c119ae..48438dce35 100644 --- a/tools/ShapeView/ShapeView_TreeModel.cxx +++ b/tools/ShapeView/ShapeView_TreeModel.cxx @@ -107,11 +107,9 @@ void ShapeView_TreeModel::RemoveAllShapes() // ======================================================================= QModelIndex ShapeView_TreeModel::FindIndex (const TopoDS_Shape& theShape) const { - QModelIndex aParentIndex = index (0, 0); - TreeModel_ItemBasePtr aParentItem = TreeModel_ModelBase::GetItemByIndex (aParentIndex); // application item - for (int aChildId = 0, aCount = aParentItem->rowCount(); aChildId < aCount; aChildId++) + for (int aChildId = 0, aCount = rowCount(); aChildId < aCount; aChildId++) { - QModelIndex anIndex = index (aChildId, 0, aParentIndex); + QModelIndex anIndex = index (aChildId, 0); ShapeView_ItemShapePtr anItem = itemDynamicCast (TreeModel_ModelBase::GetItemByIndex (anIndex)); if (anItem && anItem->GetItemShape() == theShape) return anIndex; diff --git a/tools/TreeModel/TreeModel_ModelBase.cxx b/tools/TreeModel/TreeModel_ModelBase.cxx index 72acad8d01..dae10aded3 100644 --- a/tools/TreeModel/TreeModel_ModelBase.cxx +++ b/tools/TreeModel/TreeModel_ModelBase.cxx @@ -66,10 +66,6 @@ QModelIndex TreeModel_ModelBase::index (int theRow, int theColumn, const QModelI if (!hasIndex (theRow, theColumn, theParent)) return QModelIndex(); - // to create index on the root item - if (!theParent.isValid()) - return createIndex (theRow, theColumn, getIndexValue (RootItem (theColumn))); - TreeModel_ItemBasePtr aParentItem; if (!theParent.isValid()) aParentItem = RootItem (theColumn); @@ -164,10 +160,6 @@ QVariant TreeModel_ModelBase::headerData (int theSection, Qt::Orientation theOri // ======================================================================= int TreeModel_ModelBase::rowCount (const QModelIndex& theParent) const { - // to create index on the root item - if (!theParent.isValid()) - return 1; - TreeModel_ItemBasePtr aParentItem; if (!theParent.isValid()) aParentItem = RootItem (0); diff --git a/tools/VInspector/VInspector_ViewModel.cxx b/tools/VInspector/VInspector_ViewModel.cxx index d8f6c026a5..efa56f2675 100644 --- a/tools/VInspector/VInspector_ViewModel.cxx +++ b/tools/VInspector/VInspector_ViewModel.cxx @@ -105,11 +105,9 @@ void VInspector_ViewModel::SetContext (const Handle(AIS_InteractiveContext)& the QModelIndexList VInspector_ViewModel::FindPointers (const QStringList& thePointers) { QModelIndexList anIndices; - QModelIndex aParentIndex = index (0, 0); - TreeModel_ItemBasePtr aParentItem = TreeModel_ModelBase::GetItemByIndex (aParentIndex); // context item - for (int aRowId = 0, aCount = aParentItem->rowCount(); aRowId < aCount; aRowId++) + for (int aRowId = 0, aCount = rowCount(); aRowId < aCount; aRowId++) { - QModelIndex anIndex = index (aRowId, 0, aParentIndex); + QModelIndex anIndex = index (aRowId, 0); TreeModel_ItemBasePtr anItemBase = TreeModel_ModelBase::GetItemByIndex (anIndex); VInspector_ItemPresentableObjectPtr anItemPrs = itemDynamicCast(anItemBase); if (!anItemPrs) -- 2.39.5