diff --git a/src/Gui/PropertyView.cpp b/src/Gui/PropertyView.cpp index 7a96256637..f7434ff9a5 100644 --- a/src/Gui/PropertyView.cpp +++ b/src/Gui/PropertyView.cpp @@ -412,7 +412,7 @@ void PropertyView::onTimer() { vp->getPropertyMap(viewList); // store the properties with as key in a map - if (ob) { + { for (auto prop : dataList) { if (isPropertyHidden(prop)) continue; @@ -432,7 +432,7 @@ void PropertyView::onTimer() { } } // the same for the view properties - if (vp) { + { std::map::iterator pt; for (pt = viewList.begin(); pt != viewList.end(); ++pt) { if (isPropertyHidden(pt->second)) diff --git a/src/Gui/ViewProviderDocumentObject.cpp b/src/Gui/ViewProviderDocumentObject.cpp index 66cc0a3506..08a93f3ee7 100644 --- a/src/Gui/ViewProviderDocumentObject.cpp +++ b/src/Gui/ViewProviderDocumentObject.cpp @@ -196,7 +196,8 @@ void ViewProviderDocumentObject::onChanged(const App::Property* prop) if (!testStatus(Gui::ViewStatus::TouchDocument)) { bool mod = pcDocument->isModified(); getObject()->Visibility.setValue(Visibility.getValue()); - pcDocument->setModified(mod); + if (pcDocument) + pcDocument->setModified(mod); } else { getObject()->Visibility.setValue(Visibility.getValue()); diff --git a/src/Gui/ViewProviderLink.cpp b/src/Gui/ViewProviderLink.cpp index bece13ca66..a8a298e679 100644 --- a/src/Gui/ViewProviderLink.cpp +++ b/src/Gui/ViewProviderLink.cpp @@ -2194,13 +2194,16 @@ std::string ViewProviderLink::dropObjectEx(App::DocumentObject* obj, const std::vector &subElements) { auto ext = getLinkExtension(); + if (!ext) + return std::string(); + if(isGroup(ext)) { size_t size = ext->getElementListValue().size(); ext->setLink(size,obj); return std::to_string(size)+"."; } - if(!ext || !ext->getLinkedObjectProperty() || hasElements(ext)) + if(!ext->getLinkedObjectProperty() || hasElements(ext)) return std::string(); if(!hasSubName) { @@ -2333,6 +2336,9 @@ bool ViewProviderLink::doubleClicked() { void ViewProviderLink::setupContextMenu(QMenu* menu, QObject* receiver, const char* member) { auto ext = getLinkExtension(); + if (!ext) + return; + if(linkEdit(ext)) { linkView->getLinkedView()->setupContextMenu(menu,receiver,member); } else if(ext->getPlacementProperty() || ext->getLinkPlacementProperty()) { @@ -2340,7 +2346,7 @@ void ViewProviderLink::setupContextMenu(QMenu* menu, QObject* receiver, const ch act->setData(QVariant((int)ViewProvider::Transform)); } - if(ext && ext->getColoredElementsProperty()) { + if(ext->getColoredElementsProperty()) { bool found = false; for(auto action : menu->actions()) { if(action->data().toInt() == ViewProvider::Color) { diff --git a/src/Mod/TechDraw/App/DrawViewArch.cpp b/src/Mod/TechDraw/App/DrawViewArch.cpp index ef471ac7f2..b4d00d68b8 100644 --- a/src/Mod/TechDraw/App/DrawViewArch.cpp +++ b/src/Mod/TechDraw/App/DrawViewArch.cpp @@ -103,16 +103,16 @@ App::DocumentObjectExecReturn *DrawViewArch::execute(void) } App::DocumentObject* sourceObj = Source.getValue(); - //if (sourceObj is not ArchSection) return - App::Property* proxy = sourceObj->getPropertyByName("Proxy"); - if (proxy == nullptr) { - Base::Console().Error("DVA::execute - %s is not an ArchSection\n", sourceObj->Label.getValue()); - //this is definitely not an ArchSection - return DrawView::execute(); - } - if (sourceObj) { - std::string svgFrag; + //if (sourceObj is not ArchSection) return + App::Property* proxy = sourceObj->getPropertyByName("Proxy"); + if (proxy == nullptr) { + Base::Console().Error("DVA::execute - %s is not an ArchSection\n", sourceObj->Label.getValue()); + //this is definitely not an ArchSection + return DrawView::execute(); + } + + //std::string svgFrag; std::string svgHead = getSVGHead(); std::string svgTail = getSVGTail(); std::string FeatName = getNameInDocument(); diff --git a/src/Mod/TechDraw/App/DrawViewSpreadsheet.cpp b/src/Mod/TechDraw/App/DrawViewSpreadsheet.cpp index 211fd44751..4496a363a3 100644 --- a/src/Mod/TechDraw/App/DrawViewSpreadsheet.cpp +++ b/src/Mod/TechDraw/App/DrawViewSpreadsheet.cpp @@ -39,7 +39,7 @@ #include #include -#include "Preferences.h" +#include "Preferences.h" #include "DrawViewSpreadsheet.h" #include @@ -63,7 +63,7 @@ DrawViewSpreadsheet::DrawViewSpreadsheet(void) Source.setScope(App::LinkScope::Global); ADD_PROPERTY_TYPE(CellStart ,("A1"),vgroup,App::Prop_None,"The top left cell of the range to display"); ADD_PROPERTY_TYPE(CellEnd ,("B2"),vgroup,App::Prop_None,"The bottom right cell of the range to display"); - ADD_PROPERTY_TYPE(Font ,(Preferences::labelFont().c_str()), + ADD_PROPERTY_TYPE(Font ,(Preferences::labelFont().c_str()), vgroup,App::Prop_None,"The name of the font to use"); ADD_PROPERTY_TYPE(TextColor,(0.0f,0.0f,0.0f),vgroup,App::Prop_None,"The default color of the text and lines"); ADD_PROPERTY_TYPE(TextSize,(12.0),vgroup,App::Prop_None,"The size of the text"); @@ -259,7 +259,7 @@ std::string DrawViewSpreadsheet::getSheetImage(void) // get the text App::Property* prop = sheet->getPropertyByName(address.toString().c_str()); std::stringstream field; - if (prop != 0) { + if (prop && cell) { if (prop->isDerivedFrom((App::PropertyQuantity::getClassTypeId()))) { field << cell->getFormattedQuantity(); } else if (prop->isDerivedFrom((App::PropertyFloat::getClassTypeId()))) { diff --git a/src/Mod/TechDraw/Gui/Command.cpp b/src/Mod/TechDraw/Gui/Command.cpp index d90302a39f..c7a1cd9cef 100644 --- a/src/Mod/TechDraw/Gui/Command.cpp +++ b/src/Mod/TechDraw/Gui/Command.cpp @@ -318,9 +318,7 @@ void CmdTechDrawView::activated(int iMsg) } //not a Link and not null. assume to be drawable. Undrawables will be // skipped later. - if (obj != nullptr) { - shapes.push_back(obj); - } + shapes.push_back(obj); if(partObj != nullptr) { continue; } @@ -576,9 +574,7 @@ void CmdTechDrawProjectionGroup::activated(int iMsg) } //not a Link and not null. assume to be drawable. Undrawables will be // skipped later. - if (obj != nullptr) { - shapes.push_back(obj); - } + shapes.push_back(obj); if(partObj != nullptr) { continue; } diff --git a/src/Mod/TechDraw/Gui/QGEPath.cpp b/src/Mod/TechDraw/Gui/QGEPath.cpp index 179bc9ec30..39db74aaad 100644 --- a/src/Mod/TechDraw/Gui/QGEPath.cpp +++ b/src/Mod/TechDraw/Gui/QGEPath.cpp @@ -289,8 +289,8 @@ void QGEPath::clearMarkers() return; } for (auto& m: m_markers) { - m->hide(); if (m != nullptr) { + m->hide(); QGraphicsScene* s = m->scene(); if (s != nullptr) { s->removeItem(m); //should this be setParentItem(nullptr) instead??