Skip to content

Commit 9c5f4f2

Browse files
committed
qt: Save/restore TransactionView table column sizes
Sorting order is not saved/restored intentionally.
1 parent 788205c commit 9c5f4f2

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

src/qt/transactionview.cpp

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include <QMenu>
3232
#include <QPoint>
3333
#include <QScrollBar>
34+
#include <QSettings>
3435
#include <QTableView>
3536
#include <QTimer>
3637
#include <QUrl>
@@ -146,17 +147,20 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
146147
transactionView->setAlternatingRowColors(true);
147148
transactionView->setSelectionBehavior(QAbstractItemView::SelectRows);
148149
transactionView->setSelectionMode(QAbstractItemView::ExtendedSelection);
149-
transactionView->horizontalHeader()->setSortIndicator(TransactionTableModel::Date, Qt::DescendingOrder);
150150
transactionView->setSortingEnabled(true);
151151
transactionView->verticalHeader()->hide();
152152

153-
transactionView->setColumnWidth(TransactionTableModel::Status, STATUS_COLUMN_WIDTH);
154-
transactionView->setColumnWidth(TransactionTableModel::Watchonly, WATCHONLY_COLUMN_WIDTH);
155-
transactionView->setColumnWidth(TransactionTableModel::Date, DATE_COLUMN_WIDTH);
156-
transactionView->setColumnWidth(TransactionTableModel::Type, TYPE_COLUMN_WIDTH);
157-
transactionView->setColumnWidth(TransactionTableModel::Amount, AMOUNT_MINIMUM_COLUMN_WIDTH);
158-
transactionView->horizontalHeader()->setMinimumSectionSize(MINIMUM_COLUMN_WIDTH);
159-
transactionView->horizontalHeader()->setStretchLastSection(true);
153+
QSettings settings;
154+
if (!transactionView->horizontalHeader()->restoreState(settings.value("TransactionViewHeaderState").toByteArray())) {
155+
transactionView->setColumnWidth(TransactionTableModel::Status, STATUS_COLUMN_WIDTH);
156+
transactionView->setColumnWidth(TransactionTableModel::Watchonly, WATCHONLY_COLUMN_WIDTH);
157+
transactionView->setColumnWidth(TransactionTableModel::Date, DATE_COLUMN_WIDTH);
158+
transactionView->setColumnWidth(TransactionTableModel::Type, TYPE_COLUMN_WIDTH);
159+
transactionView->setColumnWidth(TransactionTableModel::Amount, AMOUNT_MINIMUM_COLUMN_WIDTH);
160+
transactionView->horizontalHeader()->setMinimumSectionSize(MINIMUM_COLUMN_WIDTH);
161+
transactionView->horizontalHeader()->setStretchLastSection(true);
162+
}
163+
transactionView->horizontalHeader()->setSortIndicator(TransactionTableModel::Date, Qt::DescendingOrder);
160164

161165
// Actions
162166
abandonAction = new QAction(tr("Abandon transaction"), this);
@@ -214,6 +218,12 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
214218
});
215219
}
216220

221+
TransactionView::~TransactionView()
222+
{
223+
QSettings settings;
224+
settings.setValue("TransactionViewHeaderState", transactionView->horizontalHeader()->saveState());
225+
}
226+
217227
void TransactionView::setModel(WalletModel *_model)
218228
{
219229
this->model = _model;

src/qt/transactionview.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class TransactionView : public QWidget
3535

3636
public:
3737
explicit TransactionView(const PlatformStyle *platformStyle, QWidget *parent = nullptr);
38+
~TransactionView();
3839

3940
void setModel(WalletModel *model);
4041

0 commit comments

Comments
 (0)