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