mirror of https://github.com/status-im/qzxing.git
186 lines
5.8 KiB
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|