X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ActionsMgr.cpp;h=4bfb31b9d6e31eb7807415815e4a04f815149c66;hb=e8f6a194e38ff95708bf0984081d9f4e7d9ab115;hp=6815d81d357d7756c7285478b3f8cef717440b48;hpb=a993a2e680b4a5a2e8b9ad9c998dc872ff962702;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ActionsMgr.cpp b/src/XGUI/XGUI_ActionsMgr.cpp index 6815d81d3..4bfb31b9d 100644 --- a/src/XGUI/XGUI_ActionsMgr.cpp +++ b/src/XGUI/XGUI_ActionsMgr.cpp @@ -6,20 +6,30 @@ #include "XGUI_Command.h" #include "XGUI_Workshop.h" #include "XGUI_OperationMgr.h" +#include "XGUI_SalomeConnector.h" #include +#include #include #ifdef _DEBUG +#include #include #endif XGUI_ActionsMgr::XGUI_ActionsMgr(XGUI_Workshop* theParent) - : QObject(theParent), myOperationMgr(theParent->operationMgr()) + : QObject(theParent), + myWorkshop(theParent), + myOperationMgr(theParent->operationMgr()) { - + // Default shortcuts + myShortcuts << QKeySequence::Save; + myShortcuts << QKeySequence::Undo; + myShortcuts << QKeySequence::Redo; + myShortcuts << QKeySequence::Open; + myShortcuts << QKeySequence::Close; } XGUI_ActionsMgr::~XGUI_ActionsMgr() @@ -37,6 +47,9 @@ void XGUI_ActionsMgr::addCommand(QAction* theCmd) XGUI_Command* aXCmd = dynamic_cast(theCmd); if (aXCmd) { myNestedActions[aId] = aXCmd->nestedCommands(); + } else { + XGUI_Workshop* aWorkshop = static_cast(parent()); + myNestedActions[aId] = aWorkshop->salomeConnector()->nestedActions(aId); } } @@ -112,3 +125,35 @@ void XGUI_ActionsMgr::updateCheckState() setActionChecked(eachCommand, true); } } + +QStringList XGUI_ActionsMgr::nestedCommands(const QString& theId) const +{ + if (myNestedActions.contains(theId)) + return myNestedActions[theId]; + return QStringList(); +} + +bool XGUI_ActionsMgr::isNested(const QString& theId) const +{ + foreach(QString aId, myNestedActions.keys()) { + QStringList aList = myNestedActions[aId]; + if (aList.contains(theId)) + return true; + } + return false; +} + +QKeySequence XGUI_ActionsMgr::registerShortcut(const QString& theKeySequence) +{ + if(theKeySequence.isEmpty()) { + return QKeySequence(); + } + QKeySequence aResult(theKeySequence); + if(myShortcuts.contains(aResult)) { + QString aMessage = tr("Shortcut %1 is already defined. Ignore.").arg(theKeySequence); + Events_Error::send(aMessage.toStdString()); + return QKeySequence(); + } + myShortcuts.append(aResult); + return aResult; +}