From aed8a9b3cd72c389424e24a6ac72b6908d875423 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Thu, 16 Apr 2015 00:09:46 +0200 Subject: [PATCH] Fix crash on closing Tell the document we're no longer an observer in the destructor BUGS: 346149 FIXED-IN: KDE Applications 15.04.1 --- ui/magnifierview.cpp | 6 ++++++ ui/magnifierview.h | 1 + ui/pageview.cpp | 1 - 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ui/magnifierview.cpp b/ui/magnifierview.cpp index 75c6cb9cd..8e0b3307e 100644 --- a/ui/magnifierview.cpp +++ b/ui/magnifierview.cpp @@ -35,6 +35,12 @@ MagnifierView::MagnifierView(Okular::Document* document, QWidget* parent) , m_document(document) , m_page(0) { + document->addObserver(this); +} + +MagnifierView::~MagnifierView() +{ + m_document->removeObserver(this); } void MagnifierView::notifySetup(const QVector< Okular::Page* >& pages, int setupFlags) diff --git a/ui/magnifierview.h b/ui/magnifierview.h index d047406e5..da8aace27 100644 --- a/ui/magnifierview.h +++ b/ui/magnifierview.h @@ -30,6 +30,7 @@ class MagnifierView : public QWidget, public Okular::DocumentObserver public: MagnifierView( Okular::Document *document, QWidget *parent = 0 ); + ~MagnifierView(); void notifySetup( const QVector< Okular::Page * > & pages, int setupFlags ); void notifyPageChanged( int page, int flags ); diff --git a/ui/pageview.cpp b/ui/pageview.cpp index 1631d9327..93fab89a2 100644 --- a/ui/pageview.cpp +++ b/ui/pageview.cpp @@ -396,7 +396,6 @@ PageView::PageView( QWidget *parent, Okular::Document *document ) d->magnifierView = new MagnifierView(document, this); d->magnifierView->hide(); d->magnifierView->setGeometry(0, 0, 351, 201); // TODO: more dynamic? - document->addObserver(d->magnifierView); connect(document, SIGNAL(processMovieAction(const Okular::MovieAction*)), this, SLOT(slotProcessMovieAction(const Okular::MovieAction*))); connect(document, SIGNAL(processRenditionAction(const Okular::RenditionAction*)), this, SLOT(slotProcessRenditionAction(const Okular::RenditionAction*)));