Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.16)
cmake_minimum_required(VERSION 3.16.3)

project(QmlBarcodeReader LANGUAGES CXX)
project(QmlBarcodeApp LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

Expand All @@ -13,6 +13,15 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
#Check this file for any *_DIR variable definitions and other
include("cmake/Locations.cmake")

set(SOURCES
ColorController.h
ColorController.cpp
VersionHelper.h
FormatHelper.h
FormatHelper.cpp
main.cpp
)

if(QT_VERSION_MAJOR EQUAL 5)
qt5_add_resources(RSCS Qt5qml.qrc)
else()
Expand All @@ -35,15 +44,15 @@ if(ANDROID)
${QT_ANDROID_PACKAGE_SOURCE_DIR}/gradlew
${QT_ANDROID_PACKAGE_SOURCE_DIR}/res/values/libs.xml
)
add_library(${PROJECT_NAME} SHARED main.cpp ${RSCS} ${ANDROID_SOURCES})
add_library(${PROJECT_NAME} SHARED ${SOURCES} ${RSCS} ${ANDROID_SOURCES})
else()
qt_add_executable(${PROJECT_NAME} MANUAL_FINALIZATION main.cpp ${RSCS})
qt_add_executable(${PROJECT_NAME} MANUAL_FINALIZATION ${SOURCES} ${RSCS})
set_target_properties(${PROJECT_NAME} PROPERTIES
QT_ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android"
)
endif()
else()
add_executable(${PROJECT_NAME} main.cpp ${RSCS})
add_executable(${PROJECT_NAME} ${SOURCES} ${RSCS})
endif()

target_link_libraries(${PROJECT_NAME} PRIVATE ${REQUIRED_QT_LIBS} SCodes)
Expand Down
26 changes: 26 additions & 0 deletions examples/QmlBarcodeApp/ColorController.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#include "ColorController.h"

ColorController::ColorController(QObject *parent)
: QObject{parent}
{}

bool ColorController::checkColor(const QString &color)
{
return QColor(color).isValid();
}

QColor ColorController::constractColor(const QColor &color)
{
// Counting the perceptive luminance - human eye favors green color...
double luminance = (0.299 * color.red() + 0.587 * color.green() + 0.114 * color.blue())/255;

if (luminance > 0.5)
return QColorConstants::Black; // bright colors - black font
else
return QColorConstants::White; // dark colors - white font
}

QColor ColorController::convertStringToColor(const QString &color)
{
return QColor(color);
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#ifndef COLORCONTROLLER_H
#define COLORCONTROLLER_H
#pragma once

#include <QObject>
#include <QColor>
Expand All @@ -11,8 +10,7 @@ class ColorController : public QObject
explicit ColorController(QObject *parent = nullptr);
Q_INVOKABLE static QColor convertStringToColor(const QString &color);

public slots:
bool checkColor(const QString &color);
};
Q_INVOKABLE bool checkColor(const QString &color);

#endif // COLORCONTROLLER_H
Q_INVOKABLE QColor constractColor(const QColor& color);
};
39 changes: 39 additions & 0 deletions examples/QmlBarcodeApp/FormatHelper.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#include "FormatHelper.h"

#include "SBarcodeFormat.h"

using namespace SCodes;

FormatHelper::FormatHelper(QObject *parent)
: QObject(parent)
{
}

QVariantList FormatHelper::supportedFormats() const
{
static const std::vector<SBarcodeFormat> formats = {
SBarcodeFormat::QRCode,
SBarcodeFormat::Aztec,
SBarcodeFormat::Codabar,
SBarcodeFormat::Code39,
SBarcodeFormat::Code93,
SBarcodeFormat::Code128,
SBarcodeFormat::DataMatrix,
SBarcodeFormat::EAN8,
SBarcodeFormat::EAN13,
SBarcodeFormat::ITF,
SBarcodeFormat::PDF417,
SBarcodeFormat::UPCA,
SBarcodeFormat::UPCE,
// add any new ones here in the future
};

QVariantList list;
for (auto fmt : formats) {
QVariantMap item;
item["text"] = SCodes::toString(fmt);
item["value"] = QVariant::fromValue(fmt);
list.append(item);
}
return list;
}
18 changes: 18 additions & 0 deletions examples/QmlBarcodeApp/FormatHelper.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#pragma once

#include <QObject>
#include <qqml.h>

class FormatHelper : public QObject
{
Q_OBJECT
QML_ELEMENT
QML_SINGLETON

Q_PROPERTY(QVariantList supportedFormats READ supportedFormats CONSTANT FINAL)

public:
explicit FormatHelper(QObject *parent = nullptr);

QVariantList supportedFormats() const;
};
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,13 @@ CONFIG += c++17

DEFINES += QT_DEPRECATED_WARNINGS

HEADERS += \
ColorController.h \
VersionHelper.h

SOURCES += \
main.cpp
main.cpp \
ColorController.cpp

equals(QT_MAJOR_VERSION, 6) {
RESOURCES += Qt6qml.qrc
Expand Down
20 changes: 20 additions & 0 deletions examples/QmlBarcodeApp/Qt5qml.qrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<RCC>
<qresource prefix="/">
<file>qml/Qt5ScannerPage.qml</file>
<file>qml/ScannerOverlay.qml</file>
<file>qml/Theme.qml</file>
<file>qml/main.qml</file>
<file>qml/GeneratorPage.qml</file>
<file>qml/CButton.qml</file>
<file>qml/CTextField.qml</file>
<file>qml/CComboBox.qml</file>
<file>icons/logo.png</file>
<file>qml/CTabButton.qml</file>
<file>qml/Subtrack.qml</file>
<file>icons/close.svg</file>
<file>icons/download.svg</file>
<file>icons/obraz.png</file>
<file>icons/arrow_drop_down.svg</file>
<file>icons/check.svg</file>
</qresource>
</RCC>
20 changes: 20 additions & 0 deletions examples/QmlBarcodeApp/Qt6qml.qrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<RCC>
<qresource prefix="/">
<file>qml/Qt6ScannerPage.qml</file>
<file>qml/ScannerOverlay.qml</file>
<file>qml/Theme.qml</file>
<file>qml/GeneratorPage.qml</file>
<file>qml/CButton.qml</file>
<file>qml/CTextField.qml</file>
<file>qml/CComboBox.qml</file>
<file>icons/logo.png</file>
<file>icons/arrow_drop_down.svg</file>
<file>icons/check.svg</file>
<file>icons/close.svg</file>
<file>icons/download.svg</file>
<file>icons/obraz.png</file>
<file>qml/CTabButton.qml</file>
<file>qml/Subtrack.qml</file>
<file>qml/main.qml</file>
</qresource>
</RCC>
21 changes: 21 additions & 0 deletions examples/QmlBarcodeApp/VersionHelper.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#pragma once

#include <QObject>
#include <QtGlobal>

class VersionHelper : public QObject
{
Q_OBJECT
Q_PROPERTY(bool isQt6 READ isQt6 CONSTANT)

public:
explicit VersionHelper(QObject *parent = nullptr) : QObject(parent) {}

inline bool isQt6() const {
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
return true;
#else
return false;
#endif
}
};
Loading