#include "DateFormatEditor.h" #include "ui_DateFormatEditor.h" DateFormatEditor::DateFormatEditor(QWidget *parent) : QWidget(parent), ui(new Ui::DateFormatEditor) { ui->setupUi(this); connect(ui->btnPoint,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnColon,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnComma,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnSlash,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnSemicolon,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnUnderline,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnDash,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnBackSpace,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnHour,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnMinute,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnSecond,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnDay,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnMonth,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnYear4,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnYear2,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnWeekOfYear,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnWeek,&QPushButton::clicked,this,&DateFormatEditor::buttonClickedSlot); connect(ui->btnSpace, &QPushButton::clicked, this, &DateFormatEditor::buttonClickedSlot); setViewModel(m_vm); } DateFormatEditor::~DateFormatEditor() { delete ui; } void DateFormatEditor::setViewModel(DateFormatEditorVM vm) { m_vm = std::move(vm); auto b = ui->lineEdit_DateFormat->blockSignals(true); ui->lineEdit_DateFormat->setText(m_vm.pattern); ui->lineEdit_DateFormat->blockSignals(b); b = ui->expirationNumCBox->blockSignals(true); ui->expirationNumCBox->setValue(m_vm.expirationValue); ui->expirationNumCBox->blockSignals(b); b = ui->expirationCBox->blockSignals(true); ui->expirationCBox->setCurrentIndex(m_vm.expirationType); ui->expirationCBox->blockSignals(b); } DateFormatEditorVM DateFormatEditor::viewModel() { m_vm.pattern = ui->lineEdit_DateFormat->text(); m_vm.expirationValue = ui->expirationNumCBox->value(); m_vm.expirationType = (EXPIRATION_TYPE)(ui->expirationCBox->currentIndex()); return m_vm; } void DateFormatEditor::buttonClickedSlot() { QPushButton* btn = qobject_cast(sender()); if(btn == ui->btnPoint){ ui->lineEdit_DateFormat->insert("."); }else if(btn == ui->btnColon){ ui->lineEdit_DateFormat->insert(":"); }else if(btn == ui->btnComma){ ui->lineEdit_DateFormat->insert(","); }else if(btn == ui->btnSlash){ ui->lineEdit_DateFormat->insert("/"); }else if(btn == ui->btnSemicolon){ ui->lineEdit_DateFormat->insert(";"); }else if(btn == ui->btnUnderline){ ui->lineEdit_DateFormat->insert("_"); }else if(btn == ui->btnDash){ ui->lineEdit_DateFormat->insert("-"); }else if(btn == ui->btnBackSpace){ ui->lineEdit_DateFormat->backspace(); }else if(btn == ui->btnHour){ ui->lineEdit_DateFormat->insert("HH"); }else if(btn == ui->btnMinute){ ui->lineEdit_DateFormat->insert("mm"); }else if(btn == ui->btnSecond){ ui->lineEdit_DateFormat->insert("ss"); }else if(btn == ui->btnDay){ ui->lineEdit_DateFormat->insert("dd"); }else if(btn == ui->btnMonth){ ui->lineEdit_DateFormat->insert("MM"); }else if(btn == ui->btnYear4){ ui->lineEdit_DateFormat->insert("yyyy"); }else if(btn == ui->btnYear2){ ui->lineEdit_DateFormat->insert("YY"); } else if(btn == ui->btnWeekOfYear){ ui->lineEdit_DateFormat->insert("c"); } else if(btn == ui->btnWeek){ ui->lineEdit_DateFormat->insert("w"); } else if(btn == ui->btnSpace) ui->lineEdit_DateFormat->insert(" "); }