111 lines
3.4 KiB
C++
111 lines
3.4 KiB
C++
#include "ItemGeneralSettings.h"
|
|
#include "ui_ItemGeneralSettings.h"
|
|
#include <QDebug>
|
|
|
|
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<void(QButtonGroup::*)(int)>(&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());
|
|
}
|
|
}
|