aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/keypair_details/KeySetExpireDateDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/keypair_details/KeySetExpireDateDialog.cpp')
-rw-r--r--src/ui/keypair_details/KeySetExpireDateDialog.cpp86
1 files changed, 49 insertions, 37 deletions
diff --git a/src/ui/keypair_details/KeySetExpireDateDialog.cpp b/src/ui/keypair_details/KeySetExpireDateDialog.cpp
index a90a4e4b..5b592cf6 100644
--- a/src/ui/keypair_details/KeySetExpireDateDialog.cpp
+++ b/src/ui/keypair_details/KeySetExpireDateDialog.cpp
@@ -29,12 +29,16 @@
#include "gpg/function/GpgKeyGetter.h"
#include "gpg/function/GpgKeyOpera.h"
#include "ui/SignalStation.h"
+#include "ui/settings/GlobalSettingStation.h"
+#include "ui_ModifiedExpirationDateTime.h"
namespace GpgFrontend::UI {
KeySetExpireDateDialog::KeySetExpireDateDialog(const KeyId& key_id,
QWidget* parent)
- : QDialog(parent), mKey(GpgKeyGetter::GetInstance().GetKey(key_id)) {
+ : QDialog(parent),
+ ui(std::make_shared<Ui_ModifiedExpirationDateTime>()),
+ mKey(GpgKeyGetter::GetInstance().GetKey(key_id)) {
init();
}
@@ -42,19 +46,20 @@ KeySetExpireDateDialog::KeySetExpireDateDialog(const KeyId& key_id,
std::string subkey_fpr,
QWidget* parent)
: QDialog(parent),
+ ui(std::make_shared<Ui_ModifiedExpirationDateTime>()),
mKey(GpgKeyGetter::GetInstance().GetKey(key_id)),
mSubkey(std::move(subkey_fpr)) {
init();
}
void KeySetExpireDateDialog::slotConfirm() {
- LOG(INFO) << "Called"
- << this->dateTimeEdit->dateTime().toLocalTime().toTime_t();
+ LOG(INFO) << "Called" << ui->dateEdit->date().toString().toStdString()
+ << ui->timeEdit->time().toString().toStdString();
+ auto datetime = QDateTime(ui->dateEdit->date(), ui->timeEdit->time());
std::unique_ptr<boost::posix_time::ptime> expires = nullptr;
- if (this->nonExpiredCheck->checkState() == Qt::Unchecked) {
+ if (ui->noExpirationCheckBox->checkState() == Qt::Unchecked) {
expires = std::make_unique<boost::posix_time::ptime>(
- boost::posix_time::from_time_t(
- this->dateTimeEdit->dateTime().toLocalTime().toTime_t()));
+ boost::posix_time::from_time_t(datetime.toLocalTime().toTime_t()));
LOG(INFO) << "keyid" << mKey.id() << mSubkey << *expires;
} else {
LOG(INFO) << "keyid" << mKey.id() << mSubkey << "Non Expired";
@@ -81,44 +86,51 @@ void KeySetExpireDateDialog::slotConfirm() {
}
void KeySetExpireDateDialog::init() {
- QDateTime maxDateTime =
- QDateTime::currentDateTime().toLocalTime().addYears(2);
- dateTimeEdit = new QDateTimeEdit(maxDateTime);
- dateTimeEdit->setTimeSpec(Qt::TimeSpec::TimeZone);
- LOG(INFO) << "timespec" << Qt::TimeSpec::TimeZone;
- dateTimeEdit->setCalendarPopup(true);
- dateTimeEdit->setMinimumDateTime(QDateTime::currentDateTime().addSecs(1));
- dateTimeEdit->setMaximumDateTime(maxDateTime);
-
- nonExpiredCheck = new QCheckBox();
- nonExpiredCheck->setTristate(false);
- confirmButton = new QPushButton(_("Confirm"));
-
- auto* gridLayout = new QGridLayout();
- gridLayout->addWidget(dateTimeEdit, 0, 0, 1, 2);
- gridLayout->addWidget(nonExpiredCheck, 0, 2, 1, 1, Qt::AlignRight);
- gridLayout->addWidget(new QLabel(_("Never Expire")), 0, 3);
- gridLayout->addWidget(confirmButton, 1, 3);
-
- connect(nonExpiredCheck, SIGNAL(stateChanged(int)), this,
- SLOT(slotNonExpiredChecked(int)));
- connect(confirmButton, SIGNAL(clicked(bool)), this, SLOT(slotConfirm()));
+ ui->setupUi(this);
+
+ auto& settings = GlobalSettingStation::GetInstance().GetUISettings();
+
+ bool longer_expiration_date = false;
+ try {
+ longer_expiration_date = settings.lookup("general.longer_expiration_date");
+ LOG(INFO) << "longer_expiration_date" << longer_expiration_date;
+
+ } catch (...) {
+ LOG(ERROR) << _("Setting Operation Error") << _("longer_expiration_date");
+ }
+
+ auto max_date_time =
+ longer_expiration_date
+ ? QDateTime::currentDateTime().toLocalTime().addYears(30)
+ : QDateTime::currentDateTime().toLocalTime().addYears(2);
- this->setLayout(gridLayout);
- this->setWindowTitle(_("Edit Expire Datetime"));
- this->setModal(true);
- this->setAttribute(Qt::WA_DeleteOnClose, true);
+ auto min_date_time = QDateTime::currentDateTime().addDays(7);
+ ui->dateEdit->setMaximumDateTime(max_date_time);
+ ui->dateEdit->setMinimumDateTime(min_date_time);
+
+ ui->dateEdit->setDateTime(max_date_time);
+ ui->timeEdit->setDateTime(max_date_time);
+
+ connect(ui->noExpirationCheckBox, SIGNAL(stateChanged(int)), this,
+ SLOT(slotNonExpiredChecked(int)));
+ connect(ui->buttonBox, &QDialogButtonBox::accepted, this,
+ &KeySetExpireDateDialog::slotConfirm);
connect(this, SIGNAL(signalKeyExpireDateUpdated()),
SignalStation::GetInstance(), SIGNAL(KeyDatabaseRefresh()));
+
+ ui->titleLabel->setText(_("Modified Expiration Date (Local Time)"));
+ ui->label->setText(
+ _("Tips: For the sake of security, the key is valid for up to two years. "
+ "If you are an expert user, please unlock it for a longer time in the "
+ "settings."));
+ ui->noExpirationCheckBox->setText(_("No Expiration"));
+ this->setWindowTitle(_("Modified Expiration Date"));
}
void KeySetExpireDateDialog::slotNonExpiredChecked(int state) {
- if (state == 0) {
- this->dateTimeEdit->setDisabled(false);
- } else {
- this->dateTimeEdit->setDisabled(true);
- }
+ ui->dateEdit->setDisabled(state == Qt::Checked);
+ ui->timeEdit->setDisabled(state == Qt::Checked);
}
} // namespace GpgFrontend::UI