新二维码/条形码编辑逻辑
This commit is contained in:
+52
-8
@@ -1,38 +1,82 @@
|
||||
#include "piccodeitem.h"
|
||||
|
||||
|
||||
#include "ItemCommon.h"
|
||||
#include <QDebug>
|
||||
|
||||
PicCodeItem::PicCodeItem(QGraphicsItem *parent, QGraphicsScene *scene, const SourceType type)
|
||||
:PicTextItem(parent, scene, 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 imagePath;
|
||||
return m_currCodeTxt;
|
||||
}
|
||||
|
||||
void PicCodeItem::setSource(QVariant var)
|
||||
{
|
||||
imagePath = var.toString();
|
||||
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<int> counters)
|
||||
{
|
||||
m_currCounterValues = counters;
|
||||
return updateVariants();
|
||||
}
|
||||
|
||||
QImage PicCodeItem::itemImage()
|
||||
{
|
||||
return QImage(imagePath);
|
||||
return m_codeImage;
|
||||
}
|
||||
|
||||
void PicCodeItem::setCustomAttrs(const QXmlStreamAttributes &attrs)
|
||||
{
|
||||
imagePath = attrs.value("CodeImage").toString();
|
||||
auto vm = BarcodeViewModel::loadFromXml(attrs);
|
||||
setBarcodeViewModel(vm);
|
||||
}
|
||||
|
||||
void PicCodeItem::saveCustomAttrs(QXmlStreamAttributes &attrs)
|
||||
{
|
||||
attrs.append("CodeImage", imagePath);
|
||||
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user