From 090c9d2e6c64a5bb3877fc462fca5b514beef1a0 Mon Sep 17 00:00:00 2001 From: katano-sukune Date: Tue, 30 Apr 2019 05:01:22 +0900 Subject: [PATCH] Fix resising column --- src/qt/mintingview.cpp | 46 +++++++++++++++++++----------------------- src/qt/mintingview.h | 15 ++++++++++++++ 2 files changed, 36 insertions(+), 25 deletions(-) diff --git a/src/qt/mintingview.cpp b/src/qt/mintingview.cpp index 5b287d61f07b..483d1ed2318c 100644 --- a/src/qt/mintingview.cpp +++ b/src/qt/mintingview.cpp @@ -89,11 +89,11 @@ MintingView::MintingView(const PlatformStyle *platformStyle, QWidget *parent) : vlayout->setSpacing(0); int width = view->verticalScrollBar()->sizeHint().width(); // Cover scroll bar width with spacing -#ifdef Q_WS_MAC - hlayout->addSpacing(width+2); -#else - hlayout->addSpacing(width); -#endif + if(platformStyle->getUseExtraSpacing()) + hlayout->addSpacing(width+2); + else + hlayout->addSpacing(width); + // Always show scroll bar view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); view->setTabKeyNavigation(false); @@ -133,6 +133,7 @@ void MintingView::setModel(WalletModel *_model) mintingProxyModel->setSortRole(Qt::EditRole); model->getMintingTableModel()->setMintingProxyModel(mintingProxyModel); + mintingView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); mintingView->setModel(mintingProxyModel); mintingView->setAlternatingRowColors(true); mintingView->setSelectionBehavior(QAbstractItemView::SelectRows); @@ -141,29 +142,24 @@ void MintingView::setModel(WalletModel *_model) mintingView->sortByColumn(MintingTableModel::CoinDay, Qt::DescendingOrder); mintingView->verticalHeader()->hide(); - mintingView->horizontalHeader()->resizeSection( - MintingTableModel::Address, 300); -#if QT_VERSION < 0x050000 - mintingView->horizontalHeader()->setResizeMode( - MintingTableModel::TxHash, QHeaderView::Stretch); -#else - mintingView->horizontalHeader()->setSectionResizeMode( - MintingTableModel::TxHash, QHeaderView::Stretch); - mintingView->horizontalHeader()->setSectionResizeMode( - MintingTableModel::MintReward, QHeaderView::Stretch); -#endif - - mintingView->horizontalHeader()->resizeSection( - MintingTableModel::Age, 60); - mintingView->horizontalHeader()->resizeSection( - MintingTableModel::Balance, 100); - mintingView->horizontalHeader()->resizeSection( - MintingTableModel::CoinDay,100); - mintingView->horizontalHeader()->resizeSection( - MintingTableModel::MintProbability, 120); + mintingView->setColumnWidth(MintingTableModel::TxHash, TXHASH_COLUMN_WIDTH); + mintingView->setColumnWidth(MintingTableModel::Address, ADDRESS_COLUMN_WIDTH); + mintingView->setColumnWidth(MintingTableModel::Age, AGE_COLUMN_WIDTH); + mintingView->setColumnWidth(MintingTableModel::Balance, BALANCE_COLUMN_WIDTH); + mintingView->setColumnWidth(MintingTableModel::CoinDay, COINDAY_COLUMN_WIDTH); + mintingView->setColumnWidth(MintingTableModel::MintProbability, MINTPROBABILITY_COLUMN_WIDTH); + mintingView->setColumnWidth(MintingTableModel::MintReward, MINTREWARD_MINIMUM_COLUMN_WIDTH); + + columnResizingFixer = new GUIUtil::TableViewLastColumnResizingFixer(mintingView, MINTREWARD_MINIMUM_COLUMN_WIDTH, MINIMUM_COLUMN_WIDTH, this); } } +void MintingView::resizeEvent(QResizeEvent* event) +{ + QWidget::resizeEvent(event); + columnResizingFixer->stretchColumnWidth(0); +} + void MintingView::chooseMintingInterval(int idx) { int interval = 10; diff --git a/src/qt/mintingview.h b/src/qt/mintingview.h index 6c4c7c998537..7170f315b94e 100644 --- a/src/qt/mintingview.h +++ b/src/qt/mintingview.h @@ -39,6 +39,17 @@ class MintingView : public QWidget Minting60days, }; + enum ColumnWidths { + TXHASH_COLUMN_WIDTH = 70, + ADDRESS_COLUMN_WIDTH = 60, + AGE_COLUMN_WIDTH = 40, + BALANCE_COLUMN_WIDTH = 70, + COINDAY_COLUMN_WIDTH = 70, + MINTPROBABILITY_COLUMN_WIDTH = 50, + MINTREWARD_MINIMUM_COLUMN_WIDTH = 120, + MINIMUM_COLUMN_WIDTH = 23 + }; + private: WalletModel *model; QTableView *mintingView; @@ -46,6 +57,10 @@ class MintingView : public QWidget MintingFilterProxy *mintingProxyModel; QMenu *contextMenu; + GUIUtil::TableViewLastColumnResizingFixer *columnResizingFixer; + + virtual void resizeEvent(QResizeEvent* event); + private Q_SLOTS: void contextualMenu(const QPoint &); void copyAddress();