#include <XGUI_PropertyPanel.h>
#include <XGUI_ActionsMgr.h>
+#include <XGUI_OperationMgr.h>
//#include <AppElements_Constants.h>
#include <ModuleBase_WidgetMultiSelector.h>
#include <ModuleBase_Tools.h>
#include <iostream>
#endif
-XGUI_PropertyPanel::XGUI_PropertyPanel(QWidget* theParent)
+XGUI_PropertyPanel::XGUI_PropertyPanel(QWidget* theParent, XGUI_OperationMgr* theMgr)
: ModuleBase_IPropertyPanel(theParent),
myActiveWidget(NULL),
myPreselectionWidget(NULL),
- myPanelPage(NULL)
+ myPanelPage(NULL),
+ myOperationMgr(theMgr)
{
this->setWindowTitle(tr("Property Panel"));
QAction* aViewAct = this->toggleViewAction();
{
myPreselectionWidget = theWidget;
}
+
+
+void XGUI_PropertyPanel::closeEvent(QCloseEvent* theEvent)
+{
+ ModuleBase_Operation* aOp = myOperationMgr->currentOperation();
+ if (aOp) {
+ if (myOperationMgr->canStopOperation(aOp)) {
+ myOperationMgr->abortOperation(aOp);
+ theEvent->accept();
+ } else
+ theEvent->ignore();
+ } else
+ ModuleBase_IPropertyPanel::closeEvent(theEvent);
+}
\ No newline at end of file
class QGridLayout;
class ModuleBase_PageBase;
class ModuleBase_PageWidget;
+class XGUI_OperationMgr;
/// Internal name of property panel widget
const static char* PROP_PANEL = "property_panel_dock";
/// Constructor
/// \param theParent is a parent of the property panel
- XGUI_PropertyPanel(QWidget* theParent);
+ XGUI_PropertyPanel(QWidget* theParent, XGUI_OperationMgr* theMgr);
virtual ~XGUI_PropertyPanel();
/// Sets widget processed by preselection
virtual void setPreselectionWidget(ModuleBase_ModelWidget* theWidget);
- public slots:
+ /// Returns operation manager
+ XGUI_OperationMgr* operationMgr() const { return myOperationMgr; }
+
+public slots:
/// \brief Update all widgets in property panel with values from the given feature
/// \param theFeature a Feature to update values in widgets
virtual void activateWidget(ModuleBase_ModelWidget* theWidget);
protected:
+ /// A method called on the property panel closed
+ /// \param theEvent a close event
+ void closeEvent(QCloseEvent* theEvent);
+
/// A header widget
QWidget* myHeaderWidget;
ModuleBase_ModelWidget* myActiveWidget;
/// Currently widget processed by preselection
ModuleBase_ModelWidget* myPreselectionWidget;
+
+ XGUI_OperationMgr* myOperationMgr;
};
#endif /* XGUI_PROPERTYPANEL_H_ */
QMainWindow* aDesktop = isSalomeMode() ? salomeConnector()->desktop() : myMainWindow;
QDockWidget* aObjDock = createObjectBrowser(aDesktop);
aDesktop->addDockWidget(Qt::LeftDockWidgetArea, aObjDock);
- myPropertyPanel = new XGUI_PropertyPanel(aDesktop);
+ myPropertyPanel = new XGUI_PropertyPanel(aDesktop, myOperationMgr);
myPropertyPanel->setupActions(myActionsMgr);
myPropertyPanel->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
aDesktop->addDockWidget(Qt::LeftDockWidgetArea, myPropertyPanel);