Fix some bugs in yearTo selection & fill in GenerateDialog

This commit is contained in:
Grégory Soutadé 2018-01-06 19:43:35 +01:00
parent 0a1b9819c7
commit 76808fe700
2 changed files with 21 additions and 9 deletions

View File

@ -46,12 +46,12 @@ GenerateDialog::GenerateDialog(KissCount* kiss, wxUI *parent, int month, int yea
_monthTo = new QComboBox(this); _monthTo = new QComboBox(this);
gridLayout->addWidget(_monthTo, 1, 2); gridLayout->addWidget(_monthTo, 1, 2);
QPushButton* ok = new QPushButton(_("OK"), this); _ok = new QPushButton(_("OK"), this);
QPushButton* cancel = new QPushButton(_("Cancel"), this); QPushButton* cancel = new QPushButton(_("Cancel"), this);
gridLayout->addWidget(ok, 3, 1); gridLayout->addWidget(_ok, 3, 1);
gridLayout->addWidget(cancel, 3, 2); gridLayout->addWidget(cancel, 3, 2);
connect(ok, SIGNAL(clicked()), this, SLOT(OnOK())); connect(_ok, SIGNAL(clicked()), this, SLOT(OnOK()));
connect(cancel, SIGNAL(clicked()), this, SLOT(OnCancel())); connect(cancel, SIGNAL(clicked()), this, SLOT(OnCancel()));
connect(_yearTo, SIGNAL(currentIndexChanged(int)), this, SLOT(OnYearToChange(int))); connect(_yearTo, SIGNAL(currentIndexChanged(int)), this, SLOT(OnYearToChange(int)));
@ -59,10 +59,8 @@ GenerateDialog::GenerateDialog(KissCount* kiss, wxUI *parent, int month, int yea
_ops = _kiss->GetAllOperations(); _ops = _kiss->GetAllOperations();
_yearFrom->addItem(""); /* From */
_monthFrom->addItem(""); for(i=0, it = _ops.begin(); it != _ops.end(); it++, i++)
for(i=1, it = _ops.begin(); it != _ops.end(); it++, i++)
{ {
_yearFrom->addItem(QString::number(it->first)); _yearFrom->addItem(QString::number(it->first));
if (year == it->first) if (year == it->first)
@ -91,7 +89,8 @@ GenerateDialog::GenerateDialog(KissCount* kiss, wxUI *parent, int month, int yea
_yearFrom->setCurrentIndex(0); _yearFrom->setCurrentIndex(0);
} }
for(i=curDate.year()-10; i<=curDate.year()+10; i++) /* To */
for(i=year-10; i<=year+10; i++)
_yearTo->addItem(QString::number(i)); _yearTo->addItem(QString::number(i));
if (year == -1) if (year == -1)
@ -101,10 +100,14 @@ GenerateDialog::GenerateDialog(KissCount* kiss, wxUI *parent, int month, int yea
} }
else else
{ {
toSelect = 10;
if (month == 11) if (month == 11)
{
year++; year++;
toSelect++;
}
_yearTo->setCurrentIndex(year-(curDate.year()-10)); _yearTo->setCurrentIndex(toSelect);
if (month == -1) if (month == -1)
_monthTo->setCurrentIndex(0); _monthTo->setCurrentIndex(0);
@ -158,6 +161,7 @@ void GenerateDialog::OnYearToChange(int index)
year = _yearTo->currentText().toInt(); year = _yearTo->currentText().toInt();
/* Avoid adding an existing month */
for (i=0; i<12; i++) for (i=0; i<12; i++)
{ {
ok = 1; ok = 1;
@ -174,6 +178,13 @@ void GenerateDialog::OnYearToChange(int index)
_monthTo->setCurrentIndex(0); _monthTo->setCurrentIndex(0);
if (_monthTo->count() == 0)
{
QMessageBox::critical(0, _("Error"), _("All months for this year has already been generated"));
_ok->setEnabled(false);
}
else
_ok->setEnabled(true);
layout(); layout();
} }

View File

@ -43,6 +43,7 @@ private:
KissCount* _kiss; KissCount* _kiss;
wxUI* _wxUI; wxUI* _wxUI;
QComboBox* _yearFrom, *_monthFrom, *_yearTo, *_monthTo; QComboBox* _yearFrom, *_monthFrom, *_yearTo, *_monthTo;
QPushButton* _ok;
std::map<int, std::vector<int> > _ops; std::map<int, std::vector<int> > _ops;
}; };
#endif #endif