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