#include <ModuleBase_WidgetFactory.h>
#include <ModuleBase_OperationDescription.h>
#include <ModuleBase_Events.h>
+#include <ModuleBase_IModule.h>
#include <ModuleBase_IWorkshop.h>
#include <Events_Loop.h>
: ModuleBase_IPropertyPanel(theParent),
myActiveWidget(NULL),
myPreselectionWidget(NULL),
+ myInternalActiveWidget(NULL),
myPanelPage(NULL),
myOperationMgr(theMgr)
{
findButton(PROP_PANEL_OK_PLUS)->setVisible(aFeatureInfo->isApplyContinue());
}
+ModuleBase_ModelWidget* XGUI_PropertyPanel::activeWidget(const bool isUseCustomWidget) const
+{
+ if (isUseCustomWidget && myInternalActiveWidget)
+ return myInternalActiveWidget;
+
+ return myActiveWidget;
+}
+
void XGUI_PropertyPanel::activateNextWidget(ModuleBase_ModelWidget* theWidget)
{
// it is possible that the property panel widgets have not been visualized
#endif
ModuleBase_ModelWidget* aFocusMWidget = ModuleBase_ModelWidget::findModelWidget(this,
aFocusWidget);
- if (aFocusMWidget)
- aFocusMWidget->setHighlighted(false);
+ //if (aFocusMWidget)
+ // aFocusMWidget->setHighlighted(false);
QWidget* aNewFocusWidget = 0;
if (aFocusWidget) {
ModuleBase_ModelWidget* aNewFocusMWidget = ModuleBase_ModelWidget::findModelWidget(this,
aNewFocusWidget);
- if (aNewFocusMWidget)
+ if (aNewFocusMWidget) {
+ if (aFocusMWidget) {
+ aFocusMWidget->setHighlighted(false);
+ }
aNewFocusMWidget->emitFocusInWidget();
- isChangedFocus = true;
+ isChangedFocus = true;
+ }
}
return isChangedFocus;
}
}
}
+void XGUI_PropertyPanel::setInternalActiveWidget(ModuleBase_ModelWidget* theWidget)
+{
+ if (theWidget)
+ {
+ myInternalActiveWidget = theWidget;
+ emit propertyPanelActivated();
+ }
+ else
+ {
+ if (myInternalActiveWidget)
+ {
+ delete myInternalActiveWidget;
+ myInternalActiveWidget = 0;
+ }
+ emit propertyPanelDeactivated();
+ }
+ myOperationMgr->workshop()->selectionActivate()->updateSelectionModes();
+ myOperationMgr->workshop()->selectionActivate()->updateSelectionFilters();
+}
ModuleBase_ModelWidget* XGUI_PropertyPanel::preselectionWidget() const
{