Skip to content

Commit

Permalink
Gui: Rename ViewProviderDatum::getRoot() to ViewProviderDatum::getDat…
Browse files Browse the repository at this point in the history
…umRoot()

Before the change the compiler raised the warning: 'Gui::ViewProviderDatum::getRoot' hides overloaded virtual function [-Werror,-Woverloaded-virtual]
In the base class the method getRoot() is declared as const while in ViewProviderDatum it's not and that's why it's considered as an overloaded method.
However, this signature causes two problems:
1. In the client code it's not always clear which version of getRoot() should be called
2. It violates const-correctness

So, trying to declare the method ViewProviderDatum::getRoot() as const it now overrides the method of the base class (and fixes the warning) but
this doesn't lead to the expected result: See https://forum.freecad.org/viewtopic.php?p=796064#p796064

The other option is to rename the method. And this gives the expected result now.
  • Loading branch information
wwmayer committed Dec 10, 2024
1 parent 16ac5f9 commit c444638
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/Gui/ViewProviderDatum.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ namespace Gui
~ViewProviderDatum() override;

/// Get point derived classes will add their specific stuff
SoSeparator* getRoot() { return pRoot; }
SoSeparator* getDatumRoot() const { return pRoot; }

/// Get pointer to the text label associated with the feature
SoText2* getLabel() { return pLabel; }
SoText2* getLabel() const { return pLabel; }

void attach(App::DocumentObject*) override;
std::vector<std::string> getDisplayModes() const override;
Expand Down
2 changes: 1 addition & 1 deletion src/Gui/ViewProviderLine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ void ViewProviderLine::attach(App::DocumentObject *obj) {
// indexes used to create the edges
static const int32_t lines[4] = { 0, 1, -1 };

SoSeparator *sep = getRoot();
SoSeparator *sep = getDatumRoot();

auto pCoords = new SoCoordinate3 ();
pCoords->point.setNum (2);
Expand Down
2 changes: 1 addition & 1 deletion src/Gui/ViewProviderPlane.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ void ViewProviderPlane::attach(App::DocumentObject * obj) {
// indexes used to create the edges
static const int32_t lines[6] = { 0, 1, 2, 3, 0, -1 };

SoSeparator* sep = getRoot();
SoSeparator* sep = getDatumRoot();

auto pCoords = new SoCoordinate3();
pCoords->point.setNum(4);
Expand Down
2 changes: 1 addition & 1 deletion src/Gui/ViewProviderPoint.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ void ViewProviderPoint::attach(App::DocumentObject * obj) {
// The coordinates for the point (single vertex at the origin)
static const SbVec3f point = SbVec3f(0, 0, 0);

SoSeparator* sep = getRoot();
SoSeparator* sep = getDatumRoot();

auto pCoords = new SoCoordinate3();
pCoords->point.setNum(1);
Expand Down

0 comments on commit c444638

Please sign in to comment.