Skip to content

Commit 8fcc482

Browse files
committed
new wheel
1 parent bf0c644 commit 8fcc482

File tree

6 files changed

+62
-11
lines changed

6 files changed

+62
-11
lines changed

boris/connections.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,10 @@ def connections(self):
166166
# menu playback
167167
self.actionJumpTo.triggered.connect(self.jump_to)
168168
self.action_deinterlace.triggered.connect(lambda: video_operations.deinterlace(self))
169+
self.action_change_time_offset_of_players.triggered.connect(lambda: video_operations.change_player_offset(self))
169170
self.actionZoom_level.triggered.connect(lambda: video_operations.zoom_level(self))
170171
self.actionRotate_current_video.triggered.connect(lambda: video_operations.rotate_displayed_video(self))
172+
171173
self.actionDisplay_subtitles.triggered.connect(lambda: video_operations.display_subtitles(self))
172174
self.actionVideo_equalizer.triggered.connect(lambda: video_equalizer.video_equalizer_show(self))
173175

boris/core.ui

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@
166166
<x>0</x>
167167
<y>0</y>
168168
<width>1509</width>
169-
<height>20</height>
169+
<height>25</height>
170170
</rect>
171171
</property>
172172
<widget class="QMenu" name="menuHelp">
@@ -361,6 +361,7 @@
361361
<addaction name="actionJumpForward"/>
362362
<addaction name="actionJumpBackward"/>
363363
<addaction name="actionJumpTo"/>
364+
<addaction name="action_change_time_offset_of_players"/>
364365
<addaction name="action_deinterlace"/>
365366
<addaction name="separator"/>
366367
<addaction name="actionZoom_level"/>
@@ -1596,6 +1597,11 @@
15961597
<string>Create video spectrogram</string>
15971598
</property>
15981599
</action>
1600+
<action name="action_change_time_offset_of_players">
1601+
<property name="text">
1602+
<string>Change time offset of players</string>
1603+
</property>
1604+
</action>
15991605
</widget>
16001606
<resources/>
16011607
<connections/>

boris/core_ui.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,8 @@ def setupUi(self, MainWindow):
380380
self.action_load_plugins.setObjectName(u"action_load_plugins")
381381
self.actionCreate_video_spectrogram = QAction(MainWindow)
382382
self.actionCreate_video_spectrogram.setObjectName(u"actionCreate_video_spectrogram")
383+
self.action_change_time_offset_of_players = QAction(MainWindow)
384+
self.action_change_time_offset_of_players.setObjectName(u"action_change_time_offset_of_players")
383385
self.centralwidget = QWidget(MainWindow)
384386
self.centralwidget.setObjectName(u"centralwidget")
385387
self.horizontalLayout_2 = QHBoxLayout(self.centralwidget)
@@ -486,7 +488,7 @@ def setupUi(self, MainWindow):
486488
MainWindow.setCentralWidget(self.centralwidget)
487489
self.menubar = QMenuBar(MainWindow)
488490
self.menubar.setObjectName(u"menubar")
489-
self.menubar.setGeometry(QRect(0, 0, 1509, 20))
491+
self.menubar.setGeometry(QRect(0, 0, 1509, 25))
490492
self.menuHelp = QMenu(self.menubar)
491493
self.menuHelp.setObjectName(u"menuHelp")
492494
self.menuFile = QMenu(self.menubar)
@@ -743,6 +745,7 @@ def setupUi(self, MainWindow):
743745
self.menuPlayback.addAction(self.actionJumpForward)
744746
self.menuPlayback.addAction(self.actionJumpBackward)
745747
self.menuPlayback.addAction(self.actionJumpTo)
748+
self.menuPlayback.addAction(self.action_change_time_offset_of_players)
746749
self.menuPlayback.addAction(self.action_deinterlace)
747750
self.menuPlayback.addSeparator()
748751
self.menuPlayback.addAction(self.actionZoom_level)
@@ -1033,6 +1036,7 @@ def retranslateUi(self, MainWindow):
10331036
self.actionAdd_frame_indexes.setText(QCoreApplication.translate("MainWindow", u"Add frame indexes", None))
10341037
self.action_load_plugins.setText(QCoreApplication.translate("MainWindow", u"Load plugins", None))
10351038
self.actionCreate_video_spectrogram.setText(QCoreApplication.translate("MainWindow", u"Create video spectrogram", None))
1039+
self.action_change_time_offset_of_players.setText(QCoreApplication.translate("MainWindow", u"Change time offset of players", None))
10361040
self.lbLogoBoris.setText("")
10371041
self.lbLogoUnito.setText("")
10381042
self.lb_player_status.setText(QCoreApplication.translate("MainWindow", u"lb_player_status", None))

boris/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@
2020
2121
"""
2222

23-
__version__ = "9.5.2"
23+
__version__ = "9.6"
2424
__version_date__ = "2025-07-15"

boris/video_operations.py

Lines changed: 46 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,6 @@ def zoom_level(self):
8787
for idx, dw in enumerate(self.dw_player):
8888
players_list.append(("dsb", f"Player #{idx + 1}", 0.1, 12, 0.1, 2**dw.player.video_zoom, 1))
8989

90-
"""
91-
zoom_levels: list = []
92-
for choice in (2, 1, 0.5, 0.25):
93-
zoom_levels.append((str(choice), "selected" if log2(choice) == dw.player.video_zoom else ""))
94-
players_list.append(("il", f"Player #{idx + 1}", zoom_levels))
95-
"""
96-
9790
zl = dialog.Input_dialog(label_caption="Select the zoom level", elements_list=players_list, title="Video zoom level")
9891
if not zl.exec_():
9992
return
@@ -117,6 +110,52 @@ def zoom_level(self):
117110
self.project_changed()
118111

119112

113+
def change_player_offset(self):
114+
"""
115+
display dialog box for setting the player time offset
116+
"""
117+
logging.info("change the player time offset")
118+
119+
if cfg.OFFSET not in self.pj[cfg.OBSERVATIONS][self.observationId][cfg.MEDIA_INFO]:
120+
self.pj[cfg.OBSERVATIONS][self.observationId][cfg.MEDIA_INFO][cfg.OFFSET] = {}
121+
122+
players_list: list = []
123+
124+
for idx, dw in enumerate(self.dw_player):
125+
players_list.append(
126+
(
127+
"dsb",
128+
f"Player #{idx + 1}",
129+
-100000,
130+
100000,
131+
0.001,
132+
self.pj[cfg.OBSERVATIONS][self.observationId][cfg.MEDIA_INFO][cfg.OFFSET][str(idx + 1)],
133+
3,
134+
)
135+
)
136+
137+
zl = dialog.Input_dialog(label_caption="Select the time offset", elements_list=players_list, title="Time offset")
138+
if not zl.exec_():
139+
return
140+
141+
for idx, dw in enumerate(self.dw_player):
142+
if (
143+
self.pj[cfg.OBSERVATIONS][self.observationId][cfg.MEDIA_INFO][cfg.OFFSET].get(str(idx + 1), 0)
144+
!= zl.elements[f"Player #{idx + 1}"].value()
145+
):
146+
logging.debug(f"time offset of player changed in {zl.elements[f'Player #{idx + 1}'].value()} for player {idx + 1}")
147+
148+
self.pj[cfg.OBSERVATIONS][self.observationId][cfg.MEDIA_INFO][cfg.OFFSET][str(idx + 1)] = float(
149+
zl.elements[f"Player #{idx + 1}"].value()
150+
)
151+
152+
if self.dw_player[0].player.time_pos is not None:
153+
cumulative_time_pos = self.getLaps() # for player 1
154+
self.sync_time(idx, cumulative_time_pos)
155+
156+
self.project_changed()
157+
158+
120159
def rotate_displayed_video(self):
121160
"""
122161
rotate the displayed video

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "boris-behav-obs"
3-
version = "9.5.2"
3+
version = "9.6"
44
description = "BORIS - Behavioral Observation Research Interactive Software"
55
authors = [{ name="Olivier Friard", email="[email protected]" }]
66
readme = "README.md"

0 commit comments

Comments
 (0)