From fb3a6182fc7db83ffac04752c37192f3dc1acd5f Mon Sep 17 00:00:00 2001 From: MoroccanMalinois Date: Mon, 27 Mar 2017 17:39:47 +0000 Subject: Make QtMultimedia dependency optional --- main.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index ab5ecae0..67470a8e 100644 --- a/main.cpp +++ b/main.cpp @@ -39,7 +39,6 @@ #include "WalletManager.h" #include "Wallet.h" #include "QRCodeImageProvider.h" -#include "QrCodeScanner.h" #include "PendingTransaction.h" #include "UnsignedTransaction.h" #include "TranslationManager.h" @@ -57,6 +56,10 @@ #include "daemon/DaemonManager.h" #endif +#ifdef WITH_SCANNER +#include "QrCodeScanner.h" +#endif + void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) { // Send all message types to logger @@ -131,7 +134,9 @@ int main(int argc, char *argv[]) qRegisterMetaType(); qRegisterMetaType(); +#ifdef WITH_SCANNER qmlRegisterType("moneroComponents.QRCodeScanner", 1, 0, "QRCodeScanner"); +#endif QQmlApplicationEngine engine; @@ -197,19 +202,27 @@ int main(int argc, char *argv[]) engine.rootContext()->setContextProperty("defaultAccountName", accountName); engine.rootContext()->setContextProperty("applicationDirectory", QApplication::applicationDirPath()); + bool builtWithScanner = false; +#ifdef WITH_SCANNER + builtWithScanner = true; +#endif + engine.rootContext()->setContextProperty("builtWithScanner", builtWithScanner); + // Load main window (context properties needs to be defined obove this line) engine.load(QUrl(QStringLiteral("qrc:///main.qml"))); QObject *rootObject = engine.rootObjects().first(); - bool builtWithScanner = false; #ifdef WITH_SCANNER - builtWithScanner = true; QObject *qmlCamera = rootObject->findChild("qrCameraQML"); - QCamera *camera_ = qvariant_cast(qmlCamera->property("mediaObject")); - QObject *qmlFinder = rootObject->findChild("QrFinder"); - qobject_cast(qmlFinder)->setSource(camera_); + if( qmlCamera ){ + qDebug() << "QrCodeScanner : object found"; + QCamera *camera_ = qvariant_cast(qmlCamera->property("mediaObject")); + QObject *qmlFinder = rootObject->findChild("QrFinder"); + qobject_cast(qmlFinder)->setSource(camera_); + } else { + qDebug() << "QrCodeScanner : something went wrong !"; + } #endif - engine.rootContext()->setContextProperty("builtWithScanner", builtWithScanner); QObject::connect(eventFilter, SIGNAL(sequencePressed(QVariant,QVariant)), rootObject, SLOT(sequencePressed(QVariant,QVariant))); QObject::connect(eventFilter, SIGNAL(sequenceReleased(QVariant,QVariant)), rootObject, SLOT(sequenceReleased(QVariant,QVariant))); -- cgit v1.2.3