Gui: Rename ViewProviderDatum::getRoot() to ViewProviderDatum::getDatumRoot()

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.
This commit is contained in:
wmayer
2024-12-07 12:51:10 +01:00
committed by wwmayer
parent 72372b37d0
commit c2714fc8c5
4 changed files with 5 additions and 5 deletions

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);