Skip to content

Commit 710eebf

Browse files
committed
Allow users to enter frame manually
Signed-off-by: Brianna Major <brianna.major@kitware.com>
1 parent d60738f commit 710eebf

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

hexrdgui/image_series_toolbar.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
from pathlib import Path
22
from PySide6.QtCore import QCoreApplication, Qt
33
from PySide6.QtWidgets import (
4-
QGridLayout, QLabel, QSlider, QWidget, QPushButton
4+
QGridLayout, QLabel, QLineEdit, QSlider, QWidget, QPushButton
55
)
66
from PySide6.QtGui import QFontMetrics, QPixmap
77
from hexrdgui import resource_loader
88

99
import hexrdgui.resources.icons
1010
from hexrdgui.hexrd_config import HexrdConfig
11+
from hexrdgui.utils import block_signals
1112

1213

1314
class ImageSeriesInfoToolbar(QWidget):
@@ -77,14 +78,14 @@ def __init__(self, ims, parent=None):
7778
self.setup_connections()
7879

7980
def setup_connections(self):
80-
self.slider.valueChanged.connect(self.val_changed)
81-
self.slider.valueChanged.connect(lambda i: self.frameValue.setText(str(i)))
81+
self.slider.valueChanged.connect(self.slider_changed)
82+
self.frameValue.textChanged.connect(self.frame_changed)
8283
self.backFrame.clicked.connect(lambda: self.change_frame(-1))
8384
self.forwardFrame.clicked.connect(lambda: self.change_frame(1))
8485

8586
def create_widget(self):
8687
self.slider = QSlider(Qt.Horizontal, self.parent())
87-
self.frameValue = QLabel(self.parent())
88+
self.frameValue = QLineEdit(self.parent())
8889
self.backFrame = QPushButton('<<')
8990
self.backFrame.setFixedSize(35, 22)
9091
self.forwardFrame = QPushButton('>>')
@@ -173,11 +174,20 @@ def update_omega_label_text(self):
173174

174175
self.omega_label.setText(omega_label_text(*ome_range))
175176

177+
def slider_changed(self, value):
178+
with block_signals(self.frameValue):
179+
self.frameValue.setText(str(value))
180+
self.val_changed(value)
181+
182+
def frame_changed(self, value):
183+
with block_signals(self.slider):
184+
self.slider.setSliderPosition(int(value))
185+
self.val_changed(int(value))
186+
176187
def change_frame(self, value):
177188
new_frame = int(self.frameValue.text()) + value
178189
self.frameValue.setText(str(new_frame))
179190
self.slider.setSliderPosition(new_frame)
180-
self.update_back_forward_buttons(new_frame)
181191
self.val_changed(new_frame)
182192

183193
def update_back_forward_buttons(self, val):

0 commit comments

Comments
 (0)