harbour-muchkin/qml/Icon.qml

119 lines
3.2 KiB
QML
Raw Normal View History

2021-05-10 18:59:52 +00:00
import QtQuick 2.0
import Sailfish.Silica 1.0
import io.thp.pyotherside 1.3
Page {
id: iconEditor
property var attrs
property var corners: [true, true, true, true]
PageHeader {
id: header
width: parent.width
title: "name: " + attrs.Name
}
SilicaGridView {
anchors.top: header.bottom
width: parent.width
height: width
cellWidth: width / 2
cellHeight: cellWidth
model: ListModel {
id: gridItems
ListElement {
2021-05-10 20:12:10 +00:00
idCell: 0
2021-05-10 18:59:52 +00:00
activated: true
}
ListElement {
2021-05-10 20:12:10 +00:00
idCell: 1
2021-05-10 18:59:52 +00:00
activated: true
}
ListElement {
2021-05-10 20:12:10 +00:00
idCell: 2
2021-05-10 18:59:52 +00:00
activated: true
}
ListElement {
2021-05-10 20:12:10 +00:00
idCell: 3
2021-05-10 18:59:52 +00:00
activated: true
}
}
delegate: GridItem {
onClicked: {
activated = !activated
iconEditor.corners[idCell] = activated
py.importModule("main", function(){
2024-04-02 07:16:08 +00:00
py.call("main.sailify", [(iconEditor.attrs.old_icon || iconEditor.attrs.Icon).toString(), iconEditor.corners, size.value], function(result){
2021-05-10 20:12:10 +00:00
icon.source = result
2021-05-10 18:59:52 +00:00
})
})
}
}
}
Image {
id: icon
anchors.top: header.bottom
width: parent.width
height: width
}
2024-04-02 07:16:08 +00:00
Slider {
id: size
2021-05-10 18:59:52 +00:00
anchors.top: icon.bottom
anchors.horizontalCenter: parent.horizontalCenter
2021-05-10 20:12:10 +00:00
anchors.topMargin: 10
2024-04-02 07:16:08 +00:00
label: "Size:"
width: parent.width
minimumValue: 0
maximumValue: 100
stepSize: 10
value: 100
onReleased: {
py.importModule("main", function(){
py.call("main.sailify", [(iconEditor.attrs.old_icon || iconEditor.attrs.Icon).toString(), iconEditor.corners, size.value], function(result){
icon.source = result
})
})
}
}
Button {
anchors.top: size.bottom
anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 20
2021-05-10 18:59:52 +00:00
text: "Save"
2021-05-10 20:12:10 +00:00
onClicked: {
if(iconEditor.attrs.old_icon === undefined) {
iconEditor.attrs.old_icon = iconEditor.attrs.Icon.toString()
}
2021-05-10 20:12:10 +00:00
iconEditor.attrs.Icon = icon.source.toString()
py.importModule("main", function(){
py.call("main.save_icon", [iconEditor.attrs], function(result){
if(result){
2021-05-16 19:59:28 +00:00
pageStack.pop()
pageStack.completeAnimation()
pageStack.currentPage.mainList.reload()
2021-05-10 20:12:10 +00:00
}
})
})
}
2021-05-10 18:59:52 +00:00
}
Python {
id: py
Component.onCompleted: {
py.addImportPath(Qt.resolvedUrl("../src"));
2021-05-10 20:12:10 +00:00
py.importModule("main", function(){
2024-04-02 07:16:08 +00:00
py.call("main.sailify", [(iconEditor.attrs.old_icon || iconEditor.attrs.Icon).toString(), [1, 1, 1, 1], size.value], function(result){
2021-05-10 20:12:10 +00:00
icon.source = result
})
})
2021-05-10 18:59:52 +00:00
}
}
}