From fcdc142991849f09ef4631c643788f958d14a0e4 Mon Sep 17 00:00:00 2001 From: peri4 Date: Fri, 24 Dec 2021 14:40:31 +0300 Subject: [PATCH] QPIConfig file write fix --- libs/graphic/graphic.cpp | 15 +++++++++++---- libs/graphic/graphic_conf.h | 1 + libs/utils/qpiconfig.cpp | 4 ++++ utils/qpicalculator/mainwindow.ui | 2 +- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/libs/graphic/graphic.cpp b/libs/graphic/graphic.cpp index b8fa775..0149ef5 100644 --- a/libs/graphic/graphic.cpp +++ b/libs/graphic/graphic.cpp @@ -1306,6 +1306,7 @@ void Graphic::drawGraphics() { lod = qBound(0, qFloor(log2(ppp) - 1), src_lod.size()); //qDebug() << "draw lod" << lod << src_lod[lod - 1].size(); } + t.last_lod = lod; QPolygonF & rpol(lod == 0 ? src_pol : src_lod[lod - 1]); int ind_start = -1, ind_end = -1; if (m_LODOptimization) { @@ -1393,8 +1394,11 @@ void Graphic::drawGuides() { str = pointCoords(rpos) + fp_size; auto trace_axis_func = [&](bool on_x, double cursor) { if (curTrace >= 0 && curTrace < graphics.size()) { - if (graphics[curTrace].visible) { - QPolygonF & pol(pause_ ? graphics[curTrace].polyline_pause : graphics[curTrace].polyline); + auto & t(graphics[curTrace]); + if (t.visible) { + QPolygonF & src_pol(pause_ ? t.polyline_pause : t.polyline); + QVector & src_lod(pause_ ? t._lod_pause : t._lod); + QPolygonF & pol(t.last_lod == 0 ? src_pol : src_lod[t.last_lod - 1]); double min_dist = -1, dist = 0.; int index = -1; for (int i = 0; i < pol.size(); ++i) { @@ -1419,8 +1423,11 @@ void Graphic::drawGuides() { int gr = -1, mag_dist = fontHeight(this) * 2; QPointF point, scale = getScale(), dp; for (int g = 0; g < graphics.size(); ++g) { - if (graphics[g].visible) { - QPolygonF & pol(pause_ ? graphics[g].polyline_pause : graphics[g].polyline); + auto & t(graphics[g]); + if (t.visible) { + QPolygonF & src_pol(pause_ ? t.polyline_pause : t.polyline); + QVector & src_lod(pause_ ? t._lod_pause : t._lod); + QPolygonF & pol(t.last_lod == 0 ? src_pol : src_lod[t.last_lod - 1]); double dist = 0.; for (int i = 0; i < pol.size(); ++i) { point = pol[i]; diff --git a/libs/graphic/graphic_conf.h b/libs/graphic/graphic_conf.h index b0014d6..0ad78d9 100644 --- a/libs/graphic/graphic_conf.h +++ b/libs/graphic/graphic_conf.h @@ -68,6 +68,7 @@ struct QAD_GRAPHIC_EXPORT GraphicType { QIcon icon; bool visible; QRectF cvrect; + int last_lod = 0; }; diff --git a/libs/utils/qpiconfig.cpp b/libs/utils/qpiconfig.cpp index a6d3f80..486784f 100644 --- a/libs/utils/qpiconfig.cpp +++ b/libs/utils/qpiconfig.cpp @@ -606,6 +606,10 @@ void QPIConfig::writeAll() { stream.setString(buffer); buffer->clear(); } +#if QT_VERSION_MAJOR <= 5 + if (!codec.isEmpty()) + stream.setCodec(codec.toLatin1().data()); +#endif stream.seek(0); buildFullNames(&root); Branch b = allLeaves(); diff --git a/utils/qpicalculator/mainwindow.ui b/utils/qpicalculator/mainwindow.ui index b3e0c6c..5cf135c 100644 --- a/utils/qpicalculator/mainwindow.ui +++ b/utils/qpicalculator/mainwindow.ui @@ -337,7 +337,7 @@ - Graphic::BorderInputs|Graphic::Configure|Graphic::CursorAxis|Graphic::Fullscreen|Graphic::Grid|Graphic::Save + Graphic::BorderInputs|Graphic::Configure|Graphic::CursorAxis|Graphic::Export|Graphic::Fullscreen|Graphic::Grid|Graphic::Save true