enforce a valid limit for the randomization of the extension deadline

This commit is contained in:
Xavier Valls 2021-05-10 19:54:44 +02:00
parent c8f3018c4c
commit cc92ec1814

View File

@ -75,6 +75,12 @@ QString timeDelta2Text(const TimeDelta& tD)
return tD.getMonths() ? "month(s)" : "year(s)"; return tD.getMonths() ? "month(s)" : "year(s)";
}; };
qint64 timeDeltaToDays(const TimeDelta& delta)
{
QDateTime now = Clock::currentDateTime();
return now.daysTo(now + delta);
}
EditEntryWidget::EditEntryWidget(QWidget* parent) EditEntryWidget::EditEntryWidget(QWidget* parent)
: EditWidget(parent) : EditWidget(parent)
, m_entry(nullptr) , m_entry(nullptr)
@ -192,21 +198,23 @@ void EditEntryWidget::setupMain()
connect(m_mainUi->extendByMagnitude->menu(), &QMenu::triggered, this, [&](QAction* action) { connect(m_mainUi->extendByMagnitude->menu(), &QMenu::triggered, this, [&](QAction* action) {
std::get<1>(m_extensionOnPwUpdate) = action->data().value<TimeDelta>(); std::get<1>(m_extensionOnPwUpdate) = action->data().value<TimeDelta>();
m_mainUi->extendByMagnitude->setText(action->text()); m_mainUi->extendByMagnitude->setText(action->text());
m_mainUi->randomizeByQuantity->setMaximum(
timeDeltaToDays(std::get<1>(m_extensionOnPwUpdate) * std::get<0>(m_extensionOnPwUpdate)));
setModified(true); setModified(true);
}); });
connect(m_mainUi->extendByQuantity, QOverload<int>::of(&QSpinBox::valueChanged), this, [&](int n) { connect(m_mainUi->extendByQuantity, QOverload<int>::of(&QSpinBox::valueChanged), this, [&](int n) {
std::get<0>(m_extensionOnPwUpdate) = static_cast<unsigned>(n); std::get<0>(m_extensionOnPwUpdate) = static_cast<unsigned>(n);
m_mainUi->randomizeByQuantity->setMaximum(
timeDeltaToDays(std::get<1>(m_extensionOnPwUpdate) * std::get<0>(m_extensionOnPwUpdate)));
}); });
connect(m_mainUi->autoExtendExpire, &QCheckBox::toggled, [&](bool enabled) { connect(m_mainUi->autoExtendExpire, &QCheckBox::toggled, [&](bool enabled) {
m_mainUi->extendByQuantity->setEnabled(enabled); m_mainUi->extendByQuantity->setEnabled(enabled);
m_mainUi->extendByMagnitude->setEnabled(enabled); m_mainUi->extendByMagnitude->setEnabled(enabled);
m_mainUi->randomizeExtensionDeadline->setEnabled(enabled); m_mainUi->randomizeExtensionDeadline->setEnabled(enabled);
}); });
connect(m_mainUi->randomizeExtensionDeadline, &QCheckBox::toggled, [&](bool enabled) { connect(m_mainUi->randomizeExtensionDeadline, &QCheckBox::toggled, [&](bool enabled) {
m_mainUi->randomizeByQuantity->setEnabled(enabled); m_mainUi->randomizeByQuantity->setEnabled(enabled);
}); });
connect(m_mainUi->randomizeByQuantity, QOverload<int>::of(&QSpinBox::valueChanged), this, [&](int n) { connect(m_mainUi->randomizeByQuantity, QOverload<int>::of(&QSpinBox::valueChanged), this, [&](int n) {
m_daysRandomizeExtension = static_cast<qint64>(n); m_daysRandomizeExtension = static_cast<qint64>(n);
}); });
@ -935,6 +943,8 @@ void EditEntryWidget::setForms(Entry* entry, bool restore)
m_mainUi->extendByQuantity->setValue(entry->customData()->value("ExpirationExtensionQuantity").toInt()); m_mainUi->extendByQuantity->setValue(entry->customData()->value("ExpirationExtensionQuantity").toInt());
m_mainUi->extendByMagnitude->setEnabled(m_mainUi->autoExtendExpire->isChecked()); m_mainUi->extendByMagnitude->setEnabled(m_mainUi->autoExtendExpire->isChecked());
m_mainUi->extendByMagnitude->setText(entry->customData()->value("ExpirationExtensionMagnitude")); m_mainUi->extendByMagnitude->setText(entry->customData()->value("ExpirationExtensionMagnitude"));
m_mainUi->randomizeByQuantity->setMaximum(
timeDeltaToDays(std::get<1>(m_extensionOnPwUpdate) * std::get<0>(m_extensionOnPwUpdate)));
QList<QString> commonUsernames = m_db->commonUsernames(); QList<QString> commonUsernames = m_db->commonUsernames();
m_usernameCompleterModel->setStringList(commonUsernames); m_usernameCompleterModel->setStringList(commonUsernames);