Skip to content

Commit

Permalink
spinbox function add in window coverting
Browse files Browse the repository at this point in the history
  • Loading branch information
stardino2 authored and gdinolee committed Jun 29, 2023
1 parent 4eac013 commit e335607
Showing 1 changed file with 22 additions and 4 deletions.
26 changes: 22 additions & 4 deletions src/things/windowcovering.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ def post_setup_window(self):
self.init_open_button()
self.init_close_button()
self.init_pause_button()
self.init_spinbox()
self.init_slider()

self.timer = QTimer(self) # Create a timer object
Expand Down Expand Up @@ -172,6 +173,15 @@ def set_direction(self):
elif self.targetlevel < self.currentlevel:
self.direction = WC_MOVE_DOWN


## Initialise UI Input Button ##
def init_spinbox(self):
self.spinBoxWindow.installEventFilter(self)
self.spinBoxWindow.valueChanged.connect(self.spin_value_changed)
self.spinBoxWindow.setSingleStep(1)
self.spinBoxWindow.wheelEvent = lambda event : None


## Initialise UI slider ##
def init_slider(self):
self.horizontalSliderWindow.setRange(
Expand All @@ -191,27 +201,35 @@ def init_slider(self):
self.value_changed)
self.horizontalSliderWindow.setStyleSheet(
Utils.get_ui_style_slider("COMMON"))
self.spinBoxWindow.installEventFilter(self)

## Set the window cover to target value ##
def to_target(self):
def to_target(self, prev_targetlevel = 0):
self.horizontalSliderWindow.setValue(self.targetlevel)
self.spinBoxWindow.setValue(self.targetlevel)
if self.targetlevel != self.currentlevel:
self.send_target_value()
self.set_direction()
self.timer.start(50)
if abs(self.targetlevel - prev_targetlevel) > 1:
self.timer.start(50)
else:
self.update_current_value()

## Handle spin box
def spin_value_changed(self):
level = self.spinBoxWindow.value()
self.horizontalSliderWindow.setValue(int(level))

## Handle slider events ##
def value_changed(self):
if not self.is_slider_pressed:
self.timer.stop()
level = self.horizontalSliderWindow.value()
prev_targetlevel = self.targetlevel
if level != self.targetlevel and level != self.currentlevel:
self.targetlevel = level
print(
f'value_changed : target ({self.targetlevel}), current ({self.currentlevel})')
self.to_target()
self.to_target(prev_targetlevel)

## Set slider state to pressed ##
def slider_pressed(self):
Expand Down

0 comments on commit e335607

Please sign in to comment.