| import QtQuick 2.2 |
| import QtQuick.Window 2.1 |
| import QtQuick.Controls 1.1 |
| import QtQuick.Layouts 1.0 |
| |
| ApplicationWindow { |
| visible: false |
| id: window |
| title: "NFD Control Center" |
| minimumWidth: 750 |
| minimumHeight: 400 |
| |
| TabView { |
| anchors.fill: parent |
| anchors.topMargin: 20 |
| anchors.bottomMargin: 20 |
| anchors.leftMargin: 20 |
| anchors.rightMargin: 20 |
| |
| Tab { |
| title: "General" |
| ColumnLayout { |
| anchors.fill: parent |
| GroupBox { |
| title: "Basic" |
| id: checkboxControl |
| anchors.top: parent.top |
| anchors.left: parent.left |
| anchors.right: parent.right |
| anchors.topMargin: 20 |
| anchors.leftMargin: 20 |
| anchors.rightMargin: 20 |
| anchors.bottomMargin: 20 |
| Column { |
| spacing: 5 |
| anchors.fill: parent |
| anchors.topMargin: 10 |
| anchors.bottomMargin: 10 |
| anchors.leftMargin: 10 |
| anchors.rightMargin: 10 |
| CheckBox { |
| id: startOnLogin |
| text: "Launch NFD Control Center on login" |
| checked: trayModel.isNccAutoStartEnabled() |
| onCheckedChanged: trayModel.enableDisableNccAutoStart(this.checked) |
| } |
| CheckBox { |
| id: autoStart |
| text: "Automatically start NFD" |
| checked: trayModel.isNfdAutoStartEnabled() |
| onCheckedChanged: trayModel.enableDisableNfdAutoStart(this.checked) |
| } |
| CheckBox { |
| id: autoConfig |
| text: "Automatically start NDN auto configuration" |
| checked: trayModel.isNdnAutoConfigEnabled() |
| onCheckedChanged: trayModel.enableDisableNdnAutoConfig(this.checked) |
| } |
| CheckBox { |
| id: shutdownOnQuit |
| text: "Shutdown NFD daemon on quit" |
| checked: trayModel.isNfdStopOnExitEnabled() |
| onCheckedChanged: trayModel.enableDisableNfdStopOnExit(this.checked) |
| } |
| } |
| } |
| GroupBox { |
| title: "Status" |
| id: status |
| anchors.top: checkboxControl.bottom |
| anchors.left: parent.left |
| anchors.right: parent.right |
| anchors.topMargin: 20 |
| anchors.leftMargin: 20 |
| anchors.rightMargin: 20 |
| anchors.bottomMargin: 20 |
| Row { |
| spacing: 20 |
| anchors.topMargin: 10 |
| anchors.leftMargin: 10 |
| anchors.rightMargin: 10 |
| anchors.bottomMargin: 10 |
| anchors.fill: parent |
| Button { |
| text: "Traffic map" |
| onClicked: Qt.openUrlExternally('http://ndnmap.arl.wustl.edu') |
| } |
| Button { |
| text: "Routing status" |
| onClicked: Qt.openUrlExternally('http://netlab.cs.memphis.edu/script/htm/status.htm') |
| } |
| } |
| } |
| } |
| } |
| // Tab { |
| // title: "FIB status" |
| // TableView { |
| // anchors.fill: parent |
| // anchors.topMargin: 20 |
| // anchors.bottomMargin: 20 |
| // anchors.leftMargin: 20 |
| // anchors.rightMargin: 20 |
| // TableViewColumn{ |
| // role: "prefix" |
| // title: "NDN prefix" |
| // width: 300 |
| // } |
| // TableViewColumn{ |
| // role: "faceId" |
| // title: "Face ID" |
| // width: 50 |
| // } |
| // TableViewColumn{ |
| // role: "cost" |
| // title: "Cost" |
| // width: 50 |
| // } |
| // model: fibModel |
| // } |
| // } |
| Tab { |
| title: "Forwarder status" |
| TableView { |
| anchors.fill: parent |
| anchors.topMargin: 20 |
| anchors.bottomMargin: 20 |
| anchors.leftMargin: 20 |
| anchors.rightMargin: 20 |
| model: forwarderModel |
| TableViewColumn{ |
| role: "type" |
| title: "Type" |
| width: 200 |
| } |
| TableViewColumn{ |
| role: "value" |
| title: "Value" |
| width: 300 |
| } |
| } |
| } |
| Tab { |
| title: "Auto-config status" |
| TextArea { |
| id: ndnAutoConfigTextId |
| anchors.fill: parent |
| anchors.topMargin: 20 |
| anchors.bottomMargin: 20 |
| anchors.leftMargin: 20 |
| anchors.rightMargin: 20 |
| readOnly: true |
| text: ndnAutoConfigText |
| } |
| } |
| Tab { |
| title: "Security" |
| Column { |
| spacing: 2 |
| anchors.fill: parent |
| anchors.topMargin: 20 |
| anchors.bottomMargin: 20 |
| anchors.leftMargin: 20 |
| anchors.rightMargin: 20 |
| Button { |
| text: "Obtain NDN Certificate" |
| onClicked: Qt.openUrlExternally('http://ndncert.named-data.net') |
| } |
| } |
| } |
| Tab { |
| title: "Add/Delete Route" |
| Column { |
| spacing: 2 |
| anchors.fill: parent |
| anchors.topMargin: 20 |
| anchors.bottomMargin: 20 |
| anchors.leftMargin: 20 |
| } |
| |
| Row { |
| spacing: 20 |
| anchors.topMargin: 30 |
| anchors.leftMargin: 10 |
| anchors.rightMargin: 10 |
| anchors.bottomMargin: 10 |
| anchors.fill: parent |
| TextField { |
| focus: true |
| } |
| Button { |
| text: "Add Route" |
| onClicked: trayModel.addRoute(TextField.text); |
| } |
| Button { |
| text: "Delete Route" |
| onClicked: trayModel.deleteRoute(TextField.text); |
| } |
| } |
| } |
| } |
| Connections { |
| target: trayModel; |
| onShowApp: { |
| window.show() |
| window.raise() |
| } |
| } |
| // Timer { |
| // interval: 1000; running: true; repeat: true |
| // onTriggered: { |
| // fibModel.fetchFibInformation() |
| // } |
| // } |
| } |