gimp/tools
Jehan 3904c40dc1 app, tools: allow creating demo "scenarios" from the AppStream metadata.
The idea is to add some "demo" attribute to a list item inside the
<release> tag, since we already decided that (for now at least) we'd
keep a strict "intro + list" logics, as we did until now.

This demo attribute uses an internal format to specify successive
widgets to blink (like a demo path towards a feature). For now, what it
allows is:

* raise the toolbox, select a tool and blink the tool button.
* raise a dockable, blink any widgets in there.

Now it is still limited and needs to evolve. In particular:

* What happens if the blinked tool button was explicitly removed from
  Preferences? Should we re-add it for the demo? And once done, should
  we remove it again? Then should we select back the tool previously
  selected?
* What happens if the dockable widget is not visible? Should we allow
  changing the settings to be able to demo correctly the new/changed
  settings? Should it be temporary? If temporary, it can be annoying as
  you'd still have to look attentively the demo to find back the path to
  the new settings. If not temporary, some people may dislike we touch
  their settings.
* What if docks are hidden? Should we unhide them, then hide them back
  after demo time?

Also regarding the implementation: originally I wanted to just grab the
demo attribute directly from the AppStream metadata file, but I realized
that appstream-glib cleans out unknown attribute from the XML. I could
then simply parse the file with a generic XML parser, but I found
simpler to pre-parse it into a header built within GIMP. I still use
appstream-glib at runtime as it takes care of localization for us
(though in the same time, we also have the localization in the main po
files, so maybe we could just embed the release note strings as well).

See appstream-glib report: https://github.com/hughsie/appstream-glib/issues/431
2022-03-05 23:39:14 +01:00
..
.gitignore desktop, plug-ins, tools: update various .gitignore. 2019-08-07 19:20:52 +02:00
Makefile.am icons, tools: fix the CI when building icon resources with vector icons. 2022-01-31 22:33:30 +01:00
colorsvg2png.c icons, tools: new colorsvg2png tool to build PNG out of SVG. 2022-01-31 14:52:42 +01:00
compute-svg-viewbox.c tools: update the build-only tool compute-svg-viewbox. 2020-08-28 20:25:40 +02:00
defcheck.py tools: port defcheck.py to Python 3. 2019-07-28 23:19:05 +02:00
extract-vector-icon.sh tools: update the build-only tool compute-svg-viewbox. 2020-08-28 20:25:40 +02:00
flatpak-releases tools: add a `flatpak-releases` tool for quick testing with Flatpak. 2022-01-22 16:04:35 +01:00
generate-icon-makefiles.py icons, tools: review visible, linked and lock icons. 2022-02-01 15:31:49 +01:00
generate-news tools/generate-news Add a script to generate a NEWS file template 2015-05-02 14:29:39 -04:00
generate-welcome-dialog-data.py app, tools: allow creating demo "scenarios" from the AppStream metadata. 2022-03-05 23:39:14 +01:00
generate_changelog.sh Meson port. 2019-09-11 16:42:04 +02:00
gimp-debug-resume.c tools, fix implicit declaration of function atoi warning 2019-12-11 21:59:11 +01:00
gimp-mkenums tools: fix perl warning about unescaped left brace in gimp-mkenums 2019-01-03 15:22:43 +01:00
gimp-test-clipboard.c Fix various typos 2019-09-21 17:10:46 +00:00
gimppath2svg.py Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimptool.c tools: win32_command() return value is never freed. 2021-10-21 12:31:55 +02:00
kernelgen.c Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
meson.build icons, tools: fix the CI when building icon resources with vector icons. 2022-01-31 22:33:30 +01:00
meson_install_subdir.py tools: improve the install-* meson targets. 2019-09-15 00:00:35 +02:00
mnemonic-clashes tools: add mnemonic-clashes tool 2019-09-12 17:56:45 +03:00
module-dependencies.py Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
performance-log-close-tags.py tools: add performance-log-close-tags.py, use in performance-log-viewer 2020-07-30 01:03:38 +03:00
performance-log-coalesce.py tools: add performance-log-coalesce.py; use in performance-log-viewer 2018-10-10 15:32:14 -04:00
performance-log-deduce.py tools: add performance-log-deduce.py 2018-09-16 11:58:38 -04:00
performance-log-expand.py tools: in performance-log-expand.py, preserve threads with empty stacks 2018-11-07 14:26:16 -05:00
performance-log-progressive-coalesce.py tools: add performance-log-progressive-coalesce.py; use in performance-log-viewer 2020-07-30 01:04:40 +03:00
performance-log-resolve.py tools: add performance-log-related tools 2018-09-02 03:12:09 -04:00
performance-log-viewer tools: add performance-log-progressive-coalesce.py; use in performance-log-viewer 2020-07-30 01:04:40 +03:00
performance-log-viewer.py tools: in performance-log-viewer.py, handle markers with > INT_MAX timestamps 2020-03-06 12:37:06 +02:00
release-stats.sh devel-docs, tools: move the release-stats script to tools/. 2022-02-01 14:34:46 +01:00