Skip to content

Commit 7357c69

Browse files
committed
updates to panel
1 parent 4c1208b commit 7357c69

File tree

6 files changed

+37
-12
lines changed

6 files changed

+37
-12
lines changed

spikeinterface_gui/backend_panel.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class SignalNotifier(param.Parameterized):
1313
channel_visibility_changed = param.Event()
1414
manual_curation_updated = param.Event()
1515
time_info_updated = param.Event()
16+
use_times_updated = param.Event()
1617
active_view_updated = param.Event()
1718
unit_color_changed = param.Event()
1819

@@ -35,6 +36,9 @@ def notify_manual_curation_updated(self):
3536
def notify_time_info_updated(self):
3637
self.param.trigger("time_info_updated")
3738

39+
def notify_use_times_updated(self):
40+
self.param.trigger("use_times_updated")
41+
3842
def notify_active_view_updated(self):
3943
# this is used to keep an "active view" in the main window
4044
# when a view triggers this event, it self-declares it as active
@@ -65,6 +69,7 @@ def connect_view(self, view):
6569
view.notifier.param.watch(self.on_channel_visibility_changed, "channel_visibility_changed")
6670
view.notifier.param.watch(self.on_manual_curation_updated, "manual_curation_updated")
6771
view.notifier.param.watch(self.on_time_info_updated, "time_info_updated")
72+
view.notifier.param.watch(self.on_use_times_updated, "use_times_updated")
6873
view.notifier.param.watch(self.on_active_view_updated, "active_view_updated")
6974
view.notifier.param.watch(self.on_unit_color_changed, "unit_color_changed")
7075

@@ -110,6 +115,15 @@ def on_time_info_updated(self, param):
110115
continue
111116
view.on_time_info_updated()
112117

118+
def on_use_times_updated(self, param):
119+
# use times is updated also when a view is not active
120+
if not self._active:
121+
return
122+
for view in self.controller.views:
123+
if param.obj.view == view:
124+
continue
125+
view.on_use_times_updated()
126+
113127
def on_active_view_updated(self, param):
114128
if not self._active:
115129
return

spikeinterface_gui/basescatterview.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -396,8 +396,8 @@ def _panel_make_layout(self):
396396
self.scatter_fig.toolbar.active_drag = None
397397
self.scatter_fig.xaxis.axis_label = "Time (s)"
398398
self.scatter_fig.yaxis.axis_label = self.y_label
399-
t_start, t_end = self.controller.get_t_start_t_end()
400-
self.scatter_fig.x_range = Range1d(t_start, t_end)
399+
t_start, t_stop = self.controller.get_t_start_t_stop()
400+
self.scatter_fig.x_range = Range1d(t_start, t_stop)
401401

402402
# Add SelectionGeometry event handler to capture lasso vertices
403403
self.scatter_fig.on_event('selectiongeometry', self._on_panel_selection_geometry)

spikeinterface_gui/mainsettingsview.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def on_change_color_mode(self):
4141

4242
def on_use_times(self):
4343
self.controller.main_settings['use_times'] = self.main_settings['use_times']
44+
print("Use times changed:", self.main_settings['use_times'])
4445
self.controller.update_time_info()
4546
self.notify_use_times_updated()
4647
# for view in self.controller.views:

spikeinterface_gui/tracemapview.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -181,11 +181,6 @@ def _qt_on_time_info_updated(self):
181181
# we need refresh in QT because changing tab/docking/undocking doesn't trigger a refresh
182182
self.refresh()
183183

184-
def _qt_on_use_times_updated(self):
185-
# Update time seeker
186-
t_start, t_stop = self.controller.get_t_start_t_stop()
187-
self.timeseeker.set_start_stop(t_start, t_stop)
188-
189184
## Panel ##
190185
def _panel_make_layout(self):
191186
import panel as pn

spikeinterface_gui/traceview.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,11 @@ def _qt_seek_with_selected_spike(self):
239239
self.controller.set_time(time=peak_time)
240240
self.notify_time_info_updated()
241241
self.refresh()
242+
243+
def _qt_on_use_times_updated(self):
244+
# Update time seeker
245+
t_start, t_stop = self.controller.get_t_start_t_stop()
246+
self.timeseeker.set_start_stop(t_start, t_stop)
242247

243248
## panel ##
244249
def _panel_create_toolbar(self):
@@ -341,6 +346,16 @@ def _panel_seek_with_selected_spike(self):
341346
self.refresh()
342347
self.notify_time_info_updated()
343348

349+
def _panel_on_use_times_updated(self):
350+
# Update time seeker
351+
t_start, t_stop = self.controller.get_t_start_t_stop()
352+
self.time_slider.start = t_start
353+
self.time_slider.end = t_stop
354+
355+
# Optionally clamp the current value if out of range
356+
self.time_slider.value = max(t_start, min(self.time_slider.value, t_stop))
357+
self.refresh()
358+
344359
# TODO: pan behavior like Qt?
345360
# def _panel_on_pan_start(self, event):
346361
# self.drag_state["x_start"] = event.x
@@ -552,10 +567,10 @@ def _qt_on_time_info_updated(self):
552567
# we need refresh in QT because changing tab/docking/undocking doesn't trigger a refresh
553568
self.refresh()
554569

555-
def _qt_on_use_times_updated(self):
556-
# Update time seeker
557-
t_start, t_stop = self.controller.get_t_start_t_stop()
558-
self.timeseeker.set_start_stop(t_start, t_stop)
570+
# def _qt_on_use_times_updated(self):
571+
# # Update time seeker
572+
# t_start, t_stop = self.controller.get_t_start_t_stop()
573+
# self.timeseeker.set_start_stop(t_start, t_stop)
559574

560575
## panel ##
561576
def _panel_make_layout(self):

spikeinterface_gui/view_base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ def _panel_on_manual_curation_updated(self):
322322
def _panel_on_time_info_updated(self):
323323
pass
324324

325-
def _panel_use_times_updated(self):
325+
def _panel_on_use_times_updated(self):
326326
pass
327327

328328
def _panel_on_unit_color_changed(self):

0 commit comments

Comments
 (0)