diff --git a/blocks.js b/blocks.js
index e423da20..5988eede 100644
--- a/blocks.js
+++ b/blocks.js
@@ -156,7 +156,7 @@ DialogBoxMorph, BlockInputFragmentMorph, PrototypeHatBlockMorph, Costume*/
// Global stuff ////////////////////////////////////////////////////////
-modules.blocks = '2015-November-16';
+modules.blocks = '2015-November-17';
var SyntaxElementMorph;
var BlockMorph;
@@ -3165,6 +3165,9 @@ BlockMorph.prototype.fixChildrensBlockColor = function (isForced) {
morph.fixBlockColor(null, isForced);
} else if (morph instanceof SyntaxElementMorph) {
morph.fixBlockColor(myself, isForced);
+ if (morph instanceof BooleanSlotMorph) {
+ morph.drawNew();
+ }
}
});
};
diff --git a/cloud.js b/cloud.js
index ed7233f9..73f9df20 100644
--- a/cloud.js
+++ b/cloud.js
@@ -30,7 +30,7 @@
/*global modules, IDE_Morph, SnapSerializer, hex_sha512, alert, nop,
localize*/
-modules.cloud = '2015-January-12';
+modules.cloud = '2015-December-04';
// Global stuff
@@ -65,7 +65,7 @@ Cloud.prototype.hasProtocol = function () {
};
Cloud.prototype.setRoute = function (username) {
- var routes = 10,
+ var routes = 20,
userNum = 0,
i;
@@ -145,13 +145,12 @@ Cloud.prototype.getPublicProject = function (
// where the values are url-component encoded
// callBack is a single argument function, errorCall take two args
var request = new XMLHttpRequest(),
- responseList,
myself = this;
try {
request.open(
"GET",
(this.hasProtocol() ? '' : 'http://')
- + this.url + 'Public'
+ + this.url + 'RawPublic'
+ '?'
+ id,
true
@@ -170,12 +169,9 @@ Cloud.prototype.getPublicProject = function (
request.responseText
);
} else {
- responseList = myself.parseResponse(
- request.responseText
- );
callBack.call(
null,
- responseList[0].SourceCode
+ request.responseText
);
}
} else {
@@ -544,9 +540,13 @@ Cloud.prototype.callService = function (
if (serviceName === 'login') {
myself.api = myself.parseAPI(request.responseText);
}
- responseList = myself.parseResponse(
- request.responseText
- );
+ if (serviceName === 'getRawProject') {
+ responseList = request.responseText;
+ } else {
+ responseList = myself.parseResponse(
+ request.responseText
+ )
+ }
callBack.call(null, responseList, service.url);
}
};
diff --git a/gui.js b/gui.js
index 6fa2002d..4dfa19a4 100644
--- a/gui.js
+++ b/gui.js
@@ -71,7 +71,7 @@ BlockRemovalDialogMorph, saveAs*/
// Global stuff ////////////////////////////////////////////////////////
-modules.gui = '2015-November-16';
+modules.gui = '2015-December-04';
// Declarations
@@ -5315,11 +5315,11 @@ ProjectDialogMorph.prototype.rawOpenCloudProject = function (proj) {
SnapCloud.reconnect(
function () {
SnapCloud.callService(
- 'getProject',
+ 'getRawProject',
function (response) {
SnapCloud.disconnect();
myself.ide.source = 'cloud';
- myself.ide.droppedText(response[0].SourceCode);
+ myself.ide.droppedText(response);
if (proj.Public === 'true') {
location.hash = '#present:Username=' +
encodeURIComponent(SnapCloud.username) +
diff --git a/help/foreachof.png b/help/foreachof.png
new file mode 100644
index 00000000..03b9d986
Binary files /dev/null and b/help/foreachof.png differ
diff --git a/history.txt b/history.txt
index b28ca0d5..df1ffe66 100755
--- a/history.txt
+++ b/history.txt
@@ -2682,4 +2682,16 @@ end - bulk of 151116
* fix for IE backspace and tab errors contributed!
* better resource loading mechanism contributed!
+151117
+------
+* Blocks: fixed a zebra-coloring glitch for BooleanSlotMorph
+
+151120
+------
+* Lists: fixed linked lists identity loss when showing watchers
+
+151204
+------
+* Cloud: doubled the number of supported backend slices
+* Cloud, GUI: support new “raw” cloud project services
diff --git a/lists.js b/lists.js
index fa99b0cc..03fdd539 100644
--- a/lists.js
+++ b/lists.js
@@ -61,7 +61,7 @@ PushButtonMorph, SyntaxElementMorph, Color, Point, WatcherMorph,
StringMorph, SpriteMorph, ScrollFrameMorph, CellMorph, ArrowMorph,
MenuMorph, snapEquals, Morph, isNil, localize, MorphicPreferences*/
-modules.lists = '2015-November-16';
+modules.lists = '2015-November-20';
var List;
var ListWatcherMorph;
@@ -112,7 +112,7 @@ function List(array) {
}
List.prototype.toString = function () {
- return 'a List [' + this.asArray() + ']';
+ return 'a List [' + this.length + ' elements]';
};
// List updating:
diff --git a/tools.xml b/tools.xml
index d3a4dac4..5bb5e200 100644
--- a/tools.xml
+++ b/tools.xml
@@ -1 +1 @@
-
1
data
mapmany1
data lists
1
1
110i
1
cont
catchtag
cont
catchtag
Sprite
Sprite
\ No newline at end of file
+LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.
Hello!12
1
data
mapmany1
data lists
1
1
110i
1
cont
catchtag
cont
catchtag
Sprite
Sprite
\ No newline at end of file