Skip to content

Commit da73bcd

Browse files
エンジンを追加したあとのアプリケーションの再起動を不要にする (#1400)
Co-authored-by: Nanashi. <[email protected]>
1 parent 9aed6e8 commit da73bcd

21 files changed

+351
-192
lines changed

docs/res/終了シーケンス図.md

Lines changed: 43 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,57 @@
11
# 終了シーケンス図
22

33
```mermaid
4-
flowchart
5-
node_1>"アプリ実行中"] -->|"アプリを再起動"| node_3["back.RESTART_APP"]
4+
flowchart TD
5+
node_1>"アプリ実行中"] -.->|"MacのCmd+Q"| subgraph_2["app.before_quit"]
66
style node_1 fill:#ffbbbb,stroke:#ff0000
7-
node_3 --> node_4(["willRestart=true"])
8-
node_1 -.->|"MacのCmd+Q"| subgraph_2["app.before_quit"]
97
node_21{{"winがclose済みか"}} -.->|"NO"| subgraph_1["win.close"]
10-
node_1 -->|"アプリ起動直後のVVPPインストール後の再起動"| 132024(["willRestart=true"])
11-
132024 --> 512010["app.quit"]
12-
512010 -.-> subgraph_2
13-
438128["win.close"] -.-> subgraph_1
14-
node_1 -.->|"ウィンドウを閉じる"| subgraph_1
15-
node_4 --> 438128
16-
442878["event.preventDefault"] --> 571782["Vuex.CHECK_EDITED_AND_NOT_WAVE"]
17-
node_9["event.preventDefault"] --> 571782
8+
node_1 -.->|"MacのCmd+W・WinのAlt+F4"| subgraph_1
189
node_15["app.quit"] -.-> subgraph_2
19-
a{{"willQuit"}} -.-> subgraph_2
20-
node_8["win.destroy"] -.-> subgraph_1
21-
701221{{"willRestart"}} -->|"false"| node_21
10+
a{{"willQuit"}} -.->|"true"| subgraph_2
2211
node_21 -.->|"YES"| node_23>"アプリ終了"]
2312
style node_23 fill:#bbbbff,stroke:#0000ff
24-
subgraph 571782["Vuex.CHECK_EDITED_AND_NOT_WAVE"]
25-
node_5["back.CLOSE_WINDOW"] --> node_7(["willQuit=true"])
26-
node_7 --> node_8
27-
453066{" "} -->|"キャンセル"| node_6>"アプリ実行中に戻る"]
28-
453066 --> node_5
13+
846215{" "} -->|"reload"| 186768["RELOAD_APP"]
14+
node_1 -->|"×ボタン"| 295190(["close"])
15+
node_1 -->|"アプリを再読み込み"| 929152(["reload"])
16+
846215 -->|"close"| 208965["back.CLOSE_WINDOW"]
17+
node_9["event.preventDefault"] --> 295190
18+
295190 --> 571782["Vuex.CHECK_EDITED_AND_NOT_SAVE"]
19+
929152 --> 571782
20+
177756{{"alreadyCompleted?"}} -->|"true"| node_21
21+
442878["event.preventDefault"] --> 295190
22+
node_8["win.destroy"] -.-> subgraph_2
23+
705785[["cleanupEngines"]] ~~~ 793927["cleanupEngines"]
24+
198115["win.loadURL"] --> 562861>"UIの描画"]
25+
454139[["cleanupEngines"]] ~~~ 793927
26+
subgraph 186768["RELOAD_APP"]
27+
705785 --> 700765{{"alreadyCompleted?"}}
28+
700765 -->|"false"| 462289["await"]
29+
700765 -->|"true"| 464405[["launchEngines"]]
30+
462289 --> 464405
31+
464405 --> 198115
32+
494918["win.loadURL(dummy)"] --> 705785
2933
end
30-
subgraph subgraph_2["app.before_quit"]
31-
c["willQuit"] -->|"false"| node_9
32-
node_13["event.preventDefault"] --> node_14["全エンジンkill待機"]
33-
node_19(["willRestart=false, willQuit=false"]) --> node_20>"back.start"]
34+
subgraph 208965["back.CLOSE_WINDOW"]
35+
node_7(["willQuit=true"]) --> node_8
36+
end
37+
subgraph 571782["Vuex.CHECK_EDITED_AND_NOT_SAVE"]
38+
846215 -->|"キャンセル"| node_6>"アプリ実行中に戻る"]
39+
end
40+
subgraph 793927["cleanupEngines"]
3441
node_12["engine.killEngineAll"] --> 889691{{"numLivingEngineProcess"}}
35-
889691 -->|"&gt;0"| 701221
36-
701221 -->|"true"| node_17["event.preventDefault"]
37-
c -->|"true"| node_12
3842
889691 -->|"0"| 916552{{"hasMarkedEngineDirs"}}
39-
916552 -->|"false"| 701221
40-
916552 -->|"true"| node_13
41-
node_17 --> node_19
42-
node_14 --> node_18["vvpp.handleMarkedEngineDirs"]
43-
node_18 --> node_15
43+
node_14["全エンジンkill待機"] --> node_18["vvpp.handleMarkedEngineDirs"]
44+
889691 -->|">0"| node_14
45+
916552 -->|"false"| node_14
46+
916552 -->|"true"| 655722["何もしない"]
47+
end
48+
subgraph subgraph_2["app.before_quit"]
49+
c["willQuit"] -->|"false"| node_9
50+
c -->|"true"| 454139
51+
454139 --> 177756
52+
177756 -->|"false"| node_13["event.preventDefault"]
53+
node_13 --> 322763["await"]
54+
322763 --> node_15
4455
end
4556
subgraph subgraph_1["win.close"]
4657
a -->|"false"| 442878

docs/res/起動シーケンス図.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,17 @@
33
```mermaid
44
flowchart
55
174170["back.installVvppEngineWithWarning"] --> 786961["back.installVvppEngine"]
6-
786961 --> 409576{{"再起動するか"}}
7-
409576 -->|"する"| 173803>"アプリ起動直後のVVPPインストール後の再起動へ"]
86
764022["(画面読み込み)"] --> 698565["App.vue"]
97
764022 --> 332024["EditorHome.vue"]
10-
389651["back.start"] --> 733212["back.createWindow"]
11-
733212 -.-> 764022
8+
733212["back.createWindow"] -.-> 764022
129
448821>"アプリ停止中"] -.-> 430173["app.ready"]
1310
style 448821 fill:#ffbbbb,stroke:#ff0000
1411
430173 -->|"ある"| 174170
15-
409576 -->|"しない"| 389651
16-
430173 -->|"ない"| 389651
12+
430173 -->|"ない"| 389651["back.start"]
1713
698565 -.-> 704891>"アプリ実行中"]
1814
style 704891 fill:#bbbbff,stroke:#0000ff
1915
332024 -.-> 704891
16+
786961 --> 389651
2017
subgraph 332024["EditorHome.vue"]
2118
709863["Vuex.GET_ENGINE_INFOS"] --> 773040["Vuex.POST_ENGINE_START"]
2219
subgraph 773040["Vuex.POST_ENGINE_START"]
@@ -31,13 +28,19 @@ flowchart
3128
end
3229
end
3330
subgraph 389651["back.start"]
34-
250263["store.get engineSettings"] --> 222321["store.set engineSettings"]
35-
870482["store.get registeredEngineDirs"] --> 250263
36-
222321 --> 967432["engine.runEngineAll"]
37-
656570["engine.fetchEngineInfos"] --> 870482
38-
110954["engine.initializeEngineInfosAndAltPortInfo"] --> 656570
39-
subgraph 656570["engine.fetchEngineInfos"]
40-
267019["engine.fetchAdditionalEngineInfos"]
31+
967432["engine.runEngineAll"] --> 733212
32+
subgraph 733212["back.createWindow"]
33+
613440["win.loadURL"]
34+
end
35+
subgraph 548965["launchEngines"]
36+
250263["store.get engineSettings"] --> 222321["store.set engineSettings"]
37+
870482["store.get registeredEngineDirs"] --> 250263
38+
222321 --> 967432
39+
656570["engine.fetchEngineInfos"] --> 870482
40+
110954["engine.initializeEngineInfosAndAltPortInfo"] --> 656570
41+
subgraph 656570["engine.fetchEngineInfos"]
42+
267019["engine.fetchAdditionalEngineInfos"]
43+
end
4144
end
4245
end
4346
subgraph 430173["app.ready"]
@@ -49,7 +52,4 @@ flowchart
4952
225701["win.show"]
5053
end
5154
end
52-
subgraph 733212["back.createWindow"]
53-
613440["win.loadURL"]
54-
end
5555
```

docs/コードの歩き方.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,17 @@ flowchart LR
112112
945949 -->|"条件2"| 871294["受動的な処理は点線\n(イベント発生など)"]
113113
366994 --> 617606["大きい関数(subgraph)"]
114114
871294 -.->|"発生条件"| 617606
115-
617606 --> 314405>"なんらかの状態"]
116-
617606 --> 230853>"シーケンスの終了"]
115+
572391[["外に定義した関数"]] --> 314405>"なんらかの状態"]
116+
572391 --> 230853>"シーケンスの終了"]
117117
style 230853 fill:#bbbbff,stroke:#0000ff
118+
617606 --> 572391
119+
572391 ~~~|"透明な線で結んでもよし"| 513532["外に定義した関数"]
118120
subgraph 617606["大きい関数(subgraph)"]
119121
776462["処理開始"] --> 992786["処理終了"]
120122
end
123+
subgraph 513532["外に定義した関数"]
124+
327013["処理"]
125+
end
121126
```
122127

123128
処理の prefix 一覧

package-lock.json

Lines changed: 24 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
"dependencies": {
3838
"@gtm-support/vue-gtm": "1.2.3",
3939
"@quasar/extras": "1.10.10",
40+
"async-lock": "1.4.0",
4041
"buffer": "6.0.3",
4142
"clone-deep": "4.0.1",
4243
"core-js": "3.12.1",
@@ -72,6 +73,7 @@
7273
"@openapitools/openapi-generator-cli": "2.3.3",
7374
"@playwright/test": "1.32.1",
7475
"@quasar/vite-plugin": "1.3.0",
76+
"@types/async-lock": "1.4.0",
7577
"@types/clone-deep": "4.0.1",
7678
"@types/electron-devtools-installer": "2.2.2",
7779
"@types/encoding-japanese": "1.0.18",

0 commit comments

Comments
 (0)