Skip to content

Implement save/re-open crosswords

Antoine Belvire requested to merge feature/39_save_puzzle/main into master

Context

Implements #39 (closed).

What has changed?

Main Changes

puzzle-codec-xd

  • A codec for the xd format, a text crossword puzzle format

spi-puzzle-repository

  • New spi-puzzle-repository defining a CRUD puzzle storage

puzzle-repository-memory-plugin

  • An implementation of spi-puzzle-repository that works purely in memory. First implementation made, only used for tests.

puzzle-repository-filesystem-plugin

  • An implementation of spi-puzzle-repository that works with files on disk.

spi-presenter

  • Added PuzzlePresenter gather puzzle repository-related presentation method definitions

common

  • Added puzzle types

core

  • Added puzzle service that allows to manage saved puzzles. Mainly boilerplate to interact with the puzzle repository and the presenter
  • Added the possibility to save puzzle on a solve request.

tests

  • Added tests for the puzzle service

cli

  • Implemented control and presentation.

gui

  • Implemented control and presentation. Highlights:
    • New welcome screen allowing to visualize puzzle in repository, select a puzzle to edit or to delete from repository
    • New left pane to edit puzzle details
    • New save buttons

Side Effects

common

  • Breaking changes, moved types around, reworked types

gui-*

  • Lots of changes going from icon theme update to cutting the dependency between gui-view-model and common

Reviewers

The MR is huge. Development was actually made in smaller chunks: See #39 (closed) for list of individual MRs.

Let's see how things fit together now. Hopefully, there won't be big surprises at this point.

Edited by Antoine Belvire

Merge request reports