Going to be so bold as to remove this, following posts on the mailing list, as it already also homed at https://projects.developer.nokia.com/QZXing/browser and may not be as maintained or relevant going forward

git-svn-id: https://zxing.googlecode.com/svn/trunk@2713 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
srowen@gmail.com 2013-05-06 20:54:32 +00:00
parent 2cdcc424b5
commit ff1ecd9700
451 changed files with 1 additions and 39735 deletions

View file

@ -306,6 +306,7 @@
2.2 (X May 2013)
- Retire Symbian port
- Improved PDF417 decoding, including macro PDF417
- Added Aztec and Data Matrix encoders
- Added RSS Expanded decoder

View file

@ -1,13 +0,0 @@
#ifndef QZXING_GLOBAL_H
#define QZXING_GLOBAL_H
#include <QtCore>
#include <qglobal.h>
#if defined(QZXING_LIBRARY)
# define QZXINGSHARED_EXPORT Q_DECL_EXPORT
#else
# define QZXINGSHARED_EXPORT Q_DECL_IMPORT
#endif
#endif //QZXING_GLOBAL_H

View file

@ -1,89 +0,0 @@
#ifndef QZXING_H
#define QZXING_H
#include "QZXing_global.h"
#include <QObject>
#include <QImage>
#if QT_VERSION >= 0x040700
#include <QtDeclarative>
#endif
/**
* A class containing a very very small subset of the ZXing library.
* Created for ease of use.
*
* Anyone interested in using more technical stuff
* from the ZXing library is welcomed to add/edit on free will.
*
* Regarding DecoderFormat, by default all of those are enabled (except DataMatrix will is still not supported)
*/
class QZXINGSHARED_EXPORT QZXing : public QObject{
Q_OBJECT
Q_ENUMS(DecoderFormat)
public:
enum DecoderFormat {
DecoderFormat_None = 0,
DecoderFormat_QR_CODE = 1,
DecoderFormat_DATA_MATRIX = 2,
DecoderFormat_UPC_E = 4,
DecoderFormat_UPC_A = 8,
DecoderFormat_EAN_8 = 16,
DecoderFormat_EAN_13 = 32,
DecoderFormat_CODE_128 = 64,
DecoderFormat_CODE_39 = 128,
DecoderFormat_ITF = 256,
DecoderFormat_Aztec = 512
} ;
typedef unsigned int DecoderFormatType;
public:
QZXing(QObject *parent = NULL);
/**
* Set the enabled decoders.
* As argument it is possible to pass conjuction of decoders by using logic OR.
* e.x. setDecoder ( DecoderFormat_QR_CODE | DecoderFormat_EAN_13 | DecoderFormat_CODE_39 )
*/
void setDecoder(DecoderFormatType hint);
#if QT_VERSION >= 0x040700
static void registerQMLTypes()
{
qmlRegisterType<QZXing>("QZXing", 1, 2, "QZXing");
}
#endif
public slots:
/**
* The decoding function. Will try to decode the given image based on the enabled decoders.
*
*/
QString decodeImage(QImage image);
/**
* The decoding function accessible from QML
*/
QString decodeImageQML(QObject *item);
/**
* The decoding function accessible from QML. Able to set the decoding
* of a portion of the image.
*/
QString decodeSubImageQML(QObject* item,
const double offsetX = 0 , const double offsetY = 0,
const double width = 0, const double height = 0);
signals:
void decodingStarted();
void decodingFinished(bool succeeded);
void tagFound(QString tag);
private:
void* decoder;
DecoderFormatType supportedFormats;
QObject* imageHandler;
};
#endif // QZXING_H

View file

@ -1,12 +0,0 @@
#ifndef QZXING_GLOBAL_H
#define QZXING_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(QZXING_LIBRARY)
# define QZXINGSHARED_EXPORT Q_DECL_EXPORT
#else
# define QZXINGSHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // QZXING_GLOBAL_H

View file

@ -1,74 +0,0 @@
#ifndef QZXING_H
#define QZXING_H
#include "QZXing_global.h"
#include <QObject>
#include <QImage>
#if QT_VERSION >= 0x040700
#include <QtDeclarative>
#endif
/**
* A class containing a very very small subset of the ZXing library.
* Created for ease of use.
*
* Anyone interested in using more technical stuff
* from the ZXing library is welcomed to add/edit on free will.
*
* Regarding DecoderFormat, by default all of those are enabled (except DataMatrix will is still not supported)
*/
class QZXINGSHARED_EXPORT QZXing : public QObject{
Q_OBJECT
Q_ENUMS(DecoderFormat)
public:
enum DecoderFormat {
DecoderFormat_None = 0,
DecoderFormat_QR_CODE = 1,
DecoderFormat_DATA_MATRIX = 2,
DecoderFormat_UPC_E = 4,
DecoderFormat_UPC_A = 8,
DecoderFormat_EAN_8 = 16,
DecoderFormat_EAN_13 = 32,
DecoderFormat_CODE_128 = 64,
DecoderFormat_CODE_39 = 128,
DecoderFormat_ITF = 256
} ;
typedef unsigned int DecoderFormatType;
public:
QZXing(QObject *parent = NULL);
/**
* Set the enabled decoders.
* As argument it is possible to pass conjuction of decoders by using logic OR.
* e.x. setDecoder ( DecoderFormat_QR_CODE | DecoderFormat_EAN_13 | DecoderFormat_CODE_39 )
*/
void setDecoder(DecoderFormatType hint);
#if QT_VERSION >= 0x040700
static void registerQMLTypes()
{
qmlRegisterType<QZXing>("QZXing", 1, 0, "QZXing");
}
#endif
public slots:
/**
* The decoding function. Will try to decode the given image based on the enabled decoders.
*
*/
QString decodeImage(QImage image);
signals:
void decodingStarted();
void decodingFinished(bool succeeded);
void tagFound(QString tag);
private:
void* decoder;
DecoderFormatType supportedFormats;
};
#endif // QZXING_H

View file

@ -1,89 +0,0 @@
#ifndef QZXING_H
#define QZXING_H
#include "QZXing_global.h"
#include <QObject>
#include <QImage>
#if QT_VERSION >= 0x040700
#include <QtDeclarative>
#endif
/**
* A class containing a very very small subset of the ZXing library.
* Created for ease of use.
*
* Anyone interested in using more technical stuff
* from the ZXing library is welcomed to add/edit on free will.
*
* Regarding DecoderFormat, by default all of those are enabled (except DataMatrix will is still not supported)
*/
class QZXINGSHARED_EXPORT QZXing : public QObject{
Q_OBJECT
Q_ENUMS(DecoderFormat)
public:
enum DecoderFormat {
DecoderFormat_None = 0,
DecoderFormat_QR_CODE = 1,
DecoderFormat_DATA_MATRIX = 2,
DecoderFormat_UPC_E = 4,
DecoderFormat_UPC_A = 8,
DecoderFormat_EAN_8 = 16,
DecoderFormat_EAN_13 = 32,
DecoderFormat_CODE_128 = 64,
DecoderFormat_CODE_39 = 128,
DecoderFormat_ITF = 256,
DecoderFormat_Aztec = 512
} ;
typedef unsigned int DecoderFormatType;
public:
QZXing(QObject *parent = NULL);
/**
* Set the enabled decoders.
* As argument it is possible to pass conjuction of decoders by using logic OR.
* e.x. setDecoder ( DecoderFormat_QR_CODE | DecoderFormat_EAN_13 | DecoderFormat_CODE_39 )
*/
void setDecoder(DecoderFormatType hint);
#if QT_VERSION >= 0x040700
static void registerQMLTypes()
{
qmlRegisterType<QZXing>("QZXing", 1, 2, "QZXing");
}
#endif
public slots:
/**
* The decoding function. Will try to decode the given image based on the enabled decoders.
*
*/
QString decodeImage(QImage image);
/**
* The decoding function accessible from QML
*/
QString decodeImageQML(QObject *item);
/**
* The decoding function accessible from QML. Able to set the decoding
* of a portion of the image.
*/
QString decodeSubImageQML(QObject* item,
const double offsetX = 0 , const double offsetY = 0,
const double width = 0, const double height = 0);
signals:
void decodingStarted();
void decodingFinished(bool succeeded);
void tagFound(QString tag);
private:
void* decoder;
DecoderFormatType supportedFormats;
QObject* imageHandler;
};
#endif // QZXING_H

View file

@ -1,12 +0,0 @@
#ifndef QZXING_GLOBAL_H
#define QZXING_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(QZXING_LIBRARY)
# define QZXINGSHARED_EXPORT Q_DECL_EXPORT
#else
# define QZXINGSHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // QZXING_GLOBAL_H

View file

@ -1,89 +0,0 @@
#ifndef QZXING_H
#define QZXING_H
#include "QZXing_global.h"
#include <QObject>
#include <QImage>
#if QT_VERSION >= 0x040700
#include <QtDeclarative>
#endif
/**
* A class containing a very very small subset of the ZXing library.
* Created for ease of use.
*
* Anyone interested in using more technical stuff
* from the ZXing library is welcomed to add/edit on free will.
*
* Regarding DecoderFormat, by default all of those are enabled (except DataMatrix will is still not supported)
*/
class QZXINGSHARED_EXPORT QZXing : public QObject{
Q_OBJECT
Q_ENUMS(DecoderFormat)
public:
enum DecoderFormat {
DecoderFormat_None = 0,
DecoderFormat_QR_CODE = 1,
DecoderFormat_DATA_MATRIX = 2,
DecoderFormat_UPC_E = 4,
DecoderFormat_UPC_A = 8,
DecoderFormat_EAN_8 = 16,
DecoderFormat_EAN_13 = 32,
DecoderFormat_CODE_128 = 64,
DecoderFormat_CODE_39 = 128,
DecoderFormat_ITF = 256,
DecoderFormat_Aztec = 512
} ;
typedef unsigned int DecoderFormatType;
public:
QZXing(QObject *parent = NULL);
/**
* Set the enabled decoders.
* As argument it is possible to pass conjuction of decoders by using logic OR.
* e.x. setDecoder ( DecoderFormat_QR_CODE | DecoderFormat_EAN_13 | DecoderFormat_CODE_39 )
*/
void setDecoder(DecoderFormatType hint);
#if QT_VERSION >= 0x040700
static void registerQMLTypes()
{
qmlRegisterType<QZXing>("QZXing", 1, 2, "QZXing");
}
#endif
public slots:
/**
* The decoding function. Will try to decode the given image based on the enabled decoders.
*
*/
QString decodeImage(QImage image);
/**
* The decoding function accessible from QML
*/
QString decodeImageQML(QObject *item);
/**
* The decoding function accessible from QML. Able to set the decoding
* of a portion of the image.
*/
QString decodeSubImageQML(QObject* item,
const double offsetX = 0 , const double offsetY = 0,
const double width = 0, const double height = 0);
signals:
void decodingStarted();
void decodingFinished(bool succeeded);
void tagFound(QString tag);
private:
void* decoder;
DecoderFormatType supportedFormats;
QObject* imageHandler;
};
#endif // QZXING_H

View file

@ -1,12 +0,0 @@
#ifndef QZXING_GLOBAL_H
#define QZXING_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(QZXING_LIBRARY)
# define QZXINGSHARED_EXPORT Q_DECL_EXPORT
#else
# define QZXINGSHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // QZXING_GLOBAL_H

View file

@ -1,71 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
import Qt 4.7
Item {
id: button
signal clicked
property string text
property color color: "white"
width : 144
height: 70
BorderImage {
id: buttonImage
source: "images/toolbutton.sci"
width: button.width; height: button.height
}
MouseArea {
id: mouseRegion
anchors.fill: buttonImage
onClicked: { button.clicked(); }
}
Text {
id: btnText
color: button.color
anchors.centerIn: buttonImage; font.bold: true
text: button.text; style: Text.Raised; styleColor: "black"
font.pixelSize: 14
}
}

View file

@ -1,107 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
import Qt 4.7
import QtMultimediaKit 1.1
Item {
id: propertyButton
property alias value : popup.currentValue
property alias model : popup.model
width : 144
height: 70
BorderImage {
id: buttonImage
source: "images/toolbutton.sci"
width: propertyButton.width; height: propertyButton.height
}
CameraButton {
anchors.fill: parent
Image {
anchors.centerIn: parent
source: popup.currentItem.icon
}
onClicked: popup.toggle()
}
CameraPropertyPopup {
id: popup
anchors.right: parent.left
anchors.rightMargin: 16
anchors.top: parent.top
state: "invisible"
visible: opacity > 0
currentValue: propertyButton.value
states: [
State {
name: "invisible"
PropertyChanges { target: popup; opacity: 0 }
PropertyChanges { target: camera; focus: true }
},
State {
name: "visible"
PropertyChanges { target: popup; opacity: 1.0 }
}
]
transitions: Transition {
NumberAnimation { properties: "opacity"; duration: 100 }
}
function toggle() {
if (state == "visible")
state = "invisible";
else
state = "visible";
}
onSelected: {
popup.state = "invisible"
}
}
}

View file

@ -1,122 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
import Qt 4.7
Rectangle {
id: propertyPopup
property alias model : view.model
property variant currentValue
property variant currentItem : model.get(view.currentIndex)
property int itemWidth : 100
property int itemHeight : 70
property int columns : 2
width: columns*itemWidth + view.anchors.margins*2
height: Math.ceil(model.count/columns)*itemHeight + view.anchors.margins*2 + 25
radius: 5
border.color: "#000000"
border.width: 2
smooth: true
color: "#5e5e5e"
signal selected
function indexForValue(value) {
for (var i = 0; i < view.count; i++) {
if (model.get(i).value == value) {
return i;
}
}
return 0;
}
GridView {
id: view
anchors.fill: parent
anchors.margins: 5
cellWidth: propertyPopup.itemWidth
cellHeight: propertyPopup.itemHeight
snapMode: ListView.SnapOneItem
highlightFollowsCurrentItem: true
highlight: Rectangle { color: "gray"; radius: 5 }
currentIndex: indexForValue(propertyPopup.currentValue)
onCurrentIndexChanged: {
propertyPopup.currentValue = model.get(view.currentIndex).value
}
delegate: Item {
width: propertyPopup.itemWidth
height: 70
Image {
anchors.centerIn: parent
source: icon
}
MouseArea {
anchors.fill: parent
onClicked: {
propertyPopup.currentValue = value
propertyPopup.selected(value)
}
}
}
}
Text {
anchors.bottom: parent.bottom
anchors.bottomMargin: 8
anchors.left: parent.left
anchors.leftMargin: 16
color: "#ffffff"
font.bold: true
style: Text.Raised;
styleColor: "black"
font.pixelSize: 14
text: view.model.get(view.currentIndex).text
}
}

View file

@ -1,237 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
import Qt 4.7
import QtMultimediaKit 1.1
FocusScope {
property Camera camera
property bool previewAvailable : false
property alias whiteBalance : wbModesButton.value
property alias flashMode : flashModesButton.value
//property alias exposureCompensation : exposureCompensationButton.value
property int buttonsPanelWidth: buttonPaneShadow.width
signal previewSelected
id : captureControls
Rectangle {
id: buttonPaneShadow
width: buttonPanningPane.width + 16
height: parent.height
anchors.top: parent.top
anchors.right: parent.right
color: Qt.rgba(0.08, 0.08, 0.08, 1)
Flickable {
id: buttonPanningPane
anchors {
right: parent.right
top: parent.top
bottom: parent.bottom
margins: 8
}
width: buttonsColumn.width
contentWidth: buttonsColumn.width
contentHeight: buttonsColumn.height
Column {
id: buttonsColumn
spacing: 8
FocusButton {
camera: captureControls.camera
}
CameraButton {
text: "Decode"
onClicked: camera.captureImage()
}
CameraPropertyButton {
id : flashModesButton
value: Camera.FlashOff
model: ListModel {
ListElement {
icon: "images/camera_flash_auto.png"
value: Camera.FlashAuto
text: "Auto"
}
ListElement {
icon: "images/camera_flash_off.png"
value: Camera.FlashOff
text: "Off"
}
ListElement {
icon: "images/camera_flash_fill.png"
value: Camera.FlashOn
text: "On"
}
ListElement {
icon: "images/camera_flash_redeye.png"
value: Camera.FlashRedEyeReduction
text: "Red Eye Reduction"
}
}
}
CameraPropertyButton {
id : wbModesButton
value: Camera.WhiteBalanceAuto
model: ListModel {
ListElement {
icon: "images/camera_auto_mode.png"
value: Camera.WhiteBalanceAuto
text: "Auto"
}
ListElement {
icon: "images/camera_white_balance_sunny.png"
value: Camera.WhiteBalanceSunlight
text: "Sunlight"
}
ListElement {
icon: "images/camera_white_balance_cloudy.png"
value: Camera.WhiteBalanceCloudy
text: "Cloudy"
}
ListElement {
icon: "images/camera_white_balance_incandescent.png"
value: Camera.WhiteBalanceIncandescent
text: "Incandescent"
}
ListElement {
icon: "images/camera_white_balance_flourescent.png"
value: Camera.WhiteBalanceFluorescent
text: "Fluorescent"
}
}
}
// ExposureCompensationButton {
// id : exposureCompensationButton
// }
CameraButton {
text: "View"
onClicked: captureControls.previewSelected()
visible: captureControls.previewAvailable
}
CameraButton {
id: quitButton
text: "Quit"
onClicked: Qt.quit()
}
}
}
}
Item {
id: exposureDetails
anchors.bottom : parent.bottom
anchors.left : parent.left
anchors.bottomMargin: 16
anchors.leftMargin: 16
height: childrenRect.height
width: childrenRect.width
visible : camera.lockStatus == Camera.Locked
Rectangle {
opacity: 0.4
color: "black"
anchors.fill: parent
}
Row {
spacing : 16
Text {
text: "Av: "+camera.aperture.toFixed(1)
font.pixelSize: 18
color: "white"
visible: camera.aperture > 0
}
Text {
font.pixelSize: 18
color: "white"
visible: camera.shutterSpped > 0
text: "Tv: "+printableExposureTime(camera.shutterSpeed)
function printableExposureTime(t) {
if (t > 3.9)
return "Tv: "+t.toFixed() + "\"";
if (t > 0.24 )
return "Tv: "+t.toFixed(1) + "\"";
if (t > 0)
return "Tv: 1/"+(1/t).toFixed();
return "";
}
}
Text {
text: "ISO: "+camera.iso.toFixed()
font.pixelSize: 18
color: "white"
visible: camera.iso > 0
}
}
}
ZoomControl {
x : 0
y : 0
width : 100
height: parent.height
currentZoom: camera.digitalZoom
maximumZoom: Math.min(4.0, camera.maximumDigitalZoom)
onZoomTo: camera.setDigitalZoom(value)
}
}

View file

@ -1,85 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
import Qt 4.7
Item {
id: exposureCompensation
property real value : flickableList.items[flickableList.index]
signal clicked
width : 144
height: 70
BorderImage {
id: buttonImage
source: "images/toolbutton.sci"
width: exposureCompensation.width; height: exposureCompensation.height
}
Text {
text: "Ev:"
x: 8
y: 8
font.pixelSize: 18
color: "white"
}
FlickableList {
anchors.fill: buttonImage
id: flickableList
items: ["-2", "-1.5", "-1", "-0.5", "0", "+0.5", "+1", "+1.5", "+2"]
index: 4
onClicked: exposureCompensation.clicked()
delegate: Text {
font.pixelSize: 22
color: "white"
styleColor: "black"
width: flickableList.width
height: flickableList.height
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: flickableList.items[index]
}
}
}

View file

@ -1,128 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
import Qt 4.7
Item {
id: flickableList
clip: true
signal clicked
property alias delegate : repeater.delegate
property variant items: []
property int index: 0
property int itemWidth : flickableList.width
function scrollTo(id) {
var x = id*flickableList.itemWidth
if (flickArea.contentX != x) {
centeringAnimation.stop();
flickArea.newX = id*flickableList.itemWidth
centeringAnimation.start();
}
}
onIndexChanged: scrollTo(index)
onWidthChanged: scrollTo(index)
Flickable {
id: flickArea
property int newX: 0
MouseArea {
anchors.fill: parent
onClicked: {
var x = mapToItem(flickableList, mouseX, mouseY).x
if (x < flickableList.width/3) {
if (flickableList.index > 0)
flickableList.scrollTo(flickableList.index-1);
} else if (x > flickableList.width*2/3) {
if (flickableList.index < flickableList.items.length-1)
flickableList.scrollTo(flickableList.index+1);
} else {
flickableList.clicked()
}
}
}
PropertyAnimation {
id: centeringAnimation
target: flickArea
properties: "contentX"
easing.type: Easing.OutQuad
from: flickArea.contentX
to: flickArea.newX
onCompleted: {
flickableList.index = flickArea.newX / flickableList.itemWidth
}
}
onMovementStarted: {
centeringAnimation.stop();
}
onMovementEnded: {
var modulo = flickArea.contentX % flickableList.itemWidth;
var offset = flickableList.itemWidth / 2;
flickArea.newX = modulo < offset ? flickArea.contentX - modulo : flickArea.contentX + (flickableList.itemWidth - modulo);
centeringAnimation.start();
}
width: flickableList.width
height: flickableList.height
contentWidth: items.width
contentHeight: items.height
flickDeceleration: 4000
Row {
id: items
Repeater {
id: repeater
model: flickableList.items.length
}
}
}
}

View file

@ -1,62 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
import Qt 4.7
import QtMultimediaKit 1.1
CameraButton {
property Camera camera
onClicked: {
if (camera.lockStatus == Camera.Unlocked)
camera.searchAndLock();
else
camera.unlock();
}
text: {
if (camera.lockStatus == Camera.Unlocked)
"Focus";
else if (camera.lockStatus == Camera.Searching)
"Focusing"
else
"Unlock"
}
}

View file

@ -1,23 +0,0 @@
import QtQuick 1.1
import com.nokia.symbian 1.1
CommonDialog {
id: dialog
titleText: "Decoded message"
//titleIcon: "images/QrButton_toolbar.svg"
buttonTexts: ["OK"]
property alias text: messageLabel.text
content: Rectangle {
height: messageLabel.height
width: messageLabel.width
color: "#ff000000"
anchors.horizontalCenter: parent.horizontalCenter
Text{
id: messageLabel
color: "white"
}
}
}

View file

@ -1,62 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
import Qt 4.7
import QtMultimediaKit 1.1
Item {
property alias source : preview.source
signal closed
Image {
id: preview
anchors.fill : parent
fillMode: Image.PreserveAspectFit
smooth: true
}
MouseArea {
anchors.fill: parent
onClicked: {
parent.closed();
}
}
}

View file

@ -1,38 +0,0 @@
TEMPLATE=app
VERSION = 1.1.0
QT += declarative network
!maemo5 {
contains(QT_CONFIG, opengl) {
# QT += opengl
}
}
win32 {
#required by Qt SDK to resolve Mobility libraries
CONFIG+=mobility
MOBILITY+=multimedia
}
SOURCES += $$PWD/qmlcamera.cpp
!mac:TARGET = QMLBarcodeReader
else:TARGET = QMLBarcodeReader
RESOURCES += declarative-camera.qrc
symbian {
TARGET.CAPABILITY = UserEnvironment NetworkServices Location ReadUserData WriteUserData
TARGET.EPOCHEAPSIZE = 0x20000 0x3000000
LIBS += -lqzxing
customrules.pkg_prerules = \
";QZXing" \
"@\"$$(EPOCROOT)Epoc32/InstallToDevice/QZXing_selfsigned.sis\",(0xE618743C)"\
" "
DEPLOYMENT += customrules
}
ICON = QMLBarcodeReader.svg

View file

@ -1,22 +0,0 @@
// ============================================================================
// * Generated by qmake (2.01a) (Qt 4.7.4) on: 2012-05-19T19:03:01
// * This file is generated by qmake and should not be modified by the
// * user.
// ============================================================================
CHARACTER_SET UTF8
#include <appinfo.rh>
#include "QMLBarcodeReader.loc"
RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
{
short_caption = STRING_r_short_caption;
caption_and_icon =
CAPTION_AND_ICON_INFO
{
caption = STRING_r_caption;
number_of_icons = 0;
icon_file = "\\resource\\apps\\QMLBarcodeReader.mif";
};
}

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 38 KiB

View file

@ -1,118 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
import Qt 4.7
import QtMultimediaKit 1.1
Item {
id : zoomControl
property real currentZoom : 1
property real maximumZoom : 1
signal zoomTo(real value)
MouseArea {
id : mouseArea
anchors.fill: parent
property real initialZoom : 0
property real initialPos : 0
onPressed: {
initialPos = mouseY
initialZoom = zoomControl.currentZoom
}
onMousePositionChanged: {
if (pressed) {
var target = initialZoom * Math.pow(2, (initialPos-mouseY)/zoomControl.height);
target = Math.max(1, Math.min(target, zoomControl.maximumZoom))
zoomControl.zoomTo(target)
}
}
}
Item {
id : bar
x : 16
y : parent.height/4
width : 24
height : parent.height/2
opacity : 0
Rectangle {
anchors.fill: parent
smooth: true
radius: 8
border.color: "black"
border.width: 2
color: "white"
opacity: 0.3
}
Rectangle {
x : 0
y : parent.height * (1.0 - (zoomControl.currentZoom-1.0) / (zoomControl.maximumZoom-1.0))
width: parent.width
height: parent.height - y
smooth: true
radius: 8
color: "black"
opacity: 0.5
}
states: State {
name: "ShowBar"
when: mouseArea.pressed || zoomControl.currentZoom > 1.0
PropertyChanges { target: bar; opacity: 1 }
}
transitions: [
Transition {
to : "ShowBar"
NumberAnimation { properties: "opacity"; duration: 100 }
},
Transition {
from : "ShowBar"
NumberAnimation { properties: "opacity"; duration: 500 }
}
]
}
}

View file

@ -1,90 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
import Qt 4.7
import QtMultimediaKit 1.1
import QZXing 1.2
Rectangle {
id : cameraUI
color: "black"
Camera {
id: camera
x: 0
y: 0
width: parent.width - stillControls.buttonsPanelWidth
height: parent.height
focus: visible //to receive focus and capture key events
captureResolution : "640x480"
flashMode: stillControls.flashMode
whiteBalanceMode: stillControls.whiteBalance
// exposureCompensation: stillControls.exposureCompensation
onImageCaptured : {
imageToDecode.source = preview
decoder.decodeImageQML(imageToDecode);
}
}
Image{
id: imageToDecode
visible: false
}
CaptureControls {
id: stillControls
anchors.fill: parent
camera: camera
}
MessageDialog{
id:dialog
}
QZXing{
id: decoder
onTagFound: {
dialog.text = tag
dialog.open();
}
}
}

View file

@ -1,18 +0,0 @@
/* File generated by QtCreator */
import QmlProject 1.0
Project {
/* Include .qml, .js, and image files from current directory and subdirectories */
QmlFiles {
directory: "."
}
JavaScriptFiles {
directory: "."
}
ImageFiles {
directory: "."
}
/* List of plugin directories passed to QML runtime */
// importPaths: [ "../exampleplugin" ]
}

View file

@ -1,27 +0,0 @@
<RCC>
<qresource prefix="/">
<file>declarative-camera.qml</file>
<file>CameraButton.qml</file>
<file>CameraPropertyPopup.qml</file>
<file>CameraPropertyButton.qml</file>
<file>CaptureControls.qml</file>
<file>ExposureCompensationButton.qml</file>
<file>FlickableList.qml</file>
<file>FocusButton.qml</file>
<file>PhotoPreview.qml</file>
<file>ZoomControl.qml</file>
<file>images/camera_auto_mode.png</file>
<file>images/camera_camera_setting.png</file>
<file>images/camera_flash_auto.png</file>
<file>images/camera_flash_fill.png</file>
<file>images/camera_flash_off.png</file>
<file>images/camera_flash_redeye.png</file>
<file>images/camera_white_balance_cloudy.png</file>
<file>images/camera_white_balance_flourescent.png</file>
<file>images/camera_white_balance_incandescent.png</file>
<file>images/camera_white_balance_sunny.png</file>
<file>images/toolbutton.png</file>
<file>images/toolbutton.sci</file>
<file>MessageDialog.qml</file>
</qresource>
</RCC>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 778 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 717 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 717 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 945 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -1,5 +0,0 @@
border.left: 15
border.top: 4
border.bottom: 4
border.right: 15
source: toolbutton.png

View file

@ -1,92 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QtGui/QApplication>
#include <QtGui/QDesktopWidget>
#include <QtDeclarative/QDeclarativeView>
#include <QtDeclarative/QDeclarativeEngine>
#include <QZXing.h>
#if !defined(QT_NO_OPENGL)
#include <QtOpenGL/QGLWidget>
#endif
int main(int argc, char *argv[])
{
QZXing::registerQMLTypes();
#if defined (Q_WS_X11) || defined (Q_WS_MAC) || defined (Q_OS_SYMBIAN)
//### default to using raster graphics backend for now
bool gsSpecified = false;
for (int i = 0; i < argc; ++i) {
QString arg = argv[i];
if (arg == "-graphicssystem") {
gsSpecified = true;
break;
}
}
if (!gsSpecified)
QApplication::setGraphicsSystem("raster");
#endif
QApplication application(argc, argv);
const QString mainQmlApp = QLatin1String("qrc:/declarative-camera.qml");
QDeclarativeView view;
#if !defined(QT_NO_OPENGL) && !defined(Q_WS_MAEMO_5) && !defined(Q_WS_S60)
view.setViewport(new QGLWidget);
#endif
view.setSource(QUrl(mainQmlApp));
view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
// Qt.quit() called in embedded .qml by default only emits
// quit() signal, so do this (optionally use Qt.exit()).
QObject::connect(view.engine(), SIGNAL(quit()), qApp, SLOT(quit()));
#if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
view.setGeometry(application.desktop()->screenGeometry());
view.showFullScreen();
#else
view.setGeometry(QRect(100, 100, 800, 480));
view.show();
#endif
return application.exec();
}

View file

@ -1,14 +0,0 @@
moc/
obj/
rcc/
tmp/
ui/
.make.cache
*.BAT
*.inf
Makefile
*.mk
*.loc
*.user
*.mmp
*.pkg

View file

@ -1,128 +0,0 @@
#include "CameraImageWrapper.h"
#include <QColor>
#include <QApplication>
#include <QDesktopWidget>
CameraImageWrapper::CameraImageWrapper() : LuminanceSource()
{
}
CameraImageWrapper::CameraImageWrapper(CameraImageWrapper& otherInstance) : LuminanceSource()
{
image = otherInstance.getOriginalImage().copy();
}
CameraImageWrapper::~CameraImageWrapper()
{
}
int CameraImageWrapper::getWidth() const
{
return image.width();
}
int CameraImageWrapper::getHeight() const
{
return image.height();
}
unsigned char CameraImageWrapper::getPixel(int x, int y) const
{
QRgb pixel = image.pixel(x,y);
return qGray(pixel);//((qRed(pixel) + qGreen(pixel) + qBlue(pixel)) / 3);
}
unsigned char* CameraImageWrapper::copyMatrix() const
{
unsigned char* newMatrix = (unsigned char*)malloc(image.width()*image.height()*sizeof(unsigned char));
int cnt = 0;
for(int i=0; i<image.width(); i++)
{
for(int j=0; j<image.height(); j++)
{
newMatrix[cnt++] = getPixel(i,j);
}
}
return newMatrix;
}
void CameraImageWrapper::setImage(QString fileName)
{
image.load(fileName);
if(image.width() > QApplication::desktop()->width())
image = image.scaled(QApplication::desktop()->width(), image.height(), Qt::IgnoreAspectRatio);
if(image.height() > QApplication::desktop()->height())
image = image.scaled(image.width(), QApplication::desktop()->height(), Qt::IgnoreAspectRatio);
}
void CameraImageWrapper::setImage(QImage newImage)
{
image = newImage.copy();
if(image.width() > 640)
image = image.scaled(640, image.height(), Qt::KeepAspectRatio);
}
QImage CameraImageWrapper::grayScaleImage(QImage::Format f)
{
QImage tmp(image.width(), image.height(), f);
for(int i=0; i<image.width(); i++)
{
for(int j=0; j<image.height(); j++)
{
int pix = (int)getPixel(i,j);
tmp.setPixel(i,j, qRgb(pix ,pix,pix));
}
}
return tmp;
//return image.convertToFormat(f);
}
QImage CameraImageWrapper::getOriginalImage()
{
return image;
}
unsigned char* CameraImageWrapper::getRow(int y, unsigned char* row)
{
int width = getWidth();
if (row == NULL)
{
row = new unsigned char[width];
pRow = row;
}
for (int x = 0; x < width; x++)
row[x] = getPixel(x,y);
return row;
}
unsigned char* CameraImageWrapper::getMatrix()
{
int width = getWidth();
int height = getHeight();
unsigned char* matrix = new unsigned char[width*height];
unsigned char* m = matrix;
for(int y=0; y<height; y++)
{
unsigned char* tmpRow;
memcpy(m, tmpRow = getRow(y, NULL), width);
m += width * sizeof(unsigned char);
delete tmpRow;
}
pMatrix = matrix;
return matrix;
}

View file

@ -1,40 +0,0 @@
#ifndef CAMERAIMAGE_H
#define CAMERAIMAGE_H
#include <QImage>
#include <QString>
#include <zxing/LuminanceSource.h>
using namespace zxing;
class CameraImageWrapper : public LuminanceSource
{
public:
CameraImageWrapper();
CameraImageWrapper(QImage& image);
CameraImageWrapper(CameraImageWrapper& otherInstance);
~CameraImageWrapper();
int getWidth() const;
int getHeight() const;
unsigned char getPixel(int x, int y) const;
unsigned char* copyMatrix() const;
void setImage(QString fileName);
void setImage(QImage newImage);
QImage grayScaleImage(QImage::Format f);
QImage getOriginalImage();
// Callers take ownership of the returned memory and must call delete [] on it themselves.
unsigned char* getRow(int y, unsigned char* row);
unsigned char* getMatrix();
private:
QImage image;
unsigned char* pRow;
unsigned char* pMatrix;
};
#endif //CAMERAIMAGE_H

View file

@ -1,103 +0,0 @@
#include "myvideosurface.h"
MyVideoSurface::MyVideoSurface(QWidget* widget, VideoIF* target, QObject* parent)
: QAbstractVideoSurface(parent)
{
m_targetWidget = widget;
m_target = target;
m_imageFormat = QImage::Format_Invalid;
// timer = new QTimer(this);
// connect(timer, SIGNAL(timeout()), this, SLOT(sendImageToDecode()));
// timer->start(500);
}
MyVideoSurface::~MyVideoSurface()
{
}
bool MyVideoSurface::start(const QVideoSurfaceFormat &format)
{
m_videoFormat = format;
const QImage::Format imageFormat = QVideoFrame::imageFormatFromPixelFormat(format.pixelFormat());
const QSize size = format.frameSize();
if (imageFormat != QImage::Format_Invalid && !size.isEmpty()) {
m_imageFormat = imageFormat;
QAbstractVideoSurface::start(format);
return true;
} else {
return false;
}
}
bool MyVideoSurface::present(const QVideoFrame &frame)
{
m_frame = frame;
if (surfaceFormat().pixelFormat() != m_frame.pixelFormat() ||
surfaceFormat().frameSize() != m_frame.size()) {
stop();
return false;
} else {
m_target->updateVideo();
return true;
}
}
void MyVideoSurface::paint(QPainter *painter)
{
if (m_frame.map(QAbstractVideoBuffer::ReadOnly)) {
QImage image(
m_frame.bits(),
m_frame.width(),
m_frame.height(),
m_frame.bytesPerLine(),
m_imageFormat);
QRect r = m_targetWidget->rect();
QPoint centerPic((qAbs(r.size().width() - image.size().width())) / 2, (qAbs(
r.size().height() - image.size().height())) / 2);
if (!image.isNull()) {
painter->drawImage(centerPic,image);
}
m_frame.unmap();
}
}
QList<QVideoFrame::PixelFormat> MyVideoSurface::supportedPixelFormats(
QAbstractVideoBuffer::HandleType handleType) const
{
if (handleType == QAbstractVideoBuffer::NoHandle) {
return QList<QVideoFrame::PixelFormat>()
<< QVideoFrame::Format_UYVY
<< QVideoFrame::Format_RGB32
<< QVideoFrame::Format_ARGB32
<< QVideoFrame::Format_ARGB32_Premultiplied
<< QVideoFrame::Format_RGB565
<< QVideoFrame::Format_RGB555;
} else {
return QList<QVideoFrame::PixelFormat>();
}
}
// disabled it: 1.2.1
void MyVideoSurface::sendImageToDecode()
{
if (m_frame.map(QAbstractVideoBuffer::ReadOnly)) {
QImage image(
m_frame.bits(),
m_frame.width(),
m_frame.height(),
m_frame.bytesPerLine(),
m_imageFormat);
if (!image.isNull())
emit imageCaptured(image);
m_frame.unmap();
}
}

View file

@ -1,39 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the demonstration applications of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/

View file

@ -1,454 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the demonstration applications of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
#include "QCameraControllerWidget.h"
//#include <QDebug>
#include <QCameraFlashControl>
/*****************************************************************************
* QCameraControllerWidget
*/
QCameraControllerWidget::QCameraControllerWidget(QWidget *parent) :
QWidget(parent)
{
setWindowTitle("QCameraControllerWidget");
// Opitimizations for screen update and drawing qwidget
setAutoFillBackground(false);
// Prevent to screensaver to activate
// m_systemScreenSaver = new QSystemScreenSaver(this);
// m_systemScreenSaver->setScreenSaverInhibit();
m_myVideoSurface = 0;
pictureCaptured = false;
showViewFinder = false;
m_focusing = false;
// Black background
QPalette palette = this->palette();
palette.setColor(QPalette::Background, Qt::black);
setPalette(palette);
// Main widget & layout
// QWidget* mainWidget = new QWidget(this);
setPalette(palette);
QHBoxLayout* hboxl = new QHBoxLayout;
hboxl->setSpacing(0);
hboxl->setMargin(0);
// UI stack
m_stackedWidget = new QStackedWidget();
m_stackedWidget->setPalette(palette);
// First widget to stack
m_videoWidget = new QWidget();
m_videoWidget->setPalette(palette);
m_stackedWidget->addWidget(m_videoWidget);
// Second widget to stack
QWidget* secondWidget = new QWidget(this);
secondWidget->setPalette(palette);
m_stackedWidget->addWidget(secondWidget);
m_stackedWidget->setCurrentIndex(0);
// Buttons
QSize iconSize(80, 80);
QVBoxLayout* vboxl = new QVBoxLayout;
vboxl->setSpacing(0);
vboxl->setMargin(0);
zoomIn = new Button(this);
QObject::connect(zoomIn, SIGNAL(pressed()), this, SLOT(onZoomIn()));
QPixmap p = QPixmap(":/icons/zoomIn");
zoomIn->setPixmap(p.scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation));
vboxl->addWidget(zoomIn);
vboxl->setAlignment(zoomIn,Qt::AlignTop | Qt::AlignHCenter);
captButton = new Button(this);
QObject::connect(captButton, SIGNAL(pressed()), this, SLOT(searchAndLock()));
p = QPixmap(":/icons/camera");
captButton->setPixmap(p.scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation));
vboxl->addWidget(captButton);
vboxl->setAlignment(captButton, Qt::AlignHCenter);
zoomOut = new Button(this);
QObject::connect(zoomOut, SIGNAL(pressed()), this, SLOT(onZoomOut()));
p = QPixmap(":/icons/zoomOut");
zoomOut->setPixmap(p.scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation));
vboxl->addWidget(zoomOut);
vboxl->setAlignment(zoomOut, Qt::AlignBottom | Qt::AlignHCenter);
//hboxl->addLayout(vboxl);
hboxl->addWidget(m_stackedWidget);
hboxl->addLayout(vboxl);
setLayout(hboxl);
fileWatcher = new QFileSystemWatcher();
fileWatcher->addPath(QDesktopServices::storageLocation(QDesktopServices::PicturesLocation));
connect(fileWatcher, SIGNAL( directoryChanged (const QString &)), this, SLOT(deleteImage(const QString &)));
imageFolder = QDir(QDesktopServices::storageLocation(QDesktopServices::PicturesLocation));
QStringList filters;
filters << "camera*";
imageFolder.setNameFilters(filters);
// Enable camera after 1s, so that the application is started
// and widget is created to landscape orientation
QTimer::singleShot(1000,this,SLOT(enableCamera()));
}
QCameraControllerWidget::~QCameraControllerWidget()
{
if (m_myVideoSurface)
m_myVideoSurface->stop();
m_camera->stop();
delete m_stackedWidget;
delete m_stillImageCapture;
delete m_camera;
delete fileWatcher;
}
void QCameraControllerWidget::enableCamera()
{
//QVideoFrame::Format_UYVY;
m_camera = new QCamera();
m_camera->setCaptureMode(QCamera::CaptureStillImage);
connect(m_camera, SIGNAL(error(QCamera::Error)), this, SLOT(error(QCamera::Error)));
connect(m_camera, SIGNAL(lockStatusChanged(QCamera::LockStatus,QCamera::LockChangeReason)), this, SLOT(lockStatusChanged(QCamera::LockStatus,QCamera::LockChangeReason)));
connect(m_camera, SIGNAL(stateChanged( QCamera::State) ), this, SLOT(onStateChanged(QCamera::State)));
// Own video output drawing that shows camera view finder pictures
//! [0]
QMediaService* ms = m_camera->service();
QVideoRendererControl* vrc = ms->requestControl<QVideoRendererControl*>();
m_myVideoSurface = new MyVideoSurface(this,this,this);
vrc->setSurface(m_myVideoSurface);
connect(m_myVideoSurface, SIGNAL(imageCaptured(QImage)), this, SLOT(redirectImageSignalFromVideoFinder(QImage)));
//! [0]
// Image capturer
m_stillImageCapture = new QCameraImageCapture(m_camera);
connect(m_stillImageCapture, SIGNAL(imageCaptured(int,QImage)), this, SLOT(onImageCaptured(int,QImage)));
// Start camera
if (m_camera->state() == QCamera::ActiveState) {
m_camera->stop();
}
m_videoWidget->show();
m_camera->start();
showViewFinder = true;
cameraFocus = m_camera->focus();
}
void QCameraControllerWidget::mousePressEvent(QMouseEvent *event)
{
QWidget::mousePressEvent(event);
if (pictureCaptured) {
// Starting view finder
pictureCaptured = false;
m_stackedWidget->setCurrentIndex(0);
if (m_myVideoSurface) {
showViewFinder = true;
}
}
}
void QCameraControllerWidget::searchAndLock()
{
m_focusing = false;
m_focusMessage.clear();
if (pictureCaptured) {
// Starting view finder again
pictureCaptured = false;
m_stackedWidget->setCurrentIndex(0);
if (m_myVideoSurface) {
showViewFinder = true;
}
}
else {
// Search and lock picture (=focus)
if (m_camera->supportedLocks() & QCamera::LockFocus) {
m_focusing = true;
m_focusMessage = "Focusing...";
m_camera->searchAndLock(QCamera::LockFocus);
} else {
// No focus functionality, take picture right away
captureImage();
}
}
}
void QCameraControllerWidget::lockStatusChanged(QCamera::LockStatus status, QCamera::LockChangeReason reason)
{
if (status == QCamera::Locked) {
if (reason == QCamera::LockAcquired) {
// Focus locked
m_focusMessage.clear();
m_focusing = false;
// Capture new image
captureImage();
// Unlock camera
m_camera->unlock();
} else {
if (m_focusing)
m_focusMessage = "No focus, try again";
}
} else if (status == QCamera::Unlocked && m_focusing) {
m_focusMessage = "No focus, try again";
}
}
void QCameraControllerWidget::captureImage()
{
if (pictureCaptured) {
// Starting view finder again
pictureCaptured = false;
m_stackedWidget->setCurrentIndex(0);
showViewFinder = true;
}
else {
// Capturing image
showViewFinder = false;
// Get picture location where to store captured images
// QString path(QDesktopServices::storageLocation(QDesktopServices::PicturesLocation));
// QDir dir(path);
// Get next filename
// QStringList files = dir.entryList(QStringList() << "camera");//_*.jpg");
// int lastImage = 0;
// foreach ( QString fileName, files ) {
// int imgNumber = fileName.mid(7, fileName.size() - 11).toInt();
// lastImage = qMax(lastImage, imgNumber);
// }
// Capture image
if (m_stillImageCapture->isReadyForCapture()) {
m_imageName = QString("camera_0");//%1.jpg").arg(lastImage+1);
m_stillImageCapture->capture(m_imageName);
}
}
m_camera->unlock();
}
void QCameraControllerWidget::onImageCaptured(int id, const QImage &preview)
{
m_stillImageCapture->cancelCapture();
// showViewFinder = false;
m_focusing = false;
pictureCaptured = true;
captureImage(); // added this line to restart viewfinder
emit imageCaptured(preview);
//qdebug() << "Image sent for decoding";
}
void QCameraControllerWidget::deleteImage(const QString & folderPath)
{
//qdebug() << "Detected change to folder: " << folderPath;
QStringList files = imageFolder.entryList(imageFolder.nameFilters());
for(int i=0; i<files.size(); i++)
{
QString image = files[i];
//qdebug() << "Checking file: " << image;
if(image.startsWith("camera"))
{
QString path(QDesktopServices::storageLocation(QDesktopServices::PicturesLocation));
QDir pathDir(path);
pathDir.remove(image);
//qdebug() << "file deleted: " << image;
// QStringList filters;
// filters << "*.cpp" << "*.cxx" << "*.cc";
// dir.setNameFilters(filters);
}
// QMessageBox msgBox;
// msgBox.setText(image);
// msgBox.exec();
}
}
void QCameraControllerWidget::error(QCamera::Error e)
{
switch (e) {
case QCamera::NoError:
{
break;
}
case QCamera::CameraError:
{
QMessageBox::warning(this, "QCameraControllerWidget", "General Camera error");
break;
}
case QCamera::InvalidRequestError:
{
QMessageBox::warning(this, "QCameraControllerWidget", "Camera invalid request error");
break;
}
case QCamera::ServiceMissingError:
{
QMessageBox::warning(this, "QCameraControllerWidget", "Camera service missing error");
break;
}
case QCamera::NotSupportedFeatureError :
{
QMessageBox::warning(this, "QCameraControllerWidget", "Camera not supported error");
break;
}
};
}
void QCameraControllerWidget::updateVideo()
{
if (showViewFinder) {
repaint();
}
}
void QCameraControllerWidget::paintEvent(QPaintEvent *event)
{
//QMainWindow::paintEvent(event);
QPainter painter(this);
QRect r = this->rect();
QFont font = painter.font();
font.setPixelSize(20);
painter.setFont(font);
painter.setPen(Qt::white);
if (showViewFinder && m_myVideoSurface && m_myVideoSurface->isActive()) {
// Show view finder
m_myVideoSurface->paint(&painter);
// Paint focus message
if (!m_focusMessage.isEmpty())
painter.drawText(r, Qt::AlignCenter, m_focusMessage);
} else {
painter.fillRect(event->rect(), palette().background());
}
}
void QCameraControllerWidget::redirectImageSignalFromVideoFinder(QImage image)
{
emit imageCaptured(image);
}
void QCameraControllerWidget::onZoomIn()
{
qreal optical = cameraFocus->opticalZoom();
qreal digital = cameraFocus->digitalZoom();
if(optical == cameraFocus->maximumOpticalZoom())
cameraFocus->zoomTo(optical, digital + 0.1);
else
cameraFocus->zoomTo(optical + 0.1, 1.0);
}
void QCameraControllerWidget::onZoomOut()
{
qreal optical = cameraFocus->opticalZoom();
qreal digital = cameraFocus->digitalZoom();
if(optical == cameraFocus->maximumOpticalZoom() && digital != 0.0)
{
if(digital - 0.1 >= 1)
cameraFocus->zoomTo(optical, digital - 0.1);
else
cameraFocus->zoomTo(optical, 1.0);
}
else
{
if(optical - 0.1 >= 1)
cameraFocus->zoomTo(optical - 0.1, 1.0);
else
cameraFocus->zoomTo(1.0, 1.0);
}
}
void QCameraControllerWidget::onStateChanged(QCamera::State state)
{
if(state == QCamera::ActiveState)
{
// cameraFocus->setFocusMode(QCameraFocus::AutoFocus);
// cameraFocus->setFocusPointMode(QCameraFocus::FocusPointAuto);
}
}
//void QCameraControllerWidget::toggleFlash()
//{
// if(!m_camera)
// return;
// QCameraExposure* cameraexpo = m_camera->exposure();
// if(!cameraexpo)
// return;
// if(!flash->isPressed())
// cameraexpo->setFlashMode(QCameraExposure::FlashOff);
// else
// {
// if(cameraexpo->isFlashModeSupported(QCameraExposure::FlashTorch))
// {
// cameraexpo->setFlashMode(QCameraExposure::FlashTorch);
// flash->disableBtn(false);
// }
// else if(cameraexpo->isFlashModeSupported(QCameraExposure::FlashOn))
// {
// cameraexpo->setFlashMode(QCameraExposure::FlashOn);
// flash->disableBtn(false);
// }
// else
// flash->disableBtn(true);
// }
//}

View file

@ -1,122 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the demonstration applications of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QCAMERAEXAMPLE_H
#define QCAMERAEXAMPLE_H
#include <QtGui>
// Multimedia API in QtMobility API
// Unlike the other APIs in Qt Mobility,
// the Multimedia API is not in the QtMobility namespace "QTM_USE_NAMESPACE"
#include <QCamera>
#include <QCameraImageCapture>
#include <QCameraFocus>
#include <QTimer>
#include <QFileSystemWatcher>
// QtMobility API
//#include <QSystemScreenSaver>
//QTM_USE_NAMESPACE
#include "myvideosurface.h"
#include "button.h"
class QCameraControllerWidget: public QWidget, public VideoIF
{
Q_OBJECT
public:
QCameraControllerWidget(QWidget *parent = 0);
~QCameraControllerWidget();
void paintEvent(QPaintEvent*);
void mousePressEvent(QMouseEvent *);
void updateVideo();
public slots:
void enableCamera();
void lockStatusChanged(QCamera::LockStatus status, QCamera::LockChangeReason reason);
void searchAndLock();
void captureImage();
void onImageCaptured(int id, const QImage &preview);
void error(QCamera::Error);
void redirectImageSignalFromVideoFinder(QImage image);
void onStateChanged(QCamera::State state) ;
void onZoomIn();
void onZoomOut();
void deleteImage(const QString & folderPath);
//void toggleFlash();
signals:
void imageCaptured(QImage image);
private:
QWidget* m_videoWidget;
QWidget* zoomButtons;
QCamera* m_camera;
QCameraImageCapture* m_stillImageCapture;
QStackedWidget* m_stackedWidget;
Button* zoomIn;
Button* zoomOut;
Button* captButton;
QImage m_capturedImage;
QString m_imageName;
QString m_focusMessage;
bool m_focusing;
QString m_phoneNumber;
bool bufferingSupported;
bool pictureCaptured;
bool showViewFinder;
MyVideoSurface* m_myVideoSurface;
QCameraFocus* cameraFocus;
QFileSystemWatcher* fileWatcher;
QDir imageFolder;
};
#endif // QCAMERA_H

View file

@ -1,62 +0,0 @@
/****************************************************************************
**
** Trolltech hereby grants a license to use the Qt/Eclipse Integration
** plug-in (the software contained herein), in binary form, solely for the
** purpose of creating code to be used with Trolltech's Qt software.
**
** Qt Designer is licensed under the terms of the GNU General Public
** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the
** right to use certain no GPL licensed software under the terms of its GPL
** Exception version 1.2 (http://trolltech.com/products/qt/gplexception).
**
** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** Since we now have the GPL exception I think that the "special exception
** is no longer needed. The license text proposed above (other than the
** special exception portion of it) is the BSD license and we have added
** the BSD license as a permissible license under the exception.
**
****************************************************************************/
#include "QQrDecoder.h"
#include <QFileDialog>
#include <QGraphicsView>
#include <QPainter>
#include <QPoint>
#include <QPixmap>
#include <QMessageBox>
QQrDecoder::QQrDecoder(QWidget *parent): QMainWindow(parent), decoder(this)
{
ui.setupUi(this);
connect(ui.centralwidget, SIGNAL(imageCaptured(QImage)), this, SLOT(decodeImage(QImage)));
connect(&decoder, SIGNAL(tagFound(QString)), this, SLOT(reportTagFound(QString)));
//by default all decoders available are enabled
//decoder.setDecoder( QZXing::DecoderFormat_DATA_MATRIX);
//decoder.setDecoder( QZXing::DecoderFormat_Aztec );
}
QQrDecoder::~QQrDecoder()
{
}
void QQrDecoder::decodeImage(QImage originalImage)
{
decoder.decodeImage(originalImage);
}
void QQrDecoder::reportTagFound(QString tag)
{
QMessageBox::information((QWidget*)ui.centralwidget, QString("Decoding result") ,tag);
}

View file

@ -1,56 +0,0 @@
/****************************************************************************
**
** Trolltech hereby grants a license to use the Qt/Eclipse Integration
** plug-in (the software contained herein), in binary form, solely for the
** purpose of creating code to be used with Trolltech's Qt software.
**
** Qt Designer is licensed under the terms of the GNU General Public
** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the
** right to use certain no GPL licensed software under the terms of its GPL
** Exception version 1.2 (http://trolltech.com/products/qt/gplexception).
**
** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** Since we now have the GPL exception I think that the "special exception
** is no longer needed. The license text proposed above (other than the
** special exception portion of it) is the BSD license and we have added
** the BSD license as a permissible license under the exception.
**
****************************************************************************/
#ifndef QQRDECODER_H
#define QQRDECODER_H
#include <QtGui/QMainWindow>
#include <QPixmap>
#include "ui_QQrDecoder.h"
#include <qzxing.h>
class QQrDecoder : public QMainWindow
{
Q_OBJECT
public:
QQrDecoder(QWidget *parent = 0);
~QQrDecoder();
protected slots:
void decodeImage(QImage originalImage);
void reportTagFound(QString tag);
private:
Ui::QQrDecoder ui;
QZXing decoder;
};
#endif // QQRDECODER_H

View file

@ -1,53 +0,0 @@
TEMPLATE = app
TARGET = QQrDecoder
QT += core \
gui \
declarative
VERSION = 1.3.0
CONFIG += mobility
MOBILITY = multimedia #\
#systeminfo
RESOURCES += resources.qrc
HEADERS += QQrDecoder.h \
QCameraControllerWidget.h \
button.h \
myvideosurface.h
SOURCES += main.cpp \
QQrDecoder.cpp \
QCameraControllerWidget.cpp \
button.cpp \
myvideosurface.cpp
FORMS += QQrDecoder.ui
symbian{
TARGET.UID3 = 0xEF2CE79D
TARGET.EPOCSTACKSIZE = 0x14000
TARGET.EPOCHEAPSIZE = 0x20000 0x8000000
# Because landscape orientation lock
LIBS += -lcone -leikcore -lavkon -lqzxing
# Self-signing capabilities
TARGET.CAPABILITY += NetworkServices \
ReadUserData \
WriteUserData \
LocalServices \
UserEnvironment
customrules.pkg_prerules = \
";QZXing" \
"@\"$$(EPOCROOT)Epoc32/InstallToDevice/QZXing_selfsigned.sis\",(0xE618743C)"\
" "
DEPLOYMENT += customrules
}
ICON = QQrDecoder.svg

View file

@ -1,22 +0,0 @@
// ============================================================================
// * Generated by qmake (2.01a) (Qt 4.7.3) on: 2012-05-14T15:44:30
// * This file is generated by qmake and should not be modified by the
// * user.
// ============================================================================
CHARACTER_SET UTF8
#include <appinfo.rh>
#include "QQrDecoder.loc"
RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
{
short_caption = STRING_r_short_caption;
caption_and_icon =
CAPTION_AND_ICON_INFO
{
caption = STRING_r_caption;
number_of_icons = 1;
icon_file = "\\resource\\apps\\QQrDecoder.mif";
};
}

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 38 KiB

View file

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QQrDecoder</class>
<widget class="QMainWindow" name="QQrDecoder">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>340</width>
<height>640</height>
</rect>
</property>
<property name="windowTitle">
<string>QQrDecoder</string>
</property>
<widget class="QCameraControllerWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout" stretch=""/>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>QCameraControllerWidget</class>
<extends>QWidget</extends>
<header>qcameracontrollerwidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View file

@ -1,18 +0,0 @@
// ============================================================================
// * Generated by qmake (2.01a) (Qt 4.7.3) on: 2012-05-14T15:44:30
// * This file is generated by qmake and should not be modified by the
// * user.
// ============================================================================
#include <QQrDecoder.rsg>
#include <appinfo.rh>
UID2 KUidAppRegistrationResourceFile
UID3 0xEF2CE79D
RESOURCE APP_REGISTRATION_INFO
{
app_file="QQrDecoder";
localisable_resource_file="\\resource\\apps\\QQrDecoder";
}

View file

@ -1,201 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View file

@ -1,139 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the demonstration applications of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
#include "button.h"
#include <QMouseEvent>
#include <QPainter>
#include <QTimer>
Button::Button(QWidget *parent, Qt::WindowFlags f) :
QLabel(parent, f)
{
m_downPixmap = 0;
m_disabled = false;
m_toggled = false;
m_toggle_enabled = false;
}
Button::~Button()
{
}
void Button::disableBtn(bool b)
{
m_disabled = b;
setPressed(m_disabled);
}
void Button::mousePressEvent(QMouseEvent *event)
{
if (!m_disabled) {
event->accept();
setPixmap(m_downPixmap);
repaint();
// Lift button back to up after 300ms
if(m_toggle_enabled)
{
m_toggled = !m_toggled;
setPressed(m_toggled);
emit pressed();
}
else
QTimer::singleShot(300, this, SLOT(backToUp()));
}
}
void Button::backToUp()
{
setPixmap(m_upPixmap);
repaint();
emit pressed();
}
void Button::setPixmap(const QPixmap& p)
{
// Set up and down picture for the button
// Set pixmap
if (!p.isNull())
QLabel::setPixmap(p);
// Make down pixmap if it does not exists
if (m_downPixmap.isNull()) {
// Store up pixmap
m_upPixmap = *pixmap();
// Create down pixmap
// Make m_downPixmap as a transparent m_upPixmap
QPixmap transparent(m_upPixmap.size());
transparent.fill(Qt::transparent);
QPainter painter(&transparent);
painter.setCompositionMode(QPainter::CompositionMode_Source);
painter.drawPixmap(0, 0, m_upPixmap);
painter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
painter.fillRect(transparent.rect(), QColor(0, 0, 0, 150));
painter.end();
m_downPixmap = transparent;
}
}
void Button::enableToggle(bool enable)
{
m_toggle_enabled = enable;
}
void Button::setPressed(bool isPressed)
{
if(isPressed)
{
m_toggled = true;
setPixmap(m_downPixmap);
}
else
{
m_toggled = false;
setPixmap(m_upPixmap);
}
}
bool Button::isPressed()
{
return m_toggled;
}

View file

@ -1,77 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the demonstration applications of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef BUTTON_H
#define BUTTON_H
#include <QLabel>
#include <QPixmap>
class Button: public QLabel
{
Q_OBJECT
public:
Button(QWidget *parent = 0, Qt::WindowFlags f = 0);
~Button();
void mousePressEvent(QMouseEvent *);
void disableBtn(bool);
void enableToggle(bool enable);
void setPressed(bool isPressed);
bool isPressed();
public slots:
void setPixmap(const QPixmap &);
void backToUp();
signals:
void pressed();
private:
QPixmap m_upPixmap;
QPixmap m_downPixmap;
bool m_disabled;
bool m_toggled;
bool m_toggle_enabled;
};
#endif // BUTTON_H

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

View file

@ -1,42 +0,0 @@
/****************************************************************************
**
** Trolltech hereby grants a license to use the Qt/Eclipse Integration
** plug-in (the software contained herein), in binary form, solely for the
** purpose of creating code to be used with Trolltech's Qt software.
**
** Qt Designer is licensed under the terms of the GNU General Public
** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the
** right to use certain no GPL licensed software under the terms of its GPL
** Exception version 1.2 (http://trolltech.com/products/qt/gplexception).
**
** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** Since we now have the GPL exception I think that the "special exception
** is no longer needed. The license text proposed above (other than the
** special exception portion of it) is the BSD license and we have added
** the BSD license as a permissible license under the exception.
**
****************************************************************************/
#include "QQrDecoder.h"
#include <QtGui>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QQrDecoder w;
w.showMaximized();
return a.exec();
}

View file

@ -1,52 +0,0 @@
#ifndef MYVIDEOSURFACE_H
#define MYVIDEOSURFACE_H
#include <QWidget>
#include <QVideoFrame>
#include <QImage>
#include <QVideoSurfaceFormat>
#include <QAbstractVideoSurface>
#include <QVideoRendererControl>
#include <QVideoSurfaceFormat>
#include <QPainter>
#include <QTimer>
class VideoIF
{
public:
virtual void updateVideo() = 0;
};
class MyVideoSurface: public QAbstractVideoSurface
{
Q_OBJECT
public:
MyVideoSurface(QWidget* widget, VideoIF* target, QObject * parent = 0);
~MyVideoSurface();
bool start(const QVideoSurfaceFormat &format);
bool present(const QVideoFrame &frame);
QList<QVideoFrame::PixelFormat> supportedPixelFormats(
QAbstractVideoBuffer::HandleType handleType = QAbstractVideoBuffer::NoHandle) const;
void paint(QPainter*);
public slots:
void sendImageToDecode();
signals:
void imageCaptured(QImage image);
private:
QWidget* m_targetWidget;
VideoIF* m_target;
QVideoFrame m_frame;
QImage::Format m_imageFormat;
QVideoSurfaceFormat m_videoFormat;
QTimer* timer;
};
#endif // MYVIDEOSURFACE_H

View file

@ -1,7 +0,0 @@
<RCC>
<qresource prefix="/icons">
<file alias="zoomIn">icons/zoomIn.png</file>
<file alias="zoomOut">icons/zoomOut.png</file>
<file alias="camera">icons/camera.png</file>
</qresource>
</RCC>

View file

@ -1,14 +0,0 @@
moc/
obj/
rcc/
tmp/
ui/
.make.cache
*.BAT
*.inf
Makefile
*.mk
*.loc
*.user
*.mmp
*.pkg

View file

@ -1,146 +0,0 @@
#include "CameraImageWrapper.h"
#include <QColor>
#include <QApplication>
#include <QDesktopWidget>
CameraImageWrapper::CameraImageWrapper() : LuminanceSource(), isSmoothTransformationEnabled(false)
{
}
CameraImageWrapper::CameraImageWrapper(QImage& image) : LuminanceSource() , isSmoothTransformationEnabled(false)
{
setImage(image);
}
CameraImageWrapper::CameraImageWrapper(CameraImageWrapper& otherInstance) : LuminanceSource() , isSmoothTransformationEnabled(false)
{
image = otherInstance.getOriginalImage().copy();
}
CameraImageWrapper::~CameraImageWrapper()
{
}
int CameraImageWrapper::getWidth() const
{
return image.width();
}
int CameraImageWrapper::getHeight() const
{
return image.height();
}
unsigned char CameraImageWrapper::getPixel(int x, int y) const
{
QRgb pixel = image.pixel(x,y);
return qGray(pixel);//((qRed(pixel) + qGreen(pixel) + qBlue(pixel)) / 3);
}
unsigned char* CameraImageWrapper::copyMatrix() const
{
unsigned char* newMatrix = (unsigned char*)malloc(image.width()*image.height()*sizeof(unsigned char));
int cnt = 0;
for(int i=0; i<image.width(); i++)
{
for(int j=0; j<image.height(); j++)
{
newMatrix[cnt++] = getPixel(i,j);
}
}
return newMatrix;
}
bool CameraImageWrapper::setImage(QString fileName)
{
bool isLoaded = image.load(fileName);
if(!isLoaded)
return false;
if(image.width() > QApplication::desktop()->width())
image = image.scaled(QApplication::desktop()->width(), image.height(), Qt::IgnoreAspectRatio);
if(image.height() > QApplication::desktop()->height())
image = image.scaled(image.width(), QApplication::desktop()->height(), Qt::IgnoreAspectRatio);
return true;
}
bool CameraImageWrapper::setImage(QImage newImage)
{
if(newImage.isNull())
return false;
image = newImage.copy();
if(image.width() > 640)
image = image.scaled(640, image.height(), Qt::KeepAspectRatio, isSmoothTransformationEnabled ? Qt::SmoothTransformation : Qt::FastTransformation);
return true;
}
QImage CameraImageWrapper::grayScaleImage(QImage::Format f)
{
QImage tmp(image.width(), image.height(), f);
for(int i=0; i<image.width(); i++)
{
for(int j=0; j<image.height(); j++)
{
int pix = (int)getPixel(i,j);
tmp.setPixel(i,j, qRgb(pix ,pix,pix));
}
}
return tmp;
//return image.convertToFormat(f);
}
QImage CameraImageWrapper::getOriginalImage()
{
return image;
}
unsigned char* CameraImageWrapper::getRow(int y, unsigned char* row)
{
int width = getWidth();
if (row == NULL)
{
row = new unsigned char[width];
pRow = row;
}
for (int x = 0; x < width; x++)
row[x] = getPixel(x,y);
return row;
}
unsigned char* CameraImageWrapper::getMatrix()
{
int width = getWidth();
int height = getHeight();
unsigned char* matrix = new unsigned char[width*height];
unsigned char* m = matrix;
for(int y=0; y<height; y++)
{
unsigned char* tmpRow;
memcpy(m, tmpRow = getRow(y, NULL), width);
m += width * sizeof(unsigned char);
delete tmpRow;
}
pMatrix = matrix;
return matrix;
}
void CameraImageWrapper::setSmoothTransformation(bool enable)
{
isSmoothTransformationEnabled = enable;
}

View file

@ -1,47 +0,0 @@
#ifndef CAMERAIMAGE_H
#define CAMERAIMAGE_H
#include <QImage>
#include <QString>
#include <zxing/LuminanceSource.h>
using namespace zxing;
class CameraImageWrapper : public LuminanceSource
{
public:
CameraImageWrapper();
CameraImageWrapper(QImage& image);
CameraImageWrapper(CameraImageWrapper& otherInstance);
~CameraImageWrapper();
int getWidth() const;
int getHeight() const;
unsigned char getPixel(int x, int y) const;
unsigned char* copyMatrix() const;
/**
* Set the source of the image. If it fails, returns false.
*/
bool setImage(QString fileName);
bool setImage(QImage newImage);
QImage grayScaleImage(QImage::Format f);
QImage getOriginalImage();
// Callers take ownership of the returned memory and must call delete [] on it themselves.
unsigned char* getRow(int y, unsigned char* row);
unsigned char* getMatrix();
void setSmoothTransformation(bool enable);
private:
QImage image;
unsigned char* pRow;
unsigned char* pMatrix;
bool isSmoothTransformationEnabled;
};
#endif //CAMERAIMAGE_H

View file

@ -1,253 +0,0 @@
#-------------------------------------------------
#
# Project created by QtCreator 2011-11-13T18:12:28
#
#-------------------------------------------------
QT += core gui
VERSION = 1.2
greaterThan(QT_VERSION, 4.7): QT += declarative
TARGET = QZXing
TEMPLATE = lib
# CONFIG += staticlib
DEFINES += QZXING_LIBRARY \
ZXING_ICONV_CONST
INCLUDEPATH += ./
HEADERS += QZXing_global.h \
CameraImageWrapper.h \
imagehandler.h \
qzxing.h \
zxing/ResultPointCallback.h \
zxing/ResultPoint.h \
zxing/Result.h \
zxing/ReaderException.h \
zxing/Reader.h \
zxing/NotFoundException.h \
zxing/MultiFormatReader.h \
zxing/LuminanceSource.h \
zxing/FormatException.h \
zxing/Exception.h \
zxing/DecodeHints.h \
zxing/BinaryBitmap.h \
zxing/Binarizer.h \
zxing/BarcodeFormat.h \
zxing/aztec/AztecReader.h \
zxing/aztec/AztecDetectorResult.h \
zxing/aztec/decoder/Decoder.h \
zxing/aztec/detector/Detector.h \
zxing/common/StringUtils.h \
zxing/common/Str.h \
zxing/common/Point.h \
zxing/common/PerspectiveTransform.h \
zxing/common/IllegalArgumentException.h \
zxing/common/HybridBinarizer.h \
zxing/common/GridSampler.h \
zxing/common/GreyscaleRotatedLuminanceSource.h \
zxing/common/GreyscaleLuminanceSource.h \
zxing/common/GlobalHistogramBinarizer.h \
zxing/common/EdgeDetector.h \
zxing/common/DetectorResult.h \
zxing/common/DecoderResult.h \
zxing/common/Counted.h \
zxing/common/CharacterSetECI.h \
zxing/common/BitSource.h \
zxing/common/BitMatrix.h \
zxing/common/BitArray.h \
zxing/common/Array.h \
zxing/common/detector/WhiteRectangleDetector.h \
zxing/common/detector/MonochromeRectangleDetector.h \
zxing/common/reedsolomon/ReedSolomonException.h \
zxing/common/reedsolomon/ReedSolomonDecoder.h \
zxing/common/reedsolomon/GenericGFPoly.h \
zxing/common/reedsolomon/GenericGF.h \
zxing/datamatrix/Version.h \
zxing/datamatrix/DataMatrixReader.h \
zxing/datamatrix/decoder/Decoder.h \
zxing/datamatrix/decoder/DecodedBitStreamParser.h \
zxing/datamatrix/decoder/DataBlock.h \
zxing/datamatrix/decoder/BitMatrixParser.h \
zxing/datamatrix/detector/MonochromeRectangleDetector.h \
zxing/datamatrix/detector/DetectorException.h \
zxing/datamatrix/detector/Detector.h \
zxing/datamatrix/detector/CornerPoint.h \
zxing/oned/UPCEReader.h \
zxing/oned/UPCEANReader.h \
zxing/oned/UPCAReader.h \
zxing/oned/OneDResultPoint.h \
zxing/oned/OneDReader.h \
zxing/oned/MultiFormatUPCEANReader.h \
zxing/oned/MultiFormatOneDReader.h \
zxing/oned/ITFReader.h \
zxing/oned/EAN13Reader.h \
zxing/oned/EAN8Reader.h \
zxing/oned/Code128Reader.h \
zxing/oned/Code39Reader.h \
zxing/qrcode/Version.h \
zxing/qrcode/QRCodeReader.h \
zxing/qrcode/FormatInformation.h \
zxing/qrcode/ErrorCorrectionLevel.h \
zxing/qrcode/decoder/Mode.h \
zxing/qrcode/decoder/Decoder.h \
zxing/qrcode/decoder/DecodedBitStreamParser.h \
zxing/qrcode/decoder/DataMask.h \
zxing/qrcode/decoder/DataBlock.h \
zxing/qrcode/decoder/BitMatrixParser.h \
zxing/qrcode/detector/QREdgeDetector.h \
zxing/qrcode/detector/FinderPatternInfo.h \
zxing/qrcode/detector/FinderPatternFinder.h \
zxing/qrcode/detector/FinderPattern.h \
zxing/qrcode/detector/Detector.h \
zxing/qrcode/detector/AlignmentPatternFinder.h \
zxing/qrcode/detector/AlignmentPattern.h \
zxing/multi/MultipleBarcodeReader.h \
zxing/multi/GenericMultipleBarcodeReader.h \
zxing/multi/ByQuadrantReader.h \
zxing/multi/qrcode/QRCodeMultiReader.h \
zxing/multi/qrcode/detector/MultiFinderPatternFinder.h \
zxing/multi/qrcode/detector/MultiDetector.h
SOURCES += CameraImageWrapper.cpp \
qzxing.cpp \
imagehandler.cpp \
zxing/ResultPointCallback.cpp \
zxing/ResultPoint.cpp \
zxing/Result.cpp \
zxing/ReaderException.cpp \
zxing/Reader.cpp \
zxing/NotFoundException.cpp \
zxing/MultiFormatReader.cpp \
zxing/LuminanceSource.cpp \
zxing/FormatException.cpp \
zxing/Exception.cpp \
zxing/DecodeHints.cpp \
zxing/BinaryBitmap.cpp \
zxing/Binarizer.cpp \
zxing/BarcodeFormat.cpp \
zxing/aztec/AztecReader.cpp \
zxing/aztec/AztecDetectorResult.cpp \
zxing/common/StringUtils.cpp \
zxing/common/Str.cpp \
zxing/common/PerspectiveTransform.cpp \
zxing/common/IllegalArgumentException.cpp \
zxing/common/HybridBinarizer.cpp \
zxing/common/GridSampler.cpp \
zxing/common/GreyscaleRotatedLuminanceSource.cpp \
zxing/common/GreyscaleLuminanceSource.cpp \
zxing/common/GlobalHistogramBinarizer.cpp \
zxing/common/EdgeDetector.cpp \
zxing/common/DetectorResult.cpp \
zxing/common/DecoderResult.cpp \
zxing/common/Counted.cpp \
zxing/common/CharacterSetECI.cpp \
zxing/common/BitSource.cpp \
zxing/common/BitMatrix.cpp \
zxing/common/BitArray.cpp \
zxing/common/Array.cpp \
zxing/common/detector/WhiteRectangleDetector.cpp \
zxing/common/detector/MonochromeRectangleDetector.cpp \
zxing/common/reedsolomon/ReedSolomonException.cpp \
zxing/common/reedsolomon/ReedSolomonDecoder.cpp \
zxing/common/reedsolomon/GenericGFPoly.cpp \
zxing/common/reedsolomon/GenericGF.cpp \
zxing/datamatrix/DataMatrixReader.cpp \
zxing/oned/UPCEReader.cpp \
zxing/oned/UPCEANReader.cpp \
zxing/oned/UPCAReader.cpp \
zxing/oned/OneDResultPoint.cpp \
zxing/oned/OneDReader.cpp \
zxing/oned/MultiFormatUPCEANReader.cpp \
zxing/oned/MultiFormatOneDReader.cpp \
zxing/oned/ITFReader.cpp \
zxing/oned/EAN13Reader.cpp \
zxing/oned/EAN8Reader.cpp \
zxing/oned/Code128Reader.cpp \
zxing/oned/Code39Reader.cpp \
zxing/qrcode/QRCodeReader.cpp \
zxing/qrcode/detector/QREdgeDetector.cpp \
zxing/multi/MultipleBarcodeReader.cpp \
zxing/multi/GenericMultipleBarcodeReader.cpp \
zxing/multi/ByQuadrantReader.cpp \
zxing/multi/qrcode/QRCodeMultiReader.cpp \
zxing/multi/qrcode/detector/MultiFinderPatternFinder.cpp \
zxing/multi/qrcode/detector/MultiDetector.cpp \
zxing/aztec/decoder/AztecDecoder.cpp \
zxing/aztec/detector/AztecDetector.cpp \
zxing/datamatrix/DataMatrixVersion.cpp \
zxing/datamatrix/decoder/DataMatrixDecoder.cpp \
zxing/datamatrix/decoder/DataMatrixBitMatrixParser.cpp \
zxing/datamatrix/decoder/DataMatrixDataBlock.cpp \
zxing/datamatrix/decoder/DataMatrixDecodedBitStreamParser.cpp \
zxing/datamatrix/detector/DataMatrixCornerPoint.cpp \
zxing/datamatrix/detector/DataMatrixDetector.cpp \
zxing/datamatrix/detector/DataMatrixDetectorException.cpp \
zxing/datamatrix/detector/DataMatrixMonochromeRectangleDetector.cpp \
zxing/qrcode/decoder/QRBitMatrixParser.cpp \
zxing/qrcode/decoder/QRDataBlock.cpp \
zxing/qrcode/decoder/QRDataMask.cpp \
zxing/qrcode/decoder/QRDecodedBitStreamParser.cpp \
zxing/qrcode/decoder/QRDecoder.cpp \
zxing/qrcode/decoder/QRMode.cpp \
zxing/qrcode/detector/QRAlignmentPattern.cpp \
zxing/qrcode/detector/QRAlignmentPatternFinder.cpp \
zxing/qrcode/detector/QRDetector.cpp \
zxing/qrcode/detector/QRFinderPattern.cpp \
zxing/qrcode/detector/QRFinderPatternFinder.cpp \
zxing/qrcode/detector/QRFinderPatternInfo.cpp \
zxing/qrcode/QRVersion.cpp \
zxing/qrcode/QRFormatInformation.cpp \
zxing/qrcode/QRErrorCorrectionLevel.cpp
symbian {
TARGET.UID3 = 0xE618743C
TARGET.EPOCALLOWDLLDATA = 1
addFiles.sources = QZXing.dll
addFiles.path = !:/sys/bin
DEPLOYMENT += addFiles
TARGET.CAPABILITY = All -TCB -AllFiles -DRM
# TARGET.CAPABILITY += NetworkServices \
# ReadUserData \
# WriteUserData \
# LocalServices \
# UserEnvironment \
# Location
}
unix:!symbian {
maemo5 {
target.path = /opt/usr/lib
} else {
target.path = /usr/lib
}
DEFINES += NOFMAXL
INSTALLS += target
}
win32{
DEFINES += NO_ICONV
}
OTHER_FILES += \
qtc_packaging/debian_fremantle/rules \
qtc_packaging/debian_fremantle/README \
qtc_packaging/debian_fremantle/copyright \
qtc_packaging/debian_fremantle/control \
qtc_packaging/debian_fremantle/compat \
qtc_packaging/debian_fremantle/changelog \
qtc_packaging/debian_harmattan/rules \
qtc_packaging/debian_harmattan/README \
qtc_packaging/debian_harmattan/manifest.aegis \
qtc_packaging/debian_harmattan/copyright \
qtc_packaging/debian_harmattan/control \
qtc_packaging/debian_harmattan/compat \
qtc_packaging/debian_harmattan/changelog

View file

@ -1,13 +0,0 @@
#ifndef QZXING_GLOBAL_H
#define QZXING_GLOBAL_H
#include <QtCore>
#include <qglobal.h>
#if defined(QZXING_LIBRARY)
# define QZXINGSHARED_EXPORT Q_DECL_EXPORT
#else
# define QZXINGSHARED_EXPORT Q_DECL_IMPORT
#endif
#endif //QZXING_GLOBAL_H

View file

@ -1,118 +0,0 @@
EXPORTS
_ZN6QZXing10setDecoderEj @ 1 NONAME
_ZN6QZXing11decodeImageE6QImage @ 2 NONAME
_ZN6QZXing11qt_metacallEN11QMetaObject4CallEiPPv @ 3 NONAME
_ZN6QZXing11qt_metacastEPKc @ 4 NONAME
_ZN6QZXing14decodeImageQMLEP7QObject @ 5 NONAME
_ZN6QZXing15decodingStartedEv @ 6 NONAME
_ZN6QZXing16decodingFinishedEb @ 7 NONAME
_ZN6QZXing16staticMetaObjectE @ 8 NONAME DATA 16
_ZN6QZXing17decodeSubImageQMLEP7QObjectdddd @ 9 NONAME
_ZN6QZXing19getStaticMetaObjectEv @ 10 NONAME
_ZN6QZXing8tagFoundE7QString @ 11 NONAME
_ZN6QZXingC1EP7QObject @ 12 NONAME
_ZN6QZXingC2EP7QObject @ 13 NONAME
_ZNK6QZXing10metaObjectEv @ 14 NONAME
_ZTI12ImageHandler @ 15 NONAME
_ZTI18CameraImageWrapper @ 16 NONAME
_ZTI6QZXing @ 17 NONAME
_ZTIN5zxing10datamatrix16DataMatrixReaderE @ 18 NONAME
_ZTIN5zxing10datamatrix17DetectorExceptionE @ 19 NONAME
_ZTIN5zxing10datamatrix7VersionE @ 20 NONAME
_ZTIN5zxing10datamatrix8DetectorE @ 21 NONAME
_ZTIN5zxing11ResultPointE @ 22 NONAME
_ZTIN5zxing12BinaryBitmapE @ 23 NONAME
_ZTIN5zxing15FormatExceptionE @ 24 NONAME
_ZTIN5zxing15HybridBinarizerE @ 25 NONAME
_ZTIN5zxing15LuminanceSourceE @ 26 NONAME
_ZTIN5zxing15ReaderExceptionE @ 27 NONAME
_ZTIN5zxing17MultiFormatReaderE @ 28 NONAME
_ZTIN5zxing17NotFoundExceptionE @ 29 NONAME
_ZTIN5zxing19ResultPointCallbackE @ 30 NONAME
_ZTIN5zxing20ReedSolomonExceptionE @ 31 NONAME
_ZTIN5zxing24GlobalHistogramBinarizerE @ 32 NONAME
_ZTIN5zxing24GreyscaleLuminanceSourceE @ 33 NONAME
_ZTIN5zxing24IllegalArgumentExceptionE @ 34 NONAME
_ZTIN5zxing31GreyscaleRotatedLuminanceSourceE @ 35 NONAME
_ZTIN5zxing4oned10EAN8ReaderE @ 36 NONAME
_ZTIN5zxing4oned10OneDReaderE @ 37 NONAME
_ZTIN5zxing4oned10UPCAReaderE @ 38 NONAME
_ZTIN5zxing4oned10UPCEReaderE @ 39 NONAME
_ZTIN5zxing4oned11EAN13ReaderE @ 40 NONAME
_ZTIN5zxing4oned12Code39ReaderE @ 41 NONAME
_ZTIN5zxing4oned12UPCEANReaderE @ 42 NONAME
_ZTIN5zxing4oned13Code128ReaderE @ 43 NONAME
_ZTIN5zxing4oned21MultiFormatOneDReaderE @ 44 NONAME
_ZTIN5zxing4oned23MultiFormatUPCEANReaderE @ 45 NONAME
_ZTIN5zxing4oned9ITFReaderE @ 46 NONAME
_ZTIN5zxing5aztec11AztecReaderE @ 47 NONAME
_ZTIN5zxing5multi13MultiDetectorE @ 48 NONAME
_ZTIN5zxing5multi16ByQuadrantReaderE @ 49 NONAME
_ZTIN5zxing5multi17QRCodeMultiReaderE @ 50 NONAME
_ZTIN5zxing5multi21MultipleBarcodeReaderE @ 51 NONAME
_ZTIN5zxing5multi24MultiFinderPatternFinderE @ 52 NONAME
_ZTIN5zxing5multi28GenericMultipleBarcodeReaderE @ 53 NONAME
_ZTIN5zxing6ReaderE @ 54 NONAME
_ZTIN5zxing6ResultE @ 55 NONAME
_ZTIN5zxing6qrcode12QRCodeReaderE @ 56 NONAME
_ZTIN5zxing6qrcode14QREdgeDetectorE @ 57 NONAME
_ZTIN5zxing6qrcode22AlignmentPatternFinderE @ 58 NONAME
_ZTIN5zxing6qrcode7VersionE @ 59 NONAME
_ZTIN5zxing6qrcode8DataMaskE @ 60 NONAME
_ZTIN5zxing6qrcode8DetectorE @ 61 NONAME
_ZTIN5zxing8BitArrayE @ 62 NONAME
_ZTIN5zxing9BinarizerE @ 63 NONAME
_ZTIN5zxing9BitMatrixE @ 64 NONAME
_ZTIN5zxing9ExceptionE @ 65 NONAME
_ZTV12ImageHandler @ 66 NONAME
_ZTV18CameraImageWrapper @ 67 NONAME
_ZTV6QZXing @ 68 NONAME
_ZTVN5zxing10datamatrix16DataMatrixReaderE @ 69 NONAME
_ZTVN5zxing10datamatrix17DetectorExceptionE @ 70 NONAME
_ZTVN5zxing10datamatrix7VersionE @ 71 NONAME
_ZTVN5zxing10datamatrix8DetectorE @ 72 NONAME
_ZTVN5zxing11ResultPointE @ 73 NONAME
_ZTVN5zxing12BinaryBitmapE @ 74 NONAME
_ZTVN5zxing15FormatExceptionE @ 75 NONAME
_ZTVN5zxing15HybridBinarizerE @ 76 NONAME
_ZTVN5zxing15LuminanceSourceE @ 77 NONAME
_ZTVN5zxing15ReaderExceptionE @ 78 NONAME
_ZTVN5zxing17MultiFormatReaderE @ 79 NONAME
_ZTVN5zxing17NotFoundExceptionE @ 80 NONAME
_ZTVN5zxing19ResultPointCallbackE @ 81 NONAME
_ZTVN5zxing20ReedSolomonExceptionE @ 82 NONAME
_ZTVN5zxing24GlobalHistogramBinarizerE @ 83 NONAME
_ZTVN5zxing24GreyscaleLuminanceSourceE @ 84 NONAME
_ZTVN5zxing24IllegalArgumentExceptionE @ 85 NONAME
_ZTVN5zxing31GreyscaleRotatedLuminanceSourceE @ 86 NONAME
_ZTVN5zxing4oned10EAN8ReaderE @ 87 NONAME
_ZTVN5zxing4oned10OneDReaderE @ 88 NONAME
_ZTVN5zxing4oned10UPCAReaderE @ 89 NONAME
_ZTVN5zxing4oned10UPCEReaderE @ 90 NONAME
_ZTVN5zxing4oned11EAN13ReaderE @ 91 NONAME
_ZTVN5zxing4oned12Code39ReaderE @ 92 NONAME
_ZTVN5zxing4oned12UPCEANReaderE @ 93 NONAME
_ZTVN5zxing4oned13Code128ReaderE @ 94 NONAME
_ZTVN5zxing4oned21MultiFormatOneDReaderE @ 95 NONAME
_ZTVN5zxing4oned23MultiFormatUPCEANReaderE @ 96 NONAME
_ZTVN5zxing4oned9ITFReaderE @ 97 NONAME
_ZTVN5zxing5aztec11AztecReaderE @ 98 NONAME
_ZTVN5zxing5multi13MultiDetectorE @ 99 NONAME
_ZTVN5zxing5multi16ByQuadrantReaderE @ 100 NONAME
_ZTVN5zxing5multi17QRCodeMultiReaderE @ 101 NONAME
_ZTVN5zxing5multi21MultipleBarcodeReaderE @ 102 NONAME
_ZTVN5zxing5multi24MultiFinderPatternFinderE @ 103 NONAME
_ZTVN5zxing5multi28GenericMultipleBarcodeReaderE @ 104 NONAME
_ZTVN5zxing6ReaderE @ 105 NONAME
_ZTVN5zxing6ResultE @ 106 NONAME
_ZTVN5zxing6qrcode12QRCodeReaderE @ 107 NONAME
_ZTVN5zxing6qrcode14QREdgeDetectorE @ 108 NONAME
_ZTVN5zxing6qrcode22AlignmentPatternFinderE @ 109 NONAME
_ZTVN5zxing6qrcode7VersionE @ 110 NONAME
_ZTVN5zxing6qrcode8DataMaskE @ 111 NONAME
_ZTVN5zxing6qrcode8DetectorE @ 112 NONAME
_ZTVN5zxing8BitArrayE @ 113 NONAME
_ZTVN5zxing9BinarizerE @ 114 NONAME
_ZTVN5zxing9BitMatrixE @ 115 NONAME
_ZTVN5zxing9ExceptionE @ 116 NONAME

View file

@ -1,44 +0,0 @@
#include "imagehandler.h"
#include <QGraphicsObject>
#include <QImage>
#include <QPainter>
#include <QStyleOptionGraphicsItem>
#include <QDebug>
ImageHandler::ImageHandler(QObject *parent) :
QObject(parent)
{
}
QImage ImageHandler::extractQImage(QObject *imageObj,
const double offsetX, const double offsetY,
const double width, const double height)
{
QGraphicsObject *item = qobject_cast<QGraphicsObject*>(imageObj);
if (!item) {
qDebug() << "Item is NULL";
return QImage();
}
QImage img(item->boundingRect().size().toSize(), QImage::Format_RGB32);
img.fill(QColor(255, 255, 255).rgb());
QPainter painter(&img);
QStyleOptionGraphicsItem styleOption;
item->paint(&painter, &styleOption);
if(offsetX == 0 && offsetY == 0 && width == 0 && height == 0)
return img;
else
{
return img.copy(offsetX, offsetY, width, height);
}
}
void ImageHandler::save(QObject *imageObj, const QString &path,
const double offsetX, const double offsetY,
const double width, const double height)
{
QImage img = extractQImage(imageObj, offsetX, offsetY, width, height);
img.save(path);
}

View file

@ -1,23 +0,0 @@
#ifndef IMAGEHANDLER_H
#define IMAGEHANDLER_H
#include <QObject>
#include <QImage>
class ImageHandler : public QObject
{
Q_OBJECT
public:
explicit ImageHandler(QObject *parent = 0);
QImage extractQImage(QObject *imageObj,
const double offsetX = 0 , const double offsetY = 0,
const double width = 0, const double height = 0);
public slots:
void save(QObject *item, const QString &path,
const double offsetX = 0, const double offsetY = 0,
const double width = 0, const double height = 0);
};
#endif // IMAGEHANDLER_H

View file

@ -1,6 +0,0 @@
The Debian Package qzxing
----------------------------
Comments regarding the Package
-- unknown <> Wed, 16 Nov 2011 18:02:57 +0200

View file

@ -1,5 +0,0 @@
qzxing (0.0.1) unstable; urgency=low
* Initial Release.
-- unknown <> Wed, 16 Nov 2011 18:02:57 +0200

View file

@ -1,15 +0,0 @@
Source: qzxing
Section: user/hidden
Priority: optional
Maintainer: unknown <>
Build-Depends: debhelper (>= 5), libqt4-dev
Standards-Version: 3.7.3
Homepage: <insert the upstream URL, if relevant>
Package: qzxing
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>
XB-Maemo-Display-Name: QZXing
XB-Maemo-Icon-26:

View file

@ -1,40 +0,0 @@
This package was debianized by unknown <> on
Wed, 16 Nov 2011 18:02:57 +0200.
It was downloaded from <url://example.com>
Upstream Author(s):
<put author's name and email here>
<likewise for another author>
Copyright:
<Copyright (C) YYYY Name OfAuthor>
<likewise for another author>
License:
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
The Debian packaging is (C) 2011, unknown <> and
is licensed under the GPL, see above.
# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.

View file

@ -1,91 +0,0 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
configure: configure-stamp
configure-stamp:
dh_testdir
# qmake PREFIX=/usr# Uncomment this line for use without Qt Creator
touch configure-stamp
build: build-stamp
build-stamp: configure-stamp
dh_testdir
# Add here commands to compile the package.
# $(MAKE) # Uncomment this line for use without Qt Creator
#docbook-to-man debian/qzxing.sgml > qzxing.1
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
$(MAKE) clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/qzxing.
$(MAKE) INSTALL_ROOT="$(CURDIR)"/debian/qzxing install
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
# dh_install
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_python
# dh_installinit
# dh_installcron
# dh_installinfo
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_makeshlibs
dh_installdeb
# dh_shlibdeps # Uncomment this line for use without Qt Creator
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

View file

@ -1,6 +0,0 @@
The Debian Package qzxing
----------------------------
Comments regarding the Package
-- unknown <> Mon, 14 May 2012 15:23:23 +0300

View file

@ -1,5 +0,0 @@
qzxing (0.0.1) unstable; urgency=low
* Initial Release.
-- unknown <> Mon, 14 May 2012 15:23:23 +0300

View file

@ -1,14 +0,0 @@
Source: qzxing
Section: user/other
Priority: optional
Maintainer: unknown <>
Build-Depends: debhelper (>= 5), libqt4-dev
Standards-Version: 3.7.3
Homepage: <insert the upstream URL, if relevant>
Package: qzxing
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>
XSBC-Maemo-Display-Name: QZXing

View file

@ -1,40 +0,0 @@
This package was debianized by unknown <> on
Mon, 14 May 2012 15:23:23 +0300.
It was downloaded from <url://example.com>
Upstream Author(s):
<put author's name and email here>
<likewise for another author>
Copyright:
<Copyright (C) YYYY Name OfAuthor>
<likewise for another author>
License:
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
The Debian packaging is (C) 2012, unknown <> and
is licensed under the GPL, see above.
# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.

View file

@ -1,70 +0,0 @@
AutoGenerateAegisFile
<!-- Aegis manifest declares the security credentials required by an
application to run correctly. By default, a manifest file will be
created or updated automatically as a part of build.
The detection of required credentials is based on static scan of
application binaries. In some cases, the scan may not be able to
detect the correct set of permissions. If this is the case, you must
declare the credentials required by your application in this file.
To create a manifest file automatically as a part of build (DEFAULT):
* Make sure this file starts with the string "AutoGenerateAegisFile" (without quotes).
* Alternatively, it can also be completely empty.
To provide a manifest yourself:
* List the correct credentials for the application in this file.
* Some commented-out examples of often required tokens are provided.
* Ensure the path to your application binary given in
'<for path="/path/to/app" />' is correct.
* Please do not request more credentials than what your application
actually requires.
To disable manifest file:
* Replace this file with a file starting with the string "NoAegisFile" (without quotes).
* Final application package will not contain a manifest.
-->
<aegis>
<request policy="add">
<!-- Make a GSM call, send text messages (SMS). -->
<!--
<credential name="Cellular" />
-->
<!-- Access Facebook social data. -->
<!--
<credential name="FacebookSocial" />
-->
<!-- Read access to data stored in tracker. -->
<!--
<credential name="TrackerReadAccess" />
-->
<!-- Read and write access to data stored in tracker. -->
<!--
<credential name="TrackerWriteAccess" />
-->
<!-- Read Location information. -->
<!--
<credential name="Location" />
-->
<!-- Access to Audio, Multimedia and Camera. -->
<!--
<credential name="GRP::pulse-access" />
<credential name="GRP::video" />
<credential name="GRP::audio" />
-->
</request>
<for path="/opt/QZXing/bin/QZXing" />
<for path="applauncherd-launcher::/usr/bin/applauncherd.bin" id="" />
</aegis>

View file

@ -1,91 +0,0 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
configure: configure-stamp
configure-stamp:
dh_testdir
# qmake PREFIX=/usr# Uncomment this line for use without Qt Creator
touch configure-stamp
build: build-stamp
build-stamp: configure-stamp
dh_testdir
# Add here commands to compile the package.
# $(MAKE) # Uncomment this line for use without Qt Creator
#docbook-to-man debian/qzxing.sgml > qzxing.1
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
$(MAKE) clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/qzxing.
$(MAKE) INSTALL_ROOT="$(CURDIR)"/debian/qzxing install
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
# dh_install
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_python
# dh_installinit
# dh_installcron
# dh_installinfo
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_makeshlibs
dh_installdeb
# dh_shlibdeps # Uncomment this line for use without Qt Creator
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

View file

@ -1,114 +0,0 @@
#include "qzxing.h"
#include <zxing/common/GlobalHistogramBinarizer.h>
#include <zxing/Binarizer.h>
#include <zxing/BinaryBitmap.h>
#include <zxing/MultiFormatReader.h>
#include <zxing/DecodeHints.h>
#include "CameraImageWrapper.h"
#include "imagehandler.h"
using namespace zxing;
QZXing::QZXing(QObject *parent) : QObject(parent)
{
decoder = new MultiFormatReader();
setDecoder(DecoderFormat_QR_CODE |
DecoderFormat_DATA_MATRIX |
DecoderFormat_UPC_E |
DecoderFormat_UPC_A |
DecoderFormat_EAN_8 |
DecoderFormat_EAN_13 |
DecoderFormat_CODE_128 |
DecoderFormat_CODE_39 |
DecoderFormat_ITF |
DecoderFormat_Aztec);
imageHandler = new ImageHandler();
}
void QZXing::setDecoder(DecoderFormatType hint)
{
DecodeHints newHints;
if(hint & DecoderFormat_QR_CODE)
newHints.addFormat((BarcodeFormat)BarcodeFormat_QR_CODE);
if(hint & DecoderFormat_DATA_MATRIX)
newHints.addFormat((BarcodeFormat)BarcodeFormat_DATA_MATRIX);
if(hint & DecoderFormat_UPC_E)
newHints.addFormat((BarcodeFormat)BarcodeFormat_UPC_E);
if(hint & DecoderFormat_UPC_A)
newHints.addFormat((BarcodeFormat)BarcodeFormat_UPC_A);
if(hint & DecoderFormat_EAN_8)
newHints.addFormat((BarcodeFormat)BarcodeFormat_EAN_8);
if(hint & DecoderFormat_EAN_13)
newHints.addFormat((BarcodeFormat)BarcodeFormat_EAN_13);
if(hint & DecoderFormat_CODE_128)
newHints.addFormat((BarcodeFormat)BarcodeFormat_CODE_128);
if(hint & DecoderFormat_CODE_39)
newHints.addFormat((BarcodeFormat)BarcodeFormat_CODE_39);
if(hint & DecoderFormat_ITF)
newHints.addFormat((BarcodeFormat)BarcodeFormat_ITF);
if(hint & DecoderFormat_Aztec)
newHints.addFormat((BarcodeFormat)BarcodeFormat_AZTEC);
supportedFormats = newHints.getCurrentHint();
}
QString QZXing::decodeImage(QImage image)
{
Ref<Result> res;
emit decodingStarted();
try{
Ref<LuminanceSource> imageRef(new CameraImageWrapper(image));
GlobalHistogramBinarizer* binz = new GlobalHistogramBinarizer(imageRef);
Ref<Binarizer> bz (binz);
BinaryBitmap* bb = new BinaryBitmap(bz);
Ref<BinaryBitmap> ref(bb);
res = ((MultiFormatReader*)decoder)->decode(ref, DecodeHints((int)supportedFormats));
QString string = QString(res->getText()->getText().c_str());
emit tagFound(string);
emit decodingFinished(true);
return string;
}
catch(zxing::Exception& e)
{
emit decodingFinished(false);
return "";
}
}
QString QZXing::decodeImageQML(QObject *item)
{
return decodeSubImageQML(item);
}
QString QZXing::decodeSubImageQML(QObject* item,
const double offsetX, const double offsetY,
const double width, const double height)
{
if(item == NULL)
{
emit decodingFinished(false);
return "";
}
QImage img = ((ImageHandler*)imageHandler)->extractQImage(item, offsetX, offsetY, width, height);
return decodeImage(img);
}

View file

@ -1,89 +0,0 @@
#ifndef QZXING_H
#define QZXING_H
#include "QZXing_global.h"
#include <QObject>
#include <QImage>
#if QT_VERSION >= 0x040700
#include <QtDeclarative>
#endif
/**
* A class containing a very very small subset of the ZXing library.
* Created for ease of use.
*
* Anyone interested in using more technical stuff
* from the ZXing library is welcomed to add/edit on free will.
*
* Regarding DecoderFormat, by default all of those are enabled (except DataMatrix will is still not supported)
*/
class QZXINGSHARED_EXPORT QZXing : public QObject{
Q_OBJECT
Q_ENUMS(DecoderFormat)
public:
enum DecoderFormat {
DecoderFormat_None = 0,
DecoderFormat_QR_CODE = 1,
DecoderFormat_DATA_MATRIX = 2,
DecoderFormat_UPC_E = 4,
DecoderFormat_UPC_A = 8,
DecoderFormat_EAN_8 = 16,
DecoderFormat_EAN_13 = 32,
DecoderFormat_CODE_128 = 64,
DecoderFormat_CODE_39 = 128,
DecoderFormat_ITF = 256,
DecoderFormat_Aztec = 512
} ;
typedef unsigned int DecoderFormatType;
public:
QZXing(QObject *parent = NULL);
/**
* Set the enabled decoders.
* As argument it is possible to pass conjuction of decoders by using logic OR.
* e.x. setDecoder ( DecoderFormat_QR_CODE | DecoderFormat_EAN_13 | DecoderFormat_CODE_39 )
*/
void setDecoder(DecoderFormatType hint);
#if QT_VERSION >= 0x040700
static void registerQMLTypes()
{
qmlRegisterType<QZXing>("QZXing", 1, 2, "QZXing");
}
#endif
public slots:
/**
* The decoding function. Will try to decode the given image based on the enabled decoders.
*
*/
QString decodeImage(QImage image);
/**
* The decoding function accessible from QML
*/
QString decodeImageQML(QObject *item);
/**
* The decoding function accessible from QML. Able to set the decoding
* of a portion of the image.
*/
QString decodeSubImageQML(QObject* item,
const double offsetX = 0 , const double offsetY = 0,
const double width = 0, const double height = 0);
signals:
void decodingStarted();
void decodingFinished(bool succeeded);
void tagFound(QString tag);
private:
void* decoder;
DecoderFormatType supportedFormats;
QObject* imageHandler;
};
#endif // QZXING_H

View file

@ -1,37 +0,0 @@
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
/*
* Created by Christian Brunschen on 13/05/2008.
* Copyright 2008 ZXing authors All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <zxing/BarcodeFormat.h>
namespace zxing {
const char *barcodeFormatNames[] = {
"None",
"QR_CODE",
"DATA_MATRIX",
"UPC_E",
"UPC_A",
"EAN_8",
"EAN_13",
"CODE_128",
"CODE_39",
"ITF",
"AZTEC"
};
}

Some files were not shown because too many files have changed in this diff Show more