Fix: 图层重命名后未刷新图层列表
493
4_L0.json
|
@ -1,493 +0,0 @@
|
||||||
{
|
|
||||||
"background-color": "#ae9f86",
|
|
||||||
"elements": [
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"include": "/svg/2.svg"
|
|
||||||
},
|
|
||||||
"name": "ababa",
|
|
||||||
"type": "svg-file"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"include": "/svg/0.svg"
|
|
||||||
},
|
|
||||||
"name": "ababa2",
|
|
||||||
"type": "svg-file"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"include": "/svg/4_L0.svg"
|
|
||||||
},
|
|
||||||
"name": "4_L0.svg",
|
|
||||||
"type": "svg-file"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"reference-layer": "0.0"
|
|
||||||
},
|
|
||||||
"name": "图源工",
|
|
||||||
"type": "group"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"reference-layer": "0.0"
|
|
||||||
},
|
|
||||||
"name": "图源万",
|
|
||||||
"type": "group"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"height": 1080,
|
|
||||||
"project-name": "样例1",
|
|
||||||
"root-layer": {
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"element": 2,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "4_L0",
|
|
||||||
"styles": [
|
|
||||||
{
|
|
||||||
"material": "AH8A/1JOff8=",
|
|
||||||
"type": "fill"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"enableEachSideIndependent": true,
|
|
||||||
"left": "AAAAQAEAJJwAf///9c19/w==",
|
|
||||||
"right": "AADgQAAACpw=",
|
|
||||||
"type": "stroke"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"is-folder": true,
|
|
||||||
"name": "工",
|
|
||||||
"referenced-by": 3,
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 3,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "1",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 103,
|
|
||||||
"y": -1
|
|
||||||
},
|
|
||||||
"rotation": 90,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 3,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "2",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 104,
|
|
||||||
"y": 100
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 3,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "3",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 3,
|
|
||||||
"y": 102
|
|
||||||
},
|
|
||||||
"rotation": 90,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"is-folder": true,
|
|
||||||
"name": "子图层-1",
|
|
||||||
"referenced-by": 4,
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-2",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 204,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-3",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 3,
|
|
||||||
"y": 205
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-4",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 207,
|
|
||||||
"y": 203
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-5",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 407,
|
|
||||||
"y": -2
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-6",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 411,
|
|
||||||
"y": 201
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-7",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 6,
|
|
||||||
"y": 408
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-8",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 210,
|
|
||||||
"y": 408
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-9",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 414,
|
|
||||||
"y": 405
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-10",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 610,
|
|
||||||
"y": -3
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-11",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 614,
|
|
||||||
"y": 200
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-12",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 617,
|
|
||||||
"y": 405
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-13",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": -3,
|
|
||||||
"y": -202
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-14",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 200,
|
|
||||||
"y": -203
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-15",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 402,
|
|
||||||
"y": -205
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 4,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-16",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 606,
|
|
||||||
"y": -206
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"is-folder": true,
|
|
||||||
"name": "root",
|
|
||||||
"referenced-by": null,
|
|
||||||
"transform": {
|
|
||||||
"filpX": false,
|
|
||||||
"filpY": false,
|
|
||||||
"offset": {
|
|
||||||
"x": 116,
|
|
||||||
"y": 288
|
|
||||||
},
|
|
||||||
"rotation": 60,
|
|
||||||
"scale": {
|
|
||||||
"x": 1.85202,
|
|
||||||
"y": 1.85202
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"width": 1080
|
|
||||||
}
|
|
|
@ -76,7 +76,7 @@ void EditorWidget::initFileMenu()
|
||||||
connect(actionCreate, &QAction::triggered, [this] {
|
connect(actionCreate, &QAction::triggered, [this] {
|
||||||
static int count = 0;
|
static int count = 0;
|
||||||
const int prevCount = this->tabWidget->count();
|
const int prevCount = this->tabWidget->count();
|
||||||
this->tabWidget->addTab(new EditorWidgetItem("../data.json", this), "untitled" + QString::number(count++));
|
this->tabWidget->addTab(new EditorWidgetItem("./data.json", this), "untitled" + QString::number(count++));
|
||||||
const int nowCount = this->tabWidget->count();
|
const int nowCount = this->tabWidget->count();
|
||||||
|
|
||||||
emit tabCountChanged(prevCount, nowCount);
|
emit tabCountChanged(prevCount, nowCount);
|
||||||
|
|
|
@ -134,6 +134,7 @@ void LayerTreeWidget::onRenameEvent()
|
||||||
this->selectedItem->setText(0, sName);
|
this->selectedItem->setText(0, sName);
|
||||||
this->selectedItem->data(0, Qt::UserRole).value<LayerWrapper *>()->property.name = sName;
|
this->selectedItem->data(0, Qt::UserRole).value<LayerWrapper *>()->property.name = sName;
|
||||||
}
|
}
|
||||||
|
emit triggerCentralRefresh();
|
||||||
emit displayLayerChange(this->selectedItem->data(0, Qt::UserRole).value<LayerWrapper *>());
|
emit displayLayerChange(this->selectedItem->data(0, Qt::UserRole).value<LayerWrapper *>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 284 B After Width: | Height: | Size: 284 B |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 583 B After Width: | Height: | Size: 583 B |
Before Width: | Height: | Size: 265 B After Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 617 B After Width: | Height: | Size: 617 B |
Before Width: | Height: | Size: 468 B After Width: | Height: | Size: 468 B |
Before Width: | Height: | Size: 499 B After Width: | Height: | Size: 499 B |
Before Width: | Height: | Size: 822 B After Width: | Height: | Size: 822 B |
Before Width: | Height: | Size: 781 B After Width: | Height: | Size: 781 B |
Before Width: | Height: | Size: 577 B After Width: | Height: | Size: 577 B |
Before Width: | Height: | Size: 686 B After Width: | Height: | Size: 686 B |
Before Width: | Height: | Size: 361 B After Width: | Height: | Size: 361 B |
Before Width: | Height: | Size: 191 B After Width: | Height: | Size: 191 B |
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 310 B After Width: | Height: | Size: 310 B |
Before Width: | Height: | Size: 288 B After Width: | Height: | Size: 288 B |
111
data - 副本.json
|
@ -1,111 +0,0 @@
|
||||||
{
|
|
||||||
"height": 1080,
|
|
||||||
"width": 1080,
|
|
||||||
"elements": [
|
|
||||||
{
|
|
||||||
"name": "ababa",
|
|
||||||
"type": "svg-file",
|
|
||||||
"data": {
|
|
||||||
"include": "./svg/2.svg"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ababa-group",
|
|
||||||
"type": "group",
|
|
||||||
"data": {
|
|
||||||
"reference-layer": "0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"root-layer": {
|
|
||||||
"name": "root",
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"scale": {
|
|
||||||
"x": 1.0,
|
|
||||||
"y": 1.0
|
|
||||||
},
|
|
||||||
"rotation": 0.0
|
|
||||||
},
|
|
||||||
"effects": [],
|
|
||||||
"is-folder": true,
|
|
||||||
"referenced-by": null,
|
|
||||||
"children": [
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "GroupFolderExample",
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 50,
|
|
||||||
"y": 50
|
|
||||||
},
|
|
||||||
"scale": {
|
|
||||||
"x": 1.0,
|
|
||||||
"y": 1.0
|
|
||||||
},
|
|
||||||
"rotation": 0.0
|
|
||||||
},
|
|
||||||
"effects": [],
|
|
||||||
"is-folder": true,
|
|
||||||
"referenced-by": 1,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"name": "Leaf1",
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"scale": {
|
|
||||||
"x": 1.0,
|
|
||||||
"y": 1.0
|
|
||||||
},
|
|
||||||
"rotation": 0.0
|
|
||||||
},
|
|
||||||
"effects": [],
|
|
||||||
"is-folder": false,
|
|
||||||
"element": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Leaf2",
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 150,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"scale": {
|
|
||||||
"x": 1.5,
|
|
||||||
"y": 1.5
|
|
||||||
},
|
|
||||||
"rotation": 0.0
|
|
||||||
},
|
|
||||||
"effects": [],
|
|
||||||
"is-folder": false,
|
|
||||||
"element": 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "ReferencingGroupLayer",
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 100,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
},
|
|
||||||
"rotation": 45
|
|
||||||
},
|
|
||||||
"effects": [],
|
|
||||||
"is-folder": false,
|
|
||||||
"element": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,96 +0,0 @@
|
||||||
{
|
|
||||||
"elements": [
|
|
||||||
{
|
|
||||||
"name": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"height": 1080,
|
|
||||||
"root-layer": {
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"element": 0,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "Leaf1",
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 0,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "Leaf2",
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 150,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1.5,
|
|
||||||
"y": 1.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"is-folder": true,
|
|
||||||
"name": "GroupFolderExample",
|
|
||||||
"referenced-by": 1,
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 50,
|
|
||||||
"y": 50
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 1,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "ReferencingGroupLayer",
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 100,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"rotation": 45,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"is-folder": true,
|
|
||||||
"name": "root",
|
|
||||||
"referenced-by": null,
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"width": 1080
|
|
||||||
}
|
|
172
test.json
|
@ -1,172 +0,0 @@
|
||||||
{
|
|
||||||
"background-color": "#ffffff",
|
|
||||||
"elements": [
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"include": "/svg/2.svg"
|
|
||||||
},
|
|
||||||
"name": "ababa",
|
|
||||||
"type": "svg-file"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"reference-layer": "0.0"
|
|
||||||
},
|
|
||||||
"name": "ababa-group",
|
|
||||||
"type": "group"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"include": "/svg/0.svg"
|
|
||||||
},
|
|
||||||
"name": "ababa2",
|
|
||||||
"type": "svg-file"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"include": "/svg/4_L0.svg"
|
|
||||||
},
|
|
||||||
"name": "4_L0.svg",
|
|
||||||
"type": "svg-file"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"height": 1080,
|
|
||||||
"project-name": "样例1",
|
|
||||||
"root-layer": {
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"element": 0,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "Leaf2",
|
|
||||||
"styles": [
|
|
||||||
{
|
|
||||||
"enableEachSideIndependent": true,
|
|
||||||
"left": "AABAQAEAIZwAf///AFqe/w==",
|
|
||||||
"right": "AABAQAAACJw=",
|
|
||||||
"type": "stroke"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 501,
|
|
||||||
"y": -3
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1.5,
|
|
||||||
"y": 1.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"is-folder": true,
|
|
||||||
"name": "GroupFolderExample",
|
|
||||||
"referenced-by": 1,
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 503,
|
|
||||||
"y": 36
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 1,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-2",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 986
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 1,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-3",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": -959,
|
|
||||||
"y": -5
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 1,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-4",
|
|
||||||
"styles": [
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": -958,
|
|
||||||
"y": 980
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": 3,
|
|
||||||
"is-folder": false,
|
|
||||||
"name": "子图层-5",
|
|
||||||
"styles": [
|
|
||||||
{
|
|
||||||
"material": "AH8A/wBanv8=",
|
|
||||||
"type": "fill"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 473,
|
|
||||||
"y": 419
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"is-folder": true,
|
|
||||||
"name": "root",
|
|
||||||
"referenced-by": null,
|
|
||||||
"transform": {
|
|
||||||
"offset": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"rotation": 0,
|
|
||||||
"scale": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"width": 1080
|
|
||||||
}
|
|
|
@ -1,60 +0,0 @@
|
||||||
# 图层删除
|
|
||||||
当删除一个节点时,该节点一定满足且只满足以下条件中的一条:
|
|
||||||
1. 是一个Leaf节点,引用了其他的Element;
|
|
||||||
2. 是一个Folder节点,没有GroupElement引用,没有引用任何其他节点(因为是Folder);
|
|
||||||
3. 是一个Folder节点,存在对应的GroupElement引用。
|
|
||||||
|
|
||||||
其中,对于第1条,由于Leaf节点被删除只影响其父亲Folder的属性,所以显然在删除Leaf节点时是绝对安全的。
|
|
||||||
|
|
||||||
对于第2条,对于其父亲Folder,其被删除只影响其父亲Folder的属性,所以不会影响其父亲;对于其孩子,有可能存在以下情况:
|
|
||||||
1. 孩子中不存在任何被引用的情况:删除安全;
|
|
||||||
2. 孩子中存在Folder节点被GroupElement引用,不安全,需要手动将情况转换为第1条后才可以删除。
|
|
||||||
|
|
||||||
对于第3条,必须首先手动解除其本身的引用,然后将转变为第2条。
|
|
||||||
|
|
||||||
# 图元删除
|
|
||||||
**显然**,无论是什么种类的图元,删除一个图元会影响到的元素只有引用它的图层,所以我们将SimpleElement与GroupElement合并成一种情况讨论。
|
|
||||||
|
|
||||||
当删除一个图元时,该图元一定满足且只满足以下条件中的一条:
|
|
||||||
1. 是一个GraphicElement,未被其他图层引用;
|
|
||||||
2. 是一个GraphicElement,被其他图层引用。
|
|
||||||
|
|
||||||
对于第1条,删除绝对安全。
|
|
||||||
|
|
||||||
对于第2条,将引用关系手动解除后,删除安全。
|
|
||||||
|
|
||||||
# 图层移动
|
|
||||||
## 条件分析
|
|
||||||
图层移动时,显然,被移动的节点只影响它本身及它的子图层,
|
|
||||||
移动的目标节点只影响它本身及它的父图层,那么:
|
|
||||||
|
|
||||||
(1) 被移动的图层一定满足且只满足以下条件中的一条:
|
|
||||||
1. 是一个Folder节点,无对应的GroupElement引用,子节点无引用GroupElement;
|
|
||||||
2. 是一个Folder节点,无对应的GroupElement引用,子节点存在引用GroupElement;
|
|
||||||
3. 是一个Folder节点,存在对应的GroupElement引用;
|
|
||||||
4. 是一个Leaf节点,引用了GroupElement;
|
|
||||||
5. 是一个Leaf节点,未引用GroupElement。
|
|
||||||
|
|
||||||
(2) 目标FolderLayer一定满足且只满足以下条件中的一条:
|
|
||||||
1. 自身无对应的GroupElement引用,无父节点有GroupElement引用;
|
|
||||||
2. 自身无对应的GroupElement引用,存在父节点有GroupElement引用;
|
|
||||||
3. 自身存在对应的GroupElement引用。
|
|
||||||
|
|
||||||
显然,以上条件的全组合可以覆盖所有情况。
|
|
||||||
由于:
|
|
||||||
- `(1) 1` 与 `(2) 中的任一条件`进行组合显然是绝对安全的;
|
|
||||||
- `(1) 3` 中自身提供的GroupElement并不会影响移动;
|
|
||||||
- `(1) 5` 与 `(2) 中的任一条件`进行组合显然是绝对安全的;
|
|
||||||
- `(1) 中的任一条件` 与 `(2) 1` 进行组合显然是绝对安全的。
|
|
||||||
|
|
||||||
所以接下来对于除去以上情况的所有组合情况进行讨论。
|
|
||||||
## 讨论证明
|
|
||||||
### `(1) 2` - `(2) 2`
|
|
||||||
当且仅当被移动的图层的子节点引用的GroupElement 与 目标图层父节点提供的GroupElement 相同时,移动不安全。
|
|
||||||
### `(1) 4` - `(2) 2`
|
|
||||||
当且仅当被移动的图层引用的GroupElement 与 目标图层父节点提供的 GroupElement 相同时,移动不安全。
|
|
||||||
### `(2) 3` 的特殊讨论
|
|
||||||
当且仅当自身提供的GroupElement 被 被移动图层或其子节点引用时,需要处理其自身情况,否则无视其自身提供的GroupElement,与 `(2) 1` 或 `(2) 2` 视为同情况处理。
|
|
||||||
|
|
||||||
## 结论
|
|
||||||
当且仅当被移动的图层或其子节点所引用的GroupElement 与 目标图层或其父节点所提供的GroupElement 相同时,移动不安全;其余情况均安全。
|
|