Skip to content

Commit b7546d2

Browse files
committed
[UI] Transaction Date Range: persistence added and format modified
1 parent 5945b70 commit b7546d2

File tree

1 file changed

+28
-9
lines changed

1 file changed

+28
-9
lines changed

src/qt/transactionview.cpp

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
#include <QUrl>
3737
#include <QVBoxLayout>
3838

39+
/** Date format for persistence */
40+
static const char* PERSISTENCE_DATE_FORMAT = "yyyy-MM-dd";
41+
3942
TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *parent) :
4043
QWidget(parent), model(0), transactionProxyModel(0),
4144
transactionView(0)
@@ -258,6 +261,8 @@ void TransactionView::chooseDate(int idx)
258261
{
259262
if(!transactionProxyModel)
260263
return;
264+
265+
QSettings settings;
261266
QDate current = QDate::currentDate();
262267
dateRangeWidget->setVisible(false);
263268
switch(dateWidget->itemData(idx).toInt())
@@ -300,10 +305,11 @@ void TransactionView::chooseDate(int idx)
300305
dateRangeChanged();
301306
break;
302307
}
303-
// Persist settings
304-
if (dateWidget->itemData(idx).toInt() != Range){
305-
QSettings settings;
306-
settings.setValue("transactionDate", idx);
308+
// Persist new date settings
309+
settings.setValue("transactionDate", idx);
310+
if (dateWidget->itemData(idx).toInt() == Range){
311+
settings.setValue("transactionDateFrom", dateFrom->date().toString(PERSISTENCE_DATE_FORMAT));
312+
settings.setValue("transactionDateTo", dateTo->date().toString(PERSISTENCE_DATE_FORMAT));
307313
}
308314
}
309315

@@ -507,6 +513,11 @@ void TransactionView::openThirdPartyTxUrl(QString url)
507513

508514
QWidget *TransactionView::createDateRangeWidget()
509515
{
516+
// Create default dates in case nothing is persisted
517+
QString defaultDateFrom = QDate::currentDate().toString(PERSISTENCE_DATE_FORMAT);
518+
QString defaultDateTo = QDate::currentDate().addDays(1).toString(PERSISTENCE_DATE_FORMAT);
519+
QSettings settings;
520+
510521
dateRangeWidget = new QFrame();
511522
dateRangeWidget->setFrameStyle(QFrame::Panel | QFrame::Raised);
512523
dateRangeWidget->setContentsMargins(1,1,1,1);
@@ -516,18 +527,20 @@ QWidget *TransactionView::createDateRangeWidget()
516527
layout->addWidget(new QLabel(tr("Range:")));
517528

518529
dateFrom = new QDateTimeEdit(this);
519-
dateFrom->setDisplayFormat("dd/MM/yy");
520530
dateFrom->setCalendarPopup(true);
521531
dateFrom->setMinimumWidth(100);
522-
dateFrom->setDate(QDate::currentDate().addDays(-7));
532+
// Load persisted FROM date
533+
dateFrom->setDate(QDate::fromString(settings.value("transactionDateFrom", defaultDateFrom).toString(), PERSISTENCE_DATE_FORMAT));
534+
523535
layout->addWidget(dateFrom);
524536
layout->addWidget(new QLabel(tr("to")));
525537

526538
dateTo = new QDateTimeEdit(this);
527-
dateTo->setDisplayFormat("dd/MM/yy");
528539
dateTo->setCalendarPopup(true);
529540
dateTo->setMinimumWidth(100);
530-
dateTo->setDate(QDate::currentDate());
541+
// Load persisted TO date
542+
dateTo->setDate(QDate::fromString(settings.value("transactionDateTo", defaultDateTo).toString(), PERSISTENCE_DATE_FORMAT));
543+
531544
layout->addWidget(dateTo);
532545
layout->addStretch();
533546

@@ -545,9 +558,15 @@ void TransactionView::dateRangeChanged()
545558
{
546559
if(!transactionProxyModel)
547560
return;
561+
562+
// Persist new date range
563+
QSettings settings;
564+
settings.setValue("transactionDateFrom", dateFrom->date().toString(PERSISTENCE_DATE_FORMAT));
565+
settings.setValue("transactionDateTo", dateTo->date().toString(PERSISTENCE_DATE_FORMAT));
566+
548567
transactionProxyModel->setDateRange(
549568
QDateTime(dateFrom->date()),
550-
QDateTime(dateTo->date()).addDays(1));
569+
QDateTime(dateTo->date()));
551570
}
552571

553572
void TransactionView::focusTransaction(const QModelIndex &idx)

0 commit comments

Comments
 (0)