diff options
Diffstat (limited to 'sd/inc/Outliner.hxx')
-rwxr-xr-x | sd/inc/Outliner.hxx | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/sd/inc/Outliner.hxx b/sd/inc/Outliner.hxx index 45db437e9370..2eeebaec4454 100755 --- a/sd/inc/Outliner.hxx +++ b/sd/inc/Outliner.hxx @@ -35,6 +35,8 @@ #include <editeng/SpellPortions.hxx> #include <memory> #include <boost/shared_ptr.hpp> +#include <boost/weak_ptr.hpp> +#include <boost/noncopyable.hpp> class Dialog; class SdPage; @@ -104,7 +106,8 @@ class Window; </p> */ class Outliner - : public SdrOutliner + : public SdrOutliner, + public ::boost::noncopyable { public: friend class ::sd::outliner::OutlinerContainer; @@ -193,8 +196,11 @@ private: /// The view which displays the searched objects. ::sd::View* mpView; - /// The view shell containing the view. - ::boost::shared_ptr<ViewShell> mpViewShell; + /** The view shell containing the view. It is held as weak + pointer to avoid keeping it alive when the view is changed + during searching. + */ + ::boost::weak_ptr<ViewShell> mpWeakViewShell; /// This window contains the view. ::sd::Window* mpWindow; /// The document on whose objects and pages this class operates. @@ -346,11 +352,6 @@ private: */ bool mbPrepareSpellingPending; - /** In this flag we store whether the view shell is valid and may be - accessed. - */ - bool mbViewShellValid; - /** Initialize the object iterator. Call this method after being invoked from the search or spellcheck dialog. It creates a new iterator pointing at the current object when this has not been done |