Merge pull request #2189 from inkstitch/jooshkins/addzoomtosim

Add zoom to page and zoom to selection to simulator
pull/2224/head
Lex Neva 2023-04-15 21:56:23 -04:00 zatwierdzone przez GitHub
commit c94ed73b4e
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
3 zmienionych plików z 54 dodań i 3 usunięć

Wyświetl plik

@ -511,7 +511,7 @@ export default {
},
generatePage () {
this.$refs.simulator.style.backgroundColor = this.page_specs.deskcolor
this.svg.rect(this.page_specs.width, this.page_specs.height)
let page = this.svg.rect(this.page_specs.width, this.page_specs.height)
.move(-this.stitchPlan.bounding_box[0],-this.stitchPlan.bounding_box[1])
.fill(this.page_specs.pagecolor)
.stroke({width: 1, color: 'black'})
@ -520,6 +520,18 @@ export default {
add.blend(add.$source, blur)
})
.back()
this.page_specs["bbox"] = page.bbox()
},
zoomDesign () {
let [minx, miny, maxx, maxy] = this.stitchPlan.bounding_box
let designWidth = maxx - minx
let designHeight = maxy - miny
this.svg.viewbox(0, 0, designWidth, designHeight);
this.resizeCursor()
},
zoomPage () {
this.svg.viewbox(this.page_specs.bbox.x, this.page_specs.bbox.y - 50, this.page_specs.bbox.width + 100, this.page_specs.bbox.height + 100)
this.resizeCursor()
}
},
created: function () {
@ -607,6 +619,8 @@ export default {
Mousetrap.bind("space", this.toggleAnimation)
Mousetrap.bind("+", this.animationForwardOneStitch)
Mousetrap.bind("-", this.animationBackwardOneStitch)
Mousetrap.bind("]", this.zoomDesign)
Mousetrap.bind("[", this.zoomPage)
this.svg.on('zoom', this.resizeCursor)
this.resizeCursor()

Wyświetl plik

@ -140,6 +140,28 @@
</p>
</div>
</div>
<div>
<p>
<font-awesome-icon icon="search-minus" class="fa-button"/>
</p>
<p>
<translate>Zoom page</translate>
</p>
<p>
<translate>[ Left square bracket</translate>
</p>
</div>
<div>
<p>
<font-awesome-icon icon="search-plus" class="fa-button"/>
</p>
<p>
<translate>Zoom design</translate>
</p>
<p>
<translate>] Right square bracket</translate>
</p>
</div>
</div>
</collapse-transition>
</div>
@ -191,6 +213,17 @@
<font-awesome-icon icon="horse" size="2x" class="fa-button fa-fast"/>
</button>
</fieldset>
<fieldset class="view">
<legend>
<translate>View</translate>
</legend>
<button v-on:click="zoomPage" :title="$gettext('Zoom page ([)')">
<font-awesome-icon icon="search-minus" size="2x" class="fa-button"/>
</button>
<button v-on:click="zoomDesign" :title="$gettext('Zoom design (])')">
<font-awesome-icon icon="search-plus" size="2x" class="fa-button"/>
</button>
</fieldset>
<fieldset class="command">
<legend>
<translate>Command</translate>

Wyświetl plik

@ -37,7 +37,9 @@ import {
faSpinner,
faStepBackward,
faStepForward,
faStop
faStop,
faSearchPlus,
faSearchMinus
} from '@fortawesome/free-solid-svg-icons'
import {FontAwesomeIcon, FontAwesomeLayers} from '@fortawesome/vue-fontawesome'
import Transitions from 'vue2-transitions'
@ -74,7 +76,9 @@ library.add(
faSpinner,
faStepBackward,
faStepForward,
faStop
faStop,
faSearchPlus,
faSearchMinus
)
Vue.component('font-awesome-icon', FontAwesomeIcon)