diff --git a/src/core/Group.cpp b/src/core/Group.cpp
index 280e0ca21..d7fbbd0d0 100644
--- a/src/core/Group.cpp
+++ b/src/core/Group.cpp
@@ -248,6 +248,24 @@ void Group::setLastTopVisibleEntry(Entry* entry)
set(m_lastTopVisibleEntry, entry);
}
+void Group::setExpires(const bool& value)
+{
+ if (m_timeInfo.expires() != value) {
+ m_timeInfo.setExpires(value);
+ updateTimeinfo();
+ Q_EMIT modified();
+ }
+}
+
+void Group::setExpiryTime(const QDateTime& dateTime)
+{
+ if (m_timeInfo.expiryTime() != dateTime) {
+ m_timeInfo.setExpiryTime(dateTime);
+ updateTimeinfo();
+ Q_EMIT modified();
+ }
+}
+
Group* Group::parentGroup()
{
return m_parent;
diff --git a/src/core/Group.h b/src/core/Group.h
index 3689ed94d..916421aa0 100644
--- a/src/core/Group.h
+++ b/src/core/Group.h
@@ -65,6 +65,8 @@ public:
void setAutoTypeEnabled(TriState enable);
void setSearchingEnabled(TriState enable);
void setLastTopVisibleEntry(Entry* entry);
+ void setExpires(const bool& value);
+ void setExpiryTime(const QDateTime& dateTime);
void setUpdateTimeinfo(bool value);
diff --git a/src/gui/group/EditGroupWidget.cpp b/src/gui/group/EditGroupWidget.cpp
index f018d9a30..2f7282a80 100644
--- a/src/gui/group/EditGroupWidget.cpp
+++ b/src/gui/group/EditGroupWidget.cpp
@@ -39,6 +39,8 @@ EditGroupWidget::EditGroupWidget(QWidget* parent)
labelHeaderFont.setPointSize(labelHeaderFont.pointSize() + 2);
headlineLabel()->setFont(labelHeaderFont);
+ connect(m_mainUi->expireCheck, SIGNAL(toggled(bool)), m_mainUi->expireDatePicker, SLOT(setEnabled(bool)));
+
connect(this, SIGNAL(accepted()), SLOT(save()));
connect(this, SIGNAL(rejected()), SLOT(cancel()));
}
@@ -61,13 +63,16 @@ void EditGroupWidget::loadGroup(Group* group, bool create, Database* database)
m_mainUi->editName->setText(m_group->name());
m_mainUi->editNotes->setPlainText(m_group->notes());
+ m_mainUi->expireCheck->setChecked(group->timeInfo().expires());
+ m_mainUi->expireDatePicker->setDateTime(group->timeInfo().expiryTime().toLocalTime());
- setCurrentRow(0);
IconStruct iconStruct;
iconStruct.uuid = group->iconUuid();
iconStruct.number = group->iconNumber();
m_editGroupWidgetIcons->load(group->uuid(), database, iconStruct);
+ setCurrentRow(0);
+
m_mainUi->editName->setFocus();
}
@@ -75,6 +80,8 @@ void EditGroupWidget::save()
{
m_group->setName(m_mainUi->editName->text());
m_group->setNotes(m_mainUi->editNotes->toPlainText());
+ m_group->setExpires(m_mainUi->expireCheck->isChecked());
+ m_group->setExpiryTime(m_mainUi->expireDatePicker->dateTime().toUTC());
IconStruct iconStruct = m_editGroupWidgetIcons->save();
diff --git a/src/gui/group/EditGroupWidgetMain.ui b/src/gui/group/EditGroupWidgetMain.ui
index c91cf8754..f3cb7cfe3 100644
--- a/src/gui/group/EditGroupWidgetMain.ui
+++ b/src/gui/group/EditGroupWidgetMain.ui
@@ -16,16 +16,6 @@
QFormLayout::ExpandingFieldsGrow
- -
-
-
- Notes
-
-
-
- -
-
-
-
@@ -33,9 +23,36 @@
+ -
+
+
+ -
+
+
+ Notes
+
+
+
-
+ -
+
+
+ false
+
+
+ true
+
+
+
+ -
+
+
+ Expires
+
+
+