@@ -35,6 +35,15 @@ QList<CAmount> CoinControlDialog::payAmounts;
3535CCoinControl* CoinControlDialog::coinControl = new CCoinControl();
3636bool CoinControlDialog::fSubtractFeeFromAmount = false ;
3737
38+ bool CCoinControlWidgetItem::operator <(const QTreeWidgetItem &other) const {
39+ int column = treeWidget ()->sortColumn ();
40+ if (column == CoinControlDialog::COLUMN_AMOUNT_INT64 || column == CoinControlDialog::COLUMN_AMOUNT_INT64)
41+ return data (CoinControlDialog::COLUMN_AMOUNT_INT64, Qt::DisplayRole).toULongLong () < other.data (CoinControlDialog::COLUMN_AMOUNT_INT64, Qt::DisplayRole).toULongLong ();
42+ if (column == CoinControlDialog::COLUMN_DATE || column == CoinControlDialog::COLUMN_DATE_INT64)
43+ return data (CoinControlDialog::COLUMN_DATE_INT64, Qt::DisplayRole).toULongLong () < other.data (CoinControlDialog::COLUMN_DATE_INT64, Qt::DisplayRole).toULongLong ();
44+ return QTreeWidgetItem::operator <(other);
45+ }
46+
3847CoinControlDialog::CoinControlDialog (const PlatformStyle *platformStyle, QWidget *parent) :
3948 QDialog(parent),
4049 ui(new Ui::CoinControlDialog),
@@ -708,7 +717,7 @@ void CoinControlDialog::updateView()
708717 model->listCoins (mapCoins);
709718
710719 BOOST_FOREACH (const PAIRTYPE (QString, std::vector<COutput>)& coins, mapCoins) {
711- QTreeWidgetItem *itemWalletAddress = new QTreeWidgetItem ();
720+ CCoinControlWidgetItem *itemWalletAddress = new CCoinControlWidgetItem ();
712721 itemWalletAddress->setCheckState (COLUMN_CHECKBOX, Qt::Unchecked);
713722 QString sWalletAddress = coins.first ;
714723 QString sWalletLabel = model->getAddressTableModel ()->labelForAddress (sWalletAddress );
@@ -739,9 +748,9 @@ void CoinControlDialog::updateView()
739748 nSum += out.tx ->vout [out.i ].nValue ;
740749 nChildren++;
741750
742- QTreeWidgetItem *itemOutput;
743- if (treeMode) itemOutput = new QTreeWidgetItem (itemWalletAddress);
744- else itemOutput = new QTreeWidgetItem (ui->treeWidget );
751+ CCoinControlWidgetItem *itemOutput;
752+ if (treeMode) itemOutput = new CCoinControlWidgetItem (itemWalletAddress);
753+ else itemOutput = new CCoinControlWidgetItem (ui->treeWidget );
745754 itemOutput->setFlags (flgCheckbox);
746755 itemOutput->setCheckState (COLUMN_CHECKBOX,Qt::Unchecked);
747756
@@ -779,11 +788,11 @@ void CoinControlDialog::updateView()
779788
780789 // amount
781790 itemOutput->setText (COLUMN_AMOUNT, BitcoinUnits::format (nDisplayUnit, out.tx ->vout [out.i ].nValue ));
782- itemOutput->setText (COLUMN_AMOUNT_INT64, strPad ( QString::number ( out.tx ->vout [out.i ].nValue ), 15 , " " )); // padding so that sorting works correctly
791+ itemOutput->setData (COLUMN_AMOUNT_INT64, Qt::DisplayRole, QVariant ((qlonglong) out.tx ->vout [out.i ].nValue )); // padding so that sorting works correctly
783792
784793 // date
785794 itemOutput->setText (COLUMN_DATE, GUIUtil::dateTimeStr (out.tx ->GetTxTime ()));
786- itemOutput->setText (COLUMN_DATE_INT64, strPad ( QString::number ( out.tx ->GetTxTime ()), 20 , " " ));
795+ itemOutput->setData (COLUMN_DATE_INT64, Qt::DisplayRole, QVariant ((qlonglong) out.tx ->GetTxTime ()));
787796
788797 // confirmations
789798 itemOutput->setText (COLUMN_CONFIRMATIONS, strPad (QString::number (out.nDepth ), 8 , " " ));
0 commit comments