Commit graph

1420 commits

Author SHA1 Message Date
dolphin6k
44c8efc115 Load plugins only from global plugin directory on Windows.
This prevent the crash when "datadir" is set to the program directory.
2023-11-12 22:51:21 +09:00
dolphin6k
848517dbe4 Force log files to go under AppData 2023-11-12 18:41:30 +09:00
dolphin6k
9eb8fcff43 Added build arc to version output and relocated. 2023-10-28 18:57:04 +09:00
dolphin6k
10a0a34b1b Output Version of Tux Paint and Windows
This enables to know the user's environment easily.
2023-10-28 17:55:38 +09:00
Pere Pujal i Carabantes
9cc26e6ed6 Subdirs in Android assets are not browsable. Listing all of them, additionally, a script to download, join and order the stamps is being commited at the Tuxpaint-Android source. 2023-10-16 01:31:08 +02:00
Bill Kendrick
b94044f557 Text/Label tools: Show font info in instructions at the bottom 2023-10-14 00:17:18 -07:00
Bill Kendrick
90ef703403 Ensure hand pointer appears when hovering over tool controls
...e.g. size controls in Magic, flip/mirror, size, and rotate
controls in Stamps, text style controls in Text and Label, etc.
2023-10-13 23:58:04 -07:00
Bill Kendrick
e43c506d20 Mend scroll-down arrow bug Stamps selector...
...when stamp controls were disabled.
2023-10-13 23:18:00 -07:00
Bill Kendrick
b71a4d2987 Avoid stamp & eraser XOR garbage when using quick eraser
(Click+[X])
2023-07-19 00:49:16 -07:00
Bill Kendrick
fbda2c26a1 Avoid Cairo-scaling stamps under new RSVG library
It was causing SVG-based stamps to appear corrupted (a zoomed in
and cropped view of the top-left corner of the shape, rather than
the entire shape).
2023-07-08 10:27:23 -07:00
Shinichi TOYAMA
d43f10c5f2 rsvg_handle_render_document() is not available before librsvg 2.46
https://gnome.pages.gitlab.gnome.org/librsvg/Rsvg-2.0/method.Handle.render_document.html
2023-07-08 20:50:06 +09:00
dolphin6k
5081340f2e Trial to make listing locale fonts shipped with Tux Paint by --listfonts 2023-07-02 18:07:58 +09:00
dolphin6k
17a0a59a50 Trial to make ui font fallback enable when no config option specified. 2023-07-02 18:05:42 +09:00
Bill Kendrick
e98daa5a62 Fill -> Linear Gradient: Show angle while dragging
When using the Linear Gradient fill tool, the angle of the
gradient is now is shown (in the instructions at the bottom).

h/t Miyagi Andel for the idea
2023-07-01 01:21:10 -07:00
Pere Pujal i Carabantes
580572892f Typo? 2023-06-29 23:49:41 +02:00
Pere Pujal i Carabantes
a303908aa9 Redirecting stdout to a more appropiate place for newer Androids. 2023-06-29 20:10:49 +02:00
Bill Kendrick
d073d41eed Avoid a pair of double free()'s!
h/t Shin-ichi for reporting two of these

  warning: pointer 'unc_buff' used after 'free' [-Wuse-after-free]
2023-06-21 22:47:52 -07:00
Bill Kendrick
9199174dca Cast TTF_FontFaceFamilyName from const char * ...
...to char *

Trying to avoid warning Shin-ichi reported

  warning: assignment discards 'const' qualifier from pointer target type
2023-06-21 22:43:52 -07:00
Bill Kendrick
04d0116ae5 Mend magic .sizes treated as a bool, instead of array
h/t Shin-ichi for reporting seeing warnings about

  warning: the comparison will always evaluate as 'true' for the address of 'sizes' will never be NULL

Magic tool ".sizes" was recently turned into an array (per-mode of the
Magic tool), but a few references forgot to account for that.

Corrected like so

e.g., from
  if (magics[magic_group][cur_thing].sizes)
to
  if (magics[magic_group][cur_thing].sizes[magic_modeint(magics[magic_group][cur_thing].mode)])
2023-06-21 22:39:21 -07:00
Bill Kendrick
a094ec850d Use rsvg_handle_get_dimensions() again, sometimes
If RSVG is < 2.52.x, go back to using rsvg_handle_get_dimensions()
(which is deprecated these days) instead of the newer
rsvg_handle_get_intrinsic_size_in_pixels() that replaced it.
(Shin-ichi reports that function is not available on Rocky Linux 9.)

Note - I also recently replaced rsvg_handle_render_cairo() with
rsvg_handle_render_document(), but Shin-ichi didn't report problems
with that; it's been available since 2.46.

See https://sourceforge.net/p/tuxpaint/bugs/278/
2023-06-21 22:26:01 -07:00
Bill Kendrick
23976aa651 New style for color picker (HSV palette) button
Also mend a rendering issue with paint wells on the three
dynamic color buttons.
2023-06-19 12:28:48 -07:00
Bill Kendrick
d4869ac062 Mend color picker on label change; drop LOW_QUALITY_COLOR_SELECTOR
When selecting a label that has a color not found in the built-ins,
we change to the color picker; however, when rendering its button,
it looked wrong and would not fit to the right size (had 48x48
hard-coder in there, still!)  Instead, using `render_color_button()`
to just re-render it.

Also, dropping LOW_QUALITY_COLOR_SELECTOR which had been used by
some embedded platforms we don't seem to support any more (Nokia Maemo
and OLPC XO-1).
2023-06-19 12:05:17 -07:00
Bill Kendrick
20d45409ce Stop using rsvg_handle_render_cairo
It is deprecated.  Using rsvg_handle_render_document() instead.
2023-06-18 13:31:19 -07:00
Bill Kendrick
e59686f942 Stop using rsvg_handle_get_dimensions
It is deprecated.  Using rsvg_handle_get_intrinsic_size_in_pixels()
now instead.
2023-06-18 13:20:43 -07:00
Bill Kendrick
c7f1e0a257 Mend a minor compiler warning 2023-06-15 16:52:11 -07:00
Bill Kendrick
104c27086b Bump some file update dates! 2023-06-13 00:27:50 -07:00
Bill Kendrick
0437b898ca Allow primary & fallback locale fonts to be specified
e.g., for Chinese Traditional, try to use the full font (that
we supply as an optional download), then try the 'subset' font
that we ship with Tux Paint.
2023-06-13 00:25:49 -07:00
Bill Kendrick
0bfc8c18c1 Looks like SDL2_Pango can find our fonts now
Made sure to add our font dir (e.g., /usr/local/share/tuxpaint/fonts/)
to FontConfig's directories before trying to load uifont!

Also, update font names to match what we ship with Tux Paint.
WIP -- Would like to supply some alternatives.
2023-06-12 23:51:07 -07:00
Bill Kendrick
794ea691e8 WIP Trying to get SDL_Pango (& FontConfig) to see our locale fonts 2023-06-12 22:13:19 -07:00
Mark Kim
d6dbd39231 Set FONTCONFIG_PATH before --listfonts on macOS
Also, search more system folders for fonts on macOS.
2023-06-10 16:20:47 -04:00
Bill Kendrick
3c8f25e6e9 Ability to specify fonts on a per-locale basis
Add to the list found in `src/fonts.c` (use language IDs
found in `src/i18n.h`, e.g. "LANG_DE" for German).
h/t Shin-ichi for the suggestion

Closes https://sourceforge.net/p/tuxpaint/feature-requests/240/
2023-06-08 00:40:43 -07:00
Bill Kendrick
1f623cbe36 Finished exported template deletion feature 2023-06-08 00:08:07 -07:00
Bill Kendrick
375c079b85 Some clean-up of new strip_quotes() 2023-06-06 22:18:19 -07:00
dolphin6k
ab7567f2c0 Strip quotes around option argument. 2023-06-07 09:56:03 +09:00
Bill Kendrick
596c6ea0cc TODO/FIXME re: uifont stuff
h/t Shin-ichi for help with this
2023-06-04 16:21:20 -07:00
Bill Kendrick
65f3c805d1 Better debug & warning output re: wordexp() shell expansion 2023-06-03 14:17:03 -07:00
Bill Kendrick
fe33acc716 Don't crash on un-wordexp()'able arguments!
We run shell expansion on configuration arguments,
e.g. `printcommand`, but it would crash if the config
file's input was not quoted, e.g.

  printcommand=pstopdf - - > $HOME/print.pdf

Now echo'ing an error to stderr and moving on.
Be sure to quote, e.g.

  printcommand="pstopdf - - > $HOME/print.pdf"
2023-06-03 14:10:13 -07:00
Bill Kendrick
0e359a1fba tuxpaint --listfonts -- sort the results 2023-06-01 23:48:19 -07:00
Bill Kendrick
1cf2fa245d --listfonts option to show all font families Pango finds 2023-06-01 23:31:04 -07:00
Bill Kendrick
34b0760aea WIP Ability to Erase persoanl templates from New
Sync docs
2023-06-01 22:48:56 -07:00
Bill Kendrick
4c757c2a36 WIP Beginning work on "Erase" exported templates via "New" 2023-06-01 22:19:07 -07:00
Bill Kendrick
437802252b "--noerase" option to disable Open->Erase option
Will also be used to remove the New->Erase option we plan
to add, to allow deletion of exported templates.

WIP - Need to update docs.
2023-06-01 21:29:24 -07:00
Bill Kendrick
1b6ee72e87 "uifont" option: tell us what we wanted & what we got
The requested font & actual font loaded will be echo'd to STDOUT
when specifying the `uifont` option.

This uses Pango library directly (I was unable to convice SDL2_Pango.h
to actually notice that pango.h was #include'd before it, and expose
its SDLPango_GetPangoFontDescription() function!).  This is okay,
since we want to also add a "--uifont list" option (or similar),
that will list all of the available fonts, if a user wishes to
query them.  (And similar code will be added to tuxpaint-config to make
the setting available as a pull-down, rather than (or as well as) a
freeform type-in field.)
2023-06-01 00:20:41 -07:00
Bill Kendrick
83c4cbc676 WIP New "--uifont" option to specify UI font
If not specified, or "default" is specified (e.g., to override
a higher-up config file setting), it will fallback to what we
have #define'd in fonts.h as PANGO_DEFAULT_FONT, "DejaVu Sans".

It appears to fallback to this (or a reasonable fascimile) if
the font specified by the "uifont" option doesn't exist
(e.g., "tuxpaint --uifont=ABCD1234").

For https://sourceforge.net/p/tuxpaint/feature-requests/146/
2023-05-29 13:13:58 -07:00
Bill Kendrick
b4a550a6e1 Add --[no]templateexport to --help output 2023-05-29 12:43:11 -07:00
Bill Kendrick
65378f6fdd Ability to disable Template creation from Open dialog 2023-05-29 10:50:55 -07:00
Bill Kendrick
33394f397b Template export: test image dimensions & file CRC
Final couple of tests to let us avoid creating a template that's
identical to one that already exists.  All told, we test the
following (and the first thing that matches causes us to stop
testing that template, and move on to the next, as it appears
to not be identical to the saved image, in its current state)

 + filename prefix (based on saved image's filename)
 + file size
 + image dimensions
 + image contents (via CRC)
2023-05-27 15:40:30 -07:00
Bill Kendrick
e578de2c6b Template export: Test file sizes, too
Avoid exporting a saved picture to a new template if one already
exists with both the same filename prefix, and now also identical
file sizes (in bytes).

Bugfix - The export function was always dumping chunks that
were the size of the input buffer, which means the final chunk
(which will frequently be smaller) will contain garbage data
beyond the end.
2023-05-27 14:17:48 -07:00
Bill Kendrick
785401d68e WIP Disallow creation of duplicate templates...
...based on saved files.  So far, only looking for identical
template prefix (which is based on the save file's filename).

Next will be to check other fingerprints, in case the saved file
changed after an earlier template was created.
2023-05-27 13:09:05 -07:00
Bill Kendrick
9537efd987 export_pict(), use some enums for args & return values 2023-05-27 12:46:01 -07:00