105 lines
4.4 KiB
C++
105 lines
4.4 KiB
C++
#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<QPushButton*>(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(" ");
|
|
} |