Skip to content

Commit cb08a1c

Browse files
hebastopromag
andcommitted
qt: Skip displayUnitChanged signal if unit is not actually changed
Co-authored-by: João Barbosa <[email protected]>
1 parent cc35d7b commit cb08a1c

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

src/qt/optionsmodel.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -505,15 +505,13 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
505505
return successful;
506506
}
507507

508-
/** Updates current unit in memory, settings and emits displayUnitChanged(newUnit) signal */
509-
void OptionsModel::setDisplayUnit(const QVariant &value)
508+
void OptionsModel::setDisplayUnit(const QVariant& new_unit)
510509
{
511-
if (!value.isNull()) {
512-
QSettings settings;
513-
m_display_unit = value.value<BitcoinUnit>();
514-
settings.setValue("display_unit", QVariant::fromValue(m_display_unit));
515-
Q_EMIT displayUnitChanged(m_display_unit);
516-
}
510+
if (new_unit.isNull() || new_unit.value<BitcoinUnit>() == m_display_unit) return;
511+
m_display_unit = new_unit.value<BitcoinUnit>();
512+
QSettings settings;
513+
settings.setValue("display_unit", QVariant::fromValue(m_display_unit));
514+
Q_EMIT displayUnitChanged(m_display_unit);
517515
}
518516

519517
void OptionsModel::setRestartRequired(bool fRequired)

src/qt/optionsmodel.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ class OptionsModel : public QAbstractListModel
7676
int rowCount(const QModelIndex & parent = QModelIndex()) const override;
7777
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const override;
7878
bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole) override;
79-
/** Updates current unit in memory, settings and emits displayUnitChanged(newUnit) signal */
80-
void setDisplayUnit(const QVariant &value);
79+
/** Updates current unit in memory, settings and emits displayUnitChanged(new_unit) signal */
80+
void setDisplayUnit(const QVariant& new_unit);
8181

8282
/* Explicit getters */
8383
bool getShowTrayIcon() const { return m_show_tray_icon; }

0 commit comments

Comments
 (0)