}
~XGUI_ShortCutListener() {}
+ /// Switch on short cut listener
+ void setActive(const bool theIsActive) { myIsActive = theIsActive; }
+
/// Redefinition of virtual function to process Delete key release
virtual bool eventFilter(QObject *theObject, QEvent *theEvent)
{
bool isAccepted = false;
- if (theEvent->type() == QEvent::KeyRelease) {
+ if (myIsActive && theEvent->type() == QEvent::KeyRelease) {
QKeyEvent* aKeyEvent = dynamic_cast<QKeyEvent*>(theEvent);
if(aKeyEvent) {
switch (aKeyEvent->key()) {
private:
XGUI_OperationMgr* myOperationMgr; /// processor for key event
+ bool myIsActive; /// boolean state whether the event filter perform own signal processing
};
XGUI_OperationMgr::XGUI_OperationMgr(QObject* theParent,
/// we need to install filter to the application in order to react to 'Delete' key button
/// this key can not be a short cut for a corresponded action because we need to set
/// the actions priority
- XGUI_ShortCutListener* aShortCutListener = new XGUI_ShortCutListener(theParent, this);
+ myShortCutListener = new XGUI_ShortCutListener(theParent, this);
}
XGUI_OperationMgr::~XGUI_OperationMgr()
{
}
+void XGUI_OperationMgr::activate()
+{
+ myShortCutListener->setActive(true);
+}
+
+void XGUI_OperationMgr::deactivate()
+{
+ myShortCutListener->setActive(false);
+}
+
ModuleBase_Operation* XGUI_OperationMgr::currentOperation() const
{
return myOperations.count() > 0 ? myOperations.last() : 0;
/// processing delete by workshop
XGUI_ObjectsBrowser* aBrowser = workshop()->objectBrowser();
QWidget* aViewPort = myWorkshop->viewer()->activeViewPort();
- // property panel childe object is processed to process delete performed on Apply button of PP
+ // property panel child object is processed to process delete performed on Apply button of PP
if (isChildObject(theObject, aBrowser) ||
isChildObject(theObject, aViewPort) ||
isPPChildObject)
class ModuleBase_IWorkshop;
class XGUI_Workshop;
+class XGUI_ShortCutListener;
/**\class XGUI_OperationMgr
* \ingroup GUI
/// Destructor
virtual ~XGUI_OperationMgr();
+ /// Switch on short cut listener
+ void activate();
+ /// Switch off short cut listener
+ void deactivate();
+
/// Set reference to workshop
/// \param theWorkshop reference to workshop
void setWorkshop(ModuleBase_IWorkshop* theWorkshop)
/// Current workshop
ModuleBase_IWorkshop* myWorkshop;
+
+ XGUI_ShortCutListener* myShortCutListener;
};
#endif
QIntList aModes;
module()->activeSelectionModes(aModes);
aDisplayer->activateObjects(aModes, aDisplayed);
+ myOperationMgr->activate();
}
void XGUI_Workshop::deactivateModule()
XGUI_Displayer* aDisplayer = displayer();
QObjectPtrList aDisplayed = aDisplayer->displayedObjects();
aDisplayer->deactivateObjects(aDisplayed, true);
+
+ myOperationMgr->deactivate();
}
//******************************************************