@qooxdoo/framework 7.4.1 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Manifest.json +1 -1
- package/lib/compiler/compile-info.json +58 -58
- package/lib/compiler/index.js +289 -265
- package/package.json +1 -1
- package/source/class/qx/Class.js +3 -3
- package/source/class/qx/bom/Cookie.js +1 -1
- package/source/class/qx/data/Array.js +3 -3
- package/source/class/qx/data/SingleValueBinding.js +1 -1
- package/source/class/qx/dom/Hierarchy.js +2 -2
- package/source/class/qx/event/Manager.js +1 -1
- package/source/class/qx/event/handler/TouchCore.js +1 -1
- package/source/class/qx/html/Jsx.js +1 -1
- package/source/class/qx/lang/Array.js +2 -2
- package/source/class/qx/lang/Function.js +19 -22
- package/source/class/qx/locale/MTranslation.js +4 -4
- package/source/class/qx/locale/Manager.js +7 -7
- package/source/class/qx/module/util/Array.js +2 -2
- package/source/class/qx/theme/IndigoDark.js +28 -0
- package/source/class/qx/theme/indigo/AppearanceDark.js +186 -0
- package/source/class/qx/theme/indigo/ColorDark.js +117 -0
- package/source/class/qx/theme/indigo/ImageDark.js +101 -0
- package/source/class/qx/tool/cli/Watch.js +24 -22
- package/source/class/qx/tool/cli/commands/package/Publish.js +16 -4
- package/source/class/qx/tool/compiler/targets/meta/Browserify.js +19 -9
- package/source/class/qx/ui/command/Group.js +2 -2
- package/source/class/qx/ui/command/GroupManager.js +3 -3
- package/source/class/qx/ui/control/ColorSelector.js +1 -1
- package/source/class/qx/ui/core/MMultiSelectionHandling.js +1 -1
- package/source/class/qx/ui/core/SingleSelectionManager.js +1 -1
- package/source/class/qx/ui/core/scroll/MRoll.js +5 -0
- package/source/class/qx/ui/form/Form.js +1 -1
- package/source/class/qx/ui/list/List.js +1 -1
- package/source/class/qx/ui/mobile/form/Form.js +2 -2
- package/source/class/qx/ui/treevirtual/MNode.js +1 -1
- package/source/class/qx/util/OOUtil.js +1 -1
- package/source/resource/qx/scss/_gradients.scss +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/* ************************************************************************
|
|
2
|
+
|
|
3
|
+
qooxdoo - the new era of web development
|
|
4
|
+
|
|
5
|
+
http://qooxdoo.org
|
|
6
|
+
|
|
7
|
+
License:
|
|
8
|
+
MIT: https://opensource.org/licenses/MIT
|
|
9
|
+
See the LICENSE file in the project's top-level directory for details.
|
|
10
|
+
|
|
11
|
+
Authors:
|
|
12
|
+
* Scott Knick (sknick)
|
|
13
|
+
|
|
14
|
+
************************************************************************ */
|
|
15
|
+
/* ************************************************************************
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
************************************************************************* */
|
|
19
|
+
/**
|
|
20
|
+
* Mapping class for all images used in the Indigo dark theme.
|
|
21
|
+
*
|
|
22
|
+
* @asset(qx/decoration/Simple/*)
|
|
23
|
+
* @asset(qx/static/blank.png)
|
|
24
|
+
*/
|
|
25
|
+
qx.Class.define("qx.theme.indigo.ImageDark", {
|
|
26
|
+
extend: qx.core.Object,
|
|
27
|
+
|
|
28
|
+
statics: {
|
|
29
|
+
/**
|
|
30
|
+
* Holds a map containing all the URL to the images.
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
URLS: {
|
|
34
|
+
blank: "qx/static/blank.png",
|
|
35
|
+
|
|
36
|
+
// checkbox
|
|
37
|
+
"checkbox-checked": "decoration/checkbox/checked.png",
|
|
38
|
+
"checkbox-undetermined": "decoration/checkbox/undetermined.png",
|
|
39
|
+
|
|
40
|
+
// window
|
|
41
|
+
"window-minimize": "decoration/window/minimize-white.gif",
|
|
42
|
+
"window-maximize": "decoration/window/maximize-white.gif",
|
|
43
|
+
"window-restore": "decoration/window/restore-white.gif",
|
|
44
|
+
"window-close": "decoration/window/close-white.gif",
|
|
45
|
+
|
|
46
|
+
// cursor
|
|
47
|
+
"cursor-copy": "decoration/cursors/copy.gif",
|
|
48
|
+
"cursor-move": "decoration/cursors/move.gif",
|
|
49
|
+
"cursor-alias": "decoration/cursors/alias.gif",
|
|
50
|
+
"cursor-nodrop": "decoration/cursors/nodrop.gif",
|
|
51
|
+
|
|
52
|
+
// arrows
|
|
53
|
+
"arrow-right": "decoration/arrows/right.gif",
|
|
54
|
+
"arrow-left": "decoration/arrows/left.gif",
|
|
55
|
+
"arrow-up": "decoration/arrows/up.gif",
|
|
56
|
+
"arrow-down": "decoration/arrows/down.gif",
|
|
57
|
+
"arrow-forward": "decoration/arrows/forward.gif",
|
|
58
|
+
"arrow-rewind": "decoration/arrows/rewind.gif",
|
|
59
|
+
"arrow-down-small": "decoration/arrows/down-small.gif",
|
|
60
|
+
"arrow-up-small": "decoration/arrows/up-small.gif",
|
|
61
|
+
"arrow-up-invert": "decoration/arrows/up-invert.gif",
|
|
62
|
+
"arrow-down-invert": "decoration/arrows/down-invert.gif",
|
|
63
|
+
"arrow-right-invert": "decoration/arrows/right-invert.gif",
|
|
64
|
+
|
|
65
|
+
// split pane
|
|
66
|
+
"knob-horizontal": "decoration/splitpane/knob-horizontal.png",
|
|
67
|
+
"knob-vertical": "decoration/splitpane/knob-vertical.png",
|
|
68
|
+
|
|
69
|
+
// tree
|
|
70
|
+
"tree-minus": "decoration/tree/minus.gif",
|
|
71
|
+
"tree-plus": "decoration/tree/plus.gif",
|
|
72
|
+
|
|
73
|
+
// table
|
|
74
|
+
"select-column-order": "decoration/table/select-column-order.png",
|
|
75
|
+
"table-ascending": "decoration/table/ascending.png",
|
|
76
|
+
"table-descending": "decoration/table/descending.png",
|
|
77
|
+
|
|
78
|
+
// tree virtual
|
|
79
|
+
"treevirtual-line": "decoration/treevirtual/line.gif",
|
|
80
|
+
"treevirtual-minus-only": "decoration/treevirtual/only_minus.gif",
|
|
81
|
+
"treevirtual-plus-only": "decoration/treevirtual/only_plus.gif",
|
|
82
|
+
"treevirtual-minus-start": "decoration/treevirtual/start_minus.gif",
|
|
83
|
+
"treevirtual-plus-start": "decoration/treevirtual/start_plus.gif",
|
|
84
|
+
"treevirtual-minus-end": "decoration/treevirtual/end_minus.gif",
|
|
85
|
+
"treevirtual-plus-end": "decoration/treevirtual/end_plus.gif",
|
|
86
|
+
"treevirtual-minus-cross": "decoration/treevirtual/cross_minus.gif",
|
|
87
|
+
"treevirtual-plus-cross": "decoration/treevirtual/cross_plus.gif",
|
|
88
|
+
"treevirtual-end": "decoration/treevirtual/end.gif",
|
|
89
|
+
"treevirtual-cross": "decoration/treevirtual/cross.gif",
|
|
90
|
+
|
|
91
|
+
// menu
|
|
92
|
+
"menu-checkbox": "decoration/menu/checkbox.gif",
|
|
93
|
+
"menu-checkbox-invert": "decoration/menu/checkbox-invert.gif",
|
|
94
|
+
"menu-radiobutton-invert": "decoration/menu/radiobutton-invert.gif",
|
|
95
|
+
"menu-radiobutton": "decoration/menu/radiobutton.gif",
|
|
96
|
+
|
|
97
|
+
// tabview
|
|
98
|
+
"tabview-close": "decoration/tabview/close.gif"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
});
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
Authors:
|
|
15
15
|
* John Spackman (john.spackman@zenesis.com, @johnspackman)
|
|
16
|
+
* Henner Kollmann (Henner.Kollmann@gmx.de, @hkollmann)
|
|
16
17
|
|
|
17
18
|
************************************************************************ */
|
|
18
19
|
|
|
@@ -221,30 +222,31 @@ qx.Class.define("qx.tool.cli.Watch", {
|
|
|
221
222
|
`DEBUG: confirmed=${JSON.stringify(confirmed, 2)}`
|
|
222
223
|
);
|
|
223
224
|
}
|
|
225
|
+
this.__make().then(() => {
|
|
226
|
+
var watcher = (this._watcher = chokidar.watch(confirmed, {
|
|
227
|
+
//ignored: /(^|[\/\\])\../
|
|
228
|
+
}));
|
|
229
|
+
watcher.on("change", filename =>
|
|
230
|
+
this.__onFileChange("change", filename)
|
|
231
|
+
);
|
|
224
232
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
watcher.on("change", filename =>
|
|
229
|
-
this.__onFileChange("change", filename)
|
|
230
|
-
);
|
|
231
|
-
|
|
232
|
-
watcher.on("add", filename => this.__onFileChange("add", filename));
|
|
233
|
-
watcher.on("unlink", filename =>
|
|
234
|
-
this.__onFileChange("unlink", filename)
|
|
235
|
-
);
|
|
236
|
-
|
|
237
|
-
watcher.on("ready", () => {
|
|
238
|
-
this.__watcherReady = true;
|
|
239
|
-
this.__make();
|
|
240
|
-
});
|
|
241
|
-
watcher.on("error", err => {
|
|
242
|
-
qx.tool.compiler.Console.print(
|
|
243
|
-
err.code == "ENOSPC"
|
|
244
|
-
? "qx.tool.cli.watch.enospcError"
|
|
245
|
-
: "qx.tool.cli.watch.watchError",
|
|
246
|
-
err
|
|
233
|
+
watcher.on("add", filename => this.__onFileChange("add", filename));
|
|
234
|
+
watcher.on("unlink", filename =>
|
|
235
|
+
this.__onFileChange("unlink", filename)
|
|
247
236
|
);
|
|
237
|
+
|
|
238
|
+
watcher.on("ready", () => {
|
|
239
|
+
qx.tool.compiler.Console.log(`Start watching ...`);
|
|
240
|
+
this.__watcherReady = true;
|
|
241
|
+
});
|
|
242
|
+
watcher.on("error", err => {
|
|
243
|
+
qx.tool.compiler.Console.print(
|
|
244
|
+
err.code == "ENOSPC"
|
|
245
|
+
? "qx.tool.cli.watch.enospcError"
|
|
246
|
+
: "qx.tool.cli.watch.watchError",
|
|
247
|
+
err
|
|
248
|
+
);
|
|
249
|
+
});
|
|
248
250
|
});
|
|
249
251
|
});
|
|
250
252
|
},
|
|
@@ -79,6 +79,11 @@ qx.Class.define("qx.tool.cli.commands.package.Publish", {
|
|
|
79
79
|
},
|
|
80
80
|
|
|
81
81
|
dryrun: {
|
|
82
|
+
type: "boolean",
|
|
83
|
+
describe: "Deprecated. Use --dry-run"
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
"dry-run": {
|
|
82
87
|
type: "boolean",
|
|
83
88
|
alias: "d",
|
|
84
89
|
describe: "Show result only, do not publish to GitHub"
|
|
@@ -146,6 +151,13 @@ qx.Class.define("qx.tool.cli.commands.package.Publish", {
|
|
|
146
151
|
// init
|
|
147
152
|
const argv = this.argv;
|
|
148
153
|
|
|
154
|
+
if (argv.dryrun) {
|
|
155
|
+
qx.tool.compiler.Console.info(
|
|
156
|
+
'The "--dryrun" option is deprecated. Please use "--dry-run" instead.'
|
|
157
|
+
);
|
|
158
|
+
argv.dryRun = true
|
|
159
|
+
}
|
|
160
|
+
|
|
149
161
|
// qooxdoo version
|
|
150
162
|
let qxVersion = await this.getQxVersion();
|
|
151
163
|
if (fs.existsSync("Manifest.json")) {
|
|
@@ -377,7 +389,7 @@ qx.Class.define("qx.tool.cli.commands.package.Publish", {
|
|
|
377
389
|
manifestModel
|
|
378
390
|
.setValue("requires.@qooxdoo/framework", semver_range)
|
|
379
391
|
.setValue("info.version", new_version);
|
|
380
|
-
if (argv.
|
|
392
|
+
if (argv.dryRun) {
|
|
381
393
|
if (!argv.quiet) {
|
|
382
394
|
qx.tool.compiler.Console.info(
|
|
383
395
|
`Dry run: Not committing ${manifestModel.getRelativeDataPath()} with the following content:`
|
|
@@ -397,7 +409,7 @@ qx.Class.define("qx.tool.cli.commands.package.Publish", {
|
|
|
397
409
|
if (await fs.existsAsync(package_json_path)) {
|
|
398
410
|
let data = await qx.tool.utils.Json.loadJsonAsync(package_json_path);
|
|
399
411
|
data.version = new_version;
|
|
400
|
-
if (this.argv.
|
|
412
|
+
if (this.argv.dryRun) {
|
|
401
413
|
qx.tool.compiler.Console.info(
|
|
402
414
|
"Dry run: Not changing package.json version..."
|
|
403
415
|
);
|
|
@@ -414,7 +426,7 @@ qx.Class.define("qx.tool.cli.commands.package.Publish", {
|
|
|
414
426
|
argv: this.argv
|
|
415
427
|
});
|
|
416
428
|
|
|
417
|
-
if (argv.
|
|
429
|
+
if (argv.dryRun) {
|
|
418
430
|
qx.tool.compiler.Console.info(
|
|
419
431
|
`Dry run: not creating tag and release '${tag}' of ${repo_name}...`
|
|
420
432
|
);
|
|
@@ -540,7 +552,7 @@ qx.Class.define("qx.tool.cli.commands.package.Publish", {
|
|
|
540
552
|
|
|
541
553
|
// write index file
|
|
542
554
|
const registryModel = qx.tool.config.Registry.getInstance();
|
|
543
|
-
if (argv.
|
|
555
|
+
if (argv.dryRun) {
|
|
544
556
|
qx.tool.compiler.Console.info(
|
|
545
557
|
`Dry run: not creating index file ${registryModel.getRelativeDataPath()} with the following content:`
|
|
546
558
|
);
|
|
@@ -147,7 +147,7 @@ qx.Class.define("qx.tool.compiler.targets.meta.Browserify", {
|
|
|
147
147
|
});
|
|
148
148
|
},
|
|
149
149
|
|
|
150
|
-
|
|
150
|
+
__browserify(commonjsModules, references, localModules, ws) {
|
|
151
151
|
const babelify = require("babelify");
|
|
152
152
|
const preset = require("@babel/preset-env");
|
|
153
153
|
const browserify = require("browserify");
|
|
@@ -157,7 +157,7 @@ qx.Class.define("qx.tool.compiler.targets.meta.Browserify", {
|
|
|
157
157
|
// Make them equivalent.
|
|
158
158
|
builtins.process = builtins._process;
|
|
159
159
|
|
|
160
|
-
return new Promise(
|
|
160
|
+
return new Promise((resolve, reject) => {
|
|
161
161
|
let b = browserify([], {
|
|
162
162
|
builtins: builtins,
|
|
163
163
|
ignoreMissing: true,
|
|
@@ -200,19 +200,29 @@ qx.Class.define("qx.tool.compiler.targets.meta.Browserify", {
|
|
|
200
200
|
global: true
|
|
201
201
|
});
|
|
202
202
|
|
|
203
|
-
b.bundle((e, output)
|
|
203
|
+
b.bundle(function (e, output) {
|
|
204
204
|
if (e) {
|
|
205
|
-
//
|
|
205
|
+
// THIS IS A HACK!
|
|
206
|
+
// In case of error dependency walker never returns from
|
|
207
|
+
// ```if (self.inputPending > 0) return setTimeout(resolve);```
|
|
208
|
+
// because inputPending is not decremented anymore.
|
|
209
|
+
// so set it to 0 here.
|
|
210
|
+
let d = b.pipeline.get("deps");
|
|
211
|
+
d.get(0).inputPending = 0;
|
|
206
212
|
qx.tool.compiler.Console.error(
|
|
207
|
-
`Unable to browserify - this is probably because a module is being require()'d which is not compatible with Browserify
|
|
213
|
+
`Unable to browserify - this is probably because a module is being require()'d which is not compatible with Browserify:\n${e.message}`
|
|
208
214
|
);
|
|
209
215
|
|
|
210
|
-
|
|
211
|
-
|
|
216
|
+
setTimeout(() => {
|
|
217
|
+
this.emit("end");
|
|
218
|
+
});
|
|
212
219
|
return;
|
|
213
220
|
}
|
|
214
|
-
|
|
215
|
-
|
|
221
|
+
// in case of end event output can not be writen.
|
|
222
|
+
// so catch the error and ignore it
|
|
223
|
+
try {
|
|
224
|
+
ws.write(output);
|
|
225
|
+
} catch (err) {}
|
|
216
226
|
resolve(null);
|
|
217
227
|
});
|
|
218
228
|
});
|
|
@@ -90,7 +90,7 @@ qx.Class.define("qx.ui.command.Group", {
|
|
|
90
90
|
*
|
|
91
91
|
* @param key {String} Key which addresses the command
|
|
92
92
|
*
|
|
93
|
-
* @return {qx.ui.command.Command
|
|
93
|
+
* @return {qx.ui.command.Command|null} Corresponding command instance or null
|
|
94
94
|
*/
|
|
95
95
|
get(key) {
|
|
96
96
|
if (qx.core.Environment.get("qx.debug")) {
|
|
@@ -134,7 +134,7 @@ qx.Class.define("qx.ui.command.Group", {
|
|
|
134
134
|
*
|
|
135
135
|
* @param key {String} Key which addresses the command
|
|
136
136
|
*
|
|
137
|
-
* @return {qx.ui.command.Command
|
|
137
|
+
* @return {qx.ui.command.Command|null} Corresponding command instance or null
|
|
138
138
|
*/
|
|
139
139
|
remove(key) {
|
|
140
140
|
if (qx.core.Environment.get("qx.debug")) {
|
|
@@ -81,7 +81,7 @@ qx.Class.define("qx.ui.command.GroupManager", {
|
|
|
81
81
|
*
|
|
82
82
|
* @param group {qx.ui.command.Group} Command group
|
|
83
83
|
*
|
|
84
|
-
* @return {qx.ui.command.Group
|
|
84
|
+
* @return {qx.ui.command.Group|null} Command group or null if group was not added before
|
|
85
85
|
*/
|
|
86
86
|
remove(group) {
|
|
87
87
|
if (qx.core.Environment.get("qx.debug")) {
|
|
@@ -155,7 +155,7 @@ qx.Class.define("qx.ui.command.GroupManager", {
|
|
|
155
155
|
/**
|
|
156
156
|
* Returns active command group.
|
|
157
157
|
*
|
|
158
|
-
* @return {qx.ui.command.Group
|
|
158
|
+
* @return {qx.ui.command.Group|null} Active command group
|
|
159
159
|
*/
|
|
160
160
|
getActive() {
|
|
161
161
|
return this.__activeGroup;
|
|
@@ -184,7 +184,7 @@ qx.Class.define("qx.ui.command.GroupManager", {
|
|
|
184
184
|
*
|
|
185
185
|
* @param group {qx.ui.command.Group} Command group
|
|
186
186
|
*
|
|
187
|
-
* @return {qx.ui.command.Group
|
|
187
|
+
* @return {qx.ui.command.Group|null} Command group or null
|
|
188
188
|
*/
|
|
189
189
|
_getGroup(group) {
|
|
190
190
|
var index = this.__groups.indexOf(group);
|
|
@@ -557,7 +557,7 @@ qx.Class.define("qx.ui.control.ColorSelector", {
|
|
|
557
557
|
/**
|
|
558
558
|
* Returns the currently selected color.
|
|
559
559
|
*
|
|
560
|
-
* @return {String
|
|
560
|
+
* @return {String|null} The HEX value of the color of if not color
|
|
561
561
|
* is set, null.
|
|
562
562
|
*/
|
|
563
563
|
getValue() {
|
|
@@ -327,7 +327,7 @@ qx.Mixin.define("qx.ui.core.MMultiSelectionHandling", {
|
|
|
327
327
|
/**
|
|
328
328
|
* Returns the last selection context.
|
|
329
329
|
*
|
|
330
|
-
* @return {String
|
|
330
|
+
* @return {String|null} One of <code>tap</code>, <code>quick</code>,
|
|
331
331
|
* <code>drag</code> or <code>key</code> or <code>null</code>.
|
|
332
332
|
*/
|
|
333
333
|
getSelectionContext() {
|
|
@@ -105,7 +105,7 @@ qx.Class.define("qx.ui.core.SingleSelectionManager", {
|
|
|
105
105
|
/**
|
|
106
106
|
* Returns the current selected element.
|
|
107
107
|
*
|
|
108
|
-
* @return {qx.ui.core.Widget
|
|
108
|
+
* @return {qx.ui.core.Widget|null} The current selected widget or
|
|
109
109
|
* <code>null</code> if the selection is empty.
|
|
110
110
|
*/
|
|
111
111
|
getSelected() {
|
|
@@ -58,6 +58,11 @@ qx.Mixin.define("qx.ui.core.scroll.MRoll", {
|
|
|
58
58
|
* @param e {qx.event.type.Roll} Roll event
|
|
59
59
|
*/
|
|
60
60
|
_onRoll(e) {
|
|
61
|
+
// only wheel and touch
|
|
62
|
+
if (e.getPointerType() == "mouse") {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
61
66
|
if (this._cancelRoll && e.getMomentum()) {
|
|
62
67
|
e.stopMomentum();
|
|
63
68
|
this._cancelRoll = null;
|
|
@@ -346,7 +346,7 @@ qx.Class.define("qx.ui.form.Form", {
|
|
|
346
346
|
* Validates the form using the
|
|
347
347
|
* {@link qx.ui.form.validation.Manager#validate} method.
|
|
348
348
|
*
|
|
349
|
-
* @return {Boolean
|
|
349
|
+
* @return {Boolean|null} The validation result.
|
|
350
350
|
*/
|
|
351
351
|
validate() {
|
|
352
352
|
return this._validationManager.validate();
|
|
@@ -449,7 +449,7 @@ qx.Class.define("qx.ui.list.List", {
|
|
|
449
449
|
/**
|
|
450
450
|
* Returns the selectable model items.
|
|
451
451
|
*
|
|
452
|
-
* @return {qx.data.Array
|
|
452
|
+
* @return {qx.data.Array|null} The selectable items.
|
|
453
453
|
*/
|
|
454
454
|
_getSelectables() {
|
|
455
455
|
return this.getModel();
|
|
@@ -72,7 +72,7 @@ qx.Class.define("qx.ui.mobile.form.Form", {
|
|
|
72
72
|
* {@link qx.ui.form.validation.Manager#validate} method.
|
|
73
73
|
* @lint ignoreDeprecated(alert)
|
|
74
74
|
*
|
|
75
|
-
* @return {Boolean
|
|
75
|
+
* @return {Boolean|null} The validation result.
|
|
76
76
|
*/
|
|
77
77
|
validate() {
|
|
78
78
|
var validateResult = super.validate();
|
|
@@ -135,7 +135,7 @@ qx.Class.define("qx.ui.mobile.form.Form", {
|
|
|
135
135
|
* Gets the item with the given group and rowIndex.
|
|
136
136
|
* @param groupIndex {Integer} the index of the group to which the row belongs to
|
|
137
137
|
* @param rowIndex {Integer} the index of the row inside the target group
|
|
138
|
-
* @return {qx.ui.form.IForm
|
|
138
|
+
* @return {qx.ui.form.IForm|null} The validation result.
|
|
139
139
|
*/
|
|
140
140
|
_getItemByIndex(groupIndex, rowIndex) {
|
|
141
141
|
var groups = this.getGroups();
|
|
@@ -226,7 +226,7 @@ qx.Mixin.define("qx.ui.treevirtual.MNode", {
|
|
|
226
226
|
}
|
|
227
227
|
if (cascade) {
|
|
228
228
|
node.children.forEach(child =>
|
|
229
|
-
this.
|
|
229
|
+
this._nodeSetOpenedInternal(child, opened, cascade, true)
|
|
230
230
|
);
|
|
231
231
|
}
|
|
232
232
|
if (!cascade || !isRecursed) {
|
|
@@ -103,7 +103,7 @@ qx.Bootstrap.define("qx.util.OOUtil", {
|
|
|
103
103
|
*
|
|
104
104
|
* @param clazz {Class} class to look for the interface
|
|
105
105
|
* @param iface {Interface} interface to look for
|
|
106
|
-
* @return {Class
|
|
106
|
+
* @return {Class|null} the class which directly implements the given interface
|
|
107
107
|
*/
|
|
108
108
|
getByInterface(clazz, iface) {
|
|
109
109
|
var list, i, l;
|