Override mode works with non-toplevel viewprovider
And adopt the part design body to handle the override mode correctly
This commit is contained in:
@@ -65,6 +65,7 @@ PROPERTY_SOURCE_ABSTRACT(Gui::ViewProvider, App::PropertyContainer)
|
||||
ViewProvider::ViewProvider()
|
||||
: pcAnnotation(0)
|
||||
, pyViewObject(0)
|
||||
, overrideMode("As Is")
|
||||
, _iActualMode(-1)
|
||||
, _iEditMode(-1)
|
||||
, viewOverrideMode(-1)
|
||||
@@ -334,19 +335,27 @@ bool ViewProvider::isVisible() const
|
||||
}
|
||||
|
||||
void ViewProvider::setOverrideMode(const std::string &mode)
|
||||
{
|
||||
if (mode == "As Is")
|
||||
{
|
||||
if (mode == "As Is") {
|
||||
viewOverrideMode = -1;
|
||||
overrideMode = mode;
|
||||
}
|
||||
else {
|
||||
std::map<std::string, int>::const_iterator it = _sDisplayMaskModes.find(mode);
|
||||
if (it == _sDisplayMaskModes.end())
|
||||
return; //view style not supported
|
||||
viewOverrideMode = (*it).second;
|
||||
overrideMode = mode;
|
||||
}
|
||||
if (pcModeSwitch->whichChild.getValue() != -1)
|
||||
setModeSwitch();
|
||||
}
|
||||
|
||||
const string ViewProvider::getOverrideMode() {
|
||||
return overrideMode;
|
||||
}
|
||||
|
||||
|
||||
void ViewProvider::setModeSwitch()
|
||||
{
|
||||
if (viewOverrideMode == -1)
|
||||
|
||||
Reference in New Issue
Block a user