diff --git a/src/App/Document.cpp b/src/App/Document.cpp index 4312724bd..f1cf43b00 100644 --- a/src/App/Document.cpp +++ b/src/App/Document.cpp @@ -927,6 +927,10 @@ Document::Document(void) ADD_PROPERTY_TYPE(Id,(""),0,Prop_None,"ID of the document"); ADD_PROPERTY_TYPE(Uid,(id),0,Prop_ReadOnly,"UUID of the document"); + // license stuff + ADD_PROPERTY_TYPE(License,("CC-BY 3.0"),0,Prop_None,"License string of the Item"); + ADD_PROPERTY_TYPE(LicenseURL,("http://creativecommons.org/licenses/by/3.0/"),0,Prop_None,"URL to the license text/contract"); + // license stuff int licenseId = App::GetApplication().GetParameterGroupByPath ("User parameter:BaseApp/Preferences/Document")->GetInt("prefLicenseType",0); diff --git a/src/Mod/Assembly/App/Item.cpp b/src/Mod/Assembly/App/Item.cpp index 98d339352..548db3575 100644 --- a/src/Mod/Assembly/App/Item.cpp +++ b/src/Mod/Assembly/App/Item.cpp @@ -26,6 +26,7 @@ #endif #include +#include #include "Item.h" #include "ItemPy.h" @@ -40,11 +41,23 @@ PROPERTY_SOURCE_ABSTRACT(Assembly::Item, App::GeoFeature) Item::Item() { - ADD_PROPERTY(Id,(0)); - ADD_PROPERTY(Uid,(0)); - ADD_PROPERTY(Name,(0)); - ADD_PROPERTY(Description,(0)); + ADD_PROPERTY_TYPE(CreatedBy,(""),0,App::Prop_None,"The creator of the Item"); + ADD_PROPERTY_TYPE(CreationDate,(Base::TimeInfo::currentDateTimeString()),0,App::Prop_ReadOnly,"Date of creation"); + ADD_PROPERTY_TYPE(LastModifiedBy,(""),0,App::Prop_None,0); + ADD_PROPERTY_TYPE(LastModifiedDate,("Unknown"),0,App::Prop_ReadOnly,"Date of last modification"); + ADD_PROPERTY_TYPE(Company,(""),0,App::Prop_None,"Additional tag to save the the name of the company"); + ADD_PROPERTY_TYPE(Comment,(""),0,App::Prop_None,"Additional tag to save a comment"); + ADD_PROPERTY_TYPE(Meta,(),0,App::Prop_None,"Map with additional meta information"); + ADD_PROPERTY_TYPE(Material,(),0,App::Prop_None,"Map with material properties"); + // create the uuid for the document + Base::Uuid id; + ADD_PROPERTY_TYPE(Id,(""),0,App::Prop_None,"ID (Part-Number) of the Item"); + ADD_PROPERTY_TYPE(Uid,(id.UuidStr),0,App::Prop_None,"UUID of the Item"); + // license stuff + ADD_PROPERTY_TYPE(License,("CC BY 3.0"),0,App::Prop_None,"License string of the Item"); + ADD_PROPERTY_TYPE(LicenseURL,("http://creativecommons.org/licenses/by/3.0/"),0,App::Prop_None,"URL to the license text/contract"); + // color and apperance ADD_PROPERTY(Color,(1.0,1.0,1.0,1.0)); // set transparent -> not used ADD_PROPERTY(Visibility,(true)); } diff --git a/src/Mod/Assembly/App/Item.h b/src/Mod/Assembly/App/Item.h index c995f6057..a4393a885 100644 --- a/src/Mod/Assembly/App/Item.h +++ b/src/Mod/Assembly/App/Item.h @@ -39,19 +39,41 @@ class AssemblyExport Item : public App::GeoFeature public: Item(); - /** @name base properties of all Assembly Items */ + /** @name base properties of all Assembly Items + * This properties corospond mostly to the meta information + * in the App::Document class + */ //@{ /// Id e.g. Part number App::PropertyString Id; /// unique identifier of the Item App::PropertyUUID Uid; - /// Name of the Item (human readable) - App::PropertyString Name ; /// long description of the Item App::PropertyString Description ; + /// creators name (utf-8) + App::PropertyString CreatedBy; + App::PropertyString CreationDate; + /// user last modified the document + App::PropertyString LastModifiedBy; + App::PropertyString LastModifiedDate; + /// company name UTF8(optional) + App::PropertyString Company; + /// long comment or description (UTF8 with line breaks) + App::PropertyString Comment; + /** License string + * Holds the short license string for the Item, e.g. CC-BY + * for the Creative Commons license suit. + */ + App::PropertyString License; + /// License descripton/contract URL + App::PropertyString LicenseURL; + /// Meta descriptons + App::PropertyMap Meta; + /// Meta descriptons + App::PropertyMap Material; //@} - /** @name base properties of all Assembly Items */ + /** @name Visual properties */ //@{ /** Base color of the Item If the transparency value is 1.0