diff --git a/electrum/gui/qml/components/controls/FeePicker.qml b/electrum/gui/qml/components/controls/FeePicker.qml index afbabb110..df97d5bef 100644 --- a/electrum/gui/qml/components/controls/FeePicker.qml +++ b/electrum/gui/qml/components/controls/FeePicker.qml @@ -74,14 +74,14 @@ Item { Layout.preferredWidth: 1 text: targetLabel color: Material.accentColor - visible: showPicker + visible: showPicker && !manualFeeEntry } Label { Layout.fillWidth: true Layout.preferredWidth: 2 text: finalizer.target - visible: showPicker + visible: showPicker && !manualFeeEntry } RowLayout { @@ -122,6 +122,7 @@ Item { } Label { + Layout.fillWidth: true Layout.preferredWidth: 1 text: qsTr('Rate') color: Material.accentColor @@ -139,6 +140,7 @@ Item { id: rate Layout.fillWidth: true text: finalizer.userFeerate + color: finalizer.isUserFeerateLast ? Material.foreground : Material.accentColor inputMethodHints: Qt.ImhDigitsOnly validator: RegularExpressionValidator { regularExpression: /^[0-9]*\.[0-9]?$/ @@ -158,6 +160,7 @@ Item { id: absolute Layout.fillWidth: true text: finalizer.userFee + color: finalizer.isUserFeerateLast ? Material.accentColor : Material.foreground inputMethodHints: Qt.ImhDigitsOnly validator: RegularExpressionValidator { regularExpression: /^[0-9]*$/ @@ -175,6 +178,7 @@ Item { } Label { + Layout.fillWidth: true Layout.preferredWidth: 1 visible: showPicker && manualFeeEntry color: Material.accentColor diff --git a/electrum/gui/qml/qetxfinalizer.py b/electrum/gui/qml/qetxfinalizer.py index dcc6b60e2..bf1200498 100644 --- a/electrum/gui/qml/qetxfinalizer.py +++ b/electrum/gui/qml/qetxfinalizer.py @@ -158,6 +158,7 @@ class TxFeeSlider(FeeSlider): self._feeRate = '' self._userFee = '' self._userFeerate = '' + self._is_user_feerate_last = True self._rbf = False self._tx = None # type: Optional[PartialTransaction] self._inputs = [] @@ -201,6 +202,7 @@ class TxFeeSlider(FeeSlider): user_fee = int(userFee) if userFee else 0 self._fee_policy = FeePolicy(f'fixed:{user_fee}') self.userFeeChanged.emit() + self.isUserFeerateLast = False self.update() userFeerateChanged = pyqtSignal() @@ -217,8 +219,20 @@ class TxFeeSlider(FeeSlider): user_feerate = int(as_decimal * 1000) self._fee_policy = FeePolicy(f'feerate:{user_feerate}') self.userFeerateChanged.emit() + self.isUserFeerateLast = True self.update() + isUserFeerateLastChanged = pyqtSignal() + @pyqtProperty(bool, notify=isUserFeerateLastChanged) + def isUserFeerateLast(self): + return self._is_user_feerate_last + + @isUserFeerateLast.setter + def isUserFeerateLast(self, isUserFeerateLast): + if self._is_user_feerate_last != isUserFeerateLast: + self._is_user_feerate_last = isUserFeerateLast + self.isUserFeerateLastChanged.emit() + rbfChanged = pyqtSignal() @pyqtProperty(bool, notify=rbfChanged) def rbf(self):