Salome HOME
Update copyrights
[modules/shaper.git] / src / SHAPERGUI / SHAPERGUI_ToolbarsMgr.cpp
index e1e6b11377ea91e04ec699078225f9e450a08f2a..0d0afe1a44456daafe24cb32ed01991d86417464 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
 //
 
 #include "SHAPERGUI_ToolbarsMgr.h"
@@ -23,6 +22,7 @@
 
 #include <CAM_Application.h>
 #include <SUIT_Desktop.h>
+#include <SUIT_Session.h>
 #include <QtxActionToolMgr.h>
 
 #include <QLayout>
@@ -80,7 +80,8 @@ private:
 SHAPERGUI_ToolbarsDlg::SHAPERGUI_ToolbarsDlg(SHAPERGUI* theModule)
   : QDialog(theModule->application()->desktop()),
   myModule(theModule),
-  myResult(theModule->shaperToolbars())
+  myResult(theModule->shaperToolbars()),
+  myIsReset(false)
 {
   myFreeCommands = theModule->getFreeCommands();
 
@@ -122,24 +123,35 @@ SHAPERGUI_ToolbarsDlg::SHAPERGUI_ToolbarsDlg(SHAPERGUI* theModule)
   aContolsLay->addWidget(aButtonsWgt);
 
   QPushButton* aAddBtn = new QPushButton(tr("Add..."), aButtonsWgt);
+  aAddBtn->setToolTip(tr("Add a new empty toolbar to the toolbars list"));
   connect(aAddBtn, SIGNAL(clicked(bool)), SLOT(onAdd()));
   aBtnLayout->addWidget(aAddBtn);
 
   QPushButton* aEditBtn = new QPushButton(tr("Edit..."), aButtonsWgt);
+  aEditBtn->setToolTip(tr("Edit currently selected toolbar"));
   connect(aEditBtn, SIGNAL(clicked(bool)), SLOT(onEdit()));
   aBtnLayout->addWidget(aEditBtn);
 
   QPushButton* aDeleteBtn = new QPushButton(tr("Delete"), aButtonsWgt);
+  aDeleteBtn->setToolTip(tr("Delete currently selected toolbar"));
   connect(aDeleteBtn, SIGNAL(clicked(bool)), SLOT(onDelete()));
   aBtnLayout->addWidget(aDeleteBtn);
   aBtnLayout->addStretch(1);
 
+  QPushButton* aResetBtn = new QPushButton(tr("Reset"), aButtonsWgt);
+  aResetBtn->setToolTip(tr("Restore default toolbars structure"));
+  connect(aResetBtn, SIGNAL(clicked(bool)), SLOT(onReset()));
+  aBtnLayout->addWidget(aResetBtn);
+  aBtnLayout->addSpacing(19);
+
   // Buttons part of the dialog
   QDialogButtonBox* aButtons =
-    new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this);
+    new QDialogButtonBox(QDialogButtonBox::Help | QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
+      Qt::Horizontal, this);
   aMailLayout->addWidget(aButtons);
   connect(aButtons, SIGNAL(accepted()), SLOT(accept()));
   connect(aButtons, SIGNAL(rejected()), SLOT(reject()));
+  connect(aButtons, SIGNAL(helpRequested()), SLOT(onHelp()));
 
   updateToolbarsList();
   updateNumber();
@@ -153,6 +165,7 @@ void SHAPERGUI_ToolbarsDlg::onAdd()
     if (!myResult.contains(aNewToolbar)) {
       myResult[aNewToolbar] = QIntList();
       updateToolbarsList();
+      myIsReset = false;
     }
     else {
       QString aMsg = tr("A tool bar with name %1 already exists").arg(aNewToolbar);
@@ -176,6 +189,7 @@ void SHAPERGUI_ToolbarsDlg::onEdit()
       myResult[aToolbarName] = aDlg.toolbarItems();
       updateNumber();
       updateToolbarsList();
+      myIsReset = false;
     }
   }
 }
@@ -196,6 +210,7 @@ void SHAPERGUI_ToolbarsDlg::onDelete()
       myResult.remove(aToolbarName);
       updateToolbarsList();
       updateNumber();
+      myIsReset = false;
     }
   }
 }
@@ -206,7 +221,7 @@ void SHAPERGUI_ToolbarsDlg::updateToolbarsList()
   QStringList aItems;
   QMap<QString, QIntList>::const_iterator aIt;
   for (aIt = myResult.cbegin(); aIt != myResult.cend(); aIt++) {
-    aItems.append(aIt.key() + tr(" (%1 items)").arg(aIt.value().size() - aIt.value().count(-1)));
+    aItems.append(aIt.key() + tr(" (%1 commands)").arg(aIt.value().size() - aIt.value().count(-1)));
   }
   myToolbarsList->addItems(aItems);
 }
@@ -223,6 +238,22 @@ void SHAPERGUI_ToolbarsDlg::updateNumber()
   myFreeNbLbl->setText(QString::number(myFreeCommands.size()));
 }
 
+void SHAPERGUI_ToolbarsDlg::onReset()
+{
+  myResult = myModule->defaultToolbars();
+  updateNumber();
+  updateToolbarsList();
+  myIsReset = true;
+}
+
+void SHAPERGUI_ToolbarsDlg::onHelp()
+{
+  SUIT_Application* app = SUIT_Session::session()->activeApplication();
+  if (app)
+    app->onHelpContextModule("SHAPER", "Introduction.html", "toolbars-dialog-box");
+}
+
+
 //************************************************************************************
 //************************************************************************************
 //************************************************************************************
@@ -234,7 +265,7 @@ SHAPERGUI_ToolbarItemsDlg::SHAPERGUI_ToolbarItemsDlg(QWidget* theParent,
   : QDialog(theParent),
   myModule(theModule)
 {
-  setWindowTitle(tr("Edit toolbar items"));
+  setWindowTitle(tr("Edit toolbar"));
 
   QVBoxLayout* aMailLayout = new QVBoxLayout(this);
 
@@ -329,10 +360,12 @@ SHAPERGUI_ToolbarItemsDlg::SHAPERGUI_ToolbarItemsDlg(QWidget* theParent,
 
   // Buttons part of the dialog
   QDialogButtonBox* aButtons =
-    new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this);
+    new QDialogButtonBox(QDialogButtonBox::Help | QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
+      Qt::Horizontal, this);
   aMailLayout->addWidget(aButtons);
   connect(aButtons, SIGNAL(accepted()), SLOT(accept()));
   connect(aButtons, SIGNAL(rejected()), SLOT(reject()));
+  connect(aButtons, SIGNAL(helpRequested()), SLOT(onHelp()));
 }
 
 void SHAPERGUI_ToolbarItemsDlg::onAddItem()
@@ -435,3 +468,10 @@ QIntList SHAPERGUI_ToolbarItemsDlg::getItems(QListWidget* theWidget, int theStar
   }
   return aList;
 }
+
+void SHAPERGUI_ToolbarItemsDlg::onHelp()
+{
+  SUIT_Application* app = SUIT_Session::session()->activeApplication();
+  if (app)
+    app->onHelpContextModule("SHAPER", "Introduction.html", "edit-toolbar-dialog-box");
+}