Added round erasers that only expose 25% of the background each
time you click and apply the eraser.
Reworked how erasers are handled in the code to make it easier
to add this.
Reworked how eraser icons are drawn in the selector on the right.
(Squares and non-fuzzy, non-transparent circles are solid;
fuzzy circles are solid in the center with a dithered edge;
transparent circles are entirely dithered.)
TODO
* Document the new eraser type
* Remove a visual artfact (XOR outline) when using Ctrl-Z to Undo
* Eraser icons turn from black to white when temporarily switching
to certain other tools (e.g., after prompts like Quit or Print,
or after using Save)
Updates the Bulgarian translation to 100%.
Also fixes an inconsistency in the translation of the word "click", replacing all instances with the variant, derived from English, since it makes it easier to understand the mouse is being talked about.
appstreamcli validate gets very upset if you have a trailing period in
the name of the app:
E: org.tuxpaint.Tuxpaint:116: name-has-dot-suffix P\u025bntiri Tukisi .
E: org.tuxpaint.Tuxpaint:119: name-has-dot-suffix Tuks il\u0259 \u015f\u0259kil \u00e7\u0259k.
The named values for <display_length> were removed in Appstream 1.0,
released recently. In their place, use integer values.
For the <requires> block, attempt to encode the same reasonableness
restrictions as are enforced on the windowsize setting. The code
requires the height to be at least 480px and the width at least 500px,
but there is no way to specify width versus height, just shortest versus
longest edge, so I just require that the shortest edge is at least
500px.
For the <recommends> block, 768px is the suggested number in the
appstream specification for laptops and tablets.
005c5f104dhttps://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-relations-display_length
* In function ‘get_starter_template_options’:
"warning: dereferencing type-punned pointer will break strict-aliasing
rules [-Wstrict-aliasing]":
(short unsigned int *)&(opts->bkgd_color[0]), [...etc.]
* In function ‘strncpy’,
inlined from ‘safe_strncpy’ at src/tuxpaint.c:32022:9,
inlined from ‘trash’ at src/tuxpaint.c:30690:3:
"warning: ‘__builtin_strncpy’ output may be truncated copying
255 bytes from a string of length 255 [-Wstringop-truncation]":
return __builtin___strncpy_chk (__dest, __src, __len,
Syncing docs to grab version & date updates, MAGIC-API tweak,
and updated quickstart guide.
Update `org.tuxpaint.Tuxpaint.appdata.xml.in` to mention
2- and 3-point perspective, and "complexity" option, too.
Regen. POT & PO files to grab new strings from appdata file.
Novice=0, Advanced=2, so we can test "complexity >= SOME_LEVEL"
if a tool works in both Beginner and Advanced modes (vs. "<=" which
seemed backwards).
Add some print-able string names for the complexity levels.
When a Magic plugin fails to init (e.g., now the Clone tool does,
in "novice" mode), show the message as "Notice", not "Error",
and helpfully remind us of the complexity level.
Provide a "_DEFAULT" #define that tuxpaint.c can use, rather than
hard-coding "_ADVANCED", in case things change in the future.