QPushButton* aLaunchBtn = new QPushButton(tr("Selection by filters"), this);
connect(aLaunchBtn, SIGNAL(clicked()), SLOT(onFiltersLaunch()));
aMainLayout->addWidget(aLaunchBtn);
-
- myFilterLbl = new QLabel(this);
- myFilterLbl->setPixmap(QPixmap(":pictures/filter.png"));
- aMainLayout->addWidget(myFilterLbl);
-
- myModifyLbl = new QLabel(this);
- myModifyLbl->setPixmap(QPixmap(":pictures/plus_minus.png"));
- aMainLayout->addWidget(myModifyLbl);
- aMainLayout->addStretch(1);
-
- myFilterLbl->hide();
- myModifyLbl->hide();
}
void ModuleBase_FilterStarter::onFiltersLaunch()
theParent, SIGNAL(focusInWidget(ModuleBase_ModelWidget*)));
connect(aWidget, SIGNAL(focusOutWidget(ModuleBase_ModelWidget*)),
theParent, SIGNAL(focusOutWidget(ModuleBase_ModelWidget*)));
+ connect(aWidget, SIGNAL(objectUpdated()), theParent, SLOT(onObjectUpdated()));
}
aLayout->addWidget(aParamsWgt);
}
myFiltersCombo->setCurrentIndex(0);
myFiltersCombo->removeItem(theIndex);
+ updateObject(myFeature);
}
void ModuleBase_WidgetSelectionFilter::onAddFilter(const std::string& theFilter)
myWorkshop->selectionActivate()->updateSelectionModes();
myWorkshop->selectionActivate()->updateSelectionFilters();
redisplayFeature();
+ myFiltersCombo->setFocus();
+ updateObject(myFeature);
}
if (myValues.size() > 0)
updatePreview(aComp);
updateNumberSelected();
+ updateObject(myFeature);
}
void ModuleBase_WidgetSelectionFilter::updatePreview(const TopoDS_Shape& theShape)
void ModuleBase_WidgetSelectionFilter::updateNumberSelected()
{
- myNbLbl->setText(QString::number(myValues.size()));
+ int aNb = myValues.size();
+ myNbLbl->setText(QString::number(aNb));
+ //QString aErr = () ? tr("Selection is empty") : "";
+ if (aNb == 0)
+ myFeature->setError(tr("Selection is empty").toStdString(), false, false);
+ else {
+ myFeature->setError("", false, false);
+ myFeature->data()->execState(ModelAPI_StateDone);
+ }
}
+
QList<QWidget*> ModuleBase_WidgetSelectionFilter::getControls() const
{
QList<QWidget*> aWidgets;
aWidgets.append(aWgt);
}
}
+ aWidgets.append(myFiltersCombo);
return aWidgets;
}
ModuleBase_ModelWidget* aActive = myWorkshop->propertyPanel()->activeWidget();
if (aActive)
return aActive->storeValue();
+ updateObject(myFeature);
return true;
}
aAttrList->setFilters(aFiltersFeature);
}
- ModuleBase_ModelWidget* aActive = myWorkshop->propertyPanel()->activeWidget();
- if (aActive)
- return aActive->restoreValue();
QList<QWidget*> aWidgets;
QList<ModuleBase_FilterItem*> aItems = myFiltersWgt->findChildren<ModuleBase_FilterItem*>();
foreach(ModuleBase_FilterItem* aItem, aItems) {
}
return true;
}
+
+QString ModuleBase_WidgetSelectionFilter::getError(const bool theValueStateChecked) const
+{
+ QString aErrorMsg = ModuleBase_ModelWidget::getError(theValueStateChecked);
+ if (aErrorMsg.isEmpty()) {
+ if (myValues.size() == 0)
+ aErrorMsg = tr("Selection is empty");
+ }
+ return aErrorMsg;
+}
+
+void ModuleBase_WidgetSelectionFilter::onObjectUpdated()
+{
+ clearCurrentSelection(true);
+ updateNumberSelected();
+ updateObject(myFeature);
+}