31
31
#include < QMenu>
32
32
#include < QPoint>
33
33
#include < QScrollBar>
34
+ #include < QSettings>
34
35
#include < QTableView>
35
36
#include < QTimer>
36
37
#include < QUrl>
@@ -126,27 +127,40 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
126
127
vlayout->setContentsMargins (0 ,0 ,0 ,0 );
127
128
vlayout->setSpacing (0 );
128
129
129
- QTableView *view = new QTableView (this );
130
+ transactionView = new QTableView (this );
131
+ transactionView->setObjectName (" transactionView" );
130
132
vlayout->addLayout (hlayout);
131
133
vlayout->addWidget (createDateRangeWidget ());
132
- vlayout->addWidget (view );
134
+ vlayout->addWidget (transactionView );
133
135
vlayout->setSpacing (0 );
134
- int width = view ->verticalScrollBar ()->sizeHint ().width ();
136
+ int width = transactionView ->verticalScrollBar ()->sizeHint ().width ();
135
137
// Cover scroll bar width with spacing
136
138
if (platformStyle->getUseExtraSpacing ()) {
137
139
hlayout->addSpacing (width+2 );
138
140
} else {
139
141
hlayout->addSpacing (width);
140
142
}
141
- // Always show scroll bar
142
- view->setVerticalScrollBarPolicy (Qt::ScrollBarAlwaysOn);
143
- view->setTabKeyNavigation (false );
144
- view->setContextMenuPolicy (Qt::CustomContextMenu);
145
-
146
- view->installEventFilter (this );
147
-
148
- transactionView = view;
149
- transactionView->setObjectName (" transactionView" );
143
+ transactionView->setVerticalScrollBarPolicy (Qt::ScrollBarAlwaysOn);
144
+ transactionView->setTabKeyNavigation (false );
145
+ transactionView->setContextMenuPolicy (Qt::CustomContextMenu);
146
+ transactionView->installEventFilter (this );
147
+ transactionView->setAlternatingRowColors (true );
148
+ transactionView->setSelectionBehavior (QAbstractItemView::SelectRows);
149
+ transactionView->setSelectionMode (QAbstractItemView::ExtendedSelection);
150
+ transactionView->setSortingEnabled (true );
151
+ transactionView->verticalHeader ()->hide ();
152
+
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);
150
164
151
165
// Actions
152
166
abandonAction = new QAction (tr (" Abandon transaction" ), this );
@@ -183,8 +197,8 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
183
197
connect (search_widget, &QLineEdit::textChanged, prefix_typing_delay, static_cast <void (QTimer::*)()>(&QTimer::start));
184
198
connect (prefix_typing_delay, &QTimer::timeout, this , &TransactionView::changedSearch);
185
199
186
- connect (view , &QTableView::doubleClicked, this , &TransactionView::doubleClicked);
187
- connect (view , &QTableView::customContextMenuRequested, this , &TransactionView::contextualMenu);
200
+ connect (transactionView , &QTableView::doubleClicked, this , &TransactionView::doubleClicked);
201
+ connect (transactionView , &QTableView::customContextMenuRequested, this , &TransactionView::contextualMenu);
188
202
189
203
connect (bumpFeeAction, &QAction::triggered, this , &TransactionView::bumpFee);
190
204
connect (abandonAction, &QAction::triggered, this , &TransactionView::abandonTx);
@@ -204,6 +218,12 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
204
218
});
205
219
}
206
220
221
+ TransactionView::~TransactionView ()
222
+ {
223
+ QSettings settings;
224
+ settings.setValue (" TransactionViewHeaderState" , transactionView->horizontalHeader ()->saveState ());
225
+ }
226
+
207
227
void TransactionView::setModel (WalletModel *_model)
208
228
{
209
229
this ->model = _model;
@@ -214,24 +234,8 @@ void TransactionView::setModel(WalletModel *_model)
214
234
transactionProxyModel->setDynamicSortFilter (true );
215
235
transactionProxyModel->setSortCaseSensitivity (Qt::CaseInsensitive);
216
236
transactionProxyModel->setFilterCaseSensitivity (Qt::CaseInsensitive);
217
-
218
237
transactionProxyModel->setSortRole (Qt::EditRole);
219
-
220
238
transactionView->setModel (transactionProxyModel);
221
- transactionView->setAlternatingRowColors (true );
222
- transactionView->setSelectionBehavior (QAbstractItemView::SelectRows);
223
- transactionView->setSelectionMode (QAbstractItemView::ExtendedSelection);
224
- transactionView->horizontalHeader ()->setSortIndicator (TransactionTableModel::Date, Qt::DescendingOrder);
225
- transactionView->setSortingEnabled (true );
226
- transactionView->verticalHeader ()->hide ();
227
-
228
- transactionView->setColumnWidth (TransactionTableModel::Status, STATUS_COLUMN_WIDTH);
229
- transactionView->setColumnWidth (TransactionTableModel::Watchonly, WATCHONLY_COLUMN_WIDTH);
230
- transactionView->setColumnWidth (TransactionTableModel::Date, DATE_COLUMN_WIDTH);
231
- transactionView->setColumnWidth (TransactionTableModel::Type, TYPE_COLUMN_WIDTH);
232
- transactionView->setColumnWidth (TransactionTableModel::Amount, AMOUNT_MINIMUM_COLUMN_WIDTH);
233
- transactionView->horizontalHeader ()->setMinimumSectionSize (MINIMUM_COLUMN_WIDTH);
234
- transactionView->horizontalHeader ()->setStretchLastSection (true );
235
239
236
240
if (_model->getOptionsModel ())
237
241
{
0 commit comments