Salome HOME
Update copyrights
[modules/shaper.git] / src / SHAPERGUI / SHAPERGUI.h
index ffe975ca2813e5b5b0633bf423ae6ad28b958ee9..32b5035cde8ac7006a3e06d8ced4d768411a8c77 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2017  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2019  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
 //
 // 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
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
 #ifndef SHAPERGUI_H
@@ -29,7 +28,7 @@
 
 #include <ModuleBase_ActionInfo.h>
 
-#include <QStringList>
+#include <QList>
 #include <QMap>
 
 class XGUI_Workshop;
@@ -66,8 +65,9 @@ Q_OBJECT
 
   //--- XGUI connector interface -----
 
-  virtual QAction* addFeature(const QString& theWBName, const QString& theId,
-                              const QString& theTitle, const QString& theTip, const QIcon& theIcon,
+  virtual QAction* addFeature(const QString& theWBName, const QString& theTBName,
+                              const QString& theId, const QString& theTitle,
+                              const QString& theTip, const QIcon& theIcon,
                               const QKeySequence& theKeys/* = QKeySequence()*/,
                               bool isCheckable /*= false*/, const bool isAddSeparator/* = false*/,
                               const QString& theStatusTip);
@@ -153,6 +153,23 @@ Q_OBJECT
   /// \brief Set flag about opened document state
   void setIsOpened(bool theOpened) { myIsOpened = theOpened; }
 
+  virtual void updateModuleVisibilityState();
+
+  /// Returns list of the module commands
+  QIntList shaperActions() const { return myActionsList; }
+
+  /// Returns structure of tool bars
+  QMap<QString, QIntList> shaperToolbars() const { return myToolbars; }
+
+  /// Returns free commands which are not in toolbars in the module
+  QIntList getFreeCommands() const;
+
+  /// Returns structure of default tool bars
+  QMap<QString, QIntList> defaultToolbars() const
+  { return (myDefaultToolbars.size() == 0)? myToolbars : myDefaultToolbars; }
+
+  void resetToolbars();
+
  public slots:
   /// \brief The method is redefined to connect to the study viewer before the data
   /// model is filled by opened file. This file open will flush redisplay signals for,
@@ -201,13 +218,25 @@ Q_OBJECT
   /// Abort all operations
   virtual bool abortAllOperations();
 
+private slots:
+  void onWhatIs(bool isToggled);
+
+  void onEditToolbars();
+
  private:
    /// Create selector for OCC Viewer
    /// \param theMgr view manager
   SHAPERGUI_OCCSelector* createSelector(SUIT_ViewManager* theMgr);
 
-  /// List of registered actions
-  QStringList myActionsList;
+  void registerCommandToolbar(const QString& theToolName, int theCommandId);
+
+  int getNextCommandId() const;
+
+  // Update current toolbars
+  void updateToolbars(const QMap<QString, QIntList>& theNewToolbars);
+
+  void saveToolbarsConfig();
+  void loadToolbarsConfig();
 
   /// List of registered nested actions
   QStringList myNestedActionsList;
@@ -237,6 +266,17 @@ Q_OBJECT
 
   /// Popup manager
   QtxPopupMgr* myPopupMgr;
+
+  QAction* myWhatIsAction;
+
+  bool myIsInspectionVisible;
+  QDockWidget* myInspectionPanel;
+
+  /// List of registered actions
+  QIntList myActionsList;
+  QMap<QString, QIntList> myToolbars;
+  QMap<QString, QIntList> myDefaultToolbars;
+  bool myIsToolbarsModified;
 };
 
 #endif