Merge lp:~ted/libdbusmenu/good-defaults-are-well-good into lp:libdbusmenu/0.5

Proposed by Ted Gould
Status: Merged
Merged at revision: 217
Proposed branch: lp:~ted/libdbusmenu/good-defaults-are-well-good
Merge into: lp:libdbusmenu/0.5
Diff against target: 5137 lines (+990/-1624)
7 files modified
.bzrignore (+1/-0)
libdbusmenu-glib/Makefile.am (+2/-0)
libdbusmenu-glib/defaults.c (+291/-0)
libdbusmenu-glib/defaults.h (+86/-0)
libdbusmenu-glib/menuitem.c (+89/-8)
tests/test-gtk-label.json (+13/-13)
tests/test-json-01.json (+508/-1603)
To merge this branch: bzr merge lp:~ted/libdbusmenu/good-defaults-are-well-good
Reviewer Review Type Date Requested Status
Mikkel Kamstrup Erlandsen (community) Approve
Review via email: mp+50691@code.launchpad.net

Description of the change

This changes dbusmenu so that it actually tracks the default values for the standard fields. It will then avoid sending default values over the bus to save data. This merge seems really large because of the test data that had to change. The test-glib-json-01.json file as gone from 135KB to 92KB by removing the default values.

To post a comment you must log in.
Revision history for this message
Mikkel Kamstrup Erlandsen (kamstrup) wrote :

 review approve

Nice work!

review: Approve
Revision history for this message
Sebastien Bacher (seb128) wrote :

The commit there seems to create menu refreshing issues, see https://bugs.launchpad.net/ubuntu/+source/libdbusmenu/+bug/723873

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '.bzrignore'
--- .bzrignore 2011-01-27 19:54:18 +0000
+++ .bzrignore 2011-02-22 04:06:19 +0000
@@ -227,3 +227,4 @@
227test-gtk-parser227test-gtk-parser
228test-gtk-parser-test228test-gtk-parser-test
229test-gtk-parser.xml229test-gtk-parser.xml
230libdbusmenu-glib/libdbusmenu_glib_la-defaults.lo
230231
=== modified file 'libdbusmenu-glib/Makefile.am'
--- libdbusmenu-glib/Makefile.am 2011-02-16 17:00:55 +0000
+++ libdbusmenu-glib/Makefile.am 2011-02-22 04:06:19 +0000
@@ -24,6 +24,8 @@
24libdbusmenu_glib_la_SOURCES = \24libdbusmenu_glib_la_SOURCES = \
25 dbus-menu-clean.xml.h \25 dbus-menu-clean.xml.h \
26 dbus-menu-clean.xml.c \26 dbus-menu-clean.xml.c \
27 defaults.h \
28 defaults.c \
27 menuitem.h \29 menuitem.h \
28 menuitem.c \30 menuitem.c \
29 menuitem-marshal.h \31 menuitem-marshal.h \
3032
=== added file 'libdbusmenu-glib/defaults.c'
--- libdbusmenu-glib/defaults.c 1970-01-01 00:00:00 +0000
+++ libdbusmenu-glib/defaults.c 2011-02-22 04:06:19 +0000
@@ -0,0 +1,291 @@
1/*
2A library to communicate a menu object set accross DBus and
3track updates and maintain consistency.
4
5Copyright 2011 Canonical Ltd.
6
7Authors:
8 Ted Gould <ted@canonical.com>
9
10This program is free software: you can redistribute it and/or modify it
11under the terms of either or both of the following licenses:
12
131) the GNU Lesser General Public License version 3, as published by the
14Free Software Foundation; and/or
152) the GNU Lesser General Public License version 2.1, as published by
16the Free Software Foundation.
17
18This program is distributed in the hope that it will be useful, but
19WITHOUT ANY WARRANTY; without even the implied warranties of
20MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
21PURPOSE. See the applicable version of the GNU Lesser General Public
22License for more details.
23
24You should have received a copy of both the GNU Lesser General Public
25License version 3 and version 2.1 along with this program. If not, see
26<http://www.gnu.org/licenses/>
27*/
28
29#ifdef HAVE_CONFIG_H
30#include "config.h"
31#endif
32
33#include <glib/gi18n.h>
34
35#include "defaults.h"
36#include "menuitem.h"
37#include "client.h"
38
39struct _DbusmenuDefaultsPrivate {
40 GHashTable * types;
41};
42
43typedef struct _DefaultEntry DefaultEntry;
44struct _DefaultEntry {
45 GVariantType * type;
46 GVariant * value;
47};
48
49#define DBUSMENU_DEFAULTS_GET_PRIVATE(o) \
50(G_TYPE_INSTANCE_GET_PRIVATE ((o), DBUSMENU_TYPE_DEFAULTS, DbusmenuDefaultsPrivate))
51
52static void dbusmenu_defaults_class_init (DbusmenuDefaultsClass *klass);
53static void dbusmenu_defaults_init (DbusmenuDefaults *self);
54static void dbusmenu_defaults_dispose (GObject *object);
55static void dbusmenu_defaults_finalize (GObject *object);
56
57static DefaultEntry * entry_create (const GVariantType * type, GVariant * variant);
58static void entry_destroy (gpointer entry);
59
60G_DEFINE_TYPE (DbusmenuDefaults, dbusmenu_defaults, G_TYPE_OBJECT);
61
62static void
63dbusmenu_defaults_class_init (DbusmenuDefaultsClass *klass)
64{
65 GObjectClass *object_class = G_OBJECT_CLASS (klass);
66
67 g_type_class_add_private (klass, sizeof (DbusmenuDefaultsPrivate));
68
69 object_class->dispose = dbusmenu_defaults_dispose;
70 object_class->finalize = dbusmenu_defaults_finalize;
71 return;
72}
73
74static void
75dbusmenu_defaults_init (DbusmenuDefaults *self)
76{
77 self->priv = DBUSMENU_DEFAULTS_GET_PRIVATE(self);
78
79 self->priv->types = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify)g_hash_table_destroy);
80
81 /* Standard defaults */
82 dbusmenu_defaults_default_set(self, DBUSMENU_CLIENT_TYPES_DEFAULT, DBUSMENU_MENUITEM_PROP_VISIBLE, G_VARIANT_TYPE_BOOLEAN, g_variant_new_boolean(TRUE));
83 dbusmenu_defaults_default_set(self, DBUSMENU_CLIENT_TYPES_DEFAULT, DBUSMENU_MENUITEM_PROP_ENABLED, G_VARIANT_TYPE_BOOLEAN, g_variant_new_boolean(TRUE));
84 dbusmenu_defaults_default_set(self, DBUSMENU_CLIENT_TYPES_DEFAULT, DBUSMENU_MENUITEM_PROP_LABEL, G_VARIANT_TYPE_STRING, g_variant_new_string(_("Label Empty")));
85 dbusmenu_defaults_default_set(self, DBUSMENU_CLIENT_TYPES_DEFAULT, DBUSMENU_MENUITEM_PROP_ICON_NAME, G_VARIANT_TYPE_STRING, NULL);
86 dbusmenu_defaults_default_set(self, DBUSMENU_CLIENT_TYPES_DEFAULT, DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE, G_VARIANT_TYPE_STRING, NULL);
87 dbusmenu_defaults_default_set(self, DBUSMENU_CLIENT_TYPES_DEFAULT, DBUSMENU_MENUITEM_PROP_TOGGLE_STATE, G_VARIANT_TYPE_INT32, NULL);
88 dbusmenu_defaults_default_set(self, DBUSMENU_CLIENT_TYPES_DEFAULT, DBUSMENU_MENUITEM_PROP_SHORTCUT, G_VARIANT_TYPE_ARRAY, NULL);
89 dbusmenu_defaults_default_set(self, DBUSMENU_CLIENT_TYPES_DEFAULT, DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY, G_VARIANT_TYPE_STRING, NULL);
90
91 /* Separator defaults */
92 dbusmenu_defaults_default_set(self, DBUSMENU_CLIENT_TYPES_SEPARATOR, DBUSMENU_MENUITEM_PROP_VISIBLE, G_VARIANT_TYPE_BOOLEAN, g_variant_new_boolean(TRUE));
93
94 return;
95}
96
97static void
98dbusmenu_defaults_dispose (GObject *object)
99{
100 DbusmenuDefaults * self = DBUSMENU_DEFAULTS(object);
101
102 if (self->priv->types != NULL) {
103 g_hash_table_destroy(self->priv->types);
104 self->priv->types = NULL;
105 }
106
107 G_OBJECT_CLASS (dbusmenu_defaults_parent_class)->dispose (object);
108 return;
109}
110
111static void
112dbusmenu_defaults_finalize (GObject *object)
113{
114
115 G_OBJECT_CLASS (dbusmenu_defaults_parent_class)->finalize (object);
116 return;
117}
118
119/* Create a new entry based on the info provided */
120static DefaultEntry *
121entry_create (const GVariantType * type, GVariant * variant)
122{
123 DefaultEntry * defentry = g_new0(DefaultEntry, 1);
124
125 if (type != NULL) {
126 defentry->type = g_variant_type_copy(type);
127 }
128
129 if (variant != NULL) {
130 defentry->value = variant;
131 g_variant_ref_sink(variant);
132 }
133
134 return defentry;
135}
136
137/* Destroy an entry */
138static void
139entry_destroy (gpointer entry)
140{
141 DefaultEntry * defentry = (DefaultEntry *)entry;
142
143 if (defentry->type != NULL) {
144 g_variant_type_free(defentry->type);
145 defentry->type = NULL;
146 }
147
148 if (defentry->value != NULL) {
149 g_variant_unref(defentry->value);
150 defentry->value = NULL;
151 }
152
153 g_free(defentry);
154 return;
155}
156
157static DbusmenuDefaults * default_defaults = NULL;
158
159/**
160 * dbusmenu_defaults_ref_default:
161 *
162 * Get a reference to the default instance. If it doesn't exist this
163 * function will create it.
164 *
165 * Return value: (transfer full): A reference to the defaults
166 */
167DbusmenuDefaults *
168dbusmenu_defaults_ref_default (void)
169{
170 if (default_defaults == NULL) {
171 default_defaults = DBUSMENU_DEFAULTS(g_object_new(DBUSMENU_TYPE_DEFAULTS, NULL));
172 g_object_add_weak_pointer(G_OBJECT(default_defaults), (gpointer *)&default_defaults);
173 } else {
174 g_object_ref(default_defaults);
175 }
176
177 return default_defaults;
178}
179
180/**
181 * dbusmenu_defaults_default_set:
182 * @defaults: The #DbusmenuDefaults object to add to
183 * @type: (allow-none): The #DbusmenuMenuitem type for this default if #NULL will default to #DBUSMENU_CLIENT_TYPE_DEFAULT
184 * @property: Property name for the default
185 * @prop_type: (allow-none): Type of the property for runtime checking. To disable checking set to #NULL.
186 * @value: (allow-none): Default value for @property. #NULL if by default it is unset, but you want type checking from @prop_type.
187 *
188 * Sets up an entry in the defaults database for a given @property
189 * and menuitem type @type. @prop_type and @value can both be #NULL
190 * but both of them can not.
191 */
192void
193dbusmenu_defaults_default_set (DbusmenuDefaults * defaults, const gchar * type, const gchar * property, const GVariantType * prop_type, GVariant * value)
194{
195 g_return_if_fail(DBUSMENU_IS_DEFAULTS(defaults));
196 g_return_if_fail(property != NULL);
197 g_return_if_fail(prop_type != NULL || value != NULL);
198
199 if (type == NULL) {
200 type = DBUSMENU_CLIENT_TYPES_DEFAULT;
201 }
202
203 GHashTable * prop_table = (GHashTable *)g_hash_table_lookup(defaults->priv->types, type);
204
205 /* We've never had a default for this type, so we need
206 to create a table for it. */
207 if (prop_table == NULL) {
208 prop_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, entry_destroy);
209
210 g_hash_table_insert(prop_table, g_strdup(property), entry_create(prop_type, value));
211 g_hash_table_insert(defaults->priv->types, g_strdup(type), prop_table);
212 } else {
213 g_hash_table_replace(prop_table, g_strdup(property), entry_create(prop_type, value));
214 }
215
216 return;
217}
218
219/**
220 * dbusmenu_defaults_default_get:
221 * @defaults: The default database to use
222 * @type: (allow-none): The #DbusmenuMenuitem type for this default if #NULL will default to #DBUSMENU_CLIENT_TYPE_DEFAULT
223 * @property: Property name to lookup
224 *
225 * Gets an entry in the database for a give @property and @type.
226 *
227 * Return value: (transfer none): Returns a variant that does not
228 * have it's ref count increased. If you want to keep it, you should
229 * do that.
230 */
231GVariant *
232dbusmenu_defaults_default_get (DbusmenuDefaults * defaults, const gchar * type, const gchar * property)
233{
234 g_return_val_if_fail(DBUSMENU_IS_DEFAULTS(defaults), NULL);
235 g_return_val_if_fail(property != NULL, NULL);
236
237 if (type == NULL) {
238 type = DBUSMENU_CLIENT_TYPES_DEFAULT;
239 }
240
241 GHashTable * prop_table = (GHashTable *)g_hash_table_lookup(defaults->priv->types, type);
242
243 if (prop_table == NULL) {
244 return NULL;
245 }
246
247 DefaultEntry * entry = (DefaultEntry *)g_hash_table_lookup(prop_table, property);
248
249 if (entry == NULL) {
250 return NULL;
251 }
252
253 return entry->value;
254}
255
256/**
257 * dbusmenu_defaults_default_get_type:
258 * @defaults: The default database to use
259 * @type: (allow-none): The #DbusmenuMenuitem type for this default if #NULL will default to #DBUSMENU_CLIENT_TYPE_DEFAULT
260 * @property: Property name to lookup
261 *
262 * Gets the type for an entry in the database for a give @property and @type.
263 *
264 * Return value: (transfer none): Returns a type for the given
265 * @property value.
266 */
267GVariantType *
268dbusmenu_defaults_default_get_type (DbusmenuDefaults * defaults, const gchar * type, const gchar * property)
269{
270 g_return_val_if_fail(DBUSMENU_IS_DEFAULTS(defaults), NULL);
271 g_return_val_if_fail(property != NULL, NULL);
272
273 if (type == NULL) {
274 type = DBUSMENU_CLIENT_TYPES_DEFAULT;
275 }
276
277 GHashTable * prop_table = (GHashTable *)g_hash_table_lookup(defaults->priv->types, type);
278
279 if (prop_table == NULL) {
280 return NULL;
281 }
282
283 DefaultEntry * entry = (DefaultEntry *)g_hash_table_lookup(prop_table, property);
284
285 if (entry == NULL) {
286 return NULL;
287 }
288
289 return entry->type;
290}
291
0292
=== added file 'libdbusmenu-glib/defaults.h'
--- libdbusmenu-glib/defaults.h 1970-01-01 00:00:00 +0000
+++ libdbusmenu-glib/defaults.h 2011-02-22 04:06:19 +0000
@@ -0,0 +1,86 @@
1/*
2A library to communicate a menu object set accross DBus and
3track updates and maintain consistency.
4
5Copyright 2011 Canonical Ltd.
6
7Authors:
8 Ted Gould <ted@canonical.com>
9
10This program is free software: you can redistribute it and/or modify it
11under the terms of either or both of the following licenses:
12
131) the GNU Lesser General Public License version 3, as published by the
14Free Software Foundation; and/or
152) the GNU Lesser General Public License version 2.1, as published by
16the Free Software Foundation.
17
18This program is distributed in the hope that it will be useful, but
19WITHOUT ANY WARRANTY; without even the implied warranties of
20MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
21PURPOSE. See the applicable version of the GNU Lesser General Public
22License for more details.
23
24You should have received a copy of both the GNU Lesser General Public
25License version 3 and version 2.1 along with this program. If not, see
26<http://www.gnu.org/licenses/>
27*/
28
29#ifndef __DBUSMENU_DEFAULTS_H__
30#define __DBUSMENU_DEFAULTS_H__
31
32#include <glib.h>
33#include <glib-object.h>
34
35G_BEGIN_DECLS
36
37#define DBUSMENU_TYPE_DEFAULTS (dbusmenu_defaults_get_type ())
38#define DBUSMENU_DEFAULTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DBUSMENU_TYPE_DEFAULTS, DbusmenuDefaults))
39#define DBUSMENU_DEFAULTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DBUSMENU_TYPE_DEFAULTS, DbusmenuDefaultsClass))
40#define DBUSMENU_IS_DEFAULTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DBUSMENU_TYPE_DEFAULTS))
41#define DBUSMENU_IS_DEFAULTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DBUSMENU_TYPE_DEFAULTS))
42#define DBUSMENU_DEFAULTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DBUSMENU_TYPE_DEFAULTS, DbusmenuDefaultsClass))
43
44typedef struct _DbusmenuDefaults DbusmenuDefaults;
45typedef struct _DbusmenuDefaultsClass DbusmenuDefaultsClass;
46typedef struct _DbusmenuDefaultsPrivate DbusmenuDefaultsPrivate;
47
48/**
49 * DbusmenuDefaultsClass:
50 *
51 * All of the signals and functions for #DbusmenuDefaults
52 */
53struct _DbusmenuDefaultsClass {
54 GObjectClass parent_class;
55};
56
57/**
58 * DbusmenuDefaults:
59 *
60 * A singleton to hold all of the defaults for the menuitems
61 * so they can use those easily.
62 */
63struct _DbusmenuDefaults {
64 GObject parent;
65
66 /*< Private >*/
67 DbusmenuDefaultsPrivate * priv;
68};
69
70GType dbusmenu_defaults_get_type (void);
71DbusmenuDefaults * dbusmenu_defaults_ref_default (void);
72void dbusmenu_defaults_default_set (DbusmenuDefaults * defaults,
73 const gchar * type,
74 const gchar * property,
75 const GVariantType * prop_type,
76 GVariant * value);
77GVariant * dbusmenu_defaults_default_get (DbusmenuDefaults * defaults,
78 const gchar * type,
79 const gchar * property);
80GVariantType * dbusmenu_defaults_default_get_type (DbusmenuDefaults * defaults,
81 const gchar * type,
82 const gchar * property);
83
84G_END_DECLS
85
86#endif
087
=== modified file 'libdbusmenu-glib/menuitem.c'
--- libdbusmenu-glib/menuitem.c 2011-02-21 12:12:33 +0000
+++ libdbusmenu-glib/menuitem.c 2011-02-22 04:06:19 +0000
@@ -33,6 +33,7 @@
33#include "menuitem.h"33#include "menuitem.h"
34#include "menuitem-marshal.h"34#include "menuitem-marshal.h"
35#include "menuitem-private.h"35#include "menuitem-private.h"
36#include "defaults.h"
3637
37#ifdef MASSIVEDEBUGGING38#ifdef MASSIVEDEBUGGING
38#define LABEL(x) dbusmenu_menuitem_property_get(DBUSMENU_MENUITEM(x), DBUSMENU_MENUITEM_PROP_LABEL)39#define LABEL(x) dbusmenu_menuitem_property_get(DBUSMENU_MENUITEM(x), DBUSMENU_MENUITEM_PROP_LABEL)
@@ -59,6 +60,7 @@
59 GHashTable * properties;60 GHashTable * properties;
60 gboolean root;61 gboolean root;
61 gboolean realized;62 gboolean realized;
63 DbusmenuDefaults * defaults;
62};64};
6365
64/* Signals */66/* Signals */
@@ -312,6 +314,8 @@
312314
313 priv->root = FALSE;315 priv->root = FALSE;
314 priv->realized = FALSE;316 priv->realized = FALSE;
317
318 priv->defaults = dbusmenu_defaults_ref_default();
315 319
316 return;320 return;
317}321}
@@ -328,6 +332,11 @@
328 g_list_free(priv->children);332 g_list_free(priv->children);
329 priv->children = NULL;333 priv->children = NULL;
330334
335 if (priv->defaults != NULL) {
336 g_object_unref(priv->defaults);
337 priv->defaults = NULL;
338 }
339
331 G_OBJECT_CLASS (dbusmenu_menuitem_parent_class)->dispose (object);340 G_OBJECT_CLASS (dbusmenu_menuitem_parent_class)->dispose (object);
332 return;341 return;
333}342}
@@ -425,6 +434,19 @@
425 return;434 return;
426}435}
427436
437/* A helper function to get the type of the menuitem, this might
438 be a candidate for optimization in the future. */
439static const gchar *
440menuitem_get_type (DbusmenuMenuitem * mi)
441{
442 DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
443 GVariant * currentval = (GVariant *)g_hash_table_lookup(priv->properties, DBUSMENU_MENUITEM_PROP_TYPE);
444 if (currentval != NULL) {
445 return g_variant_get_string(currentval, NULL);
446 }
447 return NULL;
448}
449
428/* Public interface */450/* Public interface */
429451
430/**452/**
@@ -1004,17 +1026,49 @@
10041026
1005 DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);1027 DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
10061028
1029 const gchar * type = menuitem_get_type(mi);
1030
1031 /* Check the expected type to see if we want to have a warning */
1032 GVariantType * default_type = dbusmenu_defaults_default_get_type(priv->defaults, type, property);
1033 if (default_type != NULL) {
1034 /* If we have an expected type we should check to see if
1035 the value we've been given is of the same type and generate
1036 a warning if it isn't */
1037 if (!g_variant_is_of_type(value, default_type)) {
1038 g_warning("Setting menuitem property '%s' with value of type '%s' when expecting '%s'", property, g_variant_get_type_string(value), g_variant_type_peek_string(default_type));
1039 }
1040 }
1041
1042 /* Check the defaults database to see if we have a default
1043 for this property. */
1044 GVariant * default_value = dbusmenu_defaults_default_get(priv->defaults, type, property);
1045 if (default_value != NULL) {
1046 /* Now see if we're setting this to the same value as the
1047 default. If we are then we just want to swallow this variant
1048 and make the function behave like we're clearing it. */
1049 if (g_variant_equal(default_value, value)) {
1050 g_variant_ref_sink(value);
1051 g_variant_unref(value);
1052 value = NULL;
1053 }
1054 }
1055
1007 gboolean replaced = FALSE;1056 gboolean replaced = FALSE;
1008 gpointer currentval = g_hash_table_lookup(priv->properties, property);1057 gpointer currentval = g_hash_table_lookup(priv->properties, property);
10091058
1010 if (value != NULL) {1059 if (value != NULL) {
1060 /* NOTE: We're only marking this as replaced if this is true
1061 but we're actually replacing it no matter. This is so that
1062 the variant passed in sticks around which the caller may
1063 expect. They shouldn't, but it's low cost to remove bugs. */
1064 if (currentval == NULL || !g_variant_equal((GVariant*)currentval, value)) {
1065 replaced = TRUE;
1066 }
1067
1011 gchar * lprop = g_strdup(property);1068 gchar * lprop = g_strdup(property);
1012 g_variant_ref_sink(value);1069 g_variant_ref_sink(value);
10131070
1014 if (currentval == NULL || !g_variant_equal((GVariant*)currentval, value)) {1071 g_hash_table_replace(priv->properties, lprop, value);
1015 g_hash_table_replace(priv->properties, lprop, value);
1016 replaced = TRUE;
1017 }
1018 } else {1072 } else {
1019 if (currentval != NULL) {1073 if (currentval != NULL) {
1020 g_hash_table_remove(priv->properties, property);1074 g_hash_table_remove(priv->properties, property);
@@ -1027,7 +1081,15 @@
1027 table. But the fact that there was a value is1081 table. But the fact that there was a value is
1028 the imporant part. */1082 the imporant part. */
1029 if (currentval == NULL || replaced) {1083 if (currentval == NULL || replaced) {
1030 g_signal_emit(G_OBJECT(mi), signals[PROPERTY_CHANGED], 0, property, value, TRUE);1084 GVariant * signalval = value;
1085
1086 if (signalval == NULL) {
1087 /* Might also be NULL, but if it is we're definitely
1088 clearing this thing. */
1089 signalval = default_value;
1090 }
1091
1092 g_signal_emit(G_OBJECT(mi), signals[PROPERTY_CHANGED], 0, property, signalval, TRUE);
1031 }1093 }
10321094
1033 return TRUE;1095 return TRUE;
@@ -1074,7 +1136,13 @@
10741136
1075 DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);1137 DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
10761138
1077 return (GVariant *)g_hash_table_lookup(priv->properties, property);1139 GVariant * currentval = (GVariant *)g_hash_table_lookup(priv->properties, property);
1140
1141 if (currentval == NULL) {
1142 currentval = dbusmenu_defaults_default_get(priv->defaults, menuitem_get_type(mi), property);
1143 }
1144
1145 return currentval;
1078}1146}
10791147
1080/**1148/**
@@ -1503,10 +1571,23 @@
15031571
1504/* Checks to see if the value of this property is unique or just the1572/* Checks to see if the value of this property is unique or just the
1505 default value. */1573 default value. */
1506/* TODO: Implement this */
1507gboolean1574gboolean
1508dbusmenu_menuitem_property_is_default (DbusmenuMenuitem * mi, const gchar * property)1575dbusmenu_menuitem_property_is_default (DbusmenuMenuitem * mi, const gchar * property)
1509{1576{
1510 /* No defaults system yet */1577 g_return_val_if_fail(DBUSMENU_IS_MENUITEM(mi), FALSE);
1578 DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
1579
1580 GVariant * currentval = (GVariant *)g_hash_table_lookup(priv->properties, property);
1581 if (currentval != NULL) {
1582 /* If we're storing it locally, then it shouldn't be a default */
1583 return FALSE;
1584 }
1585
1586 currentval = dbusmenu_defaults_default_get(priv->defaults, menuitem_get_type(mi), property);
1587 if (currentval != NULL) {
1588 return TRUE;
1589 }
1590
1591 g_warn_if_reached();
1511 return FALSE;1592 return FALSE;
1512}1593}
15131594
=== modified file 'tests/test-gtk-label.json'
--- tests/test-gtk-label.json 2010-03-18 05:09:14 +0000
+++ tests/test-gtk-label.json 2011-02-22 04:06:19 +0000
@@ -45,7 +45,7 @@
45 "label": "value27"},45 "label": "value27"},
46 {"id": 28, "type": "standard",46 {"id": 28, "type": "standard",
47 "label": "value28"},47 "label": "value28"},
48 {"id": 29, "type": "standard", "visible": "false",48 {"id": 29, "type": "standard", "visible": false,
49 "label": "value29"}49 "label": "value29"}
50 ]50 ]
51 },51 },
@@ -54,45 +54,45 @@
54 "submenu": [54 "submenu": [
55 {"id": 40,55 {"id": 40,
56 "type": "standard",56 "type": "standard",
57 "enabled": "true",57 "enabled": true,
58 "label": "value40"},58 "label": "value40"},
59 {"id": 41,59 {"id": 41,
60 "type": "standard",60 "type": "standard",
61 "enabled": "false",61 "enabled": false,
62 "label": "value41"},62 "label": "value41"},
63 {"id": 42,63 {"id": 42,
64 "type": "standard",64 "type": "standard",
65 "enabled": "true",65 "enabled": true,
66 "label": "value42"},66 "label": "value42"},
67 {"id": 43,67 {"id": 43,
68 "type": "standard",68 "type": "standard",
69 "enabled": "false",69 "enabled": false,
70 "label": "value43"},70 "label": "value43"},
71 {"id": 44,71 {"id": 44,
72 "type": "standard",72 "type": "standard",
73 "enabled": "true",73 "enabled": true,
74 "label": "value44"},74 "label": "value44"},
75 {"id": 45,75 {"id": 45,
76 "type": "standard",76 "type": "standard",
77 "enabled": "false",77 "enabled": false,
78 "label": "value45"},78 "label": "value45"},
79 {"id": 46,79 {"id": 46,
80 "type": "standard",80 "type": "standard",
81 "enabled": "true",81 "enabled": true,
82 "label": "value46"},82 "label": "value46"},
83 {"id": 47,83 {"id": 47,
84 "type": "standard",84 "type": "standard",
85 "enabled": "false",85 "enabled": false,
86 "label": "value47"},86 "label": "value47"},
87 {"id": 48,87 {"id": 48,
88 "type": "standard",88 "type": "standard",
89 "enabled": "true",89 "enabled": true,
90 "label": "value48"},90 "label": "value48"},
91 {"id": 49,91 {"id": 49,
92 "type": "standard",92 "type": "standard",
93 "visible": "false",93 "visible": false,
94 "enabled": "false",94 "enabled": false,
95 "label": "value49"}95 "label": "value49 - hidden"}
96 ]96 ]
97 },97 },
98 {"id": 3, "type": "standard",98 {"id": 3, "type": "standard",
9999
=== modified file 'tests/test-json-01.json'
--- tests/test-json-01.json 2010-12-01 21:48:08 +0000
+++ tests/test-json-01.json 2011-02-22 04:06:19 +0000
@@ -5,30 +5,22 @@
5 {5 {
6 "id": 5,6 "id": 5,
7 "children-display": 'submenu',7 "children-display": 'submenu',
8 "enabled": true,
9 "label": 'File',8 "label": 'File',
10 "visible": true,
11 "submenu": [9 "submenu": [
12 {10 {
13 "id": 6,11 "id": 6,
14 "enabled": true,
15 "label": 'Quit',12 "label": 'Quit',
16 "shortcut": [['Control', 'q']],13 "shortcut": [['Control', 'q']]
17 "visible": true
18 },14 },
19 {15 {
20 "id": 7,16 "id": 7,
21 "enabled": true,
22 "label": 'Close all',17 "label": 'Close all',
23 "shortcut": [['Control', 'Shift', 'w']],18 "shortcut": [['Control', 'Shift', 'w']]
24 "visible": true
25 },19 },
26 {20 {
27 "id": 8,21 "id": 8,
28 "enabled": true,
29 "label": 'Close',22 "label": 'Close',
30 "shortcut": [['Control', 'w']],23 "shortcut": [['Control', 'w']]
31 "visible": true
32 },24 },
33 {25 {
34 "id": 9,26 "id": 9,
@@ -36,22 +28,16 @@
36 },28 },
37 {29 {
38 "id": 10,30 "id": 10,
39 "enabled": true,31 "label": 'Send by Email...'
40 "label": 'Send by Email...',
41 "visible": true
42 },32 },
43 {33 {
44 "id": 11,34 "id": 11,
45 "enabled": true,
46 "label": 'Print...',35 "label": 'Print...',
47 "shortcut": [['Control', 'p']],36 "shortcut": [['Control', 'p']]
48 "visible": true
49 },37 },
50 {38 {
51 "id": 12,39 "id": 12,
52 "enabled": true,40 "label": 'Page Setup'
53 "label": 'Page Setup',
54 "visible": true
55 },41 },
56 {42 {
57 "id": 13,43 "id": 13,
@@ -59,35 +45,25 @@
59 },45 },
60 {46 {
61 "id": 14,47 "id": 14,
62 "enabled": true,48 "label": 'Revert'
63 "label": 'Revert',
64 "visible": true
65 },49 },
66 {50 {
67 "id": 15,51 "id": 15,
68 "enabled": true,52 "label": 'Save as Template...'
69 "label": 'Save as Template...',
70 "visible": true
71 },53 },
72 {54 {
73 "id": 16,55 "id": 16,
74 "enabled": true,56 "label": 'Save a Copy...'
75 "label": 'Save a Copy...',
76 "visible": true
77 },57 },
78 {58 {
79 "id": 17,59 "id": 17,
80 "enabled": true,
81 "label": 'Save As...',60 "label": 'Save As...',
82 "shortcut": [['Control', 'Shift', 's']],61 "shortcut": [['Control', 'Shift', 's']]
83 "visible": true
84 },62 },
85 {63 {
86 "id": 18,64 "id": 18,
87 "enabled": true,
88 "label": 'Save',65 "label": 'Save',
89 "shortcut": [['Control', 's']],66 "shortcut": [['Control', 's']]
90 "visible": true
91 },67 },
92 {68 {
93 "id": 19,69 "id": 19,
@@ -96,15 +72,11 @@
96 {72 {
97 "id": 20,73 "id": 20,
98 "children-display": 'submenu',74 "children-display": 'submenu',
99 "enabled": true,
100 "label": 'Open Recent',75 "label": 'Open Recent',
101 "visible": true,
102 "submenu": [76 "submenu": [
103 {77 {
104 "id": 21,78 "id": 21,
105 "enabled": true,79 "label": 'Document History'
106 "label": 'Document History',
107 "visible": true
108 },80 },
109 {81 {
110 "id": 22,82 "id": 22,
@@ -112,168 +84,118 @@
112 },84 },
113 {85 {
114 "id": 23,86 "id": 23,
115 "enabled": true,
116 "label": 'giggity.jpg',87 "label": 'giggity.jpg',
117 "shortcut": [['Control', '2']],88 "shortcut": [['Control', '2']]
118 "visible": true
119 },89 },
120 {90 {
121 "id": 24,91 "id": 24,
122 "enabled": true,
123 "label": 'Icon Height.svg',92 "label": 'Icon Height.svg',
124 "shortcut": [['Control', '1']],93 "shortcut": [['Control', '1']]
125 "visible": true
126 }94 }
127 ]95 ]
128 },96 },
129 {97 {
130 "id": 25,98 "id": 25,
131 "enabled": true,99 "label": 'Open Location...'
132 "label": 'Open Location...',
133 "visible": true
134 },100 },
135 {101 {
136 "id": 26,102 "id": 26,
137 "enabled": true,
138 "label": 'Open as Layers...',103 "label": 'Open as Layers...',
139 "shortcut": [['Control', 'Alt', 'o']],104 "shortcut": [['Control', 'Alt', 'o']]
140 "visible": true
141 },105 },
142 {106 {
143 "id": 27,107 "id": 27,
144 "enabled": true,
145 "label": 'Open...',108 "label": 'Open...',
146 "shortcut": [['Control', 'o']],109 "shortcut": [['Control', 'o']]
147 "visible": true
148 },110 },
149 {111 {
150 "id": 28,112 "id": 28,
151 "children-display": 'submenu',113 "children-display": 'submenu',
152 "enabled": true,
153 "label": 'Create',114 "label": 'Create',
154 "visible": true,
155 "submenu": [115 "submenu": [
156 {116 {
157 "id": 29,117 "id": 29,
158 "children-display": 'submenu',118 "children-display": 'submenu',
159 "enabled": true,
160 "label": 'Web Page Themes',119 "label": 'Web Page Themes',
161 "visible": true,
162 "submenu": [120 "submenu": [
163 {121 {
164 "id": 30,122 "id": 30,
165 "children-display": 'submenu',123 "children-display": 'submenu',
166 "enabled": true,
167 "label": 'Classic.Gimp.Org',124 "label": 'Classic.Gimp.Org',
168 "visible": true,
169 "submenu": [125 "submenu": [
170 {126 {
171 "id": 31,127 "id": 31,
172 "enabled": true,128 "label": 'Tube Sub-Sub-Button Label...'
173 "label": 'Tube Sub-Sub-Button Label...',
174 "visible": true
175 },129 },
176 {130 {
177 "id": 32,131 "id": 32,
178 "enabled": true,132 "label": 'Tube Sub-Button Label...'
179 "label": 'Tube Sub-Button Label...',
180 "visible": true
181 },133 },
182 {134 {
183 "id": 33,135 "id": 33,
184 "enabled": true,136 "label": 'Tube Button Label...'
185 "label": 'Tube Button Label...',
186 "visible": true
187 },137 },
188 {138 {
189 "id": 34,139 "id": 34,
190 "enabled": true,140 "label": 'Small Header...'
191 "label": 'Small Header...',
192 "visible": true
193 },141 },
194 {142 {
195 "id": 35,143 "id": 35,
196 "enabled": true,144 "label": 'General Tube Labels...'
197 "label": 'General Tube Labels...',
198 "visible": true
199 },145 },
200 {146 {
201 "id": 36,147 "id": 36,
202 "enabled": true,148 "label": 'Big Header...'
203 "label": 'Big Header...',
204 "visible": true
205 }149 }
206 ]150 ]
207 },151 },
208 {152 {
209 "id": 37,153 "id": 37,
210 "children-display": 'submenu',154 "children-display": 'submenu',
211 "enabled": true,
212 "label": 'Beveled Pattern',155 "label": 'Beveled Pattern',
213 "visible": true,
214 "submenu": [156 "submenu": [
215 {157 {
216 "id": 38,158 "id": 38,
217 "enabled": true,159 "label": 'Hrule...'
218 "label": 'Hrule...',
219 "visible": true
220 },160 },
221 {161 {
222 "id": 39,162 "id": 39,
223 "enabled": true,163 "label": 'Heading...'
224 "label": 'Heading...',
225 "visible": true
226 },164 },
227 {165 {
228 "id": 40,166 "id": 40,
229 "enabled": true,167 "label": 'Button...'
230 "label": 'Button...',
231 "visible": true
232 },168 },
233 {169 {
234 "id": 41,170 "id": 41,
235 "enabled": true,171 "label": 'Bullet...'
236 "label": 'Bullet...',
237 "visible": true
238 },172 },
239 {173 {
240 "id": 42,174 "id": 42,
241 "enabled": true,175 "label": 'Arrow...'
242 "label": 'Arrow...',
243 "visible": true
244 }176 }
245 ]177 ]
246 },178 },
247 {179 {
248 "id": 43,180 "id": 43,
249 "children-display": 'submenu',181 "children-display": 'submenu',
250 "enabled": true,
251 "label": 'Alien Glow',182 "label": 'Alien Glow',
252 "visible": true,
253 "submenu": [183 "submenu": [
254 {184 {
255 "id": 44,185 "id": 44,
256 "enabled": true,186 "label": 'Hrule...'
257 "label": 'Hrule...',
258 "visible": true
259 },187 },
260 {188 {
261 "id": 45,189 "id": 45,
262 "enabled": true,190 "label": 'Button...'
263 "label": 'Button...',
264 "visible": true
265 },191 },
266 {192 {
267 "id": 46,193 "id": 46,
268 "enabled": true,194 "label": 'Bullet...'
269 "label": 'Bullet...',
270 "visible": true
271 },195 },
272 {196 {
273 "id": 47,197 "id": 47,
274 "enabled": true,198 "label": 'Arrow...'
275 "label": 'Arrow...',
276 "visible": true
277 }199 }
278 ]200 ]
279 }201 }
@@ -282,255 +204,173 @@
282 {204 {
283 "id": 48,205 "id": 48,
284 "children-display": 'submenu',206 "children-display": 'submenu',
285 "enabled": true,
286 "label": 'Patterns',207 "label": 'Patterns',
287 "visible": true,
288 "submenu": [208 "submenu": [
289 {209 {
290 "id": 49,210 "id": 49,
291 "enabled": true,211 "label": 'Truchet...'
292 "label": 'Truchet...',
293 "visible": true
294 },212 },
295 {213 {
296 "id": 50,214 "id": 50,
297 "enabled": true,215 "label": 'Swirly...'
298 "label": 'Swirly...',
299 "visible": true
300 },216 },
301 {217 {
302 "id": 51,218 "id": 51,
303 "enabled": true,219 "label": 'Swirl-Tile...'
304 "label": 'Swirl-Tile...',
305 "visible": true
306 },220 },
307 {221 {
308 "id": 52,222 "id": 52,
309 "enabled": true,223 "label": 'Render Map...'
310 "label": 'Render Map...',
311 "visible": true
312 },224 },
313 {225 {
314 "id": 53,226 "id": 53,
315 "enabled": true,227 "label": 'Land...'
316 "label": 'Land...',
317 "visible": true
318 },228 },
319 {229 {
320 "id": 54,230 "id": 54,
321 "enabled": true,231 "label": 'Flatland...'
322 "label": 'Flatland...',
323 "visible": true
324 },232 },
325 {233 {
326 "id": 55,234 "id": 55,
327 "enabled": true,235 "label": 'Camouflage...'
328 "label": 'Camouflage...',
329 "visible": true
330 },236 },
331 {237 {
332 "id": 56,238 "id": 56,
333 "enabled": true,239 "label": '3D Truchet...'
334 "label": '3D Truchet...',
335 "visible": true
336 }240 }
337 ]241 ]
338 },242 },
339 {243 {
340 "id": 57,244 "id": 57,
341 "children-display": 'submenu',245 "children-display": 'submenu',
342 "enabled": true,
343 "label": 'Logos',246 "label": 'Logos',
344 "visible": true,
345 "submenu": [247 "submenu": [
346 {248 {
347 "id": 58,249 "id": 58,
348 "enabled": true,250 "label": 'Web Title Header...'
349 "label": 'Web Title Header...',
350 "visible": true
351 },251 },
352 {252 {
353 "id": 59,253 "id": 59,
354 "enabled": true,254 "label": 'Textured...'
355 "label": 'Textured...',
356 "visible": true
357 },255 },
358 {256 {
359 "id": 60,257 "id": 60,
360 "enabled": true,258 "label": 'Text Circle...'
361 "label": 'Text Circle...',
362 "visible": true
363 },259 },
364 {260 {
365 "id": 61,261 "id": 61,
366 "enabled": true,262 "label": 'Starscape...'
367 "label": 'Starscape...',
368 "visible": true
369 },263 },
370 {264 {
371 "id": 62,265 "id": 62,
372 "enabled": true,266 "label": 'Speed Text...'
373 "label": 'Speed Text...',
374 "visible": true
375 },267 },
376 {268 {
377 "id": 63,269 "id": 63,
378 "enabled": true,270 "label": 'SOTA Chrome...'
379 "label": 'SOTA Chrome...',
380 "visible": true
381 },271 },
382 {272 {
383 "id": 64,273 "id": 64,
384 "enabled": true,274 "label": 'Particle Trace...'
385 "label": 'Particle Trace...',
386 "visible": true
387 },275 },
388 {276 {
389 "id": 65,277 "id": 65,
390 "enabled": true,278 "label": 'Newsprint Text...'
391 "label": 'Newsprint Text...',
392 "visible": true
393 },279 },
394 {280 {
395 "id": 66,281 "id": 66,
396 "enabled": true,282 "label": 'Neon...'
397 "label": 'Neon...',
398 "visible": true
399 },283 },
400 {284 {
401 "id": 67,285 "id": 67,
402 "enabled": true,286 "label": 'Imigre-26...'
403 "label": 'Imigre-26...',
404 "visible": true
405 },287 },
406 {288 {
407 "id": 68,289 "id": 68,
408 "enabled": true,290 "label": 'Gradient Bevel...'
409 "label": 'Gradient Bevel...',
410 "visible": true
411 },291 },
412 {292 {
413 "id": 69,293 "id": 69,
414 "enabled": true,294 "label": 'Glowing Hot...'
415 "label": 'Glowing Hot...',
416 "visible": true
417 },295 },
418 {296 {
419 "id": 70,297 "id": 70,
420 "enabled": true,298 "label": 'Glossy...'
421 "label": 'Glossy...',
422 "visible": true
423 },299 },
424 {300 {
425 "id": 71,301 "id": 71,
426 "enabled": true,302 "label": 'Frosty...'
427 "label": 'Frosty...',
428 "visible": true
429 },303 },
430 {304 {
431 "id": 72,305 "id": 72,
432 "enabled": true,306 "label": 'Crystal...'
433 "label": 'Crystal...',
434 "visible": true
435 },307 },
436 {308 {
437 "id": 73,309 "id": 73,
438 "enabled": true,310 "label": 'Cool Metal...'
439 "label": 'Cool Metal...',
440 "visible": true
441 },311 },
442 {312 {
443 "id": 74,313 "id": 74,
444 "enabled": true,314 "label": 'Comic Book...'
445 "label": 'Comic Book...',
446 "visible": true
447 },315 },
448 {316 {
449 "id": 75,317 "id": 75,
450 "enabled": true,318 "label": 'Chrome...'
451 "label": 'Chrome...',
452 "visible": true
453 },319 },
454 {320 {
455 "id": 76,321 "id": 76,
456 "enabled": true,322 "label": 'Chip Away...'
457 "label": 'Chip Away...',
458 "visible": true
459 },323 },
460 {324 {
461 "id": 77,325 "id": 77,
462 "enabled": true,326 "label": 'Chalk...'
463 "label": 'Chalk...',
464 "visible": true
465 },327 },
466 {328 {
467 "id": 78,329 "id": 78,
468 "enabled": true,330 "label": 'Carved...'
469 "label": 'Carved...',
470 "visible": true
471 },331 },
472 {332 {
473 "id": 79,333 "id": 79,
474 "enabled": true,334 "label": 'Bovination...'
475 "label": 'Bovination...',
476 "visible": true
477 },335 },
478 {336 {
479 "id": 80,337 "id": 80,
480 "enabled": true,338 "label": 'Blended...'
481 "label": 'Blended...',
482 "visible": true
483 },339 },
484 {340 {
485 "id": 81,341 "id": 81,
486 "enabled": true,342 "label": 'Basic I...'
487 "label": 'Basic I...',
488 "visible": true
489 },343 },
490 {344 {
491 "id": 82,345 "id": 82,
492 "enabled": true,346 "label": 'Basic II...'
493 "label": 'Basic II...',
494 "visible": true
495 },347 },
496 {348 {
497 "id": 83,349 "id": 83,
498 "enabled": true,350 "label": 'Alien Neon...'
499 "label": 'Alien Neon...',
500 "visible": true
501 },351 },
502 {352 {
503 "id": 84,353 "id": 84,
504 "enabled": true,354 "label": 'Alien Glow...'
505 "label": 'Alien Glow...',
506 "visible": true
507 },355 },
508 {356 {
509 "id": 85,357 "id": 85,
510 "enabled": true,358 "label": '3D Outline...'
511 "label": '3D Outline...',
512 "visible": true
513 }359 }
514 ]360 ]
515 },361 },
516 {362 {
517 "id": 86,363 "id": 86,
518 "children-display": 'submenu',364 "children-display": 'submenu',
519 "enabled": true,
520 "label": 'Buttons',365 "label": 'Buttons',
521 "visible": true,
522 "submenu": [366 "submenu": [
523 {367 {
524 "id": 87,368 "id": 87,
525 "enabled": true,369 "label": 'Simple Beveled Button...'
526 "label": 'Simple Beveled Button...',
527 "visible": true
528 },370 },
529 {371 {
530 "id": 88,372 "id": 88,
531 "enabled": true,373 "label": 'Round Button...'
532 "label": 'Round Button...',
533 "visible": true
534 }374 }
535 ]375 ]
536 },376 },
@@ -541,72 +381,53 @@
541 {381 {
542 "id": 90,382 "id": 90,
543 "children-display": 'submenu',383 "children-display": 'submenu',
544 "enabled": true,
545 "label": 'xscanimage',384 "label": 'xscanimage',
546 "visible": true,
547 "submenu": [385 "submenu": [
548 {386 {
549 "id": 91,387 "id": 91,
550 "enabled": false,388 "enabled": false,
551 "label": 'Device dialog...',389 "label": 'Device dialog...'
552 "visible": true
553 }390 }
554 ]391 ]
555 },392 },
556 {393 {
557 "id": 92,394 "id": 92,
558 "enabled": true,395 "label": 'Screenshot...'
559 "label": 'Screenshot...',
560 "visible": true
561 },396 },
562 {397 {
563 "id": 93,398 "id": 93,
564 "enabled": true,
565 "label": 'From Clipboard',399 "label": 'From Clipboard',
566 "shortcut": [['Control', 'Shift', 'v']],400 "shortcut": [['Control', 'Shift', 'v']]
567 "visible": true
568 }401 }
569 ]402 ]
570 },403 },
571 {404 {
572 "id": 94,405 "id": 94,
573 "enabled": true,
574 "label": 'New...',406 "label": 'New...',
575 "shortcut": [['Control', 'n']],407 "shortcut": [['Control', 'n']]
576 "visible": true
577 }408 }
578 ]409 ]
579 },410 },
580 {411 {
581 "id": 95,412 "id": 95,
582 "children-display": 'submenu',413 "children-display": 'submenu',
583 "enabled": true,
584 "label": 'Edit',414 "label": 'Edit',
585 "visible": true,
586 "submenu": [415 "submenu": [
587 {416 {
588 "id": 96,417 "id": 96,
589 "enabled": true,418 "label": 'Units'
590 "label": 'Units',
591 "visible": true
592 },419 },
593 {420 {
594 "id": 97,421 "id": 97,
595 "enabled": true,422 "label": 'Modules'
596 "label": 'Modules',
597 "visible": true
598 },423 },
599 {424 {
600 "id": 98,425 "id": 98,
601 "enabled": true,426 "label": 'Keyboard Shortcuts'
602 "label": 'Keyboard Shortcuts',
603 "visible": true
604 },427 },
605 {428 {
606 "id": 99,429 "id": 99,
607 "enabled": true,430 "label": 'Preferences'
608 "label": 'Preferences',
609 "visible": true
610 },431 },
611 {432 {
612 "id": 100,433 "id": 100,
@@ -615,42 +436,32 @@
615 {436 {
616 "id": 101,437 "id": 101,
617 "enabled": false,438 "enabled": false,
618 "label": 'Stroke Path...',439 "label": 'Stroke Path...'
619 "visible": true
620 },440 },
621 {441 {
622 "id": 102,442 "id": 102,
623 "enabled": false,443 "enabled": false,
624 "label": 'Stroke Selection...',444 "label": 'Stroke Selection...'
625 "visible": true
626 },445 },
627 {446 {
628 "id": 103,447 "id": 103,
629 "enabled": true,
630 "label": 'Fill with Pattern',448 "label": 'Fill with Pattern',
631 "shortcut": [['Control', 'semicolon']],449 "shortcut": [['Control', 'semicolon']]
632 "visible": true
633 },450 },
634 {451 {
635 "id": 104,452 "id": 104,
636 "enabled": true,
637 "label": 'Fill with BG Color',453 "label": 'Fill with BG Color',
638 "shortcut": [['Control', 'period']],454 "shortcut": [['Control', 'period']]
639 "visible": true
640 },455 },
641 {456 {
642 "id": 105,457 "id": 105,
643 "enabled": true,
644 "label": 'Fill with FG Color',458 "label": 'Fill with FG Color',
645 "shortcut": [['Control', 'comma']],459 "shortcut": [['Control', 'comma']]
646 "visible": true
647 },460 },
648 {461 {
649 "id": 106,462 "id": 106,
650 "enabled": true,
651 "label": 'Clear',463 "label": 'Clear',
652 "shortcut": [['Delete']],464 "shortcut": [['Delete']]
653 "visible": true
654 },465 },
655 {466 {
656 "id": 107,467 "id": 107,
@@ -659,103 +470,73 @@
659 {470 {
660 "id": 108,471 "id": 108,
661 "children-display": 'submenu',472 "children-display": 'submenu',
662 "enabled": true,
663 "label": 'Buffer',473 "label": 'Buffer',
664 "visible": true,
665 "submenu": [474 "submenu": [
666 {475 {
667 "id": 109,476 "id": 109,
668 "enabled": true,477 "label": 'Paste Named...'
669 "label": 'Paste Named...',
670 "visible": true
671 },478 },
672 {479 {
673 "id": 110,480 "id": 110,
674 "enabled": true,481 "label": 'Copy Visible Named...'
675 "label": 'Copy Visible Named...',
676 "visible": true
677 },482 },
678 {483 {
679 "id": 111,484 "id": 111,
680 "enabled": true,485 "label": 'Copy Named...'
681 "label": 'Copy Named...',
682 "visible": true
683 },486 },
684 {487 {
685 "id": 112,488 "id": 112,
686 "enabled": true,489 "label": 'Cut Named...'
687 "label": 'Cut Named...',
688 "visible": true
689 }490 }
690 ]491 ]
691 },492 },
692 {493 {
693 "id": 113,494 "id": 113,
694 "children-display": 'submenu',495 "children-display": 'submenu',
695 "enabled": true,
696 "label": 'Paste as',496 "label": 'Paste as',
697 "visible": true,
698 "submenu": [497 "submenu": [
699 {498 {
700 "id": 114,499 "id": 114,
701 "enabled": true,500 "label": 'New Pattern...'
702 "label": 'New Pattern...',
703 "visible": true
704 },501 },
705 {502 {
706 "id": 115,503 "id": 115,
707 "enabled": true,504 "label": 'New Brush...'
708 "label": 'New Brush...',
709 "visible": true
710 },505 },
711 {506 {
712 "id": 116,507 "id": 116,
713 "enabled": true,508 "label": 'New Layer'
714 "label": 'New Layer',
715 "visible": true
716 },509 },
717 {510 {
718 "id": 117,511 "id": 117,
719 "enabled": true,
720 "label": 'New Image',512 "label": 'New Image',
721 "shortcut": [['Control', 'Shift', 'v']],513 "shortcut": [['Control', 'Shift', 'v']]
722 "visible": true
723 }514 }
724 ]515 ]
725 },516 },
726 {517 {
727 "id": 118,518 "id": 118,
728 "enabled": true,519 "label": 'Paste Into'
729 "label": 'Paste Into',
730 "visible": true
731 },520 },
732 {521 {
733 "id": 119,522 "id": 119,
734 "enabled": true,
735 "label": 'Paste',523 "label": 'Paste',
736 "shortcut": [['Control', 'v']],524 "shortcut": [['Control', 'v']]
737 "visible": true
738 },525 },
739 {526 {
740 "id": 120,527 "id": 120,
741 "enabled": true,
742 "label": 'Copy Visible',528 "label": 'Copy Visible',
743 "shortcut": [['Control', 'Shift', 'c']],529 "shortcut": [['Control', 'Shift', 'c']]
744 "visible": true
745 },530 },
746 {531 {
747 "id": 121,532 "id": 121,
748 "enabled": true,
749 "label": 'Copy',533 "label": 'Copy',
750 "shortcut": [['Control', 'c']],534 "shortcut": [['Control', 'c']]
751 "visible": true
752 },535 },
753 {536 {
754 "id": 122,537 "id": 122,
755 "enabled": true,
756 "label": 'Cut',538 "label": 'Cut',
757 "shortcut": [['Control', 'x']],539 "shortcut": [['Control', 'x']]
758 "visible": true
759 },540 },
760 {541 {
761 "id": 123,542 "id": 123,
@@ -763,59 +544,47 @@
763 },544 },
764 {545 {
765 "id": 124,546 "id": 124,
766 "enabled": true,547 "label": 'Undo History'
767 "label": 'Undo History',
768 "visible": true
769 },548 },
770 {549 {
771 "id": 3,550 "id": 3,
772 "enabled": false,551 "enabled": false,
773 "label": '_Fade...',552 "label": '_Fade...'
774 "visible": true
775 },553 },
776 {554 {
777 "id": 2,555 "id": 2,
778 "enabled": false,556 "enabled": false,
779 "label": '_Redo',557 "label": '_Redo',
780 "shortcut": [['Control', 'y']],558 "shortcut": [['Control', 'y']]
781 "visible": true
782 },559 },
783 {560 {
784 "id": 1,561 "id": 1,
785 "enabled": false,562 "enabled": false,
786 "label": '_Undo',563 "label": '_Undo',
787 "shortcut": [['Control', 'z']],564 "shortcut": [['Control', 'z']]
788 "visible": true
789 }565 }
790 ]566 ]
791 },567 },
792 {568 {
793 "id": 125,569 "id": 125,
794 "children-display": 'submenu',570 "children-display": 'submenu',
795 "enabled": true,
796 "label": 'Select',571 "label": 'Select',
797 "visible": true,
798 "submenu": [572 "submenu": [
799 {573 {
800 "id": 126,574 "id": 126,
801 "enabled": false,575 "enabled": false,
802 "label": 'To Path',576 "label": 'To Path'
803 "visible": true
804 },577 },
805 {578 {
806 "id": 127,579 "id": 127,
807 "enabled": true,580 "label": 'Save to Channel'
808 "label": 'Save to Channel',
809 "visible": true
810 },581 },
811 {582 {
812 "id": 128,583 "id": 128,
813 "enabled": true,
814 "label": 'Toggle Quick Mask',584 "label": 'Toggle Quick Mask',
815 "shortcut": [['Shift', 'q']],585 "shortcut": [['Shift', 'q']],
816 "toggle-state": 0,586 "toggle-state": 0,
817 "toggle-type": 'checkmark',587 "toggle-type": 'checkmark'
818 "visible": true
819 },588 },
820 {589 {
821 "id": 129,590 "id": 129,
@@ -823,39 +592,32 @@
823 },592 },
824 {593 {
825 "id": 130,594 "id": 130,
826 "enabled": true,595 "label": 'Distort...'
827 "label": 'Distort...',
828 "visible": true
829 },596 },
830 {597 {
831 "id": 131,598 "id": 131,
832 "enabled": false,599 "enabled": false,
833 "label": 'Border...',600 "label": 'Border...'
834 "visible": true
835 },601 },
836 {602 {
837 "id": 132,603 "id": 132,
838 "enabled": false,604 "enabled": false,
839 "label": 'Grow...',605 "label": 'Grow...'
840 "visible": true
841 },606 },
842 {607 {
843 "id": 133,608 "id": 133,
844 "enabled": false,609 "enabled": false,
845 "label": 'Shrink...',610 "label": 'Shrink...'
846 "visible": true
847 },611 },
848 {612 {
849 "id": 134,613 "id": 134,
850 "enabled": false,614 "enabled": false,
851 "label": 'Sharpen',615 "label": 'Sharpen'
852 "visible": true
853 },616 },
854 {617 {
855 "id": 135,618 "id": 135,
856 "enabled": false,619 "enabled": false,
857 "label": 'Feather...',620 "label": 'Feather...'
858 "visible": true
859 },621 },
860 {622 {
861 "id": 136,623 "id": 136,
@@ -863,106 +625,81 @@
863 },625 },
864 {626 {
865 "id": 137,627 "id": 137,
866 "enabled": true,628 "label": 'Selection Editor'
867 "label": 'Selection Editor',
868 "visible": true
869 },629 },
870 {630 {
871 "id": 138,631 "id": 138,
872 "enabled": false,632 "enabled": false,
873 "label": 'From Path',633 "label": 'From Path',
874 "shortcut": [['Shift', 'v']],634 "shortcut": [['Shift', 'v']]
875 "visible": true
876 },635 },
877 {636 {
878 "id": 139,637 "id": 139,
879 "enabled": true,
880 "label": 'By Color',638 "label": 'By Color',
881 "shortcut": [['Shift', 'o']],639 "shortcut": [['Shift', 'o']]
882 "visible": true
883 },640 },
884 {641 {
885 "id": 140,642 "id": 140,
886 "enabled": false,643 "enabled": false,
887 "label": 'Float',644 "label": 'Float',
888 "shortcut": [['Control', 'Shift', 'l']],645 "shortcut": [['Control', 'Shift', 'l']]
889 "visible": true
890 },646 },
891 {647 {
892 "id": 141,648 "id": 141,
893 "enabled": true,
894 "label": 'Invert',649 "label": 'Invert',
895 "shortcut": [['Control', 'i']],650 "shortcut": [['Control', 'i']]
896 "visible": true
897 },651 },
898 {652 {
899 "id": 142,653 "id": 142,
900 "enabled": false,654 "enabled": false,
901 "label": 'None',655 "label": 'None',
902 "shortcut": [['Control', 'Shift', 'a']],656 "shortcut": [['Control', 'Shift', 'a']]
903 "visible": true
904 },657 },
905 {658 {
906 "id": 143,659 "id": 143,
907 "enabled": true,
908 "label": 'All',660 "label": 'All',
909 "shortcut": [['Control', 'a']],661 "shortcut": [['Control', 'a']]
910 "visible": true
911 }662 }
912 ]663 ]
913 },664 },
914 {665 {
915 "id": 144,666 "id": 144,
916 "children-display": 'submenu',667 "children-display": 'submenu',
917 "enabled": true,
918 "label": 'View',668 "label": 'View',
919 "visible": true,
920 "submenu": [669 "submenu": [
921 {670 {
922 "id": 145,671 "id": 145,
923 "enabled": true,
924 "label": 'Show Statusbar',672 "label": 'Show Statusbar',
925 "toggle-state": 1,673 "toggle-state": 1,
926 "toggle-type": 'checkmark',674 "toggle-type": 'checkmark'
927 "visible": true
928 },675 },
929 {676 {
930 "id": 146,677 "id": 146,
931 "enabled": true,
932 "label": 'Show Scrollbars',678 "label": 'Show Scrollbars',
933 "toggle-state": 0,679 "toggle-state": 0,
934 "toggle-type": 'checkmark',680 "toggle-type": 'checkmark'
935 "visible": true
936 },681 },
937 {682 {
938 "id": 147,683 "id": 147,
939 "enabled": true,
940 "label": 'Show Rulers',684 "label": 'Show Rulers',
941 "shortcut": [['Control', 'Shift', 'r']],685 "shortcut": [['Control', 'Shift', 'r']],
942 "toggle-state": 0,686 "toggle-state": 0,
943 "toggle-type": 'checkmark',687 "toggle-type": 'checkmark'
944 "visible": true
945 },688 },
946 {689 {
947 "id": 148,690 "id": 148,
948 "enabled": true,
949 "label": 'Show Menubar',691 "label": 'Show Menubar',
950 "toggle-state": 1,692 "toggle-state": 1,
951 "toggle-type": 'checkmark',693 "toggle-type": 'checkmark'
952 "visible": true
953 },694 },
954 {695 {
955 "id": 149,696 "id": 149,
956 "children-display": 'submenu',697 "children-display": 'submenu',
957 "enabled": true,
958 "label": 'Padding Color',698 "label": 'Padding Color',
959 "visible": true,
960 "submenu": [699 "submenu": [
961 {700 {
962 "id": 150,701 "id": 150,
963 "enabled": true,702 "label": 'As in Preferences'
964 "label": 'As in Preferences',
965 "visible": true
966 },703 },
967 {704 {
968 "id": 151,705 "id": 151,
@@ -970,27 +707,19 @@
970 },707 },
971 {708 {
972 "id": 152,709 "id": 152,
973 "enabled": true,710 "label": 'Select Custom Color...'
974 "label": 'Select Custom Color...',
975 "visible": true
976 },711 },
977 {712 {
978 "id": 153,713 "id": 153,
979 "enabled": true,714 "label": 'Dark Check Color'
980 "label": 'Dark Check Color',
981 "visible": true
982 },715 },
983 {716 {
984 "id": 154,717 "id": 154,
985 "enabled": true,718 "label": 'Light Check Color'
986 "label": 'Light Check Color',
987 "visible": true
988 },719 },
989 {720 {
990 "id": 155,721 "id": 155,
991 "enabled": true,722 "label": 'From Theme'
992 "label": 'From Theme',
993 "visible": true
994 }723 }
995 ]724 ]
996 },725 },
@@ -1000,35 +729,27 @@
1000 },729 },
1001 {730 {
1002 "id": 157,731 "id": 157,
1003 "enabled": true,
1004 "label": 'Snap to Active Path',732 "label": 'Snap to Active Path',
1005 "toggle-state": 0,733 "toggle-state": 0,
1006 "toggle-type": 'checkmark',734 "toggle-type": 'checkmark'
1007 "visible": true
1008 },735 },
1009 {736 {
1010 "id": 158,737 "id": 158,
1011 "enabled": true,
1012 "label": 'Snap to Canvas Edges',738 "label": 'Snap to Canvas Edges',
1013 "toggle-state": 0,739 "toggle-state": 0,
1014 "toggle-type": 'checkmark',740 "toggle-type": 'checkmark'
1015 "visible": true
1016 },741 },
1017 {742 {
1018 "id": 159,743 "id": 159,
1019 "enabled": true,
1020 "label": 'Snap to Grid',744 "label": 'Snap to Grid',
1021 "toggle-state": 0,745 "toggle-state": 0,
1022 "toggle-type": 'checkmark',746 "toggle-type": 'checkmark'
1023 "visible": true
1024 },747 },
1025 {748 {
1026 "id": 160,749 "id": 160,
1027 "enabled": true,
1028 "label": 'Snap to Guides',750 "label": 'Snap to Guides',
1029 "toggle-state": 1,751 "toggle-state": 1,
1030 "toggle-type": 'checkmark',752 "toggle-type": 'checkmark'
1031 "visible": true
1032 },753 },
1033 {754 {
1034 "id": 161,755 "id": 161,
@@ -1036,45 +757,35 @@
1036 },757 },
1037 {758 {
1038 "id": 162,759 "id": 162,
1039 "enabled": true,
1040 "label": 'Show Sample Points',760 "label": 'Show Sample Points',
1041 "toggle-state": 0,761 "toggle-state": 0,
1042 "toggle-type": 'checkmark',762 "toggle-type": 'checkmark'
1043 "visible": true
1044 },763 },
1045 {764 {
1046 "id": 163,765 "id": 163,
1047 "enabled": true,
1048 "label": 'Show Grid',766 "label": 'Show Grid',
1049 "toggle-state": 0,767 "toggle-state": 0,
1050 "toggle-type": 'checkmark',768 "toggle-type": 'checkmark'
1051 "visible": true
1052 },769 },
1053 {770 {
1054 "id": 164,771 "id": 164,
1055 "enabled": true,
1056 "label": 'Show Guides',772 "label": 'Show Guides',
1057 "shortcut": [['Control', 'Shift', 't']],773 "shortcut": [['Control', 'Shift', 't']],
1058 "toggle-state": 0,774 "toggle-state": 0,
1059 "toggle-type": 'checkmark',775 "toggle-type": 'checkmark'
1060 "visible": true
1061 },776 },
1062 {777 {
1063 "id": 165,778 "id": 165,
1064 "enabled": true,
1065 "label": 'Show Layer Boundary',779 "label": 'Show Layer Boundary',
1066 "toggle-state": 0,780 "toggle-state": 0,
1067 "toggle-type": 'checkmark',781 "toggle-type": 'checkmark'
1068 "visible": true
1069 },782 },
1070 {783 {
1071 "id": 166,784 "id": 166,
1072 "enabled": true,
1073 "label": 'Show Selection',785 "label": 'Show Selection',
1074 "shortcut": [['Control', 't']],786 "shortcut": [['Control', 't']],
1075 "toggle-state": 0,787 "toggle-state": 0,
1076 "toggle-type": 'checkmark',788 "toggle-type": 'checkmark'
1077 "visible": true
1078 },789 },
1079 {790 {
1080 "id": 167,791 "id": 167,
@@ -1082,15 +793,11 @@
1082 },793 },
1083 {794 {
1084 "id": 168,795 "id": 168,
1085 "enabled": true,796 "label": 'Display Filters...'
1086 "label": 'Display Filters...',
1087 "visible": true
1088 },797 },
1089 {798 {
1090 "id": 169,799 "id": 169,
1091 "enabled": true,800 "label": 'Navigation Window'
1092 "label": 'Navigation Window',
1093 "visible": true
1094 },801 },
1095 {802 {
1096 "id": 170,803 "id": 170,
@@ -1099,27 +806,21 @@
1099 {806 {
1100 "id": 171,807 "id": 171,
1101 "children-display": 'submenu',808 "children-display": 'submenu',
1102 "enabled": true,
1103 "label": 'Fullscreen',809 "label": 'Fullscreen',
1104 "shortcut": [['F11']],810 "shortcut": [['F11']],
1105 "toggle-state": 0,811 "toggle-state": 0,
1106 "toggle-type": 'checkmark',812 "toggle-type": 'checkmark',
1107 "visible": true,
1108 "submenu": [813 "submenu": [
1109 {814 {
1110 "id": 172,815 "id": 172,
1111 "enabled": true,816 "label": 'Open Display...'
1112 "label": 'Open Display...',
1113 "visible": true
1114 }817 }
1115 ]818 ]
1116 },819 },
1117 {820 {
1118 "id": 173,821 "id": 173,
1119 "enabled": true,
1120 "label": 'Shrink Wrap',822 "label": 'Shrink Wrap',
1121 "shortcut": [['Control', 'e']],823 "shortcut": [['Control', 'e']]
1122 "visible": true
1123 },824 },
1124 {825 {
1125 "id": 174,826 "id": 174,
@@ -1128,17 +829,13 @@
1128 {829 {
1129 "id": 175,830 "id": 175,
1130 "children-display": 'submenu',831 "children-display": 'submenu',
1131 "enabled": true,
1132 "label": '_Zoom (67%)',832 "label": '_Zoom (67%)',
1133 "visible": true,
1134 "submenu": [833 "submenu": [
1135 {834 {
1136 "id": 176,835 "id": 176,
1137 "enabled": true,
1138 "label": 'Othe_r (67%)...',836 "label": 'Othe_r (67%)...',
1139 "toggle-state": 0,837 "toggle-state": 0,
1140 "toggle-type": 'checkmark',838 "toggle-type": 'checkmark'
1141 "visible": true
1142 },839 },
1143 {840 {
1144 "id": 177,841 "id": 177,
@@ -1146,76 +843,58 @@
1146 },843 },
1147 {844 {
1148 "id": 178,845 "id": 178,
1149 "enabled": true,
1150 "label": '1:16 (6.25%)',846 "label": '1:16 (6.25%)',
1151 "toggle-state": 0,847 "toggle-state": 0,
1152 "toggle-type": 'checkmark',848 "toggle-type": 'checkmark'
1153 "visible": true
1154 },849 },
1155 {850 {
1156 "id": 179,851 "id": 179,
1157 "enabled": true,
1158 "label": '1:8 (12.5%)',852 "label": '1:8 (12.5%)',
1159 "toggle-state": 0,853 "toggle-state": 0,
1160 "toggle-type": 'checkmark',854 "toggle-type": 'checkmark'
1161 "visible": true
1162 },855 },
1163 {856 {
1164 "id": 180,857 "id": 180,
1165 "enabled": true,
1166 "label": '1:4 (25%)',858 "label": '1:4 (25%)',
1167 "toggle-state": 0,859 "toggle-state": 0,
1168 "toggle-type": 'checkmark',860 "toggle-type": 'checkmark'
1169 "visible": true
1170 },861 },
1171 {862 {
1172 "id": 181,863 "id": 181,
1173 "enabled": true,
1174 "label": '1:2 (50%)',864 "label": '1:2 (50%)',
1175 "toggle-state": 0,865 "toggle-state": 0,
1176 "toggle-type": 'checkmark',866 "toggle-type": 'checkmark'
1177 "visible": true
1178 },867 },
1179 {868 {
1180 "id": 182,869 "id": 182,
1181 "enabled": true,
1182 "label": '1:1 (100%)',870 "label": '1:1 (100%)',
1183 "shortcut": [['1']],871 "shortcut": [['1']],
1184 "toggle-state": 1,872 "toggle-state": 1,
1185 "toggle-type": 'checkmark',873 "toggle-type": 'checkmark'
1186 "visible": true
1187 },874 },
1188 {875 {
1189 "id": 183,876 "id": 183,
1190 "enabled": true,
1191 "label": '2:1 (200%)',877 "label": '2:1 (200%)',
1192 "toggle-state": 0,878 "toggle-state": 0,
1193 "toggle-type": 'checkmark',879 "toggle-type": 'checkmark'
1194 "visible": true
1195 },880 },
1196 {881 {
1197 "id": 184,882 "id": 184,
1198 "enabled": true,
1199 "label": '4:1 (400%)',883 "label": '4:1 (400%)',
1200 "toggle-state": 0,884 "toggle-state": 0,
1201 "toggle-type": 'checkmark',885 "toggle-type": 'checkmark'
1202 "visible": true
1203 },886 },
1204 {887 {
1205 "id": 185,888 "id": 185,
1206 "enabled": true,
1207 "label": '8:1 (800%)',889 "label": '8:1 (800%)',
1208 "toggle-state": 0,890 "toggle-state": 0,
1209 "toggle-type": 'checkmark',891 "toggle-type": 'checkmark'
1210 "visible": true
1211 },892 },
1212 {893 {
1213 "id": 186,894 "id": 186,
1214 "enabled": true,
1215 "label": '16:1 (1600%)',895 "label": '16:1 (1600%)',
1216 "toggle-state": 0,896 "toggle-state": 0,
1217 "toggle-type": 'checkmark',897 "toggle-type": 'checkmark'
1218 "visible": true
1219 },898 },
1220 {899 {
1221 "id": 187,900 "id": 187,
@@ -1223,106 +902,76 @@
1223 },902 },
1224 {903 {
1225 "id": 188,904 "id": 188,
1226 "enabled": true,905 "label": 'Fill Window'
1227 "label": 'Fill Window',
1228 "visible": true
1229 },906 },
1230 {907 {
1231 "id": 189,908 "id": 189,
1232 "enabled": true,
1233 "label": 'Fit Image in Window',909 "label": 'Fit Image in Window',
1234 "shortcut": [['Control', 'Shift', 'e']],910 "shortcut": [['Control', 'Shift', 'e']]
1235 "visible": true
1236 },911 },
1237 {912 {
1238 "id": 190,913 "id": 190,
1239 "enabled": true,
1240 "label": 'Zoom In',914 "label": 'Zoom In',
1241 "shortcut": [['plus']],915 "shortcut": [['plus']]
1242 "visible": true
1243 },916 },
1244 {917 {
1245 "id": 191,918 "id": 191,
1246 "enabled": true,
1247 "label": 'Zoom Out',919 "label": 'Zoom Out',
1248 "shortcut": [['minus']],920 "shortcut": [['minus']]
1249 "visible": true
1250 },921 },
1251 {922 {
1252 "id": 4,923 "id": 4,
1253 "enabled": true,
1254 "label": 'Re_vert Zoom (67%)',924 "label": 'Re_vert Zoom (67%)',
1255 "shortcut": [['grave']],925 "shortcut": [['grave']]
1256 "visible": true
1257 }926 }
1258 ]927 ]
1259 },928 },
1260 {929 {
1261 "id": 192,930 "id": 192,
1262 "enabled": true,
1263 "label": 'Dot for Dot',931 "label": 'Dot for Dot',
1264 "toggle-state": 1,932 "toggle-state": 1,
1265 "toggle-type": 'checkmark',933 "toggle-type": 'checkmark'
1266 "visible": true
1267 },934 },
1268 {935 {
1269 "id": 193,936 "id": 193,
1270 "enabled": true,937 "label": 'New View'
1271 "label": 'New View',
1272 "visible": true
1273 }938 }
1274 ]939 ]
1275 },940 },
1276 {941 {
1277 "id": 194,942 "id": 194,
1278 "children-display": 'submenu',943 "children-display": 'submenu',
1279 "enabled": true,
1280 "label": 'Image',944 "label": 'Image',
1281 "visible": true,
1282 "submenu": [945 "submenu": [
1283 {946 {
1284 "id": 195,947 "id": 195,
1285 "enabled": true,
1286 "label": 'Image Properties',948 "label": 'Image Properties',
1287 "shortcut": [['Alt', 'Return']],949 "shortcut": [['Alt', 'Return']]
1288 "visible": true
1289 },950 },
1290 {951 {
1291 "id": 196,952 "id": 196,
1292 "enabled": true,953 "label": 'Configure Grid...'
1293 "label": 'Configure Grid...',
1294 "visible": true
1295 },954 },
1296 {955 {
1297 "id": 197,956 "id": 197,
1298 "children-display": 'submenu',957 "children-display": 'submenu',
1299 "enabled": true,
1300 "label": 'Guides',958 "label": 'Guides',
1301 "visible": true,
1302 "submenu": [959 "submenu": [
1303 {960 {
1304 "id": 198,961 "id": 198,
1305 "enabled": true,962 "label": 'Remove all Guides'
1306 "label": 'Remove all Guides',
1307 "visible": true
1308 },963 },
1309 {964 {
1310 "id": 199,965 "id": 199,
1311 "enabled": true,966 "label": 'New Guides from Selection'
1312 "label": 'New Guides from Selection',
1313 "visible": true
1314 },967 },
1315 {968 {
1316 "id": 200,969 "id": 200,
1317 "enabled": true,970 "label": 'New Guide...'
1318 "label": 'New Guide...',
1319 "visible": true
1320 },971 },
1321 {972 {
1322 "id": 201,973 "id": 201,
1323 "enabled": true,974 "label": 'New Guide (by Percent)...'
1324 "label": 'New Guide (by Percent)...',
1325 "visible": true
1326 }975 }
1327 ]976 ]
1328 },977 },
@@ -1332,22 +981,16 @@
1332 },981 },
1333 {982 {
1334 "id": 203,983 "id": 203,
1335 "enabled": true,984 "label": 'Align Visible Layers...'
1336 "label": 'Align Visible Layers...',
1337 "visible": true
1338 },985 },
1339 {986 {
1340 "id": 204,987 "id": 204,
1341 "enabled": true,988 "label": 'Flatten Image'
1342 "label": 'Flatten Image',
1343 "visible": true
1344 },989 },
1345 {990 {
1346 "id": 205,991 "id": 205,
1347 "enabled": true,
1348 "label": 'Merge Visible Layers...',992 "label": 'Merge Visible Layers...',
1349 "shortcut": [['Control', 'm']],993 "shortcut": [['Control', 'm']]
1350 "visible": true
1351 },994 },
1352 {995 {
1353 "id": 206,996 "id": 206,
@@ -1355,21 +998,16 @@
1355 },998 },
1356 {999 {
1357 "id": 207,1000 "id": 207,
1358 "enabled": true,1001 "label": 'Zealous Crop'
1359 "label": 'Zealous Crop',
1360 "visible": true
1361 },1002 },
1362 {1003 {
1363 "id": 208,1004 "id": 208,
1364 "enabled": true,1005 "label": 'Autocrop Image'
1365 "label": 'Autocrop Image',
1366 "visible": true
1367 },1006 },
1368 {1007 {
1369 "id": 209,1008 "id": 209,
1370 "enabled": false,1009 "enabled": false,
1371 "label": 'Crop to Selection',1010 "label": 'Crop to Selection'
1372 "visible": true
1373 },1011 },
1374 {1012 {
1375 "id": 210,1013 "id": 210,
@@ -1377,33 +1015,24 @@
1377 },1015 },
1378 {1016 {
1379 "id": 211,1017 "id": 211,
1380 "enabled": true,1018 "label": 'Scale Image...'
1381 "label": 'Scale Image...',
1382 "visible": true
1383 },1019 },
1384 {1020 {
1385 "id": 212,1021 "id": 212,
1386 "enabled": true,1022 "label": 'Print Size...'
1387 "label": 'Print Size...',
1388 "visible": true
1389 },1023 },
1390 {1024 {
1391 "id": 213,1025 "id": 213,
1392 "enabled": false,1026 "enabled": false,
1393 "label": 'Fit Canvas to Selection',1027 "label": 'Fit Canvas to Selection'
1394 "visible": true
1395 },1028 },
1396 {1029 {
1397 "id": 214,1030 "id": 214,
1398 "enabled": true,1031 "label": 'Fit Canvas to Layers'
1399 "label": 'Fit Canvas to Layers',
1400 "visible": true
1401 },1032 },
1402 {1033 {
1403 "id": 215,1034 "id": 215,
1404 "enabled": true,1035 "label": 'Canvas Size...'
1405 "label": 'Canvas Size...',
1406 "visible": true
1407 },1036 },
1408 {1037 {
1409 "id": 216,1038 "id": 216,
@@ -1412,15 +1041,11 @@
1412 {1041 {
1413 "id": 217,1042 "id": 217,
1414 "children-display": 'submenu',1043 "children-display": 'submenu',
1415 "enabled": true,
1416 "label": 'Transform',1044 "label": 'Transform',
1417 "visible": true,
1418 "submenu": [1045 "submenu": [
1419 {1046 {
1420 "id": 218,1047 "id": 218,
1421 "enabled": true,1048 "label": 'Guillotine'
1422 "label": 'Guillotine',
1423 "visible": true
1424 },1049 },
1425 {1050 {
1426 "id": 219,1051 "id": 219,
@@ -1428,21 +1053,15 @@
1428 },1053 },
1429 {1054 {
1430 "id": 220,1055 "id": 220,
1431 "enabled": true,1056 "label": 'Rotate 180?'
1432 "label": 'Rotate 180?',
1433 "visible": true
1434 },1057 },
1435 {1058 {
1436 "id": 221,1059 "id": 221,
1437 "enabled": true,1060 "label": 'Rotate 90? counter-clockwise'
1438 "label": 'Rotate 90? counter-clockwise',
1439 "visible": true
1440 },1061 },
1441 {1062 {
1442 "id": 222,1063 "id": 222,
1443 "enabled": true,1064 "label": 'Rotate 90? clockwise'
1444 "label": 'Rotate 90? clockwise',
1445 "visible": true
1446 },1065 },
1447 {1066 {
1448 "id": 223,1067 "id": 223,
@@ -1450,36 +1069,26 @@
1450 },1069 },
1451 {1070 {
1452 "id": 224,1071 "id": 224,
1453 "enabled": true,1072 "label": 'Flip Vertically'
1454 "label": 'Flip Vertically',
1455 "visible": true
1456 },1073 },
1457 {1074 {
1458 "id": 225,1075 "id": 225,
1459 "enabled": true,1076 "label": 'Flip Horizontally'
1460 "label": 'Flip Horizontally',
1461 "visible": true
1462 }1077 }
1463 ]1078 ]
1464 },1079 },
1465 {1080 {
1466 "id": 226,1081 "id": 226,
1467 "children-display": 'submenu',1082 "children-display": 'submenu',
1468 "enabled": true,
1469 "label": 'Mode',1083 "label": 'Mode',
1470 "visible": true,
1471 "submenu": [1084 "submenu": [
1472 {1085 {
1473 "id": 227,1086 "id": 227,
1474 "enabled": true,1087 "label": 'Convert to Color Profile...'
1475 "label": 'Convert to Color Profile...',
1476 "visible": true
1477 },1088 },
1478 {1089 {
1479 "id": 228,1090 "id": 228,
1480 "enabled": true,1091 "label": 'Assign Color Profile...'
1481 "label": 'Assign Color Profile...',
1482 "visible": true
1483 },1092 },
1484 {1093 {
1485 "id": 229,1094 "id": 229,
@@ -1487,75 +1096,56 @@
1487 },1096 },
1488 {1097 {
1489 "id": 230,1098 "id": 230,
1490 "enabled": true,
1491 "label": 'Indexed...',1099 "label": 'Indexed...',
1492 "toggle-state": 0,1100 "toggle-state": 0,
1493 "toggle-type": 'checkmark',1101 "toggle-type": 'checkmark'
1494 "visible": true
1495 },1102 },
1496 {1103 {
1497 "id": 231,1104 "id": 231,
1498 "enabled": true,
1499 "label": 'Grayscale',1105 "label": 'Grayscale',
1500 "toggle-state": 0,1106 "toggle-state": 0,
1501 "toggle-type": 'checkmark',1107 "toggle-type": 'checkmark'
1502 "visible": true
1503 },1108 },
1504 {1109 {
1505 "id": 232,1110 "id": 232,
1506 "enabled": true,
1507 "label": 'RGB',1111 "label": 'RGB',
1508 "toggle-state": 1,1112 "toggle-state": 1,
1509 "toggle-type": 'checkmark',1113 "toggle-type": 'checkmark'
1510 "visible": true
1511 }1114 }
1512 ]1115 ]
1513 },1116 },
1514 {1117 {
1515 "id": 233,1118 "id": 233,
1516 "enabled": true,
1517 "label": 'Duplicate',1119 "label": 'Duplicate',
1518 "shortcut": [['Control', 'd']],1120 "shortcut": [['Control', 'd']]
1519 "visible": true
1520 }1121 }
1521 ]1122 ]
1522 },1123 },
1523 {1124 {
1524 "id": 234,1125 "id": 234,
1525 "children-display": 'submenu',1126 "children-display": 'submenu',
1526 "enabled": true,
1527 "label": 'Layer',1127 "label": 'Layer',
1528 "visible": true,
1529 "submenu": [1128 "submenu": [
1530 {1129 {
1531 "id": 235,1130 "id": 235,
1532 "enabled": true,1131 "label": 'Autocrop Layer'
1533 "label": 'Autocrop Layer',
1534 "visible": true
1535 },1132 },
1536 {1133 {
1537 "id": 236,1134 "id": 236,
1538 "enabled": false,1135 "enabled": false,
1539 "label": 'Crop to Selection',1136 "label": 'Crop to Selection'
1540 "visible": true
1541 },1137 },
1542 {1138 {
1543 "id": 237,1139 "id": 237,
1544 "enabled": true,1140 "label": 'Scale Layer...'
1545 "label": 'Scale Layer...',
1546 "visible": true
1547 },1141 },
1548 {1142 {
1549 "id": 238,1143 "id": 238,
1550 "enabled": true,1144 "label": 'Layer to Image Size'
1551 "label": 'Layer to Image Size',
1552 "visible": true
1553 },1145 },
1554 {1146 {
1555 "id": 239,1147 "id": 239,
1556 "enabled": true,1148 "label": 'Layer Boundary Size...'
1557 "label": 'Layer Boundary Size...',
1558 "visible": true
1559 },1149 },
1560 {1150 {
1561 "id": 240,1151 "id": 240,
@@ -1564,16 +1154,12 @@
1564 {1154 {
1565 "id": 241,1155 "id": 241,
1566 "children-display": 'submenu',1156 "children-display": 'submenu',
1567 "enabled": true,
1568 "label": 'Transform',1157 "label": 'Transform',
1569 "visible": true,
1570 "submenu": [1158 "submenu": [
1571 {1159 {
1572 "id": 242,1160 "id": 242,
1573 "enabled": true,
1574 "label": 'Offset...',1161 "label": 'Offset...',
1575 "shortcut": [['Control', 'Shift', 'o']],1162 "shortcut": [['Control', 'Shift', 'o']]
1576 "visible": true
1577 },1163 },
1578 {1164 {
1579 "id": 243,1165 "id": 243,
@@ -1581,27 +1167,19 @@
1581 },1167 },
1582 {1168 {
1583 "id": 244,1169 "id": 244,
1584 "enabled": true,1170 "label": 'Arbitrary Rotation...'
1585 "label": 'Arbitrary Rotation...',
1586 "visible": true
1587 },1171 },
1588 {1172 {
1589 "id": 245,1173 "id": 245,
1590 "enabled": true,1174 "label": 'Rotate 180?'
1591 "label": 'Rotate 180?',
1592 "visible": true
1593 },1175 },
1594 {1176 {
1595 "id": 246,1177 "id": 246,
1596 "enabled": true,1178 "label": 'Rotate 90? counter-clockwise'
1597 "label": 'Rotate 90? counter-clockwise',
1598 "visible": true
1599 },1179 },
1600 {1180 {
1601 "id": 247,1181 "id": 247,
1602 "enabled": true,1182 "label": 'Rotate 90? clockwise'
1603 "label": 'Rotate 90? clockwise',
1604 "visible": true
1605 },1183 },
1606 {1184 {
1607 "id": 248,1185 "id": 248,
@@ -1609,48 +1187,34 @@
1609 },1187 },
1610 {1188 {
1611 "id": 249,1189 "id": 249,
1612 "enabled": true,1190 "label": 'Flip Vertically'
1613 "label": 'Flip Vertically',
1614 "visible": true
1615 },1191 },
1616 {1192 {
1617 "id": 250,1193 "id": 250,
1618 "enabled": true,1194 "label": 'Flip Horizontally'
1619 "label": 'Flip Horizontally',
1620 "visible": true
1621 }1195 }
1622 ]1196 ]
1623 },1197 },
1624 {1198 {
1625 "id": 251,1199 "id": 251,
1626 "children-display": 'submenu',1200 "children-display": 'submenu',
1627 "enabled": true,
1628 "label": 'Transparency',1201 "label": 'Transparency',
1629 "visible": true,
1630 "submenu": [1202 "submenu": [
1631 {1203 {
1632 "id": 252,1204 "id": 252,
1633 "enabled": true,1205 "label": 'Intersect with Selection'
1634 "label": 'Intersect with Selection',
1635 "visible": true
1636 },1206 },
1637 {1207 {
1638 "id": 253,1208 "id": 253,
1639 "enabled": true,1209 "label": 'Subtract from Selection'
1640 "label": 'Subtract from Selection',
1641 "visible": true
1642 },1210 },
1643 {1211 {
1644 "id": 254,1212 "id": 254,
1645 "enabled": true,1213 "label": 'Add to Selection'
1646 "label": 'Add to Selection',
1647 "visible": true
1648 },1214 },
1649 {1215 {
1650 "id": 255,1216 "id": 255,
1651 "enabled": true,1217 "label": 'Alpha to Selection'
1652 "label": 'Alpha to Selection',
1653 "visible": true
1654 },1218 },
1655 {1219 {
1656 "id": 256,1220 "id": 256,
@@ -1658,66 +1222,51 @@
1658 },1222 },
1659 {1223 {
1660 "id": 257,1224 "id": 257,
1661 "enabled": true,1225 "label": 'Threshold Alpha...'
1662 "label": 'Threshold Alpha...',
1663 "visible": true
1664 },1226 },
1665 {1227 {
1666 "id": 258,1228 "id": 258,
1667 "enabled": true,1229 "label": 'Semi-Flatten'
1668 "label": 'Semi-Flatten',
1669 "visible": true
1670 },1230 },
1671 {1231 {
1672 "id": 259,1232 "id": 259,
1673 "enabled": true,1233 "label": 'Color to Alpha...'
1674 "label": 'Color to Alpha...',
1675 "visible": true
1676 },1234 },
1677 {1235 {
1678 "id": 260,1236 "id": 260,
1679 "enabled": true,1237 "label": 'Remove Alpha Channel'
1680 "label": 'Remove Alpha Channel',
1681 "visible": true
1682 },1238 },
1683 {1239 {
1684 "id": 261,1240 "id": 261,
1685 "enabled": false,1241 "enabled": false,
1686 "label": 'Add Alpha Channel',1242 "label": 'Add Alpha Channel'
1687 "visible": true
1688 }1243 }
1689 ]1244 ]
1690 },1245 },
1691 {1246 {
1692 "id": 262,1247 "id": 262,
1693 "children-display": 'submenu',1248 "children-display": 'submenu',
1694 "enabled": true,
1695 "label": 'Mask',1249 "label": 'Mask',
1696 "visible": true,
1697 "submenu": [1250 "submenu": [
1698 {1251 {
1699 "id": 263,1252 "id": 263,
1700 "enabled": false,1253 "enabled": false,
1701 "label": 'Intersect with Selection',1254 "label": 'Intersect with Selection'
1702 "visible": true
1703 },1255 },
1704 {1256 {
1705 "id": 264,1257 "id": 264,
1706 "enabled": false,1258 "enabled": false,
1707 "label": 'Subtract from Selection',1259 "label": 'Subtract from Selection'
1708 "visible": true
1709 },1260 },
1710 {1261 {
1711 "id": 265,1262 "id": 265,
1712 "enabled": false,1263 "enabled": false,
1713 "label": 'Add to Selection',1264 "label": 'Add to Selection'
1714 "visible": true
1715 },1265 },
1716 {1266 {
1717 "id": 266,1267 "id": 266,
1718 "enabled": false,1268 "enabled": false,
1719 "label": 'Mask to Selection',1269 "label": 'Mask to Selection'
1720 "visible": true
1721 },1270 },
1722 {1271 {
1723 "id": 267,1272 "id": 267,
@@ -1728,24 +1277,21 @@
1728 "enabled": false,1277 "enabled": false,
1729 "label": 'Disable Layer Mask',1278 "label": 'Disable Layer Mask',
1730 "toggle-state": 0,1279 "toggle-state": 0,
1731 "toggle-type": 'checkmark',1280 "toggle-type": 'checkmark'
1732 "visible": true
1733 },1281 },
1734 {1282 {
1735 "id": 269,1283 "id": 269,
1736 "enabled": false,1284 "enabled": false,
1737 "label": 'Edit Layer Mask',1285 "label": 'Edit Layer Mask',
1738 "toggle-state": 0,1286 "toggle-state": 0,
1739 "toggle-type": 'checkmark',1287 "toggle-type": 'checkmark'
1740 "visible": true
1741 },1288 },
1742 {1289 {
1743 "id": 270,1290 "id": 270,
1744 "enabled": false,1291 "enabled": false,
1745 "label": 'Show Layer Mask',1292 "label": 'Show Layer Mask',
1746 "toggle-state": 0,1293 "toggle-state": 0,
1747 "toggle-type": 'checkmark',1294 "toggle-type": 'checkmark'
1748 "visible": true
1749 },1295 },
1750 {1296 {
1751 "id": 271,1297 "id": 271,
@@ -1754,35 +1300,27 @@
1754 {1300 {
1755 "id": 272,1301 "id": 272,
1756 "enabled": false,1302 "enabled": false,
1757 "label": 'Delete Layer Mask',1303 "label": 'Delete Layer Mask'
1758 "visible": true
1759 },1304 },
1760 {1305 {
1761 "id": 273,1306 "id": 273,
1762 "enabled": false,1307 "enabled": false,
1763 "label": 'Apply Layer Mask',1308 "label": 'Apply Layer Mask'
1764 "visible": true
1765 },1309 },
1766 {1310 {
1767 "id": 274,1311 "id": 274,
1768 "enabled": true,1312 "label": 'Add Layer Mask...'
1769 "label": 'Add Layer Mask...',
1770 "visible": true
1771 }1313 }
1772 ]1314 ]
1773 },1315 },
1774 {1316 {
1775 "id": 275,1317 "id": 275,
1776 "children-display": 'submenu',1318 "children-display": 'submenu',
1777 "enabled": true,
1778 "label": 'Stack',1319 "label": 'Stack',
1779 "visible": true,
1780 "submenu": [1320 "submenu": [
1781 {1321 {
1782 "id": 276,1322 "id": 276,
1783 "enabled": true,1323 "label": 'Reverse Layer Order'
1784 "label": 'Reverse Layer Order',
1785 "visible": true
1786 },1324 },
1787 {1325 {
1788 "id": 277,1326 "id": 277,
@@ -1791,26 +1329,22 @@
1791 {1329 {
1792 "id": 278,1330 "id": 278,
1793 "enabled": false,1331 "enabled": false,
1794 "label": 'Layer to Bottom',1332 "label": 'Layer to Bottom'
1795 "visible": true
1796 },1333 },
1797 {1334 {
1798 "id": 279,1335 "id": 279,
1799 "enabled": false,1336 "enabled": false,
1800 "label": 'Layer to Top',1337 "label": 'Layer to Top'
1801 "visible": true
1802 },1338 },
1803 {1339 {
1804 "id": 280,1340 "id": 280,
1805 "enabled": false,1341 "enabled": false,
1806 "label": 'Lower Layer',1342 "label": 'Lower Layer'
1807 "visible": true
1808 },1343 },
1809 {1344 {
1810 "id": 281,1345 "id": 281,
1811 "enabled": false,1346 "enabled": false,
1812 "label": 'Raise Layer',1347 "label": 'Raise Layer'
1813 "visible": true
1814 },1348 },
1815 {1349 {
1816 "id": 282,1350 "id": 282,
@@ -1820,29 +1354,25 @@
1820 "id": 283,1354 "id": 283,
1821 "enabled": false,1355 "enabled": false,
1822 "label": 'Select Bottom Layer',1356 "label": 'Select Bottom Layer',
1823 "shortcut": [['End']],1357 "shortcut": [['End']]
1824 "visible": true
1825 },1358 },
1826 {1359 {
1827 "id": 284,1360 "id": 284,
1828 "enabled": false,1361 "enabled": false,
1829 "label": 'Select Top Layer',1362 "label": 'Select Top Layer',
1830 "shortcut": [['Home']],1363 "shortcut": [['Home']]
1831 "visible": true
1832 },1364 },
1833 {1365 {
1834 "id": 285,1366 "id": 285,
1835 "enabled": false,1367 "enabled": false,
1836 "label": 'Select Next Layer',1368 "label": 'Select Next Layer',
1837 "shortcut": [['Page_Down']],1369 "shortcut": [['Page_Down']]
1838 "visible": true
1839 },1370 },
1840 {1371 {
1841 "id": 286,1372 "id": 286,
1842 "enabled": false,1373 "enabled": false,
1843 "label": 'Select Previous Layer',1374 "label": 'Select Previous Layer',
1844 "shortcut": [['Page_Up']],1375 "shortcut": [['Page_Up']]
1845 "visible": true
1846 }1376 }
1847 ]1377 ]
1848 },1378 },
@@ -1854,94 +1384,70 @@
1854 {1384 {
1855 "id": 288,1385 "id": 288,
1856 "enabled": false,1386 "enabled": false,
1857 "label": 'Empty',1387 "label": 'Empty'
1858 "visible": true
1859 }1388 }
1860 ]1389 ]
1861 },1390 },
1862 {1391 {
1863 "id": 289,1392 "id": 289,
1864 "enabled": true,1393 "label": 'Delete Layer'
1865 "label": 'Delete Layer',
1866 "visible": true
1867 },1394 },
1868 {1395 {
1869 "id": 290,1396 "id": 290,
1870 "enabled": false,1397 "enabled": false,
1871 "label": 'Merge Down',1398 "label": 'Merge Down'
1872 "visible": true
1873 },1399 },
1874 {1400 {
1875 "id": 291,1401 "id": 291,
1876 "enabled": false,1402 "enabled": false,
1877 "label": 'Anchor Layer',1403 "label": 'Anchor Layer',
1878 "shortcut": [['Control', 'h']],1404 "shortcut": [['Control', 'h']]
1879 "visible": true
1880 },1405 },
1881 {1406 {
1882 "id": 292,1407 "id": 292,
1883 "enabled": true,
1884 "label": 'Duplicate Layer',1408 "label": 'Duplicate Layer',
1885 "shortcut": [['Control', 'Shift', 'd']],1409 "shortcut": [['Control', 'Shift', 'd']]
1886 "visible": true
1887 },1410 },
1888 {1411 {
1889 "id": 293,1412 "id": 293,
1890 "enabled": true,1413 "label": 'New from Visible'
1891 "label": 'New from Visible',
1892 "visible": true
1893 },1414 },
1894 {1415 {
1895 "id": 294,1416 "id": 294,
1896 "enabled": true,
1897 "label": 'New Layer...',1417 "label": 'New Layer...',
1898 "shortcut": [['Control', 'Shift', 'n']],1418 "shortcut": [['Control', 'Shift', 'n']]
1899 "visible": true
1900 }1419 }
1901 ]1420 ]
1902 },1421 },
1903 {1422 {
1904 "id": 295,1423 "id": 295,
1905 "children-display": 'submenu',1424 "children-display": 'submenu',
1906 "enabled": true,
1907 "label": 'Colors',1425 "label": 'Colors',
1908 "visible": true,
1909 "submenu": [1426 "submenu": [
1910 {1427 {
1911 "id": 296,1428 "id": 296,
1912 "enabled": true,1429 "label": 'Retinex...'
1913 "label": 'Retinex...',
1914 "visible": true
1915 },1430 },
1916 {1431 {
1917 "id": 297,1432 "id": 297,
1918 "enabled": true,1433 "label": 'Maximum RGB...'
1919 "label": 'Maximum RGB...',
1920 "visible": true
1921 },1434 },
1922 {1435 {
1923 "id": 298,1436 "id": 298,
1924 "enabled": false,1437 "enabled": false,
1925 "label": 'Hot...',1438 "label": 'Hot...'
1926 "visible": true
1927 },1439 },
1928 {1440 {
1929 "id": 299,1441 "id": 299,
1930 "enabled": true,1442 "label": 'Filter Pack...'
1931 "label": 'Filter Pack...',
1932 "visible": true
1933 },1443 },
1934 {1444 {
1935 "id": 300,1445 "id": 300,
1936 "enabled": true,1446 "label": 'Color to Alpha...'
1937 "label": 'Color to Alpha...',
1938 "visible": true
1939 },1447 },
1940 {1448 {
1941 "id": 301,1449 "id": 301,
1942 "enabled": true,1450 "label": 'Colorify...'
1943 "label": 'Colorify...',
1944 "visible": true
1945 },1451 },
1946 {1452 {
1947 "id": 302,1453 "id": 302,
@@ -1950,78 +1456,54 @@
1950 {1456 {
1951 "id": 303,1457 "id": 303,
1952 "children-display": 'submenu',1458 "children-display": 'submenu',
1953 "enabled": true,
1954 "label": 'Info',1459 "label": 'Info',
1955 "visible": true,
1956 "submenu": [1460 "submenu": [
1957 {1461 {
1958 "id": 304,1462 "id": 304,
1959 "enabled": true,1463 "label": 'Smooth Palette...'
1960 "label": 'Smooth Palette...',
1961 "visible": true
1962 },1464 },
1963 {1465 {
1964 "id": 305,1466 "id": 305,
1965 "enabled": true,1467 "label": 'Colorcube Analysis...'
1966 "label": 'Colorcube Analysis...',
1967 "visible": true
1968 },1468 },
1969 {1469 {
1970 "id": 306,1470 "id": 306,
1971 "enabled": true,1471 "label": 'Border Average...'
1972 "label": 'Border Average...',
1973 "visible": true
1974 },1472 },
1975 {1473 {
1976 "id": 307,1474 "id": 307,
1977 "enabled": true,1475 "label": 'Histogram'
1978 "label": 'Histogram',
1979 "visible": true
1980 }1476 }
1981 ]1477 ]
1982 },1478 },
1983 {1479 {
1984 "id": 308,1480 "id": 308,
1985 "children-display": 'submenu',1481 "children-display": 'submenu',
1986 "enabled": true,
1987 "label": 'Map',1482 "label": 'Map',
1988 "visible": true,
1989 "submenu": [1483 "submenu": [
1990 {1484 {
1991 "id": 309,1485 "id": 309,
1992 "enabled": true,1486 "label": 'Sample Colorize...'
1993 "label": 'Sample Colorize...',
1994 "visible": true
1995 },1487 },
1996 {1488 {
1997 "id": 310,1489 "id": 310,
1998 "enabled": true,1490 "label": 'Rotate Colors...'
1999 "label": 'Rotate Colors...',
2000 "visible": true
2001 },1491 },
2002 {1492 {
2003 "id": 311,1493 "id": 311,
2004 "enabled": true,1494 "label": 'Palette Map'
2005 "label": 'Palette Map',
2006 "visible": true
2007 },1495 },
2008 {1496 {
2009 "id": 312,1497 "id": 312,
2010 "enabled": true,1498 "label": 'Gradient Map'
2011 "label": 'Gradient Map',
2012 "visible": true
2013 },1499 },
2014 {1500 {
2015 "id": 313,1501 "id": 313,
2016 "enabled": true,1502 "label": 'Color Exchange...'
2017 "label": 'Color Exchange...',
2018 "visible": true
2019 },1503 },
2020 {1504 {
2021 "id": 314,1505 "id": 314,
2022 "enabled": true,1506 "label": 'Alien Map...'
2023 "label": 'Alien Map...',
2024 "visible": true
2025 },1507 },
2026 {1508 {
2027 "id": 315,1509 "id": 315,
@@ -2030,92 +1512,68 @@
2030 {1512 {
2031 "id": 316,1513 "id": 316,
2032 "enabled": false,1514 "enabled": false,
2033 "label": 'Set Colormap...',1515 "label": 'Set Colormap...'
2034 "visible": true
2035 },1516 },
2036 {1517 {
2037 "id": 317,1518 "id": 317,
2038 "enabled": false,1519 "enabled": false,
2039 "label": 'Rearrange Colormap...',1520 "label": 'Rearrange Colormap...'
2040 "visible": true
2041 }1521 }
2042 ]1522 ]
2043 },1523 },
2044 {1524 {
2045 "id": 318,1525 "id": 318,
2046 "children-display": 'submenu',1526 "children-display": 'submenu',
2047 "enabled": true,
2048 "label": 'Components',1527 "label": 'Components',
2049 "visible": true,
2050 "submenu": [1528 "submenu": [
2051 {1529 {
2052 "id": 319,1530 "id": 319,
2053 "enabled": false,1531 "enabled": false,
2054 "label": 'Recompose',1532 "label": 'Recompose'
2055 "visible": true
2056 },1533 },
2057 {1534 {
2058 "id": 320,1535 "id": 320,
2059 "enabled": true,1536 "label": 'Decompose...'
2060 "label": 'Decompose...',
2061 "visible": true
2062 },1537 },
2063 {1538 {
2064 "id": 321,1539 "id": 321,
2065 "enabled": false,1540 "enabled": false,
2066 "label": 'Compose...',1541 "label": 'Compose...'
2067 "visible": true
2068 },1542 },
2069 {1543 {
2070 "id": 322,1544 "id": 322,
2071 "enabled": true,1545 "label": 'Channel Mixer...'
2072 "label": 'Channel Mixer...',
2073 "visible": true
2074 }1546 }
2075 ]1547 ]
2076 },1548 },
2077 {1549 {
2078 "id": 323,1550 "id": 323,
2079 "children-display": 'submenu',1551 "children-display": 'submenu',
2080 "enabled": true,
2081 "label": 'Auto',1552 "label": 'Auto',
2082 "visible": true,
2083 "submenu": [1553 "submenu": [
2084 {1554 {
2085 "id": 324,1555 "id": 324,
2086 "enabled": true,1556 "label": 'Stretch HSV'
2087 "label": 'Stretch HSV',
2088 "visible": true
2089 },1557 },
2090 {1558 {
2091 "id": 325,1559 "id": 325,
2092 "enabled": true,1560 "label": 'Stretch Contrast'
2093 "label": 'Stretch Contrast',
2094 "visible": true
2095 },1561 },
2096 {1562 {
2097 "id": 326,1563 "id": 326,
2098 "enabled": true,1564 "label": 'Normalize'
2099 "label": 'Normalize',
2100 "visible": true
2101 },1565 },
2102 {1566 {
2103 "id": 327,1567 "id": 327,
2104 "enabled": true,1568 "label": 'Color Enhance'
2105 "label": 'Color Enhance',
2106 "visible": true
2107 },1569 },
2108 {1570 {
2109 "id": 328,1571 "id": 328,
2110 "enabled": true,1572 "label": 'White Balance'
2111 "label": 'White Balance',
2112 "visible": true
2113 },1573 },
2114 {1574 {
2115 "id": 329,1575 "id": 329,
2116 "enabled": true,1576 "label": 'Equalize'
2117 "label": 'Equalize',
2118 "visible": true
2119 }1577 }
2120 ]1578 ]
2121 },1579 },
@@ -2125,11 +1583,9 @@
2125 },1583 },
2126 {1584 {
2127 "id": 331,1585 "id": 331,
2128 "enabled": true,
2129 "label": 'Use GEGL',1586 "label": 'Use GEGL',
2130 "toggle-state": 0,1587 "toggle-state": 0,
2131 "toggle-type": 'checkmark',1588 "toggle-type": 'checkmark'
2132 "visible": true
2133 },1589 },
2134 {1590 {
2135 "id": 332,1591 "id": 332,
@@ -2137,15 +1593,11 @@
2137 },1593 },
2138 {1594 {
2139 "id": 333,1595 "id": 333,
2140 "enabled": true,1596 "label": 'Value Invert'
2141 "label": 'Value Invert',
2142 "visible": true
2143 },1597 },
2144 {1598 {
2145 "id": 334,1599 "id": 334,
2146 "enabled": true,1600 "label": 'Invert'
2147 "label": 'Invert',
2148 "visible": true
2149 },1601 },
2150 {1602 {
2151 "id": 335,1603 "id": 335,
@@ -2153,87 +1605,61 @@
2153 },1605 },
2154 {1606 {
2155 "id": 336,1607 "id": 336,
2156 "enabled": true,1608 "label": 'Desaturate...'
2157 "label": 'Desaturate...',
2158 "visible": true
2159 },1609 },
2160 {1610 {
2161 "id": 337,1611 "id": 337,
2162 "enabled": true,1612 "label": 'Posterize...'
2163 "label": 'Posterize...',
2164 "visible": true
2165 },1613 },
2166 {1614 {
2167 "id": 338,1615 "id": 338,
2168 "enabled": true,1616 "label": 'Curves...'
2169 "label": 'Curves...',
2170 "visible": true
2171 },1617 },
2172 {1618 {
2173 "id": 339,1619 "id": 339,
2174 "enabled": true,1620 "label": 'Levels...'
2175 "label": 'Levels...',
2176 "visible": true
2177 },1621 },
2178 {1622 {
2179 "id": 340,1623 "id": 340,
2180 "enabled": true,1624 "label": 'Threshold...'
2181 "label": 'Threshold...',
2182 "visible": true
2183 },1625 },
2184 {1626 {
2185 "id": 341,1627 "id": 341,
2186 "enabled": true,1628 "label": 'Brightness-Contrast...'
2187 "label": 'Brightness-Contrast...',
2188 "visible": true
2189 },1629 },
2190 {1630 {
2191 "id": 342,1631 "id": 342,
2192 "enabled": true,1632 "label": 'Colorize...'
2193 "label": 'Colorize...',
2194 "visible": true
2195 },1633 },
2196 {1634 {
2197 "id": 343,1635 "id": 343,
2198 "enabled": true,1636 "label": 'Hue-Saturation...'
2199 "label": 'Hue-Saturation...',
2200 "visible": true
2201 },1637 },
2202 {1638 {
2203 "id": 344,1639 "id": 344,
2204 "enabled": true,1640 "label": 'Color Balance...'
2205 "label": 'Color Balance...',
2206 "visible": true
2207 }1641 }
2208 ]1642 ]
2209 },1643 },
2210 {1644 {
2211 "id": 345,1645 "id": 345,
2212 "children-display": 'submenu',1646 "children-display": 'submenu',
2213 "enabled": true,
2214 "label": 'Tools',1647 "label": 'Tools',
2215 "visible": true,
2216 "submenu": [1648 "submenu": [
2217 {1649 {
2218 "id": 346,1650 "id": 346,
2219 "enabled": true,
2220 "label": 'Swap Colors',1651 "label": 'Swap Colors',
2221 "shortcut": [['x']],1652 "shortcut": [['x']]
2222 "visible": true
2223 },1653 },
2224 {1654 {
2225 "id": 347,1655 "id": 347,
2226 "enabled": true,
2227 "label": 'Default Colors',1656 "label": 'Default Colors',
2228 "shortcut": [['d']],1657 "shortcut": [['d']]
2229 "visible": true
2230 },1658 },
2231 {1659 {
2232 "id": 348,1660 "id": 348,
2233 "enabled": true,
2234 "label": 'Toolbox',1661 "label": 'Toolbox',
2235 "shortcut": [['Control', 'b']],1662 "shortcut": [['Control', 'b']]
2236 "visible": true
2237 },1663 },
2238 {1664 {
2239 "id": 349,1665 "id": 349,
@@ -2241,326 +1667,232 @@
2241 },1667 },
2242 {1668 {
2243 "id": 350,1669 "id": 350,
2244 "enabled": true,1670 "label": 'GEGL Operation...'
2245 "label": 'GEGL Operation...',
2246 "visible": true
2247 },1671 },
2248 {1672 {
2249 "id": 351,1673 "id": 351,
2250 "enabled": true,
2251 "label": 'Text',1674 "label": 'Text',
2252 "shortcut": [['t']],1675 "shortcut": [['t']]
2253 "visible": true
2254 },1676 },
2255 {1677 {
2256 "id": 352,1678 "id": 352,
2257 "enabled": true,
2258 "label": 'Measure',1679 "label": 'Measure',
2259 "shortcut": [['Shift', 'm']],1680 "shortcut": [['Shift', 'm']]
2260 "visible": true
2261 },1681 },
2262 {1682 {
2263 "id": 353,1683 "id": 353,
2264 "enabled": true,
2265 "label": 'Zoom',1684 "label": 'Zoom',
2266 "shortcut": [['z']],1685 "shortcut": [['z']]
2267 "visible": true
2268 },1686 },
2269 {1687 {
2270 "id": 354,1688 "id": 354,
2271 "enabled": true,
2272 "label": 'Color Picker',1689 "label": 'Color Picker',
2273 "shortcut": [['o']],1690 "shortcut": [['o']]
2274 "visible": true
2275 },1691 },
2276 {1692 {
2277 "id": 355,1693 "id": 355,
2278 "enabled": true,
2279 "label": 'Paths',1694 "label": 'Paths',
2280 "shortcut": [['b']],1695 "shortcut": [['b']]
2281 "visible": true
2282 },1696 },
2283 {1697 {
2284 "id": 356,1698 "id": 356,
2285 "children-display": 'submenu',1699 "children-display": 'submenu',
2286 "enabled": true,
2287 "label": 'Color Tools',1700 "label": 'Color Tools',
2288 "visible": true,
2289 "submenu": [1701 "submenu": [
2290 {1702 {
2291 "id": 357,1703 "id": 357,
2292 "enabled": true,1704 "label": 'Desaturate...'
2293 "label": 'Desaturate...',
2294 "visible": true
2295 },1705 },
2296 {1706 {
2297 "id": 358,1707 "id": 358,
2298 "enabled": true,1708 "label": 'Posterize...'
2299 "label": 'Posterize...',
2300 "visible": true
2301 },1709 },
2302 {1710 {
2303 "id": 359,1711 "id": 359,
2304 "enabled": true,1712 "label": 'Curves...'
2305 "label": 'Curves...',
2306 "visible": true
2307 },1713 },
2308 {1714 {
2309 "id": 360,1715 "id": 360,
2310 "enabled": true,1716 "label": 'Levels...'
2311 "label": 'Levels...',
2312 "visible": true
2313 },1717 },
2314 {1718 {
2315 "id": 361,1719 "id": 361,
2316 "enabled": true,1720 "label": 'Threshold...'
2317 "label": 'Threshold...',
2318 "visible": true
2319 },1721 },
2320 {1722 {
2321 "id": 362,1723 "id": 362,
2322 "enabled": true,1724 "label": 'Brightness-Contrast...'
2323 "label": 'Brightness-Contrast...',
2324 "visible": true
2325 },1725 },
2326 {1726 {
2327 "id": 363,1727 "id": 363,
2328 "enabled": true,1728 "label": 'Colorize...'
2329 "label": 'Colorize...',
2330 "visible": true
2331 },1729 },
2332 {1730 {
2333 "id": 364,1731 "id": 364,
2334 "enabled": true,1732 "label": 'Hue-Saturation...'
2335 "label": 'Hue-Saturation...',
2336 "visible": true
2337 },1733 },
2338 {1734 {
2339 "id": 365,1735 "id": 365,
2340 "enabled": true,1736 "label": 'Color Balance...'
2341 "label": 'Color Balance...',
2342 "visible": true
2343 }1737 }
2344 ]1738 ]
2345 },1739 },
2346 {1740 {
2347 "id": 366,1741 "id": 366,
2348 "children-display": 'submenu',1742 "children-display": 'submenu',
2349 "enabled": true,
2350 "label": 'Transform Tools',1743 "label": 'Transform Tools',
2351 "visible": true,
2352 "submenu": [1744 "submenu": [
2353 {1745 {
2354 "id": 367,1746 "id": 367,
2355 "enabled": true,
2356 "label": 'Flip',1747 "label": 'Flip',
2357 "shortcut": [['Shift', 'f']],1748 "shortcut": [['Shift', 'f']]
2358 "visible": true
2359 },1749 },
2360 {1750 {
2361 "id": 368,1751 "id": 368,
2362 "enabled": true,
2363 "label": 'Perspective',1752 "label": 'Perspective',
2364 "shortcut": [['Shift', 'p']],1753 "shortcut": [['Shift', 'p']]
2365 "visible": true
2366 },1754 },
2367 {1755 {
2368 "id": 369,1756 "id": 369,
2369 "enabled": true,
2370 "label": 'Shear',1757 "label": 'Shear',
2371 "shortcut": [['Shift', 's']],1758 "shortcut": [['Shift', 's']]
2372 "visible": true
2373 },1759 },
2374 {1760 {
2375 "id": 370,1761 "id": 370,
2376 "enabled": true,
2377 "label": 'Scale',1762 "label": 'Scale',
2378 "shortcut": [['Shift', 't']],1763 "shortcut": [['Shift', 't']]
2379 "visible": true
2380 },1764 },
2381 {1765 {
2382 "id": 371,1766 "id": 371,
2383 "enabled": true,
2384 "label": 'Rotate',1767 "label": 'Rotate',
2385 "shortcut": [['Shift', 'r']],1768 "shortcut": [['Shift', 'r']]
2386 "visible": true
2387 },1769 },
2388 {1770 {
2389 "id": 372,1771 "id": 372,
2390 "enabled": true,
2391 "label": 'Crop',1772 "label": 'Crop',
2392 "shortcut": [['Shift', 'c']],1773 "shortcut": [['Shift', 'c']]
2393 "visible": true
2394 },1774 },
2395 {1775 {
2396 "id": 373,1776 "id": 373,
2397 "enabled": true,
2398 "label": 'Move',1777 "label": 'Move',
2399 "shortcut": [['m']],1778 "shortcut": [['m']]
2400 "visible": true
2401 },1779 },
2402 {1780 {
2403 "id": 374,1781 "id": 374,
2404 "enabled": true,
2405 "label": 'Align',1782 "label": 'Align',
2406 "shortcut": [['q']],1783 "shortcut": [['q']]
2407 "visible": true
2408 }1784 }
2409 ]1785 ]
2410 },1786 },
2411 {1787 {
2412 "id": 375,1788 "id": 375,
2413 "children-display": 'submenu',1789 "children-display": 'submenu',
2414 "enabled": true,
2415 "label": 'Paint Tools',1790 "label": 'Paint Tools',
2416 "visible": true,
2417 "submenu": [1791 "submenu": [
2418 {1792 {
2419 "id": 376,1793 "id": 376,
2420 "enabled": true,
2421 "label": 'Dodge / Burn',1794 "label": 'Dodge / Burn',
2422 "shortcut": [['Shift', 'd']],1795 "shortcut": [['Shift', 'd']]
2423 "visible": true
2424 },1796 },
2425 {1797 {
2426 "id": 377,1798 "id": 377,
2427 "enabled": true,
2428 "label": 'Smudge',1799 "label": 'Smudge',
2429 "shortcut": [['s']],1800 "shortcut": [['s']]
2430 "visible": true
2431 },1801 },
2432 {1802 {
2433 "id": 378,1803 "id": 378,
2434 "enabled": true,
2435 "label": 'Blur / Sharpen',1804 "label": 'Blur / Sharpen',
2436 "shortcut": [['Shift', 'u']],1805 "shortcut": [['Shift', 'u']]
2437 "visible": true
2438 },1806 },
2439 {1807 {
2440 "id": 379,1808 "id": 379,
2441 "enabled": true,1809 "label": 'Perspective Clone'
2442 "label": 'Perspective Clone',
2443 "visible": true
2444 },1810 },
2445 {1811 {
2446 "id": 380,1812 "id": 380,
2447 "enabled": true,
2448 "label": 'Heal',1813 "label": 'Heal',
2449 "shortcut": [['h']],1814 "shortcut": [['h']]
2450 "visible": true
2451 },1815 },
2452 {1816 {
2453 "id": 381,1817 "id": 381,
2454 "enabled": true,
2455 "label": 'Clone',1818 "label": 'Clone',
2456 "shortcut": [['c']],1819 "shortcut": [['c']]
2457 "visible": true
2458 },1820 },
2459 {1821 {
2460 "id": 382,1822 "id": 382,
2461 "enabled": true,
2462 "label": 'Ink',1823 "label": 'Ink',
2463 "shortcut": [['k']],1824 "shortcut": [['k']]
2464 "visible": true
2465 },1825 },
2466 {1826 {
2467 "id": 383,1827 "id": 383,
2468 "enabled": true,
2469 "label": 'Airbrush',1828 "label": 'Airbrush',
2470 "shortcut": [['a']],1829 "shortcut": [['a']]
2471 "visible": true
2472 },1830 },
2473 {1831 {
2474 "id": 384,1832 "id": 384,
2475 "enabled": true,
2476 "label": 'Eraser',1833 "label": 'Eraser',
2477 "shortcut": [['Shift', 'e']],1834 "shortcut": [['Shift', 'e']]
2478 "visible": true
2479 },1835 },
2480 {1836 {
2481 "id": 385,1837 "id": 385,
2482 "enabled": true,
2483 "label": 'Paintbrush',1838 "label": 'Paintbrush',
2484 "shortcut": [['p']],1839 "shortcut": [['p']]
2485 "visible": true
2486 },1840 },
2487 {1841 {
2488 "id": 386,1842 "id": 386,
2489 "enabled": true,
2490 "label": 'Pencil',1843 "label": 'Pencil',
2491 "shortcut": [['n']],1844 "shortcut": [['n']]
2492 "visible": true
2493 },1845 },
2494 {1846 {
2495 "id": 387,1847 "id": 387,
2496 "enabled": true,
2497 "label": 'Blend',1848 "label": 'Blend',
2498 "shortcut": [['l']],1849 "shortcut": [['l']]
2499 "visible": true
2500 },1850 },
2501 {1851 {
2502 "id": 388,1852 "id": 388,
2503 "enabled": true,
2504 "label": 'Bucket Fill',1853 "label": 'Bucket Fill',
2505 "shortcut": [['Shift', 'b']],1854 "shortcut": [['Shift', 'b']]
2506 "visible": true
2507 }1855 }
2508 ]1856 ]
2509 },1857 },
2510 {1858 {
2511 "id": 389,1859 "id": 389,
2512 "children-display": 'submenu',1860 "children-display": 'submenu',
2513 "enabled": true,
2514 "label": 'Selection Tools',1861 "label": 'Selection Tools',
2515 "visible": true,
2516 "submenu": [1862 "submenu": [
2517 {1863 {
2518 "id": 390,1864 "id": 390,
2519 "enabled": true,
2520 "label": 'Intelligent Scissors',1865 "label": 'Intelligent Scissors',
2521 "shortcut": [['i']],1866 "shortcut": [['i']]
2522 "visible": true
2523 },1867 },
2524 {1868 {
2525 "id": 391,1869 "id": 391,
2526 "enabled": true,
2527 "label": 'By Color Select',1870 "label": 'By Color Select',
2528 "shortcut": [['Shift', 'o']],1871 "shortcut": [['Shift', 'o']]
2529 "visible": true
2530 },1872 },
2531 {1873 {
2532 "id": 392,1874 "id": 392,
2533 "enabled": true,
2534 "label": 'Fuzzy Select',1875 "label": 'Fuzzy Select',
2535 "shortcut": [['u']],1876 "shortcut": [['u']]
2536 "visible": true
2537 },1877 },
2538 {1878 {
2539 "id": 393,1879 "id": 393,
2540 "enabled": true,1880 "label": 'Foreground Select'
2541 "label": 'Foreground Select',
2542 "visible": true
2543 },1881 },
2544 {1882 {
2545 "id": 394,1883 "id": 394,
2546 "enabled": true,
2547 "label": 'Free Select',1884 "label": 'Free Select',
2548 "shortcut": [['f']],1885 "shortcut": [['f']]
2549 "visible": true
2550 },1886 },
2551 {1887 {
2552 "id": 395,1888 "id": 395,
2553 "enabled": true,
2554 "label": 'Ellipse Select',1889 "label": 'Ellipse Select',
2555 "shortcut": [['e']],1890 "shortcut": [['e']]
2556 "visible": true
2557 },1891 },
2558 {1892 {
2559 "id": 396,1893 "id": 396,
2560 "enabled": true,
2561 "label": 'Rectangle Select',1894 "label": 'Rectangle Select',
2562 "shortcut": [['r']],1895 "shortcut": [['r']]
2563 "visible": true
2564 }1896 }
2565 ]1897 ]
2566 }1898 }
@@ -2569,49 +1901,35 @@
2569 {1901 {
2570 "id": 397,1902 "id": 397,
2571 "children-display": 'submenu',1903 "children-display": 'submenu',
2572 "enabled": true,
2573 "label": 'Filters',1904 "label": 'Filters',
2574 "visible": true,
2575 "submenu": [1905 "submenu": [
2576 {1906 {
2577 "id": 398,1907 "id": 398,
2578 "children-display": 'submenu',1908 "children-display": 'submenu',
2579 "enabled": true,
2580 "label": 'Script-Fu',1909 "label": 'Script-Fu',
2581 "visible": true,
2582 "submenu": [1910 "submenu": [
2583 {1911 {
2584 "id": 399,1912 "id": 399,
2585 "enabled": true,1913 "label": 'Start Server...'
2586 "label": 'Start Server...',
2587 "visible": true
2588 },1914 },
2589 {1915 {
2590 "id": 400,1916 "id": 400,
2591 "enabled": true,1917 "label": 'Refresh Scripts'
2592 "label": 'Refresh Scripts',
2593 "visible": true
2594 },1918 },
2595 {1919 {
2596 "id": 401,1920 "id": 401,
2597 "enabled": true,1921 "label": 'Console'
2598 "label": 'Console',
2599 "visible": true
2600 }1922 }
2601 ]1923 ]
2602 },1924 },
2603 {1925 {
2604 "id": 402,1926 "id": 402,
2605 "children-display": 'submenu',1927 "children-display": 'submenu',
2606 "enabled": true,
2607 "label": 'Python-Fu',1928 "label": 'Python-Fu',
2608 "visible": true,
2609 "submenu": [1929 "submenu": [
2610 {1930 {
2611 "id": 403,1931 "id": 403,
2612 "enabled": true,1932 "label": 'Console'
2613 "label": 'Console',
2614 "visible": true
2615 }1933 }
2616 ]1934 ]
2617 },1935 },
@@ -2622,123 +1940,83 @@
2622 {1940 {
2623 "id": 405,1941 "id": 405,
2624 "children-display": 'submenu',1942 "children-display": 'submenu',
2625 "enabled": true,
2626 "label": 'Alpha to Logo',1943 "label": 'Alpha to Logo',
2627 "visible": true,
2628 "submenu": [1944 "submenu": [
2629 {1945 {
2630 "id": 406,1946 "id": 406,
2631 "enabled": true,1947 "label": 'Textured...'
2632 "label": 'Textured...',
2633 "visible": true
2634 },1948 },
2635 {1949 {
2636 "id": 407,1950 "id": 407,
2637 "enabled": true,1951 "label": 'Particle Trace...'
2638 "label": 'Particle Trace...',
2639 "visible": true
2640 },1952 },
2641 {1953 {
2642 "id": 408,1954 "id": 408,
2643 "enabled": true,1955 "label": 'Neon...'
2644 "label": 'Neon...',
2645 "visible": true
2646 },1956 },
2647 {1957 {
2648 "id": 409,1958 "id": 409,
2649 "enabled": true,1959 "label": 'Gradient Bevel...'
2650 "label": 'Gradient Bevel...',
2651 "visible": true
2652 },1960 },
2653 {1961 {
2654 "id": 410,1962 "id": 410,
2655 "enabled": true,1963 "label": 'Glowing Hot...'
2656 "label": 'Glowing Hot...',
2657 "visible": true
2658 },1964 },
2659 {1965 {
2660 "id": 411,1966 "id": 411,
2661 "enabled": true,1967 "label": 'Glossy...'
2662 "label": 'Glossy...',
2663 "visible": true
2664 },1968 },
2665 {1969 {
2666 "id": 412,1970 "id": 412,
2667 "enabled": true,1971 "label": 'Frosty...'
2668 "label": 'Frosty...',
2669 "visible": true
2670 },1972 },
2671 {1973 {
2672 "id": 413,1974 "id": 413,
2673 "enabled": true,1975 "label": 'Cool Metal...'
2674 "label": 'Cool Metal...',
2675 "visible": true
2676 },1976 },
2677 {1977 {
2678 "id": 414,1978 "id": 414,
2679 "enabled": true,1979 "label": 'Comic Book...'
2680 "label": 'Comic Book...',
2681 "visible": true
2682 },1980 },
2683 {1981 {
2684 "id": 415,1982 "id": 415,
2685 "enabled": true,1983 "label": 'Chrome...'
2686 "label": 'Chrome...',
2687 "visible": true
2688 },1984 },
2689 {1985 {
2690 "id": 416,1986 "id": 416,
2691 "enabled": true,1987 "label": 'Chip Away...'
2692 "label": 'Chip Away...',
2693 "visible": true
2694 },1988 },
2695 {1989 {
2696 "id": 417,1990 "id": 417,
2697 "enabled": true,1991 "label": 'Chalk...'
2698 "label": 'Chalk...',
2699 "visible": true
2700 },1992 },
2701 {1993 {
2702 "id": 418,1994 "id": 418,
2703 "enabled": true,1995 "label": 'Bovination...'
2704 "label": 'Bovination...',
2705 "visible": true
2706 },1996 },
2707 {1997 {
2708 "id": 419,1998 "id": 419,
2709 "enabled": true,1999 "label": 'Blended...'
2710 "label": 'Blended...',
2711 "visible": true
2712 },2000 },
2713 {2001 {
2714 "id": 420,2002 "id": 420,
2715 "enabled": true,2003 "label": 'Basic I...'
2716 "label": 'Basic I...',
2717 "visible": true
2718 },2004 },
2719 {2005 {
2720 "id": 421,2006 "id": 421,
2721 "enabled": true,2007 "label": 'Basic II...'
2722 "label": 'Basic II...',
2723 "visible": true
2724 },2008 },
2725 {2009 {
2726 "id": 422,2010 "id": 422,
2727 "enabled": true,2011 "label": 'Alien Neon...'
2728 "label": 'Alien Neon...',
2729 "visible": true
2730 },2012 },
2731 {2013 {
2732 "id": 423,2014 "id": 423,
2733 "enabled": true,2015 "label": 'Alien Glow...'
2734 "label": 'Alien Glow...',
2735 "visible": true
2736 },2016 },
2737 {2017 {
2738 "id": 424,2018 "id": 424,
2739 "enabled": true,2019 "label": '3D Outline...'
2740 "label": '3D Outline...',
2741 "visible": true
2742 }2020 }
2743 ]2021 ]
2744 },2022 },
@@ -2749,33 +2027,23 @@
2749 {2027 {
2750 "id": 426,2028 "id": 426,
2751 "children-display": 'submenu',2029 "children-display": 'submenu',
2752 "enabled": true,
2753 "label": 'Animation',2030 "label": 'Animation',
2754 "visible": true,
2755 "submenu": [2031 "submenu": [
2756 {2032 {
2757 "id": 427,2033 "id": 427,
2758 "enabled": true,2034 "label": 'Unoptimize'
2759 "label": 'Unoptimize',
2760 "visible": true
2761 },2035 },
2762 {2036 {
2763 "id": 428,2037 "id": 428,
2764 "enabled": true,2038 "label": 'Playback...'
2765 "label": 'Playback...',
2766 "visible": true
2767 },2039 },
2768 {2040 {
2769 "id": 429,2041 "id": 429,
2770 "enabled": true,2042 "label": 'Optimize (for GIF)'
2771 "label": 'Optimize (for GIF)',
2772 "visible": true
2773 },2043 },
2774 {2044 {
2775 "id": 430,2045 "id": 430,
2776 "enabled": true,2046 "label": 'Optimize (Difference)'
2777 "label": 'Optimize (Difference)',
2778 "visible": true
2779 },2047 },
2780 {2048 {
2781 "id": 431,2049 "id": 431,
@@ -2783,111 +2051,77 @@
2783 },2051 },
2784 {2052 {
2785 "id": 432,2053 "id": 432,
2786 "enabled": true,2054 "label": 'Waves...'
2787 "label": 'Waves...',
2788 "visible": true
2789 },2055 },
2790 {2056 {
2791 "id": 433,2057 "id": 433,
2792 "enabled": true,2058 "label": 'Spinning Globe...'
2793 "label": 'Spinning Globe...',
2794 "visible": true
2795 },2059 },
2796 {2060 {
2797 "id": 434,2061 "id": 434,
2798 "enabled": true,2062 "label": 'Rippling...'
2799 "label": 'Rippling...',
2800 "visible": true
2801 },2063 },
2802 {2064 {
2803 "id": 435,2065 "id": 435,
2804 "enabled": true,2066 "label": 'Burn-In...'
2805 "label": 'Burn-In...',
2806 "visible": true
2807 },2067 },
2808 {2068 {
2809 "id": 436,2069 "id": 436,
2810 "enabled": true,2070 "label": 'Blend...'
2811 "label": 'Blend...',
2812 "visible": true
2813 }2071 }
2814 ]2072 ]
2815 },2073 },
2816 {2074 {
2817 "id": 437,2075 "id": 437,
2818 "children-display": 'submenu',2076 "children-display": 'submenu',
2819 "enabled": true,
2820 "label": 'Web',2077 "label": 'Web',
2821 "visible": true,
2822 "submenu": [2078 "submenu": [
2823 {2079 {
2824 "id": 438,2080 "id": 438,
2825 "enabled": true,2081 "label": 'Slice...'
2826 "label": 'Slice...',
2827 "visible": true
2828 },2082 },
2829 {2083 {
2830 "id": 439,2084 "id": 439,
2831 "enabled": true,2085 "label": 'Semi-Flatten'
2832 "label": 'Semi-Flatten',
2833 "visible": true
2834 },2086 },
2835 {2087 {
2836 "id": 440,2088 "id": 440,
2837 "enabled": true,2089 "label": 'Image Map...'
2838 "label": 'Image Map...',
2839 "visible": true
2840 }2090 }
2841 ]2091 ]
2842 },2092 },
2843 {2093 {
2844 "id": 441,2094 "id": 441,
2845 "children-display": 'submenu',2095 "children-display": 'submenu',
2846 "enabled": true,
2847 "label": 'Render',2096 "label": 'Render',
2848 "visible": true,
2849 "submenu": [2097 "submenu": [
2850 {2098 {
2851 "id": 442,2099 "id": 442,
2852 "enabled": true,2100 "label": 'Spyrogimp...'
2853 "label": 'Spyrogimp...',
2854 "visible": true
2855 },2101 },
2856 {2102 {
2857 "id": 443,2103 "id": 443,
2858 "enabled": true,2104 "label": 'Sphere Designer...'
2859 "label": 'Sphere Designer...',
2860 "visible": true
2861 },2105 },
2862 {2106 {
2863 "id": 444,2107 "id": 444,
2864 "enabled": true,2108 "label": 'Line Nova...'
2865 "label": 'Line Nova...',
2866 "visible": true
2867 },2109 },
2868 {2110 {
2869 "id": 445,2111 "id": 445,
2870 "enabled": true,2112 "label": 'Lava...'
2871 "label": 'Lava...',
2872 "visible": true
2873 },2113 },
2874 {2114 {
2875 "id": 446,2115 "id": 446,
2876 "enabled": true,2116 "label": 'Gfig...'
2877 "label": 'Gfig...',
2878 "visible": true
2879 },2117 },
2880 {2118 {
2881 "id": 447,2119 "id": 447,
2882 "enabled": true,2120 "label": 'Fractal Explorer...'
2883 "label": 'Fractal Explorer...',
2884 "visible": true
2885 },2121 },
2886 {2122 {
2887 "id": 448,2123 "id": 448,
2888 "enabled": true,2124 "label": 'Circuit...'
2889 "label": 'Circuit...',
2890 "visible": true
2891 },2125 },
2892 {2126 {
2893 "id": 449,2127 "id": 449,
@@ -2896,111 +2130,77 @@
2896 {2130 {
2897 "id": 450,2131 "id": 450,
2898 "children-display": 'submenu',2132 "children-display": 'submenu',
2899 "enabled": true,
2900 "label": 'Pattern',2133 "label": 'Pattern',
2901 "visible": true,
2902 "submenu": [2134 "submenu": [
2903 {2135 {
2904 "id": 451,2136 "id": 451,
2905 "enabled": true,2137 "label": 'Sinus...'
2906 "label": 'Sinus...',
2907 "visible": true
2908 },2138 },
2909 {2139 {
2910 "id": 452,2140 "id": 452,
2911 "enabled": true,2141 "label": 'Qbist...'
2912 "label": 'Qbist...',
2913 "visible": true
2914 },2142 },
2915 {2143 {
2916 "id": 453,2144 "id": 453,
2917 "enabled": true,2145 "label": 'Maze...'
2918 "label": 'Maze...',
2919 "visible": true
2920 },2146 },
2921 {2147 {
2922 "id": 454,2148 "id": 454,
2923 "enabled": true,2149 "label": 'Jigsaw...'
2924 "label": 'Jigsaw...',
2925 "visible": true
2926 },2150 },
2927 {2151 {
2928 "id": 455,2152 "id": 455,
2929 "enabled": true,2153 "label": 'Grid...'
2930 "label": 'Grid...',
2931 "visible": true
2932 },2154 },
2933 {2155 {
2934 "id": 456,2156 "id": 456,
2935 "enabled": true,2157 "label": 'Diffraction Patterns...'
2936 "label": 'Diffraction Patterns...',
2937 "visible": true
2938 },2158 },
2939 {2159 {
2940 "id": 457,2160 "id": 457,
2941 "enabled": true,2161 "label": 'CML Explorer...'
2942 "label": 'CML Explorer...',
2943 "visible": true
2944 },2162 },
2945 {2163 {
2946 "id": 458,2164 "id": 458,
2947 "enabled": true,2165 "label": 'Checkerboard...'
2948 "label": 'Checkerboard...',
2949 "visible": true
2950 }2166 }
2951 ]2167 ]
2952 },2168 },
2953 {2169 {
2954 "id": 459,2170 "id": 459,
2955 "children-display": 'submenu',2171 "children-display": 'submenu',
2956 "enabled": true,
2957 "label": 'Nature',2172 "label": 'Nature',
2958 "visible": true,
2959 "submenu": [2173 "submenu": [
2960 {2174 {
2961 "id": 460,2175 "id": 460,
2962 "enabled": true,2176 "label": 'IFS Fractal...'
2963 "label": 'IFS Fractal...',
2964 "visible": true
2965 },2177 },
2966 {2178 {
2967 "id": 461,2179 "id": 461,
2968 "enabled": true,2180 "label": 'Flame...'
2969 "label": 'Flame...',
2970 "visible": true
2971 }2181 }
2972 ]2182 ]
2973 },2183 },
2974 {2184 {
2975 "id": 462,2185 "id": 462,
2976 "children-display": 'submenu',2186 "children-display": 'submenu',
2977 "enabled": true,
2978 "label": 'Clouds',2187 "label": 'Clouds',
2979 "visible": true,
2980 "submenu": [2188 "submenu": [
2981 {2189 {
2982 "id": 463,2190 "id": 463,
2983 "enabled": true,2191 "label": 'Solid Noise...'
2984 "label": 'Solid Noise...',
2985 "visible": true
2986 },2192 },
2987 {2193 {
2988 "id": 464,2194 "id": 464,
2989 "enabled": true,2195 "label": 'Plasma...'
2990 "label": 'Plasma...',
2991 "visible": true
2992 },2196 },
2993 {2197 {
2994 "id": 465,2198 "id": 465,
2995 "enabled": true,2199 "label": 'Fog...'
2996 "label": 'Fog...',
2997 "visible": true
2998 },2200 },
2999 {2201 {
3000 "id": 466,2202 "id": 466,
3001 "enabled": true,2203 "label": 'Difference Clouds...'
3002 "label": 'Difference Clouds...',
3003 "visible": true
3004 }2204 }
3005 ]2205 ]
3006 }2206 }
@@ -3009,360 +2209,252 @@
3009 {2209 {
3010 "id": 467,2210 "id": 467,
3011 "children-display": 'submenu',2211 "children-display": 'submenu',
3012 "enabled": true,
3013 "label": 'Map',2212 "label": 'Map',
3014 "visible": true,
3015 "submenu": [2213 "submenu": [
3016 {2214 {
3017 "id": 468,2215 "id": 468,
3018 "enabled": true,2216 "label": 'Warp...'
3019 "label": 'Warp...',
3020 "visible": true
3021 },2217 },
3022 {2218 {
3023 "id": 469,2219 "id": 469,
3024 "enabled": true,2220 "label": 'Tile...'
3025 "label": 'Tile...',
3026 "visible": true
3027 },2221 },
3028 {2222 {
3029 "id": 470,2223 "id": 470,
3030 "enabled": true,2224 "label": 'Small Tiles...'
3031 "label": 'Small Tiles...',
3032 "visible": true
3033 },2225 },
3034 {2226 {
3035 "id": 471,2227 "id": 471,
3036 "enabled": true,2228 "label": 'Paper Tile...'
3037 "label": 'Paper Tile...',
3038 "visible": true
3039 },2229 },
3040 {2230 {
3041 "id": 472,2231 "id": 472,
3042 "enabled": true,2232 "label": 'Map Object...'
3043 "label": 'Map Object...',
3044 "visible": true
3045 },2233 },
3046 {2234 {
3047 "id": 473,2235 "id": 473,
3048 "enabled": true,2236 "label": 'Make Seamless'
3049 "label": 'Make Seamless',
3050 "visible": true
3051 },2237 },
3052 {2238 {
3053 "id": 474,2239 "id": 474,
3054 "enabled": true,2240 "label": 'Illusion...'
3055 "label": 'Illusion...',
3056 "visible": true
3057 },2241 },
3058 {2242 {
3059 "id": 475,2243 "id": 475,
3060 "enabled": true,2244 "label": 'Fractal Trace...'
3061 "label": 'Fractal Trace...',
3062 "visible": true
3063 },2245 },
3064 {2246 {
3065 "id": 476,2247 "id": 476,
3066 "enabled": true,2248 "label": 'Displace...'
3067 "label": 'Displace...',
3068 "visible": true
3069 },2249 },
3070 {2250 {
3071 "id": 477,2251 "id": 477,
3072 "enabled": true,2252 "label": 'Bump Map...'
3073 "label": 'Bump Map...',
3074 "visible": true
3075 }2253 }
3076 ]2254 ]
3077 },2255 },
3078 {2256 {
3079 "id": 478,2257 "id": 478,
3080 "children-display": 'submenu',2258 "children-display": 'submenu',
3081 "enabled": true,
3082 "label": 'Decor',2259 "label": 'Decor',
3083 "visible": true,
3084 "submenu": [2260 "submenu": [
3085 {2261 {
3086 "id": 479,2262 "id": 479,
3087 "enabled": false,2263 "enabled": false,
3088 "label": 'Stencil Chrome...',2264 "label": 'Stencil Chrome...'
3089 "visible": true
3090 },2265 },
3091 {2266 {
3092 "id": 480,2267 "id": 480,
3093 "enabled": false,2268 "enabled": false,
3094 "label": 'Stencil Carve...',2269 "label": 'Stencil Carve...'
3095 "visible": true
3096 },2270 },
3097 {2271 {
3098 "id": 481,2272 "id": 481,
3099 "enabled": false,2273 "enabled": false,
3100 "label": 'Slide...',2274 "label": 'Slide...'
3101 "visible": true
3102 },2275 },
3103 {2276 {
3104 "id": 482,2277 "id": 482,
3105 "enabled": false,2278 "enabled": false,
3106 "label": 'Round Corners...',2279 "label": 'Round Corners...'
3107 "visible": true
3108 },2280 },
3109 {2281 {
3110 "id": 483,2282 "id": 483,
3111 "enabled": true,2283 "label": 'Old Photo...'
3112 "label": 'Old Photo...',
3113 "visible": true
3114 },2284 },
3115 {2285 {
3116 "id": 484,2286 "id": 484,
3117 "enabled": true,2287 "label": 'Fuzzy Border...'
3118 "label": 'Fuzzy Border...',
3119 "visible": true
3120 },2288 },
3121 {2289 {
3122 "id": 485,2290 "id": 485,
3123 "enabled": true,2291 "label": 'Coffee Stain...'
3124 "label": 'Coffee Stain...',
3125 "visible": true
3126 },2292 },
3127 {2293 {
3128 "id": 486,2294 "id": 486,
3129 "enabled": true,2295 "label": 'Add Border...'
3130 "label": 'Add Border...',
3131 "visible": true
3132 },2296 },
3133 {2297 {
3134 "id": 487,2298 "id": 487,
3135 "enabled": true,2299 "label": 'Add Bevel...'
3136 "label": 'Add Bevel...',
3137 "visible": true
3138 }2300 }
3139 ]2301 ]
3140 },2302 },
3141 {2303 {
3142 "id": 488,2304 "id": 488,
3143 "children-display": 'submenu',2305 "children-display": 'submenu',
3144 "enabled": true,
3145 "label": 'Artistic',2306 "label": 'Artistic',
3146 "visible": true,
3147 "submenu": [2307 "submenu": [
3148 {2308 {
3149 "id": 489,2309 "id": 489,
3150 "enabled": true,2310 "label": 'Weave...'
3151 "label": 'Weave...',
3152 "visible": true
3153 },2311 },
3154 {2312 {
3155 "id": 490,2313 "id": 490,
3156 "enabled": true,2314 "label": 'Van Gogh (LIC)...'
3157 "label": 'Van Gogh (LIC)...',
3158 "visible": true
3159 },2315 },
3160 {2316 {
3161 "id": 491,2317 "id": 491,
3162 "enabled": true,2318 "label": 'Softglow...'
3163 "label": 'Softglow...',
3164 "visible": true
3165 },2319 },
3166 {2320 {
3167 "id": 492,2321 "id": 492,
3168 "enabled": true,2322 "label": 'Predator...'
3169 "label": 'Predator...',
3170 "visible": true
3171 },2323 },
3172 {2324 {
3173 "id": 493,2325 "id": 493,
3174 "enabled": true,2326 "label": 'Photocopy...'
3175 "label": 'Photocopy...',
3176 "visible": true
3177 },2327 },
3178 {2328 {
3179 "id": 494,2329 "id": 494,
3180 "enabled": true,2330 "label": 'Oilify...'
3181 "label": 'Oilify...',
3182 "visible": true
3183 },2331 },
3184 {2332 {
3185 "id": 495,2333 "id": 495,
3186 "enabled": true,2334 "label": 'GIMPressionist...'
3187 "label": 'GIMPressionist...',
3188 "visible": true
3189 },2335 },
3190 {2336 {
3191 "id": 496,2337 "id": 496,
3192 "enabled": true,2338 "label": 'Cubism...'
3193 "label": 'Cubism...',
3194 "visible": true
3195 },2339 },
3196 {2340 {
3197 "id": 497,2341 "id": 497,
3198 "enabled": true,2342 "label": 'Clothify...'
3199 "label": 'Clothify...',
3200 "visible": true
3201 },2343 },
3202 {2344 {
3203 "id": 498,2345 "id": 498,
3204 "enabled": true,2346 "label": 'Cartoon...'
3205 "label": 'Cartoon...',
3206 "visible": true
3207 },2347 },
3208 {2348 {
3209 "id": 499,2349 "id": 499,
3210 "enabled": true,2350 "label": 'Apply Canvas...'
3211 "label": 'Apply Canvas...',
3212 "visible": true
3213 }2351 }
3214 ]2352 ]
3215 },2353 },
3216 {2354 {
3217 "id": 500,2355 "id": 500,
3218 "children-display": 'submenu',2356 "children-display": 'submenu',
3219 "enabled": true,
3220 "label": 'Combine',2357 "label": 'Combine',
3221 "visible": true,
3222 "submenu": [2358 "submenu": [
3223 {2359 {
3224 "id": 501,2360 "id": 501,
3225 "enabled": true,2361 "label": 'Filmstrip...'
3226 "label": 'Filmstrip...',
3227 "visible": true
3228 },2362 },
3229 {2363 {
3230 "id": 502,2364 "id": 502,
3231 "enabled": true,2365 "label": 'Depth Merge...'
3232 "label": 'Depth Merge...',
3233 "visible": true
3234 }2366 }
3235 ]2367 ]
3236 },2368 },
3237 {2369 {
3238 "id": 503,2370 "id": 503,
3239 "children-display": 'submenu',2371 "children-display": 'submenu',
3240 "enabled": true,
3241 "label": 'Generic',2372 "label": 'Generic',
3242 "visible": true,
3243 "submenu": [2373 "submenu": [
3244 {2374 {
3245 "id": 504,2375 "id": 504,
3246 "enabled": true,2376 "label": 'Erode'
3247 "label": 'Erode',
3248 "visible": true
3249 },2377 },
3250 {2378 {
3251 "id": 505,2379 "id": 505,
3252 "enabled": true,2380 "label": 'Dilate'
3253 "label": 'Dilate',
3254 "visible": true
3255 },2381 },
3256 {2382 {
3257 "id": 506,2383 "id": 506,
3258 "enabled": true,2384 "label": 'Convolution Matrix...'
3259 "label": 'Convolution Matrix...',
3260 "visible": true
3261 }2385 }
3262 ]2386 ]
3263 },2387 },
3264 {2388 {
3265 "id": 507,2389 "id": 507,
3266 "children-display": 'submenu',2390 "children-display": 'submenu',
3267 "enabled": true,
3268 "label": 'Edge-Detect',2391 "label": 'Edge-Detect',
3269 "visible": true,
3270 "submenu": [2392 "submenu": [
3271 {2393 {
3272 "id": 508,2394 "id": 508,
3273 "enabled": true,2395 "label": 'Sobel...'
3274 "label": 'Sobel...',
3275 "visible": true
3276 },2396 },
3277 {2397 {
3278 "id": 509,2398 "id": 509,
3279 "enabled": true,2399 "label": 'Neon...'
3280 "label": 'Neon...',
3281 "visible": true
3282 },2400 },
3283 {2401 {
3284 "id": 510,2402 "id": 510,
3285 "enabled": true,2403 "label": 'Laplace'
3286 "label": 'Laplace',
3287 "visible": true
3288 },2404 },
3289 {2405 {
3290 "id": 511,2406 "id": 511,
3291 "enabled": true,2407 "label": 'Edge...'
3292 "label": 'Edge...',
3293 "visible": true
3294 },2408 },
3295 {2409 {
3296 "id": 512,2410 "id": 512,
3297 "enabled": true,2411 "label": 'Difference of Gaussians...'
3298 "label": 'Difference of Gaussians...',
3299 "visible": true
3300 }2412 }
3301 ]2413 ]
3302 },2414 },
3303 {2415 {
3304 "id": 513,2416 "id": 513,
3305 "children-display": 'submenu',2417 "children-display": 'submenu',
3306 "enabled": true,
3307 "label": 'Noise',2418 "label": 'Noise',
3308 "visible": true,
3309 "submenu": [2419 "submenu": [
3310 {2420 {
3311 "id": 514,2421 "id": 514,
3312 "enabled": true,2422 "label": 'Spread...'
3313 "label": 'Spread...',
3314 "visible": true
3315 },2423 },
3316 {2424 {
3317 "id": 515,2425 "id": 515,
3318 "enabled": true,2426 "label": 'Slur...'
3319 "label": 'Slur...',
3320 "visible": true
3321 },2427 },
3322 {2428 {
3323 "id": 516,2429 "id": 516,
3324 "enabled": true,2430 "label": 'RGB Noise...'
3325 "label": 'RGB Noise...',
3326 "visible": true
3327 },2431 },
3328 {2432 {
3329 "id": 517,2433 "id": 517,
3330 "enabled": true,2434 "label": 'Pick...'
3331 "label": 'Pick...',
3332 "visible": true
3333 },2435 },
3334 {2436 {
3335 "id": 518,2437 "id": 518,
3336 "enabled": true,2438 "label": 'Hurl...'
3337 "label": 'Hurl...',
3338 "visible": true
3339 },2439 },
3340 {2440 {
3341 "id": 519,2441 "id": 519,
3342 "enabled": true,2442 "label": 'HSV Noise...'
3343 "label": 'HSV Noise...',
3344 "visible": true
3345 }2443 }
3346 ]2444 ]
3347 },2445 },
3348 {2446 {
3349 "id": 520,2447 "id": 520,
3350 "children-display": 'submenu',2448 "children-display": 'submenu',
3351 "enabled": true,
3352 "label": 'Light and Shadow',2449 "label": 'Light and Shadow',
3353 "visible": true,
3354 "submenu": [2450 "submenu": [
3355 {2451 {
3356 "id": 521,2452 "id": 521,
3357 "enabled": true,2453 "label": 'Glass Tile...'
3358 "label": 'Glass Tile...',
3359 "visible": true
3360 },2454 },
3361 {2455 {
3362 "id": 522,2456 "id": 522,
3363 "enabled": true,2457 "label": 'Apply Lens...'
3364 "label": 'Apply Lens...',
3365 "visible": true
3366 },2458 },
3367 {2459 {
3368 "id": 523,2460 "id": 523,
@@ -3370,21 +2462,15 @@
3370 },2462 },
3371 {2463 {
3372 "id": 524,2464 "id": 524,
3373 "enabled": true,2465 "label": 'Xach-Effect...'
3374 "label": 'Xach-Effect...',
3375 "visible": true
3376 },2466 },
3377 {2467 {
3378 "id": 525,2468 "id": 525,
3379 "enabled": true,2469 "label": 'Perspective...'
3380 "label": 'Perspective...',
3381 "visible": true
3382 },2470 },
3383 {2471 {
3384 "id": 526,2472 "id": 526,
3385 "enabled": true,2473 "label": 'Drop Shadow...'
3386 "label": 'Drop Shadow...',
3387 "visible": true
3388 },2474 },
3389 {2475 {
3390 "id": 527,2476 "id": 527,
@@ -3392,252 +2478,173 @@
3392 },2478 },
3393 {2479 {
3394 "id": 528,2480 "id": 528,
3395 "enabled": true,2481 "label": 'Supernova...'
3396 "label": 'Supernova...',
3397 "visible": true
3398 },2482 },
3399 {2483 {
3400 "id": 529,2484 "id": 529,
3401 "enabled": true,2485 "label": 'Sparkle...'
3402 "label": 'Sparkle...',
3403 "visible": true
3404 },2486 },
3405 {2487 {
3406 "id": 530,2488 "id": 530,
3407 "enabled": true,2489 "label": 'Lighting Effects...'
3408 "label": 'Lighting Effects...',
3409 "visible": true
3410 },2490 },
3411 {2491 {
3412 "id": 531,2492 "id": 531,
3413 "enabled": true,2493 "label": 'Lens Flare...'
3414 "label": 'Lens Flare...',
3415 "visible": true
3416 },2494 },
3417 {2495 {
3418 "id": 532,2496 "id": 532,
3419 "enabled": true,2497 "label": 'Gradient Flare...'
3420 "label": 'Gradient Flare...',
3421 "visible": true
3422 }2498 }
3423 ]2499 ]
3424 },2500 },
3425 {2501 {
3426 "id": 533,2502 "id": 533,
3427 "children-display": 'submenu',2503 "children-display": 'submenu',
3428 "enabled": true,
3429 "label": 'Distorts',2504 "label": 'Distorts',
3430 "visible": true,
3431 "submenu": [2505 "submenu": [
3432 {2506 {
3433 "id": 534,2507 "id": 534,
3434 "enabled": true,2508 "label": 'Wind...'
3435 "label": 'Wind...',
3436 "visible": true
3437 },2509 },
3438 {2510 {
3439 "id": 535,2511 "id": 535,
3440 "enabled": true,2512 "label": 'Whirl and Pinch...'
3441 "label": 'Whirl and Pinch...',
3442 "visible": true
3443 },2513 },
3444 {2514 {
3445 "id": 536,2515 "id": 536,
3446 "enabled": true,2516 "label": 'Waves...'
3447 "label": 'Waves...',
3448 "visible": true
3449 },2517 },
3450 {2518 {
3451 "id": 537,2519 "id": 537,
3452 "enabled": true,2520 "label": 'Video...'
3453 "label": 'Video...',
3454 "visible": true
3455 },2521 },
3456 {2522 {
3457 "id": 538,2523 "id": 538,
3458 "enabled": true,2524 "label": 'Value Propagate...'
3459 "label": 'Value Propagate...',
3460 "visible": true
3461 },2525 },
3462 {2526 {
3463 "id": 539,2527 "id": 539,
3464 "enabled": true,2528 "label": 'Shift...'
3465 "label": 'Shift...',
3466 "visible": true
3467 },2529 },
3468 {2530 {
3469 "id": 540,2531 "id": 540,
3470 "enabled": true,2532 "label": 'Ripple...'
3471 "label": 'Ripple...',
3472 "visible": true
3473 },2533 },
3474 {2534 {
3475 "id": 541,2535 "id": 541,
3476 "enabled": true,2536 "label": 'Polar Coordinates...'
3477 "label": 'Polar Coordinates...',
3478 "visible": true
3479 },2537 },
3480 {2538 {
3481 "id": 542,2539 "id": 542,
3482 "enabled": true,2540 "label": 'Pagecurl...'
3483 "label": 'Pagecurl...',
3484 "visible": true
3485 },2541 },
3486 {2542 {
3487 "id": 543,2543 "id": 543,
3488 "enabled": true,2544 "label": 'Newsprint...'
3489 "label": 'Newsprint...',
3490 "visible": true
3491 },2545 },
3492 {2546 {
3493 "id": 544,2547 "id": 544,
3494 "enabled": true,2548 "label": 'Mosaic...'
3495 "label": 'Mosaic...',
3496 "visible": true
3497 },2549 },
3498 {2550 {
3499 "id": 545,2551 "id": 545,
3500 "enabled": true,2552 "label": 'Lens Distortion...'
3501 "label": 'Lens Distortion...',
3502 "visible": true
3503 },2553 },
3504 {2554 {
3505 "id": 546,2555 "id": 546,
3506 "enabled": true,2556 "label": 'IWarp...'
3507 "label": 'IWarp...',
3508 "visible": true
3509 },2557 },
3510 {2558 {
3511 "id": 547,2559 "id": 547,
3512 "enabled": true,2560 "label": 'Erase Every Other Row...'
3513 "label": 'Erase Every Other Row...',
3514 "visible": true
3515 },2561 },
3516 {2562 {
3517 "id": 548,2563 "id": 548,
3518 "enabled": true,2564 "label": 'Engrave...'
3519 "label": 'Engrave...',
3520 "visible": true
3521 },2565 },
3522 {2566 {
3523 "id": 549,2567 "id": 549,
3524 "enabled": true,2568 "label": 'Emboss...'
3525 "label": 'Emboss...',
3526 "visible": true
3527 },2569 },
3528 {2570 {
3529 "id": 550,2571 "id": 550,
3530 "enabled": true,2572 "label": 'Curve Bend...'
3531 "label": 'Curve Bend...',
3532 "visible": true
3533 },2573 },
3534 {2574 {
3535 "id": 551,2575 "id": 551,
3536 "enabled": true,2576 "label": 'Blinds...'
3537 "label": 'Blinds...',
3538 "visible": true
3539 }2577 }
3540 ]2578 ]
3541 },2579 },
3542 {2580 {
3543 "id": 552,2581 "id": 552,
3544 "children-display": 'submenu',2582 "children-display": 'submenu',
3545 "enabled": true,
3546 "label": 'Enhance',2583 "label": 'Enhance',
3547 "visible": true,
3548 "submenu": [2584 "submenu": [
3549 {2585 {
3550 "id": 553,2586 "id": 553,
3551 "enabled": true,2587 "label": 'Unsharp Mask...'
3552 "label": 'Unsharp Mask...',
3553 "visible": true
3554 },2588 },
3555 {2589 {
3556 "id": 554,2590 "id": 554,
3557 "enabled": true,2591 "label": 'Sharpen...'
3558 "label": 'Sharpen...',
3559 "visible": true
3560 },2592 },
3561 {2593 {
3562 "id": 555,2594 "id": 555,
3563 "enabled": true,2595 "label": 'Red Eye Removal...'
3564 "label": 'Red Eye Removal...',
3565 "visible": true
3566 },2596 },
3567 {2597 {
3568 "id": 556,2598 "id": 556,
3569 "enabled": false,2599 "enabled": false,
3570 "label": 'NL Filter...',2600 "label": 'NL Filter...'
3571 "visible": true
3572 },2601 },
3573 {2602 {
3574 "id": 557,2603 "id": 557,
3575 "enabled": true,2604 "label": 'Destripe...'
3576 "label": 'Destripe...',
3577 "visible": true
3578 },2605 },
3579 {2606 {
3580 "id": 558,2607 "id": 558,
3581 "enabled": true,2608 "label": 'Despeckle...'
3582 "label": 'Despeckle...',
3583 "visible": true
3584 },2609 },
3585 {2610 {
3586 "id": 559,2611 "id": 559,
3587 "enabled": true,2612 "label": 'Deinterlace...'
3588 "label": 'Deinterlace...',
3589 "visible": true
3590 },2613 },
3591 {2614 {
3592 "id": 560,2615 "id": 560,
3593 "enabled": true,2616 "label": 'Antialias'
3594 "label": 'Antialias',
3595 "visible": true
3596 }2617 }
3597 ]2618 ]
3598 },2619 },
3599 {2620 {
3600 "id": 561,2621 "id": 561,
3601 "children-display": 'submenu',2622 "children-display": 'submenu',
3602 "enabled": true,
3603 "label": 'Blur',2623 "label": 'Blur',
3604 "visible": true,
3605 "submenu": [2624 "submenu": [
3606 {2625 {
3607 "id": 562,2626 "id": 562,
3608 "enabled": true,2627 "label": 'Tileable Blur...'
3609 "label": 'Tileable Blur...',
3610 "visible": true
3611 },2628 },
3612 {2629 {
3613 "id": 563,2630 "id": 563,
3614 "enabled": true,2631 "label": 'Selective Gaussian Blur...'
3615 "label": 'Selective Gaussian Blur...',
3616 "visible": true
3617 },2632 },
3618 {2633 {
3619 "id": 564,2634 "id": 564,
3620 "enabled": true,2635 "label": 'Pixelize...'
3621 "label": 'Pixelize...',
3622 "visible": true
3623 },2636 },
3624 {2637 {
3625 "id": 565,2638 "id": 565,
3626 "enabled": true,2639 "label": 'Motion Blur...'
3627 "label": 'Motion Blur...',
3628 "visible": true
3629 },2640 },
3630 {2641 {
3631 "id": 566,2642 "id": 566,
3632 "enabled": true,2643 "label": 'Gaussian Blur...'
3633 "label": 'Gaussian Blur...',
3634 "visible": true
3635 },2644 },
3636 {2645 {
3637 "id": 567,2646 "id": 567,
3638 "enabled": true,2647 "label": 'Blur'
3639 "label": 'Blur',
3640 "visible": true
3641 }2648 }
3642 ]2649 ]
3643 },2650 },
@@ -3647,9 +2654,7 @@
3647 },2654 },
3648 {2655 {
3649 "id": 569,2656 "id": 569,
3650 "enabled": true,2657 "label": 'Reset all Filters'
3651 "label": 'Reset all Filters',
3652 "visible": true
3653 },2658 },
3654 {2659 {
3655 "id": 570,2660 "id": 570,
@@ -3657,13 +2662,11 @@
3657 "enabled": false,2662 "enabled": false,
3658 "label": 'Re-Show Last',2663 "label": 'Re-Show Last',
3659 "shortcut": [['Control', 'Shift', 'f']],2664 "shortcut": [['Control', 'Shift', 'f']],
3660 "visible": true,
3661 "submenu": [2665 "submenu": [
3662 {2666 {
3663 "id": 571,2667 "id": 571,
3664 "enabled": false,2668 "enabled": false,
3665 "label": 'Empty',2669 "label": 'Empty'
3666 "visible": true
3667 }2670 }
3668 ]2671 ]
3669 },2672 },
@@ -3671,24 +2674,19 @@
3671 "id": 572,2674 "id": 572,
3672 "enabled": false,2675 "enabled": false,
3673 "label": 'Repeat Last',2676 "label": 'Repeat Last',
3674 "shortcut": [['Control', 'f']],2677 "shortcut": [['Control', 'f']]
3675 "visible": true
3676 }2678 }
3677 ]2679 ]
3678 },2680 },
3679 {2681 {
3680 "id": 573,2682 "id": 573,
3681 "children-display": 'submenu',2683 "children-display": 'submenu',
3682 "enabled": true,
3683 "label": 'Windows',2684 "label": 'Windows',
3684 "visible": true,
3685 "submenu": [2685 "submenu": [
3686 {2686 {
3687 "id": 574,2687 "id": 574,
3688 "enabled": true,
3689 "label": 'Toolbox',2688 "label": 'Toolbox',
3690 "shortcut": [['Control', 'b']],2689 "shortcut": [['Control', 'b']]
3691 "visible": true
3692 },2690 },
3693 {2691 {
3694 "id": 575,2692 "id": 575,
@@ -3697,39 +2695,27 @@
3697 {2695 {
3698 "id": 576,2696 "id": 576,
3699 "children-display": 'submenu',2697 "children-display": 'submenu',
3700 "enabled": true,
3701 "label": 'Dockable Dialogs',2698 "label": 'Dockable Dialogs',
3702 "visible": true,
3703 "submenu": [2699 "submenu": [
3704 {2700 {
3705 "id": 577,2701 "id": 577,
3706 "enabled": true,2702 "label": 'Error Console'
3707 "label": 'Error Console',
3708 "visible": true
3709 },2703 },
3710 {2704 {
3711 "id": 578,2705 "id": 578,
3712 "enabled": true,2706 "label": 'Tools'
3713 "label": 'Tools',
3714 "visible": true
3715 },2707 },
3716 {2708 {
3717 "id": 579,2709 "id": 579,
3718 "enabled": true,2710 "label": 'Templates'
3719 "label": 'Templates',
3720 "visible": true
3721 },2711 },
3722 {2712 {
3723 "id": 580,2713 "id": 580,
3724 "enabled": true,2714 "label": 'Document History'
3725 "label": 'Document History',
3726 "visible": true
3727 },2715 },
3728 {2716 {
3729 "id": 581,2717 "id": 581,
3730 "enabled": true,2718 "label": 'Images'
3731 "label": 'Images',
3732 "visible": true
3733 },2719 },
3734 {2720 {
3735 "id": 582,2721 "id": 582,
@@ -3737,48 +2723,34 @@
3737 },2723 },
3738 {2724 {
3739 "id": 583,2725 "id": 583,
3740 "enabled": true,2726 "label": 'Buffers'
3741 "label": 'Buffers',
3742 "visible": true
3743 },2727 },
3744 {2728 {
3745 "id": 584,2729 "id": 584,
3746 "enabled": true,2730 "label": 'Fonts'
3747 "label": 'Fonts',
3748 "visible": true
3749 },2731 },
3750 {2732 {
3751 "id": 585,2733 "id": 585,
3752 "enabled": true,2734 "label": 'Palettes'
3753 "label": 'Palettes',
3754 "visible": true
3755 },2735 },
3756 {2736 {
3757 "id": 586,2737 "id": 586,
3758 "enabled": true,
3759 "label": 'Gradients',2738 "label": 'Gradients',
3760 "shortcut": [['Control', 'g']],2739 "shortcut": [['Control', 'g']]
3761 "visible": true
3762 },2740 },
3763 {2741 {
3764 "id": 587,2742 "id": 587,
3765 "enabled": true,
3766 "label": 'Patterns',2743 "label": 'Patterns',
3767 "shortcut": [['Control', 'Shift', 'p']],2744 "shortcut": [['Control', 'Shift', 'p']]
3768 "visible": true
3769 },2745 },
3770 {2746 {
3771 "id": 588,2747 "id": 588,
3772 "enabled": true,
3773 "label": 'Brushes',2748 "label": 'Brushes',
3774 "shortcut": [['Control', 'Shift', 'b']],2749 "shortcut": [['Control', 'Shift', 'b']]
3775 "visible": true
3776 },2750 },
3777 {2751 {
3778 "id": 589,2752 "id": 589,
3779 "enabled": true,2753 "label": 'Colors'
3780 "label": 'Colors',
3781 "visible": true
3782 },2754 },
3783 {2755 {
3784 "id": 590,2756 "id": 590,
@@ -3786,64 +2758,44 @@
3786 },2758 },
3787 {2759 {
3788 "id": 591,2760 "id": 591,
3789 "enabled": true,2761 "label": 'Sample Points'
3790 "label": 'Sample Points',
3791 "visible": true
3792 },2762 },
3793 {2763 {
3794 "id": 592,2764 "id": 592,
3795 "enabled": true,2765 "label": 'Pointer'
3796 "label": 'Pointer',
3797 "visible": true
3798 },2766 },
3799 {2767 {
3800 "id": 593,2768 "id": 593,
3801 "enabled": true,2769 "label": 'Undo History'
3802 "label": 'Undo History',
3803 "visible": true
3804 },2770 },
3805 {2771 {
3806 "id": 594,2772 "id": 594,
3807 "enabled": true,2773 "label": 'Navigation'
3808 "label": 'Navigation',
3809 "visible": true
3810 },2774 },
3811 {2775 {
3812 "id": 595,2776 "id": 595,
3813 "enabled": true,2777 "label": 'Selection Editor'
3814 "label": 'Selection Editor',
3815 "visible": true
3816 },2778 },
3817 {2779 {
3818 "id": 596,2780 "id": 596,
3819 "enabled": true,2781 "label": 'Histogram'
3820 "label": 'Histogram',
3821 "visible": true
3822 },2782 },
3823 {2783 {
3824 "id": 597,2784 "id": 597,
3825 "enabled": true,2785 "label": 'Colormap'
3826 "label": 'Colormap',
3827 "visible": true
3828 },2786 },
3829 {2787 {
3830 "id": 598,2788 "id": 598,
3831 "enabled": true,2789 "label": 'Paths'
3832 "label": 'Paths',
3833 "visible": true
3834 },2790 },
3835 {2791 {
3836 "id": 599,2792 "id": 599,
3837 "enabled": true,2793 "label": 'Channels'
3838 "label": 'Channels',
3839 "visible": true
3840 },2794 },
3841 {2795 {
3842 "id": 600,2796 "id": 600,
3843 "enabled": true,
3844 "label": 'Layers',2797 "label": 'Layers',
3845 "shortcut": [['Control', 'l']],2798 "shortcut": [['Control', 'l']]
3846 "visible": true
3847 },2799 },
3848 {2800 {
3849 "id": 601,2801 "id": 601,
@@ -3851,30 +2803,23 @@
3851 },2803 },
3852 {2804 {
3853 "id": 602,2805 "id": 602,
3854 "enabled": true,2806 "label": 'Device Status'
3855 "label": 'Device Status',
3856 "visible": true
3857 },2807 },
3858 {2808 {
3859 "id": 603,2809 "id": 603,
3860 "enabled": true,2810 "label": 'Tool Options'
3861 "label": 'Tool Options',
3862 "visible": true
3863 }2811 }
3864 ]2812 ]
3865 },2813 },
3866 {2814 {
3867 "id": 604,2815 "id": 604,
3868 "children-display": 'submenu',2816 "children-display": 'submenu',
3869 "enabled": true,
3870 "label": 'Recently Closed Docks',2817 "label": 'Recently Closed Docks',
3871 "visible": true,
3872 "submenu": [2818 "submenu": [
3873 {2819 {
3874 "id": 605,2820 "id": 605,
3875 "enabled": false,2821 "enabled": false,
3876 "label": 'Empty',2822 "label": 'Empty'
3877 "visible": true
3878 }2823 }
3879 ]2824 ]
3880 }2825 }
@@ -3883,91 +2828,63 @@
3883 {2828 {
3884 "id": 606,2829 "id": 606,
3885 "children-display": 'submenu',2830 "children-display": 'submenu',
3886 "enabled": true,
3887 "label": 'Help',2831 "label": 'Help',
3888 "visible": true,
3889 "submenu": [2832 "submenu": [
3890 {2833 {
3891 "id": 607,2834 "id": 607,
3892 "children-display": 'submenu',2835 "children-display": 'submenu',
3893 "enabled": true,
3894 "label": 'User Manual',2836 "label": 'User Manual',
3895 "visible": true,
3896 "submenu": [2837 "submenu": [
3897 {2838 {
3898 "id": 608,2839 "id": 608,
3899 "enabled": true,
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches