mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-12 13:43:43 +01:00
Merge bitcoin-core/gui#556: refactor: Make BitcoinUnits::Unit a scoped enum
0e5dedbc9eqt/wallettests: sort includes (William Casarin)0554251d66qt: Skip displayUnitChanged signal if unit is not actually changed (Hennadii Stepanov)ffbc2fe459qt, refactor: Remove default cases for scoped enum (Hennadii Stepanov)152d5bad50qt, refactor: Remove BitcoinUnits::valid function (Hennadii Stepanov)aa23960fdfqt, refactor: Make BitcoinUnits::Unit a scoped enum (Hennadii Stepanov)75832fdc37qt: Use QVariant instead of int for BitcoinUnit in QSettings (Hennadii Stepanov) Pull request description: This is a rebased version of #60 Since Qt 5.5 there are [means](https://doc.qt.io/qt-5/qobject.html#Q_ENUM) to register an enum type with the meta-object system (such enum still lacks an ability to interact with [QSettings::setValue()](https://doc.qt.io/qt-5/qsettings.html#setValue) and [QSettings::value()](https://doc.qt.io/qt-5/qsettings.html#value) without defined stream operators). In order to reduce global namespace polluting and to force strong type checking, this PR makes BitcoinUnits::Unit a scoped enum (typedef BitcoinUnits::Unit BitcoinUnit;). No behavior change. ACKs for top commit: jonatack: ACK0e5dedbc9e, review and debug build of each commit after rebase on current master, lightly tested running the GUI, changing units a few times, and verifying persistence after restarting promag: Code review ACK0e5dedbc9eTree-SHA512: 39ec0d7e4f0b9b25be287888121a8db6b282339674e37ec3a3554da63a9e22d6fe079e8310ca289b2a0356a19b3c7e55afa17d09dd34e0f222177f603bb053a3
This commit is contained in:
@@ -1245,7 +1245,7 @@ void BitcoinGUI::showEvent(QShowEvent *event)
|
||||
}
|
||||
|
||||
#ifdef ENABLE_WALLET
|
||||
void BitcoinGUI::incomingTransaction(const QString& date, int unit, const CAmount& amount, const QString& type, const QString& address, const QString& label, const QString& walletName)
|
||||
void BitcoinGUI::incomingTransaction(const QString& date, BitcoinUnit unit, const CAmount& amount, const QString& type, const QString& address, const QString& label, const QString& walletName)
|
||||
{
|
||||
// On new transaction, make an info balloon
|
||||
QString msg = tr("Date: %1\n").arg(date) +
|
||||
@@ -1496,11 +1496,10 @@ UnitDisplayStatusBarControl::UnitDisplayStatusBarControl(const PlatformStyle *pl
|
||||
{
|
||||
createContextMenu();
|
||||
setToolTip(tr("Unit to show amounts in. Click to select another unit."));
|
||||
QList<BitcoinUnits::Unit> units = BitcoinUnits::availableUnits();
|
||||
QList<BitcoinUnit> units = BitcoinUnits::availableUnits();
|
||||
int max_width = 0;
|
||||
const QFontMetrics fm(font());
|
||||
for (const BitcoinUnits::Unit unit : units)
|
||||
{
|
||||
for (const BitcoinUnit unit : units) {
|
||||
max_width = qMax(max_width, GUIUtil::TextWidth(fm, BitcoinUnits::longName(unit)));
|
||||
}
|
||||
setMinimumSize(max_width, 0);
|
||||
@@ -1530,8 +1529,8 @@ void UnitDisplayStatusBarControl::changeEvent(QEvent* e)
|
||||
void UnitDisplayStatusBarControl::createContextMenu()
|
||||
{
|
||||
menu = new QMenu(this);
|
||||
for (const BitcoinUnits::Unit u : BitcoinUnits::availableUnits()) {
|
||||
menu->addAction(BitcoinUnits::longName(u))->setData(QVariant(u));
|
||||
for (const BitcoinUnit u : BitcoinUnits::availableUnits()) {
|
||||
menu->addAction(BitcoinUnits::longName(u))->setData(QVariant::fromValue(u));
|
||||
}
|
||||
connect(menu, &QMenu::triggered, this, &UnitDisplayStatusBarControl::onMenuSelection);
|
||||
}
|
||||
@@ -1552,7 +1551,7 @@ void UnitDisplayStatusBarControl::setOptionsModel(OptionsModel *_optionsModel)
|
||||
}
|
||||
|
||||
/** When Display Units are changed on OptionsModel it will refresh the display text of the control on the status bar */
|
||||
void UnitDisplayStatusBarControl::updateDisplayUnit(int newUnits)
|
||||
void UnitDisplayStatusBarControl::updateDisplayUnit(BitcoinUnit newUnits)
|
||||
{
|
||||
setText(BitcoinUnits::longName(newUnits));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user