From 7d8df6cd5501ce7d3023d183da9f88d91dfd672d Mon Sep 17 00:00:00 2001 From: wandererfan Date: Thu, 4 Jul 2024 19:35:44 -0400 Subject: [PATCH] [TD]fix default line width on empty config --- .../Gui/DlgPrefsTechDrawAnnotationImp.cpp | 24 +++++++------------ src/Mod/TechDraw/Gui/DrawGuiUtil.cpp | 18 ++++++++++++++ src/Mod/TechDraw/Gui/DrawGuiUtil.h | 1 + 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawAnnotationImp.cpp b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawAnnotationImp.cpp index ff4a43e974..32ed5fb8d0 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawAnnotationImp.cpp +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawAnnotationImp.cpp @@ -100,7 +100,9 @@ void DlgPrefsTechDrawAnnotationImp::saveSettings() // don't save invalid parameter values // the comboboxes are properly loaded. - ui->pcbLineGroup->onSave(); + if (ui->pcbLineGroup->currentIndex() >= 0) { + ui->pcbLineGroup->onSave(); + } if (ui->pcbLineStandard->currentIndex() >= 0) { ui->pcbLineStandard->onSave(); } @@ -134,27 +136,13 @@ void DlgPrefsTechDrawAnnotationImp::loadSettings() // QAbstractSpinBox double kinkDefault = 5.0; ui->pdsbBalloonKink->setValue(kinkDefault); - // re-read the available LineGroup files - ui->pcbLineGroup->clear(); - std::string lgFileName = Preferences::lineGroupFile(); - std::string lgRecord = LineGroup::getGroupNamesFromFile(lgFileName); - // split collected groups - std::stringstream ss(lgRecord); - std::vector lgNames; - while (std::getline(ss, lgRecord, ',')) { - lgNames.push_back(lgRecord); - } - // fill the combobox with the found names - for (auto it = lgNames.begin(); it < lgNames.end(); ++it) { - ui->pcbLineGroup->addItem(tr((*it).c_str())); - } ui->cbAutoHoriz->onRestore(); ui->cbPrintCenterMarks->onRestore(); ui->cbPyramidOrtho->onRestore(); ui->cbComplexMarks->onRestore(); ui->cbShowCenterMarks->onRestore(); - ui->pcbLineGroup->onRestore(); + ui->pdsbBalloonKink->onRestore(); ui->cbCutSurface->onRestore(); ui->pcbDetailMatting->onRestore(); @@ -163,6 +151,10 @@ void DlgPrefsTechDrawAnnotationImp::loadSettings() ui->cb_ShowSectionLine->onRestore(); ui->cb_IncludeCutLine->onRestore(); + ui->pcbLineGroup->onRestore(); + DrawGuiUtil::loadLineGroupChoices(ui->pcbLineGroup); + ui->pcbLineGroup->setCurrentIndex(Preferences::lineGroup()); + ui->pcbMatting->onRestore(); DrawGuiUtil::loadMattingStyleBox(ui->pcbMatting); ui->pcbMatting->setCurrentIndex(prefMattingStyle()); diff --git a/src/Mod/TechDraw/Gui/DrawGuiUtil.cpp b/src/Mod/TechDraw/Gui/DrawGuiUtil.cpp index f54cea0d79..75a57d9f73 100644 --- a/src/Mod/TechDraw/Gui/DrawGuiUtil.cpp +++ b/src/Mod/TechDraw/Gui/DrawGuiUtil.cpp @@ -68,6 +68,7 @@ #include #include #include +#include #include #include "DlgPageChooser.h" @@ -190,6 +191,23 @@ void DrawGuiUtil::loadLineStyleChoices(QComboBox* combo, LineGenerator* generato } } +void DrawGuiUtil::loadLineGroupChoices(QComboBox* combo) +{ + combo->clear(); + std::string lgFileName = Preferences::lineGroupFile(); + std::string lgRecord = LineGroup::getGroupNamesFromFile(lgFileName); + // split collected groups + std::stringstream ss(lgRecord); + std::vector lgNames; + while (std::getline(ss, lgRecord, ',')) { + lgNames.push_back(Base::Tools::fromStdString(lgRecord)); + } + // fill the combobox with the found names + for (auto& name : lgNames) { + combo->addItem(name); + } +} + //! make an icon that shows a sample of lineNumber in the current line standard QIcon DrawGuiUtil::iconForLine(size_t lineNumber, diff --git a/src/Mod/TechDraw/Gui/DrawGuiUtil.h b/src/Mod/TechDraw/Gui/DrawGuiUtil.h index ffd6fc0783..d5b3fc2c02 100644 --- a/src/Mod/TechDraw/Gui/DrawGuiUtil.h +++ b/src/Mod/TechDraw/Gui/DrawGuiUtil.h @@ -76,6 +76,7 @@ class TechDrawGuiExport DrawGuiUtil { static void loadLineStandardsChoices(QComboBox* combo); static void loadLineStyleChoices(QComboBox* combo, TechDraw::LineGenerator* generator = nullptr); + static void loadLineGroupChoices(QComboBox* combo); static QIcon iconForLine(size_t lineNumber, TechDraw::LineGenerator* generator); static double roundToDigits(double original, int digits);