harbour-muchkin/qml/Main.qml

95 lines
2.5 KiB
QML

import QtQuick 2.0
import Sailfish.Silica 1.0
import io.thp.pyotherside 1.3
Page {
property alias mainList: mainList
SilicaFlickable {
id: mainList
anchors.fill: parent
PullDownMenu {
MenuItem {
text: "About"
onClicked: pageStack.push(Qt.resolvedUrl("About.qml"))
}
MenuItem {
text: "Refresh"
onClicked: mainList.reload()
}
}
PageHeader {
id: header
width: parent.width
title: "Select the webapp to unify"
}
SilicaGridView {
anchors.top: header.bottom
width: parent.width
height: parent.height
cellWidth: width / 4
cellHeight: cellWidth
model: ListModel {
id: appsList
}
delegate: GridItem {
menu: Component {
ContextMenu {
MenuItem {
text: attrs.Name
}
MenuItem {
text: "Restore the old icon"
onClicked: {
py.addImportPath(Qt.resolvedUrl("../src"))
py.importModule("main", function(){
py.call("main.restore_icon", [attrs], function(success) {
if(success) mainList.reload();
})
})
}
}
}
}
Image {
anchors.centerIn: parent
source: attrs.Icon
width: parent.width
height: width
}
onClicked: {
pageStack.push(Qt.resolvedUrl("Icon.qml"), {attrs: attrs});
}
}
}
function reload(){
appsList.clear()
py.addImportPath(Qt.resolvedUrl("../src"))
py.importModule("main", function(){
py.call("main.get_web_icons", [], function(apps){
for(var i=0; i < apps.length; i++){
appsList.append({attrs: apps[i]})
}
})
})
}
Python {
id: py
Component.onCompleted: {
mainList.reload()
}
}
}
}