added keep-colors option

This commit is contained in:
Henry Jameson 2018-12-11 16:36:06 +03:00
parent 51dccb7887
commit c189a08dff
5 changed files with 62 additions and 52 deletions

View file

@ -38,6 +38,7 @@ export default {
colorsInvalid: true,
radiiInvalid: true,
keepColor: false,
keepShadows: false,
keepOpacity: false,
keepRoundness: false,
@ -296,31 +297,30 @@ export default {
return !this.shadowsInvalid && !this.colorsInvalid && !this.radiiInvalid
},
exportedTheme () {
const saveEverything = !this.keepFonts && !this.keepShadows && !this.keepColors && !this.keepOpacity && !this.keepRoundness
const saveEverything = (
!this.keepFonts &&
!this.keepShadows &&
!this.keepOpacity &&
!this.keepRoundness &&
!this.keepColor
)
// TODO change into delete-less version.
const theme = {
shadows: this.shadowsLocal,
fonts: this.fontsLocal,
opacity: this.currentOpacity,
colors: this.currentColors,
radii: this.currentRadii
}
const theme = {}
if (!this.keepFonts && !saveEverything) {
delete theme.fonts
if (this.keepFonts || saveEverything) {
theme.fonts = this.fontsLocal
}
if (!this.keepShadows && !saveEverything) {
delete theme.shadows
if (this.keepShadows || saveEverything) {
theme.shadows = this.shadowsLocal
}
if (!this.keepOpacity && !saveEverything) {
delete theme.opacity
if (this.keepOpacity || saveEverything) {
theme.opacity = this.currentOpacity
}
if (!this.keepColors && !saveEverything) {
delete theme.colors
if (this.keepColor || saveEverything) {
theme.colors = this.currentColors
}
if (!this.keepRoundness && !saveEverything) {
delete theme.radii
if (this.keepRoundness || saveEverything) {
theme.radii = this.currentRadii
}
return {
@ -438,21 +438,23 @@ export default {
this.textColorLocal = rgb2hex(colors.fg)
}
this.clearV1()
const keys = new Set(version !== 1 ? Object.keys(colors) : [])
if (version === 1 || version === 'l1') {
keys
.add('bg')
.add('link')
.add('cRed')
.add('cBlue')
.add('cGreen')
.add('cOrange')
}
if (!this.keepColor) {
this.clearV1()
const keys = new Set(version !== 1 ? Object.keys(colors) : [])
if (version === 1 || version === 'l1') {
keys
.add('bg')
.add('link')
.add('cRed')
.add('cBlue')
.add('cGreen')
.add('cOrange')
}
keys.forEach(key => {
this[key + 'ColorLocal'] = rgb2hex(colors[key])
})
keys.forEach(key => {
this[key + 'ColorLocal'] = rgb2hex(colors[key])
})
}
if (!this.keepRoundness) {
this.clearRoundness()
@ -553,16 +555,18 @@ export default {
this.clearOpacity()
}
this.clearV1()
if (!this.keepColor) {
this.clearV1()
this.bgColorLocal = this.selected[1]
this.fgColorLocal = this.selected[2]
this.textColorLocal = this.selected[3]
this.linkColorLocal = this.selected[4]
this.cRedColorLocal = this.selected[5]
this.cGreenColorLocal = this.selected[6]
this.cBlueColorLocal = this.selected[7]
this.cOrangeColorLocal = this.selected[8]
this.bgColorLocal = this.selected[1]
this.fgColorLocal = this.selected[2]
this.textColorLocal = this.selected[3]
this.linkColorLocal = this.selected[4]
this.cRedColorLocal = this.selected[5]
this.cGreenColorLocal = this.selected[6]
this.cBlueColorLocal = this.selected[7]
this.cOrangeColorLocal = this.selected[8]
}
} else if (this.selectedVersion >= 2) {
this.normalizeLocalState(this.selected.theme, 2)
}

View file

@ -54,11 +54,6 @@
}
}
.import-warning {
color: $fallback--cRed;
color: var(--cRed, $fallback--cRed);
}
.tab-switcher {
margin: 0 -1em;
}
@ -154,8 +149,10 @@
.save-load-options {
flex-wrap: wrap;
margin-top: .5em;
span {
justify-content: center;
.keep-option {
margin: 0 .5em .5em;
min-width: 25%;
}
}

View file

@ -28,28 +28,35 @@
/>
</div>
<div class="save-load-options">
<span>
<span class="keep-option">
<input
id="keep-color"
type="checkbox"
v-model="keepColor">
<label for="keep-color">{{$t('settings.style.switcher.keep_color')}}</label>
</span>
<span class="keep-option">
<input
id="keep-shadows"
type="checkbox"
v-model="keepShadows">
<label for="keep-shadows">{{$t('settings.style.switcher.keep_shadows')}}</label>
</span>
<span>
<span class="keep-option">
<input
id="keep-opacity"
type="checkbox"
v-model="keepOpacity">
<label for="keep-opacity">{{$t('settings.style.switcher.keep_opacity')}}</label>
</span>
<span>
<span class="keep-option">
<input
id="keep-roundness"
type="checkbox"
v-model="keepRoundness">
<label for="keep-roundness">{{$t('settings.style.switcher.keep_roundness')}}</label>
</span>
<span>
<span class="keep-option">
<input
id="keep-fonts"
type="checkbox"

View file

@ -191,6 +191,7 @@
},
"style": {
"switcher": {
"keep_color": "Keep colors",
"keep_shadows": "Keep shadows",
"keep_opacity": "Keep opacity",
"keep_roundness": "Keep roundness",

View file

@ -156,6 +156,7 @@
"user_settings": "Настройки пользователя",
"style": {
"switcher": {
"keep_color": "Оставить цвета",
"keep_shadows": "Оставить тени",
"keep_opacity": "Оставить прозрачность",
"keep_roundness": "Оставить скругление",