BarcodeInvoker.cpp Example File
custombarcodeinvoker/src/BarcodeInvoker.cpp
#include "BarcodeInvoker.hpp"
#include <bb/system/CardDoneMessage>
#include <bb/system/InvokeManager>
#include <bb/system/InvokeRequest>
#include <bb/system/InvokeTargetReply>
#include <QtCore/QtDebug>
using namespace bb::system;
BarcodeInvoker::BarcodeInvoker(QObject* parent)
: QObject(parent)
{
bool ok = connect(new InvokeManager(this), SIGNAL(childCardDone(const bb::system::CardDoneMessage&)),
this, SLOT(onChildCardDone(const bb::system::CardDoneMessage&)));
Q_ASSERT(ok);
Q_UNUSED(ok);
}
void BarcodeInvoker::onInvokeButtonClicked() const
{
InvokeManager* imanager = qobject_cast<InvokeManager*>(sender());
InvokeRequest invokeRequest;
invokeRequest.setTarget("com.example.CustomBarcodeScanner");
invokeRequest.setAction("community.action.SCANBARCODE");
const InvokeTargetReply *invokeReply = imanager->invoke(invokeRequest);
if (!invokeReply)
qWarning() << "failed to sent invoke request message";
}
void BarcodeInvoker::onChildCardDone(const bb::system::CardDoneMessage &message)
{
setBarcode(message.data());
}
QString BarcodeInvoker::barcode() const
{
return m_barcode;
}
void BarcodeInvoker::setBarcode(const QString &barcode)
{
if (m_barcode == barcode)
return;
m_barcode = barcode;
Q_EMIT barcodeChanged();
}