let GLFW restart
add mouse area to qmlimg
This commit is contained in:
parent
bba9f04902
commit
d06d77000c
4
main.go
4
main.go
@ -6,8 +6,8 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/kardianos/osext"
|
|
||||||
"github.com/go-gl/glfw/v3.1/glfw"
|
"github.com/go-gl/glfw/v3.1/glfw"
|
||||||
|
"github.com/kardianos/osext"
|
||||||
"github.com/lordwelch/qml"
|
"github.com/lordwelch/qml"
|
||||||
"gopkg.in/gographics/imagick.v2/imagick"
|
"gopkg.in/gographics/imagick.v2/imagick"
|
||||||
)
|
)
|
||||||
@ -109,7 +109,6 @@ func (sl *slide) add( /*cl *cell*/ ) {
|
|||||||
//keep the pointer/dereference (i'm not sure which it is)
|
//keep the pointer/dereference (i'm not sure which it is)
|
||||||
//problems occur otherwise
|
//problems occur otherwise
|
||||||
*sl = append(*sl, &cl)
|
*sl = append(*sl, &cl)
|
||||||
cl.setSignal()
|
|
||||||
|
|
||||||
//seperate image object in QML
|
//seperate image object in QML
|
||||||
cl.qmlimg = qimg.Create(nil)
|
cl.qmlimg = qimg.Create(nil)
|
||||||
@ -117,6 +116,7 @@ func (sl *slide) add( /*cl *cell*/ ) {
|
|||||||
cl.qmlimg.Set("source", fmt.Sprintf("image://images/%d"+`;`+"0", cl.index))
|
cl.qmlimg.Set("source", fmt.Sprintf("image://images/%d"+`;`+"0", cl.index))
|
||||||
cl.qmlimg.Set("parent", window.ObjectByName("data2"))
|
cl.qmlimg.Set("parent", window.ObjectByName("data2"))
|
||||||
cl.qmlimg.Set("index", cl.index)
|
cl.qmlimg.Set("index", cl.index)
|
||||||
|
cl.setSignal()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
22
qml.go
22
qml.go
@ -43,6 +43,23 @@ func (cl *cell) setSignal() {
|
|||||||
cl.clearcache()
|
cl.clearcache()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
cl.qmlimg.ObjectByName("cellMouse").On("clicked", func(musEvent qml.Object) {
|
||||||
|
btn := musEvent.Property("button")
|
||||||
|
//right click
|
||||||
|
if btn == 2 {
|
||||||
|
//context menu
|
||||||
|
window.ObjectByName("mnuCtx").Call("popup")
|
||||||
|
rhtClkCell = cl.index
|
||||||
|
} else {
|
||||||
|
//left click
|
||||||
|
//select and update image preview for cell
|
||||||
|
selCell = cl.qmlcell.Int("index")
|
||||||
|
cl.qmlcell.ObjectByName("cellMouse").Set("focus", true)
|
||||||
|
setupScene()
|
||||||
|
}
|
||||||
|
//update image preview
|
||||||
|
cl.clearcache()
|
||||||
|
})
|
||||||
cl.qmlcell.ObjectByName("cellMouse").On("focusChanged", func(focus bool) {
|
cl.qmlcell.ObjectByName("cellMouse").On("focusChanged", func(focus bool) {
|
||||||
if focus {
|
if focus {
|
||||||
cl.qmlcell.ObjectByName("cellMouse").Call("selected")
|
cl.qmlcell.ObjectByName("cellMouse").Call("selected")
|
||||||
@ -107,7 +124,10 @@ func setSignals() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
window.ObjectByName("mnuDisplay").On("triggered", func() {
|
window.ObjectByName("mnuDisplay").On("triggered", func() {
|
||||||
qml.RunMain(glInit)
|
win.SetShouldClose(false)
|
||||||
|
window.Set("cls", false)
|
||||||
|
win.Show()
|
||||||
|
qml.ResetGLFW()
|
||||||
})
|
})
|
||||||
|
|
||||||
window.ObjectByName("mnuEdit").On("triggered", func() {
|
window.ObjectByName("mnuEdit").On("triggered", func() {
|
||||||
|
@ -12,4 +12,12 @@ Image {
|
|||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
//cache: false
|
//cache: false
|
||||||
|
MouseArea {
|
||||||
|
id: cellMouse
|
||||||
|
hoverEnabled: true
|
||||||
|
enabled: true
|
||||||
|
objectName: "cellMouse"
|
||||||
|
anchors.fill: parent
|
||||||
|
acceptedButtons: Qt.AllButtons
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user