qml: ensure that the slider neutral position is in the middle of the screen
This commit is contained in:
@@ -159,8 +159,9 @@ ElDialog {
|
||||
id: swapslider
|
||||
Layout.topMargin: constants.paddingLarge
|
||||
Layout.bottomMargin: constants.paddingLarge
|
||||
Layout.leftMargin: constants.paddingXXLarge
|
||||
Layout.rightMargin: constants.paddingXXLarge
|
||||
Layout.leftMargin: constants.paddingXXLarge + (parent.width - 2 * constants.paddingXXLarge) * swaphelper.leftVoid
|
||||
Layout.rightMargin: constants.paddingXXLarge + (parent.width - 2 * constants.paddingXXLarge) * swaphelper.rightVoid
|
||||
|
||||
Layout.fillWidth: true
|
||||
|
||||
from: swaphelper.rangeMin
|
||||
|
||||
@@ -45,6 +45,9 @@ class QESwapHelper(AuthMixin, QObject):
|
||||
self._send_amount = 0
|
||||
self._receive_amount = 0
|
||||
|
||||
self._leftVoid = 0
|
||||
self._rightVoid = 0
|
||||
|
||||
walletChanged = pyqtSignal()
|
||||
@pyqtProperty(QEWallet, notify=walletChanged)
|
||||
def wallet(self):
|
||||
@@ -91,6 +94,28 @@ class QESwapHelper(AuthMixin, QObject):
|
||||
self._rangeMax = rangeMax
|
||||
self.rangeMaxChanged.emit()
|
||||
|
||||
leftVoidChanged = pyqtSignal()
|
||||
@pyqtProperty(float, notify=leftVoidChanged)
|
||||
def leftVoid(self):
|
||||
return self._leftVoid
|
||||
|
||||
@leftVoid.setter
|
||||
def leftVoid(self, leftVoid):
|
||||
if self._leftVoid != leftVoid:
|
||||
self._leftVoid = leftVoid
|
||||
self.leftVoidChanged.emit()
|
||||
|
||||
rightVoidChanged = pyqtSignal()
|
||||
@pyqtProperty(float, notify=rightVoidChanged)
|
||||
def rightVoid(self):
|
||||
return self._rightVoid
|
||||
|
||||
@rightVoid.setter
|
||||
def rightVoid(self, rightVoid):
|
||||
if self._rightVoid != rightVoid:
|
||||
self._rightVoid = rightVoid
|
||||
self.rightVoidChanged.emit()
|
||||
|
||||
validChanged = pyqtSignal()
|
||||
@pyqtProperty(bool, notify=validChanged)
|
||||
def valid(self):
|
||||
@@ -215,6 +240,16 @@ class QESwapHelper(AuthMixin, QObject):
|
||||
self._logger.debug(f'Slider range {-reverse} - {forward}')
|
||||
self.rangeMin = -reverse
|
||||
self.rangeMax = forward
|
||||
# percentage of void, right or left
|
||||
if reverse < forward:
|
||||
self.leftVoid = 0.5 * (forward - reverse) / forward
|
||||
self.rightVoid = 0
|
||||
elif reverse > forward:
|
||||
self.leftVoid = 0
|
||||
self.rightVoid = - 0.5 * (forward - reverse) / reverse
|
||||
else:
|
||||
self.leftVoid = 0
|
||||
self.rightVoid = 0
|
||||
|
||||
self.swap_slider_moved()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user