-
Pl
chevron_right
Jonathan Blandford: Crosswords 0.3.18: Style and Substance
news.movim.eu / PlanetGnome • 13:00 • 4 minutes
Greetings!
Time for a new Crosswords release. This is a massive one with over 1,000 changes from 18 different contributors, and is the biggest release I’ve done to date! This features major improvement to the appearance of the Player , and to the usefulness of the grid filling code in the Editor .
Player: Artwork and Appearance
I made a real push this cycle to improve the appearance for GNOME Circle inclusion ( tracking bug ). We made almost too many usability and appearance improvements to mention! The artwork also got a major improvement with a great intro screen, new icons, and a fabulous looking “How to Play” screen. Take a look:
The artwork also is responsive to the libadwaita accent colors. Thanks a ton to Tobias, Hylke, and Gnoman for their fantastic work on this. It makes the game look so much more professional.
Mobile mode
As part of all the work for Circle we adopted more of the recent libadwaita widgets. This basically gave us “mobile mode” for free. It’s not perfect: we’re missing some gesture support and the behavior has some quirks. I could also use more support in GTK as well — we’re missing a chunk of the expected mobile API. But for something that wasn’t worked on intentionally it’s really impressive at how well the adaptive widgetry works in libadwaita.
In addition, sp1rit did a GTK Android build of Crosswords as a proof of concept. It’s missing some crucial elements — namely python for the import pipeline — so you can’t play many games with it. But it’s amazing that it works at all.
Android version of Crosswords
Magnifier
I’ve been jealous of a feature that exists in the fabulous Typesetter app, namely right clicking on the output it will bring up a magnifier. I mentioned this to Toluwaleke (of Mutter GPU Reset fame), and he quickly wrote the same for Crosswords. It looks great, and cleverly reuses the ::snapshot() method to do the zoom. It will work with the mouse, or can be toggled by the keyboard. Take a look:
Editor: Layers and the AC3 Solver
For this release, we closed one of the biggest gaps the Editor had by adding information layers to the grid. This is a little hard to explain, so a demo might help. The layers are used to indicate different challenges in building a grid, and are required for any serious crossword editor. We support the following layers:
- Spell Check: Indicates when the word in a slot isn’t in the dictionary
- Unchecked Cells: Indicates slots that are 1 or 2 cells long
- Heatmap: Warns of cells that are hard to fill
- Unfillable Cells: Indicates that there are no dictionary words that fit a slot
The spell check and unchecked cells jobs were straightforward to implement, but the heatmap/unfillable cell jobs are not. Fortunately, GSoC student Victor wrote a Design Doc last summer to propose a way to calculate these. He ran out of summer to implement it, so I picked it up this past Spring. It took some time, but I’m really happy with the results. It’s not fast enough to be synchronous, but does run in ~200msec, which means we can run it every change. Given that some other apps we surveyed took seconds or even minutes to complete, I’m really pleased with the performance.
Additional Editor Features
EditDateRow Widget
- As part of her GSoC project, Laureen wrote EditDateRow modeled after AdwComboRow. This is much more convenient than a raw entry. We’re adding more custom data entry rows that go with the libadwaita set. Let me know if you find this one interesting and want to use it and I’ll clean it up for general consumption.
- I had a user testing surprise, as it turned out the histogram was actually useful for setters. Certain sites won’t allow too many three letter words, and want a good letter distribution. As a result, I cleaned it up and made it more prominent.
- I’ve had a skip list for the WordList for quite some time, but it was only used for autofill. It’s now used more widely, and can save/load from disk.
Histogram
What’s next?
I have a number of planned features for next time:
- I need to give the word list code a refresh. I added support for word removals but need to let users add them as well. In addition, I want a custom word list import feature.
- We will land code for the vocab puzzle GSoC project.
- There are two new GTK features I’m really looking forward to adopting: Snapping and animated SVGs. The latter is going to be amazing !
- And hopefully, I really hope that the next release is the release where we finally get into GNOME Circle. Fingers crossed.
Thanks for reading!