From 47ff65aa865203ef80f88ef8eb784a701812947c Mon Sep 17 00:00:00 2001 From: Jehan Date: Wed, 22 Feb 2023 21:29:08 +0100 Subject: [PATCH] menus: add a dockable-menu with the new GtkBuilder format. The dialogs-menuitems is shared between dockable-menu and image-menu, just as it was with the old format. For this, we use XSL transformation with XInclude, then drop the namespace (because GTK doesn't like the unknown namespace being defined and crash immediately otherwise). --- menus/dialogs-menuitems.ui | 36 +++++++++++++++++ menus/dockable-menu.ui.in | 47 +++++++++++++++++++++++ menus/{image-menu.ui => image-menu.ui.in} | 39 +------------------ menus/menus.xsl | 7 ++++ menus/meson.build | 28 +++++++++----- 5 files changed, 111 insertions(+), 46 deletions(-) create mode 100644 menus/dialogs-menuitems.ui create mode 100644 menus/dockable-menu.ui.in rename menus/{image-menu.ui => image-menu.ui.in} (94%) diff --git a/menus/dialogs-menuitems.ui b/menus/dialogs-menuitems.ui new file mode 100644 index 0000000000..56f8987df5 --- /dev/null +++ b/menus/dialogs-menuitems.ui @@ -0,0 +1,36 @@ + + +
+ app.dialogs-tool-options + app.dialogs-device-status +
+ app.dialogs-layers + app.dialogs-channels + app.dialogs-vectors + app.dialogs-indexed-palette + app.dialogs-histogram + app.dialogs-selection-editor + app.dialogs-navigation + app.dialogs-undo-history + app.dialogs-cursor + app.dialogs-sample-points + app.dialogs-symmetry +
+
+ app.dialogs-colors + app.dialogs-brushes + app.dialogs-dynamics + app.dialogs-mypaint-brushes + app.dialogs-patterns + app.dialogs-gradients + app.dialogs-palettes + app.dialogs-fonts + app.dialogs-tool-presets + app.dialogs-buffers +
+ app.dialogs-images + app.dialogs-document-history + app.dialogs-templates + app.dialogs-error-console + app.dialogs-dashboard +
diff --git a/menus/dockable-menu.ui.in b/menus/dockable-menu.ui.in new file mode 100644 index 0000000000..3911836a60 --- /dev/null +++ b/menus/dockable-menu.ui.in @@ -0,0 +1,47 @@ + + + + + + _Add Tab + + + app.dockable-close-tab + app.dockable-detach-tab + app.dockable-lock-tab +
+ + _Preview Size + app.dockable-preview-size-tiny + app.dockable-preview-size-extra-small + app.dockable-preview-size-small + app.dockable-preview-size-medium + app.dockable-preview-size-large + app.dockable-preview-size-extra-large + app.dockable-preview-size-enormous + app.dockable-preview-size-gigantic + + + _Tab Style + app.dockable-tab-style-icon + app.dockable-tab-style-preview + app.dockable-tab-style-name + app.dockable-tab-style-icon-name + app.dockable-tab-style-preview-name + + app.dockable-view-type-list + app.dockable-view-type-grid + app.dockable-show-button-bar +
+
+ app.dock-show-image-menu + app.dock-auto-follow-active +
+ + Move to Screen +
+ app.dock-open-display +
+
+
+
diff --git a/menus/image-menu.ui b/menus/image-menu.ui.in similarity index 94% rename from menus/image-menu.ui rename to menus/image-menu.ui.in index aa5d883ac1..c7a6335b92 100644 --- a/menus/image-menu.ui +++ b/menus/image-menu.ui.in @@ -1,6 +1,6 @@ - + @@ -797,42 +797,7 @@ _Dockable Dialogs -
- app.dialogs-tool-options - app.dialogs-device-status -
-
- app.dialogs-layers - app.dialogs-channels - app.dialogs-vectors - app.dialogs-indexed-palette - app.dialogs-histogram - app.dialogs-selection-editor - app.dialogs-navigation - app.dialogs-undo-history - app.dialogs-cursor - app.dialogs-sample-points - app.dialogs-symmetry -
-
- app.dialogs-colors - app.dialogs-brushes - app.dialogs-dynamics - app.dialogs-mypaint-brushes - app.dialogs-patterns - app.dialogs-gradients - app.dialogs-palettes - app.dialogs-fonts - app.dialogs-tool-presets - app.dialogs-buffers -
-
- app.dialogs-images - app.dialogs-document-history - app.dialogs-templates - app.dialogs-error-console - app.dialogs-dashboard -
+
app.dialogs-toolbox diff --git a/menus/menus.xsl b/menus/menus.xsl index 68495c713c..1c3f102dbe 100644 --- a/menus/menus.xsl +++ b/menus/menus.xsl @@ -38,6 +38,13 @@ + + + + + + + diff --git a/menus/meson.build b/menus/meson.build index 80b839dea0..f5dd7171ea 100644 --- a/menus/meson.build +++ b/menus/meson.build @@ -39,14 +39,6 @@ install_data(menus_files, install_dir: menus_dir, ) -ui_menus_files = files( - 'image-menu.ui', -) - -install_data(ui_menus_files, - install_dir: menus_dir, -) - unstable_menus_args = stable ? [] : [ '--stringparam', 'unstable-menus', 'yes' ] menus_built_files = [] @@ -67,6 +59,24 @@ foreach menu_filegen : [ 'dockable-menu.xml', 'image-menu.xml', ] ) endforeach +menus_ui_built_files = [] +foreach menu_filegen : [ 'dockable-menu.ui', 'image-menu.ui', ] + menus_ui_built_files += custom_target(menu_filegen, + input : [ menu_filegen +'.in', 'menus.xsl', ], + output: [ menu_filegen ], + command: [ + xsltproc, + '--xinclude', + unstable_menus_args, + '--output', '@OUTPUT@', + '@INPUT1@', + '@INPUT0@', + ], + install: true, + install_dir: menus_dir, + ) +endforeach + if xmllint.found() custom_target('validate_menus', command: [ @@ -90,7 +100,7 @@ if xmllint.found() xmllint, '--output', '@OUTPUT@', '--path', meson.current_source_dir(), - ui_menus_files, menus_built_files + menus_ui_built_files ], # The output file is only useful as a flag file, so that the command # knows if it has been run already.