Coverty changes:
** CID 152490: Control flow issues (DEADCODE) ** CID 152492: Null pointer dereferences (FORWARD_NULL) ** CID 152493: Null pointer dereferences (FORWARD_NULL) ** CID 152494: Null pointer dereferences (FORWARD_NULL) ** CID 152495: Null pointer dereferences (FORWARD_NULL) ** CID 152496: Null pointer dereferences (FORWARD_NULL) ** CID 152497: Null pointer dereferences (FORWARD_NULL) ** CID 152502: Null pointer dereferences (REVERSE_INULL) ** CID 152507: Uninitialized members (UNINIT_CTOR) ** CID 152508: Uninitialized members (UNINIT_CTOR) ** CID 152508: Uninitialized members (UNINIT_CTOR) ** CID 152510: Uninitialized members (UNINIT_CTOR)
This commit is contained in:
parent
bcb29541aa
commit
884a32fabf
|
@ -238,7 +238,7 @@ int DrawPage::addView(App::DocumentObject *docObj)
|
|||
return -1;
|
||||
|
||||
//position all new views in center of Page (exceptDVDimension)
|
||||
DrawView* view = dynamic_cast<DrawView*>(docObj);
|
||||
DrawView* view = static_cast<DrawView*>(docObj);
|
||||
if (!docObj->isDerivedFrom(TechDraw::DrawViewDimension::getClassTypeId())) {
|
||||
view->X.setValue(getPageWidth()/2.0);
|
||||
view->Y.setValue(getPageHeight()/2.0);
|
||||
|
|
|
@ -87,9 +87,9 @@ int DrawViewCollection::countChildren()
|
|||
const std::vector<App::DocumentObject *> &views = Views.getValues();
|
||||
for(std::vector<App::DocumentObject *>::const_iterator it = views.begin(); it != views.end(); ++it) {
|
||||
|
||||
App::DocumentObject *docObj = dynamic_cast<App::DocumentObject *>(*it);
|
||||
App::DocumentObject *docObj = static_cast<App::DocumentObject *>(*it);
|
||||
if(docObj->getTypeId().isDerivedFrom(TechDraw::DrawViewCollection::getClassTypeId())) {
|
||||
TechDraw::DrawViewCollection *viewCollection = dynamic_cast<TechDraw::DrawViewCollection *>(*it);
|
||||
TechDraw::DrawViewCollection *viewCollection = static_cast<TechDraw::DrawViewCollection *>(*it);
|
||||
numChildren += viewCollection->countChildren() + 1;
|
||||
} else {
|
||||
numChildren += 1;
|
||||
|
@ -127,7 +127,7 @@ App::DocumentObjectExecReturn *DrawViewCollection::execute(void)
|
|||
for(std::vector<App::DocumentObject *>::const_iterator it = views.begin(); it != views.end(); ++it) {
|
||||
App::DocumentObject *docObj = *it;
|
||||
if(docObj->getTypeId().isDerivedFrom(TechDraw::DrawView::getClassTypeId())) {
|
||||
TechDraw::DrawView *view = dynamic_cast<TechDraw::DrawView *>(*it);
|
||||
TechDraw::DrawView *view = static_cast<TechDraw::DrawView *>(*it);
|
||||
|
||||
// Set scale factor of each view
|
||||
view->ScaleType.setValue("Document");
|
||||
|
@ -140,7 +140,7 @@ App::DocumentObjectExecReturn *DrawViewCollection::execute(void)
|
|||
for(std::vector<App::DocumentObject *>::const_iterator it = views.begin(); it != views.end(); ++it) {
|
||||
App::DocumentObject *docObj = *it;
|
||||
if(docObj->getTypeId().isDerivedFrom(TechDraw::DrawView::getClassTypeId())) {
|
||||
TechDraw::DrawView *view = dynamic_cast<TechDraw::DrawView *>(*it);
|
||||
TechDraw::DrawView *view = static_cast<TechDraw::DrawView *>(*it);
|
||||
|
||||
view->ScaleType.setValue("Custom");
|
||||
// Set scale factor of each view
|
||||
|
@ -159,6 +159,10 @@ QRectF DrawViewCollection::getRect() const
|
|||
QRectF result;
|
||||
for (auto& v:Views.getValues()) {
|
||||
TechDraw::DrawView *view = dynamic_cast<TechDraw::DrawView *>(v);
|
||||
if (!view) {
|
||||
throw Base::Exception("DrawViewCollection::getRect bad View\n");
|
||||
}
|
||||
|
||||
result = result.united(view->getRect().translated(view->X.getValue(),view->Y.getValue()));
|
||||
}
|
||||
return QRectF(0,0,Scale.getValue() * result.width(),Scale.getValue() * result.height());
|
||||
|
|
|
@ -274,7 +274,7 @@ void GeometryObject::addGeomFromCompound(TopoDS_Shape edgeCompound, edgeClass ca
|
|||
}
|
||||
if (circle) {
|
||||
if ((*itVertex)->isEqual(c1,Precision::Confusion())) {
|
||||
c1Add = true;
|
||||
c1Add = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include <App/FeaturePython.h>
|
||||
#include <App/PropertyGeo.h>
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Exception.h>
|
||||
#include <Base/Parameter.h>
|
||||
#include <Gui/Action.h>
|
||||
#include <Gui/Application.h>
|
||||
|
@ -103,14 +104,14 @@ TechDraw::DrawPage* _findPage(Gui::Command* cmd)
|
|||
QObject::tr("Can not determine correct page."));
|
||||
return page;
|
||||
} else { //use only page in document
|
||||
page = dynamic_cast<TechDraw::DrawPage*>(selPages.front());
|
||||
page = static_cast<TechDraw::DrawPage*>(selPages.front());
|
||||
}
|
||||
} else if (selPages.size() > 1) { //multiple pages in selection
|
||||
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Too many pages"),
|
||||
QObject::tr("Select exactly 1 page."));
|
||||
return page;
|
||||
} else { //use only page in selection
|
||||
page = dynamic_cast<TechDraw::DrawPage *>(selPages.front());
|
||||
page = static_cast<TechDraw::DrawPage *>(selPages.front());
|
||||
}
|
||||
|
||||
return page;
|
||||
|
@ -172,6 +173,10 @@ void CmdTechDrawNewPageDef::activated(int iMsg)
|
|||
|
||||
commitCommand();
|
||||
TechDraw::DrawPage* fp = dynamic_cast<TechDraw::DrawPage*>(getDocument()->getObject(PageName.c_str()));
|
||||
if (!fp) {
|
||||
throw Base::Exception("CmdTechDrawNewPageDef fp not found\n");
|
||||
}
|
||||
|
||||
Gui::ViewProvider* vp = Gui::Application::Instance->getDocument(getDocument())->getViewProvider(fp);
|
||||
TechDrawGui::ViewProviderPage* dvp = dynamic_cast<TechDrawGui::ViewProviderPage*>(vp);
|
||||
if (dvp) {
|
||||
|
@ -247,6 +252,9 @@ void CmdTechDrawNewPage::activated(int iMsg)
|
|||
|
||||
commitCommand();
|
||||
TechDraw::DrawPage* fp = dynamic_cast<TechDraw::DrawPage*>(getDocument()->getObject(PageName.c_str()));
|
||||
if (!fp) {
|
||||
throw Base::Exception("CmdTechDrawNewPagePick fp not found\n");
|
||||
}
|
||||
Gui::ViewProvider* vp = Gui::Application::Instance->getDocument(getDocument())->getViewProvider(fp);
|
||||
TechDrawGui::ViewProviderPage* dvp = dynamic_cast<TechDrawGui::ViewProviderPage*>(vp);
|
||||
if (dvp) {
|
||||
|
@ -377,7 +385,7 @@ void CmdTechDrawNewViewSection::activated(int iMsg)
|
|||
return;
|
||||
}
|
||||
App::DocumentObject* dObj = *(shapes.begin());
|
||||
TechDraw::DrawViewPart* dvp = dynamic_cast<TechDraw::DrawViewPart*>(dObj);
|
||||
TechDraw::DrawViewPart* dvp = static_cast<TechDraw::DrawViewPart*>(dObj);
|
||||
if (dvp->getSectionRef()) {
|
||||
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
|
||||
QObject::tr("This View already has a related Section. Choose another."));
|
||||
|
@ -397,6 +405,9 @@ void CmdTechDrawNewViewSection::activated(int iMsg)
|
|||
doCommand(Doc,"App.activeDocument().%s.addView(App.activeDocument().%s)",PageName.c_str(),FeatName.c_str());
|
||||
App::DocumentObject *docObj = getDocument()->getObject(FeatName.c_str());
|
||||
TechDraw::DrawViewSection* dsv = dynamic_cast<TechDraw::DrawViewSection *>(docObj);
|
||||
if (!dsv) {
|
||||
throw Base::Exception("CmdTechDrawNewViewSection DSV not found\n");
|
||||
}
|
||||
Gui::Control().showDialog(new TaskDlgSectionView(dvp,dsv));
|
||||
|
||||
updateActive();
|
||||
|
@ -592,9 +603,9 @@ void CmdTechDrawClipPlus::activated(int iMsg)
|
|||
std::vector<Gui::SelectionObject>::iterator itSel = selection.begin();
|
||||
for (; itSel != selection.end(); itSel++) {
|
||||
if ((*itSel).getObject()->isDerivedFrom(TechDraw::DrawViewClip::getClassTypeId())) {
|
||||
clip = dynamic_cast<TechDraw::DrawViewClip*>((*itSel).getObject());
|
||||
clip = static_cast<TechDraw::DrawViewClip*>((*itSel).getObject());
|
||||
} else if ((*itSel).getObject()->isDerivedFrom(TechDraw::DrawView::getClassTypeId())) {
|
||||
view = dynamic_cast<TechDraw::DrawView*>((*itSel).getObject());
|
||||
view = static_cast<TechDraw::DrawView*>((*itSel).getObject());
|
||||
}
|
||||
}
|
||||
if (!view) {
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include <QGraphicsView>
|
||||
|
||||
# include <App/DocumentObject.h>
|
||||
# include <Base/Exception.h>
|
||||
# include <Gui/Action.h>
|
||||
# include <Gui/Application.h>
|
||||
# include <Gui/BitmapFactory.h>
|
||||
|
@ -94,14 +95,14 @@ TechDraw::DrawPage* _findPageCCD(Gui::Command* cmd)
|
|||
QObject::tr("Can not determine correct page."));
|
||||
return page;
|
||||
} else { //use only page in document
|
||||
page = dynamic_cast<TechDraw::DrawPage*>(selPages.front());
|
||||
page = static_cast<TechDraw::DrawPage*>(selPages.front());
|
||||
}
|
||||
} else if (selPages.size() > 1) { //multiple pages in selection
|
||||
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Too many pages"),
|
||||
QObject::tr("Select exactly 1 page."));
|
||||
return page;
|
||||
} else { //use only page in selection
|
||||
page = dynamic_cast<TechDraw::DrawPage*>(selPages.front());
|
||||
page = static_cast<TechDraw::DrawPage*>(selPages.front());
|
||||
}
|
||||
}
|
||||
return page;
|
||||
|
@ -161,7 +162,7 @@ void CmdTechDrawNewDimension::activated(int iMsg)
|
|||
std::vector<Gui::SelectionObject>::iterator itSel = selection.begin();
|
||||
for (; itSel != selection.end(); itSel++) {
|
||||
if ((*itSel).getObject()->isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) {
|
||||
objFeat = dynamic_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
objFeat = static_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
SubNames = (*itSel).getSubNames();
|
||||
}
|
||||
}
|
||||
|
@ -242,6 +243,9 @@ void CmdTechDrawNewDimension::activated(int iMsg)
|
|||
,contentStr.c_str());
|
||||
|
||||
dim = dynamic_cast<TechDraw::DrawViewDimension *>(getDocument()->getObject(FeatName.c_str()));
|
||||
if (!dim) {
|
||||
throw Base::Exception("CmdTechDrawNewDimension - dim not found\n");
|
||||
}
|
||||
dim->References2D.setValues(objs, subs);
|
||||
|
||||
doCommand(Doc,"App.activeDocument().%s.MeasureType = 'Projected'",FeatName.c_str());
|
||||
|
@ -293,7 +297,7 @@ void CmdTechDrawNewRadiusDimension::activated(int iMsg)
|
|||
std::vector<Gui::SelectionObject>::iterator itSel = selection.begin();
|
||||
for (; itSel != selection.end(); itSel++) {
|
||||
if ((*itSel).getObject()->isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) {
|
||||
objFeat = dynamic_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
objFeat = static_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
SubNames = (*itSel).getSubNames();
|
||||
}
|
||||
}
|
||||
|
@ -325,6 +329,9 @@ void CmdTechDrawNewRadiusDimension::activated(int iMsg)
|
|||
doCommand(Doc, "App.activeDocument().%s.FormatSpec = 'R%%value%%'", FeatName.c_str());
|
||||
|
||||
dim = dynamic_cast<TechDraw::DrawViewDimension *>(getDocument()->getObject(FeatName.c_str()));
|
||||
if (!dim) {
|
||||
throw Base::Exception("CmdTechDrawNewRadiusDimension - dim not found\n");
|
||||
}
|
||||
dim->References2D.setValues(objs, subs);
|
||||
|
||||
doCommand(Doc,"App.activeDocument().%s.MeasureType = 'Projected'",FeatName.c_str());
|
||||
|
@ -377,7 +384,7 @@ void CmdTechDrawNewDiameterDimension::activated(int iMsg)
|
|||
std::vector<Gui::SelectionObject>::iterator itSel = selection.begin();
|
||||
for (; itSel != selection.end(); itSel++) {
|
||||
if ((*itSel).getObject()->isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) {
|
||||
objFeat = dynamic_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
objFeat = static_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
SubNames = (*itSel).getSubNames();
|
||||
}
|
||||
}
|
||||
|
@ -411,6 +418,9 @@ void CmdTechDrawNewDiameterDimension::activated(int iMsg)
|
|||
doCommand(Doc, "App.activeDocument().%s.FormatSpec = '\xe2\x8c\x80%%value%%'", FeatName.c_str()); // utf-8 encoded diameter symbol
|
||||
|
||||
dim = dynamic_cast<TechDraw::DrawViewDimension *>(getDocument()->getObject(FeatName.c_str()));
|
||||
if (!dim) {
|
||||
throw Base::Exception("CmdTechDrawNewDiameterDimension - dim not found\n");
|
||||
}
|
||||
dim->References2D.setValues(objs, subs);
|
||||
|
||||
doCommand(Doc,"App.activeDocument().%s.MeasureType = 'Projected'",FeatName.c_str());
|
||||
|
@ -463,7 +473,7 @@ void CmdTechDrawNewLengthDimension::activated(int iMsg)
|
|||
std::vector<Gui::SelectionObject>::iterator itSel = selection.begin();
|
||||
for (; itSel != selection.end(); itSel++) {
|
||||
if ((*itSel).getObject()->isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) {
|
||||
objFeat = dynamic_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
objFeat = static_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
SubNames = (*itSel).getSubNames();
|
||||
}
|
||||
}
|
||||
|
@ -513,6 +523,9 @@ void CmdTechDrawNewLengthDimension::activated(int iMsg)
|
|||
doCommand(Doc,"App.activeDocument().%s.Type = '%s'", FeatName.c_str()
|
||||
, "Distance");
|
||||
dim = dynamic_cast<TechDraw::DrawViewDimension *>(getDocument()->getObject(FeatName.c_str()));
|
||||
if (!dim) {
|
||||
throw Base::Exception("CmdTechDrawNewLengthDimension - dim not found\n");
|
||||
}
|
||||
dim->References2D.setValues(objs, subs);
|
||||
|
||||
doCommand(Doc, "App.activeDocument().%s.FormatSpec = '%%value%%'", FeatName.c_str());
|
||||
|
@ -567,7 +580,7 @@ void CmdTechDrawNewDistanceXDimension::activated(int iMsg)
|
|||
std::vector<Gui::SelectionObject>::iterator itSel = selection.begin();
|
||||
for (; itSel != selection.end(); itSel++) {
|
||||
if ((*itSel).getObject()->isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) {
|
||||
objFeat = dynamic_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
objFeat = static_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
SubNames = (*itSel).getSubNames();
|
||||
}
|
||||
}
|
||||
|
@ -615,6 +628,9 @@ void CmdTechDrawNewDistanceXDimension::activated(int iMsg)
|
|||
,"DistanceX");
|
||||
|
||||
dim = dynamic_cast<TechDraw::DrawViewDimension *>(getDocument()->getObject(FeatName.c_str()));
|
||||
if (!dim) {
|
||||
throw Base::Exception("CmdTechDrawNewDistanceXDimension - dim not found\n");
|
||||
}
|
||||
dim->References2D.setValues(objs, subs);
|
||||
|
||||
doCommand(Doc, "App.activeDocument().%s.FormatSpec = '%%value%%'", FeatName.c_str());
|
||||
|
@ -669,7 +685,7 @@ void CmdTechDrawNewDistanceYDimension::activated(int iMsg)
|
|||
std::vector<Gui::SelectionObject>::iterator itSel = selection.begin();
|
||||
for (; itSel != selection.end(); itSel++) {
|
||||
if ((*itSel).getObject()->isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) {
|
||||
objFeat = dynamic_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
objFeat = static_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
SubNames = (*itSel).getSubNames();
|
||||
}
|
||||
}
|
||||
|
@ -716,6 +732,9 @@ void CmdTechDrawNewDistanceYDimension::activated(int iMsg)
|
|||
doCommand(Doc,"App.activeDocument().%s.Type = '%s'",FeatName.c_str()
|
||||
,"DistanceY");
|
||||
dim = dynamic_cast<TechDraw::DrawViewDimension *>(getDocument()->getObject(FeatName.c_str()));
|
||||
if (!dim) {
|
||||
throw Base::Exception("CmdTechDrawNewDistanceYDimension - dim not found\n");
|
||||
}
|
||||
dim->References2D.setValues(objs, subs);
|
||||
|
||||
doCommand(Doc, "App.activeDocument().%s.FormatSpec = '%%value%%'", FeatName.c_str());
|
||||
|
@ -770,7 +789,7 @@ void CmdTechDrawNewAngleDimension::activated(int iMsg)
|
|||
std::vector<Gui::SelectionObject>::iterator itSel = selection.begin();
|
||||
for (; itSel != selection.end(); itSel++) {
|
||||
if ((*itSel).getObject()->isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) {
|
||||
objFeat = dynamic_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
objFeat = static_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
SubNames = (*itSel).getSubNames();
|
||||
}
|
||||
}
|
||||
|
@ -801,6 +820,9 @@ void CmdTechDrawNewAngleDimension::activated(int iMsg)
|
|||
,"Angle");
|
||||
|
||||
dim = dynamic_cast<TechDraw::DrawViewDimension *>(getDocument()->getObject(FeatName.c_str()));
|
||||
if (!dim) {
|
||||
throw Base::Exception("CmdTechDrawNewAngleDimension - dim not found\n");
|
||||
}
|
||||
dim->References2D.setValues(objs, subs);
|
||||
|
||||
doCommand(Doc,"App.activeDocument().%s.MeasureType = 'Projected'",FeatName.c_str());
|
||||
|
@ -858,7 +880,7 @@ void CmdTechDrawLinkDimension::activated(int iMsg)
|
|||
std::vector<Gui::SelectionObject>::iterator itSel = selection.begin();
|
||||
for (; itSel != selection.end(); itSel++) {
|
||||
if ((*itSel).getObject()->isDerivedFrom(Part::Feature::getClassTypeId())) {
|
||||
obj3D = dynamic_cast<Part::Feature*> ((*itSel).getObject());
|
||||
obj3D = static_cast<Part::Feature*> ((*itSel).getObject());
|
||||
subs = (*itSel).getSubNames();
|
||||
}
|
||||
}
|
||||
|
@ -1072,8 +1094,8 @@ int _isValidEdgeToEdge(Gui::Command* cmd) {
|
|||
bool _isValidVertexToEdge(Gui::Command* cmd) {
|
||||
bool result = false;
|
||||
std::vector<Gui::SelectionObject> selection = cmd->getSelection().getSelectionEx();
|
||||
TechDraw::DrawViewPart* objFeat0 = dynamic_cast<TechDraw::DrawViewPart *>(selection[0].getObject());
|
||||
//TechDraw::DrawViewPart* objFeat1 = dynamic_cast<TechDraw::DrawViewPart *>(selection[1].getObject());
|
||||
TechDraw::DrawViewPart* objFeat0 = static_cast<TechDraw::DrawViewPart *>(selection[0].getObject());
|
||||
//TechDraw::DrawViewPart* objFeat1 = static_castt<TechDraw::DrawViewPart *>(selection[1].getObject());
|
||||
const std::vector<std::string> SubNames = selection[0].getSubNames();
|
||||
if(SubNames.size() == 2) { //there are 2
|
||||
int eId,vId;
|
||||
|
|
|
@ -39,7 +39,8 @@ using namespace TechDrawGui;
|
|||
|
||||
QGIArrow::QGIArrow() :
|
||||
m_fill(Qt::SolidPattern),
|
||||
m_size(5.0)
|
||||
m_size(5.0),
|
||||
m_style(0)
|
||||
{
|
||||
isFlipped = false;
|
||||
m_brush.setStyle(m_fill);
|
||||
|
|
|
@ -41,6 +41,7 @@ using namespace TechDrawGui;
|
|||
QGISectionLine::QGISectionLine()
|
||||
{
|
||||
m_extLen = 8.0;
|
||||
m_arrowSize = 0.0;
|
||||
|
||||
m_line = new QGraphicsPathItem();
|
||||
addToGroup(m_line);
|
||||
|
|
|
@ -138,7 +138,8 @@ void QGIDatumLabel::mouseReleaseEvent( QGraphicsSceneMouseEvent * event)
|
|||
}
|
||||
|
||||
QGIViewDimension::QGIViewDimension() :
|
||||
hasHover(false)
|
||||
hasHover(false),
|
||||
m_lineWidth(0.0)
|
||||
{
|
||||
setHandlesChildEvents(false);
|
||||
setFlag(QGraphicsItem::ItemIsMovable, false);
|
||||
|
|
|
@ -455,7 +455,7 @@ void QGIViewPart::drawSectionLine(bool b)
|
|||
{
|
||||
//Base::Console().Message("TRACE - QGIVP::drawSectionLine);
|
||||
|
||||
TechDraw::DrawViewPart *viewPart = dynamic_cast<TechDraw::DrawViewPart *>(getViewObject());
|
||||
TechDraw::DrawViewPart *viewPart = static_cast<TechDraw::DrawViewPart *>(getViewObject());
|
||||
TechDraw::DrawViewSection *viewSection = viewPart->getSectionRef();
|
||||
if (!viewPart ||
|
||||
!viewSection) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user