From 32da3d029d2dec741ddc47115b23095425e594f2 Mon Sep 17 00:00:00 2001 From: peri4 Date: Thu, 22 Jan 2026 11:47:37 +0300 Subject: [PATCH] Graphic config: checkboxes for all graphics now gather current states --- libs/graphic/graphic.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/libs/graphic/graphic.cpp b/libs/graphic/graphic.cpp index 83582d6..af3cf54 100644 --- a/libs/graphic/graphic.cpp +++ b/libs/graphic/graphic.cpp @@ -2315,12 +2315,29 @@ void Graphic::on_graphic_buttonAutofit_clicked() { void Graphic::on_graphic_buttonConfigure_clicked() { conf->graphicItems.clear(); - for (int i = 0; i < graphics.size(); i++) { + int all_checks[2] = {-1, -1}; + auto addAllChecks = [](int & out, bool is_vis) { + if (out < 0) + out = is_vis ? Qt::Checked : Qt::Unchecked; + else { + if (is_vis && out == Qt::Unchecked) out = Qt::PartiallyChecked; + if (!is_vis && out == Qt::Checked) out = Qt::PartiallyChecked; + } + }; + for (const auto & g: graphics) { GraphicConf::GraphicItem item; - item.icon = graphics[i].icon; - item.name = graphics[i].name; + item.icon = g.icon; + item.name = g.name; conf->graphicItems.append(item); + addAllChecks(all_checks[0], g.lines); + addAllChecks(all_checks[1], g.points); } + conf->ui->checkLinesAll->blockSignals(true); + conf->ui->checkPointsAll->blockSignals(true); + conf->ui->checkLinesAll->setCheckState((Qt::CheckState)all_checks[0]); + conf->ui->checkPointsAll->setCheckState((Qt::CheckState)all_checks[1]); + conf->ui->checkLinesAll->blockSignals(false); + conf->ui->checkPointsAll->blockSignals(false); conf->ui->colorGrid->setColor(grid_pen.color()); conf->ui->comboStyleGrid->setCurrentIndex((int)grid_pen.style()); conf->ui->spinWidthGrid->setValue(grid_pen.widthF());