移除souce属性

This commit is contained in:
2026-09-10 09:20:45 +08:00
parent 5f96e8d592
commit e9d601a3e8
13 changed files with 36 additions and 131 deletions
+1 -12
View File
@@ -20,17 +20,6 @@ PicCounterItem::PicCounterItem(QGraphicsItem *parent, QGraphicsScene *scene, con
{
}
QVariant PicCounterItem::source()
{
return PicTextItem::source();
}
void PicCounterItem::setSource(QVariant var)
{
PicTextItem::setSource(var);
setCounter(counterType(), digitalNum(), m_displayNum);
}
void PicCounterItem::setCounter(COUNTER_TYPE type, int digitalNum, int displayNum)
{
if(type != COUNTER_TYPE_1 && type != COUNTER_TYPE_2) {
@@ -155,5 +144,5 @@ void PicCounterItem::saveCustomAttrs(QXmlStreamAttributes &attrs)
void PicCounterItem::letterSpaceChanged()
{
setSource(source());
setCounter(counterType(), digitalNum(), m_displayNum);
}
-3
View File
@@ -10,9 +10,6 @@ class PicCounterItem : public PicTextItem
public:
explicit PicCounterItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0, const SourceType type = SourceType::COUNTER);
virtual QVariant source() override;
virtual void setSource(QVariant var) override;
void setCounter(COUNTER_TYPE type, int digitalNum, int displayNum);
COUNTER_TYPE counterType() const { return m_counterType; }
+2 -25
View File
@@ -86,30 +86,6 @@ PicDateItem::PicDateItem(QGraphicsItem *parent, QGraphicsScene *scene, const Sou
// m_timer.start();
}
QVariant PicDateItem::source()
{
return m_model.datetimePattern;
}
void PicDateItem::setSource(QVariant var)
{
m_model.datetimePattern = var.toString();
if(m_model.datetimePattern.isEmpty())
return;
// 重新计算最长显示尺寸(以防 font()/letterSpace 改变时未重算)
m_maxDateTimeStr = generateMaxDateTimeString(m_model, font());
if (m_maxDateTimeStr.isEmpty()) {
m_maxSize = QSize();
} else {
QFontMetrics fm(font());
m_maxSize = QSize(fm.horizontalAdvance(m_maxDateTimeStr), fm.height());
}
m_currDateTimeStr = ItemUtils::generateTxtFromDateItemModel(m_model, QDateTime::currentDateTime());
applyModify();
}
void PicDateItem::setModel(DateItemModel model)
{
m_model = std::move(model);
@@ -134,7 +110,8 @@ void PicDateItem::setModel(DateItemModel model)
qDebug() << "PicDateItem::setModel timing(us): generate=" << genUs << ", fm=" << fmUs << ", total=" << (genUs + fmUs);
setSource(m_model.datetimePattern);
m_currDateTimeStr = ItemUtils::generateTxtFromDateItemModel(m_model, QDateTime::currentDateTime());
applyModify();
}
const DateItemModel& PicDateItem::model() const
-3
View File
@@ -13,9 +13,6 @@ public:
PicDateItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0, const SourceType type = SourceType::DATETIME);
virtual ~PicDateItem() {}
virtual QVariant source() override;
virtual void setSource(QVariant var) override;
void setModel(DateItemModel model);
const DateItemModel& model() const;
+6 -6
View File
@@ -6,19 +6,19 @@ PicImageItem::PicImageItem(QGraphicsItem *parent, QGraphicsScene *scene, const S
}
QVariant PicImageItem::source()
QString PicImageItem::imagePath()
{
return m_imgPath;
}
void PicImageItem::setSource(QVariant var)
void PicImageItem::setImagePath(const QString& path)
{
QImage img(var.toString());
QImage img(path);
if(img.isNull())
return;
m_img = img;
m_imgPath = var.toString();
m_imgPath = path;
applyModify();
}
@@ -29,12 +29,12 @@ QImage PicImageItem::itemImage()
void PicImageItem::setCustomAttrs(const QXmlStreamAttributes &attrs)
{
setSource(attrs.value("source").toString());
setImagePath(attrs.value("source").toString());
}
void PicImageItem::saveCustomAttrs(QXmlStreamAttributes &attrs)
{
attrs.append("source", source().toString());
attrs.append("source", imagePath());
}
void PicImageItem::colorReversalChanged()
+2 -2
View File
@@ -9,8 +9,8 @@ class PicImageItem : public PicTextItem
public:
explicit PicImageItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0, const SourceType type = SourceType::IMAGE);
virtual QVariant source() override;
virtual void setSource(QVariant var) override;
QString imagePath();
void setImagePath(const QString& path);
protected:
virtual QImage itemImage() override;
-14
View File
@@ -14,20 +14,6 @@ PicScheduleShiftItem::PicScheduleShiftItem(QGraphicsItem *parent, QGraphicsScene
// m_updateTimer.start();
}
QVariant PicScheduleShiftItem::source()
{
return QVariant();
}
void PicScheduleShiftItem::setSource(QVariant var)
{
// 重新计算基于当前字体的最大名称像素宽度
m_maxSize = calcMaxSize();
m_currScheduleName = findScheduleName(QTime::currentTime());
applyModify();
}
const QVector<ScheduleModel>& PicScheduleShiftItem::schedules() const
{
return m_schedules;
+1 -3
View File
@@ -24,10 +24,8 @@ class PicScheduleShiftItem : public PicTextItem
public:
PicScheduleShiftItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0, const SourceType type = SourceType::SCHEDULE_SHIFT);
virtual QVariant source();
virtual void setSource(QVariant var);
const QVector<ScheduleModel>& schedules() const;
void setSchedules(QVector<ScheduleModel> schedules);
bool updateScheduleName();
-10
View File
@@ -24,16 +24,6 @@ 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;
-3
View File
@@ -12,9 +12,6 @@ public:
const SourceType type = SourceType::CODE);
virtual ~PicCodeItem();
virtual QVariant source() override;
virtual void setSource(QVariant var) override;
void setBarcodeViewModel(const BarcodeViewModel& vm);
BarcodeViewModel barcodeViewModel();
+11 -17
View File
@@ -34,11 +34,6 @@ PicTextItem::~PicTextItem()
}
QVariant PicTextItem::source()
{
return m_source;
}
QImage PicTextItem::applyImgeTranslation(QImage img)
{
auto scaledWidth = boldMultiple() * img.width();
@@ -92,13 +87,9 @@ QImage PicTextItem::applyImgeTranslation(QImage img)
return ret;
}
void PicTextItem::setSource(QVariant var)
void PicTextItem::setText(const QString& txt)
{
m_source = var;
if(SourceType::TEXT != sourceType())
return;
m_source = txt;
m_untransImage = strToImage(m_source.toString());
applyModify();
}
@@ -125,7 +116,9 @@ void PicTextItem::setCustomFont(QString name)
newFont.setLetterSpacing(QFont::AbsoluteSpacing, letterSpace());
newFont.setStyleStrategy(QFont::NoAntialias);
setFont(newFont);
setSource(source());
m_untransImage = strToImage(m_source.toString());
applyModify();
}
int PicTextItem::letterSpace()
@@ -366,23 +359,24 @@ QImage PicTextItem::itemImage()
void PicTextItem::setCustomAttrs(const QXmlStreamAttributes &attrs)
{
auto sourceVar = attrs.value("source").toString();
PicTextItem::setSource(sourceVar);
auto txt = attrs.value("source").toString();
setText(txt);
}
void PicTextItem::saveCustomAttrs(QXmlStreamAttributes &attrs)
{
attrs.append("source", PicTextItem::source().toString());
attrs.append("source", text());
}
void PicTextItem::colorReversalChanged()
{
setSource(source());
applyModify();
}
void PicTextItem::letterSpaceChanged()
{
setSource(source());
m_untransImage = strToImage(m_source.toString());
applyModify();
}
QImage PicTextItem::strToImage(const QString &str)
+6 -3
View File
@@ -93,9 +93,6 @@ public:
SourceType sourceType() const { return m_sourceType; }
virtual QVariant source();
virtual void setSource(QVariant var);
// 粗体,即水平拉伸倍率, 1倍率为保持原样
int boldMultiple() { return m_boldMultiple; }
int setBoldMultiple(int multiple);
@@ -163,6 +160,12 @@ public:
QPointF clampItemPos(const QPointF& p);
QString text() {
return m_source.toString();
}
void setText(const QString& txt);
signals:
void lostFocus(PicTextItem *item);
void selectedChange(QGraphicsItem *item);
+7 -30
View File
@@ -262,7 +262,7 @@ void TestPrintWidget::on_addButton_pressed(const SourceType type)
pPicScene->clearSelection();
textItem = new PicTextItem(0, 0, type);
pPicScene->addItem(textItem);
textItem->setSource(QString(""));
textItem->setText("");
QList<QGraphicsItem *> items = pPicScene->items();
if(pPicScene->items().count()>1){
@@ -294,7 +294,7 @@ void TestPrintWidget::onEditItemDone()
continue;
}
pTextItem->setSource(content);
pTextItem->setText(content);
if(pPicScene->items().count() == 1) {
pTextItem->setPos(pTextItem->clampItemPos(pTextItem->scenePos()));
@@ -330,7 +330,7 @@ void TestPrintWidget::getShowSelectItemText()
// 对于文本item,将它的文本显示到编辑框
if(lastSelectedTxtItem->sourceType() == SourceType::TEXT) {
ui.m_LineEdit->setEnabled(true);
m_LineEdit->setText(lastSelectedTxtItem->source().toString());
m_LineEdit->setText(lastSelectedTxtItem->text());
}
// pViewer->centerOn(lastSelectedTxtItem);
@@ -512,7 +512,6 @@ bool TestPrintWidget::cacheSelectedLayerForPaste(PicTextItem *srcItem)
if (!srcItem) return false;
m_copiedSourceType = srcItem->sourceType();
m_copiedSourceValue = srcItem->source();
m_copiedHtml = srcItem->toHtml();
m_copiedSpecialConditions = srcItem->SpecialConditions;
m_copiedCatchCnt1StartValue = srcItem->CatchCnt1StartValue;
@@ -549,33 +548,11 @@ void TestPrintWidget::pasteCopiedLayer()
pPicScene->clearSelection();
pPicScene->addItem(newItem);
newItem->setHtml(m_copiedHtml);
if (m_copiedSourceType != SourceType::UNKNOWN) {
newItem->setAttrs(m_copiedAttrs);
}
newItem->setHtml(m_copiedHtml);
// 某些类型需要显式恢复 source 才会正确重绘(如条码/二维码、图片、文本)
if (m_copiedSourceType == SourceType::TEXT ||
m_copiedSourceType == SourceType::IMAGE ||
m_copiedSourceType == SourceType::CODE) {
newItem->setSource(m_copiedSourceValue);
}
// 计数器单独恢复类型和位数,避免仅靠 attrs 导致内容不完整
if (m_copiedSourceType == SourceType::COUNTER) {
auto dstCounter = dynamic_cast<PicCounterItem*>(newItem);
if (dstCounter) {
dstCounter->setCustomFont(m_copiedCounterFontFamily);
dstCounter->setLetterSpace(m_copiedCounterLetterSpace);
int displayNum = static_cast<COUNTER_TYPE>(m_copiedCounterType) == COUNTER_TYPE_1 ? m_printSettingModel.cnt1Settings.currValue : m_printSettingModel.cnt2Settings.currValue;
dstCounter->setCounter(static_cast<COUNTER_TYPE>(m_copiedCounterType), m_copiedCounterDigitalNum, displayNum);
}
}
newItem->SpecialConditions = m_copiedSpecialConditions;
newItem->CatchCnt1StartValue = m_copiedCatchCnt1StartValue;
newItem->CatchCnt1CurrValue = m_copiedCatchCnt1CurrValue;
auto rect = newItem->boundingRect();
// 每次粘贴会往右偏移一次
@@ -706,10 +683,10 @@ void TestPrintWidget::onImageLoaderAccepted()
QString htmlImg = QString("<img src=\"%1\" />").arg(imgPath);
pPicScene->clearSelection();
PicTextItem* item = new PicImageItem(0, 0, SourceType::IMAGE);
PicImageItem* item = new PicImageItem(0, 0, SourceType::IMAGE);
item->setHtml(htmlImg);
pPicScene->addItem(item);
item->setSource(imgPath);
item->setImagePath(imgPath);
auto boundingRect = pPicScene->itemsBoundingRect();
int y = sysPara->para.canvasHeight - item->boundingRect().height();
item->setPos(x_item, y);