qzxing/examples/QZXingDragNDropTest/qml/QZXingTestApp/main_QtQuick1.qml

186 lines
5.8 KiB
QML

// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
import DropArea 1.0
import QZXing 2.3
Rectangle {
width: 360
height: 360
Rectangle{
id:dropArea
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: parent.height-200
DropArea{
anchors.fill: parent
onFileDroped: decoder.decodeImageFromFile(url)
}
Text{
anchors.centerIn: parent
color: "gray"
opacity: 0.8
text: "Drag image to decode"
elide: Text.ElideMiddle
font.pixelSize: 30
}
Rectangle{
id: decSelector
width: parent.width -100
height: parent.height/2
clip:true
color: "#00ffffff"
anchors.horizontalCenter: parent.horizontalCenter
property bool isFolded: true
Rectangle{
id: label
color: "darkgray"
border.color: "black"
border.width: 1
radius: 5
width: decLabel.width + 20
height: decLabel.height + 10
anchors.left: parent.left
anchors.bottom: parent.bottom
anchors.margins: 2
Text{
id: decLabel
text: "Active Decoders"
anchors.centerIn: parent
}
MouseArea{
anchors.fill: parent
onClicked: decSelector.isFolded = !decSelector.isFolded
}
}
Rectangle{
color: "darkgray"
border.color: "black"
border.width: 1
radius: 5
clip:true
anchors.margins: 2
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: label.top
Flow{
id: flow
anchors.fill: parent
spacing: 10
anchors.margins: 5
property int hintSum: 0
move: Transition {
NumberAnimation {
properties: "x,y"
easing.type: Easing.OutCubic
}
}
ToggleButton{ text: "Aztec"; decoderHint: QZXing.DecoderFormat_Aztec}
ToggleButton{ text: "Codabar"; decoderHint: QZXing.DecoderFormat_CODABAR }
ToggleButton{ text: "Code_39"; decoderHint: QZXing.DecoderFormat_CODE_39 }
ToggleButton{ text: "Code_93"; decoderHint: QZXing.DecoderFormat_CODE_93 }
ToggleButton{ text: "Code_128"; decoderHint: QZXing.DecoderFormat_CODE_128 }
ToggleButton{ text: "Data Matrix"; decoderHint: QZXing.DecoderFormat_DATA_MATRIX }
ToggleButton{ text: "EAN_8"; decoderHint: QZXing.DecoderFormat_EAN_8 }
ToggleButton{ text: "EAN_13"; decoderHint: QZXing.DecoderFormat_EAN_13 }
ToggleButton{ text: "ITF"; decoderHint: QZXing.DecoderFormat_ITF }
ToggleButton{ text: "Maxicode"; decoderHint: QZXing.DecoderFormat_MAXICODE }
ToggleButton{ text: "PDF_417"; decoderHint: QZXing.DecoderFormat_PDF_417 }
ToggleButton{ text: "Qr Code"; decoderHint: QZXing.DecoderFormat_QR_CODE }
ToggleButton{ text: "RSS 14"; decoderHint: QZXing.DecoderFormat_RSS_14 }
ToggleButton{ text: "RSS expanded"; decoderHint: QZXing.DecoderFormat_RSS_EXPANDED }
ToggleButton{ text: "UPC A"; decoderHint: QZXing.DecoderFormat_UPC_A }
ToggleButton{ text: "UPC E"; decoderHint: QZXing.DecoderFormat_UPC_E }
ToggleButton{ text: "UPC EAN extension"; decoderHint: QZXing.DecoderFormat_UPC_EAN_EXTENSION }
function updateDecoderHints(hint)
{
//XOR operator to toggle the specific decoder
hintSum = hintSum ^ hint;
decoder.enabledDecoders = hintSum
}
}
}
states:[
State{
name: "folded"
when: decSelector.isFolded
PropertyChanges{target:decSelector; y: -decSelector.height+label.height}
},
State{
name: "unfolded"
when: !decSelector.isFolded
PropertyChanges{target:decSelector; y: 0}
}
]
Behavior on y {NumberAnimation{duration:250; easing.type: Easing.OutCubic}}
}
}
QZXing{
id: decoder
//enabledDecoders: QZXing.DecoderFormat_QR_CODE
onTagFound: {
log.add("Tag found: " +tag+ ", milliseconds: " + processingTime)
}
}
Rectangle{
id: logRect
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.top: dropArea.bottom
border.color: "gray"
border.width: 1
clip: true
Flickable{
anchors.fill: parent
contentHeight: log.height
contentWidth: log.width
flickableDirection: Flickable.VerticalFlick
TextEdit{
id: log
font.pointSize: 10
width: logRect.width
wrapMode: TextEdit.WordWrap
function add(message)
{
text = "=> " + message + "\n\n" + text;
}
}
}
}
}