diff --git a/src/App/Document.h b/src/App/Document.h index ccfe0c9827..8b2e5f3b8c 100644 --- a/src/App/Document.h +++ b/src/App/Document.h @@ -60,7 +60,7 @@ namespace App /// The document class class AppExport Document : public App::PropertyContainer { - PROPERTY_HEADER(App::Document); + PROPERTY_HEADER_WITH_OVERRIDE(App::Document); public: enum Status { @@ -222,11 +222,11 @@ public: const char* getName() const; //@} - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; /// returns the complete document memory consumption, including all managed DocObjects and Undo Redo. - unsigned int getMemSize (void) const; + unsigned int getMemSize (void) const override; /** @name Object handling */ //@{ @@ -478,7 +478,7 @@ public: /// Function called to signal that an object identifier has been renamed void renameObjectIdentifiers(const std::map & paths, const std::function &selector = [](const App::DocumentObject *) { return true; }); - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; virtual std::string getFullName() const override; @@ -508,8 +508,8 @@ protected: void writeObjects(const std::vector&, Base::Writer &writer) const; bool saveToFile(const char* filename) const; - void onBeforeChange(const Property* prop); - void onChanged(const Property* prop); + void onBeforeChange(const Property* prop) override; + void onChanged(const Property* prop) override; /// callback from the Document objects before property will be changed void onBeforeChangeProperty(const TransactionalObject *Who, const Property *What); /// callback from the Document objects after property was changed diff --git a/src/App/DocumentObject.h b/src/App/DocumentObject.h index e2c7a28336..f2599bb300 100644 --- a/src/App/DocumentObject.h +++ b/src/App/DocumentObject.h @@ -90,7 +90,7 @@ public: */ class AppExport DocumentObject: public App::TransactionalObject { - PROPERTY_HEADER(App::DocumentObject); + PROPERTY_HEADER_WITH_OVERRIDE(App::DocumentObject); public: @@ -126,8 +126,8 @@ public: std::string getExportName(bool forced=false) const; /// Return the object full name of the form DocName#ObjName virtual std::string getFullName() const override; - virtual bool isAttachedToDocument() const; - virtual const char* detachFromDocument(); + virtual bool isAttachedToDocument() const override; + virtual const char* detachFromDocument() override; /// gets the document in which this Object is handled App::Document *getDocument(void) const; @@ -303,7 +303,7 @@ public: * additional or different behavior. */ virtual void onLostLinkToObject(DocumentObject*); - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; /** Get the sub element/object by name * @@ -405,7 +405,7 @@ public: static DocumentObjectExecReturn *StdReturn; - virtual void Save (Base::Writer &writer) const; + virtual void Save (Base::Writer &writer) const override; /* Expression support */ @@ -576,9 +576,9 @@ protected: void setDocument(App::Document* doc); /// get called before the value is changed - virtual void onBeforeChange(const Property* prop); + virtual void onBeforeChange(const Property* prop) override; /// get called by the container when a property was changed - virtual void onChanged(const Property* prop); + virtual void onChanged(const Property* prop) override; /// get called after a document has been fully restored virtual void onDocumentRestored(); /// get called after setting the document diff --git a/src/App/DocumentObjectGroup.h b/src/App/DocumentObjectGroup.h index 3e1cef8b09..5a74078892 100644 --- a/src/App/DocumentObjectGroup.h +++ b/src/App/DocumentObjectGroup.h @@ -44,11 +44,11 @@ public: virtual ~DocumentObjectGroup(); /// returns the type name of the ViewProvider - virtual const char* getViewProviderName(void) const { + virtual const char* getViewProviderName(void) const override{ return "Gui::ViewProviderDocumentObjectGroup"; } - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; }; typedef App::FeaturePythonT DocumentObjectGroupPython; diff --git a/src/App/Expression.cpp b/src/App/Expression.cpp index 67c919fccc..bf6dc83154 100644 --- a/src/App/Expression.cpp +++ b/src/App/Expression.cpp @@ -423,8 +423,8 @@ static Py::Object _pyObjectFromAny(const App::any &value, const Expression *e) { return Py::Long(cast(value)); #endif else if (is_type(value,typeid(long))) { - long l = cast(value); #if PY_MAJOR_VERSION < 3 + long l = cast(value); if(std::abs(l)<=INT_MAX) return Py::Int(int(l)); #endif @@ -505,7 +505,7 @@ bool pyToQuantity(Quantity &q, const Py::Object &pyobj) { return true; } -static inline Quantity pyToQuantity(const Py::Object &pyobj, +/*static inline Quantity pyToQuantity(const Py::Object &pyobj, const Expression *e, const char *msg=0) { Quantity q; @@ -515,7 +515,7 @@ static inline Quantity pyToQuantity(const Py::Object &pyobj, __EXPR_THROW(TypeError,msg,e); } return q; -} +}*/ Py::Object pyFromQuantity(const Quantity &quantity) { if(!quantity.getUnit().isEmpty()) diff --git a/src/App/Expression.h b/src/App/Expression.h index f253292e5d..599bc4ba3f 100644 --- a/src/App/Expression.h +++ b/src/App/Expression.h @@ -35,6 +35,12 @@ #include #include +//FIXME: PyObjectExpression hides overloaded virtual functions +#if defined(__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Woverloaded-virtual" +#endif + namespace App { class DocumentObject; @@ -654,4 +660,9 @@ public: } } + +#if defined(__clang__) +# pragma clang diagnostic pop +#endif + #endif // EXPRESSION_H diff --git a/src/App/ExtensionContainer.h b/src/App/ExtensionContainer.h index 5cb141e36c..9c5c2ae53f 100644 --- a/src/App/ExtensionContainer.h +++ b/src/App/ExtensionContainer.h @@ -193,7 +193,7 @@ private: }; #define PROPERTY_HEADER_WITH_EXTENSIONS(_class_) \ - PROPERTY_HEADER(_class) + PROPERTY_HEADER_WITH_OVERRIDE(_class) /// We make sur that the PropertyData of the container is not connected to the one of the extension #define PROPERTY_SOURCE_WITH_EXTENSIONS(_class_, _parentclass_) \ diff --git a/src/App/FeaturePython.h b/src/App/FeaturePython.h index 54e53588bd..8183fb3886 100644 --- a/src/App/FeaturePython.h +++ b/src/App/FeaturePython.h @@ -159,7 +159,7 @@ public: template class FeaturePythonT : public FeatureT { - PROPERTY_HEADER(App::FeaturePythonT); + PROPERTY_HEADER_WITH_OVERRIDE(App::FeaturePythonT); public: FeaturePythonT() { @@ -173,7 +173,7 @@ public: /** @name methods override DocumentObject */ //@{ - short mustExecute() const { + short mustExecute() const override { if (this->isTouched()) return 1; auto ret = FeatureT::mustExecute(); @@ -181,7 +181,7 @@ public: return imp->mustExecute()?1:0; } /// recalculate the Feature - virtual DocumentObjectExecReturn *execute(void) { + virtual DocumentObjectExecReturn *execute(void) override { try { bool handled = imp->execute(); if (!handled) @@ -199,7 +199,7 @@ public: return FeatureT::getViewProviderNameOverride(); } /// returns the type name of the ViewProvider - virtual const char* getViewProviderName(void) const { + virtual const char* getViewProviderName(void) const override { return FeatureT::getViewProviderName(); //return "Gui::ViewProviderPythonFeature"; } @@ -279,14 +279,14 @@ public: return FeatureT::canLoadPartial(); } - PyObject *getPyObject(void) { + PyObject *getPyObject(void) override { if (FeatureT::PythonObject.is(Py::_None())) { // ref counter is set to 1 FeatureT::PythonObject = Py::Object(imp->getPyObject(),true); } return Py::new_reference_to(FeatureT::PythonObject); } - void setPyObject(PyObject *obj) { + void setPyObject(PyObject *obj) override { if (obj) FeatureT::PythonObject = obj; else @@ -294,7 +294,7 @@ public: } protected: - virtual void onBeforeChange(const Property* prop) { + virtual void onBeforeChange(const Property* prop) override { FeatureT::onBeforeChange(prop); imp->onBeforeChange(prop); } @@ -302,13 +302,13 @@ protected: if(!imp->onBeforeChangeLabel(newLabel)) FeatureT::onBeforeChangeLabel(newLabel); } - virtual void onChanged(const Property* prop) { + virtual void onChanged(const Property* prop) override { if(prop == &Proxy) imp->init(Proxy.getValue().ptr()); imp->onChanged(prop); FeatureT::onChanged(prop); } - virtual void onDocumentRestored() { + virtual void onDocumentRestored() override { imp->onDocumentRestored(); FeatureT::onDocumentRestored(); } diff --git a/src/App/Link.h b/src/App/Link.h index 55c87d3e0c..9961b6d0fd 100644 --- a/src/App/Link.h +++ b/src/App/Link.h @@ -50,7 +50,7 @@ namespace App class AppExport LinkBaseExtension : public App::DocumentObjectExtension { - EXTENSION_PROPERTY_HEADER(App::LinkExtension); + EXTENSION_PROPERTY_HEADER_WITH_OVERRIDE(App::LinkExtension); typedef App::DocumentObjectExtension inherited; public: @@ -318,7 +318,7 @@ typedef ExtensionPythonT LinkBaseExtensionPython; class AppExport LinkExtension : public LinkBaseExtension { - EXTENSION_PROPERTY_HEADER(App::LinkExtension); + EXTENSION_PROPERTY_HEADER_WITH_OVERRIDE(App::LinkExtension); typedef LinkBaseExtension inherited; public: diff --git a/src/App/Part.h b/src/App/Part.h index 3f4ed3c977..d9d86618f4 100644 --- a/src/App/Part.h +++ b/src/App/Part.h @@ -80,7 +80,7 @@ public: virtual ~Part(); /// returns the type name of the ViewProvider - virtual const char* getViewProviderName(void) const { + virtual const char* getViewProviderName(void) const override { return "Gui::ViewProviderPart"; } @@ -91,7 +91,7 @@ public: */ static App::Part* getPartOfObject (const DocumentObject* obj); - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; }; //typedef App::FeaturePythonT PartPython; diff --git a/src/App/Property.h b/src/App/Property.h index 4c45c6397b..c3a7deee83 100644 --- a/src/App/Property.h +++ b/src/App/Property.h @@ -57,7 +57,7 @@ class ObjectIdentifier; */ class AppExport Property : public Base::Persistence { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: enum Status @@ -110,7 +110,7 @@ public: * This method is defined in Base::Persistence * @see Base::Persistence */ - virtual unsigned int getMemSize (void) const { + virtual unsigned int getMemSize (void) const override { // you have to implement this method in all property classes! return sizeof(father) + sizeof(StatusBits); } @@ -424,7 +424,7 @@ protected: class AppExport PropertyLists : public Property, public PropertyListsBase { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: virtual void setPyObject(PyObject *obj) override { _setPyObject(obj); diff --git a/src/App/PropertyExpressionEngine.h b/src/App/PropertyExpressionEngine.h index 793de46843..61c6b47b88 100644 --- a/src/App/PropertyExpressionEngine.h +++ b/src/App/PropertyExpressionEngine.h @@ -64,7 +64,7 @@ private: class AppExport PropertyExpressionEngine : public App::PropertyExpressionContainer, private App::AtomicPropertyChangeInterface { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: virtual void updateElementReference( @@ -103,7 +103,7 @@ public: PropertyExpressionEngine(); ~PropertyExpressionEngine(); - unsigned int getMemSize (void) const; + unsigned int getMemSize (void) const override; virtual std::map getExpressions() const override; virtual void setExpressions(std::map &&exprs) override; @@ -111,17 +111,17 @@ public: void setValue() { } // Dummy - Property *Copy(void) const; + Property *Copy(void) const override; - void Paste(const Property &from); + void Paste(const Property &from) override; - void Save (Base::Writer & writer) const; + void Save (Base::Writer & writer) const override; - void Restore(Base::XMLReader &reader); + void Restore(Base::XMLReader &reader) override; void setValue(const App::ObjectIdentifier &path, boost::shared_ptr expr); - const boost::any getPathValue(const App::ObjectIdentifier & path) const; + const boost::any getPathValue(const App::ObjectIdentifier & path) const override; /// Execute options enum ExecuteOption { @@ -153,7 +153,7 @@ public: void renameObjectIdentifiers(const std::map & paths); - App::ObjectIdentifier canonicalPath(const App::ObjectIdentifier &p) const; + App::ObjectIdentifier canonicalPath(const App::ObjectIdentifier &p) const override; size_t numExpressions() const; @@ -164,8 +164,8 @@ public: virtual void onContainerRestored() override; /* Python interface */ - PyObject *getPyObject(void); - void setPyObject(PyObject *); + PyObject *getPyObject(void) override; + void setPyObject(PyObject *) override; protected: virtual void hasSetValue() override; diff --git a/src/App/PropertyGeo.h b/src/App/PropertyGeo.h index c9c262099d..affc4d4078 100644 --- a/src/App/PropertyGeo.h +++ b/src/App/PropertyGeo.h @@ -56,7 +56,7 @@ class Placement; */ class AppExport PropertyVector: public Property { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: /** @@ -77,25 +77,25 @@ public: void setValue(double x, double y, double z); /// Get valid paths for this property; used by auto completer - void getPaths(std::vector &paths) const; + void getPaths(std::vector &paths) const override; /** This method returns a string representation of the property */ const Base::Vector3d &getValue(void) const; - const char* getEditorName(void) const { + const char* getEditorName(void) const override { return "Gui::PropertyEditor::PropertyVectorItem"; } - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + virtual PyObject *getPyObject(void) override; + virtual void setPyObject(PyObject *) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; - virtual unsigned int getMemSize (void) const { + virtual unsigned int getMemSize (void) const override { return sizeof(Base::Vector3d); } @@ -192,7 +192,7 @@ public: class AppExport PropertyVectorList: public PropertyListsT { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); typedef PropertyListsT inherited; @@ -212,18 +212,18 @@ public: void setValue(double x, double y, double z); using inherited::setValue; - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual void SaveDocFile (Base::Writer &writer) const; - virtual void RestoreDocFile(Base::Reader &reader); + virtual void SaveDocFile (Base::Writer &writer) const override; + virtual void RestoreDocFile(Base::Reader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; - virtual unsigned int getMemSize (void) const; + virtual unsigned int getMemSize (void) const override; protected: Base::Vector3d getPyValue(PyObject *) const override; @@ -283,7 +283,7 @@ private: */ class AppExport PropertyPlacement: public Property { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: /** @@ -315,28 +315,28 @@ public: const Base::Placement &getValue(void) const; /// Get valid paths for this property; used by auto completer - void getPaths(std::vector &paths) const; + void getPaths(std::vector &paths) const override; - void setPathValue(const ObjectIdentifier &path, const boost::any &value); + void setPathValue(const ObjectIdentifier &path, const boost::any &value) override; virtual const boost::any getPathValue(const ObjectIdentifier &path) const override; virtual bool getPyPathValue(const ObjectIdentifier &path, Py::Object &res) const override; - const char* getEditorName(void) const { + const char* getEditorName(void) const override { return "Gui::PropertyEditor::PropertyPlacementItem"; } - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + virtual PyObject *getPyObject(void) override; + virtual void setPyObject(PyObject *) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; - virtual unsigned int getMemSize (void) const { + virtual unsigned int getMemSize (void) const override { return sizeof(Base::Placement); } @@ -377,7 +377,7 @@ public: class AppExport PropertyPlacementList: public PropertyListsT { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: /** @@ -387,18 +387,18 @@ public: virtual ~PropertyPlacementList(); - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual void SaveDocFile (Base::Writer &writer) const; - virtual void RestoreDocFile(Base::Reader &reader); + virtual void SaveDocFile (Base::Writer &writer) const override; + virtual void RestoreDocFile(Base::Reader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; - virtual unsigned int getMemSize (void) const; + virtual unsigned int getMemSize (void) const override; protected: Base::Placement getPyValue(PyObject *) const override; diff --git a/src/App/PropertyLinks.h b/src/App/PropertyLinks.h index 5f5a1586fa..df3a50730c 100644 --- a/src/App/PropertyLinks.h +++ b/src/App/PropertyLinks.h @@ -102,7 +102,7 @@ protected: /// Parent class of all link type properties class AppExport PropertyLinkBase : public Property, public ScopedLink { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: typedef std::pair ShadowSub; @@ -571,7 +571,7 @@ private: */ class AppExport PropertyLink : public PropertyLinkBase { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: /** @@ -607,19 +607,19 @@ public: return _pcLink ? dynamic_cast<_type>(_pcLink) : 0; } - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + virtual PyObject *getPyObject(void) override; + virtual void setPyObject(PyObject *) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; - virtual unsigned int getMemSize (void) const{ + virtual unsigned int getMemSize (void) const override { return sizeof(App::DocumentObject *); } - virtual const char* getEditorName(void) const + virtual const char* getEditorName(void) const override { return "Gui::PropertyEditor::PropertyLinkItem"; } virtual void getLinks(std::vector &objs, @@ -665,7 +665,7 @@ public: class AppExport PropertyLinkListBase: public PropertyLinkBase, public PropertyListsBase { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: virtual void setPyObject(PyObject *obj) override { _setPyObject(obj); @@ -675,7 +675,7 @@ public: class AppExport PropertyLinkList : public PropertyListsT, PropertyLinkListBase> { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); typedef PropertyListsT,PropertyLinkListBase> inherited; public: @@ -691,8 +691,8 @@ public: */ virtual ~PropertyLinkList(); - virtual void setSize(int newSize); - virtual void setSize(int newSize, const_reference def); + virtual void setSize(int newSize) override; + virtual void setSize(int newSize, const_reference def) override; /** Sets the property */ @@ -700,16 +700,16 @@ public: void set1Value(int idx, DocumentObject * const &value) override; - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; - virtual void Save(Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save(Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; - virtual unsigned int getMemSize(void) const; - virtual const char* getEditorName(void) const + virtual unsigned int getMemSize(void) const override; + virtual const char* getEditorName(void) const override { return "Gui::PropertyEditor::PropertyLinkListItem"; } virtual void getLinks(std::vector &objs, @@ -772,7 +772,7 @@ class PropertyXLinkSub; */ class AppExport PropertyLinkSub : public PropertyLinkBase { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: /** @@ -825,14 +825,14 @@ public: return _pcLinkSub ? dynamic_cast<_type>(_pcLinkSub) : 0; } - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + virtual PyObject *getPyObject(void) override; + virtual void setPyObject(PyObject *) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; /// Return a copy of the property if any changes caused by importing external object virtual Property *CopyOnImportExternal(const std::map &nameMap) const override; @@ -843,7 +843,7 @@ public: virtual Property *CopyOnLinkReplace(const App::DocumentObject *parent, App::DocumentObject *oldObj, App::DocumentObject *newObj) const override; - virtual unsigned int getMemSize (void) const{ + virtual unsigned int getMemSize (void) const override { return sizeof(App::DocumentObject *); } @@ -896,7 +896,7 @@ public: class AppExport PropertyLinkSubList : public PropertyLinkBase { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: typedef std::pair > SubSet; @@ -967,14 +967,14 @@ public: void setSubListValues(const std::vector&); std::vector getSubListValues(bool newStyle=false) const; - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + virtual PyObject *getPyObject(void) override; + virtual void setPyObject(PyObject *) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; /// Return a copy of the property if any changes caused by importing external object virtual Property *CopyOnImportExternal(const std::map &nameMap) const override; @@ -985,7 +985,7 @@ public: virtual Property *CopyOnLinkReplace(const App::DocumentObject *parent, App::DocumentObject *oldObj, App::DocumentObject *newObj) const override; - virtual unsigned int getMemSize (void) const; + virtual unsigned int getMemSize (void) const override; virtual void updateElementReference( DocumentObject *feature,bool reverse=false, bool notify=false) override; @@ -1005,7 +1005,6 @@ private: std::vector _lSubList; std::vector _ShadowSubList; std::vector _mapped; - bool _restoreLabel; }; /** The general Link Property with Child scope @@ -1041,7 +1040,7 @@ class PropertyXLinkSubList; */ class AppExport PropertyXLink : public PropertyLinkGlobal { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: PropertyXLink(bool allowPartial=false, PropertyLinkBase *parent=0); @@ -1067,11 +1066,11 @@ public: virtual int checkRestore(std::string *msg=0) const override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; /// Return a copy of the property if any changes caused by importing external object virtual Property *CopyOnImportExternal(const std::map &nameMap) const override; @@ -1082,8 +1081,8 @@ public: virtual Property *CopyOnLinkReplace(const App::DocumentObject *parent, App::DocumentObject *oldObj, App::DocumentObject *newObj) const override; - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + virtual PyObject *getPyObject(void) override; + virtual void setPyObject(PyObject *) override; friend class DocInfo; @@ -1159,10 +1158,16 @@ protected: }; +//FIXME: PropertyXLinkSub hides overloaded virtual functions +#if defined(__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Woverloaded-virtual" +#endif + /** Link to one or more (sub)object from the same or different document */ class AppExport PropertyXLinkSub: public PropertyXLink { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: PropertyXLinkSub(bool allowPartial=false, PropertyLinkBase *parent=0); @@ -1180,18 +1185,22 @@ public: virtual bool upgrade(Base::XMLReader &reader, const char *typeName) override; - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + virtual PyObject *getPyObject(void) override; + virtual void setPyObject(PyObject *) override; protected: - virtual PropertyXLink *createInstance() const; + virtual PropertyXLink *createInstance() const override; }; +#if defined(__clang__) +# pragma clang diagnostic pop +#endif + /** Link to one or more (sub)object(s) of one or more object(s) from the same or different document */ class AppExport PropertyXLinkSubList: public PropertyLinkBase { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: PropertyXLinkSubList(); @@ -1244,14 +1253,14 @@ public: return _Links; } - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + virtual PyObject *getPyObject(void) override; + virtual void setPyObject(PyObject *) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; virtual Property *CopyOnImportExternal(const std::map &nameMap) const override; @@ -1261,7 +1270,7 @@ public: virtual Property *CopyOnLinkReplace(const App::DocumentObject *parent, App::DocumentObject *oldObj, App::DocumentObject *newObj) const override; - virtual unsigned int getMemSize (void) const; + virtual unsigned int getMemSize (void) const override; virtual void updateElementReference( DocumentObject *feature,bool reverse=false, bool notify=false) override; @@ -1293,7 +1302,7 @@ protected: * @sa See PropertyExpressionEngine for example usage */ class AppExport PropertyXLinkContainer : public PropertyLinkBase { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: PropertyXLinkContainer(); ~PropertyXLinkContainer(); diff --git a/src/App/PropertyStandard.h b/src/App/PropertyStandard.h index b8eaf1798d..76a452f8e2 100644 --- a/src/App/PropertyStandard.h +++ b/src/App/PropertyStandard.h @@ -303,7 +303,7 @@ public: */ class AppExport PropertyIntegerList: public PropertyListsT { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: /** @@ -319,17 +319,17 @@ public: */ virtual ~PropertyIntegerList(); - virtual const char* getEditorName(void) const + virtual const char* getEditorName(void) const override { return "Gui::PropertyEditor::PropertyIntegerListItem"; } - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); - virtual unsigned int getMemSize (void) const; + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; + virtual unsigned int getMemSize (void) const override; protected: long getPyValue(PyObject *item) const override; @@ -582,7 +582,7 @@ public: class AppExport PropertyFloatList: public PropertyListsT { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: @@ -598,20 +598,20 @@ public: */ virtual ~PropertyFloatList(); - virtual const char* getEditorName(void) const + virtual const char* getEditorName(void) const override { return "Gui::PropertyEditor::PropertyFloatListItem"; } - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual void SaveDocFile (Base::Writer &writer) const; - virtual void RestoreDocFile(Base::Reader &reader); + virtual void SaveDocFile (Base::Writer &writer) const override; + virtual void RestoreDocFile(Base::Reader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); - virtual unsigned int getMemSize (void) const; + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; + virtual unsigned int getMemSize (void) const override; protected: double getPyValue(PyObject *item) const override; @@ -723,7 +723,7 @@ public: class AppExport PropertyStringList: public PropertyListsT { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); typedef PropertyListsT inherited; public: @@ -743,18 +743,18 @@ public: void setValues(const std::list&); using inherited::setValues; - virtual const char* getEditorName(void) const + virtual const char* getEditorName(void) const override { return "Gui::PropertyEditor::PropertyStringListItem"; } - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; - virtual unsigned int getMemSize (void) const; + virtual unsigned int getMemSize (void) const override; protected: std::string getPyValue(PyObject *item) const override; @@ -809,22 +809,22 @@ private: */ class AppExport PropertyBoolList : public PropertyListsT > { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); typedef PropertyListsT > inherited; public: PropertyBoolList(); virtual ~PropertyBoolList(); - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + virtual PyObject *getPyObject(void) override; + virtual void setPyObject(PyObject *) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); - virtual unsigned int getMemSize (void) const; + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; + virtual unsigned int getMemSize (void) const override; protected: bool getPyValue(PyObject *) const override; @@ -881,7 +881,7 @@ private: class AppExport PropertyColorList: public PropertyListsT { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: @@ -897,17 +897,17 @@ public: */ virtual ~PropertyColorList(); - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; - virtual void Save (Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save (Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual void SaveDocFile (Base::Writer &writer) const; - virtual void RestoreDocFile(Base::Reader &reader); + virtual void SaveDocFile (Base::Writer &writer) const override; + virtual void RestoreDocFile(Base::Reader &reader) override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); - virtual unsigned int getMemSize (void) const; + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; + virtual unsigned int getMemSize (void) const override; protected: Color getPyValue(PyObject *) const override; @@ -969,7 +969,7 @@ private: */ class AppExport PropertyMaterialList : public PropertyListsT { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: @@ -985,19 +985,19 @@ public: */ virtual ~PropertyMaterialList(); - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; - virtual void Save(Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + virtual void Save(Base::Writer &writer) const override; + virtual void Restore(Base::XMLReader &reader) override; - virtual void SaveDocFile(Base::Writer &writer) const; - virtual void RestoreDocFile(Base::Reader &reader); + virtual void SaveDocFile(Base::Writer &writer) const override; + virtual void RestoreDocFile(Base::Reader &reader) override; - virtual const char* getEditorName(void) const; + virtual const char* getEditorName(void) const override; - virtual Property *Copy(void) const; - virtual void Paste(const Property &from); - virtual unsigned int getMemSize(void) const; + virtual Property *Copy(void) const override; + virtual void Paste(const Property &from) override; + virtual unsigned int getMemSize(void) const override; protected: Material getPyValue(PyObject *) const override; @@ -1010,7 +1010,7 @@ protected: * object, and then read back as the Python binding of the newly created object. */ class AppExport PropertyPersistentObject: public PropertyString { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); typedef PropertyString inherited; public: virtual PyObject *getPyObject(void) override;