Mesh: fix -Wclazy-connect-by-name

This commit is contained in:
wmayer
2023-03-26 23:31:14 +02:00
committed by wwmayer
parent 82b168da15
commit 6a4fdceaff
5 changed files with 172 additions and 92 deletions

View File

@@ -41,9 +41,11 @@ DlgDecimating::DlgDecimating(QWidget* parent, Qt::WindowFlags fl)
, ui(new Ui_DlgDecimating)
{
ui->setupUi(this);
connect(ui->checkAbsoluteNumber, &QCheckBox::toggled,
this, &DlgDecimating::onCheckAbsoluteNumberToggled);
ui->spinBoxReduction->setMinimumWidth(60);
ui->checkAbsolueNumber->setEnabled(false);
on_checkAbsolueNumber_toggled(false);
ui->checkAbsoluteNumber->setEnabled(false);
onCheckAbsoluteNumberToggled(false);
}
DlgDecimating::~DlgDecimating()
@@ -52,12 +54,12 @@ DlgDecimating::~DlgDecimating()
bool DlgDecimating::isAbsoluteNumber() const
{
return ui->checkAbsolueNumber->isChecked();
return ui->checkAbsoluteNumber->isChecked();
}
int DlgDecimating::targetNumberOfTriangles() const
{
if (ui->checkAbsolueNumber->isChecked()) {
if (ui->checkAbsoluteNumber->isChecked()) {
return ui->spinBoxReduction->value();
}
else {
@@ -68,12 +70,13 @@ int DlgDecimating::targetNumberOfTriangles() const
void DlgDecimating::setNumberOfTriangles(int num)
{
numberOfTriangles = num;
ui->checkAbsolueNumber->setEnabled(num > 0);
if (num <= 0)
ui->checkAbsolueNumber->setChecked(false);
ui->checkAbsoluteNumber->setEnabled(num > 0);
if (num <= 0) {
ui->checkAbsoluteNumber->setChecked(false);
}
}
void DlgDecimating::on_checkAbsolueNumber_toggled(bool on)
void DlgDecimating::onCheckAbsoluteNumberToggled(bool on)
{
ui->sliderReduction->setDisabled(on);
ui->groupBoxTolerance->setDisabled(on);
@@ -84,13 +87,13 @@ void DlgDecimating::on_checkAbsolueNumber_toggled(bool on)
ui->spinBoxReduction->setRange(1, numberOfTriangles);
ui->spinBoxReduction->setValue(numberOfTriangles * (1.0 - reduction()));
ui->spinBoxReduction->setSuffix(QString());
ui->checkAbsolueNumber->setText(tr("Absolute number (Maximum: %1)").arg(numberOfTriangles));
ui->checkAbsoluteNumber->setText(tr("Absolute number (Maximum: %1)").arg(numberOfTriangles));
}
else {
ui->spinBoxReduction->setRange(0, 100);
ui->spinBoxReduction->setValue(ui->sliderReduction->value());
ui->spinBoxReduction->setSuffix(QString::fromLatin1("%"));
ui->checkAbsolueNumber->setText(tr("Absolute number"));
ui->checkAbsoluteNumber->setText(tr("Absolute number"));
connect(ui->sliderReduction, qOverload<int>(&QSlider::valueChanged), ui->spinBoxReduction, &QSpinBox::setValue);
connect(ui->spinBoxReduction, qOverload<int>(&QSpinBox::valueChanged), ui->sliderReduction, &QSlider::setValue);
}
@@ -141,8 +144,9 @@ TaskDecimating::~TaskDecimating()
bool TaskDecimating::accept()
{
std::vector<Mesh::Feature*> meshes = Gui::Selection().getObjectsOfType<Mesh::Feature>();
if (meshes.empty())
if (meshes.empty()) {
return true;
}
Gui::Selection().clearSelection();
Gui::WaitCursor wc;
@@ -152,15 +156,18 @@ bool TaskDecimating::accept()
float reduction = widget->reduction();
bool absolute = widget->isAbsoluteNumber();
int targetSize = 0;
if (absolute)
if (absolute) {
targetSize = widget->targetNumberOfTriangles();
}
for (std::vector<Mesh::Feature*>::const_iterator it = meshes.begin(); it != meshes.end(); ++it) {
Mesh::Feature* mesh = *it;
Mesh::MeshObject* mm = mesh->Mesh.startEditing();
if (absolute)
if (absolute) {
mm->decimate(targetSize);
else
}
else {
mm->decimate(tolerance, reduction);
}
mesh->Mesh.finishEditing();
}