aboutsummaryrefslogblamecommitdiffstats
path: root/cmd/mist/assets/qml/views/info.qml
blob: b2d2f521c96d11534d45b33ea2b750febb48837e (plain) (tree)
1
2
3
4
5
6
7
8
9








                                  
                                        
                             







                              
                        









                                        
                                            


                                  







                                               
         


                             
                                   
                           











































                                                                                                   




                                                 










                                                                                                   

                 
                  













                                                                             
                  


                                          
                                                   















                                                     
                                                      


                         



                                          





























                                                                                                 
import QtQuick 2.0
import QtQuick.Controls 1.0;
import QtQuick.Layouts 1.0;
import QtQuick.Dialogs 1.0;
import QtQuick.Window 2.1;
import QtQuick.Controls.Styles 1.1
import Ethereum 1.0

Rectangle {
    property var title: "Debug Info"
    property var menuItem

    objectName: "infoView"
    visible: false
    anchors.fill: parent

    color: "#00000000"

    Column {
        id: info
        spacing: 3
        anchors.fill: parent
        anchors.topMargin: 5
        anchors.leftMargin: 5

        Label {
            id: addressLabel
            text: "Address"
        }
        TextField {
            text: eth.coinbase()
            width: 500
        }

        TextArea {
            objectName: "statsPane"
            width: parent.width
            height: 200
            selectByMouse: true
            readOnly: true
            font.family: "Courier"
        }
    }

    RowLayout {
        id: logLayout
        width: parent.width
        height: 200
        anchors.bottom: parent.bottom

        TableView {
            id: addressView
            width: parent.width
            height: 200
            anchors {
                left: parent.left
                right: logLevelSlider.left
                bottom: parent.bottom
                top: parent.top
            }
            TableViewColumn{ role: "name"; title: "name" }
            TableViewColumn{ role: "address"; title: "address"; width: 300}

            property var addressModel: ListModel {
                id: addressModel
            }

            model: addressModel
            itemDelegate: Item {
                Text {
                    anchors {
                        left: parent.left
                        right: parent.right
                        leftMargin: 10
                        verticalCenter: parent.verticalCenter
                    }
                    color: styleData.textColor
                    elide: styleData.elideMode
                    text: styleData.value
                    font.pixelSize: 11
                    MouseArea {
                        acceptedButtons: Qt.LeftButton | Qt.RightButton
                        propagateComposedEvents: true
                        anchors.fill: parent
                        onClicked: {
                            addressView.selection.clear()
                            addressView.selection.select(styleData.row)

                            if(mouse.button == Qt.RightButton) {
                                contextMenu.row = styleData.row;
                                contextMenu.popup()
                            }
                        }
                    }
                }
            }

            Menu {
                id: contextMenu
                property var row;

                MenuItem {
                    text: "Copy"
                    onTriggered: {
                        copyToClipboard(addressModel.get(this.row).address)
                    }
                }
            }
        }

        /*
        TableView {
            id: logView
            headerVisible: false
            anchors {
                right: logLevelSlider.left
                left: parent.left
                bottom: parent.bottom
                top: parent.top
            }

            TableViewColumn{ role: "description" ; title: "log" }

            model: logModel
        }
        */

        Slider {
            id: logLevelSlider
            value: gui.getLogLevelInt()
            anchors {
                right: parent.right
                top: parent.top
                bottom: parent.bottom

                rightMargin: 5
                leftMargin: 5
                topMargin: 5
                bottomMargin: 5
            }

            orientation: Qt.Vertical
            maximumValue: 5
            stepSize: 1

            onValueChanged: {
                gui.setLogLevel(value)
            }
        }
    }

    property var logModel: ListModel {
        id: logModel
    }

    function addDebugMessage(message){
        debuggerLog.append({value: message})
    }

    function addAddress(address) {
        addressModel.append({name: address.name, address: address.address})
    }

    function clearAddress() {
        addressModel.clear()
    }

    function addLog(str) {
        // Remove first item once we've reached max log items
        if(logModel.count > 250) {
            logModel.remove(0)
        }

        if(str.len != 0) {
            if(logView.flickableItem.atYEnd) {
                logModel.append({description: str})
                logView.positionViewAtRow(logView.rowCount - 1, ListView.Contain)
            } else {
                logModel.append({description: str})
            }
        }

    }
}