From 7ce0a0bf0ea7ea08e3a73da2a807b8a9d66bd375 Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Wed, 19 Nov 2025 23:43:52 +0000 Subject: [PATCH 01/13] [Gui] Fix incorrect document name when updating PropertyLink --- src/Gui/Dialogs/DlgPropertyLink.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Gui/Dialogs/DlgPropertyLink.cpp b/src/Gui/Dialogs/DlgPropertyLink.cpp index 955c4d2b54..4e52e6cf60 100644 --- a/src/Gui/Dialogs/DlgPropertyLink.cpp +++ b/src/Gui/Dialogs/DlgPropertyLink.cpp @@ -745,7 +745,7 @@ void DlgPropertyLink::onSelectionChanged(const Gui::SelectionChanges& msg) ui->treeWidget->scrollToItem(item); if (allowSubObject) { - QString element = QString::fromLatin1(msg.Object.getOldElementName().c_str()); + QString element = QString::fromUtf8(msg.Object.getOldElementName().c_str()); if (element.size()) { QStringList list; QString text = item->text(1); @@ -868,7 +868,7 @@ QString DlgPropertyLink::linksToPython(const QList& links) } if (links.size() == 1) { - return QString::fromLatin1(links.front().getSubObjectPython(false).c_str()); + return QString::fromUtf8(links.front().getSubObjectPython(false).c_str()); } std::ostringstream ss; @@ -891,7 +891,7 @@ QString DlgPropertyLink::linksToPython(const QList& links) ss << ']'; } - return QString::fromLatin1(ss.str().c_str()); + return QString::fromUtf8(ss.str().c_str()); } void DlgPropertyLink::filterObjects() @@ -1114,7 +1114,7 @@ QTreeWidgetItem* DlgPropertyLink::createTypeItem(Base::Type type) item = new QTreeWidgetItem(item); } item->setExpanded(true); - item->setText(0, QString::fromLatin1(type.getName())); + item->setText(0, QString::fromUtf8(type.getName())); if (type == App::DocumentObject::getClassTypeId()) { item->setFlags(Qt::ItemIsEnabled); } @@ -1129,7 +1129,7 @@ bool DlgPropertyLink::filterType(QTreeWidgetItem* item) auto& pitem = typeItems[proxyType]; if (!pitem) { pitem = new QTreeWidgetItem(ui->typeTree); - pitem->setText(0, QString::fromLatin1(proxyType)); + pitem->setText(0, QString::fromUtf8(proxyType)); pitem->setIcon(0, item->icon(0)); pitem->setData(0, Qt::UserRole, proxyType); } From b7fb8ed4bfa186ad04b7da24a178de71f6e73575 Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Thu, 20 Nov 2025 16:28:04 +0000 Subject: [PATCH 02/13] [Gui] Fix string encoding document name and object name --- src/Gui/Tree.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index 96df7570a3..a7569fae8d 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -1357,7 +1357,7 @@ void TreeWidget::onCreateGroup() "App.getDocument(\"%1\").addObject" "(\"App::DocumentObjectGroup\",\"Group\").Label=\"%2\"" ) - .arg(QString::fromLatin1(doc->getName()), name); + .arg(QString::fromUtf8(doc->getName()), name); Gui::Command::runCommand(Gui::Command::App, cmd.toUtf8()); } else if (this->contextItem->type() == ObjectType) { @@ -1369,8 +1369,8 @@ void TreeWidget::onCreateGroup() ".newObject(\"App::DocumentObjectGroup\",\"Group\").Label=\"%3\"" ) .arg( - QString::fromLatin1(doc->getName()), - QString::fromLatin1(obj->getNameInDocument()), + QString::fromUtf8(doc->getName()), + QString::fromUtf8(obj->getNameInDocument()), name ); Gui::Command::runCommand(Gui::Command::App, cmd.toUtf8()); @@ -6689,3 +6689,4 @@ void DocumentObjectItem::applyExpandedSnapshot( } #include "moc_Tree.cpp" + From 799d7bada8463b64829d6ee8f709c9ee9cc16758 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 16:30:43 +0000 Subject: [PATCH 03/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/Gui/Tree.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index a7569fae8d..05a5d5955e 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -6689,4 +6689,3 @@ void DocumentObjectItem::applyExpandedSnapshot( } #include "moc_Tree.cpp" - From 5bcfa0e263c2e75c27cfeef90cd51089b3210808 Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Thu, 20 Nov 2025 18:37:50 +0000 Subject: [PATCH 04/13] [Gui] Fix string encoding for document name --- src/Gui/ExpressionCompleter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Gui/ExpressionCompleter.cpp b/src/Gui/ExpressionCompleter.cpp index 59c53db1c8..36afce5566 100644 --- a/src/Gui/ExpressionCompleter.cpp +++ b/src/Gui/ExpressionCompleter.cpp @@ -413,7 +413,7 @@ public: res = QString::fromUtf8(quote(doc->Label.getStrValue()).c_str()); } else { - res = QString::fromLatin1(doc->getName()); + res = QString::fromUtf8(doc->getName()); } if (sep) { res += QLatin1Char('#'); From b3a7c4077aaebd9ed0ee1c01ce673dff833da218 Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Thu, 20 Nov 2025 19:02:25 +0000 Subject: [PATCH 05/13] [PartDesign] Fix string encoding for document name and face reference --- src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp index 5a32d5cb46..96f63bb781 100644 --- a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp @@ -77,11 +77,11 @@ const QString TaskSketchBasedParameters::onAddSelection( // Remove subname for planes and datum features if (PartDesign::Feature::isDatum(selObj)) { subname = ""; - refStr = QString::fromLatin1(selObj->getNameInDocument()); + refStr = QString::fromUtf8(selObj->getNameInDocument()); } else if (subname.size() > 4) { int faceId = std::atoi(&subname[4]); - refStr = QString::fromLatin1(selObj->getNameInDocument()) + QStringLiteral(":") + refStr = QString::fromUtf8(selObj->getNameInDocument()) + QStringLiteral(":") + QObject::tr("Face") + QString::number(faceId); } @@ -249,8 +249,8 @@ QString TaskSketchBasedParameters::getFaceReference(const QString& obj, const QS return {}; } - return QString::fromLatin1(R"((App.getDocument("%1").%2, ["%3"]))") - .arg(QString::fromLatin1(doc->getName()), o, sub); + return QString::fromUtf8(R"((App.getDocument("%1").%2, ["%3"]))") + .arg(QString::fromUtf8(doc->getName()), o, sub); } QString TaskSketchBasedParameters::make2DLabel( @@ -339,3 +339,4 @@ bool TaskDlgSketchBasedParameters::reject() } #include "moc_TaskSketchBasedParameters.cpp" + From 15c4db70246b7f10732147482893947e70bacaa3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 19:04:24 +0000 Subject: [PATCH 06/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp index 96f63bb781..20dd30a614 100644 --- a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp @@ -339,4 +339,3 @@ bool TaskDlgSketchBasedParameters::reject() } #include "moc_TaskSketchBasedParameters.cpp" - From bb0ed0b90d2c17158c4355bd73c58c8abd82bfbb Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Thu, 20 Nov 2025 19:19:45 +0000 Subject: [PATCH 07/13] [Gui] Fix string encoding for document, object and subojects --- src/Gui/Selection/SelectionView.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/Gui/Selection/SelectionView.cpp b/src/Gui/Selection/SelectionView.cpp index a76da44341..af5e737172 100644 --- a/src/Gui/Selection/SelectionView.cpp +++ b/src/Gui/Selection/SelectionView.cpp @@ -298,8 +298,8 @@ void SelectionView::search(const QString& text) QString selObject; QTextStream str(&selObject); QStringList list; - list << QString::fromLatin1(doc->getName()); - list << QString::fromLatin1(it->getNameInDocument()); + list << QString::fromUtf8(doc->getName()); + list << QString::fromUtf8(it->getNameInDocument()); // build name str << QString::fromUtf8(doc->Label.getValue()); str << "#"; @@ -414,9 +414,9 @@ void SelectionView::toggleSelect(QListWidgetItem* item) "App.getDocument('%1').getObject('%2'),'%3')" ) .arg( - QString::fromLatin1(docname), - QString::fromLatin1(objname), - QString::fromLatin1(subname) + QString::fromUtf8(docname), + QString::fromUtf8(objname), + QString::fromUtf8(subname) ); } else { @@ -425,9 +425,9 @@ void SelectionView::toggleSelect(QListWidgetItem* item) "App.getDocument('%1').getObject('%2'),'%3',%4,%5,%6)" ) .arg( - QString::fromLatin1(docname), - QString::fromLatin1(objname), - QString::fromLatin1(subname) + QString::fromUtf8(docname), + QString::fromUtf8(objname), + QString::fromUtf8(subname) ) .arg(x) .arg(y) @@ -472,9 +472,9 @@ void SelectionView::preselect(QListWidgetItem* item) "App.getDocument('%1').getObject('%2'),'%3',tp=2)" ) .arg( - QString::fromLatin1(docname), - QString::fromLatin1(objname), - QString::fromLatin1(subname) + QString::fromUtf8(docname), + QString::fromUtf8(objname), + QString::fromUtf8(subname) ); try { Gui::Command::runCommand(Gui::Command::Gui, cmd.toLatin1()); @@ -1203,3 +1203,4 @@ void SelectionMenu::createGroupedMenu( } #include "moc_SelectionView.cpp" + From db69367544b02922efc4894481acd657cd8f07b2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 19:22:06 +0000 Subject: [PATCH 08/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/Gui/Selection/SelectionView.cpp | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/Gui/Selection/SelectionView.cpp b/src/Gui/Selection/SelectionView.cpp index af5e737172..822e8d11f1 100644 --- a/src/Gui/Selection/SelectionView.cpp +++ b/src/Gui/Selection/SelectionView.cpp @@ -424,11 +424,7 @@ void SelectionView::toggleSelect(QListWidgetItem* item) "Gui.Selection.addSelection(" "App.getDocument('%1').getObject('%2'),'%3',%4,%5,%6)" ) - .arg( - QString::fromUtf8(docname), - QString::fromUtf8(objname), - QString::fromUtf8(subname) - ) + .arg(QString::fromUtf8(docname), QString::fromUtf8(objname), QString::fromUtf8(subname)) .arg(x) .arg(y) .arg(z); @@ -467,15 +463,12 @@ void SelectionView::preselect(QListWidgetItem* item) *end = 0; } } - QString cmd = QStringLiteral( - "Gui.Selection.setPreselection(" - "App.getDocument('%1').getObject('%2'),'%3',tp=2)" - ) - .arg( - QString::fromUtf8(docname), - QString::fromUtf8(objname), - QString::fromUtf8(subname) - ); + QString cmd + = QStringLiteral( + "Gui.Selection.setPreselection(" + "App.getDocument('%1').getObject('%2'),'%3',tp=2)" + ) + .arg(QString::fromUtf8(docname), QString::fromUtf8(objname), QString::fromUtf8(subname)); try { Gui::Command::runCommand(Gui::Command::Gui, cmd.toLatin1()); } @@ -1203,4 +1196,3 @@ void SelectionMenu::createGroupedMenu( } #include "moc_SelectionView.cpp" - From cb9f7a2f34d779ccb257efd74ea873b95dc54e04 Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Thu, 20 Nov 2025 19:52:12 +0000 Subject: [PATCH 09/13] [Gui] Fix string encoding for preselect, select and deselect --- src/Gui/Selection/SelectionView.cpp | 83 ++++++++++++++++------------- 1 file changed, 45 insertions(+), 38 deletions(-) diff --git a/src/Gui/Selection/SelectionView.cpp b/src/Gui/Selection/SelectionView.cpp index 822e8d11f1..bf8cb02280 100644 --- a/src/Gui/Selection/SelectionView.cpp +++ b/src/Gui/Selection/SelectionView.cpp @@ -193,8 +193,8 @@ void SelectionView::onSelectionChanged(const SelectionChanges& Reason) if (Reason.Type == SelectionChanges::AddSelection) { // save as user data QStringList list; - list << QString::fromLatin1(Reason.pDocName); - list << QString::fromLatin1(Reason.pObjectName); + list << QString::fromUtf8(Reason.pDocName); + list << QString::fromUtf8(Reason.pObjectName); App::Document* doc = App::GetApplication().getDocument(Reason.pDocName); App::DocumentObject* obj = doc->getObject(Reason.pObjectName); getSelectionName(str, Reason.pDocName, Reason.pObjectName, Reason.pSubName, obj); @@ -237,8 +237,8 @@ void SelectionView::onSelectionChanged(const SelectionChanges& Reason) for (const auto& it : objs) { // save as user data QStringList list; - list << QString::fromLatin1(it.DocName); - list << QString::fromLatin1(it.FeatName); + list << QString::fromUtf8(it.DocName); + list << QString::fromUtf8(it.FeatName); App::Document* doc = App::GetApplication().getDocument(it.DocName); App::DocumentObject* obj = doc->getObject(it.FeatName); @@ -346,11 +346,11 @@ void SelectionView::select(QListWidgetItem* item) // Gui::Selection().clearSelection(); Gui::Command::runCommand(Gui::Command::Gui, "Gui.Selection.clearSelection()"); // Gui::Selection().addSelection(elements[0].toLatin1(),elements[1].toLatin1(),0); - QString cmd = QStringLiteral( + QString cmd = QString::fromUtf8( R"(Gui.Selection.addSelection(App.getDocument("%1").getObject("%2")))" ) .arg(elements[0], elements[1]); - Gui::Command::runCommand(Gui::Command::Gui, cmd.toLatin1()); + Gui::Command::runCommand(Gui::Command::Gui, cmd.toUtf8()); } catch (Base::Exception& e) { e.reportException(); @@ -369,12 +369,12 @@ void SelectionView::deselect() } // Gui::Selection().rmvSelection(elements[0].toLatin1(),elements[1].toLatin1(),0); - QString cmd = QStringLiteral( + QString cmd = QString::fromUtf8( R"(Gui.Selection.removeSelection(App.getDocument("%1").getObject("%2")))" ) .arg(elements[0], elements[1]); try { - Gui::Command::runCommand(Gui::Command::Gui, cmd.toLatin1()); + Gui::Command::runCommand(Gui::Command::Gui, cmd.toUtf8()); } catch (Base::Exception& e) { e.reportException(); @@ -386,7 +386,7 @@ void SelectionView::toggleSelect(QListWidgetItem* item) if (!item) { return; } - std::string name = item->text().toLatin1().constData(); + std::string name = item->text().toUtf8().constData(); char* docname = &name.at(0); char* objname = std::strchr(docname, '#'); if (!objname) { @@ -409,7 +409,7 @@ void SelectionView::toggleSelect(QListWidgetItem* item) } QString cmd; if (Gui::Selection().isSelected(docname, objname, subname)) { - cmd = QStringLiteral( + cmd = QString::fromUtf8( "Gui.Selection.removeSelection(" "App.getDocument('%1').getObject('%2'),'%3')" ) @@ -420,17 +420,21 @@ void SelectionView::toggleSelect(QListWidgetItem* item) ); } else { - cmd = QStringLiteral( + cmd = QString::fromUtf8( "Gui.Selection.addSelection(" "App.getDocument('%1').getObject('%2'),'%3',%4,%5,%6)" ) - .arg(QString::fromUtf8(docname), QString::fromUtf8(objname), QString::fromUtf8(subname)) + .arg( + QString::fromUtf8(docname), + QString::fromUtf8(objname), + QString::fromUtf8(subname) + ) .arg(x) .arg(y) .arg(z); } try { - Gui::Command::runCommand(Gui::Command::Gui, cmd.toLatin1()); + Gui::Command::runCommand(Gui::Command::Gui, cmd.toUtf8()); } catch (Base::Exception& e) { e.reportException(); @@ -442,7 +446,7 @@ void SelectionView::preselect(QListWidgetItem* item) if (!item) { return; } - std::string name = item->text().toLatin1().constData(); + std::string name = item->text().toUtf8().constData(); char* docname = &name.at(0); char* objname = std::strchr(docname, '#'); if (!objname) { @@ -463,14 +467,17 @@ void SelectionView::preselect(QListWidgetItem* item) *end = 0; } } - QString cmd - = QStringLiteral( - "Gui.Selection.setPreselection(" - "App.getDocument('%1').getObject('%2'),'%3',tp=2)" - ) - .arg(QString::fromUtf8(docname), QString::fromUtf8(objname), QString::fromUtf8(subname)); + QString cmd = QString::fromUtf8( + "Gui.Selection.setPreselection(" + "App.getDocument('%1').getObject('%2'),'%3',tp=2)" + ) + .arg( + QString::fromUtf8(docname), + QString::fromUtf8(objname), + QString::fromUtf8(subname) + ); try { - Gui::Command::runCommand(Gui::Command::Gui, cmd.toLatin1()); + Gui::Command::runCommand(Gui::Command::Gui, cmd.toUtf8()); } catch (Base::Exception& e) { e.reportException(); @@ -509,10 +516,10 @@ void SelectionView::touch() if (elements.size() < 2) { return; } - QString cmd = QStringLiteral(R"(App.getDocument("%1").getObject("%2").touch())") + QString cmd = QString::fromUtf8(R"(App.getDocument("%1").getObject("%2").touch())") .arg(elements[0], elements[1]); try { - Gui::Command::runCommand(Gui::Command::Doc, cmd.toLatin1()); + Gui::Command::runCommand(Gui::Command::Doc, cmd.toUtf8()); } catch (Base::Exception& e) { e.reportException(); @@ -531,22 +538,22 @@ void SelectionView::toPython() } try { - QString cmd = QStringLiteral(R"(obj = App.getDocument("%1").getObject("%2"))") + QString cmd = QString::fromUtf8(R"(obj = App.getDocument("%1").getObject("%2"))") .arg(elements[0], elements[1]); - Gui::Command::runCommand(Gui::Command::Gui, cmd.toLatin1()); + Gui::Command::runCommand(Gui::Command::Gui, cmd.toUtf8()); if (elements.length() > 2) { - App::Document* doc = App::GetApplication().getDocument(elements[0].toLatin1()); - App::DocumentObject* obj = doc->getObject(elements[1].toLatin1()); + App::Document* doc = App::GetApplication().getDocument(elements[0].toUtf8()); + App::DocumentObject* obj = doc->getObject(elements[1].toUtf8()); QString property = getProperty(obj); - cmd = QStringLiteral(R"(shp = App.getDocument("%1").getObject("%2").%3)") + cmd = QString::fromUtf8(R"(shp = App.getDocument("%1").getObject("%2").%3)") .arg(elements[0], elements[1], property); - Gui::Command::runCommand(Gui::Command::Gui, cmd.toLatin1()); + Gui::Command::runCommand(Gui::Command::Gui, cmd.toUtf8()); if (supportPart(obj, elements[2])) { - cmd = QStringLiteral(R"(elt = App.getDocument("%1").getObject("%2").%3.%4)") + cmd = QString::fromUtf8(R"(elt = App.getDocument("%1").getObject("%2").%3.%4)") .arg(elements[0], elements[1], property, elements[2]); - Gui::Command::runCommand(Gui::Command::Gui, cmd.toLatin1()); + Gui::Command::runCommand(Gui::Command::Gui, cmd.toUtf8()); } } } @@ -563,16 +570,16 @@ void SelectionView::showPart() } QStringList elements = item->data(Qt::UserRole).toStringList(); if (elements.length() > 2) { - App::Document* doc = App::GetApplication().getDocument(elements[0].toLatin1()); - App::DocumentObject* obj = doc->getObject(elements[1].toLatin1()); + App::Document* doc = App::GetApplication().getDocument(elements[0].toUtf8()); + App::DocumentObject* obj = doc->getObject(elements[1].toUtf8()); QString module = getModule(obj->getTypeId().getName()); QString property = getProperty(obj); if (!module.isEmpty() && !property.isEmpty() && supportPart(obj, elements[2])) { try { - Gui::Command::addModule(Gui::Command::Gui, module.toLatin1()); - QString cmd = QStringLiteral(R"(%1.show(App.getDocument("%2").getObject("%3").%4.%5))") + Gui::Command::addModule(Gui::Command::Gui, module.toUtf8()); + QString cmd = QString::fromUtf8(R"(%1.show(App.getDocument("%2").getObject("%3").%4.%5))") .arg(module, elements[0], elements[1], property, elements[2]); - Gui::Command::runCommand(Gui::Command::Gui, cmd.toLatin1()); + Gui::Command::runCommand(Gui::Command::Gui, cmd.toUtf8()); } catch (const Base::Exception& e) { e.reportException(); @@ -616,7 +623,7 @@ QString SelectionView::getProperty(App::DocumentObject* obj) const const App::PropertyComplexGeoData* data = geo->getPropertyOfGeometry(); const char* name = data ? data->getName() : nullptr; if (App::Property::isValidName(name)) { - property = QString::fromLatin1(name); + property = QString::fromUtf8(name); } } @@ -632,7 +639,7 @@ bool SelectionView::supportPart(App::DocumentObject* obj, const QString& part) c const Data::ComplexGeoData* geometry = data->getComplexData(); std::vector types = geometry->getElementTypes(); for (auto it : types) { - if (part.startsWith(QString::fromLatin1(it))) { + if (part.startsWith(QString::fromUtf8(it))) { return true; } } From 1197dc5cae4721dac8baf660e5e03d1653f5fc4d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 19:55:02 +0000 Subject: [PATCH 10/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/Gui/Selection/SelectionView.cpp | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/Gui/Selection/SelectionView.cpp b/src/Gui/Selection/SelectionView.cpp index bf8cb02280..65c8662c25 100644 --- a/src/Gui/Selection/SelectionView.cpp +++ b/src/Gui/Selection/SelectionView.cpp @@ -424,11 +424,7 @@ void SelectionView::toggleSelect(QListWidgetItem* item) "Gui.Selection.addSelection(" "App.getDocument('%1').getObject('%2'),'%3',%4,%5,%6)" ) - .arg( - QString::fromUtf8(docname), - QString::fromUtf8(objname), - QString::fromUtf8(subname) - ) + .arg(QString::fromUtf8(docname), QString::fromUtf8(objname), QString::fromUtf8(subname)) .arg(x) .arg(y) .arg(z); @@ -467,15 +463,12 @@ void SelectionView::preselect(QListWidgetItem* item) *end = 0; } } - QString cmd = QString::fromUtf8( - "Gui.Selection.setPreselection(" - "App.getDocument('%1').getObject('%2'),'%3',tp=2)" - ) - .arg( - QString::fromUtf8(docname), - QString::fromUtf8(objname), - QString::fromUtf8(subname) - ); + QString cmd + = QString::fromUtf8( + "Gui.Selection.setPreselection(" + "App.getDocument('%1').getObject('%2'),'%3',tp=2)" + ) + .arg(QString::fromUtf8(docname), QString::fromUtf8(objname), QString::fromUtf8(subname)); try { Gui::Command::runCommand(Gui::Command::Gui, cmd.toUtf8()); } @@ -577,7 +570,9 @@ void SelectionView::showPart() if (!module.isEmpty() && !property.isEmpty() && supportPart(obj, elements[2])) { try { Gui::Command::addModule(Gui::Command::Gui, module.toUtf8()); - QString cmd = QString::fromUtf8(R"(%1.show(App.getDocument("%2").getObject("%3").%4.%5))") + QString cmd = QString::fromUtf8( + R"(%1.show(App.getDocument("%2").getObject("%3").%4.%5))" + ) .arg(module, elements[0], elements[1], property, elements[2]); Gui::Command::runCommand(Gui::Command::Gui, cmd.toUtf8()); } From 48ed5b7f375c6cb4f883fddf827b470b07251594 Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Thu, 20 Nov 2025 20:02:21 +0000 Subject: [PATCH 11/13] [Gui] Fix string encoding for document name --- src/Gui/Document.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Gui/Document.cpp b/src/Gui/Document.cpp index d8692b824b..a9723a3e4d 100644 --- a/src/Gui/Document.cpp +++ b/src/Gui/Document.cpp @@ -1414,11 +1414,11 @@ static bool checkCanonicalPath(const std::map& docs) auto docName = [](App::Document* doc) -> QString { if (doc->Label.getStrValue() == doc->getName()) { - return QString::fromLatin1(doc->getName()); + return QString::fromUtf8(doc->getName()); } return QStringLiteral("%1 (%2)").arg( QString::fromUtf8(doc->Label.getValue()), - QString::fromLatin1(doc->getName()) + QString::fromUtf8(doc->getName()) ); }; int count = 0; From 475f3a2dbdad92302e75697193ea789ecbe6975c Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Thu, 20 Nov 2025 20:04:48 +0000 Subject: [PATCH 12/13] [Part] Fix string encoding for document name and object name --- src/Mod/Part/Gui/DlgPrimitives.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Mod/Part/Gui/DlgPrimitives.cpp b/src/Mod/Part/Gui/DlgPrimitives.cpp index 5cc05f85d5..59266aa92d 100644 --- a/src/Mod/Part/Gui/DlgPrimitives.cpp +++ b/src/Mod/Part/Gui/DlgPrimitives.cpp @@ -72,7 +72,7 @@ QString getAutoGroupCommandStr(QString objectName) "part" ); if (activePart) { - QString activeObjectName = QString::fromLatin1(activePart->getNameInDocument()); + QString activeObjectName = QString::fromUtf8(activePart->getNameInDocument()); return QStringLiteral( "App.ActiveDocument.getObject('%1\')." "addObject(App.ActiveDocument.getObject('%2\'))\n" @@ -131,7 +131,7 @@ void Picker::createPrimitive(QWidget* widget, const QString& descr, Gui::Documen // Execute the Python block doc->openCommand(descr.toUtf8()); - Gui::Command::runCommand(Gui::Command::Doc, cmd.toLatin1()); + Gui::Command::runCommand(Gui::Command::Doc, cmd.toUtf8()); doc->commitCommand(); Gui::Command::runCommand(Gui::Command::Doc, "App.ActiveDocument.recompute()"); Gui::Command::runCommand(Gui::Command::Gui, "Gui.SendMsgToActiveView(\"ViewFit\")"); @@ -189,7 +189,7 @@ public: Handle(Geom_TrimmedCurve) trim = arc.Value(); Handle(Geom_Circle) circle = Handle(Geom_Circle)::DownCast(trim->BasisCurve()); - QString name = QString::fromLatin1(doc->getUniqueObjectName("Circle").c_str()); + QString name = QString::fromUtf8(doc->getUniqueObjectName("Circle").c_str()); return QStringLiteral( "App.ActiveDocument.addObject(\"Part::Circle\",\"%1\")\n" "App.ActiveDocument.%1.Radius=%2\n" @@ -2301,7 +2301,7 @@ void DlgPrimitives::tryCreatePrimitive(const QString& placement) } std::shared_ptr primitive = getPrimitive(ui->PrimitiveTypeCB->currentIndex()); - name = QString::fromLatin1(doc->getUniqueObjectName(primitive->getDefaultName()).c_str()); + name = QString::fromUtf8(doc->getUniqueObjectName(primitive->getDefaultName()).c_str()); cmd = primitive->create(name, placement); // Execute the Python block @@ -2340,8 +2340,8 @@ void DlgPrimitives::acceptChanges(const QString& placement) App::Document* doc = featurePtr->getDocument(); QString objectName = QStringLiteral("App.getDocument(\"%1\").%2") .arg( - QString::fromLatin1(doc->getName()), - QString::fromLatin1(featurePtr->getNameInDocument()) + QString::fromUtf8(doc->getName()), + QString::fromUtf8(featurePtr->getNameInDocument()) ); // read values from the properties From 37a0065d6dbd5dc3992423760aaf9cc3690b8041 Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Thu, 20 Nov 2025 21:37:05 +0000 Subject: [PATCH 13/13] [Gui] Fix string coding on selection changed --- src/Gui/Selection/SelectionView.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Gui/Selection/SelectionView.cpp b/src/Gui/Selection/SelectionView.cpp index 65c8662c25..97e7c3e722 100644 --- a/src/Gui/Selection/SelectionView.cpp +++ b/src/Gui/Selection/SelectionView.cpp @@ -162,9 +162,9 @@ void SelectionView::onSelectionChanged(const SelectionChanges& Reason) const char* objName, const char* subName, App::DocumentObject* obj) { - str << docName; + str << QString::fromUtf8(docName); str << "#"; - str << objName; + str << QString::fromUtf8(objName); if (subName != 0 && subName[0] != 0) { str << "."; /* Original code doesn't take account of histories in subelement names and displays