+ fix possible crash in DocumentItem
This commit is contained in:
parent
f19fe1f8ed
commit
c2d0857ddc
|
@ -826,21 +826,30 @@ DocumentItem::DocumentItem(const Gui::Document* doc, QTreeWidgetItem * parent)
|
||||||
: QTreeWidgetItem(parent, TreeWidget::DocumentType), pDocument(doc)
|
: QTreeWidgetItem(parent, TreeWidget::DocumentType), pDocument(doc)
|
||||||
{
|
{
|
||||||
// Setup connections
|
// Setup connections
|
||||||
doc->signalNewObject.connect(boost::bind(&DocumentItem::slotNewObject, this, _1));
|
connectNewObject = doc->signalNewObject.connect(boost::bind(&DocumentItem::slotNewObject, this, _1));
|
||||||
doc->signalDeletedObject.connect(boost::bind(&DocumentItem::slotDeleteObject, this, _1));
|
connectDelObject = doc->signalDeletedObject.connect(boost::bind(&DocumentItem::slotDeleteObject, this, _1));
|
||||||
doc->signalChangedObject.connect(boost::bind(&DocumentItem::slotChangeObject, this, _1));
|
connectChgObject = doc->signalChangedObject.connect(boost::bind(&DocumentItem::slotChangeObject, this, _1));
|
||||||
doc->signalRenamedObject.connect(boost::bind(&DocumentItem::slotRenameObject, this, _1));
|
connectRenObject = doc->signalRenamedObject.connect(boost::bind(&DocumentItem::slotRenameObject, this, _1));
|
||||||
doc->signalActivatedObject.connect(boost::bind(&DocumentItem::slotActiveObject, this, _1));
|
connectActObject = doc->signalActivatedObject.connect(boost::bind(&DocumentItem::slotActiveObject, this, _1));
|
||||||
doc->signalInEdit.connect(boost::bind(&DocumentItem::slotInEdit, this, _1));
|
connectEdtObject = doc->signalInEdit.connect(boost::bind(&DocumentItem::slotInEdit, this, _1));
|
||||||
doc->signalResetEdit.connect(boost::bind(&DocumentItem::slotResetEdit, this, _1));
|
connectResObject = doc->signalResetEdit.connect(boost::bind(&DocumentItem::slotResetEdit, this, _1));
|
||||||
doc->signalHighlightObject.connect(boost::bind(&DocumentItem::slotHighlightObject, this, _1,_2,_3));
|
connectHltObject = doc->signalHighlightObject.connect(boost::bind(&DocumentItem::slotHighlightObject, this, _1,_2,_3));
|
||||||
doc->signalExpandObject.connect(boost::bind(&DocumentItem::slotExpandObject, this, _1,_2));
|
connectExpObject = doc->signalExpandObject.connect(boost::bind(&DocumentItem::slotExpandObject, this, _1,_2));
|
||||||
|
|
||||||
setFlags(Qt::ItemIsEnabled/*|Qt::ItemIsEditable*/);
|
setFlags(Qt::ItemIsEnabled/*|Qt::ItemIsEditable*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
DocumentItem::~DocumentItem()
|
DocumentItem::~DocumentItem()
|
||||||
{
|
{
|
||||||
|
connectNewObject.disconnect();
|
||||||
|
connectDelObject.disconnect();
|
||||||
|
connectChgObject.disconnect();
|
||||||
|
connectRenObject.disconnect();
|
||||||
|
connectActObject.disconnect();
|
||||||
|
connectEdtObject.disconnect();
|
||||||
|
connectResObject.disconnect();
|
||||||
|
connectHltObject.disconnect();
|
||||||
|
connectExpObject.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DocumentItem::slotInEdit(const Gui::ViewProviderDocumentObject& v)
|
void DocumentItem::slotInEdit(const Gui::ViewProviderDocumentObject& v)
|
||||||
|
|
|
@ -171,6 +171,17 @@ protected:
|
||||||
private:
|
private:
|
||||||
const Gui::Document* pDocument;
|
const Gui::Document* pDocument;
|
||||||
std::map<std::string,DocumentObjectItem*> ObjectMap;
|
std::map<std::string,DocumentObjectItem*> ObjectMap;
|
||||||
|
|
||||||
|
typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
|
||||||
|
Connection connectNewObject;
|
||||||
|
Connection connectDelObject;
|
||||||
|
Connection connectChgObject;
|
||||||
|
Connection connectRenObject;
|
||||||
|
Connection connectActObject;
|
||||||
|
Connection connectEdtObject;
|
||||||
|
Connection connectResObject;
|
||||||
|
Connection connectHltObject;
|
||||||
|
Connection connectExpObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The link between the tree and a document object.
|
/** The link between the tree and a document object.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user