Merge pull request #1495 from fieldOfView/feature_draggable_range_slider2

Use a single draggable range slider in Layerview
This commit is contained in:
jack 2017-03-07 11:43:17 +01:00 committed by GitHub
commit 3b1a15e1c4
3 changed files with 241 additions and 63 deletions

View file

@ -163,6 +163,8 @@ class LayerView(View):
self._current_layer_num = 0
if self._current_layer_num > self._max_layers:
self._current_layer_num = self._max_layers
if self._current_layer_num < self._minimum_layer_num:
self._minimum_layer_num = self._current_layer_num
self._startUpdateTopLayers()
@ -173,6 +175,10 @@ class LayerView(View):
self._minimum_layer_num = value
if self._minimum_layer_num < 0:
self._minimum_layer_num = 0
if self._minimum_layer_num > self._max_layers:
self._minimum_layer_num = self._max_layers
if self._minimum_layer_num > self._current_layer_num:
self._current_layer_num = self._minimum_layer_num
self._startUpdateTopLayers()
@ -279,13 +285,15 @@ class LayerView(View):
def event(self, event):
modifiers = QApplication.keyboardModifiers()
ctrl_is_active = modifiers == Qt.ControlModifier
ctrl_is_active = modifiers & Qt.ControlModifier
shift_is_active = modifiers & Qt.ShiftModifier
if event.type == Event.KeyPressEvent and ctrl_is_active:
amount = 10 if shift_is_active else 1
if event.key == KeyEvent.UpKey:
self.setLayer(self._current_layer_num + 1)
self.setLayer(self._current_layer_num + amount)
return True
if event.key == KeyEvent.DownKey:
self.setLayer(self._current_layer_num - 1)
self.setLayer(self._current_layer_num - amount)
return True
if event.type == Event.ViewActivateEvent: