#include "ItemGeneralSettings.h" #include "ui_ItemGeneralSettings.h" #include ItemGeneralSettings::ItemGeneralSettings(QWidget *parent) : QWidget(parent), ui(new Ui::ItemGeneralSettings) { ui->setupUi(this); m_directionButtonGroup.addButton(ui->normalRBtn, NORMAL); m_directionButtonGroup.addButton(ui->verMirrorRBtn, MIRROR_V); m_directionButtonGroup.addButton(ui->horMirrorRBtn, MIRROR_H); m_directionButtonGroup.addButton(ui->mirrorRBtn, MIRROR_VH); m_directionButtonGroup.addButton(ui->m90NHorRBtn, MIRROR_H_R270); m_directionButtonGroup.addButton(ui->a90RBtn, R90); m_directionButtonGroup.addButton(ui->m90RBtn, R270); m_directionButtonGroup.addButton(ui->m90NVerRBtn, MIRROR_V_R270); connect(&m_directionButtonGroup, static_cast(&QButtonGroup::buttonClicked), this, &ItemGeneralSettings::ondirectionChanged); } ItemGeneralSettings::~ItemGeneralSettings() { delete ui; } void ItemGeneralSettings::edit(PicTextItem *item) { m_currItem = item; if(!m_currItem) { ui->boldSpinBox->setValue(ui->boldSpinBox->minimum()); ui->txtSpanSpinBox->setValue(ui->txtSpanSpinBox->minimum()); ui->normalRBtn->setChecked(true); ui->invertCheckBox->setChecked(false); ui->previewWidget->setImg(QImage()); return; } auto b = ui->boldSpinBox->blockSignals(true); ui->boldSpinBox->setValue(item->boldMultiple()); ui->boldSpinBox->blockSignals(b); b = ui->txtSpanSpinBox->blockSignals(true); ui->txtSpanSpinBox->setValue(item->letterSpace()); ui->txtSpanSpinBox->blockSignals(b); auto dirBtn = m_directionButtonGroup.button(item->direction()); b = dirBtn->blockSignals(true); dirBtn->setChecked(true); dirBtn->blockSignals(b); b = ui->invertCheckBox->blockSignals(true); ui->invertCheckBox->setChecked(item->colorReversal()); ui->invertCheckBox->blockSignals(b); // 文字、日期、轮班可调字符间距 // 计数器类的字符间距由 @see CounterVarSet 单独调整 switch(item->sourceType()) { case SourceType::TEXT: case SourceType::DATETIME: case SourceType::SCHEDULE_SHIFT: ui->letterSpacePanel->setVisible(true); break; case SourceType::UNKNOWN: default: ui->letterSpacePanel->setVisible(false); break; } ui->previewWidget->setImg(m_currItem->preview()); } void ItemGeneralSettings::ondirectionChanged(int dir) { if(!m_currItem) { return; } m_currItem->setDirection(ItemDirectionType(dir)); m_currItem->applyModify(); ui->previewWidget->setImg(m_currItem->preview()); } void ItemGeneralSettings::onBoldSpinBoxValueChanged(int multiple) { if(m_currItem) { m_currItem->setBoldMultiple(multiple); m_currItem->applyModify(); ui->previewWidget->setImg(m_currItem->preview()); } } void ItemGeneralSettings::onLetterSpaceSpinBoxChanged(int space) { if(m_currItem) { m_currItem->setLetterSpace(space); m_currItem->applyModify(); ui->previewWidget->setImg(m_currItem->preview()); } } void ItemGeneralSettings::onColorReversalCheckBoxChecked(bool b) { if(m_currItem) { m_currItem->setColorReversal(b); m_currItem->applyModify(); ui->previewWidget->setImg(m_currItem->preview()); } }