From a6334a4bfdf6278f744794f218f0aceb2b6b8a88 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Mon, 15 Jul 2019 23:20:52 -0300 Subject: [PATCH] Cleanup in doxygen stuff --- src/3rdParty/salomesmesh/salomesmesh.dox | 6 ++ src/App/core-app.dox | 2 +- src/Base/core-base.dox | 2 +- src/CXX/pycxx.dox | 30 ++++++++++ src/Doc/BuildWebDoc.cfg.in | 2 +- src/Doc/CMakeLists.txt | 4 +- src/Doc/mainpage.dox.in | 4 +- src/Doc/primary-groups.dox | 5 +- src/Doc/templates/footer.html | 38 ------------ src/Doc/templates/header.html | 59 +++---------------- src/Gui/core-gui.dox | 2 +- src/Mod/AddonManager/AddonManager.py | 57 ++++++++++-------- src/Mod/AddonManager/addonmanager.dox | 4 ++ src/Mod/AddonManager/addonmanager_macro.py | 6 ++ .../AddonManager/addonmanager_utilities.py | 4 ++ src/Mod/AddonManager/addonmanager_workers.py | 21 ++++--- src/Mod/Arch/Dice3DS/dice3ds.dox | 5 ++ src/Mod/Arch/OfflineRenderingUtils.py | 13 +++- src/Mod/Draft/DraftGeomUtils.py | 2 +- src/Mod/Draft/DraftVecUtils.py | 2 +- src/Mod/Fem/fem.dox | 2 +- src/Mod/Mesh/App/WildMagic4/wildmagic4.dox | 2 +- src/Mod/Path/App/ParamsHelper.h | 2 + src/Mod/Path/path.dox | 2 +- src/Mod/mod.dox | 16 +++-- src/zipios++/zipios.dox | 1 + 26 files changed, 141 insertions(+), 152 deletions(-) create mode 100644 src/3rdParty/salomesmesh/salomesmesh.dox create mode 100644 src/Mod/AddonManager/addonmanager.dox create mode 100644 src/Mod/Arch/Dice3DS/dice3ds.dox diff --git a/src/3rdParty/salomesmesh/salomesmesh.dox b/src/3rdParty/salomesmesh/salomesmesh.dox new file mode 100644 index 0000000000..15fe0a9566 --- /dev/null +++ b/src/3rdParty/salomesmesh/salomesmesh.dox @@ -0,0 +1,6 @@ +/** + \defgroup SMESH Salome SMESH + \ingroup EMBEDDED + \brief The Salome SMESH module is used in Fem and Mesh workbenches + + */ diff --git a/src/App/core-app.dox b/src/App/core-app.dox index 593994ef0e..f6094b1e38 100644 --- a/src/App/core-app.dox +++ b/src/App/core-app.dox @@ -1,4 +1,4 @@ -/** \defgroup APP App side +/** \defgroup APP App * \ingroup CORE * \brief The part of FreeCAD that works without GUI (console or server mode) */ diff --git a/src/Base/core-base.dox b/src/Base/core-base.dox index a96de3e39f..27b7b73ff3 100644 --- a/src/Base/core-base.dox +++ b/src/Base/core-base.dox @@ -12,7 +12,7 @@ /*! \namespace Base \ingroup BASE - \brief Basic structures used by other FreeCAD components + \brief Basic structures used by other FreeCAD components (C++ API) The Base module includes most of the basic functions of FreeCAD, such as: - Console services: printing different kinds of messages to the FreeCAD report view or the terminal diff --git a/src/CXX/pycxx.dox b/src/CXX/pycxx.dox index 983d3f1c4c..018da0c5d6 100644 --- a/src/CXX/pycxx.dox +++ b/src/CXX/pycxx.dox @@ -1,5 +1,35 @@ /** \defgroup PYCXX PyCXX \ingroup EMBEDDED + \brief C++ facilities to make it easier to write Python extensions + + CXX/Objects is a set of C++ facilities to make it easier to write + Python extensions. The chief way in which PyCXX makes it easier to + write Python extensions is that it greatly increases the probability + that your program will not make a reference-counting error and will + not have to continually check error returns from the Python C API. + CXX/Objects integrates Python with C++ in these ways: + + C++ exception handling is relied on to detect errors and clean up. + In a complicated function this is often a tremendous problem when + writing in C. With PyCXX, we let the compiler keep track of what + objects need to be dereferenced when an error occurs. + The Standard Template Library (STL) and its many algorithms plug and + play with Python containers such as lists and tuples. + The optional CXX/Extensions facility allows you to replace the + clumsy C tables with objects and method calls that define your + modules and extension objects. + + PyCXX documentation is split into Python 3 and + Python 2 + versions. The Python 3 documentation is the most accurate. + + Latest PyCXX + README file + + The source code is released under the BSD + License. */ diff --git a/src/Doc/BuildWebDoc.cfg.in b/src/Doc/BuildWebDoc.cfg.in index 2c43dc34a8..7d9d9324e9 100644 --- a/src/Doc/BuildWebDoc.cfg.in +++ b/src/Doc/BuildWebDoc.cfg.in @@ -193,7 +193,7 @@ OPTIMIZE_OUTPUT_FOR_C = NO # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. -OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_OUTPUT_JAVA = YES # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for diff --git a/src/Doc/CMakeLists.txt b/src/Doc/CMakeLists.txt index 5b15d12847..547dff4825 100644 --- a/src/Doc/CMakeLists.txt +++ b/src/Doc/CMakeLists.txt @@ -65,7 +65,7 @@ if(DOXYGEN_FOUND) ${CMAKE_BINARY_DIR}/src/Gui ${CMAKE_SOURCE_DIR}/src/Mod ${CMAKE_BINARY_DIR}/src/Mod - ${CMAKE_SOURCE_DIR}/src/Main + #${CMAKE_SOURCE_DIR}/src/Main #nothing to document there ATM... ${CMAKE_SOURCE_DIR}/src/Doc ) STRING(REGEX REPLACE ";" " " DOXYGEN_INPUT_LIST "${DOXYGEN_SOURCE_DIR}") @@ -75,8 +75,6 @@ if(DOXYGEN_FOUND) # src/3rdParty/CxImage : Windows thumbnailer set( DOXYGEN_EXCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/Tools) list(APPEND DOXYGEN_EXCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdParty/CxImage) - list(APPEND DOXYGEN_EXCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh) - list(APPEND DOXYGEN_EXCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/Mod/Arch/Dice3DS) list(APPEND DOXYGEN_EXCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/Doc/sphinx) # deprecated modules list(APPEND DOXYGEN_EXCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/Mod/Assembly) diff --git a/src/Doc/mainpage.dox.in b/src/Doc/mainpage.dox.in index 12842183ac..6d6986eed2 100644 --- a/src/Doc/mainpage.dox.in +++ b/src/Doc/mainpage.dox.in @@ -22,7 +22,7 @@ /** - \if WEB_DOCUMENTATION + \mainpage FreeCAD source documentation @@ -50,7 +50,7 @@ the source code documentation. You can also browse through the source code on github. - \endif + \if DEV_DOCUMENTATION diff --git a/src/Doc/primary-groups.dox b/src/Doc/primary-groups.dox index 6184158c82..7ec6329e65 100644 --- a/src/Doc/primary-groups.dox +++ b/src/Doc/primary-groups.dox @@ -1,9 +1,10 @@ /** \defgroup CORE Core - This is the core functionality of FreeCAD. + These are the core components of FreeCAD. It groups the Base classes, and the main components of FreeCAD core, spread over their App and Gui sides. Core components are programmed in - C++ but provide a broad Python API. + C++ but provide a broad Python API too. Most of FreeCAD functionality, + however, is defined in Workbenches. */ /** \defgroup WORKBENCHES Workbenches diff --git a/src/Doc/templates/footer.html b/src/Doc/templates/footer.html index dce3057125..f2fa20497a 100644 --- a/src/Doc/templates/footer.html +++ b/src/Doc/templates/footer.html @@ -22,43 +22,5 @@ $generatedby   $doxygenversion - diff --git a/src/Doc/templates/header.html b/src/Doc/templates/header.html index 0614c935f6..ef7851ab44 100644 --- a/src/Doc/templates/header.html +++ b/src/Doc/templates/header.html @@ -9,7 +9,7 @@ - + $projectname: $title $title @@ -21,59 +21,16 @@ $extrastylesheet - - - - + - + - +
diff --git a/src/Gui/core-gui.dox b/src/Gui/core-gui.dox index 094f5ac184..602dacd556 100644 --- a/src/Gui/core-gui.dox +++ b/src/Gui/core-gui.dox @@ -1,4 +1,4 @@ -/** \defgroup GUI Gui side +/** \defgroup GUI Gui * \ingroup CORE * \brief The Graphical User Interface of FreeCAD and the 3D View */ diff --git a/src/Mod/AddonManager/AddonManager.py b/src/Mod/AddonManager/AddonManager.py index 3868fa89bf..872b27bcac 100644 --- a/src/Mod/AddonManager/AddonManager.py +++ b/src/Mod/AddonManager/AddonManager.py @@ -29,13 +29,13 @@ __title__="FreeCAD Addon Manager Module" __author__ = "Yorik van Havre","Jonathan Wiedemann","Kurt Kremitzki" __url__ = "http://www.freecadweb.org" -''' +""" FreeCAD Addon Manager Module It will fetch its contents from https://github.com/FreeCAD/FreeCAD-addons You need a working internet connection, and optionally the GitPython package installed. -''' +""" import os import re @@ -51,10 +51,13 @@ from addonmanager_workers import * def QT_TRANSLATE_NOOP(ctx,txt): return txt +## \defgroup ADDONMANAGER AddonManager +# \ingroup ADDONMANAGER +# \brief The Addon Manager allows to install workbenches and macros made by users +# @{ class CommandAddonManager: - - "The Addon Manager command" + """The main Addon Manager class and FreeCAD command""" def GetResources(self): @@ -79,6 +82,8 @@ class CommandAddonManager: def launch(self): + """Shows the Addon Manager UI""" + import FreeCADGui from PySide import QtGui @@ -155,7 +160,7 @@ class CommandAddonManager: def reject(self): - "called when the window has been closed" + """called when the window has been closed""" # save window geometry and splitter state for next use pref = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Addons") @@ -200,7 +205,7 @@ class CommandAddonManager: def update(self): - "updates the list of workbenches" + """updates the list of workbenches""" self.dialog.listWorkbenches.clear() self.dialog.buttonExecute.setEnabled(False) @@ -231,7 +236,7 @@ class CommandAddonManager: def apply_updates(self): - "apply all available updates" + """apply all available updates""" if self.doUpdate: self.install(self.doUpdate) @@ -239,7 +244,7 @@ class CommandAddonManager: def enable_updates(self,num): - "enables the update button" + """enables the update button""" if num: self.dialog.buttonUpdateAll.setText(translate("AddonsInstaller","Apply")+" "+str(num)+" "+translate("AddonsInstaller","update(s)")) @@ -250,7 +255,7 @@ class CommandAddonManager: def add_addon_repo(self, addon_repo): - "adds a workbench to the list" + """adds a workbench to the list""" from PySide import QtGui self.repos.append(addon_repo) @@ -267,7 +272,7 @@ class CommandAddonManager: def show_information(self, label): - "shows text in the information pane" + """shows text in the information pane""" self.dialog.description.setText(label) if self.dialog.listWorkbenches.isVisible(): @@ -277,7 +282,7 @@ class CommandAddonManager: def show(self,idx): - "loads information of a given workbench" + """loads information of a given workbench""" # this function is triggered also when the list is populated, prevent that here if idx == 0 and self.firsttime: @@ -300,7 +305,7 @@ class CommandAddonManager: def show_macro(self,idx): - "loads information of a given macro" + """loads information of a given macro""" # this function is triggered when the list is populated, prevent that here if idx == 0 and self.firstmacro: @@ -328,7 +333,7 @@ class CommandAddonManager: def switchtab(self,idx): - "does what needs to be done when switching tabs" + """does what needs to be done when switching tabs""" if idx == 1: if not self.macros: @@ -343,13 +348,13 @@ class CommandAddonManager: def update_repos(self, repos): - "convenience function to update the internal list of workbenches" + """convenience function to update the internal list of workbenches""" self.repos = repos def add_macro(self, macro): - "adds a macro to the list" + """adds a macro to the list""" if macro.name: if macro in self.macros: @@ -372,7 +377,7 @@ class CommandAddonManager: def install(self,repos=None): - "installs a workbench or macro" + """installs a workbench or macro""" if self.dialog.tabWidget.currentIndex() == 0: # Tab "Workbenches". @@ -405,7 +410,7 @@ class CommandAddonManager: def show_progress_bar(self, state): - "shows or hides the progress bar" + """shows or hides the progress bar""" if state == True: self.dialog.tabWidget.setEnabled(False) @@ -425,7 +430,7 @@ class CommandAddonManager: def executemacro(self): - "executes a selected macro" + """executes a selected macro""" import FreeCADGui if self.dialog.tabWidget.currentIndex() == 1: @@ -446,14 +451,14 @@ class CommandAddonManager: def remove_readonly(self, func, path, _): - "Remove a read-only file." + """Remove a read-only file.""" os.chmod(path, stat.S_IWRITE) func(path) def remove(self): - "uninstalls a macro or workbench" + """uninstalls a macro or workbench""" if self.dialog.tabWidget.currentIndex() == 0: # Tab "Workbenches". @@ -479,7 +484,7 @@ class CommandAddonManager: def mark_recompute(self,addon): - "marks an addon in the list as installed but needs recompute" + """marks an addon in the list as installed but needs recompute""" for i in range(self.dialog.listWorkbenches.count()): txt = self.dialog.listWorkbenches.item(i).text().strip() @@ -494,8 +499,8 @@ class CommandAddonManager: def update_status(self,soft=False): - """Updates the list of workbenches/macros. - If soft is true, items are not recreated (and therefore display text isn't triggered)" + """Updates the list of workbenches/macros. If soft is true, items + are not recreated (and therefore display text isn't triggered)" """ moddir = FreeCAD.getUserAppDataDir() + os.sep + "Mod" @@ -547,7 +552,7 @@ class CommandAddonManager: def mark(self,repo): - "mark a workbench as updatable" + """mark a workbench as updatable""" from PySide import QtGui for i in range(self.dialog.listWorkbenches.count()): @@ -560,7 +565,7 @@ class CommandAddonManager: def show_config(self): - "shows the configuration dialog" + """shows the configuration dialog""" import FreeCADGui from PySide import QtGui @@ -580,3 +585,5 @@ class CommandAddonManager: # OK button has been pressed pref.SetBool("AutoCheck",self.config.checkUpdates.isChecked()) pref.SetString("CustomRepositories",self.config.customRepositories.toPlainText()) + +## @} diff --git a/src/Mod/AddonManager/addonmanager.dox b/src/Mod/AddonManager/addonmanager.dox new file mode 100644 index 0000000000..42dd6adb98 --- /dev/null +++ b/src/Mod/AddonManager/addonmanager.dox @@ -0,0 +1,4 @@ +/** \defgroup ADDONMANAGER Addon Manager + * \ingroup PYTHONWORKBENCHES + * \brief Application that handles the installation of user-made workbenches and macros + */ diff --git a/src/Mod/AddonManager/addonmanager_macro.py b/src/Mod/AddonManager/addonmanager_macro.py index 732cdd7300..c23e5e5319 100644 --- a/src/Mod/AddonManager/addonmanager_macro.py +++ b/src/Mod/AddonManager/addonmanager_macro.py @@ -21,6 +21,10 @@ #* * #*************************************************************************** +## @package AddonManager_macro +# \ingroup ADDONMANAGER +# \brief Unified handler for FreeCAD macros that can be obtained from different sources + import os import re import sys @@ -31,6 +35,8 @@ from addonmanager_utilities import urlopen class Macro(object): + """This class provides a unified way to handle macros coming from different sources""" + def __init__(self, name): self.name = name self.on_wiki = False diff --git a/src/Mod/AddonManager/addonmanager_utilities.py b/src/Mod/AddonManager/addonmanager_utilities.py index 3224e0941b..037e22124b 100644 --- a/src/Mod/AddonManager/addonmanager_utilities.py +++ b/src/Mod/AddonManager/addonmanager_utilities.py @@ -27,6 +27,10 @@ import FreeCAD import shutil import re +## @package AddonManager_utilities +# \ingroup ADDONMANAGER +# \brief Utilities to work across different platforms, providers and python versions + # check for SSL support ssl_ctx = None diff --git a/src/Mod/AddonManager/addonmanager_workers.py b/src/Mod/AddonManager/addonmanager_workers.py index 6ff15eb0dc..86d44a1cec 100644 --- a/src/Mod/AddonManager/addonmanager_workers.py +++ b/src/Mod/AddonManager/addonmanager_workers.py @@ -35,19 +35,22 @@ import addonmanager_utilities as utils from addonmanager_utilities import translate # this needs to be as is for pylupdate from addonmanager_macro import Macro +## @package AddonManager_workers +# \ingroup ADDONMANAGER +# \brief Multithread workers for the addon manager + MACROS_BLACKLIST = ["BOLTS","WorkFeatures","how to install","PartsLibrary","FCGear"] OBSOLETE = ["assembly2","drawing_dimensioning","cura_engine"] # These addons will print an additional message informing the user NOGIT = False # for debugging purposes, set this to True to always use http downloads -"Multithread workers for the Addon Manager" +"""Multithread workers for the Addon Manager""" class UpdateWorker(QtCore.QThread): - - "This worker updates the list of available workbenches" + """This worker updates the list of available workbenches""" info_label = QtCore.Signal(str) addon_repo = QtCore.Signal(object) @@ -119,8 +122,7 @@ class UpdateWorker(QtCore.QThread): class InfoWorker(QtCore.QThread): - - "This worker retrieves the description text of a workbench" + """This worker retrieves the description text of a workbench""" addon_repos = QtCore.Signal(object) @@ -153,8 +155,7 @@ class InfoWorker(QtCore.QThread): class CheckWBWorker(QtCore.QThread): - - "This worker checks for available updates for all workbenches" + """This worker checks for available updates for all workbenches""" enable = QtCore.Signal(int) mark = QtCore.Signal(str) @@ -212,8 +213,7 @@ class CheckWBWorker(QtCore.QThread): class FillMacroListWorker(QtCore.QThread): - - "This worker opulates the list of macros" + """This worker opulates the list of macros""" add_macro_signal = QtCore.Signal(Macro) info_label_signal = QtCore.Signal(str) @@ -293,8 +293,7 @@ class FillMacroListWorker(QtCore.QThread): class ShowWorker(QtCore.QThread): - - "This worker retrieves info of a given workbench" + """This worker retrieves info of a given workbench""" info_label = QtCore.Signal(str) addon_repos = QtCore.Signal(object) diff --git a/src/Mod/Arch/Dice3DS/dice3ds.dox b/src/Mod/Arch/Dice3DS/dice3ds.dox new file mode 100644 index 0000000000..df8cc4ff3c --- /dev/null +++ b/src/Mod/Arch/Dice3DS/dice3ds.dox @@ -0,0 +1,5 @@ +/** + \defgroup DICE3DS Dice 3DS + \ingroup EMBEDDED + \brief The Dice 3DS library provides 3DStudio files import to the Arch module + */ diff --git a/src/Mod/Arch/OfflineRenderingUtils.py b/src/Mod/Arch/OfflineRenderingUtils.py index d283eca8f1..b39094fed9 100755 --- a/src/Mod/Arch/OfflineRenderingUtils.py +++ b/src/Mod/Arch/OfflineRenderingUtils.py @@ -22,8 +22,16 @@ #* * #*************************************************************************** +## \defgroup OFFLINERENDERINGUTILS OfflineRenderingUtils +# \ingroup UTILITIES +# \brief Utility functions to work with FreeCAD files in console mode +# +# Offline rendering utilities -""" +## \addtogroup OFFLINERENDERINGUTILS +# @{ + +"""@package docstring OfflineRenderingUtils - Utilities to help producing files with colors from FreeCAD in non-GUI mode @@ -96,7 +104,6 @@ OfflineRenderingUtils.viewer(scene) OfflineRenderingUtils.save(doc,filename=baseFileName+"_exported.FCStd",colors=colors,camera=camera) """ - import sys import os import xml.sax @@ -749,3 +756,5 @@ def extract(filename,inputpath,outputpath=None): of.close() else: return data + +## @} diff --git a/src/Mod/Draft/DraftGeomUtils.py b/src/Mod/Draft/DraftGeomUtils.py index 4f4638deb5..95d36e6d5d 100644 --- a/src/Mod/Draft/DraftGeomUtils.py +++ b/src/Mod/Draft/DraftGeomUtils.py @@ -26,7 +26,7 @@ __author__ = "Yorik van Havre, Jacques-Antoine Gaudin, Ken Cline" __url__ = ["http://www.freecadweb.org"] ## \defgroup DRAFTGEOMUTILS DraftGeomUtils -# \ingroup DRAFT +# \ingroup UTILITIES # \brief Shape manipulation utilities for the Draft workbench # # Shapes manipulation utilities diff --git a/src/Mod/Draft/DraftVecUtils.py b/src/Mod/Draft/DraftVecUtils.py index c1175e8704..68e38856e5 100644 --- a/src/Mod/Draft/DraftVecUtils.py +++ b/src/Mod/Draft/DraftVecUtils.py @@ -28,7 +28,7 @@ __url__ = ["http://www.freecadweb.org"] "a vector math library for FreeCAD" ## \defgroup DRAFTVECUTILS DraftVecUtils -# \ingroup DRAFT +# \ingroup UTILITIES # \brief Vector math utilities used in Draft workbench # # Vector math utilities diff --git a/src/Mod/Fem/fem.dox b/src/Mod/Fem/fem.dox index 8cfa8c96b8..de12522a69 100755 --- a/src/Mod/Fem/fem.dox +++ b/src/Mod/Fem/fem.dox @@ -1,5 +1,5 @@ /** \defgroup FEM Fem - * \ingroup CWORKBENCHES + * \ingroup PYTHONWORKBENCHES * \brief Finite Elements Analysis workbench */ diff --git a/src/Mod/Mesh/App/WildMagic4/wildmagic4.dox b/src/Mod/Mesh/App/WildMagic4/wildmagic4.dox index 1d4c61c353..75ab345195 100644 --- a/src/Mod/Mesh/App/WildMagic4/wildmagic4.dox +++ b/src/Mod/Mesh/App/WildMagic4/wildmagic4.dox @@ -1,6 +1,6 @@ /** \defgroup WM4 WildMagic4 - * \ingroup MESH + * \ingroup EMBEDDED * Excerpts from version 4.0.0 of Wild Magic Library which were integrated * to FreeCAD's Mesh module. * diff --git a/src/Mod/Path/App/ParamsHelper.h b/src/Mod/Path/App/ParamsHelper.h index b6cbb524f7..816fcc8f6c 100644 --- a/src/Mod/Path/App/ParamsHelper.h +++ b/src/Mod/Path/App/ParamsHelper.h @@ -24,6 +24,7 @@ #define PARAMS_HELPER_H /** \page ParamPage Parameter helper macros + * \ingroup PATH * Collections of macros for managing groups of parameters. * * \section Motivation @@ -178,6 +179,7 @@ #include /** \defgroup ParamHelper Parameters helper macros + * \ingroup PATH * Collections of macros for managing groups of parameters */ /** diff --git a/src/Mod/Path/path.dox b/src/Mod/Path/path.dox index ca5d254dbc..618fb81050 100644 --- a/src/Mod/Path/path.dox +++ b/src/Mod/Path/path.dox @@ -1,4 +1,4 @@ /** \defgroup PATH Path - * \ingroup CWORKBENCHES + * \ingroup PYTHONWORKBENCHES * \brief Tools to generate CNC toolpaths and G-Code */ diff --git a/src/Mod/mod.dox b/src/Mod/mod.dox index b108421d77..71903b0ea3 100644 --- a/src/Mod/mod.dox +++ b/src/Mod/mod.dox @@ -1,5 +1,5 @@ /** \addtogroup WORKBENCHES - Additional functionality and GUI tools + Most of FreeCAD's functionality is defined in dedicated Workbenches Those plugins, also called \b modules or \b worbenches, provide functionality for specialized facets of FreeCAD. The word \b module @@ -12,18 +12,16 @@ Some of these modules are programmed in C++, others in Python, and some in a mix of C++ and Python. - \b Warning: Some are really work-in-progress and are not yet included in - the official builds */ - /** \defgroup PYTHONWORKBENCHES Python workbenches - * \ingroup WORKBENCHES - * \brief Those are workbenches programmed fully in Python -*/ - /** \defgroup CWORKBENCHES C++ workbenches * \ingroup WORKBENCHES - * \brief Those are workbenches programmed primarily in C++. They usually provide a Python API as well. + * \brief These workbenches are programmed primarily in C++, but most provide a Python API as well. +*/ + + /** \defgroup PYTHONWORKBENCHES Python workbenches + * \ingroup WORKBENCHES + * \brief Those are workbenches programmed primarily in Python */ /** \defgroup UTILITIES Utility modules diff --git a/src/zipios++/zipios.dox b/src/zipios++/zipios.dox index 1a66eef216..af072fcf1d 100644 --- a/src/zipios++/zipios.dox +++ b/src/zipios++/zipios.dox @@ -1,6 +1,7 @@ /** \defgroup ZIPIOS Zipios++ \ingroup EMBEDDED + \brief C++ library for reading and writing Zip file \section intro Introduction