@@ -35,6 +35,13 @@ QList<CAmount> CoinControlDialog::payAmounts;
35
35
CCoinControl* CoinControlDialog::coinControl = new CCoinControl();
36
36
bool CoinControlDialog::fSubtractFeeFromAmount = false ;
37
37
38
+ bool CCoinControlWidgetItem::operator <(const QTreeWidgetItem &other) const {
39
+ int column = treeWidget ()->sortColumn ();
40
+ if (column == CoinControlDialog::COLUMN_AMOUNT || column == CoinControlDialog::COLUMN_DATE || column == CoinControlDialog::COLUMN_CONFIRMATIONS)
41
+ return data (column, Qt::UserRole).toLongLong () < other.data (column, Qt::UserRole).toLongLong ();
42
+ return QTreeWidgetItem::operator <(other);
43
+ }
44
+
38
45
CoinControlDialog::CoinControlDialog (const PlatformStyle *_platformStyle, QWidget *parent) :
39
46
QDialog(parent),
40
47
ui(new Ui::CoinControlDialog),
@@ -128,11 +135,9 @@ CoinControlDialog::CoinControlDialog(const PlatformStyle *_platformStyle, QWidge
128
135
ui->treeWidget ->setColumnWidth (COLUMN_CONFIRMATIONS, 110 );
129
136
ui->treeWidget ->setColumnHidden (COLUMN_TXHASH, true ); // store transaction hash in this column, but don't show it
130
137
ui->treeWidget ->setColumnHidden (COLUMN_VOUT_INDEX, true ); // store vout index in this column, but don't show it
131
- ui->treeWidget ->setColumnHidden (COLUMN_AMOUNT_INT64, true ); // store amount int64 in this column, but don't show it
132
- ui->treeWidget ->setColumnHidden (COLUMN_DATE_INT64, true ); // store date int64 in this column, but don't show it
133
138
134
139
// default view is sorted by amount desc
135
- sortView (COLUMN_AMOUNT_INT64 , Qt::DescendingOrder);
140
+ sortView (COLUMN_AMOUNT , Qt::DescendingOrder);
136
141
137
142
// restore list mode and sortorder as a convenience feature
138
143
QSettings settings;
@@ -164,15 +169,6 @@ void CoinControlDialog::setModel(WalletModel *_model)
164
169
}
165
170
}
166
171
167
- // helper function str_pad
168
- QString CoinControlDialog::strPad (QString s, int nPadLength, QString sPadding )
169
- {
170
- while (s.length () < nPadLength)
171
- s = sPadding + s;
172
-
173
- return s;
174
- }
175
-
176
172
// ok button
177
173
void CoinControlDialog::buttonBoxClicked (QAbstractButton* button)
178
174
{
@@ -338,20 +334,18 @@ void CoinControlDialog::sortView(int column, Qt::SortOrder order)
338
334
sortColumn = column;
339
335
sortOrder = order;
340
336
ui->treeWidget ->sortItems (column, order);
341
- ui->treeWidget ->header ()->setSortIndicator (getMappedColumn ( sortColumn) , sortOrder);
337
+ ui->treeWidget ->header ()->setSortIndicator (sortColumn, sortOrder);
342
338
}
343
339
344
340
// treeview: clicked on header
345
341
void CoinControlDialog::headerSectionClicked (int logicalIndex)
346
342
{
347
343
if (logicalIndex == COLUMN_CHECKBOX) // click on most left column -> do nothing
348
344
{
349
- ui->treeWidget ->header ()->setSortIndicator (getMappedColumn ( sortColumn) , sortOrder);
345
+ ui->treeWidget ->header ()->setSortIndicator (sortColumn, sortOrder);
350
346
}
351
347
else
352
348
{
353
- logicalIndex = getMappedColumn (logicalIndex, false );
354
-
355
349
if (sortColumn == logicalIndex)
356
350
sortOrder = ((sortOrder == Qt::AscendingOrder) ? Qt::DescendingOrder : Qt::AscendingOrder);
357
351
else
@@ -658,7 +652,7 @@ void CoinControlDialog::updateView()
658
652
model->listCoins (mapCoins);
659
653
660
654
BOOST_FOREACH (const PAIRTYPE (QString, std::vector<COutput>)& coins, mapCoins) {
661
- QTreeWidgetItem *itemWalletAddress = new QTreeWidgetItem ();
655
+ CCoinControlWidgetItem *itemWalletAddress = new CCoinControlWidgetItem ();
662
656
itemWalletAddress->setCheckState (COLUMN_CHECKBOX, Qt::Unchecked);
663
657
QString sWalletAddress = coins.first ;
664
658
QString sWalletLabel = model->getAddressTableModel ()->labelForAddress (sWalletAddress );
@@ -686,9 +680,9 @@ void CoinControlDialog::updateView()
686
680
nSum += out.tx ->vout [out.i ].nValue ;
687
681
nChildren++;
688
682
689
- QTreeWidgetItem *itemOutput;
690
- if (treeMode) itemOutput = new QTreeWidgetItem (itemWalletAddress);
691
- else itemOutput = new QTreeWidgetItem (ui->treeWidget );
683
+ CCoinControlWidgetItem *itemOutput;
684
+ if (treeMode) itemOutput = new CCoinControlWidgetItem (itemWalletAddress);
685
+ else itemOutput = new CCoinControlWidgetItem (ui->treeWidget );
692
686
itemOutput->setFlags (flgCheckbox);
693
687
itemOutput->setCheckState (COLUMN_CHECKBOX,Qt::Unchecked);
694
688
@@ -721,14 +715,15 @@ void CoinControlDialog::updateView()
721
715
722
716
// amount
723
717
itemOutput->setText (COLUMN_AMOUNT, BitcoinUnits::format (nDisplayUnit, out.tx ->vout [out.i ].nValue ));
724
- itemOutput->setText (COLUMN_AMOUNT_INT64, strPad ( QString::number ( out.tx ->vout [out.i ].nValue ), 15 , " " )); // padding so that sorting works correctly
718
+ itemOutput->setData (COLUMN_AMOUNT, Qt::UserRole, QVariant ((qlonglong) out.tx ->vout [out.i ].nValue )); // padding so that sorting works correctly
725
719
726
720
// date
727
721
itemOutput->setText (COLUMN_DATE, GUIUtil::dateTimeStr (out.tx ->GetTxTime ()));
728
- itemOutput->setText (COLUMN_DATE_INT64, strPad ( QString::number ( out.tx ->GetTxTime ()), 20 , " " ));
722
+ itemOutput->setData (COLUMN_DATE, Qt::UserRole, QVariant ((qlonglong) out.tx ->GetTxTime ()));
729
723
730
724
// confirmations
731
- itemOutput->setText (COLUMN_CONFIRMATIONS, strPad (QString::number (out.nDepth ), 8 , " " ));
725
+ itemOutput->setText (COLUMN_CONFIRMATIONS, QString::number (out.nDepth ));
726
+ itemOutput->setData (COLUMN_CONFIRMATIONS, Qt::UserRole, QVariant ((qlonglong)out.nDepth ));
732
727
733
728
// transaction hash
734
729
uint256 txhash = out.tx ->GetHash ();
@@ -756,7 +751,7 @@ void CoinControlDialog::updateView()
756
751
{
757
752
itemWalletAddress->setText (COLUMN_CHECKBOX, " (" + QString::number (nChildren) + " )" );
758
753
itemWalletAddress->setText (COLUMN_AMOUNT, BitcoinUnits::format (nDisplayUnit, nSum));
759
- itemWalletAddress->setText (COLUMN_AMOUNT_INT64, strPad ( QString::number (nSum), 15 , " " ));
754
+ itemWalletAddress->setData (COLUMN_AMOUNT, Qt::UserRole, QVariant ((qlonglong)nSum ));
760
755
}
761
756
}
762
757
0 commit comments