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 + + +