From 4068df64836c7ebb8a874e1db7e12ce6bdc7e55b Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 9 Aug 2019 14:50:53 +0200 Subject: [PATCH] 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: