[Qt] New status bar Unit Display Control and related changes.
- New status bar control shows the current Unit of Display. When clicked (left,or right button) it shows a context menu that allows the user to switch the current Unit of Display (BTC, mBTC, uBTC) - Recent Requests and Transaction Table headers are now updated when unit of display is changed, because their "Amount" column now displays the current unit of display. - Takes care of issue #3970 Units in transaction export csv file. - Small refactors for reusability. - Demo Video https://www.youtube.com/watch?v=wwcr0Yh68go&list=UUG3jF2hgofmLWP0tRPisQAQ - changes after Diapolo's feedback. Have not been able to build after last pool, issues with boost on MacOSX, will test on Ubuntu these changes. - removed return statement on switch - renamed onDisplayUnitsChanged(int) to updateDisplayUnit(int) - now getAmountColumnTitle(int unit) takes a simple unit parameter. moved to BitcoinUnits.
This commit is contained in:
@@ -21,7 +21,9 @@ RecentRequestsTableModel::RecentRequestsTableModel(CWallet *wallet, WalletModel
|
||||
addNewRequest(request);
|
||||
|
||||
/* These columns must match the indices in the ColumnIndex enumeration */
|
||||
columns << tr("Date") << tr("Label") << tr("Message") << tr("Amount");
|
||||
columns << tr("Date") << tr("Label") << tr("Message") << getAmountTitle();
|
||||
|
||||
connect(walletModel->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
|
||||
}
|
||||
|
||||
RecentRequestsTableModel::~RecentRequestsTableModel()
|
||||
@@ -101,6 +103,24 @@ QVariant RecentRequestsTableModel::headerData(int section, Qt::Orientation orien
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
/** Updates the column title to "Amount (DisplayUnit)" and emits headerDataChanged() signal for table headers to react. */
|
||||
void RecentRequestsTableModel::updateAmountColumnTitle()
|
||||
{
|
||||
columns[Amount] = getAmountTitle();
|
||||
emit headerDataChanged(Qt::Horizontal,Amount,Amount);
|
||||
}
|
||||
|
||||
/** Gets title for amount column including current display unit if optionsModel reference available. */
|
||||
QString RecentRequestsTableModel::getAmountTitle()
|
||||
{
|
||||
QString amountTitle = tr("Amount");
|
||||
if (this->walletModel->getOptionsModel() != NULL)
|
||||
{
|
||||
amountTitle += " ("+BitcoinUnits::name(this->walletModel->getOptionsModel()->getDisplayUnit()) + ")";
|
||||
}
|
||||
return amountTitle;
|
||||
}
|
||||
|
||||
QModelIndex RecentRequestsTableModel::index(int row, int column, const QModelIndex &parent) const
|
||||
{
|
||||
Q_UNUSED(parent);
|
||||
@@ -185,6 +205,11 @@ void RecentRequestsTableModel::sort(int column, Qt::SortOrder order)
|
||||
emit dataChanged(index(0, 0, QModelIndex()), index(list.size() - 1, NUMBER_OF_COLUMNS - 1, QModelIndex()));
|
||||
}
|
||||
|
||||
void RecentRequestsTableModel::updateDisplayUnit()
|
||||
{
|
||||
updateAmountColumnTitle();
|
||||
}
|
||||
|
||||
bool RecentRequestEntryLessThan::operator()(RecentRequestEntry &left, RecentRequestEntry &right) const
|
||||
{
|
||||
RecentRequestEntry *pLeft = &left;
|
||||
|
||||
Reference in New Issue
Block a user