import QtQuick 1.0 import JoyStick 1.0 import QtDesktop 0.1 Item { width: 600 height: 800 property int textSize:22 property int ctrlSize:40 ListModel { id: axisMapModel ListElement{ text:"Aileron"; mapAxis:1 } ListElement { text:"Elevator"; mapAxis:2 } ListElement { text:"Throtle"; mapAxis:3 } ListElement { text:"Rudder"; mapAxis:4 } ListElement { text:"none"; mapAxis:0 } } /* ComboBox { id: axisMap1UICombo; model: ListModel { id: choicesMapAxis1 ListElement{ text:"Aileron"; mapAxis:1 } ListElement { text:"Elevator"; mapAxis:2 } ListElement { text:"Throtle"; mapAxis:3 } ListElement { text:"Rudder"; mapAxis:4 } ListElement { text:"none"; mapAxis:0 } } onSelectedIndexChanged: { console.debug("onSelectedIndexChanged " + selectedText + ", " + choicesMapAxis1.get(selectedIndex).mapAxis); js.mapAxis1=choicesMapAxis1.get(selectedIndex).mapAxis } selectedText:js.mapAxis1 KeyNavigation.tab: t1 KeyNavigation.backtab: button2 } Menu { id:js1map visualParent:pageStack MenuLayout { MenuItem { text:"Aileron"; onClicked: { js.mapAxis1=1 }} MenuItem { text:"Elevator"; onClicked: { js.mapAxis1=2 }} MenuItem { text:"Throtle"; onClicked: { js.mapAxis1=3 }} MenuItem { text:"Rudder"; onClicked: { js.mapAxis1=4 }} MenuItem { text:"none"; onClicked: { js.mapAxis1=0 }} } } Menu { id:js2map visualParent:pageStack MenuLayout { MenuItem { text:"Aileron"; onClicked: { js.mapAxis2=1 }} MenuItem { text:"Elevator"; onClicked: { js.mapAxis2=2 }} MenuItem { text:"Throtle"; onClicked: { js.mapAxis2=3 }} MenuItem { text:"Rudder"; onClicked: { js.mapAxis2=4 }} MenuItem { text:"none"; onClicked: { js.mapAxis2=0 }} } } Menu { id:js3map visualParent:pageStack MenuLayout { MenuItem { text:"Aileron"; onClicked: { js.mapAxis3=1 }} MenuItem { text:"Elevator"; onClicked: { js.mapAxis3=2 }} MenuItem { text:"Throtle"; onClicked: { js.mapAxis3=3 }} MenuItem { text:"Rudder"; onClicked: { js.mapAxis3=4 }} MenuItem { text:"none"; onClicked: { js.mapAxis3=0 }} } } Menu { id:js4map visualParent:pageStack MenuLayout { MenuItem { text:"Aileron"; onClicked: { js.mapAxis4=1 }} MenuItem { text:"Elevator"; onClicked: { js.mapAxis4=2 }} MenuItem { text:"Throtle"; onClicked: { js.mapAxis4=3 }} MenuItem { text:"Rudder"; onClicked: { js.mapAxis4=4 }} MenuItem { text:"none"; onClicked: { js.mapAxis4=0 }} } } Menu { id:js5map visualParent:pageStack MenuLayout { MenuItem { text:"Aileron"; onClicked: { js.mapAxis5=1 }} MenuItem { text:"Elevator"; onClicked: { js.mapAxis5=2 }} MenuItem { text:"Throtle"; onClicked: { js.mapAxis5=3 }} MenuItem { text:"Rudder"; onClicked: { js.mapAxis5=4 }} MenuItem { text:"none"; onClicked: { js.mapAxis5=0 }} } } Menu { id:js6map visualParent:pageStack MenuLayout { MenuItem { text:"Aileron"; onClicked: { js.mapAxis6=1 }} MenuItem { text:"Elevator"; onClicked: { js.mapAxis6=2 }} MenuItem { text:"Throtle"; onClicked: { js.mapAxis6=3 }} MenuItem { text:"Rudder"; onClicked: { js.mapAxis6=4 }} MenuItem { text:"none"; onClicked: { js.mapAxis6=0 }} } } */ // property Item jStick: Column { Text { text:" " } Row { Text { text:" " } JoyStickIndicator { border.width:1 width:100;height:100 xvalue:js.axis4 yvalue:js.axis3 Text { anchors.bottom: parent.bottom font.pixelSize: 10 text:" rudder" } Text { x:-10;y:50 rotation:90 font.pixelSize: 10 text:"Throtle" } } spacing:50 JoyStickIndicator { border.width:1 width:100;height:100 xvalue:js.axis1 yvalue:js.axis2 Text { anchors.bottom: parent.bottom font.pixelSize: 10 text:" Aileron" } Text { x:-15;y:50 rotation:90 font.pixelSize: 10 text:"Elevator" } } Column { Button{ text:"Reset" onClicked:{ js.calibrate=false pageStack.pop(); } } Button{ text:"Save" onClicked:{ js.calibrate=false pageStack.pop(); } } } } Grid { spacing:10 columns:7 Text { font.pixelSize :textSize text:" Raw" } Text { font.pixelSize :textSize text:" Max" } Text { font.pixelSize :textSize text:" Min" } Text { font.pixelSize :textSize text:"Calib" } Text { font.pixelSize :textSize text:"value" } Text { font.pixelSize :textSize text:"reverse" } Text { font.pixelSize :textSize text:"mapping " + js.mapAxis1 + js.mapAxis2 + js.mapAxis3 + js.mapAxis4 +js.mapAxis5 +js.mapAxis6 } Text { font.pixelSize :textSize text:js.rawAxis1 } Text { font.pixelSize :textSize text:js.maxAxis1 } Text { font.pixelSize :textSize text:js.minAxis1 } Text { font.pixelSize :textSize text:js.calAxis1.toFixed(2) } BarGauge { width:100 height:20 val:js.calAxis1+1.0 max:2.0 horiz:true } CheckBox { width:60 // scale:0.8 checked:js.invertAxis1 onCheckedChanged:{js.invertAxis1=checked;} } ComboBox { id: axisMap1UICombo; model: axisMapModel onSelectedIndexChanged: { console.debug("onSelectedIndexChanged " + selectedText + ", " + axisMap1UICombo.get(selectedIndex).mapAxis); js.mapAxis1=caxisMap1UICombo.get(selectedIndex).mapAxis } selectedText:js.mapAxis1 } /* Button{ width:200;height:ctrlSize text:js.mapAxis1==1?"Aileron":js.mapAxis1==2?"Elevator":js.mapAxis1==3?"Throtle":js.mapAxis1==4?"Rudder":"none" onClicked:js1map.open() } */ Text { font.pixelSize :textSize text:js.rawAxis2 } Text { font.pixelSize :textSize text:js.maxAxis2 } Text { font.pixelSize :textSize text:js.minAxis2 } Text { font.pixelSize :textSize text:js.calAxis2.toFixed(2) } BarGauge { width:100 height:20 val:js.calAxis2+1.0 max:2.0 horiz:true } CheckBox { checked:js.invertAxis2 onCheckedChanged:{js.invertAxis2=checked;} } Button{ width:200;height:ctrlSize text:js.mapAxis2==1?"Aileron":js.mapAxis2==2?"Elevator":js.mapAxis2==3?"Throtle":js.mapAxis2==4?"Rudder":"none" onClicked:js2map.open() } Text { font.pixelSize :textSize text:js.rawAxis3 } Text { font.pixelSize :textSize text:js.maxAxis3 } Text { font.pixelSize :textSize text:js.minAxis3 } Text { font.pixelSize :textSize text:js.calAxis3.toFixed(2) } BarGauge { width:100 height:20 val:js.calAxis3+1.0 max:2.0 horiz:true } CheckBox { checked:js.invertAxis3 onCheckedChanged:{js.invertAxis3=checked;} } Button{ width:200;height:ctrlSize text:js.mapAxis3==1?"Aileron":js.mapAxis3==2?"Elevator":js.mapAxis3==3?"Throtle":js.mapAxis3==4?"Rudder":"none" onClicked:js3map.open() } Text { font.pixelSize :textSize text:js.rawAxis4 } Text { font.pixelSize :textSize text:js.maxAxis4 } Text { font.pixelSize :textSize text:js.minAxis4 } Text { font.pixelSize :textSize text:js.calAxis4.toFixed(2) } BarGauge { width:100 height:20 val:js.calAxis4+1.0 max:2.0 horiz:true } CheckBox { checked:js.invertAxis4 onCheckedChanged:{js.invertAxis4=checked;} } Button{ width:200;height:ctrlSize text:js.mapAxis4==1?"Aileron":js.mapAxis4==2?"Elevator":js.mapAxis4==3?"Throtle":js.mapAxis4==4?"Rudder":"none" onClicked:js4map.open() } Text { font.pixelSize :textSize text:js.rawAxis5 } Text { font.pixelSize :textSize text:js.maxAxis5 } Text { font.pixelSize :textSize text:js.minAxis5 } Text { font.pixelSize :textSize text:js.calAxis5.toFixed(2) } BarGauge { width:100 height:20 val:js.calAxis5+1.0 max:2.0 horiz:true } CheckBox { checked:js.invertAxis5 onCheckedChanged:{js.invertAxis5=checked;} } Button{ width:200;height:ctrlSize text:js.mapAxis5==1?"Aileron":js.mapAxis5==2?"Elevator":js.mapAxis5==3?"Throtle":js.mapAxis5==4?"Rudder":"none" onClicked:js5map.open() } Text { font.pixelSize :textSize text:js.rawAxis6 } Text { font.pixelSize :textSize text:js.maxAxis6 } Text { font.pixelSize :textSize text:js.minAxis6 } Text { font.pixelSize :textSize text:js.calAxis6.toFixed(2) } BarGauge { width:100 height:20 val:js.calAxis6+1.0 max:2.0 horiz:true } CheckBox { checked:js.invertAxis6 onCheckedChanged:{js.invertAxis6=checked;} } Button{ width:200;height:ctrlSize text:js.mapAxis6==1?"Aileron":js.mapAxis6==2?"Elevator":js.mapAxis6==3?"Throtle":js.mapAxis6==4?"Rudder":"none" onClicked:js6map.open() } } } }