distinguish between embedded blocks code and raw data in PNGs

snap8
Jens Mönig 2022-04-26 10:09:26 +02:00
rodzic adef955a51
commit d1188d22e0
3 zmienionych plików z 25 dodań i 4 usunięć

Wyświetl plik

@ -43,6 +43,9 @@
* **Translation Updates:**
* German
### 2022-04-26
* gui: distinguish between embedded blocks code and raw data in PNGs
### 2022-04-25
* morphic, gui, objects, extensions: renamed "embeddedCode" property of costumes to "embeddedData"

Wyświetl plik

@ -20,7 +20,7 @@
<script src="src/threads.js?version=2022-04-20"></script>
<script src="src/objects.js?version=2022-04-25"></script>
<script src="src/scenes.js?version=2022-03-03"></script>
<script src="src/gui.js?version=2022-04-25"></script>
<script src="src/gui.js?version=2022-04-26"></script>
<script src="src/paint.js?version=2021-07-05"></script>
<script src="src/lists.js?version=2022-02-07"></script>
<script src="src/byob.js?version=2022-04-20"></script>

Wyświetl plik

@ -86,7 +86,7 @@ BlockVisibilityDialogMorph, ThreadManager*/
// Global stuff ////////////////////////////////////////////////////////
modules.gui = '2022-April-25';
modules.gui = '2022-April-26';
// Declarations
@ -9923,7 +9923,11 @@ CostumeIconMorph.prototype.createThumbnail = function () {
var watermark, txt;
SpriteIconMorph.prototype.createThumbnail.call(this);
watermark = this.object instanceof SVG_Costume ? 'svg'
: (this.object.embeddedData ? '</>' : null);
: (this.object.embeddedData ? (
this.typeOfStringData(this.object.embeddedData) === 'data' ?
'dta' : '</>'
)
: null);
if (watermark) {
txt = new StringMorph(
watermark,
@ -9974,7 +9978,10 @@ CostumeIconMorph.prototype.userMenu = function () {
menu.addItem("delete", "removeCostume");
menu.addLine();
if (this.object.embeddedData) {
menu.addItem("get blocks", "importEmbeddedData");
menu.addItem(
"get" + ' ' + this.typeOfStringData(this.object.embeddedData),
"importEmbeddedData"
);
}
menu.addItem("export", "exportCostume");
return menu;
@ -10063,6 +10070,17 @@ CostumeIconMorph.prototype.importEmbeddedData = function () {
);
};
CostumeIconMorph.prototype.typeOfStringData = function (aString) {
// check for Snap specific files, projects, libraries, sprites, scripts
if (aString.startsWith('<')) {
if (['project', 'snapdata', 'blocks', 'sprites', 'block'].some(tag =>
aString.slice(1).startsWith(tag))) {
return 'blocks';
}
}
return 'data';
};
CostumeIconMorph.prototype.exportCostume = function () {
var ide = this.parentThatIsA(IDE_Morph);
if (this.object instanceof SVG_Costume) {