Closes GH-14 where flashing text in Mix mode would not flash to the
transparent background.
The bundled QtGifImage does not expose a way to change the DisposalMode in
giflib and thus it is fixed at 0 or DISPOSAL_UNSPECIFIED. This is a quick and
dirty change to fix it to 2 or DISPOSAL_BACKGROUND for our needs.
A proper fix would be to fork QtGifImage and add a more accessible API call
to choose the DisposalMode value.
Using the Escape key followed by Shift and a number key to insert a
foreground mosaic attribute doesn't work on an AZERTY keyboard layout where
the Shift key is always needed to type a number.
The additional escape keys are on the top row of letters situated below the
equivalent number key as those letters were not previously not used.
Red: 1 or A
Green: 2 or Z
Yellow: 3 or E
Blue: 4 or R
Magenta: 5 or T
Cyan: 6 or Y
White: 7 or U
Black: 0 or P
"Invalid triplets" are triplets that have failed Hamming 24/18 decoding.
Previously, invalid triplets were converted at load time to either all zero
bits or, in the case of X/26 enhancement triplets, to "dummy" triplets of
reserved mode 11110 with a row address group that hopefully have no effect.
Now the X/26 enhancement triplet list can explicitly store invalid triplets
and will show them as "error decoding triplet".
Invalid triplets in other packets such as X/28/0 will still be zeroed out at
load time.
Since the TTI format has no provision for storing invalid triplets, saving a
page will convert the invalid triplets to reserved mode 11110 as described
above.
The actual bits of invalid triplets are not stored on the assumption that
they are not recoverable. Thus exporting to t42 format will write an invalid
triplet as a Hamming coded result of all zero bits which will still cause a
Hamming decoding failure.
Attempts to fix a bug where the central page editing widget was sometimes
squashed to a tiny size in the corner.
Also introduces a schema for settings storage. There are no changes in this
schema; this is (mis)used to forget the geometry and state when version
0.8.1 is started for the first time to make sure the central widget is
usuable again.
External pages with DRCS definitions can be loaded using the options in the
"DRCS pages" submenu within the "View" menu. Two DRCS pages can be loaded,
one for Global DRCS definitions and the other for Normal DRCS definitions.
Level 2.5 mode 0 PTUs are fully supported.
Partial support for Level 3.5 mode 1, 2 and 3 PTUs. DCLUTs defined in X/28/1
on the main page are not yet implemented; the characters currently appear in
the default DCLUTs described in D.1.6 and D.2.2 of the ETSI spec.
A document is first loaded as a generic PageBase before being converted to
level one pages afterwards.
This is preparation for loading pages of other types such as DRCS and Public
Object Pages. The latter will need further work as the non-TTI file loaders
blindly assume X/1 to X/25 are 7-bit odd parity coded.
This also reverts 0a1c018 putting back the copy constructor that allows
a PageBase to be converted to a LevelOnePage.
"Metadata" is data which is stored in a teletext file format but is not part
of the page itself, such as DE description and CT cycle time in the TTI file
format.