Commit graph

2400 commits

Author SHA1 Message Date
Bill Kendrick
1068a33167 Mended Color Mixer random color bug
If you set a color, then come back to Color Mixer and immediately
dismiss the dialog (without setting a color), an indeterminate
color could appear due to uninitialized variables (new_r, _g, _b).

Closes https://sourceforge.net/p/tuxpaint/bugs/251/
h/t @kentonyanamin on Twitter
2022-06-14 01:14:39 -07:00
Bill Kendrick
7e6f848994 check_translations.sh FIXME: Check LINGUAS 2022-06-14 00:55:31 -07:00
Bill Kendrick
a7151c7b43 Merge commit '21bdf7de11' 2022-06-14 00:49:25 -07:00
Bill Kendrick
cdba8ffbbd Adding an auto option for button sizes
Merge 333f4b05a4 sdl2.0->master

(See https://sourceforge.net/p/tuxpaint/feature-requests/218/)
2022-06-14 00:14:02 -07:00
Will Thompson
21bdf7de11 Add additional .desktop file categories
These are taken from Fedora, which replaces Art with Graphics and adds
KidsGame.

In my opinion, Art is appropriate, but so are 2DGraphics (hence
Graphics) and KidsGame (hence Game).
2022-06-10 21:46:03 +01:00
Will Thompson
74506214e7 Add appstream metainfo file
This is used by software centres such as GNOME Software to display
information about the app, both before and after it is installed.

The <id> used here follows the recommendations in the Appstream
specification, with the exception of violating the spec's strong
encouragement to use only lowercase characters. This is because the
version that is already published by Flathub uses an uppercase T in the
final component of the ID.[0] The file shipped by Fedora followed an older
convention of using the desktop file name as the ID. This is
acknowledged by the <provides> section near the bottom of the file,
which will allow software centres to associate the reverse-domain-name
ID with the older ID.[1]

Many fields in this file are translatable.  This was the motivation for
the preceeding two changes:

- By using xgettext rather than intltool, the untranslated template may
  be written using the normal appstream XML tags, rather than needing to
  use (for example) <_name>Tux Paint</_name> to mark that field for
  translation, which renders the template not valid for tools like
  'appstreamcli validate'.
- Merging translations at build time, rather than committing the
  translated XML to the repo as well, avoids another potentially
  error-prone manual step when updating the source file or translations.

The release notes are taken from the press releases on the Tuxpaint
website. They will be extracted for translation. Another option is to
replace the <description> with <url type="details">...</url>, but AFAIK
no software centres currently show these URLs.[2]

[0]: https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-id-generic
[1]: https://www.freedesktop.org/software/appstream/docs/sect-Metadata-Application.html#tag-id-desktopapp
[2]: https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-releases

TODO:

- align comment

Fixes: https://sourceforge.net/p/tuxpaint/feature-requests/172/
2022-06-10 21:45:44 +01:00
Will Thompson
b4aa697474 Merge desktop file at build time
Previously, both the .desktop.in template and the final .desktop file
were checked into source control.

While in some ways convenient, the manual step of updating it may be
forgotten after updating a translation or adjusting the template. It
also potentially introduces confusion as to which file to modify.

Instead, generate the .desktop file at build time. Since this is now
done using msgfmt rather than intltool, there is no additional
dependency beyond gettext, which is already used at build time to
compile .po files to .mo files.
2022-06-10 10:36:56 +01:00
Will Thompson
3141249969 Remove intltool dependency
Since gettext 0.19, gettext itself has been able to extract strings from
and merge translations to .desktop files. As a result, there is no need
to use intltool.  More details are available on
https://wiki.gnome.org/MigratingFromIntltoolToGettext, though that page
assumes a project using Autotools, which this project does not.

One advantage of using xgettext rather than intltool is that there is no
need to prefix translatable keys in the .desktop.in file with _. This
patch adjusts tuxpaint.desktop.in accordingly, which makes the input
file itself a valid desktop file.

The LINGUAS file contains the list of supported languages. This could
in principle be generated automatically from one of the other places in
the source tree that has a manually-maintained list of languages; but in
my experience it is generally maintained by hand and checked into the
source tree.

POTFILES.in.in must be updated to remove the intltool-specific file
encoding annotation; instead this is passed to xgettext.

Finally, update-po.sh is rewritten to invoke xgettext and msgfmt rather
than intltool commands.

The mangling of POTFILES.in.in to prefix all filenames with '../' is
only necessary to minimize the churn when updating the .pot and .po
files, to simplify review of this change. The alternative is to pass
--directory=.. to xgettext. This would cause all .po files to be updated
as follows when regenerated:

     #. Response to Black (0, 0, 0) color selected
    -#: ../colors.h:86
    +#: colors.h:86
     msgid "Black!"
     msgstr "Noir !"
2022-06-10 10:36:56 +01:00
Will Thompson
e7ec1efdc8 Remove unused, no-op create_pot_file.sh
614f6573e7 made this "a no-op script, for
now", in September 2006. It seems safe to assume, 16 years later, that
if it is needed it can be recovered from the Git history.
2022-06-10 10:36:56 +01:00
Pere Pujal i Carabantes
1d0ea00d95 Updating Catalan. 2022-06-04 10:03:42 +02:00
Bill Kendrick
a3f915be1c Happy 20th Anniversary! 2022-06-04 00:06:00 -07:00
dolphin6k
f21018282c Updated Japanese translation (tile zoom) 2022-06-03 14:09:23 +09:00
Bill Kendrick
ff470263a0 Different description for Tile Zoom than plain Zoom
Oops, had committed to sdl2.0 only :eyeroll:
2022-06-02 21:17:23 -07:00
Pere Pujal i Carabantes
78586144ab Updating Catalan translation. 2022-05-31 00:04:28 +02:00
dolphin6k
8babe0e4ee Updated Japanese translation 2022-05-28 18:06:07 +09:00
Bill Kendrick
23cc59539c Show SDL version in --verbose-version output 2022-05-22 23:52:32 -07:00
Bill Kendrick
2b5b6132ab Backport OSK keyboard debug change to master
Allow for an "OSK_DEBUG" to be set, to show only debug
from `onscreen_keyboard.c`, and nowhere else.
2022-05-20 00:25:32 -07:00
Bill Kendrick
ff05e91f39 SDL-agnostic way to declare callback func. for SDL_SetEventFilter()
SDL 1.2 wants a "const SDL_Event *",
SDL 2.0 wants a "union SDL_Event *".
2022-05-19 01:34:19 -07:00
Bill Kendrick
166b6aa233 Mend bug in SDL agnostic SDL_TimerID check
Had 0 vs NULL swapped between SDL 1 & 2
2022-05-19 01:21:32 -07:00
Bill Kendrick
4a1d0cc846 SDL-agnostic way of handling SDL_TimerID diff
SDL 1.2 it's a pointer (so "NULL" is invalid),
SDL 2 it's an int (so "0" is invalid).
2022-05-19 01:13:24 -07:00
Bill Kendrick
c8db730c4f Backport a few warning squelches from sdl-2.0 branch
https://sourceforge.net/p/tuxpaint/tuxpaint/ci/dfba73d327df49cbea16207ab25c11991be2c0c7/
2022-05-19 01:05:19 -07:00
Bill Kendrick
a6f5449ce4 Backport sdl-2.0 prompt shadow fix to master 2022-05-18 23:42:13 -07:00
Bill Kendrick
d3d2ecde1a Portuguese translation update
h/t Hugo
2022-05-18 00:00:56 -07:00
Bill Kendrick
932c86b8dc "reversort"; make sure Slideshow starts at the _top_
...since that will be where the newest images are.
2022-05-16 00:05:57 -07:00
Bill Kendrick
b2225a62f5 WIP Reverse sorting in Open & Slideshows dialog
...via --reversesort option.  WIP; need docs updated.
(Also need Tux Paint Config. changes, but that's another repo)
2022-05-15 23:56:53 -07:00
Bill Kendrick
27ec817973 The "Slideshow" begins by showing most recent images
...rather than the oldest.  (i.e., defaults to being scrolled
to the very bottom now, rather than the very top)
2022-05-15 23:39:28 -07:00
Bill Kendrick
ea7f88ab92 POT/PO update 2022-05-07 18:15:12 -07:00
Bill Kendrick
e9001c9fac Move where paperinit() is called
h/t to upstream developer of libpaper!
(https://sourceforge.net/p/tuxpaint/bugs/250/)
2022-04-29 18:16:27 -07:00
Bill Kendrick
cc6cf1ebcc Remedy bug in Apply Label feature w/ Enter key
Should correct bug https://sourceforge.net/p/tuxpaint/bugs/249/
h/t Shin-ichi
2022-04-22 18:16:55 -07:00
dolphin6k
b6aab66898 Updated Japanese translations. 2022-04-22 15:57:57 +09:00
Bill Kendrick
8fac8476f4 Open dialog scroll buttons auto-repeat now
Had an unwanted SDL_RemoveTimer call in a dumb place. :/
2022-04-18 23:31:08 -07:00
Bill Kendrick
0aab76291b Remove some debugging printfs
...HOWEVER, the auto-repeat of scroll buttons in the Open dialog
do not seem to work, despite the code being identical to what
I just added to New and Slideshow...!?
2022-04-18 22:09:28 -07:00
Bill Kendrick
da201ecfe8 Formatting clean-up 2022-04-18 22:07:34 -07:00
Bill Kendrick
206ca7cee2 Slideshow dialog scroll buttons auto-repeat 2022-04-18 22:03:54 -07:00
Bill Kendrick
10e121bd0f New dialog scroll buttons auto-repeat 2022-04-18 21:55:17 -07:00
dolphin6k
98fb5c2aee Corrected "#ifdef WIN32" for tmpstr/wtmpstr 2022-04-13 21:26:28 +09:00
dolphin6k
6a5eddac15 Fixed crash when loading label with whitespace only. 2022-04-12 22:06:49 +09:00
Bill Kendrick
ec4f0a07b1 WIP Open dialog auto-repeat scrolling
Not actually working; not sure why timer isn't firing!?
2022-04-08 01:53:40 -07:00
Bill Kendrick
9b4257b61c WIP Starting work on autorepeat scroll in New/Open dialogs
For https://sourceforge.net/p/tuxpaint/feature-requests/173/
2022-04-07 02:28:14 -07:00
Bill Kendrick
fb596fb887 Avoid crash on unexpected "saved dimensions" loading Labels 2022-04-06 01:32:21 -07:00
Bill Kendrick
7db784ce88 Tools' scroll buttons auto-repeat
The "Tools" section's up & down scroll buttons auto-repeat if
you click/tap and hold them.

For https://sourceforge.net/p/tuxpaint/feature-requests/173/
(Still to-do: The buttons in the Open & New dialogs.)
2022-04-02 21:15:35 -07:00
Bill Kendrick
565da81071 Remove a leftover debug printf 2022-04-02 20:53:18 -07:00
Bill Kendrick
347a9b5cc8 Sanity checks in load_info_about_label_surface()
Avoid crashes when coming across unexpected Label data stored within
a saved PNG image.
(h/t Donny Sianipar for the report & sample image)
2022-04-02 17:29:22 -07:00
Bill Kendrick
b897e47cc2 parse.gperf: make memcpy() call happy
Hopefully this doesn't break anything; I'm struggling to
understand how this stuff works.
2022-03-22 21:24:49 -07:00
Bill Kendrick
b95bb10768 Refresh PO after tweaking color picker descr. 2022-03-17 01:29:23 -07:00
Bill Kendrick
c4ac0c9487 Tweak description of HSV rainbow color picker 2022-03-17 01:28:17 -07:00
Bill Kendrick
7856e7af6c Avoid color picker crosshairs blitting outside zones 2022-03-17 01:09:50 -07:00
Bill Kendrick
b568bf86d2 Color picker: Eat motion events to avoid over-rendering
...when spamming the event queue with motion events over the
value slider, while Tux Paint is busy re-rendering the
rainbow palette at the new Value level.

Also, convert a printf() in the new color picker crosshair sizing
function to DEBUG_PRINTF().
2022-03-17 00:54:49 -07:00
Bill Kendrick
1b9933b7c2 More appropriately-sized crosshairs on color picker
The corsshairs on the rainbow palette color picker are larger
(by default), and scale up or down based on the UI size
(--buttonsize setting).
2022-03-17 00:36:40 -07:00
Bill Kendrick
8aeb022849 tuxpaint.c: replace some tabs with spaces 2022-03-16 00:38:37 -07:00