From 4fb4eaa31cc2256de7db94f9233ced59987f88d9 Mon Sep 17 00:00:00 2001 From: Pieter Hijma Date: Tue, 4 Nov 2025 16:17:00 +0100 Subject: [PATCH] Gui: Fix supporting xlinks in add property dialog --- src/Gui/Dialogs/DlgAddProperty.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Gui/Dialogs/DlgAddProperty.cpp b/src/Gui/Dialogs/DlgAddProperty.cpp index cabf0455ff..79b6bc61f0 100644 --- a/src/Gui/Dialogs/DlgAddProperty.cpp +++ b/src/Gui/Dialogs/DlgAddProperty.cpp @@ -27,6 +27,7 @@ # include # include #include +#include #include #include @@ -417,6 +418,10 @@ bool DlgAddProperty::isTypeWithEditor(const Base::Type& type) App::PropertyLinkSub::getClassTypeId(), App::PropertyLinkList::getClassTypeId(), App::PropertyLinkSubList::getClassTypeId(), + App::PropertyXLink::getClassTypeId(), + App::PropertyXLinkSub::getClassTypeId(), + App::PropertyXLinkList::getClassTypeId(), + App::PropertyXLinkSubList::getClassTypeId(), App::PropertyMaterialList::getClassTypeId(), App::PropertyPath::getClassTypeId(), App::PropertyString::getClassTypeId(), @@ -634,9 +639,16 @@ bool DlgAddProperty::isEnumPropertyItem() const bool DlgAddProperty::isSubLinkPropertyItem() const { - const QString& type = ui->comboBoxType->currentText(); - return type == QString::fromLatin1(App::PropertyLinkSub::getClassTypeId().getName()) || - type == QString::fromLatin1(App::PropertyLinkSubList::getClassTypeId().getName()); + const QString type = ui->comboBoxType->currentText(); + static const std::array sublinkTypes = { + App::PropertyLinkSub::getClassTypeId().getName(), + App::PropertyLinkSubList::getClassTypeId().getName(), + App::PropertyXLinkSub::getClassTypeId().getName(), + App::PropertyXLinkSubList::getClassTypeId().getName() + }; + return std::ranges::any_of(sublinkTypes, [&type](const char* subLinkType) { + return type == QString::fromLatin1(subLinkType); + }); } QVariant DlgAddProperty::getEditorData() const