#include "piccodeitem.h" #include "ItemCommon.h" #include PicCodeItem::PicCodeItem(QGraphicsItem *parent, QGraphicsScene *scene, const SourceType type) :PicTextItem(parent, scene, type), m_currCounterValues({0, 0}) { setFlag(QGraphicsItem::ItemIsMovable); setFlag(QGraphicsItem::ItemIsSelectable); setFlag(QGraphicsItem::ItemIsFocusable); setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); connect(&m_dateVarTimer, &QTimer::timeout, this, [this](){ updateVariants(); }); // m_dateVarTimer.start(50); } PicCodeItem::~PicCodeItem() { m_dateVarTimer.stop(); } QVariant PicCodeItem::source() { return m_currCodeTxt; } void PicCodeItem::setSource(QVariant var) { applyModify(); } void PicCodeItem::setBarcodeViewModel(const BarcodeViewModel &vm) { m_vm = vm; m_currCodeTxt = ""; updateVariants(); qInfo() << "Barcode model: \r\n" << qPrintable(BarcodeViewModel::toString(vm)); } BarcodeViewModel PicCodeItem::barcodeViewModel() { return m_vm; } bool PicCodeItem::updateVariants(const QVector counters) { m_currCounterValues = counters; return updateVariants(); } QImage PicCodeItem::itemImage() { return m_codeImage; } void PicCodeItem::setCustomAttrs(const QXmlStreamAttributes &attrs) { auto vm = BarcodeViewModel::loadFromXml(attrs); setBarcodeViewModel(vm); } void PicCodeItem::saveCustomAttrs(QXmlStreamAttributes &attrs) { BarcodeViewModel::saveToXml(m_vm, attrs); } bool PicCodeItem::updateVariants() { auto txt = generateTxtFromBarcodeViewModel(m_vm, {m_currCounterValues[0], m_currCounterValues[1]}, QDateTime::currentDateTime()); if(txt != m_currCodeTxt || m_currCodeTxt.isEmpty()) { m_currCodeTxt = txt; m_codeImage = generateBarcodeImage(txt, m_vm.type, m_vm.format); applyModify(); return true; } return false; }