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/preferences_ui.py CHANGED
@@ -1,313 +1,772 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- # Form implementation generated from reading ui file 'preferences.ui'
4
- #
5
- # Created by: PyQt5 UI code generator 5.15.6
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 'preferences.ui'
5
+ ##
6
+ ## Created by: Qt User Interface Compiler version 6.10.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, QComboBox, QDialog,
19
+ QDoubleSpinBox, QFormLayout, QGroupBox, QHBoxLayout,
20
+ QLabel, QLineEdit, QListWidget, QListWidgetItem,
21
+ QPlainTextEdit, QPushButton, QSizePolicy, QSpacerItem,
22
+ QSpinBox, QSplitter, QTabWidget, QVBoxLayout,
23
+ QWidget)
13
24
 
14
25
  class Ui_prefDialog(object):
15
26
  def setupUi(self, prefDialog):
16
- prefDialog.setObjectName("prefDialog")
17
- prefDialog.setWindowModality(QtCore.Qt.WindowModal)
18
- prefDialog.resize(719, 554)
19
- self.gridLayout = QtWidgets.QGridLayout(prefDialog)
20
- self.gridLayout.setObjectName("gridLayout")
21
- self.verticalLayout_2 = QtWidgets.QVBoxLayout()
22
- self.verticalLayout_2.setObjectName("verticalLayout_2")
23
- self.tabWidget = QtWidgets.QTabWidget(prefDialog)
27
+ if not prefDialog.objectName():
28
+ prefDialog.setObjectName(u"prefDialog")
29
+ prefDialog.setWindowModality(Qt.WindowModality.WindowModal)
30
+ prefDialog.resize(904, 554)
31
+ self.horizontalLayout_17 = QHBoxLayout(prefDialog)
32
+ self.horizontalLayout_17.setObjectName(u"horizontalLayout_17")
33
+ self.verticalLayout_2 = QVBoxLayout()
34
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
35
+ self.tabWidget = QTabWidget(prefDialog)
36
+ self.tabWidget.setObjectName(u"tabWidget")
24
37
  self.tabWidget.setEnabled(True)
25
- self.tabWidget.setObjectName("tabWidget")
26
- self.tab = QtWidgets.QWidget()
27
- self.tab.setObjectName("tab")
28
- self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.tab)
29
- self.verticalLayout_5.setObjectName("verticalLayout_5")
30
- self.horizontalLayout_14 = QtWidgets.QHBoxLayout()
31
- self.horizontalLayout_14.setObjectName("horizontalLayout_14")
32
- self.label = QtWidgets.QLabel(self.tab)
33
- self.label.setObjectName("label")
38
+ self.tab_project = QWidget()
39
+ self.tab_project.setObjectName(u"tab_project")
40
+ self.verticalLayout_5 = QVBoxLayout(self.tab_project)
41
+ self.verticalLayout_5.setObjectName(u"verticalLayout_5")
42
+ self.horizontalLayout_14 = QHBoxLayout()
43
+ self.horizontalLayout_14.setObjectName(u"horizontalLayout_14")
44
+ self.label = QLabel(self.tab_project)
45
+ self.label.setObjectName(u"label")
46
+
34
47
  self.horizontalLayout_14.addWidget(self.label)
35
- self.cbTimeFormat = QtWidgets.QComboBox(self.tab)
36
- self.cbTimeFormat.setObjectName("cbTimeFormat")
48
+
49
+ self.cbTimeFormat = QComboBox(self.tab_project)
37
50
  self.cbTimeFormat.addItem("")
38
51
  self.cbTimeFormat.addItem("")
52
+ self.cbTimeFormat.setObjectName(u"cbTimeFormat")
53
+
39
54
  self.horizontalLayout_14.addWidget(self.cbTimeFormat)
55
+
56
+
40
57
  self.verticalLayout_5.addLayout(self.horizontalLayout_14)
41
- self.horizontalLayout_15 = QtWidgets.QHBoxLayout()
42
- self.horizontalLayout_15.setObjectName("horizontalLayout_15")
43
- self.label_6 = QtWidgets.QLabel(self.tab)
44
- self.label_6.setObjectName("label_6")
58
+
59
+ self.horizontalLayout_15 = QHBoxLayout()
60
+ self.horizontalLayout_15.setObjectName(u"horizontalLayout_15")
61
+ self.label_6 = QLabel(self.tab_project)
62
+ self.label_6.setObjectName(u"label_6")
63
+
45
64
  self.horizontalLayout_15.addWidget(self.label_6)
46
- self.sbAutomaticBackup = QtWidgets.QSpinBox(self.tab)
65
+
66
+ self.sbAutomaticBackup = QSpinBox(self.tab_project)
67
+ self.sbAutomaticBackup.setObjectName(u"sbAutomaticBackup")
47
68
  self.sbAutomaticBackup.setMinimum(-10000)
48
69
  self.sbAutomaticBackup.setMaximum(10000)
49
- self.sbAutomaticBackup.setProperty("value", 10)
50
- self.sbAutomaticBackup.setObjectName("sbAutomaticBackup")
70
+ self.sbAutomaticBackup.setValue(10)
71
+
51
72
  self.horizontalLayout_15.addWidget(self.sbAutomaticBackup)
73
+
74
+
52
75
  self.verticalLayout_5.addLayout(self.horizontalLayout_15)
53
- self.horizontalLayout_13 = QtWidgets.QHBoxLayout()
54
- self.horizontalLayout_13.setObjectName("horizontalLayout_13")
55
- self.label_3 = QtWidgets.QLabel(self.tab)
56
- self.label_3.setObjectName("label_3")
76
+
77
+ self.horizontalLayout_13 = QHBoxLayout()
78
+ self.horizontalLayout_13.setObjectName(u"horizontalLayout_13")
79
+ self.label_3 = QLabel(self.tab_project)
80
+ self.label_3.setObjectName(u"label_3")
81
+
57
82
  self.horizontalLayout_13.addWidget(self.label_3)
58
- self.leSeparator = QtWidgets.QLineEdit(self.tab)
59
- self.leSeparator.setObjectName("leSeparator")
83
+
84
+ self.leSeparator = QLineEdit(self.tab_project)
85
+ self.leSeparator.setObjectName(u"leSeparator")
86
+
60
87
  self.horizontalLayout_13.addWidget(self.leSeparator)
88
+
89
+
61
90
  self.verticalLayout_5.addLayout(self.horizontalLayout_13)
62
- self.cbCheckForNewVersion = QtWidgets.QCheckBox(self.tab)
63
- self.cbCheckForNewVersion.setObjectName("cbCheckForNewVersion")
91
+
92
+ self.cbCheckForNewVersion = QCheckBox(self.tab_project)
93
+ self.cbCheckForNewVersion.setObjectName(u"cbCheckForNewVersion")
94
+
64
95
  self.verticalLayout_5.addWidget(self.cbCheckForNewVersion)
65
- self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
66
- self.horizontalLayout_11.setObjectName("horizontalLayout_11")
67
- self.lb_hwdec = QtWidgets.QLabel(self.tab)
68
- self.lb_hwdec.setObjectName("lb_hwdec")
96
+
97
+ self.horizontalLayout_11 = QHBoxLayout()
98
+ self.horizontalLayout_11.setObjectName(u"horizontalLayout_11")
99
+ self.lb_hwdec = QLabel(self.tab_project)
100
+ self.lb_hwdec.setObjectName(u"lb_hwdec")
101
+
69
102
  self.horizontalLayout_11.addWidget(self.lb_hwdec)
70
- self.cb_hwdec = QtWidgets.QComboBox(self.tab)
71
- self.cb_hwdec.setObjectName("cb_hwdec")
103
+
104
+ self.cb_hwdec = QComboBox(self.tab_project)
105
+ self.cb_hwdec.setObjectName(u"cb_hwdec")
106
+
72
107
  self.horizontalLayout_11.addWidget(self.cb_hwdec)
108
+
109
+
73
110
  self.verticalLayout_5.addLayout(self.horizontalLayout_11)
74
- self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
75
- self.horizontalLayout_9.setObjectName("horizontalLayout_9")
76
- self.lb_project_file_indent = QtWidgets.QLabel(self.tab)
77
- self.lb_project_file_indent.setObjectName("lb_project_file_indent")
111
+
112
+ self.horizontalLayout_9 = QHBoxLayout()
113
+ self.horizontalLayout_9.setObjectName(u"horizontalLayout_9")
114
+ self.lb_project_file_indent = QLabel(self.tab_project)
115
+ self.lb_project_file_indent.setObjectName(u"lb_project_file_indent")
116
+
78
117
  self.horizontalLayout_9.addWidget(self.lb_project_file_indent)
79
- self.combo_project_file_indentation = QtWidgets.QComboBox(self.tab)
80
- self.combo_project_file_indentation.setObjectName("combo_project_file_indentation")
118
+
119
+ self.combo_project_file_indentation = QComboBox(self.tab_project)
120
+ self.combo_project_file_indentation.setObjectName(u"combo_project_file_indentation")
121
+
81
122
  self.horizontalLayout_9.addWidget(self.combo_project_file_indentation)
123
+
124
+
82
125
  self.verticalLayout_5.addLayout(self.horizontalLayout_9)
83
- spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
84
- self.verticalLayout_5.addItem(spacerItem)
85
- self.tabWidget.addTab(self.tab, "")
86
- self.tab_results = QtWidgets.QWidget()
87
- self.tab_results.setObjectName("tab_results")
88
- self.verticalLayout = QtWidgets.QVBoxLayout(self.tab_results)
89
- self.verticalLayout.setObjectName("verticalLayout")
90
- self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
91
- self.horizontalLayout_4.setObjectName("horizontalLayout_4")
92
- self.label_4 = QtWidgets.QLabel(self.tab_results)
93
- self.label_4.setObjectName("label_4")
126
+
127
+ self.cb_check_integrity_at_opening = QCheckBox(self.tab_project)
128
+ self.cb_check_integrity_at_opening.setObjectName(u"cb_check_integrity_at_opening")
129
+
130
+ self.verticalLayout_5.addWidget(self.cb_check_integrity_at_opening)
131
+
132
+ self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
133
+
134
+ self.verticalLayout_5.addItem(self.verticalSpacer_2)
135
+
136
+ self.tabWidget.addTab(self.tab_project, "")
137
+ self.tab_observations = QWidget()
138
+ self.tab_observations.setObjectName(u"tab_observations")
139
+ self.verticalLayout = QVBoxLayout(self.tab_observations)
140
+ self.verticalLayout.setObjectName(u"verticalLayout")
141
+ self.horizontalLayout_4 = QHBoxLayout()
142
+ self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
143
+ self.label_4 = QLabel(self.tab_observations)
144
+ self.label_4.setObjectName(u"label_4")
145
+
94
146
  self.horizontalLayout_4.addWidget(self.label_4)
95
- self.sbffSpeed = QtWidgets.QSpinBox(self.tab_results)
96
- self.sbffSpeed.setMinimum(0)
97
- self.sbffSpeed.setMaximum(10000)
98
- self.sbffSpeed.setProperty("value", 10)
99
- self.sbffSpeed.setObjectName("sbffSpeed")
147
+
148
+ self.sbffSpeed = QDoubleSpinBox(self.tab_observations)
149
+ self.sbffSpeed.setObjectName(u"sbffSpeed")
150
+ self.sbffSpeed.setDecimals(3)
151
+ self.sbffSpeed.setMaximum(1000000.000000000000000)
152
+
100
153
  self.horizontalLayout_4.addWidget(self.sbffSpeed)
154
+
155
+
101
156
  self.verticalLayout.addLayout(self.horizontalLayout_4)
102
- self.cb_adapt_fast_jump = QtWidgets.QCheckBox(self.tab_results)
103
- self.cb_adapt_fast_jump.setObjectName("cb_adapt_fast_jump")
157
+
158
+ self.cb_adapt_fast_jump = QCheckBox(self.tab_observations)
159
+ self.cb_adapt_fast_jump.setObjectName(u"cb_adapt_fast_jump")
160
+
104
161
  self.verticalLayout.addWidget(self.cb_adapt_fast_jump)
105
- self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
106
- self.horizontalLayout_5.setObjectName("horizontalLayout_5")
107
- self.label_5 = QtWidgets.QLabel(self.tab_results)
108
- self.label_5.setObjectName("label_5")
162
+
163
+ self.horizontalLayout_5 = QHBoxLayout()
164
+ self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
165
+ self.label_5 = QLabel(self.tab_observations)
166
+ self.label_5.setObjectName(u"label_5")
167
+
109
168
  self.horizontalLayout_5.addWidget(self.label_5)
110
- self.sbSpeedStep = QtWidgets.QDoubleSpinBox(self.tab_results)
169
+
170
+ self.sbSpeedStep = QDoubleSpinBox(self.tab_observations)
171
+ self.sbSpeedStep.setObjectName(u"sbSpeedStep")
111
172
  self.sbSpeedStep.setDecimals(1)
112
- self.sbSpeedStep.setMinimum(0.1)
113
- self.sbSpeedStep.setMaximum(10.0)
114
- self.sbSpeedStep.setSingleStep(0.1)
115
- self.sbSpeedStep.setProperty("value", 0.1)
116
- self.sbSpeedStep.setObjectName("sbSpeedStep")
173
+ self.sbSpeedStep.setMinimum(0.100000000000000)
174
+ self.sbSpeedStep.setMaximum(10.000000000000000)
175
+ self.sbSpeedStep.setSingleStep(0.100000000000000)
176
+ self.sbSpeedStep.setValue(0.100000000000000)
177
+
117
178
  self.horizontalLayout_5.addWidget(self.sbSpeedStep)
179
+
180
+
118
181
  self.verticalLayout.addLayout(self.horizontalLayout_5)
119
- self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
120
- self.horizontalLayout_6.setObjectName("horizontalLayout_6")
121
- self.label_2 = QtWidgets.QLabel(self.tab_results)
122
- self.label_2.setObjectName("label_2")
182
+
183
+ self.horizontalLayout_6 = QHBoxLayout()
184
+ self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
185
+ self.label_2 = QLabel(self.tab_observations)
186
+ self.label_2.setObjectName(u"label_2")
187
+
123
188
  self.horizontalLayout_6.addWidget(self.label_2)
124
- self.sbRepositionTimeOffset = QtWidgets.QSpinBox(self.tab_results)
189
+
190
+ self.sbRepositionTimeOffset = QSpinBox(self.tab_observations)
191
+ self.sbRepositionTimeOffset.setObjectName(u"sbRepositionTimeOffset")
125
192
  self.sbRepositionTimeOffset.setMinimum(-10000)
126
193
  self.sbRepositionTimeOffset.setMaximum(10000)
127
- self.sbRepositionTimeOffset.setProperty("value", -3)
128
- self.sbRepositionTimeOffset.setObjectName("sbRepositionTimeOffset")
194
+ self.sbRepositionTimeOffset.setValue(-3)
195
+
129
196
  self.horizontalLayout_6.addWidget(self.sbRepositionTimeOffset)
197
+
198
+
130
199
  self.verticalLayout.addLayout(self.horizontalLayout_6)
131
- self.cbConfirmSound = QtWidgets.QCheckBox(self.tab_results)
132
- self.cbConfirmSound.setObjectName("cbConfirmSound")
200
+
201
+ self.cbConfirmSound = QCheckBox(self.tab_observations)
202
+ self.cbConfirmSound.setObjectName(u"cbConfirmSound")
203
+
133
204
  self.verticalLayout.addWidget(self.cbConfirmSound)
134
- self.cbCloseSameEvent = QtWidgets.QCheckBox(self.tab_results)
135
- self.cbCloseSameEvent.setObjectName("cbCloseSameEvent")
205
+
206
+ self.cbCloseSameEvent = QCheckBox(self.tab_observations)
207
+ self.cbCloseSameEvent.setObjectName(u"cbCloseSameEvent")
208
+
136
209
  self.verticalLayout.addWidget(self.cbCloseSameEvent)
137
- self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
138
- self.horizontalLayout_8.setObjectName("horizontalLayout_8")
139
- self.label_8 = QtWidgets.QLabel(self.tab_results)
140
- self.label_8.setObjectName("label_8")
210
+
211
+ self.horizontalLayout_8 = QHBoxLayout()
212
+ self.horizontalLayout_8.setObjectName(u"horizontalLayout_8")
213
+ self.label_8 = QLabel(self.tab_observations)
214
+ self.label_8.setObjectName(u"label_8")
215
+
141
216
  self.horizontalLayout_8.addWidget(self.label_8)
142
- self.sbBeepEvery = QtWidgets.QSpinBox(self.tab_results)
143
- self.sbBeepEvery.setObjectName("sbBeepEvery")
217
+
218
+ self.sbBeepEvery = QSpinBox(self.tab_observations)
219
+ self.sbBeepEvery.setObjectName(u"sbBeepEvery")
220
+
144
221
  self.horizontalLayout_8.addWidget(self.sbBeepEvery)
222
+
223
+
145
224
  self.verticalLayout.addLayout(self.horizontalLayout_8)
146
- self.cb_display_subtitles = QtWidgets.QCheckBox(self.tab_results)
147
- self.cb_display_subtitles.setObjectName("cb_display_subtitles")
225
+
226
+ self.cb_display_subtitles = QCheckBox(self.tab_observations)
227
+ self.cb_display_subtitles.setObjectName(u"cb_display_subtitles")
228
+
148
229
  self.verticalLayout.addWidget(self.cb_display_subtitles)
149
- self.cbTrackingCursorAboveEvent = QtWidgets.QCheckBox(self.tab_results)
150
- self.cbTrackingCursorAboveEvent.setObjectName("cbTrackingCursorAboveEvent")
230
+
231
+ self.cbTrackingCursorAboveEvent = QCheckBox(self.tab_observations)
232
+ self.cbTrackingCursorAboveEvent.setObjectName(u"cbTrackingCursorAboveEvent")
233
+
151
234
  self.verticalLayout.addWidget(self.cbTrackingCursorAboveEvent)
152
- self.cbAlertNoFocalSubject = QtWidgets.QCheckBox(self.tab_results)
153
- self.cbAlertNoFocalSubject.setObjectName("cbAlertNoFocalSubject")
235
+
236
+ self.cbAlertNoFocalSubject = QCheckBox(self.tab_observations)
237
+ self.cbAlertNoFocalSubject.setObjectName(u"cbAlertNoFocalSubject")
238
+
154
239
  self.verticalLayout.addWidget(self.cbAlertNoFocalSubject)
155
- self.cb_pause_before_addevent = QtWidgets.QCheckBox(self.tab_results)
156
- self.cb_pause_before_addevent.setObjectName("cb_pause_before_addevent")
240
+
241
+ self.cb_pause_before_addevent = QCheckBox(self.tab_observations)
242
+ self.cb_pause_before_addevent.setObjectName(u"cb_pause_before_addevent")
243
+
157
244
  self.verticalLayout.addWidget(self.cb_pause_before_addevent)
158
- spacerItem1 = QtWidgets.QSpacerItem(20, 391, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
159
- self.verticalLayout.addItem(spacerItem1)
160
- self.tabWidget.addTab(self.tab_results, "")
161
- self.tab_2 = QtWidgets.QWidget()
162
- self.tab_2.setObjectName("tab_2")
163
- self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.tab_2)
164
- self.verticalLayout_4.setObjectName("verticalLayout_4")
165
- self.verticalLayout_3 = QtWidgets.QVBoxLayout()
166
- self.verticalLayout_3.setObjectName("verticalLayout_3")
167
- self.lbFFmpegPath = QtWidgets.QLabel(self.tab_2)
245
+
246
+ self.horizontalLayout_23 = QHBoxLayout()
247
+ self.horizontalLayout_23.setObjectName(u"horizontalLayout_23")
248
+ self.label_24 = QLabel(self.tab_observations)
249
+ self.label_24.setObjectName(u"label_24")
250
+ self.label_24.setEnabled(False)
251
+
252
+ self.horizontalLayout_23.addWidget(self.label_24)
253
+
254
+ self.sb_frame_step_size = QSpinBox(self.tab_observations)
255
+ self.sb_frame_step_size.setObjectName(u"sb_frame_step_size")
256
+ self.sb_frame_step_size.setEnabled(False)
257
+ self.sb_frame_step_size.setMinimum(1)
258
+ self.sb_frame_step_size.setMaximum(1000)
259
+ self.sb_frame_step_size.setValue(1)
260
+
261
+ self.horizontalLayout_23.addWidget(self.sb_frame_step_size)
262
+
263
+
264
+ self.verticalLayout.addLayout(self.horizontalLayout_23)
265
+
266
+ self.verticalSpacer_4 = QSpacerItem(20, 391, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
267
+
268
+ self.verticalLayout.addItem(self.verticalSpacer_4)
269
+
270
+ self.tabWidget.addTab(self.tab_observations, "")
271
+ self.tab_analysis_plugins = QWidget()
272
+ self.tab_analysis_plugins.setObjectName(u"tab_analysis_plugins")
273
+ self.verticalLayout_15 = QVBoxLayout(self.tab_analysis_plugins)
274
+ self.verticalLayout_15.setObjectName(u"verticalLayout_15")
275
+ self.splitter_2 = QSplitter(self.tab_analysis_plugins)
276
+ self.splitter_2.setObjectName(u"splitter_2")
277
+ self.splitter_2.setOrientation(Qt.Orientation.Horizontal)
278
+ self.layoutWidget = QWidget(self.splitter_2)
279
+ self.layoutWidget.setObjectName(u"layoutWidget")
280
+ self.verticalLayout_11 = QVBoxLayout(self.layoutWidget)
281
+ self.verticalLayout_11.setObjectName(u"verticalLayout_11")
282
+ self.verticalLayout_11.setContentsMargins(0, 0, 0, 0)
283
+ self.label_13 = QLabel(self.layoutWidget)
284
+ self.label_13.setObjectName(u"label_13")
285
+
286
+ self.verticalLayout_11.addWidget(self.label_13)
287
+
288
+ self.lv_all_plugins = QListWidget(self.layoutWidget)
289
+ self.lv_all_plugins.setObjectName(u"lv_all_plugins")
290
+
291
+ self.verticalLayout_11.addWidget(self.lv_all_plugins)
292
+
293
+ self.label_15 = QLabel(self.layoutWidget)
294
+ self.label_15.setObjectName(u"label_15")
295
+
296
+ self.verticalLayout_11.addWidget(self.label_15)
297
+
298
+ self.horizontalLayout_16 = QHBoxLayout()
299
+ self.horizontalLayout_16.setObjectName(u"horizontalLayout_16")
300
+ self.le_personal_plugins_dir = QLineEdit(self.layoutWidget)
301
+ self.le_personal_plugins_dir.setObjectName(u"le_personal_plugins_dir")
302
+ self.le_personal_plugins_dir.setReadOnly(True)
303
+
304
+ self.horizontalLayout_16.addWidget(self.le_personal_plugins_dir)
305
+
306
+ self.pb_browse_plugins_dir = QPushButton(self.layoutWidget)
307
+ self.pb_browse_plugins_dir.setObjectName(u"pb_browse_plugins_dir")
308
+
309
+ self.horizontalLayout_16.addWidget(self.pb_browse_plugins_dir)
310
+
311
+
312
+ self.verticalLayout_11.addLayout(self.horizontalLayout_16)
313
+
314
+ self.lw_personal_plugins = QListWidget(self.layoutWidget)
315
+ self.lw_personal_plugins.setObjectName(u"lw_personal_plugins")
316
+
317
+ self.verticalLayout_11.addWidget(self.lw_personal_plugins)
318
+
319
+ self.splitter_2.addWidget(self.layoutWidget)
320
+ self.splitter = QSplitter(self.splitter_2)
321
+ self.splitter.setObjectName(u"splitter")
322
+ self.splitter.setOrientation(Qt.Orientation.Vertical)
323
+ self.layoutWidget1 = QWidget(self.splitter)
324
+ self.layoutWidget1.setObjectName(u"layoutWidget1")
325
+ self.verticalLayout_12 = QVBoxLayout(self.layoutWidget1)
326
+ self.verticalLayout_12.setObjectName(u"verticalLayout_12")
327
+ self.verticalLayout_12.setContentsMargins(0, 0, 0, 0)
328
+ self.label_14 = QLabel(self.layoutWidget1)
329
+ self.label_14.setObjectName(u"label_14")
330
+
331
+ self.verticalLayout_12.addWidget(self.label_14)
332
+
333
+ self.pte_plugin_description = QPlainTextEdit(self.layoutWidget1)
334
+ self.pte_plugin_description.setObjectName(u"pte_plugin_description")
335
+ self.pte_plugin_description.setReadOnly(True)
336
+
337
+ self.verticalLayout_12.addWidget(self.pte_plugin_description)
338
+
339
+ self.splitter.addWidget(self.layoutWidget1)
340
+ self.layoutWidget2 = QWidget(self.splitter)
341
+ self.layoutWidget2.setObjectName(u"layoutWidget2")
342
+ self.verticalLayout_14 = QVBoxLayout(self.layoutWidget2)
343
+ self.verticalLayout_14.setObjectName(u"verticalLayout_14")
344
+ self.verticalLayout_14.setContentsMargins(0, 0, 0, 0)
345
+ self.label_23 = QLabel(self.layoutWidget2)
346
+ self.label_23.setObjectName(u"label_23")
347
+
348
+ self.verticalLayout_14.addWidget(self.label_23)
349
+
350
+ self.pte_plugin_code = QPlainTextEdit(self.layoutWidget2)
351
+ self.pte_plugin_code.setObjectName(u"pte_plugin_code")
352
+ self.pte_plugin_code.setLineWrapMode(QPlainTextEdit.LineWrapMode.NoWrap)
353
+
354
+ self.verticalLayout_14.addWidget(self.pte_plugin_code)
355
+
356
+ self.splitter.addWidget(self.layoutWidget2)
357
+ self.splitter_2.addWidget(self.splitter)
358
+
359
+ self.verticalLayout_15.addWidget(self.splitter_2)
360
+
361
+ self.tabWidget.addTab(self.tab_analysis_plugins, "")
362
+ self.tab_ffmpeg = QWidget()
363
+ self.tab_ffmpeg.setObjectName(u"tab_ffmpeg")
364
+ self.verticalLayout_4 = QVBoxLayout(self.tab_ffmpeg)
365
+ self.verticalLayout_4.setObjectName(u"verticalLayout_4")
366
+ self.verticalLayout_3 = QVBoxLayout()
367
+ self.verticalLayout_3.setObjectName(u"verticalLayout_3")
368
+ self.lbFFmpegPath = QLabel(self.tab_ffmpeg)
369
+ self.lbFFmpegPath.setObjectName(u"lbFFmpegPath")
168
370
  self.lbFFmpegPath.setScaledContents(False)
169
371
  self.lbFFmpegPath.setWordWrap(True)
170
- self.lbFFmpegPath.setObjectName("lbFFmpegPath")
372
+
171
373
  self.verticalLayout_3.addWidget(self.lbFFmpegPath)
172
- self.horizontalLayout = QtWidgets.QHBoxLayout()
173
- self.horizontalLayout.setObjectName("horizontalLayout")
374
+
375
+ self.horizontalLayout = QHBoxLayout()
376
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
377
+
174
378
  self.verticalLayout_3.addLayout(self.horizontalLayout)
175
- self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
176
- self.horizontalLayout_3.setObjectName("horizontalLayout_3")
177
- self.lbFFmpegCacheDir = QtWidgets.QLabel(self.tab_2)
178
- self.lbFFmpegCacheDir.setObjectName("lbFFmpegCacheDir")
379
+
380
+ self.horizontalLayout_3 = QHBoxLayout()
381
+ self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
382
+ self.lbFFmpegCacheDir = QLabel(self.tab_ffmpeg)
383
+ self.lbFFmpegCacheDir.setObjectName(u"lbFFmpegCacheDir")
384
+
179
385
  self.horizontalLayout_3.addWidget(self.lbFFmpegCacheDir)
180
- self.leFFmpegCacheDir = QtWidgets.QLineEdit(self.tab_2)
181
- self.leFFmpegCacheDir.setObjectName("leFFmpegCacheDir")
386
+
387
+ self.leFFmpegCacheDir = QLineEdit(self.tab_ffmpeg)
388
+ self.leFFmpegCacheDir.setObjectName(u"leFFmpegCacheDir")
389
+
182
390
  self.horizontalLayout_3.addWidget(self.leFFmpegCacheDir)
183
- self.pbBrowseFFmpegCacheDir = QtWidgets.QPushButton(self.tab_2)
184
- self.pbBrowseFFmpegCacheDir.setObjectName("pbBrowseFFmpegCacheDir")
391
+
392
+ self.pbBrowseFFmpegCacheDir = QPushButton(self.tab_ffmpeg)
393
+ self.pbBrowseFFmpegCacheDir.setObjectName(u"pbBrowseFFmpegCacheDir")
394
+
185
395
  self.horizontalLayout_3.addWidget(self.pbBrowseFFmpegCacheDir)
396
+
397
+
186
398
  self.verticalLayout_3.addLayout(self.horizontalLayout_3)
187
- spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
188
- self.verticalLayout_3.addItem(spacerItem2)
399
+
400
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
401
+
402
+ self.verticalLayout_3.addItem(self.verticalSpacer)
403
+
404
+
189
405
  self.verticalLayout_4.addLayout(self.verticalLayout_3)
190
- self.tabWidget.addTab(self.tab_2, "")
191
- self.tab_4 = QtWidgets.QWidget()
192
- self.tab_4.setObjectName("tab_4")
193
- self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.tab_4)
194
- self.verticalLayout_8.setObjectName("verticalLayout_8")
195
- self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
196
- self.horizontalLayout_7.setObjectName("horizontalLayout_7")
197
- self.label_7 = QtWidgets.QLabel(self.tab_4)
198
- self.label_7.setObjectName("label_7")
406
+
407
+ self.tabWidget.addTab(self.tab_ffmpeg, "")
408
+ self.tab_spectro = QWidget()
409
+ self.tab_spectro.setObjectName(u"tab_spectro")
410
+ self.verticalLayout_13 = QVBoxLayout(self.tab_spectro)
411
+ self.verticalLayout_13.setObjectName(u"verticalLayout_13")
412
+ self.groupBox = QGroupBox(self.tab_spectro)
413
+ self.groupBox.setObjectName(u"groupBox")
414
+ self.verticalLayout_8 = QVBoxLayout(self.groupBox)
415
+ self.verticalLayout_8.setObjectName(u"verticalLayout_8")
416
+ self.horizontalLayout_7 = QHBoxLayout()
417
+ self.horizontalLayout_7.setObjectName(u"horizontalLayout_7")
418
+ self.label_7 = QLabel(self.groupBox)
419
+ self.label_7.setObjectName(u"label_7")
420
+
199
421
  self.horizontalLayout_7.addWidget(self.label_7)
200
- self.cbSpectrogramColorMap = QtWidgets.QComboBox(self.tab_4)
201
- self.cbSpectrogramColorMap.setObjectName("cbSpectrogramColorMap")
422
+
423
+ self.cbSpectrogramColorMap = QComboBox(self.groupBox)
424
+ self.cbSpectrogramColorMap.setObjectName(u"cbSpectrogramColorMap")
425
+
202
426
  self.horizontalLayout_7.addWidget(self.cbSpectrogramColorMap)
427
+
428
+ self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
429
+
430
+ self.horizontalLayout_7.addItem(self.horizontalSpacer_2)
431
+
432
+
203
433
  self.verticalLayout_8.addLayout(self.horizontalLayout_7)
204
- self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
205
- self.horizontalLayout_10.setObjectName("horizontalLayout_10")
206
- self.label_12 = QtWidgets.QLabel(self.tab_4)
207
- self.label_12.setObjectName("label_12")
434
+
435
+ self.horizontalLayout_10 = QHBoxLayout()
436
+ self.horizontalLayout_10.setObjectName(u"horizontalLayout_10")
437
+ self.label_12 = QLabel(self.groupBox)
438
+ self.label_12.setObjectName(u"label_12")
439
+
208
440
  self.horizontalLayout_10.addWidget(self.label_12)
209
- self.sb_time_interval = QtWidgets.QSpinBox(self.tab_4)
441
+
442
+ self.sb_time_interval = QSpinBox(self.groupBox)
443
+ self.sb_time_interval.setObjectName(u"sb_time_interval")
210
444
  self.sb_time_interval.setMinimum(2)
211
445
  self.sb_time_interval.setMaximum(360)
212
- self.sb_time_interval.setProperty("value", 10)
213
- self.sb_time_interval.setObjectName("sb_time_interval")
446
+ self.sb_time_interval.setValue(10)
447
+
214
448
  self.horizontalLayout_10.addWidget(self.sb_time_interval)
449
+
450
+ self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
451
+
452
+ self.horizontalLayout_10.addItem(self.horizontalSpacer_3)
453
+
454
+
215
455
  self.verticalLayout_8.addLayout(self.horizontalLayout_10)
216
- spacerItem3 = QtWidgets.QSpacerItem(20, 319, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
217
- self.verticalLayout_8.addItem(spacerItem3)
218
- self.tabWidget.addTab(self.tab_4, "")
219
- self.tab_5 = QtWidgets.QWidget()
220
- self.tab_5.setObjectName("tab_5")
221
- self.verticalLayout_10 = QtWidgets.QVBoxLayout(self.tab_5)
222
- self.verticalLayout_10.setObjectName("verticalLayout_10")
223
- self.horizontalLayout_12 = QtWidgets.QHBoxLayout()
224
- self.horizontalLayout_12.setObjectName("horizontalLayout_12")
225
- self.verticalLayout_6 = QtWidgets.QVBoxLayout()
226
- self.verticalLayout_6.setObjectName("verticalLayout_6")
227
- self.label_10 = QtWidgets.QLabel(self.tab_5)
456
+
457
+ self.horizontalLayout_18 = QHBoxLayout()
458
+ self.horizontalLayout_18.setObjectName(u"horizontalLayout_18")
459
+ self.label_16 = QLabel(self.groupBox)
460
+ self.label_16.setObjectName(u"label_16")
461
+
462
+ self.horizontalLayout_18.addWidget(self.label_16)
463
+
464
+ self.cb_window_type = QComboBox(self.groupBox)
465
+ self.cb_window_type.addItem("")
466
+ self.cb_window_type.addItem("")
467
+ self.cb_window_type.addItem("")
468
+ self.cb_window_type.setObjectName(u"cb_window_type")
469
+
470
+ self.horizontalLayout_18.addWidget(self.cb_window_type)
471
+
472
+ self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
473
+
474
+ self.horizontalLayout_18.addItem(self.horizontalSpacer_4)
475
+
476
+
477
+ self.verticalLayout_8.addLayout(self.horizontalLayout_18)
478
+
479
+ self.horizontalLayout_19 = QHBoxLayout()
480
+ self.horizontalLayout_19.setObjectName(u"horizontalLayout_19")
481
+ self.label_17 = QLabel(self.groupBox)
482
+ self.label_17.setObjectName(u"label_17")
483
+
484
+ self.horizontalLayout_19.addWidget(self.label_17)
485
+
486
+ self.cb_NFFT = QComboBox(self.groupBox)
487
+ self.cb_NFFT.addItem("")
488
+ self.cb_NFFT.addItem("")
489
+ self.cb_NFFT.addItem("")
490
+ self.cb_NFFT.addItem("")
491
+ self.cb_NFFT.setObjectName(u"cb_NFFT")
492
+
493
+ self.horizontalLayout_19.addWidget(self.cb_NFFT)
494
+
495
+ self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
496
+
497
+ self.horizontalLayout_19.addItem(self.horizontalSpacer_5)
498
+
499
+
500
+ self.verticalLayout_8.addLayout(self.horizontalLayout_19)
501
+
502
+ self.horizontalLayout_20 = QHBoxLayout()
503
+ self.horizontalLayout_20.setObjectName(u"horizontalLayout_20")
504
+ self.label_18 = QLabel(self.groupBox)
505
+ self.label_18.setObjectName(u"label_18")
506
+
507
+ self.horizontalLayout_20.addWidget(self.label_18)
508
+
509
+ self.sb_noverlap = QSpinBox(self.groupBox)
510
+ self.sb_noverlap.setObjectName(u"sb_noverlap")
511
+ self.sb_noverlap.setMaximum(900)
512
+ self.sb_noverlap.setSingleStep(10)
513
+ self.sb_noverlap.setValue(128)
514
+
515
+ self.horizontalLayout_20.addWidget(self.sb_noverlap)
516
+
517
+ self.horizontalSpacer_6 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
518
+
519
+ self.horizontalLayout_20.addItem(self.horizontalSpacer_6)
520
+
521
+
522
+ self.verticalLayout_8.addLayout(self.horizontalLayout_20)
523
+
524
+ self.horizontalLayout_21 = QHBoxLayout()
525
+ self.horizontalLayout_21.setObjectName(u"horizontalLayout_21")
526
+ self.label_19 = QLabel(self.groupBox)
527
+ self.label_19.setObjectName(u"label_19")
528
+
529
+ self.horizontalLayout_21.addWidget(self.label_19)
530
+
531
+ self.sb_vmin = QSpinBox(self.groupBox)
532
+ self.sb_vmin.setObjectName(u"sb_vmin")
533
+ self.sb_vmin.setMinimum(-200)
534
+ self.sb_vmin.setMaximum(0)
535
+ self.sb_vmin.setValue(-100)
536
+
537
+ self.horizontalLayout_21.addWidget(self.sb_vmin)
538
+
539
+ self.label_21 = QLabel(self.groupBox)
540
+ self.label_21.setObjectName(u"label_21")
541
+
542
+ self.horizontalLayout_21.addWidget(self.label_21)
543
+
544
+ self.horizontalSpacer_7 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
545
+
546
+ self.horizontalLayout_21.addItem(self.horizontalSpacer_7)
547
+
548
+
549
+ self.verticalLayout_8.addLayout(self.horizontalLayout_21)
550
+
551
+ self.horizontalLayout_22 = QHBoxLayout()
552
+ self.horizontalLayout_22.setObjectName(u"horizontalLayout_22")
553
+ self.label_20 = QLabel(self.groupBox)
554
+ self.label_20.setObjectName(u"label_20")
555
+
556
+ self.horizontalLayout_22.addWidget(self.label_20)
557
+
558
+ self.sb_vmax = QSpinBox(self.groupBox)
559
+ self.sb_vmax.setObjectName(u"sb_vmax")
560
+ self.sb_vmax.setMinimum(-40)
561
+ self.sb_vmax.setMaximum(0)
562
+ self.sb_vmax.setValue(-20)
563
+
564
+ self.horizontalLayout_22.addWidget(self.sb_vmax)
565
+
566
+ self.label_22 = QLabel(self.groupBox)
567
+ self.label_22.setObjectName(u"label_22")
568
+
569
+ self.horizontalLayout_22.addWidget(self.label_22)
570
+
571
+ self.horizontalSpacer_8 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
572
+
573
+ self.horizontalLayout_22.addItem(self.horizontalSpacer_8)
574
+
575
+
576
+ self.verticalLayout_8.addLayout(self.horizontalLayout_22)
577
+
578
+
579
+ self.verticalLayout_13.addWidget(self.groupBox)
580
+
581
+ self.verticalSpacer_3 = QSpacerItem(20, 319, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
582
+
583
+ self.verticalLayout_13.addItem(self.verticalSpacer_3)
584
+
585
+ self.tabWidget.addTab(self.tab_spectro, "")
586
+ self.tab_colors = QWidget()
587
+ self.tab_colors.setObjectName(u"tab_colors")
588
+ self.verticalLayout_10 = QVBoxLayout(self.tab_colors)
589
+ self.verticalLayout_10.setObjectName(u"verticalLayout_10")
590
+ self.horizontalLayout_12 = QHBoxLayout()
591
+ self.horizontalLayout_12.setObjectName(u"horizontalLayout_12")
592
+ self.verticalLayout_6 = QVBoxLayout()
593
+ self.verticalLayout_6.setObjectName(u"verticalLayout_6")
594
+ self.label_10 = QLabel(self.tab_colors)
595
+ self.label_10.setObjectName(u"label_10")
228
596
  self.label_10.setOpenExternalLinks(True)
229
- self.label_10.setObjectName("label_10")
597
+
230
598
  self.verticalLayout_6.addWidget(self.label_10)
231
- self.te_behav_colors = QtWidgets.QPlainTextEdit(self.tab_5)
232
- self.te_behav_colors.setObjectName("te_behav_colors")
599
+
600
+ self.te_behav_colors = QPlainTextEdit(self.tab_colors)
601
+ self.te_behav_colors.setObjectName(u"te_behav_colors")
602
+
233
603
  self.verticalLayout_6.addWidget(self.te_behav_colors)
234
- self.pb_reset_behav_colors = QtWidgets.QPushButton(self.tab_5)
235
- self.pb_reset_behav_colors.setObjectName("pb_reset_behav_colors")
604
+
605
+ self.pb_reset_behav_colors = QPushButton(self.tab_colors)
606
+ self.pb_reset_behav_colors.setObjectName(u"pb_reset_behav_colors")
607
+
236
608
  self.verticalLayout_6.addWidget(self.pb_reset_behav_colors)
609
+
610
+
237
611
  self.horizontalLayout_12.addLayout(self.verticalLayout_6)
238
- self.verticalLayout_9 = QtWidgets.QVBoxLayout()
239
- self.verticalLayout_9.setObjectName("verticalLayout_9")
240
- self.label_11 = QtWidgets.QLabel(self.tab_5)
612
+
613
+ self.verticalLayout_9 = QVBoxLayout()
614
+ self.verticalLayout_9.setObjectName(u"verticalLayout_9")
615
+ self.label_11 = QLabel(self.tab_colors)
616
+ self.label_11.setObjectName(u"label_11")
241
617
  self.label_11.setOpenExternalLinks(True)
242
- self.label_11.setObjectName("label_11")
618
+
243
619
  self.verticalLayout_9.addWidget(self.label_11)
244
- self.te_category_colors = QtWidgets.QPlainTextEdit(self.tab_5)
245
- self.te_category_colors.setObjectName("te_category_colors")
620
+
621
+ self.te_category_colors = QPlainTextEdit(self.tab_colors)
622
+ self.te_category_colors.setObjectName(u"te_category_colors")
623
+
246
624
  self.verticalLayout_9.addWidget(self.te_category_colors)
247
- self.pb_reset_category_colors = QtWidgets.QPushButton(self.tab_5)
248
- self.pb_reset_category_colors.setObjectName("pb_reset_category_colors")
625
+
626
+ self.pb_reset_category_colors = QPushButton(self.tab_colors)
627
+ self.pb_reset_category_colors.setObjectName(u"pb_reset_category_colors")
628
+
249
629
  self.verticalLayout_9.addWidget(self.pb_reset_category_colors)
630
+
631
+
250
632
  self.horizontalLayout_12.addLayout(self.verticalLayout_9)
633
+
634
+
251
635
  self.verticalLayout_10.addLayout(self.horizontalLayout_12)
252
- self.tabWidget.addTab(self.tab_5, "")
636
+
637
+ self.tabWidget.addTab(self.tab_colors, "")
638
+ self.tab_interface = QWidget()
639
+ self.tab_interface.setObjectName(u"tab_interface")
640
+ self.verticalLayout_7 = QVBoxLayout(self.tab_interface)
641
+ self.verticalLayout_7.setObjectName(u"verticalLayout_7")
642
+ self.formLayout = QFormLayout()
643
+ self.formLayout.setObjectName(u"formLayout")
644
+ self.label_9 = QLabel(self.tab_interface)
645
+ self.label_9.setObjectName(u"label_9")
646
+
647
+ self.formLayout.setWidget(0, QFormLayout.ItemRole.LabelRole, self.label_9)
648
+
649
+ self.sb_toolbar_icon_size = QSpinBox(self.tab_interface)
650
+ self.sb_toolbar_icon_size.setObjectName(u"sb_toolbar_icon_size")
651
+ self.sb_toolbar_icon_size.setMinimum(12)
652
+ self.sb_toolbar_icon_size.setMaximum(128)
653
+ self.sb_toolbar_icon_size.setValue(24)
654
+
655
+ self.formLayout.setWidget(0, QFormLayout.ItemRole.FieldRole, self.sb_toolbar_icon_size)
656
+
657
+
658
+ self.verticalLayout_7.addLayout(self.formLayout)
659
+
660
+ self.verticalSpacer_5 = QSpacerItem(20, 386, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
661
+
662
+ self.verticalLayout_7.addItem(self.verticalSpacer_5)
663
+
664
+ self.tabWidget.addTab(self.tab_interface, "")
665
+
253
666
  self.verticalLayout_2.addWidget(self.tabWidget)
254
- self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
255
- self.horizontalLayout_2.setObjectName("horizontalLayout_2")
256
- spacerItem4 = QtWidgets.QSpacerItem(241, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
257
- self.horizontalLayout_2.addItem(spacerItem4)
258
- self.pb_refresh = QtWidgets.QPushButton(prefDialog)
259
- self.pb_refresh.setObjectName("pb_refresh")
667
+
668
+ self.horizontalLayout_2 = QHBoxLayout()
669
+ self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
670
+ self.horizontalSpacer = QSpacerItem(241, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
671
+
672
+ self.horizontalLayout_2.addItem(self.horizontalSpacer)
673
+
674
+ self.pb_refresh = QPushButton(prefDialog)
675
+ self.pb_refresh.setObjectName(u"pb_refresh")
676
+
260
677
  self.horizontalLayout_2.addWidget(self.pb_refresh)
261
- self.pbCancel = QtWidgets.QPushButton(prefDialog)
262
- self.pbCancel.setObjectName("pbCancel")
678
+
679
+ self.pbCancel = QPushButton(prefDialog)
680
+ self.pbCancel.setObjectName(u"pbCancel")
681
+
263
682
  self.horizontalLayout_2.addWidget(self.pbCancel)
264
- self.pbOK = QtWidgets.QPushButton(prefDialog)
265
- self.pbOK.setObjectName("pbOK")
683
+
684
+ self.pbOK = QPushButton(prefDialog)
685
+ self.pbOK.setObjectName(u"pbOK")
686
+
266
687
  self.horizontalLayout_2.addWidget(self.pbOK)
688
+
689
+
267
690
  self.verticalLayout_2.addLayout(self.horizontalLayout_2)
268
- self.gridLayout.addLayout(self.verticalLayout_2, 0, 0, 1, 1)
691
+
692
+
693
+ self.horizontalLayout_17.addLayout(self.verticalLayout_2)
694
+
269
695
 
270
696
  self.retranslateUi(prefDialog)
271
- self.tabWidget.setCurrentIndex(0)
272
- QtCore.QMetaObject.connectSlotsByName(prefDialog)
697
+
698
+ self.tabWidget.setCurrentIndex(1)
699
+
700
+
701
+ QMetaObject.connectSlotsByName(prefDialog)
702
+ # setupUi
273
703
 
274
704
  def retranslateUi(self, prefDialog):
275
- _translate = QtCore.QCoreApplication.translate
276
- prefDialog.setWindowTitle(_translate("prefDialog", "Preferences"))
277
- self.label.setText(_translate("prefDialog", "Default project time format"))
278
- self.cbTimeFormat.setItemText(0, _translate("prefDialog", "seconds"))
279
- self.cbTimeFormat.setItemText(1, _translate("prefDialog", "hh:mm:ss.mss"))
280
- self.label_6.setText(_translate("prefDialog", "Auto-save project every (minutes)"))
281
- self.label_3.setText(_translate("prefDialog", "Separator for behavioural strings (events export)"))
282
- self.leSeparator.setText(_translate("prefDialog", "|"))
283
- self.cbCheckForNewVersion.setText(_translate("prefDialog", "Check for new version and news"))
284
- self.lb_hwdec.setText(_translate("prefDialog", "MPV player hardware video decoding"))
285
- self.lb_project_file_indent.setText(_translate("prefDialog", "Project file indentation type"))
286
- self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("prefDialog", "Project"))
287
- self.label_4.setText(_translate("prefDialog", "Fast forward/backward value (seconds)"))
288
- self.cb_adapt_fast_jump.setText(_translate("prefDialog", "Adapt the fast forward/backward jump to playback speed"))
289
- self.label_5.setText(_translate("prefDialog", "Playback speed step value"))
290
- self.label_2.setText(_translate("prefDialog", "Time offset for video/audio reposition (seconds)"))
291
- self.cbConfirmSound.setText(_translate("prefDialog", "Play sound when a key is pressed"))
292
- self.cbCloseSameEvent.setText(_translate("prefDialog", "Close the same current event independently of modifiers"))
293
- self.label_8.setText(_translate("prefDialog", "Beep every (seconds)"))
294
- self.cb_display_subtitles.setText(_translate("prefDialog", "Display subtitles"))
295
- self.cbTrackingCursorAboveEvent.setText(_translate("prefDialog", "Tracking cursor above current event"))
296
- self.cbAlertNoFocalSubject.setText(_translate("prefDialog", "Alert if focal subject is not set"))
297
- self.cb_pause_before_addevent.setText(_translate("prefDialog", "Pause media before \"Add event\" command"))
298
- self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_results), _translate("prefDialog", "Observations"))
299
- self.lbFFmpegPath.setText(_translate("prefDialog", "FFmpeg path:"))
300
- self.lbFFmpegCacheDir.setText(_translate("prefDialog", "FFmpeg cache directory"))
301
- self.pbBrowseFFmpegCacheDir.setText(_translate("prefDialog", "..."))
302
- self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("prefDialog", "FFmpeg framework"))
303
- self.label_7.setText(_translate("prefDialog", "Spectrogram color map"))
304
- self.label_12.setText(_translate("prefDialog", "Default time interval (s)"))
305
- self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("prefDialog", "Spectrogram/Wave form"))
306
- self.label_10.setText(_translate("prefDialog", "<html><head/><body><p>List of colors for behaviors. See <a href=\"https://matplotlib.org/api/colors_api.html\"><span style=\" text-decoration: underline; color:#0000ff;\">matplotlib colors</span></a></p></body></html>"))
307
- self.pb_reset_behav_colors.setText(_translate("prefDialog", "Reset colors to default"))
308
- self.label_11.setText(_translate("prefDialog", "<html><head/><body><p>List of colors for behavioral categories. See <a href=\"https://matplotlib.org/api/colors_api.html\"><span style=\" text-decoration: underline; color:#0000ff;\">matplotlib colors</span></a></p></body></html>"))
309
- self.pb_reset_category_colors.setText(_translate("prefDialog", "Reset colors to default"))
310
- self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("prefDialog", "Plot colors"))
311
- self.pb_refresh.setText(_translate("prefDialog", "Refresh"))
312
- self.pbCancel.setText(_translate("prefDialog", "Cancel"))
313
- self.pbOK.setText(_translate("prefDialog", "OK"))
705
+ prefDialog.setWindowTitle(QCoreApplication.translate("prefDialog", u"Preferences", None))
706
+ self.label.setText(QCoreApplication.translate("prefDialog", u"Default project time format", None))
707
+ self.cbTimeFormat.setItemText(0, QCoreApplication.translate("prefDialog", u"seconds", None))
708
+ self.cbTimeFormat.setItemText(1, QCoreApplication.translate("prefDialog", u"hh:mm:ss.mss", None))
709
+
710
+ self.label_6.setText(QCoreApplication.translate("prefDialog", u"Auto-save project every (minutes)", None))
711
+ self.label_3.setText(QCoreApplication.translate("prefDialog", u"Separator for behavioural strings (events export)", None))
712
+ self.leSeparator.setText(QCoreApplication.translate("prefDialog", u"|", None))
713
+ self.cbCheckForNewVersion.setText(QCoreApplication.translate("prefDialog", u"Check for new version and news", None))
714
+ self.lb_hwdec.setText(QCoreApplication.translate("prefDialog", u"MPV player hardware video decoding", None))
715
+ self.lb_project_file_indent.setText(QCoreApplication.translate("prefDialog", u"Project file indentation type", None))
716
+ self.cb_check_integrity_at_opening.setText(QCoreApplication.translate("prefDialog", u"Check project integrity when opening and saving project (recommended)", None))
717
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_project), QCoreApplication.translate("prefDialog", u"Project", None))
718
+ self.label_4.setText(QCoreApplication.translate("prefDialog", u"Fast forward/backward value (seconds)", None))
719
+ self.cb_adapt_fast_jump.setText(QCoreApplication.translate("prefDialog", u"Adapt the fast forward/backward jump to playback speed", None))
720
+ self.label_5.setText(QCoreApplication.translate("prefDialog", u"Playback speed step value", None))
721
+ self.label_2.setText(QCoreApplication.translate("prefDialog", u"Time offset for video/audio reposition (seconds)", None))
722
+ self.cbConfirmSound.setText(QCoreApplication.translate("prefDialog", u"Play sound when a key is pressed", None))
723
+ self.cbCloseSameEvent.setText(QCoreApplication.translate("prefDialog", u"Close the same current event independently of modifiers", None))
724
+ self.label_8.setText(QCoreApplication.translate("prefDialog", u"Beep every (seconds)", None))
725
+ self.cb_display_subtitles.setText(QCoreApplication.translate("prefDialog", u"Display subtitles", None))
726
+ self.cbTrackingCursorAboveEvent.setText(QCoreApplication.translate("prefDialog", u"Tracking cursor above current event", None))
727
+ self.cbAlertNoFocalSubject.setText(QCoreApplication.translate("prefDialog", u"Alert if focal subject is not set", None))
728
+ self.cb_pause_before_addevent.setText(QCoreApplication.translate("prefDialog", u"Pause media before \"Add event\" command", None))
729
+ self.label_24.setText(QCoreApplication.translate("prefDialog", u"Frame step size", None))
730
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_observations), QCoreApplication.translate("prefDialog", u"Observations", None))
731
+ self.label_13.setText(QCoreApplication.translate("prefDialog", u"BORIS plugins", None))
732
+ self.label_15.setText(QCoreApplication.translate("prefDialog", u"Personal plugins", None))
733
+ self.pb_browse_plugins_dir.setText(QCoreApplication.translate("prefDialog", u"Browse", None))
734
+ self.label_14.setText(QCoreApplication.translate("prefDialog", u"Plugin info", None))
735
+ self.label_23.setText(QCoreApplication.translate("prefDialog", u"Plugin code", None))
736
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_analysis_plugins), QCoreApplication.translate("prefDialog", u"Analysis plugins", None))
737
+ self.lbFFmpegPath.setText(QCoreApplication.translate("prefDialog", u"FFmpeg path:", None))
738
+ self.lbFFmpegCacheDir.setText(QCoreApplication.translate("prefDialog", u"FFmpeg cache directory", None))
739
+ self.pbBrowseFFmpegCacheDir.setText(QCoreApplication.translate("prefDialog", u"...", None))
740
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_ffmpeg), QCoreApplication.translate("prefDialog", u"FFmpeg framework", None))
741
+ self.groupBox.setTitle(QCoreApplication.translate("prefDialog", u"Spectrogram", None))
742
+ self.label_7.setText(QCoreApplication.translate("prefDialog", u"Color map", None))
743
+ self.label_12.setText(QCoreApplication.translate("prefDialog", u"Default time interval (s)", None))
744
+ self.label_16.setText(QCoreApplication.translate("prefDialog", u"Window type", None))
745
+ self.cb_window_type.setItemText(0, QCoreApplication.translate("prefDialog", u"hanning", None))
746
+ self.cb_window_type.setItemText(1, QCoreApplication.translate("prefDialog", u"hamming", None))
747
+ self.cb_window_type.setItemText(2, QCoreApplication.translate("prefDialog", u"blackmanharris", None))
748
+
749
+ self.label_17.setText(QCoreApplication.translate("prefDialog", u"NFFT", None))
750
+ self.cb_NFFT.setItemText(0, QCoreApplication.translate("prefDialog", u"256", None))
751
+ self.cb_NFFT.setItemText(1, QCoreApplication.translate("prefDialog", u"512", None))
752
+ self.cb_NFFT.setItemText(2, QCoreApplication.translate("prefDialog", u"1024", None))
753
+ self.cb_NFFT.setItemText(3, QCoreApplication.translate("prefDialog", u"2048", None))
754
+
755
+ self.label_18.setText(QCoreApplication.translate("prefDialog", u"noverlap", None))
756
+ self.label_19.setText(QCoreApplication.translate("prefDialog", u"vmin", None))
757
+ self.label_21.setText(QCoreApplication.translate("prefDialog", u"dBFS", None))
758
+ self.label_20.setText(QCoreApplication.translate("prefDialog", u"vmax", None))
759
+ self.label_22.setText(QCoreApplication.translate("prefDialog", u"dBFS", None))
760
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_spectro), QCoreApplication.translate("prefDialog", u"Spectrogram/Wave form", None))
761
+ self.label_10.setText(QCoreApplication.translate("prefDialog", u"<html><head/><body><p>List of colors for behaviors. See <a href=\"https://matplotlib.org/api/colors_api.html\"><span style=\" text-decoration: underline; color:#0000ff;\">matplotlib colors</span></a></p></body></html>", None))
762
+ self.pb_reset_behav_colors.setText(QCoreApplication.translate("prefDialog", u"Reset colors to default", None))
763
+ self.label_11.setText(QCoreApplication.translate("prefDialog", u"<html><head/><body><p>List of colors for behavioral categories. See <a href=\"https://matplotlib.org/api/colors_api.html\"><span style=\" text-decoration: underline; color:#0000ff;\">matplotlib colors</span></a></p></body></html>", None))
764
+ self.pb_reset_category_colors.setText(QCoreApplication.translate("prefDialog", u"Reset colors to default", None))
765
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_colors), QCoreApplication.translate("prefDialog", u"Plot colors", None))
766
+ self.label_9.setText(QCoreApplication.translate("prefDialog", u"Toolbar icons size", None))
767
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_interface), QCoreApplication.translate("prefDialog", u"Interface", None))
768
+ self.pb_refresh.setText(QCoreApplication.translate("prefDialog", u"Refresh", None))
769
+ self.pbCancel.setText(QCoreApplication.translate("prefDialog", u"Cancel", None))
770
+ self.pbOK.setText(QCoreApplication.translate("prefDialog", u"OK", None))
771
+ # retranslateUi
772
+