From 5ea732ef3cad27d573e80354632c2032e94e6724 Mon Sep 17 00:00:00 2001 From: theo-vt Date: Fri, 20 Mar 2026 02:49:41 -0400 Subject: [PATCH] Merge pull request #28462 from theo-vt/fix_filet_regression Fix filet regression --- src/App/Application.h | 6 +----- src/App/ApplicationPy.cpp | 7 ++++--- src/App/AutoTransaction.cpp | 7 ------- src/Gui/propertyeditor/PropertyEditor.cpp | 2 +- src/Mod/Fem/femtaskpanels/base_fempostpanel.py | 2 +- src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp | 1 - 6 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/App/Application.h b/src/App/Application.h index 9a425a4a57..cb0d742fe1 100644 --- a/src/App/Application.h +++ b/src/App/Application.h @@ -310,11 +310,7 @@ public: * @return The new transaction ID. */ - int setActiveTransaction(TransactionName name); - - /// Return the current global transaction name and ID if such a global transaction is - /// setup (uncommon) - std::string getActiveTransaction(int *tid=nullptr) const; + int setActiveTransaction(TransactionName name); int openGlobalTransaction(TransactionName name); int getGlobalTransaction() const; diff --git a/src/App/ApplicationPy.cpp b/src/App/ApplicationPy.cpp index 36ffbf05ae..38386df76d 100644 --- a/src/App/ApplicationPy.cpp +++ b/src/App/ApplicationPy.cpp @@ -1221,9 +1221,10 @@ PyObject* ApplicationPy::sGetActiveTransaction(PyObject* /*self*/, PyObject* arg PY_TRY { int id = 0; - std::string name = GetApplication().getActiveTransaction(&id); - if (name.empty() || id <= 0) { - Py_Return; + std::string name = ""; + if (Document* doc = GetApplication().getActiveDocument()) { + id = doc->getBookedTransactionID(); + name = GetApplication().getTransactionName(id); } Py::Tuple ret(2); ret.setItem(0, Py::String(name)); diff --git a/src/App/AutoTransaction.cpp b/src/App/AutoTransaction.cpp index e4f09cbdec..1e3f9a16f3 100644 --- a/src/App/AutoTransaction.cpp +++ b/src/App/AutoTransaction.cpp @@ -71,13 +71,6 @@ int Application::setActiveTransaction(TransactionName name) return openGlobalTransaction(name); } -std::string Application::getActiveTransaction(int* id) const -{ - if (id != nullptr) { - *id = _globalTransactionID; - } - return _globalTransactionID != 0 ? getTransactionName(_globalTransactionID) : ""; -} int Application::openGlobalTransaction(TransactionName name) { if (name.name.empty()) { diff --git a/src/Gui/propertyeditor/PropertyEditor.cpp b/src/Gui/propertyeditor/PropertyEditor.cpp index 48a2491259..ad9af037ad 100644 --- a/src/Gui/propertyeditor/PropertyEditor.cpp +++ b/src/Gui/propertyeditor/PropertyEditor.cpp @@ -403,7 +403,7 @@ void PropertyEditor::openEditor(const QModelIndex& index) str << "..."; } transactionID = obj->getDocument()->openTransaction(str.str().c_str()); - FC_LOG("editor transaction " << App::GetApplication().getActiveTransaction(&transactionID)); + FC_LOG("editor transaction " << App::GetApplication().getTransactionName(transactionID)); } void PropertyEditor::onItemActivated(const QModelIndex& index) diff --git a/src/Mod/Fem/femtaskpanels/base_fempostpanel.py b/src/Mod/Fem/femtaskpanels/base_fempostpanel.py index c972921dac..a0ee75201d 100644 --- a/src/Mod/Fem/femtaskpanels/base_fempostpanel.py +++ b/src/Mod/Fem/femtaskpanels/base_fempostpanel.py @@ -64,7 +64,7 @@ class _BasePostTaskPanel(base_femtaskpanel._BaseTaskPanel): def open(self): # open a new transaction if non is open - if not FreeCAD.getActiveTransaction(): + if FreeCAD.ActiveDocument.getBookedTransactionID() == 0: FreeCAD.ActiveDocument.openTransaction( translate("FEM", "Edit {}").format(self.obj.Label) ) diff --git a/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp b/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp index 5c67248544..c09e1a52ca 100644 --- a/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp @@ -217,7 +217,6 @@ bool TaskDlgFeatureParameters::accept() feature->getDocument()->commitTransaction(); } catch (const Base::Exception& e) { - feature->getDocument()->abortTransaction(); QString errorText = QString::fromUtf8(e.what()); QString statusText = QString::fromUtf8(getObject()->getStatusString());