boris-behav-obs 8.16.5__py3-none-any.whl → 9.7.12__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. boris/__init__.py +1 -1
  2. boris/__main__.py +1 -1
  3. boris/about.py +28 -40
  4. boris/add_modifier.py +88 -80
  5. boris/add_modifier_ui.py +266 -144
  6. boris/advanced_event_filtering.py +23 -29
  7. boris/analysis_plugins/__init__.py +0 -0
  8. boris/analysis_plugins/_export_to_feral.py +225 -0
  9. boris/analysis_plugins/_latency.py +59 -0
  10. boris/analysis_plugins/irr_cohen_kappa.py +109 -0
  11. boris/analysis_plugins/irr_cohen_kappa_with_modifiers.py +112 -0
  12. boris/analysis_plugins/irr_weighted_cohen_kappa.py +157 -0
  13. boris/analysis_plugins/irr_weighted_cohen_kappa_with_modifiers.py +162 -0
  14. boris/analysis_plugins/list_of_dataframe_columns.py +22 -0
  15. boris/analysis_plugins/number_of_occurences.py +22 -0
  16. boris/analysis_plugins/number_of_occurences_by_independent_variable.py +54 -0
  17. boris/analysis_plugins/time_budget.py +61 -0
  18. boris/behav_coding_map_creator.py +235 -236
  19. boris/behavior_binary_table.py +33 -50
  20. boris/behaviors_coding_map.py +17 -18
  21. boris/boris_cli.py +6 -25
  22. boris/cmd_arguments.py +12 -1
  23. boris/coding_pad.py +19 -36
  24. boris/config.py +109 -50
  25. boris/config_file.py +58 -67
  26. boris/connections.py +105 -58
  27. boris/converters.py +13 -37
  28. boris/converters_ui.py +187 -110
  29. boris/cooccurence.py +250 -0
  30. boris/core.py +2174 -1303
  31. boris/core_qrc.py +15892 -10829
  32. boris/core_ui.py +941 -806
  33. boris/db_functions.py +17 -42
  34. boris/dev.py +27 -7
  35. boris/dialog.py +461 -242
  36. boris/duration_widget.py +9 -14
  37. boris/edit_event.py +61 -31
  38. boris/edit_event_ui.py +208 -97
  39. boris/event_operations.py +405 -281
  40. boris/events_cursor.py +25 -17
  41. boris/events_snapshots.py +36 -82
  42. boris/exclusion_matrix.py +4 -9
  43. boris/export_events.py +180 -203
  44. boris/export_observation.py +60 -73
  45. boris/external_processes.py +123 -98
  46. boris/geometric_measurement.py +427 -218
  47. boris/gui_utilities.py +91 -14
  48. boris/image_overlay.py +4 -4
  49. boris/import_observations.py +190 -98
  50. boris/ipc_mpv.py +325 -0
  51. boris/irr.py +20 -57
  52. boris/latency.py +31 -24
  53. boris/measurement_widget.py +14 -18
  54. boris/media_file.py +17 -19
  55. boris/menu_options.py +16 -6
  56. boris/modifier_coding_map_creator.py +1013 -0
  57. boris/modifiers_coding_map.py +7 -9
  58. boris/mpv2.py +128 -35
  59. boris/observation.py +501 -211
  60. boris/observation_operations.py +1037 -393
  61. boris/observation_ui.py +573 -363
  62. boris/observations_list.py +51 -58
  63. boris/otx_parser.py +74 -68
  64. boris/param_panel.py +45 -59
  65. boris/param_panel_ui.py +254 -138
  66. boris/player_dock_widget.py +91 -56
  67. boris/plot_data_module.py +20 -53
  68. boris/plot_events.py +56 -153
  69. boris/plot_events_rt.py +16 -30
  70. boris/plot_spectrogram_rt.py +83 -56
  71. boris/plot_waveform_rt.py +27 -49
  72. boris/plugins.py +468 -0
  73. boris/portion/__init__.py +18 -8
  74. boris/portion/const.py +35 -18
  75. boris/portion/dict.py +5 -5
  76. boris/portion/func.py +2 -2
  77. boris/portion/interval.py +21 -41
  78. boris/portion/io.py +41 -32
  79. boris/preferences.py +307 -123
  80. boris/preferences_ui.py +686 -227
  81. boris/project.py +294 -271
  82. boris/project_functions.py +626 -537
  83. boris/project_import_export.py +204 -213
  84. boris/project_ui.py +673 -441
  85. boris/qrc_boris.py +6 -3
  86. boris/qrc_boris5.py +6 -3
  87. boris/select_modifiers.py +62 -90
  88. boris/select_observations.py +19 -197
  89. boris/select_subj_behav.py +67 -39
  90. boris/state_events.py +51 -33
  91. boris/subjects_pad.py +7 -9
  92. boris/synthetic_time_budget.py +42 -26
  93. boris/time_budget_functions.py +169 -169
  94. boris/time_budget_widget.py +77 -89
  95. boris/transitions.py +41 -41
  96. boris/utilities.py +594 -226
  97. boris/version.py +3 -3
  98. boris/video_equalizer.py +16 -14
  99. boris/video_equalizer_ui.py +199 -130
  100. boris/video_operations.py +86 -28
  101. boris/view_df.py +104 -0
  102. boris/view_df_ui.py +75 -0
  103. boris/write_event.py +240 -136
  104. boris_behav_obs-9.7.12.dist-info/METADATA +139 -0
  105. boris_behav_obs-9.7.12.dist-info/RECORD +110 -0
  106. {boris_behav_obs-8.16.5.dist-info → boris_behav_obs-9.7.12.dist-info}/WHEEL +1 -1
  107. boris_behav_obs-9.7.12.dist-info/entry_points.txt +2 -0
  108. boris/README.TXT +0 -22
  109. boris/add_modifier.ui +0 -323
  110. boris/converters.ui +0 -289
  111. boris/core.qrc +0 -37
  112. boris/core.ui +0 -1571
  113. boris/edit_event.ui +0 -233
  114. boris/icons/logo_eye.ico +0 -0
  115. boris/map_creator.py +0 -982
  116. boris/observation.ui +0 -814
  117. boris/param_panel.ui +0 -379
  118. boris/preferences.ui +0 -537
  119. boris/project.ui +0 -1074
  120. boris/vlc_local.py +0 -90
  121. boris_behav_obs-8.16.5.dist-info/LICENSE.TXT +0 -674
  122. boris_behav_obs-8.16.5.dist-info/METADATA +0 -134
  123. boris_behav_obs-8.16.5.dist-info/RECORD +0 -107
  124. boris_behav_obs-8.16.5.dist-info/entry_points.txt +0 -2
  125. {boris → boris_behav_obs-9.7.12.dist-info/licenses}/LICENSE.TXT +0 -0
  126. {boris_behav_obs-8.16.5.dist-info → boris_behav_obs-9.7.12.dist-info}/top_level.txt +0 -0
boris/param_panel.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
2
  BORIS
3
3
  Behavioral Observation Research Interactive Software
4
- Copyright 2012-2023 Olivier Friard
4
+ Copyright 2012-2025 Olivier Friard
5
5
 
6
6
  This file is part of BORIS.
7
7
 
@@ -20,48 +20,34 @@ This file is part of BORIS.
20
20
 
21
21
  """
22
22
 
23
-
24
- from PyQt5.QtCore import Qt
25
- from PyQt5.QtWidgets import QDialog
23
+ from PySide6.QtCore import Qt
24
+ from PySide6.QtWidgets import QDialog
26
25
 
27
26
  from . import config as cfg
28
- from . import duration_widget
29
27
  from .param_panel_ui import Ui_Dialog
28
+ from . import dialog
30
29
 
31
30
 
32
31
  class Param_panel(QDialog, Ui_Dialog):
33
32
  def __init__(self, parent=None):
34
-
35
33
  super().__init__()
36
34
  self.setupUi(self)
37
35
 
38
36
  self.media_duration = None
39
37
 
40
38
  # insert duration widget for time offset
41
- self.start_time = duration_widget.Duration_widget(0)
39
+ self.start_time = dialog.get_time_widget(0)
42
40
  self.horizontalLayout.insertWidget(1, self.start_time)
43
- self.end_time = duration_widget.Duration_widget(0)
41
+ self.end_time = dialog.get_time_widget(0)
44
42
  self.horizontalLayout_6.insertWidget(1, self.end_time)
45
43
 
46
- self.pbSelectAllSubjects.clicked.connect(
47
- lambda: self.subjects_button_clicked("select all")
48
- )
49
- self.pbUnselectAllSubjects.clicked.connect(
50
- lambda: self.subjects_button_clicked("unselect all")
51
- )
52
- self.pbReverseSubjectsSelection.clicked.connect(
53
- lambda: self.subjects_button_clicked("reverse selection")
54
- )
55
-
56
- self.pbSelectAllBehaviors.clicked.connect(
57
- lambda: self.behaviors_button_clicked("select all")
58
- )
59
- self.pbUnselectAllBehaviors.clicked.connect(
60
- lambda: self.behaviors_button_clicked("unselect all")
61
- )
62
- self.pbReverseBehaviorsSelection.clicked.connect(
63
- lambda: self.behaviors_button_clicked("reverse selection")
64
- )
44
+ self.pbSelectAllSubjects.clicked.connect(lambda: self.subjects_button_clicked("select all"))
45
+ self.pbUnselectAllSubjects.clicked.connect(lambda: self.subjects_button_clicked("unselect all"))
46
+ self.pbReverseSubjectsSelection.clicked.connect(lambda: self.subjects_button_clicked("reverse selection"))
47
+
48
+ self.pbSelectAllBehaviors.clicked.connect(lambda: self.behaviors_button_clicked("select all"))
49
+ self.pbUnselectAllBehaviors.clicked.connect(lambda: self.behaviors_button_clicked("unselect all"))
50
+ self.pbReverseBehaviorsSelection.clicked.connect(lambda: self.behaviors_button_clicked("reverse selection"))
65
51
 
66
52
  self.pbOK.clicked.connect(self.ok)
67
53
  self.pbCancel.clicked.connect(self.reject)
@@ -70,15 +56,20 @@ class Param_panel(QDialog, Ui_Dialog):
70
56
 
71
57
  self.rb_observed_events.setChecked(True)
72
58
 
73
- self.rb_media_duration.clicked.connect(
74
- lambda: self.rb_time_interval_selection(cfg.TIME_FULL_OBS)
75
- )
76
- self.rb_observed_events.clicked.connect(
77
- lambda: self.rb_time_interval_selection(cfg.TIME_EVENTS)
78
- )
79
- self.rb_user_defined.clicked.connect(
80
- lambda: self.rb_time_interval_selection(cfg.TIME_ARBITRARY_INTERVAL)
81
- )
59
+ self.rb_media_duration.clicked.connect(lambda: self.rb_time_interval_selection(cfg.TIME_FULL_OBS))
60
+ self.rb_observed_events.clicked.connect(lambda: self.rb_time_interval_selection(cfg.TIME_EVENTS))
61
+ self.rb_user_defined.clicked.connect(lambda: self.rb_time_interval_selection(cfg.TIME_ARBITRARY_INTERVAL))
62
+ self.rb_obs_interval.clicked.connect(lambda: self.rb_time_interval_selection(cfg.TIME_OBS_INTERVAL))
63
+
64
+ self.cbIncludeModifiers.stateChanged.connect(self.cb_exclude_non_coded_modifiers_visibility)
65
+
66
+ self.cb_exclude_non_coded_modifiers.setVisible(False)
67
+
68
+ def cb_exclude_non_coded_modifiers_visibility(self):
69
+ """
70
+ set visibility of cb_exclude_non_coded_modifiers
71
+ """
72
+ self.cb_exclude_non_coded_modifiers.setEnabled(self.cbIncludeModifiers.isChecked())
82
73
 
83
74
  def rb_time_interval_selection(self, button):
84
75
  """
@@ -94,16 +85,25 @@ class Param_panel(QDialog, Ui_Dialog):
94
85
  self.frm_time_interval.setEnabled(False)
95
86
  self.frm_time_interval.setVisible(True)
96
87
 
97
- elif (
98
- button == cfg.TIME_FULL_OBS
99
- and len(self.selectedObservations) == 1
100
- and self.media_duration is not None
101
- ):
88
+ elif button == cfg.TIME_FULL_OBS and len(self.selectedObservations) == 1 and self.media_duration is not None:
102
89
  self.start_time.set_time(0)
103
90
  self.end_time.set_time(self.media_duration)
104
91
  self.frm_time_interval.setEnabled(False)
105
92
  self.frm_time_interval.setVisible(True)
106
93
 
94
+ elif button == cfg.TIME_OBS_INTERVAL:
95
+ if not ((self.start_interval is None) or self.start_interval.is_nan()):
96
+ # Set start_time and end_time widgets values even if it is not shown with
97
+ # more than 1 observation as some analyses might use it (eg: advanced event filtering)
98
+
99
+ end_interval = self.end_interval if self.end_interval != 0 else self.media_duration
100
+
101
+ self.start_time.set_time(self.start_interval)
102
+ self.end_time.set_time(end_interval)
103
+ self.frm_time_interval.setEnabled(False)
104
+ if len(self.selectedObservations) == 1:
105
+ self.frm_time_interval.setVisible(True)
106
+
107
107
  else:
108
108
  self.frm_time_interval.setVisible(False)
109
109
 
@@ -119,7 +119,6 @@ class Param_panel(QDialog, Ui_Dialog):
119
119
 
120
120
  def behaviors_button_clicked(self, command):
121
121
  for idx in range(self.lwBehaviors.count()):
122
-
123
122
  if self.lwBehaviors.item(idx).data(33) != "category":
124
123
  if command == "select all":
125
124
  self.lwBehaviors.item(idx).setCheckState(Qt.Checked)
@@ -134,7 +133,6 @@ class Param_panel(QDialog, Ui_Dialog):
134
133
  self.lwBehaviors.item(idx).setCheckState(Qt.Checked)
135
134
 
136
135
  def ok(self):
137
-
138
136
  selectedSubjects = []
139
137
  for idx in range(self.lwSubjects.count()):
140
138
  cb = self.lwSubjects.itemWidget(self.lwSubjects.item(idx))
@@ -158,11 +156,7 @@ class Param_panel(QDialog, Ui_Dialog):
158
156
  if item.data(33) == "category":
159
157
  category = item.data(34)
160
158
  for i in range(self.lwBehaviors.count()):
161
- if (
162
- self.lwBehaviors.item(i).data(34) == category
163
- and self.lwBehaviors.item(i).data(33) != "category"
164
- ):
165
-
159
+ if self.lwBehaviors.item(i).data(34) == category and self.lwBehaviors.item(i).data(33) != "category":
166
160
  if item.data(35):
167
161
  self.lwBehaviors.item(i).setCheckState(Qt.Unchecked)
168
162
  else:
@@ -178,17 +172,12 @@ class Param_panel(QDialog, Ui_Dialog):
178
172
  observed_behaviors = []
179
173
 
180
174
  # extract events from selected observations
181
- all_events = [
182
- self.pj[cfg.OBSERVATIONS][x][cfg.EVENTS]
183
- for x in self.pj[cfg.OBSERVATIONS]
184
- if x in selected_observations
185
- ]
175
+ all_events = [self.pj[cfg.OBSERVATIONS][x][cfg.EVENTS] for x in self.pj[cfg.OBSERVATIONS] if x in selected_observations]
186
176
 
187
177
  for events in all_events:
188
178
  for event in events:
189
179
  if event[cfg.EVENT_SUBJECT_FIELD_IDX] in selected_subjects or (
190
- not event[cfg.EVENT_SUBJECT_FIELD_IDX]
191
- and cfg.NO_FOCAL_SUBJECT in selected_subjects
180
+ not event[cfg.EVENT_SUBJECT_FIELD_IDX] and cfg.NO_FOCAL_SUBJECT in selected_subjects
192
181
  ):
193
182
  observed_behaviors.append(event[cfg.EVENT_BEHAVIOR_FIELD_IDX])
194
183
 
@@ -202,12 +191,9 @@ class Param_panel(QDialog, Ui_Dialog):
202
191
  if cb and cb.isChecked():
203
192
  selected_subjects.append(cb.text())
204
193
 
205
- observed_behaviors = self.extract_observed_behaviors(
206
- self.selectedObservations, selected_subjects
207
- )
194
+ observed_behaviors = self.extract_observed_behaviors(self.selectedObservations, selected_subjects)
208
195
 
209
196
  for idx in range(self.lwBehaviors.count()):
210
-
211
197
  if self.lwBehaviors.item(idx).data(33) != "category":
212
198
  if self.lwBehaviors.item(idx).text() in observed_behaviors:
213
199
  self.lwBehaviors.item(idx).setCheckState(Qt.Checked)
boris/param_panel_ui.py CHANGED
@@ -1,189 +1,305 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- # Form implementation generated from reading ui file 'boris/param_panel.ui'
4
- #
5
- # Created by: PyQt5 UI code generator 5.15.4
6
- #
7
- # WARNING: Any manual changes made to this file will be lost when pyuic5 is
8
- # run again. Do not edit this file unless you know what you are doing.
9
-
10
-
11
- from PyQt5 import QtCore, QtGui, QtWidgets
3
+ ################################################################################
4
+ ## Form generated from reading UI file 'param_panel.ui'
5
+ ##
6
+ ## Created by: Qt User Interface Compiler version 6.8.0
7
+ ##
8
+ ## WARNING! All changes made in this file will be lost when recompiling UI file!
9
+ ################################################################################
12
10
 
11
+ from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
12
+ QMetaObject, QObject, QPoint, QRect,
13
+ QSize, QTime, QUrl, Qt)
14
+ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
15
+ QFont, QFontDatabase, QGradient, QIcon,
16
+ QImage, QKeySequence, QLinearGradient, QPainter,
17
+ QPalette, QPixmap, QRadialGradient, QTransform)
18
+ from PySide6.QtWidgets import (QApplication, QCheckBox, QDialog, QFrame,
19
+ QHBoxLayout, QLabel, QListWidget, QListWidgetItem,
20
+ QPushButton, QRadioButton, QSizePolicy, QSpacerItem,
21
+ QSpinBox, QVBoxLayout, QWidget)
13
22
 
14
23
  class Ui_Dialog(object):
15
24
  def setupUi(self, Dialog):
16
- Dialog.setObjectName("Dialog")
25
+ if not Dialog.objectName():
26
+ Dialog.setObjectName(u"Dialog")
17
27
  Dialog.resize(1037, 890)
18
- self.verticalLayout_4 = QtWidgets.QVBoxLayout(Dialog)
19
- self.verticalLayout_4.setObjectName("verticalLayout_4")
20
- self.verticalLayout_2 = QtWidgets.QVBoxLayout()
21
- self.verticalLayout_2.setObjectName("verticalLayout_2")
22
- self.lbSubjects = QtWidgets.QLabel(Dialog)
23
- self.lbSubjects.setObjectName("lbSubjects")
28
+ self.verticalLayout_4 = QVBoxLayout(Dialog)
29
+ self.verticalLayout_4.setObjectName(u"verticalLayout_4")
30
+ self.verticalLayout_2 = QVBoxLayout()
31
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
32
+ self.lbSubjects = QLabel(Dialog)
33
+ self.lbSubjects.setObjectName(u"lbSubjects")
34
+
24
35
  self.verticalLayout_2.addWidget(self.lbSubjects)
25
- self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
26
- self.horizontalLayout_3.setObjectName("horizontalLayout_3")
27
- self.pbSelectAllSubjects = QtWidgets.QPushButton(Dialog)
28
- self.pbSelectAllSubjects.setObjectName("pbSelectAllSubjects")
36
+
37
+ self.horizontalLayout_3 = QHBoxLayout()
38
+ self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
39
+ self.pbSelectAllSubjects = QPushButton(Dialog)
40
+ self.pbSelectAllSubjects.setObjectName(u"pbSelectAllSubjects")
41
+
29
42
  self.horizontalLayout_3.addWidget(self.pbSelectAllSubjects)
30
- self.pbUnselectAllSubjects = QtWidgets.QPushButton(Dialog)
31
- self.pbUnselectAllSubjects.setObjectName("pbUnselectAllSubjects")
43
+
44
+ self.pbUnselectAllSubjects = QPushButton(Dialog)
45
+ self.pbUnselectAllSubjects.setObjectName(u"pbUnselectAllSubjects")
46
+
32
47
  self.horizontalLayout_3.addWidget(self.pbUnselectAllSubjects)
33
- self.pbReverseSubjectsSelection = QtWidgets.QPushButton(Dialog)
34
- self.pbReverseSubjectsSelection.setObjectName("pbReverseSubjectsSelection")
48
+
49
+ self.pbReverseSubjectsSelection = QPushButton(Dialog)
50
+ self.pbReverseSubjectsSelection.setObjectName(u"pbReverseSubjectsSelection")
51
+
35
52
  self.horizontalLayout_3.addWidget(self.pbReverseSubjectsSelection)
36
- spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
37
- self.horizontalLayout_3.addItem(spacerItem)
53
+
54
+ self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
55
+
56
+ self.horizontalLayout_3.addItem(self.horizontalSpacer_4)
57
+
58
+
38
59
  self.verticalLayout_2.addLayout(self.horizontalLayout_3)
39
- self.lwSubjects = QtWidgets.QListWidget(Dialog)
40
- self.lwSubjects.setObjectName("lwSubjects")
60
+
61
+ self.lwSubjects = QListWidget(Dialog)
62
+ self.lwSubjects.setObjectName(u"lwSubjects")
63
+
41
64
  self.verticalLayout_2.addWidget(self.lwSubjects)
42
- self.lbBehaviors = QtWidgets.QLabel(Dialog)
43
- self.lbBehaviors.setObjectName("lbBehaviors")
65
+
66
+ self.lbBehaviors = QLabel(Dialog)
67
+ self.lbBehaviors.setObjectName(u"lbBehaviors")
68
+
44
69
  self.verticalLayout_2.addWidget(self.lbBehaviors)
45
- self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
46
- self.horizontalLayout_4.setObjectName("horizontalLayout_4")
47
- self.pbSelectAllBehaviors = QtWidgets.QPushButton(Dialog)
48
- self.pbSelectAllBehaviors.setObjectName("pbSelectAllBehaviors")
70
+
71
+ self.horizontalLayout_4 = QHBoxLayout()
72
+ self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
73
+ self.pbSelectAllBehaviors = QPushButton(Dialog)
74
+ self.pbSelectAllBehaviors.setObjectName(u"pbSelectAllBehaviors")
75
+
49
76
  self.horizontalLayout_4.addWidget(self.pbSelectAllBehaviors)
50
- self.pbUnselectAllBehaviors = QtWidgets.QPushButton(Dialog)
51
- self.pbUnselectAllBehaviors.setObjectName("pbUnselectAllBehaviors")
77
+
78
+ self.pbUnselectAllBehaviors = QPushButton(Dialog)
79
+ self.pbUnselectAllBehaviors.setObjectName(u"pbUnselectAllBehaviors")
80
+
52
81
  self.horizontalLayout_4.addWidget(self.pbUnselectAllBehaviors)
53
- self.pbReverseBehaviorsSelection = QtWidgets.QPushButton(Dialog)
54
- self.pbReverseBehaviorsSelection.setObjectName("pbReverseBehaviorsSelection")
82
+
83
+ self.pbReverseBehaviorsSelection = QPushButton(Dialog)
84
+ self.pbReverseBehaviorsSelection.setObjectName(u"pbReverseBehaviorsSelection")
85
+
55
86
  self.horizontalLayout_4.addWidget(self.pbReverseBehaviorsSelection)
56
- spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
57
- self.horizontalLayout_4.addItem(spacerItem1)
87
+
88
+ self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
89
+
90
+ self.horizontalLayout_4.addItem(self.horizontalSpacer_5)
91
+
92
+
58
93
  self.verticalLayout_2.addLayout(self.horizontalLayout_4)
59
- self.lwBehaviors = QtWidgets.QListWidget(Dialog)
60
- self.lwBehaviors.setObjectName("lwBehaviors")
94
+
95
+ self.lwBehaviors = QListWidget(Dialog)
96
+ self.lwBehaviors.setObjectName(u"lwBehaviors")
97
+
61
98
  self.verticalLayout_2.addWidget(self.lwBehaviors)
62
- self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
63
- self.horizontalLayout_9.setObjectName("horizontalLayout_9")
64
- self.cbIncludeModifiers = QtWidgets.QCheckBox(Dialog)
65
- self.cbIncludeModifiers.setObjectName("cbIncludeModifiers")
99
+
100
+ self.horizontalLayout_9 = QHBoxLayout()
101
+ self.horizontalLayout_9.setObjectName(u"horizontalLayout_9")
102
+ self.cbIncludeModifiers = QCheckBox(Dialog)
103
+ self.cbIncludeModifiers.setObjectName(u"cbIncludeModifiers")
104
+
66
105
  self.horizontalLayout_9.addWidget(self.cbIncludeModifiers)
67
- self.cbExcludeBehaviors = QtWidgets.QCheckBox(Dialog)
68
- self.cbExcludeBehaviors.setObjectName("cbExcludeBehaviors")
106
+
107
+ self.cb_exclude_non_coded_modifiers = QCheckBox(Dialog)
108
+ self.cb_exclude_non_coded_modifiers.setObjectName(u"cb_exclude_non_coded_modifiers")
109
+ self.cb_exclude_non_coded_modifiers.setChecked(True)
110
+
111
+ self.horizontalLayout_9.addWidget(self.cb_exclude_non_coded_modifiers)
112
+
113
+ self.cbExcludeBehaviors = QCheckBox(Dialog)
114
+ self.cbExcludeBehaviors.setObjectName(u"cbExcludeBehaviors")
115
+
69
116
  self.horizontalLayout_9.addWidget(self.cbExcludeBehaviors)
70
- spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
71
- self.horizontalLayout_9.addItem(spacerItem2)
117
+
118
+ self.horizontalSpacer_7 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
119
+
120
+ self.horizontalLayout_9.addItem(self.horizontalSpacer_7)
121
+
122
+
72
123
  self.verticalLayout_2.addLayout(self.horizontalLayout_9)
73
- self.frm_time_bin_size = QtWidgets.QFrame(Dialog)
74
- self.frm_time_bin_size.setFrameShape(QtWidgets.QFrame.StyledPanel)
75
- self.frm_time_bin_size.setFrameShadow(QtWidgets.QFrame.Raised)
76
- self.frm_time_bin_size.setObjectName("frm_time_bin_size")
77
- self.horizontalLayout_8 = QtWidgets.QHBoxLayout(self.frm_time_bin_size)
78
- self.horizontalLayout_8.setObjectName("horizontalLayout_8")
79
- self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
80
- self.horizontalLayout_7.setObjectName("horizontalLayout_7")
81
- self.lb_time_bin_size = QtWidgets.QLabel(self.frm_time_bin_size)
82
- self.lb_time_bin_size.setObjectName("lb_time_bin_size")
124
+
125
+ self.frm_time_bin_size = QFrame(Dialog)
126
+ self.frm_time_bin_size.setObjectName(u"frm_time_bin_size")
127
+ self.frm_time_bin_size.setFrameShape(QFrame.StyledPanel)
128
+ self.frm_time_bin_size.setFrameShadow(QFrame.Raised)
129
+ self.horizontalLayout_8 = QHBoxLayout(self.frm_time_bin_size)
130
+ self.horizontalLayout_8.setObjectName(u"horizontalLayout_8")
131
+ self.horizontalLayout_7 = QHBoxLayout()
132
+ self.horizontalLayout_7.setObjectName(u"horizontalLayout_7")
133
+ self.lb_time_bin_size = QLabel(self.frm_time_bin_size)
134
+ self.lb_time_bin_size.setObjectName(u"lb_time_bin_size")
135
+
83
136
  self.horizontalLayout_7.addWidget(self.lb_time_bin_size)
84
- self.sb_time_bin_size = QtWidgets.QSpinBox(self.frm_time_bin_size)
137
+
138
+ self.sb_time_bin_size = QSpinBox(self.frm_time_bin_size)
139
+ self.sb_time_bin_size.setObjectName(u"sb_time_bin_size")
85
140
  self.sb_time_bin_size.setMaximum(86400)
86
141
  self.sb_time_bin_size.setSingleStep(10)
87
- self.sb_time_bin_size.setObjectName("sb_time_bin_size")
142
+
88
143
  self.horizontalLayout_7.addWidget(self.sb_time_bin_size)
89
- spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
90
- self.horizontalLayout_7.addItem(spacerItem3)
144
+
145
+ self.horizontalSpacer_8 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
146
+
147
+ self.horizontalLayout_7.addItem(self.horizontalSpacer_8)
148
+
149
+
91
150
  self.horizontalLayout_8.addLayout(self.horizontalLayout_7)
151
+
152
+
92
153
  self.verticalLayout_2.addWidget(self.frm_time_bin_size)
93
- self.frm_time = QtWidgets.QFrame(Dialog)
94
- self.frm_time.setFrameShape(QtWidgets.QFrame.StyledPanel)
95
- self.frm_time.setFrameShadow(QtWidgets.QFrame.Raised)
96
- self.frm_time.setObjectName("frm_time")
97
- self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.frm_time)
98
- self.verticalLayout_3.setObjectName("verticalLayout_3")
99
- self.lb_time_interval = QtWidgets.QLabel(self.frm_time)
100
- self.lb_time_interval.setObjectName("lb_time_interval")
154
+
155
+ self.frm_time = QFrame(Dialog)
156
+ self.frm_time.setObjectName(u"frm_time")
157
+ self.frm_time.setFrameShape(QFrame.StyledPanel)
158
+ self.frm_time.setFrameShadow(QFrame.Raised)
159
+ self.verticalLayout_3 = QVBoxLayout(self.frm_time)
160
+ self.verticalLayout_3.setObjectName(u"verticalLayout_3")
161
+ self.lb_time_interval = QLabel(self.frm_time)
162
+ self.lb_time_interval.setObjectName(u"lb_time_interval")
163
+
101
164
  self.verticalLayout_3.addWidget(self.lb_time_interval)
102
- self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
103
- self.horizontalLayout_5.setObjectName("horizontalLayout_5")
104
- self.rb_observed_events = QtWidgets.QRadioButton(self.frm_time)
105
- self.rb_observed_events.setObjectName("rb_observed_events")
165
+
166
+ self.horizontalLayout_5 = QHBoxLayout()
167
+ self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
168
+ self.rb_observed_events = QRadioButton(self.frm_time)
169
+ self.rb_observed_events.setObjectName(u"rb_observed_events")
170
+
106
171
  self.horizontalLayout_5.addWidget(self.rb_observed_events)
107
- self.rb_user_defined = QtWidgets.QRadioButton(self.frm_time)
108
- self.rb_user_defined.setObjectName("rb_user_defined")
172
+
173
+ self.rb_user_defined = QRadioButton(self.frm_time)
174
+ self.rb_user_defined.setObjectName(u"rb_user_defined")
175
+
109
176
  self.horizontalLayout_5.addWidget(self.rb_user_defined)
110
- self.rb_media_duration = QtWidgets.QRadioButton(self.frm_time)
177
+
178
+ self.rb_obs_interval = QRadioButton(self.frm_time)
179
+ self.rb_obs_interval.setObjectName(u"rb_obs_interval")
180
+
181
+ self.horizontalLayout_5.addWidget(self.rb_obs_interval)
182
+
183
+ self.rb_media_duration = QRadioButton(self.frm_time)
184
+ self.rb_media_duration.setObjectName(u"rb_media_duration")
111
185
  self.rb_media_duration.setCheckable(True)
112
186
  self.rb_media_duration.setChecked(False)
113
- self.rb_media_duration.setObjectName("rb_media_duration")
187
+
114
188
  self.horizontalLayout_5.addWidget(self.rb_media_duration)
115
- spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
116
- self.horizontalLayout_5.addItem(spacerItem4)
189
+
190
+ self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
191
+
192
+ self.horizontalLayout_5.addItem(self.horizontalSpacer_3)
193
+
194
+
117
195
  self.verticalLayout_3.addLayout(self.horizontalLayout_5)
118
- self.frm_time_interval = QtWidgets.QFrame(self.frm_time)
119
- self.frm_time_interval.setFrameShape(QtWidgets.QFrame.StyledPanel)
120
- self.frm_time_interval.setFrameShadow(QtWidgets.QFrame.Raised)
121
- self.frm_time_interval.setObjectName("frm_time_interval")
122
- self.verticalLayout = QtWidgets.QVBoxLayout(self.frm_time_interval)
123
- self.verticalLayout.setObjectName("verticalLayout")
124
- self.horizontalLayout = QtWidgets.QHBoxLayout()
125
- self.horizontalLayout.setObjectName("horizontalLayout")
126
- self.lbStartTime = QtWidgets.QLabel(self.frm_time_interval)
127
- self.lbStartTime.setObjectName("lbStartTime")
196
+
197
+ self.frm_time_interval = QFrame(self.frm_time)
198
+ self.frm_time_interval.setObjectName(u"frm_time_interval")
199
+ self.frm_time_interval.setFrameShape(QFrame.StyledPanel)
200
+ self.frm_time_interval.setFrameShadow(QFrame.Raised)
201
+ self.verticalLayout = QVBoxLayout(self.frm_time_interval)
202
+ self.verticalLayout.setObjectName(u"verticalLayout")
203
+ self.horizontalLayout = QHBoxLayout()
204
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
205
+ self.lbStartTime = QLabel(self.frm_time_interval)
206
+ self.lbStartTime.setObjectName(u"lbStartTime")
207
+
128
208
  self.horizontalLayout.addWidget(self.lbStartTime)
129
- self.label_2 = QtWidgets.QLabel(self.frm_time_interval)
130
- self.label_2.setText("")
131
- self.label_2.setObjectName("label_2")
209
+
210
+ self.label_2 = QLabel(self.frm_time_interval)
211
+ self.label_2.setObjectName(u"label_2")
212
+
132
213
  self.horizontalLayout.addWidget(self.label_2)
133
- spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
134
- self.horizontalLayout.addItem(spacerItem5)
214
+
215
+ self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
216
+
217
+ self.horizontalLayout.addItem(self.horizontalSpacer_2)
218
+
219
+
135
220
  self.verticalLayout.addLayout(self.horizontalLayout)
136
- self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
137
- self.horizontalLayout_6.setObjectName("horizontalLayout_6")
138
- self.lbEndTime = QtWidgets.QLabel(self.frm_time_interval)
139
- self.lbEndTime.setObjectName("lbEndTime")
221
+
222
+ self.horizontalLayout_6 = QHBoxLayout()
223
+ self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
224
+ self.lbEndTime = QLabel(self.frm_time_interval)
225
+ self.lbEndTime.setObjectName(u"lbEndTime")
226
+
140
227
  self.horizontalLayout_6.addWidget(self.lbEndTime)
141
- self.label_3 = QtWidgets.QLabel(self.frm_time_interval)
142
- self.label_3.setText("")
143
- self.label_3.setObjectName("label_3")
228
+
229
+ self.label_3 = QLabel(self.frm_time_interval)
230
+ self.label_3.setObjectName(u"label_3")
231
+
144
232
  self.horizontalLayout_6.addWidget(self.label_3)
145
- spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
146
- self.horizontalLayout_6.addItem(spacerItem6)
233
+
234
+ self.horizontalSpacer_6 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
235
+
236
+ self.horizontalLayout_6.addItem(self.horizontalSpacer_6)
237
+
238
+
147
239
  self.verticalLayout.addLayout(self.horizontalLayout_6)
148
- spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
149
- self.verticalLayout.addItem(spacerItem7)
240
+
241
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
242
+
243
+ self.verticalLayout.addItem(self.verticalSpacer)
244
+
245
+
150
246
  self.verticalLayout_3.addWidget(self.frm_time_interval)
247
+
248
+
151
249
  self.verticalLayout_2.addWidget(self.frm_time)
152
- self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
153
- self.horizontalLayout_2.setObjectName("horizontalLayout_2")
154
- spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
155
- self.horizontalLayout_2.addItem(spacerItem8)
156
- self.pbCancel = QtWidgets.QPushButton(Dialog)
157
- self.pbCancel.setObjectName("pbCancel")
250
+
251
+ self.horizontalLayout_2 = QHBoxLayout()
252
+ self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
253
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
254
+
255
+ self.horizontalLayout_2.addItem(self.horizontalSpacer)
256
+
257
+ self.pbCancel = QPushButton(Dialog)
258
+ self.pbCancel.setObjectName(u"pbCancel")
259
+
158
260
  self.horizontalLayout_2.addWidget(self.pbCancel)
159
- self.pbOK = QtWidgets.QPushButton(Dialog)
160
- self.pbOK.setObjectName("pbOK")
261
+
262
+ self.pbOK = QPushButton(Dialog)
263
+ self.pbOK.setObjectName(u"pbOK")
264
+
161
265
  self.horizontalLayout_2.addWidget(self.pbOK)
266
+
267
+
162
268
  self.verticalLayout_2.addLayout(self.horizontalLayout_2)
269
+
270
+
163
271
  self.verticalLayout_4.addLayout(self.verticalLayout_2)
164
272
 
273
+
165
274
  self.retranslateUi(Dialog)
166
- QtCore.QMetaObject.connectSlotsByName(Dialog)
275
+
276
+ QMetaObject.connectSlotsByName(Dialog)
277
+ # setupUi
167
278
 
168
279
  def retranslateUi(self, Dialog):
169
- _translate = QtCore.QCoreApplication.translate
170
- Dialog.setWindowTitle(_translate("Dialog", "Parameters"))
171
- self.lbSubjects.setText(_translate("Dialog", "Subjects"))
172
- self.pbSelectAllSubjects.setText(_translate("Dialog", "Select all"))
173
- self.pbUnselectAllSubjects.setText(_translate("Dialog", "Unselect all"))
174
- self.pbReverseSubjectsSelection.setText(_translate("Dialog", "Reverse selection"))
175
- self.lbBehaviors.setText(_translate("Dialog", "Behaviors"))
176
- self.pbSelectAllBehaviors.setText(_translate("Dialog", "Select all"))
177
- self.pbUnselectAllBehaviors.setText(_translate("Dialog", "Unselect all"))
178
- self.pbReverseBehaviorsSelection.setText(_translate("Dialog", "Reverse selection"))
179
- self.cbIncludeModifiers.setText(_translate("Dialog", "Include modifiers"))
180
- self.cbExcludeBehaviors.setText(_translate("Dialog", "Exclude behaviors without events"))
181
- self.lb_time_bin_size.setText(_translate("Dialog", "Time bin size (s)"))
182
- self.lb_time_interval.setText(_translate("Dialog", "Time interval"))
183
- self.rb_observed_events.setText(_translate("Dialog", "Observed events"))
184
- self.rb_user_defined.setText(_translate("Dialog", "User defined"))
185
- self.rb_media_duration.setText(_translate("Dialog", "Media file(s) duration"))
186
- self.lbStartTime.setText(_translate("Dialog", "Start time"))
187
- self.lbEndTime.setText(_translate("Dialog", "End time"))
188
- self.pbCancel.setText(_translate("Dialog", "Cancel"))
189
- self.pbOK.setText(_translate("Dialog", "OK"))
280
+ Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"Parameters", None))
281
+ self.lbSubjects.setText(QCoreApplication.translate("Dialog", u"Subjects", None))
282
+ self.pbSelectAllSubjects.setText(QCoreApplication.translate("Dialog", u"Select all", None))
283
+ self.pbUnselectAllSubjects.setText(QCoreApplication.translate("Dialog", u"Unselect all", None))
284
+ self.pbReverseSubjectsSelection.setText(QCoreApplication.translate("Dialog", u"Reverse selection", None))
285
+ self.lbBehaviors.setText(QCoreApplication.translate("Dialog", u"Behaviors", None))
286
+ self.pbSelectAllBehaviors.setText(QCoreApplication.translate("Dialog", u"Select all", None))
287
+ self.pbUnselectAllBehaviors.setText(QCoreApplication.translate("Dialog", u"Unselect all", None))
288
+ self.pbReverseBehaviorsSelection.setText(QCoreApplication.translate("Dialog", u"Reverse selection", None))
289
+ self.cbIncludeModifiers.setText(QCoreApplication.translate("Dialog", u"Include modifiers", None))
290
+ self.cb_exclude_non_coded_modifiers.setText(QCoreApplication.translate("Dialog", u"Exclude non coded modifiers", None))
291
+ self.cbExcludeBehaviors.setText(QCoreApplication.translate("Dialog", u"Exclude behaviors without events", None))
292
+ self.lb_time_bin_size.setText(QCoreApplication.translate("Dialog", u"Time bin size (s)", None))
293
+ self.lb_time_interval.setText(QCoreApplication.translate("Dialog", u"Time interval", None))
294
+ self.rb_observed_events.setText(QCoreApplication.translate("Dialog", u"Observed events", None))
295
+ self.rb_user_defined.setText(QCoreApplication.translate("Dialog", u"User defined", None))
296
+ self.rb_obs_interval.setText(QCoreApplication.translate("Dialog", u"Interval of observation", None))
297
+ self.rb_media_duration.setText(QCoreApplication.translate("Dialog", u"Media file(s) duration", None))
298
+ self.lbStartTime.setText(QCoreApplication.translate("Dialog", u"Start time", None))
299
+ self.label_2.setText("")
300
+ self.lbEndTime.setText(QCoreApplication.translate("Dialog", u"End time", None))
301
+ self.label_3.setText("")
302
+ self.pbCancel.setText(QCoreApplication.translate("Dialog", u"Cancel", None))
303
+ self.pbOK.setText(QCoreApplication.translate("Dialog", u"OK", None))
304
+ # retranslateUi
305
+