From 7e70438ae3273488a99ce5db157f375a8c3a1acc Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 9 Aug 2019 12:41:15 +0200 Subject: [PATCH 1/9] fix -Winconsistent-missing-override --- src/Base/Exception.h | 10 +++++----- src/Base/Interpreter.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Base/Exception.h b/src/Base/Exception.h index 6377c2a215..0c14e89c89 100644 --- a/src/Base/Exception.h +++ b/src/Base/Exception.h @@ -253,15 +253,15 @@ public: /// Assignment operator FileException &operator=(const FileException &inst); /// Description of the exception - virtual const char* what() const throw(); + virtual const char* what() const throw() override; /// Report generation - virtual void ReportException (void) const; + virtual void ReportException (void) const override; /// Get file name for use with tranlatable message std::string getFileName() const; /// returns a Python dictionary containing the exception data - virtual PyObject * getPyObject(void); + virtual PyObject * getPyObject(void) override; /// returns sets the exception data from a Python dictionary - virtual void setPyObject( PyObject * pydict); + virtual void setPyObject( PyObject * pydict) override; virtual PyObject * getPyExceptionType() const override; protected: @@ -326,7 +326,7 @@ public: virtual ~MemoryException() throw() {} #if defined (__GNUC__) /// Description of the exception - virtual const char* what() const throw(); + virtual const char* what() const throw() override; #endif }; diff --git a/src/Base/Interpreter.h b/src/Base/Interpreter.h index 13a6875f8c..c2d404a3bc 100644 --- a/src/Base/Interpreter.h +++ b/src/Base/Interpreter.h @@ -113,7 +113,7 @@ public: const std::string &getStackTrace(void) const {return _stackTrace;} const std::string &getErrorType(void) const {return _errorType;} virtual PyObject *getPyExceptionType(void) const override {return _exceptionType;} - void ReportException (void) const; + void ReportException (void) const override; protected: std::string _stackTrace; From 3e6ae0d027eb295ceaae76efdd498109e67f3663 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 9 Aug 2019 13:26:18 +0200 Subject: [PATCH 2/9] Fix clang compiler warnings: + fix -Winconsistent-missing-override + fix -Wunused-private-field + suppress -Woverloaded-virtual but fix later --- src/App/Document.h | 14 ++-- src/App/DocumentObject.h | 14 ++-- src/App/DocumentObjectGroup.h | 4 +- src/App/Expression.cpp | 6 +- src/App/Expression.h | 11 +++ src/App/ExtensionContainer.h | 2 +- src/App/FeaturePython.h | 18 ++--- src/App/Link.h | 4 +- src/App/Part.h | 4 +- src/App/Property.h | 6 +- src/App/PropertyExpressionEngine.h | 20 ++--- src/App/PropertyGeo.h | 78 +++++++++--------- src/App/PropertyLinks.h | 125 ++++++++++++++++------------- src/App/PropertyStandard.h | 108 ++++++++++++------------- 14 files changed, 217 insertions(+), 197 deletions(-) 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; From 5172c3bc0827f5f80884681730e455e3b12f5de9 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 9 Aug 2019 14:50:53 +0200 Subject: [PATCH 3/9] Fix clang compiler warnings: + fix -Winconsistent-missing-override + fix -Wunused-variable + fix -Wbraced-scalar-init + fix -Wparentheses (View3DInventorViewer::checkGroupOnTop: operator '?:' has lower precedence than '+'; '+' will be evaluated first) + fix -Wundefined-bool-conversion (MainWindow::updateActions) + suppress -Woverloaded-virtual but fix later --- src/Gui/ExpressionCompleter.cpp | 1 - src/Gui/MainWindow.cpp | 5 +- src/Gui/ProgressBar.h | 16 ++-- src/Gui/PropertyView.h | 4 +- src/Gui/SelectionView.h | 8 +- src/Gui/Tree.cpp | 4 +- src/Gui/Tree.h | 34 ++++----- src/Gui/View3DInventorViewer.cpp | 2 +- src/Gui/ViewProviderDocumentObject.h | 22 +++--- src/Gui/ViewProviderDocumentObjectGroup.h | 4 +- src/Gui/ViewProviderDragger.h | 16 ++-- src/Gui/ViewProviderLink.h | 6 +- src/Gui/ViewProviderPart.h | 6 +- src/Gui/ViewProviderPlacement.h | 16 ++-- src/Gui/ViewProviderPythonFeature.h | 90 +++++++++++++---------- src/Gui/propertyeditor/PropertyItem.h | 12 +-- 16 files changed, 128 insertions(+), 118 deletions(-) diff --git a/src/Gui/ExpressionCompleter.cpp b/src/Gui/ExpressionCompleter.cpp index 2a69ac829c..26b3d82772 100644 --- a/src/Gui/ExpressionCompleter.cpp +++ b/src/Gui/ExpressionCompleter.cpp @@ -259,7 +259,6 @@ public: } int rowCount(const QModelIndex & parent = QModelIndex()) const { - const auto &docs = App::GetApplication().getDocuments(); Info info; int row = 0; if(!parent.isValid()) { diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index cbb9619c90..de37e1e509 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -1279,9 +1279,10 @@ void MainWindow::appendRecentFile(const QString& filename) } } -void MainWindow::updateActions(bool delay) { +void MainWindow::updateActions(bool delay) +{ //make it safe to call before the main window is actually created - if(!this) + if (!instance) return; if(!d->activityTimer->isActive()) d->activityTimer->start(150); diff --git a/src/Gui/ProgressBar.h b/src/Gui/ProgressBar.h index 1910a9a04d..a8b8fa947d 100644 --- a/src/Gui/ProgressBar.h +++ b/src/Gui/ProgressBar.h @@ -100,10 +100,10 @@ public: * to indicate that the user can click on the dialog. Every pause() must eventually be followed * by a corresponding @ref resume(). */ - void pause(); + void pause() override; /** This sets the wait cursor again and grabs the keyboard. @see pause() */ - void resume(); - bool isBlocking() const; + void resume() override; + bool isBlocking() const override; /** Returns an instance of the progress bar. It creates one if needed. */ QProgressBar* getProgressBar(QWidget* parent=0); @@ -116,15 +116,15 @@ protected: ~Sequencer (); /** Puts text to the status bar */ - void setText (const char* pszTxt); + void setText (const char* pszTxt) override; /** Starts the progress bar */ - void startStep(); + void startStep() override; /** Increase the progress bar. */ - void nextStep(bool canAbort); + void nextStep(bool canAbort) override; /** Sets the progress indicator to a certain position. */ - void setProgress(size_t); + void setProgress(size_t) override; /** Resets the sequencer */ - void resetData(); + void resetData() override; void showRemainingTime(); private: diff --git a/src/Gui/PropertyView.h b/src/Gui/PropertyView.h index a865e7631e..b88ca17c29 100644 --- a/src/Gui/PropertyView.h +++ b/src/Gui/PropertyView.h @@ -75,12 +75,12 @@ public Q_SLOTS: void onTimer(); protected: - void changeEvent(QEvent *e); + void changeEvent(QEvent *e) override; void showEvent(QShowEvent *) override; void hideEvent(QHideEvent *) override; private: - void onSelectionChanged(const SelectionChanges& msg); + void onSelectionChanged(const SelectionChanges& msg) override; void slotChangePropertyData(const App::DocumentObject&, const App::Property&); void slotChangePropertyView(const Gui::ViewProvider&, const App::Property&); void slotAppendDynamicProperty(const App::Property&); diff --git a/src/Gui/SelectionView.h b/src/Gui/SelectionView.h index cc27d318c0..a6d6b962e5 100644 --- a/src/Gui/SelectionView.h +++ b/src/Gui/SelectionView.h @@ -62,16 +62,16 @@ public: virtual ~SelectionView(); /// Observer message from the Selection - virtual void onSelectionChanged(const SelectionChanges& msg); + virtual void onSelectionChanged(const SelectionChanges& msg) override; virtual void leaveEvent(QEvent*) override; - bool onMsg(const char* pMsg,const char** ppReturn); + bool onMsg(const char* pMsg,const char** ppReturn) override; - virtual const char *getName(void) const {return "SelectionView";} + virtual const char *getName(void) const override {return "SelectionView";} /// get called when the document is changed or updated - virtual void onUpdate(void); + virtual void onUpdate(void) override; QListWidget* selectionView; QLabel* countLabel; diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index 45baa87206..2813367925 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -198,7 +198,7 @@ struct Stats { DEFINE_STATS }; -static Stats _Stats; +//static Stats _Stats; struct TimingInfo { bool timed = false; @@ -2054,7 +2054,7 @@ void TreeWidget::dropEvent(QDropEvent *event) if(copied.size()) res = copied.back(); }else - res = thisDoc->moveObject({obj},true); + res = thisDoc->moveObject(obj,true); if(res) { propPlacement = dynamic_cast( res->getPropertyByName("Placement")); diff --git a/src/Gui/Tree.h b/src/Gui/Tree.h index 47d8544627..5f878483d5 100644 --- a/src/Gui/Tree.h +++ b/src/Gui/Tree.h @@ -83,7 +83,7 @@ public: void selectAllLinks(App::DocumentObject *obj); void expandSelectedItems(TreeItemMode mode); - bool eventFilter(QObject *, QEvent *ev); + bool eventFilter(QObject *, QEvent *ev) override; struct SelInfo { App::DocumentObject *topParent; @@ -127,24 +127,24 @@ public: protected: /// Observer message from the Selection - void onSelectionChanged(const SelectionChanges& msg); - void contextMenuEvent (QContextMenuEvent * e); - void drawRow(QPainter *, const QStyleOptionViewItem &, const QModelIndex &) const; + void onSelectionChanged(const SelectionChanges& msg) override; + void contextMenuEvent (QContextMenuEvent * e) override; + void drawRow(QPainter *, const QStyleOptionViewItem &, const QModelIndex &) const override; /** @name Drag and drop */ //@{ - void startDrag(Qt::DropActions supportedActions); + void startDrag(Qt::DropActions supportedActions) override; bool dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, - Qt::DropAction action); - Qt::DropActions supportedDropActions () const; - QMimeData * mimeData (const QList items) const; - void dragEnterEvent(QDragEnterEvent * event); - void dragLeaveEvent(QDragLeaveEvent * event); - void dragMoveEvent(QDragMoveEvent *event); - void dropEvent(QDropEvent *event); + Qt::DropAction action) override; + Qt::DropActions supportedDropActions () const override; + QMimeData * mimeData (const QList items) const override; + void dragEnterEvent(QDragEnterEvent * event) override; + void dragLeaveEvent(QDragLeaveEvent * event) override; + void dragMoveEvent(QDragMoveEvent *event) override; + void dropEvent(QDropEvent *event) override; //@} - bool event(QEvent *e); - void keyPressEvent(QKeyEvent *event); - void mouseDoubleClickEvent(QMouseEvent * event); + bool event(QEvent *e) override; + void keyPressEvent(QKeyEvent *event) override; + void mouseDoubleClickEvent(QMouseEvent * event) override; protected: void showEvent(QShowEvent *) override; @@ -195,7 +195,7 @@ private: void slotChangeObject(const Gui::ViewProviderDocumentObject&, const App::Property &prop); void slotTouchedObject(const App::DocumentObject&); - void changeEvent(QEvent *e); + void changeEvent(QEvent *e) override; void setupText(); void updateChildren(App::DocumentObject *obj, @@ -274,7 +274,7 @@ public: void updateItemSelection(DocumentObjectItem *); void selectItems(bool sync); void testStatus(void); - void setData(int column, int role, const QVariant & value); + void setData(int column, int role, const QVariant & value) override; void populateItem(DocumentObjectItem *item, bool refresh=false, bool delayUpdate=true); bool populateObject(App::DocumentObject *obj); void selectAllInstances(const ViewProviderDocumentObject &vpd); diff --git a/src/Gui/View3DInventorViewer.cpp b/src/Gui/View3DInventorViewer.cpp index d25de3e9db..4cbe9ba1f9 100644 --- a/src/Gui/View3DInventorViewer.cpp +++ b/src/Gui/View3DInventorViewer.cpp @@ -756,7 +756,7 @@ void View3DInventorViewer::checkGroupOnTop(const SelectionChanges &Reason) { SoSelectionElementAction action(node->getDetail()? SoSelectionElementAction::Remove:SoSelectionElementAction::None,true); auto path = node->getPath(); - SoTempPath tmpPath(2+path?path->getLength():0); + SoTempPath tmpPath(2 + (path ? path->getLength() : 0)); tmpPath.ref(); tmpPath.append(pcGroup); tmpPath.append(node); diff --git a/src/Gui/ViewProviderDocumentObject.h b/src/Gui/ViewProviderDocumentObject.h index 59e52a3311..7f833611db 100644 --- a/src/Gui/ViewProviderDocumentObject.h +++ b/src/Gui/ViewProviderDocumentObject.h @@ -48,7 +48,7 @@ class Document; class GuiExport ViewProviderDocumentObject : public ViewProvider { - PROPERTY_HEADER(Gui::ViewProviderDocumentObject); + PROPERTY_HEADER_WITH_OVERRIDE(Gui::ViewProviderDocumentObject); public: /// constructor. @@ -69,30 +69,30 @@ public: /// Set the active mode, i.e. the first item of the 'Display' property. void setActiveMode(); /// Hide the object in the view - virtual void hide(void); + virtual void hide(void) override; /// Show the object in the view - virtual void show(void); + virtual void show(void) override; virtual bool canDropObjectEx(App::DocumentObject *, App::DocumentObject *, const char *, const std::vector &) const override; virtual int replaceObject(App::DocumentObject*, App::DocumentObject*) override; - virtual bool showInTree() const; + virtual bool showInTree() const override; /// Get a list of TaskBoxes associated with this object - virtual void getTaskViewContent(std::vector&) const; + virtual void getTaskViewContent(std::vector&) const override; /// Run a redraw void updateView(); /// Get the object of this ViewProvider object App::DocumentObject *getObject(void) const {return pcObject;} /// Asks the view provider if the given object can be deleted. - virtual bool canDelete(App::DocumentObject* obj) const; + virtual bool canDelete(App::DocumentObject* obj) const override; /// Get the GUI document to this ViewProvider object Gui::Document* getDocument() const; /// Get the python wrapper for that ViewProvider - PyObject* getPyObject(); + PyObject* getPyObject() override; /// return a hit element given the picked point which contains the full node path virtual bool getElementPicked(const SoPickedPoint *, std::string &subname) const override; @@ -162,9 +162,9 @@ protected: */ Gui::MDIView* getViewOfNode(SoNode* node) const; /// get called before the value is changed - virtual void onBeforeChange(const App::Property* prop); + virtual void onBeforeChange(const App::Property* prop) override; /// Gets called by the container whenever a property has been changed - virtual void onChanged(const App::Property* prop); + virtual void onChanged(const App::Property* prop) override; /** Searches in all view providers that are attached to an object that * is part of the same document as the object this view provider is * attached to for an front root of \a type. @@ -177,8 +177,8 @@ protected: /** @name Transaction handling */ //@{ - virtual bool isAttachedToDocument() const; - virtual const char* detachFromDocument(); + virtual bool isAttachedToDocument() const override; + virtual const char* detachFromDocument() override; /// get called when a property status has changed virtual void onPropertyStatusChanged(const App::Property &prop, unsigned long oldStatus) override; diff --git a/src/Gui/ViewProviderDocumentObjectGroup.h b/src/Gui/ViewProviderDocumentObjectGroup.h index f0d19fa75a..433ca3f506 100644 --- a/src/Gui/ViewProviderDocumentObjectGroup.h +++ b/src/Gui/ViewProviderDocumentObjectGroup.h @@ -43,8 +43,8 @@ public: virtual ~ViewProviderDocumentObjectGroup(); /// returns a list of all possible modes - std::vector getDisplayModes(void) const; - bool isShow(void) const; + std::vector getDisplayModes(void) const override; + bool isShow(void) const override; protected: diff --git a/src/Gui/ViewProviderDragger.h b/src/Gui/ViewProviderDragger.h index 3a939625d4..80119d78c8 100644 --- a/src/Gui/ViewProviderDragger.h +++ b/src/Gui/ViewProviderDragger.h @@ -43,7 +43,7 @@ class SoFCCSysDragger; */ class GuiExport ViewProviderDragger : public ViewProviderDocumentObject { - PROPERTY_HEADER(Gui::ViewProviderDragger); + PROPERTY_HEADER_WITH_OVERRIDE(Gui::ViewProviderDragger); public: /// constructor. @@ -54,9 +54,9 @@ public: /** @name Edit methods */ //@{ - bool doubleClicked(void); - void setupContextMenu(QMenu*, QObject*, const char*); - void updateData(const App::Property*); + bool doubleClicked(void) override; + void setupContextMenu(QMenu*, QObject*, const char*) override; + void updateData(const App::Property*) override; virtual ViewProvider *startEditing(int ModNum=0) override; @@ -64,10 +64,10 @@ public: static void updateTransform(const Base::Placement &from, SoTransform *to); protected: - bool setEdit(int ModNum); - void unsetEdit(int ModNum); - void setEditViewer(View3DInventorViewer*, int ModNum); - void unsetEditViewer(View3DInventorViewer*); + bool setEdit(int ModNum) override; + void unsetEdit(int ModNum) override; + void setEditViewer(View3DInventorViewer*, int ModNum) override; + void unsetEditViewer(View3DInventorViewer*) override; //@} SoFCCSysDragger *csysDragger = nullptr; diff --git a/src/Gui/ViewProviderLink.h b/src/Gui/ViewProviderLink.h index 03259c80aa..fb0e358203 100644 --- a/src/Gui/ViewProviderLink.h +++ b/src/Gui/ViewProviderLink.h @@ -71,7 +71,7 @@ protected: }; class GuiExport LinkView : public Base::BaseClass, public LinkOwner { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: LinkView(); @@ -79,7 +79,7 @@ public: LinkView &operator=(const LinkView&) = delete; LinkView(const LinkView&) = delete; - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; virtual void unlink(LinkInfoPtr) override; virtual void onLinkedIconChange(LinkInfoPtr) override; @@ -181,7 +181,7 @@ protected: class GuiExport ViewProviderLink : public ViewProviderDocumentObject { - PROPERTY_HEADER(Gui::ViewProviderLink); + PROPERTY_HEADER_WITH_OVERRIDE(Gui::ViewProviderLink); typedef ViewProviderDocumentObject inherited; public: diff --git a/src/Gui/ViewProviderPart.h b/src/Gui/ViewProviderPart.h index e3cc8c99ea..fe0fb5eb6c 100644 --- a/src/Gui/ViewProviderPart.h +++ b/src/Gui/ViewProviderPart.h @@ -43,12 +43,12 @@ public: /// destructor. virtual ~ViewProviderPart(); - virtual bool doubleClicked(void); - virtual void setupContextMenu(QMenu* menu, QObject* receiver, const char* member); + virtual bool doubleClicked(void) override; + virtual void setupContextMenu(QMenu* menu, QObject* receiver, const char* member) override; protected: /// get called by the container whenever a property has been changed - virtual void onChanged(const App::Property* prop); + virtual void onChanged(const App::Property* prop) override; }; typedef ViewProviderPythonFeatureT ViewProviderPartPython; diff --git a/src/Gui/ViewProviderPlacement.h b/src/Gui/ViewProviderPlacement.h index dfdf6fa034..b599aaa843 100644 --- a/src/Gui/ViewProviderPlacement.h +++ b/src/Gui/ViewProviderPlacement.h @@ -43,28 +43,28 @@ namespace Gui class GuiExport ViewProviderPlacement : public ViewProviderGeometryObject { - PROPERTY_HEADER(Gui::ViewProviderPlacement); + PROPERTY_HEADER_WITH_OVERRIDE(Gui::ViewProviderPlacement); public: /// Constructor ViewProviderPlacement(void); virtual ~ViewProviderPlacement(); - void attach(App::DocumentObject *); - void updateData(const App::Property*); - std::vector getDisplayModes(void) const; - void setDisplayMode(const char* ModeName); + void attach(App::DocumentObject *) override; + void updateData(const App::Property*) override; + std::vector getDisplayModes(void) const override; + void setDisplayMode(const char* ModeName) override; /// indicates if the ViewProvider use the new Selection model - virtual bool useNewSelectionModel(void) const {return true;} + virtual bool useNewSelectionModel(void) const override {return true;} /// indicates if the ViewProvider can be selected - virtual bool isSelectable(void) const ; + virtual bool isSelectable(void) const override; virtual bool getElementPicked(const SoPickedPoint *pp, std::string &subname) const override; virtual bool getDetailPath(const char *, SoFullPath *, bool, SoDetail *&) const override; protected: - void onChanged(const App::Property* prop); + void onChanged(const App::Property* prop) override; }; diff --git a/src/Gui/ViewProviderPythonFeature.h b/src/Gui/ViewProviderPythonFeature.h index ebde3980a1..a84cefbb72 100644 --- a/src/Gui/ViewProviderPythonFeature.h +++ b/src/Gui/ViewProviderPythonFeature.h @@ -191,7 +191,7 @@ public: template class ViewProviderPythonFeatureT : public ViewProviderT { - PROPERTY_HEADER(Gui::ViewProviderPythonFeatureT); + PROPERTY_HEADER_WITH_OVERRIDE(Gui::ViewProviderPythonFeatureT); public: /// constructor. @@ -205,37 +205,37 @@ public: } // Returns the icon - QIcon getIcon() const { + QIcon getIcon() const override { QIcon icon = imp->getIcon(); if (icon.isNull()) icon = ViewProviderT::getIcon(); return icon; } - std::vector claimChildren() const { + std::vector claimChildren() const override { return imp->claimChildren(ViewProviderT::claimChildren()); } /** @name Nodes */ //@{ - virtual SoSeparator* getRoot() { + virtual SoSeparator* getRoot() override { return ViewProviderT::getRoot(); } - virtual SoSeparator* getFrontRoot() const { + virtual SoSeparator* getFrontRoot() const override { return ViewProviderT::getFrontRoot(); } // returns the root node of the Provider (3D) - virtual SoSeparator* getBackRoot() const { + virtual SoSeparator* getBackRoot() const override { return ViewProviderT::getBackRoot(); } //@} /** @name Selection handling */ //@{ - virtual bool useNewSelectionModel() const { + virtual bool useNewSelectionModel() const override { return imp->useNewSelectionModel(); } - virtual bool getElementPicked(const SoPickedPoint *pp, std::string &subname) const { + virtual bool getElementPicked(const SoPickedPoint *pp, std::string &subname) const override { auto ret = imp->getElementPicked(pp,subname); if(ret == ViewProviderPythonFeatureImp::NotImplemented) return ViewProviderT::getElementPicked(pp,subname); @@ -243,42 +243,42 @@ public: return true; return false; } - virtual std::string getElement(const SoDetail *det) const { + virtual std::string getElement(const SoDetail *det) const override { std::string name = imp->getElement(det); if (!name.empty()) return name; return ViewProviderT::getElement(det); } - virtual SoDetail* getDetail(const char* name) const { + virtual SoDetail* getDetail(const char* name) const override { SoDetail* det = imp->getDetail(name); if (det) return det; return ViewProviderT::getDetail(name); } - virtual bool getDetailPath(const char *name, SoFullPath *path, bool append,SoDetail *&det) const { + virtual bool getDetailPath(const char *name, SoFullPath *path, bool append,SoDetail *&det) const override { auto ret = imp->getDetailPath(name,path,append,det); if(ret == ViewProviderPythonFeatureImp::NotImplemented) return ViewProviderT::getDetailPath(name,path,append,det); return ret == ViewProviderPythonFeatureImp::Accepted; } - virtual std::vector getSelectionShape(const char* Element) const { + virtual std::vector getSelectionShape(const char* Element) const override { return ViewProviderT::getSelectionShape(Element); }; //@} /** @name Update data methods*/ //@{ - virtual void attach(App::DocumentObject *obj) { + virtual void attach(App::DocumentObject *obj) override { // delay loading of the actual attach() method because the Python // view provider class is not attached yet ViewProviderT::pcObject = obj; } - virtual void updateData(const App::Property* prop) { + virtual void updateData(const App::Property* prop) override { imp->updateData(prop); ViewProviderT::updateData(prop); } - virtual void getTaskViewContent(std::vector& c) const { + virtual void getTaskViewContent(std::vector& c) const override { ViewProviderT::getTaskViewContent(c); } - virtual bool onDelete(const std::vector & sub) { + virtual bool onDelete(const std::vector & sub) override { bool ok = imp->onDelete(sub); if (!ok) return ok; return ViewProviderT::onDelete(sub); @@ -297,11 +297,11 @@ public: /** @name Restoring view provider from document load */ //@{ - virtual void startRestoring() { + virtual void startRestoring() override { ViewProviderT::startRestoring(); imp->startRestoring(); } - virtual void finishRestoring() { + virtual void finishRestoring() override { imp->finishRestoring(); ViewProviderT::finishRestoring(); } @@ -310,7 +310,7 @@ public: /** @name Drag and drop */ //@{ /// Returns true if the view provider generally supports dragging objects - virtual bool canDragObjects() const { + virtual bool canDragObjects() const override { switch (imp->canDragObjects()) { case ViewProviderPythonFeatureImp::Accepted: return true; @@ -321,7 +321,7 @@ public: } } /// Check whether the object can be removed from the view provider by drag and drop - virtual bool canDragObject(App::DocumentObject* obj) const { + virtual bool canDragObject(App::DocumentObject* obj) const override { switch (imp->canDragObject(obj)) { case ViewProviderPythonFeatureImp::Accepted: return true; @@ -332,7 +332,7 @@ public: } } /// Starts to drag the object - virtual void dragObject(App::DocumentObject* obj) { + virtual void dragObject(App::DocumentObject* obj) override { App::AutoTransaction committer; switch (imp->dragObject(obj)) { case ViewProviderPythonFeatureImp::Accepted: @@ -343,7 +343,7 @@ public: } } /// Returns true if the view provider generally accepts dropping of objects - virtual bool canDropObjects() const { + virtual bool canDropObjects() const override { switch (imp->canDropObjects()) { case ViewProviderPythonFeatureImp::Accepted: return true; @@ -354,7 +354,7 @@ public: } } /// Check whether the object can be dropped to the view provider by drag and drop - virtual bool canDropObject(App::DocumentObject* obj) const { + virtual bool canDropObject(App::DocumentObject* obj) const override { switch (imp->canDropObject(obj)) { case ViewProviderPythonFeatureImp::Accepted: return true; @@ -365,7 +365,7 @@ public: } } /// If the dropped object type is accepted the object will be added as child - virtual void dropObject(App::DocumentObject* obj) { + virtual void dropObject(App::DocumentObject* obj) override { App::AutoTransaction committer; switch (imp->dropObject(obj)) { case ViewProviderPythonFeatureImp::Accepted: @@ -400,7 +400,7 @@ public: } /** Add an object with full quanlified name to the view provider by drag and drop */ virtual std::string dropObjectEx(App::DocumentObject *obj, App::DocumentObject *owner, - const char *subname, const std::vector &elements) + const char *subname, const std::vector &elements) override { App::AutoTransaction committer; std::string ret; @@ -418,24 +418,24 @@ public: /** @name Display methods */ //@{ /// Returns true if the icon must always appear enabled in the tree view - virtual bool isShow() const { + virtual bool isShow() const override { bool ok = imp->isShow(); if (ok) return ok; return ViewProviderT::isShow(); } /// get the default display mode - virtual const char* getDefaultDisplayMode() const { + virtual const char* getDefaultDisplayMode() const override { return imp->getDefaultDisplayMode(); } /// returns a list of all possible modes - virtual std::vector getDisplayModes(void) const { + virtual std::vector getDisplayModes(void) const override { std::vector modes = ViewProviderT::getDisplayModes(); std::vector more_modes = imp->getDisplayModes(); modes.insert(modes.end(), more_modes.begin(), more_modes.end()); return modes; } /// set the display mode - virtual void setDisplayMode(const char* ModeName) { + virtual void setDisplayMode(const char* ModeName) override { std::string mask = imp->setDisplayMode(ModeName); ViewProviderT::setDisplayMaskMode(mask.c_str()); ViewProviderT::setDisplayMode(ModeName); @@ -453,7 +453,7 @@ public: } } - PyObject* getPyObject() { + PyObject* getPyObject() override { return ViewProviderT::getPyObject(); } @@ -462,7 +462,7 @@ public: } protected: - virtual void onChanged(const App::Property* prop) { + virtual void onChanged(const App::Property* prop) override { if (prop == &Proxy) { imp->init(Proxy.getValue().ptr()); if (ViewProviderT::pcObject && !Proxy.getValue().is(Py::_None())) { @@ -489,7 +489,7 @@ protected: } } /// is called by the document when the provider goes in edit mode - virtual bool setEdit(int ModNum) + virtual bool setEdit(int ModNum) override { switch (imp->setEdit(ModNum)) { case ViewProviderPythonFeatureImp::Accepted: @@ -501,7 +501,7 @@ protected: } } /// is called when you lose the edit mode - virtual void unsetEdit(int ModNum) + virtual void unsetEdit(int ModNum) override { switch (imp->unsetEdit(ModNum)) { case ViewProviderPythonFeatureImp::Accepted: @@ -511,23 +511,23 @@ protected: return ViewProviderT::unsetEdit(ModNum); } } - virtual void setEditViewer(View3DInventorViewer *viewer, int ModNum) { + virtual void setEditViewer(View3DInventorViewer *viewer, int ModNum) override { if(!imp->setEditViewer(viewer,ModNum)) ViewProviderT::setEditViewer(viewer,ModNum); } - virtual void unsetEditViewer(View3DInventorViewer *viewer) { + virtual void unsetEditViewer(View3DInventorViewer *viewer) override { if(!imp->unsetEditViewer(viewer)) ViewProviderT::unsetEditViewer(viewer); } - virtual std::string getDropPrefix() const { + virtual std::string getDropPrefix() const override { std::string prefix; if(!imp->getDropPrefix(prefix)) return ViewProviderT::getDropPrefix(); return prefix; } - virtual int replaceObject(App::DocumentObject *oldObj, App::DocumentObject *newObj) { + virtual int replaceObject(App::DocumentObject *oldObj, App::DocumentObject *newObj) override { App::AutoTransaction committer; switch (imp->replaceObject(oldObj,newObj)) { case ViewProviderPythonFeatureImp::Accepted: @@ -539,6 +539,12 @@ protected: } } +//FIXME: ViewProviderPythonFeatureT hides overloaded virtual functions +#if defined(__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Woverloaded-virtual" +#endif + virtual ViewProviderDocumentObject *getLinkedViewProvider(bool recursive=false) const { auto res = imp->getLinkedViewProvider(recursive); if(!res) @@ -546,15 +552,19 @@ protected: return res; } +#if defined(__clang__) +# pragma clang diagnostic pop +#endif + public: - virtual void setupContextMenu(QMenu* menu, QObject* recipient, const char* member) + virtual void setupContextMenu(QMenu* menu, QObject* recipient, const char* member) override { ViewProviderT::setupContextMenu(menu, recipient, member); imp->setupContextMenu(menu); } protected: - virtual bool doubleClicked(void) + virtual bool doubleClicked(void) override { App::AutoTransaction committer; switch (imp->doubleClicked()) { @@ -566,7 +576,7 @@ protected: return ViewProviderT::doubleClicked(); } } - virtual void setOverrideMode(const std::string &mode) + virtual void setOverrideMode(const std::string &mode) override { ViewProviderT::setOverrideMode(mode); viewerMode = mode; diff --git a/src/Gui/propertyeditor/PropertyItem.h b/src/Gui/propertyeditor/PropertyItem.h index b262e827c3..5bccc400bc 100644 --- a/src/Gui/propertyeditor/PropertyItem.h +++ b/src/Gui/propertyeditor/PropertyItem.h @@ -986,14 +986,14 @@ class GuiExport PropertyLinkItem: public PropertyItem Q_OBJECT PROPERTYITEM_HEADER - virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const; - virtual void setEditorData(QWidget *editor, const QVariant& data) const; - virtual QVariant editorData(QWidget *editor) const; + virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const override; + virtual void setEditorData(QWidget *editor, const QVariant& data) const override; + virtual QVariant editorData(QWidget *editor) const override; protected: - virtual QVariant toString(const QVariant&) const; - virtual QVariant value(const App::Property*) const; - virtual void setValue(const QVariant&); + virtual QVariant toString(const QVariant&) const override; + virtual QVariant value(const App::Property*) const override; + virtual void setValue(const QVariant&) override; virtual QVariant data(int column, int role) const override; protected: From 67b06d7a36526e8c5576b14987a0e5a866dca6ce Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 9 Aug 2019 15:42:02 +0200 Subject: [PATCH 4/9] Fix clang compiler warnings: + fix -Winconsistent-missing-override + fix -Wpessimizing-move (Geometry::clone: moving a temporary object prevents copy elision -> remove std::move call here) --- src/Mod/Part/App/AppPartPy.cpp | 2 +- src/Mod/Part/App/BodyBase.h | 8 +++--- src/Mod/Part/App/DatumFeature.h | 6 ++--- src/Mod/Part/App/FeatureCompound.h | 2 +- src/Mod/Part/App/Geometry.cpp | 2 +- src/Mod/Part/App/GeometryDefaultExtension.h | 2 +- src/Mod/Part/App/Part2DObject.h | 12 ++++----- src/Mod/Part/App/PartFeature.h | 16 ++++++------ src/Mod/Part/App/PrimitiveFeature.h | 10 ++++---- src/Mod/Part/Gui/DlgFilletEdges.cpp | 6 ++--- src/Mod/Part/Gui/ViewProviderExt.h | 28 ++++++++++----------- 11 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/Mod/Part/App/AppPartPy.cpp b/src/Mod/Part/App/AppPartPy.cpp index cbaf75f599..b2a62f4747 100644 --- a/src/Mod/Part/App/AppPartPy.cpp +++ b/src/Mod/Part/App/AppPartPy.cpp @@ -520,7 +520,7 @@ private: } } - virtual Py::Object invoke_method_varargs(void *method_def, const Py::Tuple &args) + virtual Py::Object invoke_method_varargs(void *method_def, const Py::Tuple &args) override { try { return Py::ExtensionModule::invoke_method_varargs(method_def, args); diff --git a/src/Mod/Part/App/BodyBase.h b/src/Mod/Part/App/BodyBase.h index 3766c6cf23..caed513cd2 100644 --- a/src/Mod/Part/App/BodyBase.h +++ b/src/Mod/Part/App/BodyBase.h @@ -78,16 +78,16 @@ public: * TODO introduce a findBodiesOf() if needed (2015-08-04, Fat-Zer) */ static BodyBase* findBodyOf(const App::DocumentObject* f); - virtual PyObject* getPyObject(); + virtual PyObject* getPyObject() override; protected: /// If BaseFeature is getting changed and Tip points to it reset the Tip - virtual void onBeforeChange (const App::Property* prop); + virtual void onBeforeChange (const App::Property* prop) override; /// If BaseFeature is set and Tip is null set the Tip to it - virtual void onChanged (const App::Property* prop); + virtual void onChanged (const App::Property* prop) override; virtual void handleChangedPropertyName(Base::XMLReader &reader, const char * TypeName, - const char *PropName); + const char *PropName) override; }; diff --git a/src/Mod/Part/App/DatumFeature.h b/src/Mod/Part/App/DatumFeature.h index fb80ab82cb..c5e4f26961 100644 --- a/src/Mod/Part/App/DatumFeature.h +++ b/src/Mod/Part/App/DatumFeature.h @@ -46,7 +46,7 @@ public: //short mustExecute(); /// returns the type name of the view provider - virtual const char* getViewProviderName(void) const = 0; + virtual const char* getViewProviderName(void) const override = 0; /// Return a shape including Placement representing the datum feature virtual TopoDS_Shape getShape() const; @@ -57,8 +57,8 @@ public: virtual App::DocumentObject *getSubObject(const char *subname, PyObject **pyObj, Base::Matrix4D *mat, bool transform, int depth) const override; protected: - void onDocumentRestored(); - void handleChangedPropertyName(Base::XMLReader &reader, const char* TypeName, const char* PropName); + void onDocumentRestored() override; + void handleChangedPropertyName(Base::XMLReader &reader, const char* TypeName, const char* PropName) override; }; } //namespace Part diff --git a/src/Mod/Part/App/FeatureCompound.h b/src/Mod/Part/App/FeatureCompound.h index f55c474c06..003eece293 100644 --- a/src/Mod/Part/App/FeatureCompound.h +++ b/src/Mod/Part/App/FeatureCompound.h @@ -54,7 +54,7 @@ public: /// Same as Part::Compound, except it marks the Shape as transient, and rebuild it during restore class Compound2 : public Compound { - PROPERTY_HEADER(Part::Compound2); + PROPERTY_HEADER_WITH_OVERRIDE(Part::Compound2); public: Compound2(); virtual void onDocumentRestored() override; diff --git a/src/Mod/Part/App/Geometry.cpp b/src/Mod/Part/App/Geometry.cpp index 0e67d9cef8..68d92d795c 100644 --- a/src/Mod/Part/App/Geometry.cpp +++ b/src/Mod/Part/App/Geometry.cpp @@ -375,7 +375,7 @@ Geometry *Geometry::clone(void) const cpy->tag = this->tag; for(auto & ext: extensions) - cpy->extensions.push_back(std::move(ext->copy())); + cpy->extensions.push_back(ext->copy()); return cpy; } diff --git a/src/Mod/Part/App/GeometryDefaultExtension.h b/src/Mod/Part/App/GeometryDefaultExtension.h index 54732d3b26..45537a8e55 100644 --- a/src/Mod/Part/App/GeometryDefaultExtension.h +++ b/src/Mod/Part/App/GeometryDefaultExtension.h @@ -32,7 +32,7 @@ namespace Part { template class PartExport GeometryDefaultExtension: public Part::GeometryExtension { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: inline GeometryDefaultExtension(); GeometryDefaultExtension(const T& val, std::string name = std::string()); diff --git a/src/Mod/Part/App/Part2DObject.h b/src/Mod/Part/App/Part2DObject.h index a5483678ee..4a553e2765 100644 --- a/src/Mod/Part/App/Part2DObject.h +++ b/src/Mod/Part/App/Part2DObject.h @@ -57,7 +57,7 @@ class PartExport Part2DObject : public Part::Feature, public Part::AttachExtensi public: Part2DObject(); - virtual void transformPlacement(const Base::Placement &transform); + virtual void transformPlacement(const Base::Placement &transform) override; /// returns the number of construction lines (to be used as axes) virtual int getAxisCount(void) const; @@ -85,19 +85,19 @@ public: /** @name methods override Feature */ //@{ /// recalculate the Feature - App::DocumentObjectExecReturn *execute(void); + App::DocumentObjectExecReturn *execute(void) override; /// returns the type name of the ViewProvider - const char* getViewProviderName(void) const { + const char* getViewProviderName(void) const override { return "PartGui::ViewProvider2DObject"; } //@} - void Restore(Base::XMLReader &reader); + void Restore(Base::XMLReader &reader) override; protected: - void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop); - void handleChangedPropertyName(Base::XMLReader &reader, const char * TypeName, const char *PropName); + void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop) override; + void handleChangedPropertyName(Base::XMLReader &reader, const char * TypeName, const char *PropName) override; }; typedef App::FeaturePythonT Part2DObjectPython; diff --git a/src/Mod/Part/App/PartFeature.h b/src/Mod/Part/App/PartFeature.h index 599bf7f64d..cb947031cd 100644 --- a/src/Mod/Part/App/PartFeature.h +++ b/src/Mod/Part/App/PartFeature.h @@ -46,7 +46,7 @@ class PartFeaturePy; */ class PartExport Feature : public App::GeoFeature { - PROPERTY_HEADER(Part::Feature); + PROPERTY_HEADER_WITH_OVERRIDE(Part::Feature); public: /// Constructor @@ -57,14 +57,14 @@ public: /** @name methods override feature */ //@{ - virtual short mustExecute(void) const; + virtual short mustExecute() const override; //@} /// returns the type name of the ViewProvider - virtual const char* getViewProviderName(void) const; - virtual const App::PropertyComplexGeoData* getPropertyOfGeometry() const; + virtual const char* getViewProviderName() const override; + virtual const App::PropertyComplexGeoData* getPropertyOfGeometry() const override; - virtual PyObject* getPyObject(void); + virtual PyObject* getPyObject() override; TopLoc_Location getLocation() const; @@ -111,10 +111,10 @@ public: protected: /// recompute only this object - virtual App::DocumentObjectExecReturn *recompute(void); + virtual App::DocumentObjectExecReturn *recompute() override; /// recalculate the feature - virtual App::DocumentObjectExecReturn *execute(void); - virtual void onChanged(const App::Property* prop); + virtual App::DocumentObjectExecReturn *execute() override; + virtual void onChanged(const App::Property* prop) override; /** * Build a history of changes * MakeShape: The operation that created the changes, e.g. BRepAlgoAPI_Common diff --git a/src/Mod/Part/App/PrimitiveFeature.h b/src/Mod/Part/App/PrimitiveFeature.h index f73f8c41d2..7d9fafba21 100644 --- a/src/Mod/Part/App/PrimitiveFeature.h +++ b/src/Mod/Part/App/PrimitiveFeature.h @@ -42,14 +42,14 @@ public: /** @name methods override feature */ //@{ /// recalculate the feature - App::DocumentObjectExecReturn *execute(void); - short mustExecute() const; - PyObject* getPyObject(); + App::DocumentObjectExecReturn *execute(void) override; + short mustExecute() const override; + PyObject* getPyObject() override; //@} protected: - void Restore(Base::XMLReader &reader); - void onChanged (const App::Property* prop); + void Restore(Base::XMLReader &reader) override; + void onChanged (const App::Property* prop) override; }; class PartExport Vertex : public Part::Primitive diff --git a/src/Mod/Part/Gui/DlgFilletEdges.cpp b/src/Mod/Part/Gui/DlgFilletEdges.cpp index 23c16a0c23..83460a0c40 100644 --- a/src/Mod/Part/Gui/DlgFilletEdges.cpp +++ b/src/Mod/Part/Gui/DlgFilletEdges.cpp @@ -628,9 +628,9 @@ void DlgFilletEdges::setupFillet(const std::vector& objs) App::Document* doc = d->object->getDocument(); // get current selection and their sub-elements - std::vector selObj = Gui::Selection().getSelectionEx(doc->getName()); - std::vector::iterator selIt = std::find_if(selObj.begin(), selObj.end(), - Private::SelectionObjectCompare(d->object)); + //std::vector selObj = Gui::Selection().getSelectionEx(doc->getName()); + //std::vector::iterator selIt = std::find_if(selObj.begin(), selObj.end(), + // Private::SelectionObjectCompare(d->object)); /* diff --git a/src/Mod/Part/Gui/ViewProviderExt.h b/src/Mod/Part/Gui/ViewProviderExt.h index dcf1a895fb..8063d5aea3 100644 --- a/src/Mod/Part/Gui/ViewProviderExt.h +++ b/src/Mod/Part/Gui/ViewProviderExt.h @@ -64,7 +64,7 @@ class SoBrepPointSet; class PartGuiExport ViewProviderPartExt : public Gui::ViewProviderGeometryObject { - PROPERTY_HEADER(PartGui::ViewProviderPartExt); + PROPERTY_HEADER_WITH_OVERRIDE(PartGui::ViewProviderPartExt); public: /// constructor @@ -91,14 +91,14 @@ public: // Faces (Gui::ViewProviderGeometryObject::ShapeColor and Gui::ViewProviderGeometryObject::ShapeMaterial apply) App::PropertyColorList DiffuseColor; - virtual void attach(App::DocumentObject *); - virtual void setDisplayMode(const char* ModeName); + virtual void attach(App::DocumentObject *) override; + virtual void setDisplayMode(const char* ModeName) override; /// returns a list of all possible modes - virtual std::vector getDisplayModes(void) const; + virtual std::vector getDisplayModes(void) const override; /// Update the view representation void reload(); - virtual void updateData(const App::Property*); + virtual void updateData(const App::Property*) override; /** @name Selection handling * This group of methods do the selection handling. @@ -107,13 +107,13 @@ public: */ //@{ /// indicates if the ViewProvider use the new Selection model - virtual bool useNewSelectionModel(void) const {return true;} + virtual bool useNewSelectionModel(void) const override {return true;} /// return a hit element to the selection path or 0 - virtual std::string getElement(const SoDetail*) const; - virtual SoDetail* getDetail(const char*) const; - virtual std::vector getModelPoints(const SoPickedPoint *) const; + virtual std::string getElement(const SoDetail*) const override; + virtual SoDetail* getDetail(const char*) const override; + virtual std::vector getModelPoints(const SoPickedPoint *) const override; /// return the highlight lines for a given element or the whole shape - virtual std::vector getSelectionShape(const char* Element) const; + virtual std::vector getSelectionShape(const char* Element) const override; //@} /** @name Highlight handling @@ -136,16 +136,16 @@ public: /** @name Edit methods */ //@{ - void setupContextMenu(QMenu*, QObject*, const char*); + void setupContextMenu(QMenu*, QObject*, const char*) override; protected: - bool setEdit(int ModNum); - void unsetEdit(int ModNum); + bool setEdit(int ModNum) override; + void unsetEdit(int ModNum) override; //@} protected: /// get called by the container whenever a property has been changed - virtual void onChanged(const App::Property* prop); + virtual void onChanged(const App::Property* prop) override; bool loadParameter(); void updateVisual(); void getNormals(const TopoDS_Face& theFace, const Handle(Poly_Triangulation)& aPolyTri, From 4c648caaa8e80ca64cdc00afdbf02a65b9b1b780 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 9 Aug 2019 19:16:08 +0200 Subject: [PATCH 5/9] Fix clang compiler warnings: + fix -Winconsistent-missing-override --- src/Mod/PartDesign/App/DatumCS.h | 4 ++-- src/Mod/PartDesign/App/FeatureBoolean.h | 10 ++++---- src/Mod/PartDesign/App/FeaturePrimitive.h | 10 ++++---- src/Mod/PartDesign/App/ShapeBinder.h | 18 +++++++------- src/Mod/PartDesign/Gui/ViewProviderBody.h | 24 +++++++++---------- src/Mod/PartDesign/Gui/ViewProviderBoolean.h | 10 ++++---- src/Mod/PartDesign/Gui/ViewProviderDatum.h | 24 +++++++++---------- .../PartDesign/Gui/ViewProviderShapeBinder.h | 10 ++++---- .../PartDesign/Gui/ViewProviderTransformed.h | 10 ++++---- 9 files changed, 60 insertions(+), 60 deletions(-) diff --git a/src/Mod/PartDesign/App/DatumCS.h b/src/Mod/PartDesign/App/DatumCS.h index 47f763a795..d08949bf7d 100644 --- a/src/Mod/PartDesign/App/DatumCS.h +++ b/src/Mod/PartDesign/App/DatumCS.h @@ -31,13 +31,13 @@ namespace PartDesign class PartDesignExport CoordinateSystem : public Part::Datum { - PROPERTY_HEADER(PartDesign::CoordinateSystem); + PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::CoordinateSystem); public: CoordinateSystem(); virtual ~CoordinateSystem(); - const char* getViewProviderName(void) const { + const char* getViewProviderName(void) const override { return "PartDesignGui::ViewProviderDatumCoordinateSystem"; } diff --git a/src/Mod/PartDesign/App/FeatureBoolean.h b/src/Mod/PartDesign/App/FeatureBoolean.h index 770a8595fa..22ee5ab2f5 100644 --- a/src/Mod/PartDesign/App/FeatureBoolean.h +++ b/src/Mod/PartDesign/App/FeatureBoolean.h @@ -51,17 +51,17 @@ public: /** @name methods override feature */ //@{ /// Recalculate the feature - App::DocumentObjectExecReturn *execute(void); - short mustExecute() const; + App::DocumentObjectExecReturn *execute(void) override; + short mustExecute() const override; /// returns the type name of the view provider - const char* getViewProviderName(void) const { + const char* getViewProviderName(void) const override { return "PartDesignGui::ViewProviderBoolean"; } - virtual void onChanged(const App::Property* prop); + virtual void onChanged(const App::Property* prop) override; //@} protected: - void handleChangedPropertyName(Base::XMLReader &reader, const char * TypeName, const char *PropName); + void handleChangedPropertyName(Base::XMLReader &reader, const char * TypeName, const char *PropName) override; TopoDS_Shape refineShapeIfActive(const TopoDS_Shape&) const; diff --git a/src/Mod/PartDesign/App/FeaturePrimitive.h b/src/Mod/PartDesign/App/FeaturePrimitive.h index 7905d1f1b3..d231646955 100644 --- a/src/Mod/PartDesign/App/FeaturePrimitive.h +++ b/src/Mod/PartDesign/App/FeaturePrimitive.h @@ -51,19 +51,19 @@ public: FeaturePrimitive(); - virtual const char* getViewProviderName(void) const { + virtual const char* getViewProviderName(void) const override { return "PartDesignGui::ViewProviderPrimitive"; } Type getPrimitiveType() {return primitiveType;} - virtual void onChanged(const App::Property* prop); - virtual PyObject* getPyObject(); + virtual void onChanged(const App::Property* prop) override; + virtual PyObject* getPyObject() override; /// Do nothing, just to suppress warning, must be redefined in derived classes - virtual App::DocumentObjectExecReturn* execute() { + virtual App::DocumentObjectExecReturn* execute() override { return PartDesign::FeatureAddSub::execute(); } protected: - void handleChangedPropertyName(Base::XMLReader &reader, const char* TypeName, const char* PropName); + void handleChangedPropertyName(Base::XMLReader &reader, const char* TypeName, const char* PropName) override; //make the boolean ops with the primitives provided by the derived features App::DocumentObjectExecReturn* execute(const TopoDS_Shape& primitiveShape); Type primitiveType = Box; diff --git a/src/Mod/PartDesign/App/ShapeBinder.h b/src/Mod/PartDesign/App/ShapeBinder.h index 23d4993770..e02b83acd1 100644 --- a/src/Mod/PartDesign/App/ShapeBinder.h +++ b/src/Mod/PartDesign/App/ShapeBinder.h @@ -42,7 +42,7 @@ namespace PartDesign class PartDesignExport ShapeBinder : public Part::Feature { - PROPERTY_HEADER(PartDesign::ShapeBinder); + PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::ShapeBinder); public: ShapeBinder(); @@ -54,30 +54,30 @@ public: static void getFilteredReferences(App::PropertyLinkSubList* prop, App::GeoFeature*& object, std::vector< std::string >& subobjects); static Part::TopoShape buildShapeFromReferences(App::GeoFeature* obj, std::vector< std::string > subs); - const char* getViewProviderName(void) const { + const char* getViewProviderName(void) const override { return "PartDesignGui::ViewProviderShapeBinder"; } protected: - virtual void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop); - virtual short int mustExecute(void) const; - virtual App::DocumentObjectExecReturn* execute(void); + virtual void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop) override; + virtual short int mustExecute(void) const override; + virtual App::DocumentObjectExecReturn* execute(void) override; private: void slotChangedObject(const App::DocumentObject& Obj, const App::Property& Prop); - virtual void onSettingDocument(); + virtual void onSettingDocument() override; typedef boost::signals2::connection Connection; Connection connectDocumentChangedObject; }; class PartDesignExport SubShapeBinder : public Part::Feature { - PROPERTY_HEADER(PartDesign::SubShapeBinder); + PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::SubShapeBinder); public: typedef Part::Feature inherited; SubShapeBinder(); - const char* getViewProviderName(void) const { + const char* getViewProviderName(void) const override { return "PartDesignGui::ViewProviderSubShapeBinder"; } @@ -99,7 +99,7 @@ public: return PartialLoad.getValue()?1:0; } - virtual bool canLinkProperties() const {return false;} + virtual bool canLinkProperties() const override {return false;} protected: virtual App::DocumentObjectExecReturn* execute(void) override; diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.h b/src/Mod/PartDesign/Gui/ViewProviderBody.h index dffab56d4b..d67e77f583 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.h +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.h @@ -53,21 +53,21 @@ public: App::PropertyEnumeration DisplayModeBody; - virtual void attach(App::DocumentObject *); + virtual void attach(App::DocumentObject *) override; - virtual bool doubleClicked(void); - virtual void setupContextMenu(QMenu* menu, QObject* receiver, const char* member); + virtual bool doubleClicked(void) override; + virtual void setupContextMenu(QMenu* menu, QObject* receiver, const char* member) override; - virtual std::vector< std::string > getDisplayModes(void) const; - virtual void setDisplayMode(const char* ModeName); - virtual void setOverrideMode(const std::string& mode); + virtual std::vector< std::string > getDisplayModes(void) const override; + virtual void setDisplayMode(const char* ModeName) override; + virtual void setOverrideMode(const std::string& mode) override; - virtual bool onDelete(const std::vector &); + virtual bool onDelete(const std::vector &) override; /// Update the children's highlighting when triggered - virtual void updateData(const App::Property* prop); + virtual void updateData(const App::Property* prop) override; ///unify children visuals - virtual void onChanged(const App::Property* prop); + virtual void onChanged(const App::Property* prop) override; /// Update the sizes of origin and datums void updateOriginDatumSize (); @@ -79,11 +79,11 @@ public: SbBox3f getBoundBox (); /** Check whether objects can be added to the view provider by drag and drop */ - virtual bool canDropObjects() const; + virtual bool canDropObjects() const override; /** Check whether the object can be dropped to the view provider by drag and drop */ - virtual bool canDropObject(App::DocumentObject*) const; + virtual bool canDropObject(App::DocumentObject*) const override; /** Add an object to the view provider by drag and drop */ - virtual void dropObject(App::DocumentObject*); + virtual void dropObject(App::DocumentObject*) override; protected: void slotChangedObjectApp ( const App::DocumentObject& obj, const App::Property& prop ); diff --git a/src/Mod/PartDesign/Gui/ViewProviderBoolean.h b/src/Mod/PartDesign/Gui/ViewProviderBoolean.h index aa731d7902..0b61941003 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBoolean.h +++ b/src/Mod/PartDesign/Gui/ViewProviderBoolean.h @@ -44,14 +44,14 @@ public: App::PropertyEnumeration Display; /// grouping handling - void setupContextMenu(QMenu*, QObject*, const char*); + void setupContextMenu(QMenu*, QObject*, const char*) override; - virtual bool onDelete(const std::vector &); - virtual void attach(App::DocumentObject*); - virtual void onChanged(const App::Property* prop); + virtual bool onDelete(const std::vector &) override; + virtual void attach(App::DocumentObject*) override; + virtual void onChanged(const App::Property* prop) override; protected: - virtual bool setEdit(int ModNum); + virtual bool setEdit(int ModNum) override; static const char* DisplayEnum[]; diff --git a/src/Mod/PartDesign/Gui/ViewProviderDatum.h b/src/Mod/PartDesign/Gui/ViewProviderDatum.h index ac6e8fef2c..dd32eae563 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderDatum.h +++ b/src/Mod/PartDesign/Gui/ViewProviderDatum.h @@ -46,21 +46,21 @@ public: virtual ~ViewProviderDatum(); /// grouping handling - void setupContextMenu(QMenu*, QObject*, const char*); + void setupContextMenu(QMenu*, QObject*, const char*) override; - virtual void attach(App::DocumentObject *); - virtual bool onDelete(const std::vector &); - virtual bool doubleClicked(void); - std::vector getDisplayModes(void) const; - void setDisplayMode(const char* ModeName); + virtual void attach(App::DocumentObject *) override; + virtual bool onDelete(const std::vector &) override; + virtual bool doubleClicked(void) override; + std::vector getDisplayModes(void) const override; + void setDisplayMode(const char* ModeName) override; /// indicates if the ViewProvider use the new Selection model - virtual bool useNewSelectionModel(void) const { return true; } + virtual bool useNewSelectionModel(void) const override { return true; } /// indicates if the ViewProvider can be selected - virtual bool isSelectable(void) const ; + virtual bool isSelectable(void) const override; /// return a hit element to the selection path or 0 - virtual std::string getElement(const SoDetail *) const; - virtual SoDetail* getDetail(const char*) const; + virtual std::string getElement(const SoDetail *) const override; + virtual SoDetail* getDetail(const char*) const override; /** * Enable/Disable the selectability of the datum @@ -109,8 +109,8 @@ public: static double marginFactor () { return 0.1; }; protected: - virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); + virtual bool setEdit(int ModNum) override; + virtual void unsetEdit(int ModNum) override; /** * Guesses the context this datum belongs to and returns appropriate bounding box of all diff --git a/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.h b/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.h index 260a7ec631..ba30ec742b 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.h +++ b/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.h @@ -31,19 +31,19 @@ namespace PartDesignGui { // TODO may be derive from something else e.g. ViewProviderGeometryObject (2015-09-11, Fat-Zer) class PartDesignGuiExport ViewProviderShapeBinder : public PartGui::ViewProviderPart { - PROPERTY_HEADER(PartDesignGui::ViewProviderShapeBinder); + PROPERTY_HEADER_WITH_OVERRIDE(PartDesignGui::ViewProviderShapeBinder); public: /// Constructor ViewProviderShapeBinder(); virtual ~ViewProviderShapeBinder(); - void setupContextMenu(QMenu*, QObject*, const char*); + void setupContextMenu(QMenu*, QObject*, const char*) override; void highlightReferences(const bool on, bool auxiliary); protected: - virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); + virtual bool setEdit(int ModNum) override; + virtual void unsetEdit(int ModNum) override; private: std::vector originalLineColors; @@ -53,7 +53,7 @@ private: class PartDesignGuiExport ViewProviderSubShapeBinder : public PartGui::ViewProviderPart { - PROPERTY_HEADER(PartDesignGui::ViewProviderShapeBinder); + PROPERTY_HEADER_WITH_OVERRIDE(PartDesignGui::ViewProviderShapeBinder); public: diff --git a/src/Mod/PartDesign/Gui/ViewProviderTransformed.h b/src/Mod/PartDesign/Gui/ViewProviderTransformed.h index da5828b987..ad61e73314 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderTransformed.h +++ b/src/Mod/PartDesign/Gui/ViewProviderTransformed.h @@ -32,7 +32,7 @@ class TaskDlgTransformedParameters; class PartDesignGuiExport ViewProviderTransformed : public ViewProvider { - PROPERTY_HEADER(PartDesignGui::ViewProviderTransformed); + PROPERTY_HEADER_WITH_OVERRIDE(PartDesignGui::ViewProviderTransformed); public: /// constructor @@ -42,9 +42,9 @@ public: virtual ~ViewProviderTransformed() {} - void setupContextMenu(QMenu*, QObject*, const char*); + void setupContextMenu(QMenu*, QObject*, const char*) override; - virtual bool onDelete(const std::vector &); + virtual bool onDelete(const std::vector &) override; /// signals if the transformation contains errors boost::signals2::signal signalDiagnosis; @@ -55,8 +55,8 @@ public: virtual Gui::ViewProvider *startEditing(int ModNum=0) override; protected: - virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); + virtual bool setEdit(int ModNum) override; + virtual void unsetEdit(int ModNum) override; bool checkDlgOpen(TaskDlgTransformedParameters* transformedDlg); From a73156666192322451f6bc75545d3145b701f02a Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 9 Aug 2019 19:16:25 +0200 Subject: [PATCH 6/9] Fix clang compiler warnings: + fix -Winconsistent-missing-override --- .../Sketcher/App/ExternalGeometryExtension.h | 2 +- src/Mod/Sketcher/App/PropertyConstraintList.h | 30 +++++++++---------- .../Sketcher/App/SketchGeometryExtension.h | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/Mod/Sketcher/App/ExternalGeometryExtension.h b/src/Mod/Sketcher/App/ExternalGeometryExtension.h index 3fd595f88e..e7ec183ed4 100644 --- a/src/Mod/Sketcher/App/ExternalGeometryExtension.h +++ b/src/Mod/Sketcher/App/ExternalGeometryExtension.h @@ -31,7 +31,7 @@ namespace Sketcher class SketcherExport ExternalGeometryExtension : public Part::GeometryExtension { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: // START_CREDIT_BLOCK: Credit under LGPL for this block to Zheng, Lei (realthunder) enum Flag { diff --git a/src/Mod/Sketcher/App/PropertyConstraintList.h b/src/Mod/Sketcher/App/PropertyConstraintList.h index 40d83275a0..9b11f8d219 100644 --- a/src/Mod/Sketcher/App/PropertyConstraintList.h +++ b/src/Mod/Sketcher/App/PropertyConstraintList.h @@ -45,7 +45,7 @@ class Constraint; class SketcherExport PropertyConstraintList : public App::PropertyLists { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: /** @@ -60,10 +60,10 @@ public: */ virtual ~PropertyConstraintList(); - virtual void setSize(int newSize); - virtual int getSize(void) const; + virtual void setSize(int newSize) override; + virtual int getSize(void) const override; - const char* getEditorName(void) const { + const char* getEditorName(void) const override { return "SketcherGui::PropertyConstraintListItem"; } @@ -109,16 +109,16 @@ public: return _lValueList; } - 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 App::Property &from); + virtual Property *Copy(void) const override; + virtual void Paste(const App::Property &from) override; - virtual unsigned int getMemSize(void) const; + virtual unsigned int getMemSize(void) const override; void acceptGeometry(const std::vector &GeoList); void checkGeometry(const std::vector &GeoList); @@ -129,10 +129,10 @@ public: const Constraint *getConstraint(const App::ObjectIdentifier &path) const; - virtual void setPathValue(const App::ObjectIdentifier & path, const boost::any & value); - virtual const boost::any getPathValue(const App::ObjectIdentifier & path) const; - virtual App::ObjectIdentifier canonicalPath(const App::ObjectIdentifier & p) const; - virtual void getPaths(std::vector & paths) const; + virtual void setPathValue(const App::ObjectIdentifier & path, const boost::any & value) override; + virtual const boost::any getPathValue(const App::ObjectIdentifier & path) const override; + virtual App::ObjectIdentifier canonicalPath(const App::ObjectIdentifier & p) const override; + virtual void getPaths(std::vector & paths) const override; virtual bool getPyPathValue(const App::ObjectIdentifier &path, Py::Object &res) const override; diff --git a/src/Mod/Sketcher/App/SketchGeometryExtension.h b/src/Mod/Sketcher/App/SketchGeometryExtension.h index 68470b9ec4..747d1990c5 100644 --- a/src/Mod/Sketcher/App/SketchGeometryExtension.h +++ b/src/Mod/Sketcher/App/SketchGeometryExtension.h @@ -31,7 +31,7 @@ namespace Sketcher class SketcherExport SketchGeometryExtension : public Part::GeometryExtension { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: SketchGeometryExtension(); SketchGeometryExtension(long cid); From 3759b83b7cc6015338f2e162af439bb7c324bb2a Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 9 Aug 2019 20:07:02 +0200 Subject: [PATCH 7/9] Fix clang compiler warnings: + fix -Winconsistent-missing-override --- src/Mod/Spreadsheet/App/PropertySheet.h | 16 +++++++-------- .../Spreadsheet/Gui/ViewProviderSpreadsheet.h | 20 +++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/Mod/Spreadsheet/App/PropertySheet.h b/src/Mod/Spreadsheet/App/PropertySheet.h index 18c84e7ac7..7efb01a9d5 100644 --- a/src/Mod/Spreadsheet/App/PropertySheet.h +++ b/src/Mod/Spreadsheet/App/PropertySheet.h @@ -39,7 +39,7 @@ class SheetObserver; class SpreadsheetExport PropertySheet : public App::PropertyExpressionContainer , private App::AtomicPropertyChangeInterface { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: PropertySheet(Sheet * _owner = 0); @@ -64,13 +64,13 @@ public: virtual void afterRestore() override; virtual void onContainerRestored() override; - virtual Property *Copy(void) const; + virtual Property *Copy(void) const override; - virtual void Paste(const Property &from); + virtual void Paste(const Property &from) override; - virtual void Save (Base::Writer & writer) const; + virtual void Save (Base::Writer & writer) const override; - virtual void Restore(Base::XMLReader & reader); + virtual void Restore(Base::XMLReader & reader) override; void copyCells(Base::Writer &writer, const std::vector &ranges) const; @@ -138,7 +138,7 @@ public: void removeColumns(int col, int count); - virtual unsigned int getMemSize (void) const; + virtual unsigned int getMemSize (void) const override; bool mergeCells(App::CellAddress from, App::CellAddress to); @@ -156,8 +156,8 @@ public: void recomputeDependencies(App::CellAddress key); - PyObject *getPyObject(void); - void setPyObject(PyObject *); + PyObject *getPyObject(void) override; + void setPyObject(PyObject *) override; void invalidateDependants(const App::DocumentObject *docObj); diff --git a/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.h b/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.h index 55d3d2f670..009df48c7e 100644 --- a/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.h +++ b/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.h @@ -39,7 +39,7 @@ class SheetView; class SpreadsheetGuiExport ViewProviderSheet : public Gui::ViewProviderDocumentObject { - PROPERTY_HEADER(SpreadsheetGui::ViewProviderSheet); + PROPERTY_HEADER_WITH_OVERRIDE(SpreadsheetGui::ViewProviderSheet); public: /// constructor. @@ -48,28 +48,28 @@ public: /// destructor. ~ViewProviderSheet(); - void setDisplayMode(const char* ModeName); - virtual bool useNewSelectionModel(void) const {return false;} - std::vector getDisplayModes() const; + void setDisplayMode(const char* ModeName) override; + virtual bool useNewSelectionModel(void) const override {return false;} + std::vector getDisplayModes() const override; - virtual bool doubleClicked(void); - void setupContextMenu(QMenu* menu, QObject* receiver, const char* member); + virtual bool doubleClicked(void) override; + void setupContextMenu(QMenu* menu, QObject* receiver, const char* member) override; Spreadsheet::Sheet* getSpreadsheetObject() const; virtual void beforeDelete() override; - QIcon getIcon() const; + QIcon getIcon() const override; - virtual bool setEdit(int ModNum); + virtual bool setEdit(int ModNum) override; - virtual bool isShow(void) const { return true; } + virtual bool isShow(void) const override { return true; } virtual Gui::MDIView *getMDIView() override; protected: SheetView* showSpreadsheetView(); - void updateData(const App::Property *prop); + void updateData(const App::Property *prop) override; private: QPointer view; }; From 7022f41bb19829055a4ff3852a6a9c1bdfb9116c Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 9 Aug 2019 21:31:42 +0200 Subject: [PATCH 8/9] Fix clang compiler warnings: + fix -Winconsistent-missing-override + fix -Wunused-private-field --- src/Mod/TechDraw/App/DrawPage.h | 18 +++++----- src/Mod/TechDraw/App/DrawViewPart.h | 16 ++++----- src/Mod/TechDraw/Gui/TaskCenterLine.h | 1 - .../TechDraw/Gui/ViewProviderDrawingView.h | 26 +++++++------- src/Mod/TechDraw/Gui/ViewProviderGeomHatch.h | 20 +++++------ src/Mod/TechDraw/Gui/ViewProviderHatch.h | 14 ++++---- src/Mod/TechDraw/Gui/ViewProviderPage.h | 36 +++++++++---------- src/Mod/TechDraw/Gui/ViewProviderTemplate.h | 20 +++++------ 8 files changed, 75 insertions(+), 76 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawPage.h b/src/Mod/TechDraw/App/DrawPage.h index 55d5905e52..a0cd5be3af 100644 --- a/src/Mod/TechDraw/App/DrawPage.h +++ b/src/Mod/TechDraw/App/DrawPage.h @@ -37,7 +37,7 @@ namespace TechDraw class TechDrawExport DrawPage: public App::DocumentObject { - PROPERTY_HEADER(TechDraw::DrawPage); + PROPERTY_HEADER_WITH_OVERRIDE(TechDraw::DrawPage); public: DrawPage(void); @@ -55,22 +55,22 @@ public: /** @name methods override Feature */ //@{ /// recalculate the Feature - virtual App::DocumentObjectExecReturn *execute(void); + virtual App::DocumentObjectExecReturn *execute(void) override; //@} virtual void handleChangedPropertyType( Base::XMLReader &reader, const char * TypeName, App::Property * prop) override; int addView(App::DocumentObject *docObj); int removeView(App::DocumentObject* docObj); - short mustExecute() const; + short mustExecute() const override; boost::signals2::signal signalGuiPaint; /// returns the type name of the ViewProvider - virtual const char* getViewProviderName(void) const { + virtual const char* getViewProviderName(void) const override { return "TechDrawGui::ViewProviderPage"; } - PyObject *getPyObject(void); + PyObject *getPyObject(void) override; //App::DocumentObjectExecReturn * recompute(void); @@ -99,10 +99,10 @@ public: int getNextBalloonIndex(void); protected: - void onBeforeChange(const App::Property* prop); - void onChanged(const App::Property* prop); - virtual void onDocumentRestored(); - virtual void unsetupObject(); + void onBeforeChange(const App::Property* prop) override; + void onChanged(const App::Property* prop) override; + virtual void onDocumentRestored() override; + virtual void unsetupObject() override; private: diff --git a/src/Mod/TechDraw/App/DrawViewPart.h b/src/Mod/TechDraw/App/DrawViewPart.h index 5a4ff85fe5..a3f810691f 100644 --- a/src/Mod/TechDraw/App/DrawViewPart.h +++ b/src/Mod/TechDraw/App/DrawViewPart.h @@ -85,7 +85,7 @@ class DrawViewSection; class TechDrawExport DrawViewPart : public DrawView { - PROPERTY_HEADER(TechDraw::DrawViewPart); + PROPERTY_HEADER_WITH_OVERRIDE(TechDraw::DrawViewPart); public: DrawViewPart(void); @@ -114,13 +114,13 @@ public: TechDraw::PropertyCenterLineList CenterLines; TechDraw::PropertyGeomFormatList GeomFormats; - virtual short mustExecute() const; + virtual short mustExecute() const override; virtual void onDocumentRestored() override; - virtual App::DocumentObjectExecReturn *execute(void); - virtual const char* getViewProviderName(void) const { + virtual App::DocumentObjectExecReturn *execute(void) override; + virtual const char* getViewProviderName(void) const override { return "TechDrawGui::ViewProviderViewPart"; } - virtual PyObject *getPyObject(void); + virtual PyObject *getPyObject(void) override; std::vector getHatches(void) const; std::vector getGeomHatches(void) const; @@ -142,7 +142,7 @@ public: virtual Base::BoundBox3d getBoundingBox() const; double getBoxX(void) const; double getBoxY(void) const; - virtual QRectF getRect() const; + virtual QRectF getRect() const override; virtual std::vector getSectionRefs() const; //are there ViewSections based on this ViewPart? virtual std::vector getDetailRefs() const; const Base::Vector3d& getUDir(void) const {return uDir;} //paperspace X @@ -210,8 +210,8 @@ protected: TechDraw::GeometryObject *geometryObject; Base::BoundBox3d bbox; - void onChanged(const App::Property* prop); - virtual void unsetupObject(); + void onChanged(const App::Property* prop) override; + virtual void unsetupObject() override; virtual TechDraw::GeometryObject* buildGeometryObject(TopoDS_Shape shape, gp_Ax2 viewAxis); void extractFaces(); diff --git a/src/Mod/TechDraw/Gui/TaskCenterLine.h b/src/Mod/TechDraw/Gui/TaskCenterLine.h index c66fa1e701..78f65eef52 100644 --- a/src/Mod/TechDraw/Gui/TaskCenterLine.h +++ b/src/Mod/TechDraw/Gui/TaskCenterLine.h @@ -162,7 +162,6 @@ protected: private: Ui_TaskCL2Lines* ui; - TechDraw::DrawViewPart* m_partFeat; TechDrawGui::TaskCenterLine* m_tcl; }; diff --git a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h index d37fe0419a..b1f8458323 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h +++ b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h @@ -43,7 +43,7 @@ class MDIViewPage; class TechDrawGuiExport ViewProviderDrawingView : public Gui::ViewProviderDocumentObject { - PROPERTY_HEADER(TechDrawGui::ViewProviderDrawingView); + PROPERTY_HEADER_WITH_OVERRIDE(TechDrawGui::ViewProviderDrawingView); public: /// constructor @@ -53,20 +53,20 @@ public: App::PropertyBool KeepLabel; - virtual void attach(App::DocumentObject *); - virtual void setDisplayMode(const char* ModeName); - virtual bool useNewSelectionModel(void) const {return false;} + virtual void attach(App::DocumentObject *) override; + virtual void setDisplayMode(const char* ModeName) override; + virtual bool useNewSelectionModel(void) const override {return false;} /// returns a list of all possible modes - virtual std::vector getDisplayModes(void) const; + virtual std::vector getDisplayModes(void) const override; /// Hide the object in the view - virtual void hide(void); + virtual void hide(void) override; /// Show the object in the view - virtual void show(void); - virtual bool isShow(void) const; + virtual void show(void) override; + virtual bool isShow(void) const override; - virtual void onChanged(const App::Property *prop); - virtual void updateData(const App::Property*); - virtual void unsetEdit(int ModNum); + virtual void onChanged(const App::Property *prop) override; + virtual void updateData(const App::Property*) override; + virtual void unsetEdit(int ModNum) override; QGIView* getQView(void); MDIViewPage* getMDIViewPage() const; @@ -74,8 +74,8 @@ public: /** @name Restoring view provider from document load */ //@{ - virtual void startRestoring(); - virtual void finishRestoring(); + virtual void startRestoring() override; + virtual void finishRestoring() override; //@} virtual TechDraw::DrawView* getViewObject() const; diff --git a/src/Mod/TechDraw/Gui/ViewProviderGeomHatch.h b/src/Mod/TechDraw/Gui/ViewProviderGeomHatch.h index b521e79e71..70f544317a 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderGeomHatch.h +++ b/src/Mod/TechDraw/Gui/ViewProviderGeomHatch.h @@ -41,7 +41,7 @@ namespace TechDrawGui { class TechDrawGuiExport ViewProviderGeomHatch : public Gui::ViewProviderDocumentObject { - PROPERTY_HEADER(TechDrawGui::ViewProviderGeomHatch); + PROPERTY_HEADER_WITH_OVERRIDE(TechDrawGui::ViewProviderGeomHatch); public: /// constructor @@ -53,16 +53,16 @@ public: App::PropertyColor ColorPattern; - virtual void attach(App::DocumentObject *); - virtual void updateData(const App::Property*); - virtual void onChanged(const App::Property *prop); - virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); - virtual bool doubleClicked(void); + virtual void attach(App::DocumentObject *) override; + virtual void updateData(const App::Property*) override; + virtual void onChanged(const App::Property *prop) override; + virtual bool setEdit(int ModNum) override; + virtual void unsetEdit(int ModNum) override; + virtual bool doubleClicked(void) override; - virtual bool useNewSelectionModel(void) const {return false;} - virtual void setDisplayMode(const char* ModeName); - virtual std::vector getDisplayModes(void) const; + virtual bool useNewSelectionModel(void) const override {return false;} + virtual void setDisplayMode(const char* ModeName) override; + virtual std::vector getDisplayModes(void) const override; void updateGraphic(void); void getParameters(void); diff --git a/src/Mod/TechDraw/Gui/ViewProviderHatch.h b/src/Mod/TechDraw/Gui/ViewProviderHatch.h index 891f54cb23..1f62a402db 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderHatch.h +++ b/src/Mod/TechDraw/Gui/ViewProviderHatch.h @@ -36,7 +36,7 @@ namespace TechDrawGui { class TechDrawGuiExport ViewProviderHatch : public Gui::ViewProviderDocumentObject { - PROPERTY_HEADER(TechDrawGui::ViewProviderHatch); + PROPERTY_HEADER_WITH_OVERRIDE(TechDrawGui::ViewProviderHatch); public: /// constructor @@ -47,13 +47,13 @@ public: App::PropertyColor HatchColor; App::PropertyFloatConstraint HatchScale; - virtual void attach(App::DocumentObject *); - virtual void setDisplayMode(const char* ModeName); - virtual bool useNewSelectionModel(void) const {return false;} + virtual void attach(App::DocumentObject *) override; + virtual void setDisplayMode(const char* ModeName) override; + virtual bool useNewSelectionModel(void) const override {return false;} /// returns a list of all possible modes - virtual std::vector getDisplayModes(void) const; - virtual void onChanged(const App::Property* prop); - virtual void updateData(const App::Property*); + virtual std::vector getDisplayModes(void) const override; + virtual void onChanged(const App::Property* prop) override; + virtual void updateData(const App::Property*) override; TechDraw::DrawHatch* getViewObject() const; diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.h b/src/Mod/TechDraw/Gui/ViewProviderPage.h index c472a6e601..a84f58c4c6 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderPage.h +++ b/src/Mod/TechDraw/Gui/ViewProviderPage.h @@ -41,7 +41,7 @@ class QGVPage; class TechDrawGuiExport ViewProviderPage : public Gui::ViewProviderDocumentObject { - PROPERTY_HEADER(TechDrawGui::ViewProviderPage); + PROPERTY_HEADER_WITH_OVERRIDE(TechDrawGui::ViewProviderPage); public: /// constructor @@ -51,28 +51,28 @@ public: App::PropertyBool ShowFrames; - virtual void attach(App::DocumentObject *); - virtual void setDisplayMode(const char* ModeName); - virtual bool useNewSelectionModel(void) const {return false;} + virtual void attach(App::DocumentObject *) override; + virtual void setDisplayMode(const char* ModeName) override; + virtual bool useNewSelectionModel(void) const override {return false;} /// returns a list of all possible modes - virtual std::vector getDisplayModes(void) const; + virtual std::vector getDisplayModes(void) const override; /// Hides the view provider - virtual void hide(void); + virtual void hide(void) override; /// Shows the view provider - virtual void show(void); - virtual bool isShow(void) const; + virtual void show(void) override; + virtual bool isShow(void) const override; /// Claim all the views for the page - std::vector claimChildren(void) const; + std::vector claimChildren(void) const override; /// Is called by the tree if the user double click on the object - virtual bool doubleClicked(void); - void setupContextMenu(QMenu*, QObject*, const char*); - virtual bool onDelete(const std::vector &); - virtual void onChanged(const App::Property *prop); - virtual void updateData(const App::Property* prop); - virtual void startRestoring(); - virtual void finishRestoring(); + virtual bool doubleClicked(void) override; + void setupContextMenu(QMenu*, QObject*, const char*) override; + virtual bool onDelete(const std::vector &) override; + virtual void onChanged(const App::Property *prop) override; + virtual void updateData(const App::Property* prop) override; + virtual void startRestoring() override; + virtual void finishRestoring() override; bool isRestoring(void) {return !m_docReady;} TechDraw::DrawPage* getDrawPage() const; @@ -80,7 +80,7 @@ public: typedef boost::signals2::scoped_connection Connection; Connection connectGuiRepaint; - void unsetEdit(int ModNum); + void unsetEdit(int ModNum) override; MDIViewPage* getMDIViewPage(); bool showMDIViewPage(); void removeMDIView(void); @@ -94,7 +94,7 @@ public: void setGraphicsView(QGVPage* gv); protected: - bool setEdit(int ModNum); + bool setEdit(int ModNum) override; private: QPointer m_mdiView; diff --git a/src/Mod/TechDraw/Gui/ViewProviderTemplate.h b/src/Mod/TechDraw/Gui/ViewProviderTemplate.h index 23b386a9e9..4ab4392c8c 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderTemplate.h +++ b/src/Mod/TechDraw/Gui/ViewProviderTemplate.h @@ -36,7 +36,7 @@ class MDIViewPage; class TechDrawGuiExport ViewProviderTemplate : public Gui::ViewProviderDocumentObject { - PROPERTY_HEADER(TechDrawGui::ViewProviderTemplate); + PROPERTY_HEADER_WITH_OVERRIDE(TechDrawGui::ViewProviderTemplate); public: /// constructor @@ -44,16 +44,16 @@ public: /// destructor virtual ~ViewProviderTemplate(); - virtual void attach(App::DocumentObject *); - virtual void setDisplayMode(const char* ModeName); - virtual bool useNewSelectionModel(void) const {return false;} + virtual void attach(App::DocumentObject *) override; + virtual void setDisplayMode(const char* ModeName) override; + virtual bool useNewSelectionModel(void) const override {return false;} /// returns a list of all possible modes - virtual std::vector getDisplayModes(void) const; - virtual void updateData(const App::Property*); - virtual void onChanged(const App::Property *prop); - virtual void hide(void); - virtual void show(void); - virtual bool isShow(void) const; + virtual std::vector getDisplayModes(void) const override; + virtual void updateData(const App::Property*) override; + virtual void onChanged(const App::Property *prop) override; + virtual void hide(void) override; + virtual void show(void) override; + virtual bool isShow(void) const override; QGITemplate* getQTemplate(void); TechDraw::DrawTemplate* getTemplate() const; MDIViewPage* getMDIViewPage(void); From 7e60631239109c632a8f6cca83f6e7e5502e43a1 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sat, 17 Aug 2019 23:14:45 +0200 Subject: [PATCH 9/9] add missing header and forward declaration --- src/Mod/Part/App/TopoShape.cpp | 1 + src/Mod/Part/App/TopoShape.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Mod/Part/App/TopoShape.cpp b/src/Mod/Part/App/TopoShape.cpp index e042295be3..5c617df615 100644 --- a/src/Mod/Part/App/TopoShape.cpp +++ b/src/Mod/Part/App/TopoShape.cpp @@ -143,6 +143,7 @@ # include # include # include +# include # include # include # include diff --git a/src/Mod/Part/App/TopoShape.h b/src/Mod/Part/App/TopoShape.h index e0c906138a..7288774fed 100644 --- a/src/Mod/Part/App/TopoShape.h +++ b/src/Mod/Part/App/TopoShape.h @@ -33,6 +33,7 @@ class gp_Ax1; class gp_Ax2; +class gp_Pln; class gp_Vec; namespace App {