Add 12 hours expiration preset (#7738)

* Add hours precision to TimeDelta

* Add 12 hours expiration preset

Fixes #7369
This commit is contained in:
Bernhard Kirchen 2022-03-31 13:02:28 +02:00 committed by GitHub
parent 044fc8d50c
commit aca197a96f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 13 deletions

View File

@ -2537,10 +2537,6 @@ Would you like to correct it?</source>
<source>Hide</source> <source>Hide</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tomorrow</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes"> <message numerus="yes">
<source>%n week(s)</source> <source>%n week(s)</source>
<translation type="unfinished"> <translation type="unfinished">
@ -2562,6 +2558,13 @@ Would you like to correct it?</source>
<numerusform></numerusform> <numerusform></numerusform>
</translation> </translation>
</message> </message>
<message numerus="yes">
<source>%n hour(s)</source>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
</context> </context>
<context> <context>
<name>EditEntryWidgetAdvanced</name> <name>EditEntryWidgetAdvanced</name>

View File

@ -21,38 +21,53 @@
QDateTime operator+(const QDateTime& dateTime, const TimeDelta& delta) QDateTime operator+(const QDateTime& dateTime, const TimeDelta& delta)
{ {
return dateTime.addDays(delta.getDays()).addMonths(delta.getMonths()).addYears(delta.getYears()); return dateTime.addSecs(delta.getHours() * 3600)
.addDays(delta.getDays())
.addMonths(delta.getMonths())
.addYears(delta.getYears());
}
TimeDelta TimeDelta::fromHours(int hours)
{
return TimeDelta(hours, 0, 0, 0);
} }
TimeDelta TimeDelta::fromDays(int days) TimeDelta TimeDelta::fromDays(int days)
{ {
return TimeDelta(days, 0, 0); return TimeDelta(0, days, 0, 0);
} }
TimeDelta TimeDelta::fromMonths(int months) TimeDelta TimeDelta::fromMonths(int months)
{ {
return TimeDelta(0, months, 0); return TimeDelta(0, 0, months, 0);
} }
TimeDelta TimeDelta::fromYears(int years) TimeDelta TimeDelta::fromYears(int years)
{ {
return TimeDelta(0, 0, years); return TimeDelta(0, 0, 0, years);
} }
TimeDelta::TimeDelta() TimeDelta::TimeDelta()
: m_days(0) : m_hours(0)
, m_days(0)
, m_months(0) , m_months(0)
, m_years(0) , m_years(0)
{ {
} }
TimeDelta::TimeDelta(int days, int months, int years) TimeDelta::TimeDelta(int hours, int days, int months, int years)
: m_days(days) : m_hours(hours)
, m_days(days)
, m_months(months) , m_months(months)
, m_years(years) , m_years(years)
{ {
} }
int TimeDelta::getHours() const
{
return m_hours;
}
int TimeDelta::getDays() const int TimeDelta::getDays() const
{ {
return m_days; return m_days;

View File

@ -28,18 +28,21 @@ QDateTime operator+(const QDateTime& dateTime, const TimeDelta& delta);
class TimeDelta class TimeDelta
{ {
public: public:
static TimeDelta fromHours(int hours);
static TimeDelta fromDays(int days); static TimeDelta fromDays(int days);
static TimeDelta fromMonths(int months); static TimeDelta fromMonths(int months);
static TimeDelta fromYears(int years); static TimeDelta fromYears(int years);
TimeDelta(); TimeDelta();
TimeDelta(int days, int months, int years); TimeDelta(int hours, int days, int months, int years);
int getHours() const;
int getDays() const; int getDays() const;
int getMonths() const; int getMonths() const;
int getYears() const; int getYears() const;
private: private:
int m_hours;
int m_days; int m_days;
int m_months; int m_months;
int m_years; int m_years;

View File

@ -1574,7 +1574,8 @@ void EditEntryWidget::deleteAllHistoryEntries()
QMenu* EditEntryWidget::createPresetsMenu() QMenu* EditEntryWidget::createPresetsMenu()
{ {
auto* expirePresetsMenu = new QMenu(this); auto* expirePresetsMenu = new QMenu(this);
expirePresetsMenu->addAction(tr("Tomorrow"))->setData(QVariant::fromValue(TimeDelta::fromDays(1))); expirePresetsMenu->addAction(tr("%n hour(s)", nullptr, 12))->setData(QVariant::fromValue(TimeDelta::fromHours(12)));
expirePresetsMenu->addAction(tr("%n hour(s)", nullptr, 24))->setData(QVariant::fromValue(TimeDelta::fromHours(24)));
expirePresetsMenu->addSeparator(); expirePresetsMenu->addSeparator();
expirePresetsMenu->addAction(tr("%n week(s)", nullptr, 1))->setData(QVariant::fromValue(TimeDelta::fromDays(7))); expirePresetsMenu->addAction(tr("%n week(s)", nullptr, 1))->setData(QVariant::fromValue(TimeDelta::fromDays(7)));
expirePresetsMenu->addAction(tr("%n week(s)", nullptr, 2))->setData(QVariant::fromValue(TimeDelta::fromDays(14))); expirePresetsMenu->addAction(tr("%n week(s)", nullptr, 2))->setData(QVariant::fromValue(TimeDelta::fromDays(14)));