GoToFlow::setNumSlides() is called each time a comic is opened. So when
e.g. three comics were opened one after another without restarting
YACReader, each of the PictureFlow::centerIndexChanged* signals was
connected to GoToFlow::preload three times, which multiplied the number
of calls to preload() accordingly.
During my testing PictureFlow::centerIndexChanged* signals were never
emitted before the first call to GoToFlow::setNumSlides(), so connecting
in GoToFlow::GoToFlow() should not cause extra calls to preload().
This data member is modified in PageLoader's own thread and accessed
without locking from an external thread in the public busy() function.
Reorder setting working and img in PageLoader::run() to avoid a data
race in PageLoader::result() called from GoToFlow::updateImageData().
Qt documentation recommends calling saveGeometry() in closeEvent().
This commit fixes the following bug on my GNU/Linux with Xfce system:
1. Move the top of the YACReader window to the top of the screen.
2. Restart YACReader (exit and run again).
2. Enter full screen mode.
4. Restart YACReader.
5. Exit full screen mode.
At this point YACReader's title bar is hidden beyond the top of the
screen, i.e. the window has moved up.
closeEvent is accepted by default, so this commit does not change the
application behavior. But Qt documentation recommends not relying on the
default value as subclasses may choose to clear it in their constructor.
Without this commit the horizontal wheel on a two-wheel mouse acts the
same as the vertical wheel in YACReader.
horizontalScroller is used analogously to verticalScroller in
Viewer::scrollTo(). So I made the horizontal wheel work analogously to
the vertical wheel except for moving to the next or previous page.