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()
            }
        }
    }

}