X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Tools.h;h=ce37738d87869215ff648a7dc9ca618f4c15b16b;hb=fc72d43b677baa05ae7fd317346fd8b723b799ed;hp=0fe6b2f5ae080056ee526b8089bd66e3fd7d03a1;hpb=f09c9895be486d30c9aa48da040c3aeb3ccbaa74;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Tools.h b/src/XGUI/XGUI_Tools.h index 0fe6b2f5a..ce37738d8 100644 --- a/src/XGUI/XGUI_Tools.h +++ b/src/XGUI/XGUI_Tools.h @@ -1,63 +1,140 @@ +// Copyright (C) 2014-2023 CEA/DEN, EDF R&D +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef XGUI_Tools_H #define XGUI_Tools_H +#include "XGUI.h" #include +#include -/*! - \brief Convert the given parameter to the platform-specific library name. +#include +#include - The function appends platform-specific prefix (lib) and suffix (.dll/.so) - to the library file name. - For example, if \a str = "mylib", "libmylib.so" is returned for Linux and - mylib.dll for Windows. +#include - \param str short library name - \return full library name -*/ -QString library( const QString& str ); +#include + +class QWidget; +class XGUI_Workshop; +class ModuleBase_IWorkshop; /*! - \brief Return directory part of the file path. + \ingroup GUI + \brief Commonly used methods in XGUI package and higher. + */ +namespace XGUI_Tools { - If the file path does not include directory part (the file is in the - current directory), null string is returned. +/** + \brief Return directory part of the file path. - \param path file path - \param abs if true (default) \a path parameter is treated as absolute file path - \return directory part of the file path + If the file path does not include directory part (the file is in the + current directory), null string is returned. + + \param path file path + \param isAbs if true (default) \a path parameter is treated as absolute file path + \return directory part of the file path */ -QString dir( const QString& path, bool isAbs = true); +QString XGUI_EXPORT dir(const QString& path, bool isAbs = true); +/*! + \brief Return file name part of the file path. + + \param path file path + \param withExt if true (default) complete file name (with all + extension except the last) is returned, otherwise only base name + is returned + \return file name part of the file path + */ +QString XGUI_EXPORT file(const QString& path, bool withExt = true); /*! - \brief Return file name part of the file path. + \brief Add a slash (platform-specific) to the end of \a path + if it is not already there. + \param path directory path + \return modified path (with slash added to the end) + */ +QString XGUI_EXPORT addSlash(const QString& path); - \param path file path - \param withExt if true (default) complete file name (with all - extension except the last) is returned, otherwise only base name - is returned - \return file name part of the file path -*/ -QString file( const QString& path, bool withExt = true ); +// The model concerning tools + +/*! Unite object names in one string using the separator between values + \param theObjects a list of objects + \param theSeparator a separator + */ +QString unionOfObjectNames(const QObjectPtrList& theObjects, const QString& theSeparator); /*! - \brief Return extension part of the file path. + Returns true if the feature is a model object + \param theFeature a feature + */ +bool XGUI_EXPORT isModelObject(FeaturePtr theFeature); - \param path file path - \param full if true complete extension (all extensions, dot separated) - is returned, otherwise (default) only last extension is returned - \return extension part of the file path -*/ -QString extension( const QString& path, bool full = false ); +/*! + Returns the string presentation of the given feature + \param theFeature a feature + */ +std::string XGUI_EXPORT featureInfo(FeaturePtr theFeature); + +/*! + Returns true if there are no parts in the document, which are not activated or + all objects in the list are not PartSet document. + It shows the warning control if the result is false. + \param theParent a parent for the warning control + \param theFeatures a list of checked features + \return a boolean value + */ +bool XGUI_EXPORT canRemoveOrRename(QWidget* theParent, const std::set& theFeatures); + +/*! + Check possibility to rename object + \param theObject an object to rename + \param theName a name + */ +bool canRename(const ObjectPtr& theObject, const QString& theName); +/*! + Checks that the given string contains only ASCII symbols + \param theStr a string to check + */ +bool isAscii(const QString& theStr); /*! - \brief Add a slash (platform-specific) to the end of \a path - if it is not already there. - \param path directory path - \return modified path (with slash added to the end) + Returns converted workshop + \param theWorkshop an interface workshop + \return XGUI workshop instance */ -QString addSlash( const QString& path ); +XGUI_EXPORT XGUI_Workshop* workshop(ModuleBase_IWorkshop* theWorkshop); + + +/// Generates a presentation name in form: /_ +/// \param thePrs a presentation +/// \return string value +XGUI_EXPORT QString generateName(const std::shared_ptr& thePrs); + +/// Creates and returns the temporary directory (with random name) using the environment variable +/// path to location of such directories, +std::string getTmpDirByEnv( const char* thePathEnv); + +/// Removes files and directory where they are located +void removeTemporaryFiles(const std::string& theDirectory, + const std::list& theFiles); +}; -#endif \ No newline at end of file +#endif