It is yet again time for another release of Blocks, version 2.1.0!
As you may recall, the last Blocks release was v1.0.0. Why such a large version jump? Well, I did this to make up for my failure in releasing v1.0.0. You see, I essentially rewrote Blocks in v1.0.0. It was without a doubt the biggest changes I ever made in the program’s lifetime. v0.9.1 was really and truly the v1.0.0 release, and with the large changes I made last time I should have called it v2.0.0. Thus in this version, I am rectifying my mistake + the changes I made this time around. That explains the version increase. 🙂
With that bit past, I can move on to the biggest news in this release.
For the longest time I have wanted to give my programs a proper GUI instead of a command-line interface but have lacked the skill to ever do such. Blocks was my first attempt at a GUI, aided by the built-in Tkinter library. However, making a GUI in code is a nightmare and Tkinter is not the best GUI library around. My eventual intentions have always been to use PyQt. Yet even that has been prohibited by lack of usable documentation on PyQt5, the latest and recommended library version to use.
After much experimentation and consulting the Qt docs, I finally managed to figure out what to do to “wire up” GUIs created the Qt Designer program. The result? A completely rewritten GUI, now with undo/redo, completely redesigned character legends, and an overall nicer look!
There were also a few other notable changes in this release:
- Open button keyboard binding is now <Ctrl + o>, just like every other sane program
- The line number and proper index are now displayed in the invalid character dialog (screenshot)
- The invalid character check is again case-insensitive (regression from 1.0.0)
- The level layout is checked for errors before attempting to save (another regression from 1.0.0)
As always, you can download this Blocks release from GitHub!