Fixed: Predefined expire times don't work (closes #2109987)

Fixed: Sorting isn't consistent (closes #2108655)

git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@221 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
sniperbeamer
2008-09-25 14:29:36 +00:00
parent 70bf7f5b5d
commit c182df6c31
5 changed files with 89 additions and 35 deletions

View File

@@ -53,7 +53,7 @@ CEditEntryDlg::CEditEntryDlg(IDatabase* _db, IEntryHandle* _entry,QWidget* paren
connect(CheckBox_ExpiresNever,SIGNAL(stateChanged(int)),this,SLOT(OnCheckBoxExpiresNeverChanged(int)));
connect(Button_Icons,SIGNAL(clicked()),this,SLOT(OnButtonIcons()));
connect(ExpirePresetsMenu,SIGNAL(triggered(QAction*)),this,SLOT(OnExpirePreset(QAction*)));
connect(ButtonExpirePresets,SIGNAL(triggered(QAction*)),this,SLOT(OnCalendar()));
connect(ButtonExpirePresets,SIGNAL(triggered(QAction*)),this,SLOT(OnCalendar(QAction*)));
connect(this, SIGNAL(finished(int)), this, SLOT(OnClose()));
// QAction::data() contains the time until expiration in days.
@@ -69,7 +69,9 @@ CEditEntryDlg::CEditEntryDlg(IDatabase* _db, IEntryHandle* _entry,QWidget* paren
ExpirePresetsMenu->addSeparator();
ExpirePresetsMenu->addAction(tr("1 Year"))->setData(365);
ButtonExpirePresets->setMenu(ExpirePresetsMenu);
ButtonExpirePresets->setDefaultAction(new QAction(tr("Calendar..."),ButtonExpirePresets));
QAction* actionCalendar = new QAction(tr("Calendar..."),ButtonExpirePresets);
actionCalendar->setData(-1);
ButtonExpirePresets->setDefaultAction(actionCalendar);
IconIndex = entry->image();
Button_Icons->setIcon(db->icon(IconIndex));
@@ -400,11 +402,26 @@ void CEditEntryDlg::OnButtonIcons(){
void CEditEntryDlg::OnExpirePreset(QAction* action){
CheckBox_ExpiresNever->setChecked(false);
DateTime_Expire->setDate(QDate::fromJulianDay(QDate::currentDate().toJulianDay()+action->data().toInt()));
int days = action->data().toInt();
switch (days){
case 30:
case 90:
case 180:
DateTime_Expire->setDate(QDate::currentDate().addMonths(days/30));
break;
case 365:
DateTime_Expire->setDate(QDate::currentDate().addYears(1));
break;
default:
DateTime_Expire->setDate(QDate::currentDate().addDays(days));
}
DateTime_Expire->setTime(QTime(0,0,0));
}
void CEditEntryDlg::OnCalendar(){
void CEditEntryDlg::OnCalendar(QAction* action){
if (action->data().toInt()!=-1)
return;
CalendarDialog dlg(this);
if(dlg.exec()==QDialog::Accepted){
CheckBox_ExpiresNever->setChecked(false);

View File

@@ -57,13 +57,13 @@ class CEditEntryDlg : public QDialog, private Ui_EditEntryDialog
void OnCheckBoxExpiresNeverChanged(int state);
void OnButtonIcons();
void OnButtonOK();
void OnExpirePreset(QAction*);
void OnCalendar();
void OnExpirePreset(QAction* action);
void OnCalendar(QAction* action);
void OnClose();
private:
virtual void paintEvent(QPaintEvent*);
virtual void resizeEvent(QResizeEvent *);
virtual void resizeEvent(QResizeEvent *);
int IconIndex;
bool pNewEntry;