diff options
| author | Jon A. Cruz <jon@joncruz.org> | 2014-03-02 20:31:12 +0000 |
|---|---|---|
| committer | Jon A. Cruz <jon@joncruz.org> | 2014-03-02 20:31:12 +0000 |
| commit | c8d15c18dcb8d089f8103d74015f6651d9b9b27c (patch) | |
| tree | a5b153975efdda5a5649aaa76a9dbea1e5eec439 /src | |
| parent | cleanup (diff) | |
| download | inkscape-c8d15c18dcb8d089f8103d74015f6651d9b9b27c.tar.gz inkscape-c8d15c18dcb8d089f8103d74015f6651d9b9b27c.zip | |
Adding destroy signal do document to allow proper cleanup.
(bzr r13094)
Diffstat (limited to 'src')
| -rw-r--r-- | src/document-private.h | 1 | ||||
| -rw-r--r-- | src/document.cpp | 7 | ||||
| -rw-r--r-- | src/document.h | 3 |
3 files changed, 11 insertions, 0 deletions
diff --git a/src/document-private.h b/src/document-private.h index 065101174..35f21910c 100644 --- a/src/document-private.h +++ b/src/document-private.h @@ -52,6 +52,7 @@ struct SPDocumentPrivate { GHashTable *resources; ResourcesChangedSignalMap resources_changed_signals; + sigc::signal<void> destroySignal; SPDocument::ModifiedSignal modified_signal; SPDocument::URISetSignal uri_set_signal; SPDocument::ResizedSignal resized_signal; diff --git a/src/document.cpp b/src/document.cpp index 112503320..18e626b5b 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -141,6 +141,8 @@ SPDocument::SPDocument() : } SPDocument::~SPDocument() { + priv->destroySignal.emit(); + // kill/unhook this first if ( profileManager ) { delete profileManager; @@ -230,6 +232,11 @@ SPDocument::~SPDocument() { //delete this->_whiteboard_session_manager; } +sigc::connection SPDocument::connectDestroy(sigc::signal<void>::slot_type slot) +{ + return priv->destroySignal.connect(slot); +} + SPDefs *SPDocument::getDefs() { if (!root) { diff --git a/src/document.h b/src/document.h index e5567d3b6..ee903449d 100644 --- a/src/document.h +++ b/src/document.h @@ -85,6 +85,9 @@ public: SPDocument(); virtual ~SPDocument(); + sigc::connection connectDestroy(sigc::signal<void>::slot_type slot); + + unsigned int keepalive : 1; unsigned int virgin : 1; ///< Has the document never been touched? unsigned int modified_since_save : 1; |
