Browse Source

Merge pull request #3784

dc01ba7 Fix coin control sorts date as text (Cozz Lovan)
0.10
Wladimir J. van der Laan 11 years ago
parent
commit
c975e99ca9
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 14
      src/qt/coincontroldialog.cpp
  2. 28
      src/qt/coincontroldialog.h
  3. 7
      src/qt/forms/coincontroldialog.ui

14
src/qt/coincontroldialog.cpp

@ -125,6 +125,7 @@ CoinControlDialog::CoinControlDialog(QWidget *parent) :
ui->treeWidget->setColumnHidden(COLUMN_VOUT_INDEX, true); // store vout index in this column, but dont show it ui->treeWidget->setColumnHidden(COLUMN_VOUT_INDEX, true); // store vout index in this column, but dont show it
ui->treeWidget->setColumnHidden(COLUMN_AMOUNT_INT64, true); // store amount int64 in this column, but dont show it ui->treeWidget->setColumnHidden(COLUMN_AMOUNT_INT64, true); // store amount int64 in this column, but dont show it
ui->treeWidget->setColumnHidden(COLUMN_PRIORITY_INT64, true); // store priority int64 in this column, but dont show it ui->treeWidget->setColumnHidden(COLUMN_PRIORITY_INT64, true); // store priority int64 in this column, but dont show it
ui->treeWidget->setColumnHidden(COLUMN_DATE_INT64, true); // store date int64 in this column, but dont show it
// default view is sorted by amount desc // default view is sorted by amount desc
sortView(COLUMN_AMOUNT_INT64, Qt::DescendingOrder); sortView(COLUMN_AMOUNT_INT64, Qt::DescendingOrder);
@ -327,7 +328,7 @@ void CoinControlDialog::sortView(int column, Qt::SortOrder order)
sortColumn = column; sortColumn = column;
sortOrder = order; sortOrder = order;
ui->treeWidget->sortItems(column, order); ui->treeWidget->sortItems(column, order);
ui->treeWidget->header()->setSortIndicator((sortColumn == COLUMN_AMOUNT_INT64 ? COLUMN_AMOUNT : (sortColumn == COLUMN_PRIORITY_INT64 ? COLUMN_PRIORITY : sortColumn)), sortOrder); ui->treeWidget->header()->setSortIndicator(getMappedColumn(sortColumn), sortOrder);
} }
// treeview: clicked on header // treeview: clicked on header
@ -335,22 +336,18 @@ void CoinControlDialog::headerSectionClicked(int logicalIndex)
{ {
if (logicalIndex == COLUMN_CHECKBOX) // click on most left column -> do nothing if (logicalIndex == COLUMN_CHECKBOX) // click on most left column -> do nothing
{ {
ui->treeWidget->header()->setSortIndicator((sortColumn == COLUMN_AMOUNT_INT64 ? COLUMN_AMOUNT : (sortColumn == COLUMN_PRIORITY_INT64 ? COLUMN_PRIORITY : sortColumn)), sortOrder); ui->treeWidget->header()->setSortIndicator(getMappedColumn(sortColumn), sortOrder);
} }
else else
{ {
if (logicalIndex == COLUMN_AMOUNT) // sort by amount logicalIndex = getMappedColumn(logicalIndex, false);
logicalIndex = COLUMN_AMOUNT_INT64;
if (logicalIndex == COLUMN_PRIORITY) // sort by priority
logicalIndex = COLUMN_PRIORITY_INT64;
if (sortColumn == logicalIndex) if (sortColumn == logicalIndex)
sortOrder = ((sortOrder == Qt::AscendingOrder) ? Qt::DescendingOrder : Qt::AscendingOrder); sortOrder = ((sortOrder == Qt::AscendingOrder) ? Qt::DescendingOrder : Qt::AscendingOrder);
else else
{ {
sortColumn = logicalIndex; sortColumn = logicalIndex;
sortOrder = ((sortColumn == COLUMN_AMOUNT_INT64 || sortColumn == COLUMN_PRIORITY_INT64 || sortColumn == COLUMN_DATE || sortColumn == COLUMN_CONFIRMATIONS) ? Qt::DescendingOrder : Qt::AscendingOrder); // if amount,date,conf,priority then default => desc, else default => asc sortOrder = ((sortColumn == COLUMN_LABEL || sortColumn == COLUMN_ADDRESS) ? Qt::AscendingOrder : Qt::DescendingOrder); // if label or address then default => asc, else default => desc
} }
sortView(sortColumn, sortOrder); sortView(sortColumn, sortOrder);
@ -731,6 +728,7 @@ void CoinControlDialog::updateView()
// date // date
itemOutput->setText(COLUMN_DATE, GUIUtil::dateTimeStr(out.tx->GetTxTime())); itemOutput->setText(COLUMN_DATE, GUIUtil::dateTimeStr(out.tx->GetTxTime()));
itemOutput->setText(COLUMN_DATE_INT64, strPad(QString::number(out.tx->GetTxTime()), 20, " "));
// confirmations // confirmations
itemOutput->setText(COLUMN_CONFIRMATIONS, strPad(QString::number(out.nDepth), 8, " ")); itemOutput->setText(COLUMN_CONFIRMATIONS, strPad(QString::number(out.nDepth), 8, " "));

28
src/qt/coincontroldialog.h

@ -65,9 +65,35 @@ private:
COLUMN_TXHASH, COLUMN_TXHASH,
COLUMN_VOUT_INDEX, COLUMN_VOUT_INDEX,
COLUMN_AMOUNT_INT64, COLUMN_AMOUNT_INT64,
COLUMN_PRIORITY_INT64 COLUMN_PRIORITY_INT64,
COLUMN_DATE_INT64
}; };
// some columns have a hidden column containing the value used for sorting
int getMappedColumn(int column, bool fVisibleColumn = true)
{
if (fVisibleColumn)
{
if (column == COLUMN_AMOUNT_INT64)
return COLUMN_AMOUNT;
else if (column == COLUMN_PRIORITY_INT64)
return COLUMN_PRIORITY;
else if (column == COLUMN_DATE_INT64)
return COLUMN_DATE;
}
else
{
if (column == COLUMN_AMOUNT)
return COLUMN_AMOUNT_INT64;
else if (column == COLUMN_PRIORITY)
return COLUMN_PRIORITY_INT64;
else if (column == COLUMN_DATE)
return COLUMN_DATE_INT64;
}
return column;
}
private slots: private slots:
void showMenu(const QPoint &); void showMenu(const QPoint &);
void copyAmount(); void copyAmount();

7
src/qt/forms/coincontroldialog.ui

@ -428,7 +428,7 @@
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="columnCount"> <property name="columnCount">
<number>11</number> <number>12</number>
</property> </property>
<attribute name="headerShowSortIndicator" stdset="0"> <attribute name="headerShowSortIndicator" stdset="0">
<bool>true</bool> <bool>true</bool>
@ -494,6 +494,11 @@
<string/> <string/>
</property> </property>
</column> </column>
<column>
<property name="text">
<string/>
</property>
</column>
</widget> </widget>
</item> </item>
<item> <item>

Loading…
Cancel
Save