Skip to content

Commit 8f5bdc7

Browse files
danttiaxxel
authored andcommitted
Use stricter definitions for Qt macros and usage
This allows usage in codebases that have other use for signals and emit keywords, also do proper string creation.
1 parent 9af4407 commit 8f5bdc7

File tree

4 files changed

+37
-11
lines changed

4 files changed

+37
-11
lines changed

example/CMakeLists.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,37 @@ if (ZXING_READERS)
3535
if (TARGET Qt::Gui)
3636
add_executable (ZXingQtReader ZXingQtReader.cpp ZXingQtReader.h)
3737
target_link_libraries(ZXingQtReader ZXing::ZXing Qt::Gui)
38+
target_compile_definitions(ZXingQtReader
39+
PRIVATE
40+
QT_NO_KEYWORDS
41+
QT_NO_CAST_TO_ASCII
42+
QT_NO_CAST_FROM_ASCII
43+
QT_STRICT_ITERATORS
44+
QT_NO_URL_CAST_FROM_STRING
45+
QT_NO_CAST_FROM_BYTEARRAY
46+
QT_USE_QSTRINGBUILDER
47+
QT_NO_SIGNALS_SLOTS_KEYWORDS
48+
QT_USE_FAST_OPERATOR_PLUS
49+
QT_DISABLE_DEPRECATED_BEFORE=0x060400
50+
)
3851
endif()
3952

4053
if (TARGET Qt::Multimedia AND TARGET Qt::Quick)
4154
add_executable(ZXingQtCamReader ZXingQtCamReader.cpp ZXingQtCamReader.qrc ZXingQtReader.h)
4255
target_link_libraries(ZXingQtCamReader ZXing::ZXing Qt::Gui Qt::Multimedia Qt::Quick)
56+
target_compile_definitions(ZXingQtCamReader
57+
PRIVATE
58+
QT_NO_KEYWORDS
59+
QT_NO_CAST_TO_ASCII
60+
QT_NO_CAST_FROM_ASCII
61+
QT_STRICT_ITERATORS
62+
QT_NO_URL_CAST_FROM_STRING
63+
QT_NO_CAST_FROM_BYTEARRAY
64+
QT_USE_QSTRINGBUILDER
65+
QT_NO_SIGNALS_SLOTS_KEYWORDS
66+
QT_USE_FAST_OPERATOR_PLUS
67+
QT_DISABLE_DEPRECATED_BEFORE=0x060400
68+
)
4369
endif()
4470

4571
find_package(OpenCV QUIET)

example/ZXingQtCamReader.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ int main(int argc, char *argv[])
1717
ZXingQt::registerQmlAndMetaTypes();
1818

1919
QGuiApplication app(argc, argv);
20-
app.setApplicationName("ZXingQtCamReader");
20+
app.setApplicationName(QStringLiteral("ZXingQtCamReader"));
2121
QQmlApplicationEngine engine;
2222
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
2323
engine.load(QUrl(QStringLiteral("qrc:/ZXingQt5CamReader.qml")));

example/ZXingQtReader.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ int main(int argc, char* argv[])
1616
return 1;
1717
}
1818

19-
QString filePath = argv[1];
19+
QString filePath = QString::fromUtf8(argv[1]);
2020

2121
QImage image = QImage(filePath);
2222

example/ZXingQtReader.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ public: \
316316
{ \
317317
if (name() != newVal) { \
318318
ReaderOptions::setter(newVal); \
319-
emit name##Changed(); \
319+
Q_EMIT name##Changed(); \
320320
} \
321321
} \
322322
Q_SIGNAL void name##Changed();
@@ -359,7 +359,7 @@ class BarcodeReader : public QObject, private ReaderOptions
359359
{
360360
if (formats() != newVal) {
361361
ReaderOptions::setFormats(static_cast<ZXing::BarcodeFormat>(newVal));
362-
emit formatsChanged();
362+
Q_EMIT formatsChanged();
363363
qDebug() << ReaderOptions::formats();
364364
}
365365
}
@@ -371,7 +371,7 @@ class BarcodeReader : public QObject, private ReaderOptions
371371
{
372372
if (textMode() != newVal) {
373373
ReaderOptions::setTextMode(static_cast<ZXing::TextMode>(newVal));
374-
emit textModeChanged();
374+
Q_EMIT textModeChanged();
375375
}
376376
}
377377
Q_SIGNAL void textModeChanged();
@@ -386,7 +386,7 @@ class BarcodeReader : public QObject, private ReaderOptions
386386
QAtomicInt runTime = 0;
387387
Q_PROPERTY(int runTime MEMBER runTime)
388388

389-
public slots:
389+
public Q_SLOTS:
390390
// Function should be thread safe, as it may be called from a separate thread.
391391
ZXingQt::Barcode process(const QVideoFrame& image)
392392
{
@@ -398,13 +398,13 @@ public slots:
398398
runTime = t.elapsed();
399399

400400
if (res.isValid())
401-
emit foundBarcode(res);
401+
Q_EMIT foundBarcode(res);
402402
else
403-
emit failedRead();
403+
Q_EMIT failedRead();
404404
return res;
405405
}
406406

407-
signals:
407+
Q_SIGNALS:
408408
void failedRead();
409409
void foundBarcode(ZXingQt::Barcode barcode);
410410

@@ -444,7 +444,7 @@ public slots:
444444
{
445445
if (_pool.maxThreadCount() != maxThreadCount) {
446446
_pool.setMaxThreadCount(maxThreadCount);
447-
emit maxThreadCountChanged();
447+
Q_EMIT maxThreadCountChanged();
448448
}
449449
}
450450
Q_SIGNAL void maxThreadCountChanged();
@@ -501,7 +501,7 @@ inline void registerQmlAndMetaTypes()
501501
qRegisterMetaType<ZXingQt::Barcode>("Barcode");
502502

503503
qmlRegisterUncreatableMetaObject(
504-
ZXingQt::staticMetaObject, "ZXing", 1, 0, "ZXing", "Access to enums & flags only");
504+
ZXingQt::staticMetaObject, "ZXing", 1, 0, "ZXing", QStringLiteral("Access to enums & flags only"));
505505
qmlRegisterType<ZXingQt::BarcodeReader>("ZXing", 1, 0, "BarcodeReader");
506506
}
507507

0 commit comments

Comments
 (0)