#include <ModelAPI_ResultParameter.h>
#include <ModelAPI_ResultConstruction.h>
#include <ModelAPI_ResultBody.h>
+#include <ModelAPI_Tools.h>
#include <ModuleBase_IModule.h>
#include <ModuleBase_Tools.h>
if (aSelected == 1) {
ObjectPtr aObject = aObjects.first();
if (aObject) {
+ if (hasResult && myWorkshop->canBeShaded(aObject)) {
+ action("WIREFRAME_CMD")->setEnabled(true);
+ action("SHADING_CMD")->setEnabled(true);
+ }
if (!hasFeature) {
- if (aObject->isDisplayed()) {
- if (aDisplayer->canBeShaded(aObject)) {
- action("WIREFRAME_CMD")->setEnabled(true);
- action("SHADING_CMD")->setEnabled(true);
- }
+ bool aHasSubResults = ModelAPI_Tools::hasSubResults(
+ std::dynamic_pointer_cast<ModelAPI_Result>(aObject));
+ if (aHasSubResults) {
action("HIDE_CMD")->setEnabled(true);
- } else if (hasResult && (!hasParameter)) {
action("SHOW_CMD")->setEnabled(true);
}
-
+ else {
+ if (aObject->isDisplayed()) {
+ action("HIDE_CMD")->setEnabled(true);
+ } else if (hasResult && (!hasParameter)) {
+ action("SHOW_CMD")->setEnabled(true);
+ }
+ }
if (!(hasParameter || hasFeature))
action("SHOW_ONLY_CMD")->setEnabled(true);
}
}
}
} else {
- if (hasResult && (!hasParameter)) {
+ // parameter is commented because the actions are not in the list of result parameter actions
+ if (hasResult /*&& (!hasParameter)*/) {
action("SHOW_CMD")->setEnabled(true);
action("HIDE_CMD")->setEnabled(true);
action("SHOW_ONLY_CMD")->setEnabled(true);