Skip to content

Commit f68cd90

Browse files
committed
modify window.localStorage
1 parent 3323e94 commit f68cd90

11 files changed

Lines changed: 167 additions & 118 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
/npm-debug.log
44
/ProgramConfig.json
55
/CahceConfig.json
6+
/save.dat

ext/ExtCheckBox.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,12 @@ ExtCheckBox.GenNodeByData = function(data, parent) {
3030
}
3131

3232
ExtCheckBox.SetNodePropByData = function(node, data, parent) {
33-
setNodeSpriteFrame('back', data['back'], node, node.loadTextureBackGround)
34-
setNodeSpriteFrame('backSelect', data['backSelect'], node, node.loadTextureBackGroundSelected)
35-
setNodeSpriteFrame('active', data['active'], node, node.loadTextureFrontCross)
36-
setNodeSpriteFrame('backDisable', data['backDisable'], node, node.loadTextureBackGroundDisabled)
37-
setNodeSpriteFrame('activeDisable', data['activeDisable'], node, node.loadTextureFrontCrossDisabled)
38-
39-
(!isNull(data['select'])) && (node.setSelected(data['select']))
33+
setNodeSpriteFrame('back', data['back'], node, node.loadTextureBackGround);
34+
setNodeSpriteFrame('backSelect', data['backSelect'], node, node.loadTextureBackGroundSelected);
35+
setNodeSpriteFrame('active', data['active'], node, node.loadTextureFrontCross);
36+
setNodeSpriteFrame('backDisable', data['backDisable'], node, node.loadTextureBackGroundDisabled);
37+
setNodeSpriteFrame('activeDisable', data['activeDisable'], node, node.loadTextureFrontCrossDisabled);
38+
(!isNull(data['select'])) && (node.setSelected(data['select']));
4039
}
4140

4241
ExtCheckBox.ExportNodeData = function(node, data) {

ext/ExtInput.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,10 @@ ExtInput.SetNodePropByData = function(node, data, parent) {
4646
data.placeHolder && (node.placeHolder = data.placeHolder)
4747
data.placeHolderFontName && (node.placeHolderFontName = data.placeHolderFontName)
4848
data.placeHolderFontSize && (node.placeHolderFontSize = data.placeHolderFontSize);
49-
(covertToColor(data.placeholderFontColor)) && (node.placeholderFontColor = covertToColor(data.placeholderFontColor)) !isNull(data.inputFlag) && (node.inputFlag = data.inputFlag) !isNull(data.inputMode) && (node.inputMode = data.inputMode) !isNull(data.returnType) && (node.returnType = data.returnType)
49+
(covertToColor(data.placeholderFontColor)) && (node.placeholderFontColor = covertToColor(data.placeholderFontColor));
50+
!isNull(data.inputFlag) && (node.inputFlag = data.inputFlag);
51+
!isNull(data.inputMode) && (node.inputMode = data.inputMode);
52+
!isNull(data.returnType) && (node.returnType = data.returnType);
5053

5154
ExtInput.SetSpriteFrame(node, data.spriteFrame)
5255
}

index.html

Lines changed: 76 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,87 @@
11
<html>
22

33
<head>
4-
<meta charset="utf-8">
5-
6-
<style>
7-
#mainDock {
8-
position: relative;
9-
}
10-
11-
h2 {
12-
margin: auto;
13-
}
14-
15-
h2 span {
16-
color: #090;
17-
}
18-
19-
body {
20-
margin: 3px;
21-
}
22-
</style>
23-
<link rel="import" href="app://bower_components/polymer/polymer.html">
24-
<link rel="import" href="app://bower_components/iron-flex-layout/iron-flex-layout.html">
25-
<link rel="stylesheet" href="app://bower_components/fontawesome/css/font-awesome.min.css">
26-
27-
<link rel="stylesheet" type="text/css" href="app://js/layout.css" />
28-
29-
<link rel="stylesheet" type="text/css" href="app://node_modules/jQuery-contextMenu/src/jquery.contextMenu.css" />
30-
<script src="app://node_modules/jquery/dist/jquery.min.js" onload="window.$ = window.jQuery = module.exports;"></script>
31-
32-
<!--<script src="app://js/jquery.js" onload="window.$ = window.jQuery = module.exports;"></script>-->
33-
34-
<!--<script src="app://js/jquery-1.8.3.js" ></script>-->
35-
36-
<script src="app://node_modules/jquery-contextmenu/src/jquery.contextMenu.js"></script>
37-
<script src="app://node_modules/jquery-contextmenu/src/jquery.ui.position.js"></script>
38-
<script src="app://node_modules/FileSaver/FileSaver.js"></script>
39-
<script type="text/javascript" src="app://third/html5/cocos2d-js.js" charset="UTF-8"></script>
40-
41-
<link rel="stylesheet" type="text/css" href="app://js/jsgrid.min.css" />
42-
<script type="text/javascript" src="app://js/jsgrid.min.js"></script>
43-
<link rel="stylesheet" type="text/css" href="app://js/jsgrid-theme.min.css" />
44-
45-
<script src="app://js/util.js"></script>
46-
<script src="app://js/keycode.js"></script>
47-
<script src="app://js/renderUndo.js"></script>
48-
<script src="app://js/cocosUtil.js"></script>
49-
<script src="app://js/UIUtil.js"></script>
50-
<script src="app://js/fabric.js"></script>
51-
52-
<script src="app://render/ipc.js"></script>
53-
<script src="app://render/console.js"></script>
54-
55-
<link rel="import" href="app://ext/init.html">
56-
<link rel="import" href="app://prop/index.html">
57-
58-
<link rel="import" href="app://packages/td-tree-view/widget/td-tree-view.html">
59-
<link rel="import" href="app://packages/td-tree-view/widget/td-tree-item.html">
60-
61-
<link rel="import" href="app://packages/nodeorder/panel/nodeorder.html">
62-
<link rel="import" href="app://packages/resorder/panel/resorder.html">
63-
<link rel="import" href="app://packages/controlpanel/panel/controlpanel.html">
64-
<link rel="import" href="app://packages/console/panel/console.html">
65-
<link rel="import" href="app://packages/renderpanel/panel/renderpanel.html">
66-
<link rel="import" href="app://packages/proppanel/panel/proppanel.html">
67-
68-
<!-- Core Modules -->
69-
<link rel="stylesheet" type="text/css" href="app://js/wcDocker.min.css" />
70-
<script src="app://js/wcDocker.min.js"></script>
71-
72-
<!-- Demo specific files -->
73-
<link rel='stylesheet' href='app://js/spectrum.css' />
74-
<script src='app://js/spectrum.js'></script>
75-
<script src="app://layout.js"></script>
4+
<meta charset="utf-8">
5+
6+
<style>
7+
#mainDock {
8+
position: relative;
9+
}
10+
11+
h2 {
12+
margin: auto;
13+
}
14+
15+
h2 span {
16+
color: #090;
17+
}
18+
19+
body {
20+
margin: 3px;
21+
}
22+
</style>
23+
24+
<link rel="import" href="app://bower_components/polymer/polymer.html">
25+
<link rel="import" href="app://bower_components/iron-flex-layout/iron-flex-layout.html">
26+
<link rel="stylesheet" href="app://bower_components/fontawesome/css/font-awesome.min.css">
27+
28+
<link rel="stylesheet" type="text/css" href="app://js/layout.css" />
29+
30+
<link rel="stylesheet" type="text/css" href="app://node_modules/jQuery-contextMenu/src/jquery.contextMenu.css" />
31+
32+
<script src="app://node_modules/jquery/dist/jquery.min.js" onload="window.$ = window.jQuery = module.exports;"></script>
33+
34+
<!--<script src="app://js/jquery.js" onload="window.$ = window.jQuery = module.exports;"></script>-->
35+
36+
<!--<script src="app://js/jquery-1.8.3.js" ></script>-->
37+
38+
<script src="app://node_modules/jquery-contextmenu/src/jquery.contextMenu.js"></script>
39+
<script src="app://node_modules/jquery-contextmenu/src/jquery.ui.position.js"></script>
40+
<script src="app://node_modules/FileSaver/FileSaver.js"></script>
41+
<script type="text/javascript" src="app://third/html5/cocos2d-js.js" charset="UTF-8"></script>
42+
43+
<link rel="stylesheet" type="text/css" href="app://js/jsgrid.min.css" />
44+
<script type="text/javascript" src="app://js/jsgrid.min.js"></script>
45+
<link rel="stylesheet" type="text/css" href="app://js/jsgrid-theme.min.css" />
46+
47+
<script src="app://js/util.js"></script>
48+
<script src="app://js/keycode.js"></script>
49+
<script src="app://js/renderUndo.js"></script>
50+
<script src="app://js/cocosUtil.js"></script>
51+
<script src="app://js/UIUtil.js"></script>
52+
<script src="app://js/fabric.js"></script>
53+
54+
<script src="app://render/ipc.js"></script>
55+
<script src="app://render/console.js"></script>
56+
57+
<link rel="import" href="app://ext/init.html">
58+
<link rel="import" href="app://prop/index.html">
59+
60+
<link rel="import" href="app://packages/td-tree-view/widget/td-tree-view.html">
61+
<link rel="import" href="app://packages/td-tree-view/widget/td-tree-item.html">
62+
63+
<link rel="import" href="app://packages/nodeorder/panel/nodeorder.html">
64+
<link rel="import" href="app://packages/resorder/panel/resorder.html">
65+
<link rel="import" href="app://packages/controlpanel/panel/controlpanel.html">
66+
<link rel="import" href="app://packages/console/panel/console.html">
67+
<link rel="import" href="app://packages/renderpanel/panel/renderpanel.html">
68+
<link rel="import" href="app://packages/proppanel/panel/proppanel.html">
69+
70+
<!-- Core Modules -->
71+
<link rel="stylesheet" type="text/css" href="app://js/wcDocker.min.css" />
72+
<script src="app://js/wcDocker.min.js"></script>
73+
74+
<!-- Demo specific files -->
75+
<link rel='stylesheet' href='app://js/spectrum.css' />
76+
<script src='app://js/spectrum.js'></script>
77+
<script src="app://layout.js"></script>
7678

7779
</head>
7880

7981
<body>
8082

81-
<div class="dockerContainer" style="position:absolute;left:0px;right:0px;top:0px;bottom:0px;border:3px solid black"></div>
82-
<script>
83-
83+
<div class="dockerContainer" style="position:absolute;left:0px;right:0px;top:0px;bottom:0px;border:3px solid black"></div>
84+
<script>
8485
</script>
8586
</body>
8687

js/UIUtil.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ function ChangeProjectFolder() {
88
let newFolder = Electron.remote.dialog.showOpenDialog({ properties: ['openFile', 'openDirectory'] })
99
if (newFolder) {
1010
window.projectFolder = newFolder[0]
11-
window.localStorage['projectFolder'] = newFolder[0]
11+
setSaveData('projectFolder', newFolder[0])
1212
Ipc.sendToAll('ui:project_floder_change', { folder: newFolder[0] })
1313
}
1414
}
1515

1616
ipcRenderer.on("ui:new-project", (event, project) => {
1717
window.projectFolder = project
18-
window.localStorage['projectFolder'] = project
18+
setSaveData('projectFolder', project)
1919
Ipc.sendToAll('ui:project_floder_change', { folder: project })
2020
})
2121

js/util.js

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,8 @@ function AddLinkToScripte(url, callback) {
370370
}
371371

372372
function GetFileToData(file) {
373-
let content = fs.readFileSync(file)
374373
try {
374+
let content = fs.readFileSync(file)
375375
return JSON.parse(content || '{}')
376376
} catch (e) {
377377
return {}
@@ -490,4 +490,36 @@ function saveLangData(langPath, data) {
490490

491491
function fullPath(path) {
492492
return "file://" + path;
493+
}
494+
495+
var localSaveData;
496+
497+
function getLocalSaveData() {
498+
if (!localSaveData) {
499+
localSaveData = GetFileToData("save.dat")
500+
}
501+
return localSaveData
502+
}
503+
504+
function getSaveData(key) {
505+
try {
506+
return window.localStorage[key]
507+
} catch (e) {
508+
var saveData = getLocalSaveData();
509+
return saveData[key]
510+
}
511+
}
512+
513+
function setSaveData(key, data) {
514+
try {
515+
window.localStorage[key] = data
516+
} catch (e) {
517+
var saveData = getLocalSaveData();
518+
if (!data) {
519+
delete saveData[key]
520+
} else {
521+
saveData[key] = data
522+
}
523+
fs.writeFileSync("save.dat", JSON.stringify(saveData, null, 4))
524+
}
493525
}

layout.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,8 @@ $(document).ready(function() {
203203
// var gridPanel = myDocker.addPanel('GridPanel', wcDocker.DOCK.LEFT, wcDocker.COLLAPSED, {h: '20%'})
204204
}
205205

206-
if (window.localStorage['saveLayout']) {
207-
myDocker.restore(window.localStorage['saveLayout'])
206+
if (getSaveData('saveLayout')) {
207+
myDocker.restore(getSaveData('saveLayout'))
208208
} else {
209209
myDocker.setInitLayout()
210210
}

packages/renderpanel/panel/renderpanel.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1115,7 +1115,7 @@
11151115
self._openPath = path
11161116
let subPath = calcRelativePath(window.projectFolder + '/', self._openPath)
11171117
self._localName = subPath;
1118-
window.localStorage['last_open_ui'] = path
1118+
setSaveData('last_open_ui', path)
11191119
self.sceneChange(scene)
11201120
}
11211121
}
@@ -1219,11 +1219,11 @@
12191219
return
12201220
}
12211221
let _saveLayout = global.myDocker.save()
1222-
window.localStorage['saveLayout'] = _saveLayout
1222+
setSaveData('saveLayout', _saveLayout)
12231223
},
12241224
'ui:reset-layout' (event, data) {
1225-
if (window.localStorage['saveLayout'] && global.myDocker) {
1226-
global.myDocker.restore(window.localStorage['saveLayout'])
1225+
if (getSaveData('saveLayout') && global.myDocker) {
1226+
global.myDocker.restore(getSaveData('saveLayout'))
12271227
}
12281228
},
12291229
'ui:reset-init-layout' (event, data) {

packages/resorder/panel/resorder.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848
})
4949

5050
global.setTimeout(() => {
51-
if (window.localStorage['projectFolder']) {
52-
let path = window.localStorage['projectFolder']
51+
if (getSaveData('projectFolder')) {
52+
let path = getSaveData('projectFolder')
5353
window['projectFolder'] = path
5454
Ipc.sendToAll('ui:project_floder_change', { folder: path })
5555
}
@@ -379,10 +379,10 @@
379379
'ui:project_floder_change' (event, message) {
380380
ensureLangExist()
381381

382-
let last_open_ui = window.localStorage['last_open_ui']
382+
let last_open_ui = getSaveData('last_open_ui')
383383
if (!startWith(last_open_ui, message.folder)) {
384384
last_open_ui = null
385-
window.localStorage['last_open_ui'] = null
385+
setSaveData("last_open_ui")
386386
}
387387
AddLinkToScripte(message.folder + '/js/init.html', function() {
388388
if (last_open_ui) {

0 commit comments

Comments
 (0)