> On Aug. 18, 2012, 6:20 p.m., Albert Astals Cid wrote: > > But notifyCurrentPageAboutToBeChanged can be wrong in pageview sometimes > > (e.g. when chaging the viewport using the scrollbar), right? > > Tobias Koenig wrote: > Hej Albert, > > why should it be wrong? > > Albert Astals Cid wrote: > Because the current page has "already" changed (i.e. i'm speaking of > pageview.cpp:4077 comment it and use the scrollbar) > > I guess this would only be a problem if pageview tries to use > notifyCurrentPageAboutToBeChanged, but... > > Tobias Koenig wrote: > Hej Albert, > > since the implementations of notifyCurrentPageAboutToBeChanged() can use > the passed parameter to determine which page has been left (instead of > m_document->viewport().pageNumber), this shouldn't be a problem in practise. > Thinking about that however raises the question whether we need two methods > in that case, or if a notifyCurrentPageChanged(int previousPage, int > currentPage) method would be enough. > What do you think?
I'd be happier with just a signal yes. - Albert ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/106058/#review17671 ----------------------------------------------------------- On Aug. 17, 2012, 9 a.m., Tobias Koenig wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/106058/ > ----------------------------------------------------------- > > (Updated Aug. 17, 2012, 9 a.m.) > > > Review request for Okular. > > > Description > ------- > > The DocumentObserver API currently does not provide a way to notify about > page changes, only about viewport changes. That means each implementation of > DocumentObserver (e.g. TOC, MiniBar, SideReview etc.) kept a private variable > to keep track of the current page to detect page changes. > > This patch moves the page change detection into the Okular::Document class > and extends the Okular::DocumentObserver API with the two callbacks > notifyCurrentPageAboutToBeChanged(int page) and notifyCurrentPageChanged(int > page). > > That allows the implementations of Okular::DocumentObserver to just > reimplement the notifyCurrentPageChanged() callback instead of reimplementing > the page-changed-detection logic. > > Since the two callbacks are always invoked on _all_ listeners, the PageView > has now a chance to get informed about page changes even though it's > notifyViewport() method is not invoked if it changes the viewport itself. > > > Diffs > ----- > > core/document.cpp f6bf699 > core/document_p.h 54e922d > core/observer.h 76c096c > core/observer.cpp 0201a1d > ui/minibar.h acb1163 > ui/minibar.cpp 051df72 > ui/pagesizelabel.h ea508b8 > ui/pagesizelabel.cpp 4a80779 > ui/pageview.h 43ca2ab > ui/pageview.cpp 5e04412 > ui/presentationwidget.h 20dbcbb > ui/presentationwidget.cpp f4da539 > ui/side_reviews.h d063b7b > ui/side_reviews.cpp a036c48 > ui/thumbnaillist.h 0d7136b > ui/thumbnaillist.cpp 8b23025 > ui/toc.h 4e63ef6 > ui/toc.cpp 3203c79 > > Diff: http://git.reviewboard.kde.org/r/106058/diff/ > > > Testing > ------- > > > Thanks, > > Tobias Koenig > >
_______________________________________________ Okular-devel mailing list Okular-devel@kde.org https://mail.kde.org/mailman/listinfo/okular-devel