-
Notifications
You must be signed in to change notification settings - Fork 15
/
settingsTab.vue
150 lines (149 loc) · 4.44 KB
/
settingsTab.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<script>
import PowerToggle from '../../core/components/powerToggle';
import Settings from '../stores/settings';
export default {
components: {
powerToggle: PowerToggle,
},
props: {
supportsJumpByFrame: {
type: Boolean,
default: false,
},
},
data() {
return {
restoreKeys: [
'annotationOpacity',
'showMinimap',
'autoplayDraw',
'showLabelTooltip',
'showMousePosition',
'showProgressIndicator',
'showThumbnailPreview',
'enableJumpByFrame',
'jumpStep',
'muteVideo',
],
annotationOpacity: 1,
showMinimap: true,
autoplayDraw: 0,
showLabelTooltip: false,
showMousePosition: false,
playbackRate: 1.0,
jumpStep: 5.0,
showProgressIndicator: true,
showThumbnailPreview: true,
enableJumpByFrame: false,
muteVideo: true,
};
},
computed: {
jumpByFrameNotSupported() {
return !this.supportsJumpByFrame;
},
},
methods: {
handleShowMinimap() {
this.showMinimap = true;
},
handleHideMinimap() {
this.showMinimap = false;
},
handleShowLabelTooltip() {
this.showLabelTooltip = true;
},
handleHideLabelTooltip() {
this.showLabelTooltip = false;
},
handleShowMousePosition() {
this.showMousePosition = true;
},
handleHideMousePosition() {
this.showMousePosition = false;
},
handleShowProgressIndicator() {
this.showProgressIndicator = true;
},
handleHideProgressIndicator() {
this.showProgressIndicator = false;
},
handleShowThumbnailPreview() {
this.showThumbnailPreview = true;
},
handleHideThumbnailPreview() {
this.showThumbnailPreview = false;
},
handleEnableJumpByFrame() {
this.enableJumpByFrame = true;
},
handleDisableJumpByFrame() {
this.enableJumpByFrame = false;
},
handleMuteVideo() {
this.muteVideo = true;
},
handleUnmuteVideo() {
this.muteVideo = false;
},
},
watch: {
annotationOpacity(value) {
value = parseFloat(value);
if (!isNaN(value)) {
this.$emit('update', 'annotationOpacity', value);
Settings.set('annotationOpacity', value);
}
},
showMinimap(show) {
this.$emit('update', 'showMinimap', show);
Settings.set('showMinimap', show);
},
autoplayDraw(value) {
value = parseFloat(value);
this.$emit('update', 'autoplayDraw', value);
Settings.set('autoplayDraw', value);
},
showLabelTooltip(show) {
this.$emit('update', 'showLabelTooltip', show);
Settings.set('showLabelTooltip', show);
},
showMousePosition(show) {
this.$emit('update', 'showMousePosition', show);
Settings.set('showMousePosition', show);
},
playbackRate(value) {
value = parseFloat(value);
if (!isNaN(value)) {
this.$emit('update', 'playbackRate', value);
}
},
jumpStep(value) {
value = parseFloat(value);
this.$emit('update', 'jumpStep', value);
Settings.set('jumpStep', value);
},
showProgressIndicator(show) {
this.$emit('update', 'showProgressIndicator', show);
Settings.set('showProgressIndicator', show);
},
showThumbnailPreview(show) {
this.$emit('update', 'showThumbnailPreview', show);
Settings.set('showThumbnailPreview', show);
},
enableJumpByFrame(show) {
this.$emit('update', 'enableJumpByFrame', show);
Settings.set('enableJumpByFrame', show);
},
muteVideo(show) {
this.$emit('update', 'muteVideo', show);
Settings.set('muteVideo', show);
},
},
created() {
this.restoreKeys.forEach((key) => {
this[key] = Settings.get(key);
});
},
};
</script>