Skip to content

Commit 17ab198

Browse files
committed
upgrade value edit
1 parent 5d9446b commit 17ab198

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

NodeGraphQt/widgets/node_widgets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ def __init__(self, parent=None, name='', label='', text='', ext="*"):
417417
self._ext = ext
418418

419419
def _on_select_file(self):
420-
file_path = file_dialog.getOpenFileName()
420+
file_path = file_dialog.getOpenFileName(ext_filter=self._ext)
421421
file = file_path[0] or None
422422
if file:
423423
self.value = file

NodeGraphQt/widgets/properties.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ class _valueMenu(QtWidgets.QMenu):
333333

334334
mouseMove = QtCore.Signal(object)
335335
mouseRelease = QtCore.Signal(object)
336+
stepChange = QtCore.Signal()
336337

337338
def __init__(self, parent=None):
338339
super(_valueMenu, self).__init__(parent)
@@ -357,6 +358,8 @@ def mouseMoveEvent(self, event):
357358

358359
action = self.actionAt(event.pos())
359360
if action:
361+
if action is not self.last_action:
362+
self.stepChange.emit()
360363
self.last_action = action
361364
self.step = action.step
362365
elif self.last_action:
@@ -389,16 +392,17 @@ def __init__(self, parent=None):
389392
self._data_type = float
390393
self.setText("0")
391394

392-
self.pre_x = 0
395+
self.pre_x = None
396+
self.pre_val = None
393397
self._step = 1
394-
self._tmp_value = 0
395398
self._speed = 0.1
396399

397400
self.textChanged.connect(self._on_text_changed)
398401

399402
self.menu = _valueMenu()
400403
self.menu.mouseMove.connect(self.mouseMoveEvent)
401404
self.menu.mouseRelease.connect(self.mouseReleaseEvent)
405+
self.menu.stepChange.connect(self._reset)
402406
steps = [0.001, 0.01, 0.1, 1, 10, 100, 1000]
403407
self.menu.set_steps(steps)
404408

@@ -407,25 +411,27 @@ def __init__(self, parent=None):
407411
def _on_text_changed(self, value):
408412
self.valueChanged.emit(self.value())
409413

414+
def _reset(self):
415+
self.pre_x = None
416+
410417
def mouseMoveEvent(self, event):
411418
if self.mid_state:
412419
if self.pre_x is None:
413420
self.pre_x = event.x()
414-
self.set_step(self.menu.step)
415-
delta = (event.x() - self.pre_x)
416-
self._tmp_value += delta * self._speed * self._step
417-
if abs(self._tmp_value) > self._step:
418-
value = self.value() + delta * self._step
421+
self.pre_val = self.value()
422+
else:
423+
self.set_step(self.menu.step)
424+
delta = event.x() - self.pre_x
425+
value = self.pre_val + int(delta*self._speed) * self._step
419426
self.setValue(value)
420-
self._tmp_value = 0
421-
self.pre_x = event.x()
427+
428+
422429
super(_valueEdit,self).mouseMoveEvent(event)
423430

424431
def mousePressEvent(self, event):
425432
if event.button() == QtCore.Qt.MiddleButton:
426433
self.mid_state = True
427-
self.pre_x = None
428-
self._tmp_value = 0
434+
self._reset()
429435
self.menu.exec_(QtGui.QCursor.pos())
430436
super(_valueEdit,self).mousePressEvent(event)
431437

NodeGraphQt/widgets/viewer.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,9 @@ def mousePressEvent(self, event):
246246
nodes = [i for i in items if isinstance(i, AbstractNodeItem)]
247247
pipes = [i for i in items if isinstance(i, Pipe)]
248248

249+
if nodes:
250+
self.MMB_state = False
251+
249252
# toggle extend node selection.
250253
if self.LMB_state:
251254
if self.SHIFT_state:

0 commit comments

Comments
 (0)