[Kde-games-devel] Review Request 115048: Refactor Palapeli Scene and MainWindow into a new GamePlay class

Ian Wadham iandw.au at gmail.com
Thu Jan 16 02:16:18 UTC 2014


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

Review request for KDE Games.


Repository: palapeli


Description
-------

Methods relating to the puzzle as a whole have been moved from Palapeli::Scene and Palapeli::MainWindow into Palapeli::GamePlay, including implementations of menu and toolbar actions, puzzle loading and shuffling, puzzle saving and restoring, victory animation and progress reporting.

The changes to Palapeli::Scene are to provide a simpler, more generic class that can be used in multiple scenes, i.e. the original puzzle table and any number of piece-holders for use in solving large puzzles.
    
The main methods remaining in Palapeli::Scene are adding and removing pieces, moving pieces, merging (or joining) pieces and signalling changes in the state of the puzzle and its pieces, wherever they may be in the puzzle table or piece-holders.

The attached diff is the end result of all the changes, for information and code-review. There should be no change to Palapeli features or functionality.

The six commits involved have all been pushed to origin master.


Diffs
-----

  src/window/mainwindow.cpp e3656e0 
  src/window/puzzletablewidget.cpp f4de012 
  src/CMakeLists.txt d99ba22 
  src/engine/gameplay.h PRE-CREATION 
  src/engine/gameplay.cpp PRE-CREATION 
  src/engine/piece.h b94b2eb 
  src/engine/piece.cpp 9b94d0d 
  src/engine/scene.h 5cd524e 
  src/engine/scene.cpp 92e11b4 
  src/engine/view.cpp ed814b8 
  src/window/mainwindow.h 1f414b5 

Diff: https://git.reviewboard.kde.org/r/115048/diff/


Testing
-------

Used an 8-piece and a 500-piece puzzle to check that all the functions in the life-cycle of a Palapeli jigsaw puzzle work as they did before, but there could still be some bugs that were introduced by the changes. Features checked included puzzle loading, bevels on pieces, shadows on pieces, highlighting selections using colored shadows, saving the puzzle state continuously (at least within 500 msec), restoring the puzzle state, reporting progress, shuffling a puzzle, restarting a puzzle, moving the scene-boundary and providing a victory animation when the puzzle is solved.

Possible regressions in other KActions have not yet been checked, e.g. puzzle creation, export, import and deletion.

It was noted that Palapeli has no interlock or cancellation between actions when an action takes some time. For example, it is possible to do 'Back to collection' while a puzzle is loading and select another puzzle, but the first puzzle goes on loading ...


Thanks,

Ian Wadham

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-games-devel/attachments/20140116/e65e36fa/attachment.html>


More information about the kde-games-devel mailing list