Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 14 additions & 8 deletions spikeinterface_gui/traceview.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@ def _qt_create_toolbars(self):

self.scroll_time = QT.QScrollBar(orientation=QT.Qt.Horizontal)
self.scroll_time.valueChanged.connect(self._qt_on_scroll_time)
self._qt_update_scroll_step()

if self.controller.has_extension("events"):
bottom_layout = QT.QHBoxLayout()
bottom_layout.addWidget(self.scroll_time, stretch=8)
Expand Down Expand Up @@ -209,13 +211,17 @@ def _qt_initialize_plot(self):
self.gains = None
self.offsets = None

def _qt_update_scroll_limits(self):
def _qt_update_scroll_step(self):
segment_index = self.controller.get_time()[1]
length = self.controller.get_num_samples(segment_index)
num_scrollbar_steps = max(2**16, length)
self.scroll_step = length / num_scrollbar_steps

t_start, t_stop = self.controller.get_t_start_t_stop()
self.timeseeker.set_start_stop(t_start, t_stop, seek=False)

self.scroll_time.setMinimum(0)
self.scroll_time.setMaximum(length - 1)
self.scroll_time.setMaximum(num_scrollbar_steps - 1)

def _qt_change_segment(self, segment_index):
#TODO: dirty because now seg_pos IS segment_index
Expand All @@ -224,7 +230,8 @@ def _qt_change_segment(self, segment_index):
if segment_index != self.combo_seg.currentIndex():
self.combo_seg.setCurrentIndex(segment_index)

self._qt_update_scroll_limits()
self._qt_update_scroll_step()

if not self._block_auto_refresh_and_notify:
self.refresh()
self.notify_time_info_updated()
Expand Down Expand Up @@ -255,7 +262,8 @@ def _qt_xsize_zoom(self, xmove):
self.spinbox_xsize.setValue(newsize)

def _qt_on_scroll_time(self, val):
time = self.controller.sample_index_to_time(val)
sample = int(val * self.scroll_step)
time = self.controller.sample_index_to_time(sample)
self.timeseeker.seek(time)

def _qt_seek_with_selected_spike(self):
Expand Down Expand Up @@ -677,7 +685,6 @@ def _qt_make_layout(self):
self.plot.addItem(self.scatter)

self.layout.addWidget(self.bottom_toolbar)
self._qt_update_scroll_limits()

def _qt_on_settings_changed(self):
# adjust xsize spinbox bounds, and adjust xsize if out of bounds
Expand Down Expand Up @@ -707,12 +714,11 @@ def _qt_seek(self, t):

xsize = self.xsize
t1, t2 = t - xsize/3., t + xsize * 2/3.
sr = self.controller.sampling_frequency

self.scroll_time.valueChanged.disconnect(self._qt_on_scroll_time)
value = self.controller.time_to_sample_index(t)
sample = self.controller.time_to_sample_index(t)
value = int(sample / self.scroll_step)
self.scroll_time.setValue(value)
self.scroll_time.setPageStep(int(sr*xsize))
self.scroll_time.valueChanged.connect(self._qt_on_scroll_time)

visible_channel_inds = self.get_visible_channel_inds()
Expand Down
Loading