@@ -37,6 +37,8 @@ TransactionView::TransactionView(QWidget *parent)
37
37
, transactionProxyModel(nullptr )
38
38
, transactionView(nullptr )
39
39
, searchWidgetIconAction(new QAction())
40
+ , m_table_column_sizes({23 , 120 , 120 , 400 , 100 })
41
+ , m_init_column_sizes_set(false )
40
42
{
41
43
setContentsMargins (0 , 0 , 0 , 0 );
42
44
@@ -110,7 +112,7 @@ TransactionView::TransactionView(QWidget *parent)
110
112
view->horizontalHeader ()->setHighlightSections (false );
111
113
transactionView = view;
112
114
113
- QVBoxLayout * tableViewLayout = new QVBoxLayout ();
115
+ QVBoxLayout* tableViewLayout = new QVBoxLayout ();
114
116
tableViewLayout->setContentsMargins (9 , 9 , 9 , 9 );
115
117
QFrame *tableViewFrame = new QFrame (this );
116
118
tableViewFrame->setObjectName (" historyTableFrame" );
@@ -180,17 +182,6 @@ void TransactionView::setModel(WalletModel *model)
180
182
transactionView->setSortingEnabled (true );
181
183
transactionView->sortByColumn (TransactionTableModel::Date, Qt::DescendingOrder);
182
184
transactionView->verticalHeader ()->hide ();
183
-
184
- transactionView->horizontalHeader ()->resizeSection (
185
- TransactionTableModel::Status, 23 );
186
- transactionView->horizontalHeader ()->resizeSection (
187
- TransactionTableModel::Date, 120 );
188
- transactionView->horizontalHeader ()->resizeSection (
189
- TransactionTableModel::Type, 120 );
190
- transactionView->horizontalHeader ()->setSectionResizeMode (
191
- TransactionTableModel::ToAddress, QHeaderView::Stretch);
192
- transactionView->horizontalHeader ()->resizeSection (
193
- TransactionTableModel::Amount, 100 );
194
185
}
195
186
196
187
if (model && model->getOptionsModel ()) {
@@ -454,3 +445,42 @@ void TransactionView::updateIcons(const QString& theme)
454
445
{
455
446
searchWidgetIconAction->setIcon (QIcon (" :/icons/" + theme + " _search" ));
456
447
}
448
+
449
+ void TransactionView::resizeTableColumns ()
450
+ {
451
+ if (!model) return ;
452
+
453
+ if (!m_init_column_sizes_set) {
454
+ for (int i = 0 ; i < (int ) m_table_column_sizes.size (); ++i) {
455
+ transactionView->horizontalHeader ()->resizeSection (i, m_table_column_sizes[i]);
456
+ }
457
+
458
+ m_init_column_sizes_set = true ;
459
+
460
+ return ;
461
+ }
462
+
463
+ const int width = transactionView->horizontalHeader ()->width () - 5 ;
464
+
465
+ int orig_header_width = 0 ;
466
+
467
+ for (const auto & iter : TransactionTableModel::all_ColumnIndex) {
468
+ orig_header_width += transactionView->horizontalHeader ()->sectionSize (iter);
469
+ }
470
+
471
+ if (!width || !orig_header_width) return ;
472
+
473
+ for (const auto & iter : TransactionTableModel::all_ColumnIndex) {
474
+ int section_size = transactionView->horizontalHeader ()->sectionSize (iter);
475
+
476
+ transactionView->horizontalHeader ()->resizeSection (
477
+ iter, section_size * width / orig_header_width);
478
+ }
479
+ }
480
+
481
+ void TransactionView::resizeEvent (QResizeEvent *event)
482
+ {
483
+ resizeTableColumns ();
484
+
485
+ QWidget::resizeEvent (event);
486
+ }
0 commit comments