Skip to content

Commit

Permalink
SKETCHER: constraint widget: replace filter button by checkbox
Browse files Browse the repository at this point in the history
  • Loading branch information
PaddleStroke committed Sep 30, 2022
1 parent 411fffc commit ba35e76
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 97 deletions.
147 changes: 73 additions & 74 deletions src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp
Expand Up @@ -674,6 +674,10 @@ TaskSketcherConstraints::TaskSketcherConstraints(ViewProviderSketch *sketchView)
ui->listWidgetConstraints, SIGNAL(onUpdateActiveStatus(QListWidgetItem *, bool)),
this , SLOT (on_listWidgetConstraints_updateActiveStatus(QListWidgetItem *, bool))
);
QObject::connect(
ui->filterBox, SIGNAL(stateChanged(int)),
this, SLOT(on_filterBox_stateChanged(int))
);
QObject::connect(
ui->showHideBox, SIGNAL(stateChanged(int)),
this, SLOT(on_showHideBox_stateChanged(int))
Expand All @@ -686,10 +690,6 @@ TaskSketcherConstraints::TaskSketcherConstraints(ViewProviderSketch *sketchView)
ui->listWidgetConstraints, SIGNAL(emitShowSelection3DVisibility()),
this , SLOT (on_listWidgetConstraints_emitShowSelection3DVisibility())
);
QObject::connect(
ui->showFilterButton, SIGNAL(clicked(bool)),
this , SLOT (on_showFilterButton_clicked(bool))
);
QObject::connect(
ui->showAssociatedButton, SIGNAL(clicked(bool)),
this , SLOT (on_showAssociatedButton_clicked(bool))
Expand Down Expand Up @@ -822,25 +822,22 @@ void TaskSketcherConstraints::on_settingsButton_clicked(bool)
}

/* show filter button ==============================================*/
void TaskSketcherConstraints::on_showFilterButton_clicked(bool)
void TaskSketcherConstraints::on_filterBox_stateChanged(int val)
{
if (ui->listMultiFilter->isVisible()) {
ui->listMultiFilter->hide();
ui->showFilterButton->setText(QApplication::translate("ConstraintsFilterShow", "Show filters"));
}
else {
if (val == Qt::CheckState::Checked)
ui->listMultiFilter->show();
ui->showFilterButton->setText(QApplication::translate("ConstraintsFilterHide", "Hide filters"));
}
else
ui->listMultiFilter->hide();
updateList();
}

/* show all/selected/associated constraints button ==============================*/
void TaskSketcherConstraints::on_showAllInListButton_clicked(bool)
{
specialFilterMode = None;
ui->listMultiFilter->hide();
ui->showFilterButton->setText(QApplication::translate("ConstraintsFilterShow", "Show filters"));
setCheckStateAll(Qt::CheckState::Checked);
if (ui->filterBox->checkState() == Qt::Checked) {
setCheckStateAll(Qt::CheckState::Checked);
}
ui->showHideBox->setChecked(Qt::CheckState::Checked);
updateList();
}
Expand Down Expand Up @@ -1335,65 +1332,67 @@ bool TaskSketcherConstraints::isConstraintFiltered(QListWidgetItem * item)
bool visible = true;

//First select only the filtered one.
switch (constraint->Type) {
case Sketcher::Horizontal:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Horizontal);
break;
case Sketcher::Vertical:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Vertical);
break;
case Sketcher::Coincident:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Coincident);
break;
case Sketcher::PointOnObject:
visible = checkFilterBitset(multiFilterStatus, FilterValue::PointOnObject);
break;
case Sketcher::Parallel:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Parallel);
break;
case Sketcher::Perpendicular:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Perpendicular);
break;
case Sketcher::Tangent:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Tangent);
break;
case Sketcher::Equal:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Equality);
break;
case Sketcher::Symmetric:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Symmetric);
break;
case Sketcher::Block:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Block);
break;
case Sketcher::Distance:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Distance);
break;
case Sketcher::DistanceX:
visible = checkFilterBitset(multiFilterStatus, FilterValue::HorizontalDistance);
break;
case Sketcher::DistanceY:
visible = checkFilterBitset(multiFilterStatus, FilterValue::VerticalDistance);
break;
case Sketcher::Radius:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Radius);
break;
case Sketcher::Weight:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Weight);
break;
case Sketcher::Diameter:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Diameter);
break;
case Sketcher::Angle:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Angle);
break;
case Sketcher::SnellsLaw:
visible = checkFilterBitset(multiFilterStatus, FilterValue::SnellsLaw);
break;
case Sketcher::InternalAlignment:
visible = checkFilterBitset(multiFilterStatus, FilterValue::InternalAlignment) && !hideInternalAlignment;
default:
break;
if(ui->filterBox->checkState() == Qt::Checked) {
switch (constraint->Type) {
case Sketcher::Horizontal:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Horizontal);
break;
case Sketcher::Vertical:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Vertical);
break;
case Sketcher::Coincident:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Coincident);
break;
case Sketcher::PointOnObject:
visible = checkFilterBitset(multiFilterStatus, FilterValue::PointOnObject);
break;
case Sketcher::Parallel:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Parallel);
break;
case Sketcher::Perpendicular:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Perpendicular);
break;
case Sketcher::Tangent:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Tangent);
break;
case Sketcher::Equal:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Equality);
break;
case Sketcher::Symmetric:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Symmetric);
break;
case Sketcher::Block:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Block);
break;
case Sketcher::Distance:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Distance);
break;
case Sketcher::DistanceX:
visible = checkFilterBitset(multiFilterStatus, FilterValue::HorizontalDistance);
break;
case Sketcher::DistanceY:
visible = checkFilterBitset(multiFilterStatus, FilterValue::VerticalDistance);
break;
case Sketcher::Radius:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Radius);
break;
case Sketcher::Weight:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Weight);
break;
case Sketcher::Diameter:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Diameter);
break;
case Sketcher::Angle:
visible = checkFilterBitset(multiFilterStatus, FilterValue::Angle);
break;
case Sketcher::SnellsLaw:
visible = checkFilterBitset(multiFilterStatus, FilterValue::SnellsLaw);
break;
case Sketcher::InternalAlignment:
visible = checkFilterBitset(multiFilterStatus, FilterValue::InternalAlignment) && !hideInternalAlignment;
default:
break;
}
}

//Then we re-filter based on selected/associated if such mode selected.
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Sketcher/Gui/TaskSketcherConstraints.h
Expand Up @@ -126,13 +126,13 @@ public Q_SLOTS:
void on_settings_extendedInformation_changed();
void on_settings_hideInternalAligment_changed();
void on_settingsButton_clicked(bool);
void on_filterBox_stateChanged(int val);
void on_showHideBox_stateChanged(int val);
void on_showAssociatedButton_clicked(bool);
void on_showSelectedButton_clicked(bool val);
void on_showAllInListButton_clicked(bool);
void on_listWidgetConstraints_emitShowSelection3DVisibility();
void on_listWidgetConstraints_emitHideSelection3DVisibility();
void on_showFilterButton_clicked(bool);

void on_listMultiFilter_itemChanged(QListWidgetItem* item);

Expand Down
35 changes: 13 additions & 22 deletions src/Mod/Sketcher/Gui/TaskSketcherConstraints.ui
Expand Up @@ -28,28 +28,19 @@
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="showFilterButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Click to show filters</string>
</property>
<property name="text">
<string>Show filters</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="filterBox">
<property name="toolTip">
<string>Check to activate filters</string>
</property>
<property name="text">
<string>Filters</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="showAllInListButton">
<property name="sizePolicy">
Expand Down

0 comments on commit ba35e76

Please sign in to comment.