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