> On Sept. 4, 2016, 10:14 a.m., Martin Tobias Holmedahl Sandsmark wrote:
> > ui/pageview.cpp, line 1500
> > <https://git.reviewboard.kde.org/r/128821/diff/1/?file=475893#file475893line1500>
> >
> >     Don't put assignments in the if condition.
> >     
> >     Also, prefer to do an early exit, i. e.
> >     
> >         if (!pinchGesture)
> >         {
> >             return false;
> >         }
> >     
> >     or similar.
> >     
> >     Lastly, don't use static_cast here, it doesn't do runtime type 
> > checking. 
> >     
> >     And always prefer qobject_cast over dynamic_cast if you can (that is, 
> > if you're casting QObjects). It is faster than dynamic_cast and works 
> > across dynamic libraries.
> 
> Oliver Sander wrote:
>     I moved the assignment out of the conditional.
>     
>     IMO the early exit is not a good idea.  Eventually, the gestureEvent 
> method may support other gestures than just pinches.  In that case exiting is 
> not the right thing to do when the pinch variable is nulptr.
>     
>     The static_cast is taken from the Qt documentation (e.g., 
> http://doc.qt.io/qt-5/qtwidgets-gestures-imagegestures-example.html). As I 
> understand it, event->gesture(Qt::PinchGesture) does the runtime type 
> checking for you.
>     
>     QGestureEvents are not QObjects, there qobject_cast is not appropriate.
> 
> Martin Tobias Holmedahl Sandsmark wrote:
>     >  IMO the early exit is not a good idea.  Eventually, the gestureEvent 
> method may support other gestures than just pinches.  In that case exiting is 
> not the right thing to do when the pinch variable is nulptr.
>     
>     Fair enough. But then I guess it makes more sense to check gestureType() 
> in the if() and then cast inside the conditional block.
>     
>     > As I understand it, event->gesture(Qt::PinchGesture) does the runtime 
> type checking for you.
>     
>     I'm not sure from the documentation, so I think it makes sense to check 
> gestureType().
>     
>     > QGestureEvents are not QObjects, there qobject_cast is not appropriate.
>     
>     My bad, I was looking at QPinchGesture.

> Fair enough. But then I guess it makes more sense to check gestureType() in 
> the if() and then cast inside the conditional block.

You mean

if (event->gesture(Qt::PinchGesture))
{
  QPinchGesture *pinch = 
your_favorite_cast<QPinchGesture*>(event->gesture(Qt::PinchGesture));
  ...
  
? That would mean two calls to event->gesture(Qt::PinchGesture), unless we move 
the assignment into the conditional again.  Are the two calls what you want?  
(I have no opinion here).


- Oliver


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/128821/#review98864
-----------------------------------------------------------


On Sept. 4, 2016, 7:48 p.m., Oliver Sander wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/128821/
> -----------------------------------------------------------
> 
> (Updated Sept. 4, 2016, 7:48 p.m.)
> 
> 
> Review request for Okular.
> 
> 
> Bugs: 366781
>     http://bugs.kde.org/show_bug.cgi?id=366781
> 
> 
> Repository: okular
> 
> 
> Description
> -------
> 
> The attached patch implements document zoom controlled by a two-finger pinch 
> gesture on a touch screen.
> 
> The actual zooming was done by copy'n'paste, I don't understand the full 
> details of how zooming works in okular, yet.  So a bit of review would be 
> appreciated.
> 
> 
> Diffs
> -----
> 
>   ui/pageview.h 01c39bf 
>   ui/pageview.cpp cd53407 
> 
> Diff: https://git.reviewboard.kde.org/r/128821/diff/
> 
> 
> Testing
> -------
> 
> I tested it on my Lenovo Thinkpad Yoga, and it works nicely there.
> 
> 
> Thanks,
> 
> Oliver Sander
> 
>

Reply via email to