diff --git a/src/App/MetadataPy.xml b/src/App/MetadataPy.xml index be05c18aea..0d31aca4b9 100644 --- a/src/App/MetadataPy.xml +++ b/src/App/MetadataPy.xml @@ -53,6 +53,12 @@ bytes : bytes\n Python bytes-like object. + + + String representing the type of this item (text only, no markup allowed). + + + String representing the description of this item (text only, no markup allowed). diff --git a/src/App/MetadataPyImp.cpp b/src/App/MetadataPyImp.cpp index d3708ada85..9ad1fd79ad 100644 --- a/src/App/MetadataPyImp.cpp +++ b/src/App/MetadataPyImp.cpp @@ -192,6 +192,19 @@ void MetadataPy::setDescription(Py::Object args) getMetadataPtr()->setDescription(description); } +Py::Object MetadataPy::getType() const +{ + return Py::String(getMetadataPtr()->type()); +} + +void MetadataPy::setType(Py::Object args) +{ + const char *type = nullptr; + if (!PyArg_Parse(args.ptr(), "s", &type)) + throw Py::Exception(); + getMetadataPtr()->setType(type); +} + Py::Object MetadataPy::getMaintainer() const { auto maintainers = getMetadataPtr()->maintainer(); diff --git a/src/Mod/AddonManager/addonmanager_metadata.py b/src/Mod/AddonManager/addonmanager_metadata.py index 6a72e6d47b..115f5f29fe 100644 --- a/src/Mod/AddonManager/addonmanager_metadata.py +++ b/src/Mod/AddonManager/addonmanager_metadata.py @@ -196,6 +196,7 @@ class Metadata: version: Version = None date: str = "" description: str = "" + type: str = "" maintainer: List[Contact] = field(default_factory=list) license: List[License] = field(default_factory=list) url: List[Url] = field(default_factory=list) @@ -269,7 +270,7 @@ class MetadataReader: metadata object.""" tag = child.tag[len(namespace) :] - if tag in ["name", "date", "description", "icon", "classname", "subdirectory"]: + if tag in ["name", "date", "description", "type", "icon", "classname", "subdirectory"]: # Text-only elements metadata.__dict__[tag] = child.text elif tag in ["version", "freecadmin", "freecadmax", "pythonmin"]: