KawAnime/components/settings.vue

181 lines
5.4 KiB
Vue

<template lang="pug">
v-dialog(v-model='configModal', fullscreen, transition='config', :overlay='false')
v-btn(icon, slot='activator')
v-icon settings
v-card.white--text.main
v-toolbar.mablue.tb(fixed dark)
v-btn(icon, @click='configModal = false', dark)
v-icon close
v-toolbar-title.headline Settings
v-spacer
v-toolbar-items
v-btn(dark, flat, v-on:click.native='save()')
| Save
v-container.container(fluid)
v-layout(row, wrap, justify-center)
v-flex.pb-4(xs11)
v-card
v-card-title#download.headline
| Download
v-divider
v-layout(row, wrap, justify-center)
v-flex.section-title(xs6) Preferred fansub
v-flex.section-title(xs6) Quality
v-flex(xs5)
v-select(
v-bind:items='fansubChoices',
v-model='config.fansub',
hint='The fansub you want to check first!',
persistent-hint,
dark,
item-value='text'
)
v-flex(xs1)
v-flex(xs5)
v-radio-group(:isMantatory="true", row, v-model="config.quality")
template(v-for='radio in radios')
v-radio.primary--text(
:label='radio',
:value='radio'
)
v-flex.section-title(offset-xs1, xs3) Magnets
v-flex(xs8)
v-switch(
label='Activate (Recommended)',
color='primary',
v-model='config.magnets',
dark,
persistent-hint,
hint='Activate to get a list of magnets in the downloader'
)
v-card.section
v-card-title#local.headline Local
v-divider
v-layout(row, wrap, justify-center)
v-flex.section-title(xs4) Preferred local path
v-flex.local-path(xs6) {{ config.localPath }}
v-flex(xs2)
v-btn(accent, @click="changePath()") Choose
v-flex.section-title(xs3) News
v-flex(xs9)
v-switch(
:label="config.inside ? 'Inside' : 'Outside'",
color='primary',
v-model='config.inside',
dark,
persistent-hint,
hint='Deactivate to open the news in your browser.'
)
v-card.section
v-card-title#local.headline Notification
v-divider
v-layout(row, wrap, justify-center)
v-flex.section-title(xs12) Sound
v-flex(xs4)
v-select(
v-bind:items='soundChoices',
v-model='config.sound',
hint='The sound you want KawAnime to use when notifying you!',
persistent-hint,
dark,
item-value='text'
)
v-flex(xs5)
v-btn(icon large @click="play()")
v-icon(large) play_circle_outline
v-card.section
v-card-title#system.headline System
v-divider
v-layout(row, wrap, justify-center)
v-flex.section-title(xs3) Auto-start
v-flex(xs3)
v-switch(
label='Enable',
color='primary',
dark,
v-model='config.system.autoStart',
persistent-hint,
hint='Launch KawAnime on system start?'
)
v-flex.section-title(xs3) Tray icon
v-flex(xs3)
v-switch(
label='Enable',
color='primary',
dark,
v-model='config.system.toTray',
persistent-hint,
hint='Launch KawAnime with tray icon'
)
</template>
<script>
export default {
data () {
return {
configModal: false,
radios: ['480p', '720p', '1080p']
}
},
computed: {
config () {
return this.$store.state.config.config
},
fansubChoices () {
return this.$store.state.config.fansubs
},
soundChoices () {
return this.$store.state.config.sounds
}
},
methods: {
changePath () {
this.$store.dispatch('config/changeDir')
},
save () {
this.$store.commit('config/set', this.config)
this.$store.dispatch('config/save')
this.configModal = false
},
play () {
this.$store.dispatch('player/setUp')
this.$store.dispatch('player/play')
}
}
}
</script>
<style scoped>
.tb
{
top: 24px;
}
.container
{
padding-top: calc(24px + 48px);
}
.section
{
margin-top: 20px;
}
.section-title
{
padding-left: 20px;
margin-top: 15px;
font-size: 22px;
font-weight: 300;
}
.local-path
{
margin-top: 15px;
font-size: 18px;
font-weight: 200;
text-align: center;
}
</style>