index 04b3d9b0629cdc22965e88bb1cc0ef185b121b1e..1988865d10c98b88221d875eb5292d5b1c6ba92b 100644 (file)
--- a/src/document-subset.cpp
+++ b/src/document-subset.cpp
for ( Map::iterator iter=records.begin()
; iter != records.end() ; ++iter )
{
- if ((*iter).first)
+ if ((*iter).first) {
sp_object_unref((*iter).first);
+ Record &record=(*iter).second;
+ record.release_connection.disconnect();
+ record.position_changed_connection.disconnect();
+ }
}
}
void _doRemove(SPObject *obj) {
Record &record=records[obj];
- record.release_connection.disconnect();
- record.position_changed_connection.disconnect();
- records.erase(obj);
if ( record.parent == NULL ) {
Record &root = records[NULL];
}
}
+ record.release_connection.disconnect();
+ record.position_changed_connection.disconnect();
+ records.erase(obj);
removed_signal.emit(obj);
sp_object_unref(obj);
}
/* remove obj's record */
_doRemove(obj);
}
-
+
changed_signal.emit();
}