#include "XGUI_Command.h"
#include "XGUI_Workshop.h"
#include "XGUI_OperationMgr.h"
+#include "XGUI_SalomeConnector.h"
#include <ModuleBase_Operation.h>
+#include <Events_Error.h>
#include <QAction>
#ifdef _DEBUG
+#include <iostream>
#include <QDebug>
#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()
XGUI_Command* aXCmd = dynamic_cast<XGUI_Command*>(theCmd);
if (aXCmd) {
myNestedActions[aId] = aXCmd->nestedCommands();
+ } else {
+ XGUI_Workshop* aWorkshop = static_cast<XGUI_Workshop*>(parent());
+ myNestedActions[aId] = aWorkshop->salomeConnector()->nestedActions(aId);
}
}
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;
+}