kopia lustrzana https://github.com/backface/turtlestitch
extended "hide/show var" primitive to also hide/show custom blocks in the palette
rodzic
264b146be1
commit
cc5412a89e
|
|
@ -6,7 +6,7 @@
|
|||
* extensions
|
||||
* single blocks palette option, thanks, Michael!
|
||||
* web-serial support, thanks, Dariusz Dorożalski!
|
||||
* hide custom helper blocks in palette
|
||||
* hide custom helper blocks in palette, also use "hide/show var" primitive on custom blocks (same as on primitives)
|
||||
* user defined custom block palettes
|
||||
* PWA, thanks, Joan and John, for pioneering this at Robolot and in Mircoblocks!
|
||||
* new "blocksZoom=n" url parameter, thanks, Bernat!
|
||||
|
|
@ -40,6 +40,7 @@
|
|||
### 2021-10-04
|
||||
* blocks: added "enter" key to key-pressed dropdown
|
||||
* updated German translation for "enter" key
|
||||
* threads: extended "hide/show var" primitive to also hide/show custom blocks in the palette
|
||||
|
||||
* migrated Bangla block specs
|
||||
* migrated Portuguese block specs
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
<script src="src/symbols.js?version=2021-03-03"></script>
|
||||
<script src="src/widgets.js?version=2021-07-21"></script>
|
||||
<script src="src/blocks.js?version=2021-10-04"></script>
|
||||
<script src="src/threads.js?version=2021-09-30"></script>
|
||||
<script src="src/threads.js?version=2021-10-04"></script>
|
||||
<script src="src/objects.js?version=2021-10-04"></script>
|
||||
<script src="src/scenes.js?version=2021-07-21"></script>
|
||||
<script src="src/gui.js?version=2021-09-30"></script>
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ SnapExtensions, AlignmentMorph, TextMorph, Cloud*/
|
|||
|
||||
/*jshint esversion: 6*/
|
||||
|
||||
modules.threads = '2021-September-30';
|
||||
modules.threads = '2021-October-04';
|
||||
|
||||
var ThreadManager;
|
||||
var Process;
|
||||
|
|
@ -1726,7 +1726,11 @@ Process.prototype.doShowVar = function (varName, context) {
|
|||
if (name.expression.selector === 'reportGetVar') {
|
||||
name = name.expression.blockSpec;
|
||||
} else {
|
||||
this.doChangePrimitiveVisibility(name.expression, false);
|
||||
if (name.expression.isCustomBlock) {
|
||||
this.doChangeCustomBlockVisibility(name.expression, false);
|
||||
} else {
|
||||
this.doChangePrimitiveVisibility(name.expression, false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -1788,7 +1792,11 @@ Process.prototype.doHideVar = function (varName, context) {
|
|||
if (name.expression.selector === 'reportGetVar') {
|
||||
name = name.expression.blockSpec;
|
||||
} else {
|
||||
this.doChangePrimitiveVisibility(name.expression, true);
|
||||
if (name.expression.isCustomBlock) {
|
||||
this.doChangeCustomBlockVisibility(name.expression, true);
|
||||
} else {
|
||||
this.doChangePrimitiveVisibility(name.expression, true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -1852,12 +1860,26 @@ Process.prototype.doChangePrimitiveVisibility = function (aBlock, hideIt) {
|
|||
reifyPredicate: 'operators',
|
||||
doDeclareVariables: 'variables'
|
||||
};
|
||||
cat = dict[this.selector] || this.category;
|
||||
cat = dict[aBlock.selector] || aBlock.category;
|
||||
if (cat === 'lists') {cat = 'variables'; }
|
||||
ide.flushBlocksCache(cat);
|
||||
ide.refreshPalette();
|
||||
};
|
||||
|
||||
// Process hiding and showing custom blocks primitives
|
||||
|
||||
Process.prototype.doChangeCustomBlockVisibility = function (aBlock, hideIt) {
|
||||
var ide = this.homeContext.receiver.parentThatIsA(IDE_Morph),
|
||||
method = aBlock.isGlobal ? aBlock.definition
|
||||
: this.blockReceiver().getLocalMethod(aBlock.semanticSpec);
|
||||
if (!ide || !method || (aBlock.selector !== 'evaluateCustomBlock')) {
|
||||
return;
|
||||
}
|
||||
method.isHelper = !!hideIt; // force type to be Boolean
|
||||
ide.flushBlocksCache(aBlock.category);
|
||||
ide.refreshPalette();
|
||||
};
|
||||
|
||||
// Process sprite inheritance primitives
|
||||
|
||||
Process.prototype.doDeleteAttr = function (attrName) {
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue