-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023 CEA, EDF
//
// 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"
#include <CAM_Application.h>
#include <SUIT_Desktop.h>
+#include <SUIT_Session.h>
#include <QtxActionToolMgr.h>
#include <QLayout>
{
public:
SHAPERGUI_CommandIdItem(QListWidget* theParent, int theId, SHAPERGUI* theModule)
- : QListWidgetItem(theParent), myId(theId), myModule(theModule) {}
+ : QListWidgetItem(theParent), myModule(theModule), myId(theId) {}
virtual QVariant data(int theRole) const {
SHAPERGUI_ToolbarsDlg::SHAPERGUI_ToolbarsDlg(SHAPERGUI* theModule)
: QDialog(theModule->application()->desktop()),
myModule(theModule),
- myResult(theModule->shaperToolbars())
+ myResult(theModule->shaperToolbars()),
+ myIsReset(false)
{
- myFreeCommands = getModuleFreeCommands();
+ myFreeCommands = theModule->getFreeCommands();
setWindowTitle(tr("Toolbars"));
QVBoxLayout* aMailLayout = new QVBoxLayout(this);
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();
if (!myResult.contains(aNewToolbar)) {
myResult[aNewToolbar] = QIntList();
updateToolbarsList();
+ myIsReset = false;
}
else {
QString aMsg = tr("A tool bar with name %1 already exists").arg(aNewToolbar);
myResult[aToolbarName] = aDlg.toolbarItems();
updateNumber();
updateToolbarsList();
+ myIsReset = false;
}
}
}
myResult.remove(aToolbarName);
updateToolbarsList();
updateNumber();
+ myIsReset = false;
}
}
}
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);
}
-QIntList SHAPERGUI_ToolbarsDlg::getModuleFreeCommands() const
-{
- QIntList aFreeCommands;
- QtxActionToolMgr* aMgr = myModule->toolMgr();
- QAction* anAction;
- int aId;
- QMap<QString, QIntList>::const_iterator aIt;
- QIntList aShaperActions = myModule->shaperActions();
- foreach(int aCmd, aShaperActions) {
- anAction = myModule->action(aCmd);
- aId = aMgr->actionId(anAction);
- if (!aMgr->containsAction(aId))
- aFreeCommands.append(aCmd);
- }
- return aFreeCommands;
-}
-
void SHAPERGUI_ToolbarsDlg::onDoubleClick(const QModelIndex& theIdx)
{
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");
+}
+
+
//************************************************************************************
//************************************************************************************
//************************************************************************************
: QDialog(theParent),
myModule(theModule)
{
- setWindowTitle(tr("Edit toolbar items"));
+ setWindowTitle(tr("Edit toolbar"));
QVBoxLayout* aMailLayout = new QVBoxLayout(this);
// 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()
}
return aList;
}
+
+void SHAPERGUI_ToolbarItemsDlg::onHelp()
+{
+ SUIT_Application* app = SUIT_Session::session()->activeApplication();
+ if (app)
+ app->onHelpContextModule("SHAPER", "Introduction.html", "edit-toolbar-dialog-box");
+}