165 lines
5.8 KiB
Vue
165 lines
5.8 KiB
Vue
<template>
|
||
<div>
|
||
<p>Here you can create, edit or remove actions. This includes adding keyboard shortcuts that trigger them, or toggling visibility of each action in the extension popup.</p>
|
||
<p><b>Note that this section is highly experimental.</b> If there's extension-breaking bugs, please file a bug report on github or e-mail me.
|
||
However, there's some bugs that I'm aware of, but have little intentions to fix any time soon: <ul>
|
||
<li><b>Crop actions</b> (and maybe some others) are limited to the <i>page</i> scope (‘Video settings’ in popup) by design.
|
||
Yes, 'global' and 'site' checkboxes are still there, but they won't do anything. I probably won't remove them any time soon,
|
||
because I'd honestly rather spend my finite time on other things.</li>
|
||
<li>UI looks absolutely atrocious, and it's prolly gonna stay that way for a while. I am open to specific design suggestions, though.</li>
|
||
<li><b>For shortcuts:</b> you can use modifier keys (ctrl/alt/meta/shift), but remember to release modifier keys last. For example,
|
||
if you want to do use shift-S for anything: press both keys, release S, release shift. If you release shift first, extension
|
||
will think you were holding only shift key. You're prolly used to doing things that way already. If you're not — bad news,
|
||
reworking how keyboard shortcuts work isn't going to happen for a while.</li>
|
||
<li>I don't think reordering (in a user-friendly way at least) is gonna happen any time soon.</li>
|
||
</ul>
|
||
</p>
|
||
|
||
<p> </p>
|
||
|
||
<div class="flex flex-row button-box">
|
||
<Button label="Add new action"
|
||
@click.native="addAction()"
|
||
>
|
||
</Button>
|
||
</div>
|
||
|
||
<div class="flex flex-col">
|
||
<div class="action-item-category-header">
|
||
Crop actions
|
||
</div>
|
||
<template v-for="(action, index) of settings.active.actions">
|
||
<ActionAlt v-if="action.cmd.length === 1 && action.cmd[0].action === 'set-ar'"
|
||
:key="index"
|
||
:action="action"
|
||
@edit="changeShortcut(index)"
|
||
@remove="removeAction(index)"
|
||
>
|
||
</ActionAlt>
|
||
</template>
|
||
<div class="action-item-category-header">
|
||
Stretch actions
|
||
</div>
|
||
<template v-for="(action, index) of settings.active.actions">
|
||
<ActionAlt v-if="action.cmd.length === 1 && action.cmd[0].action === 'set-stretch'"
|
||
:key="index"
|
||
:action="action"
|
||
@edit="changeShortcut(index)"
|
||
@remove="removeAction(index)"
|
||
>
|
||
</ActionAlt>
|
||
</template>
|
||
|
||
|
||
<div class="action-item-category-header">
|
||
Alignment actions
|
||
</div>
|
||
<template v-for="(action, index) of settings.active.actions">
|
||
<ActionAlt v-if="action.cmd.length === 1 && action.cmd[0].action === 'set-alignment'"
|
||
:key="index"
|
||
:action="action"
|
||
@edit="changeShortcut(index)"
|
||
@remove="removeAction(index)"
|
||
>
|
||
</ActionAlt>
|
||
</template>
|
||
|
||
<div class="action-item-category-header">
|
||
Zoom / panning actions
|
||
</div>
|
||
<template v-for="(action, index) of settings.active.actions">
|
||
<ActionAlt v-if="action.cmd.length === 1 && (
|
||
action.cmd[0].action === 'change-zoom' ||
|
||
action.cmd[0].action === 'set-zoom' ||
|
||
action.cmd[0].action === 'set-pan' ||
|
||
action.cmd[0].action === 'pan' ||
|
||
action.cmd[0].action === 'set-pan'
|
||
)"
|
||
:key="index"
|
||
:action="action"
|
||
@edit="changeShortcut(index)"
|
||
@remove="removeAction(index)"
|
||
>
|
||
</ActionAlt>
|
||
</template>
|
||
|
||
<div class="action-item-category-header">
|
||
Other actions
|
||
</div>
|
||
<template v-for="(action, index) of settings.active.actions">
|
||
<ActionAlt v-if="action.cmd.length > 1 || (
|
||
action.cmd[0].action !== 'change-zoom' &&
|
||
action.cmd[0].action !== 'set-zoom' &&
|
||
action.cmd[0].action !== 'set-pan' &&
|
||
action.cmd[0].action !== 'pan' &&
|
||
action.cmd[0].action !== 'set-pan' &&
|
||
action.cmd[0].action !== 'set-alignment' &&
|
||
action.cmd[0].action !== 'set-stretch' &&
|
||
action.cmd[0].action !== 'set-ar'
|
||
)"
|
||
:key="index"
|
||
:action="action"
|
||
@edit="changeShortcut(index)"
|
||
@remove="removeAction(index)"
|
||
>
|
||
</ActionAlt>
|
||
</template>
|
||
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import Button from '../../common/components/Button';
|
||
import StretchType from '../../common/enums/StretchType.enum';
|
||
import ActionAlt from '../../common/components/ActionAlt';
|
||
|
||
export default {
|
||
components: {
|
||
Button,
|
||
ActionAlt,
|
||
},
|
||
data () {
|
||
return {
|
||
StretchType: StretchType,
|
||
tableVisibility: {
|
||
crop: true,
|
||
}
|
||
}
|
||
},
|
||
created () {
|
||
},
|
||
props: {
|
||
settings: Object
|
||
},
|
||
watch: {
|
||
settings: (newVal, oldVal) => {
|
||
this.settings = newVal;
|
||
}
|
||
},
|
||
methods: {
|
||
removeAction(index) {
|
||
this.$emit('remove-event', index)
|
||
},
|
||
addAction() {
|
||
this.$emit('edit-event', -1);
|
||
},
|
||
changeShortcut(index) {
|
||
this.$emit('edit-event', index);
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
@import '../../res/css/colors.scss';
|
||
|
||
.action-item-category-header {
|
||
margin-top: 3rem;
|
||
color: $primary-color;
|
||
font-size: 2.4rem;
|
||
font-variant: small-caps;
|
||
font-weight: 600;
|
||
}
|
||
</style>
|