boris-behav-obs 8.9.16__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.
Potentially problematic release.
This version of boris-behav-obs might be problematic. Click here for more details.
- boris/__init__.py +1 -1
- boris/__main__.py +1 -1
- boris/about.py +36 -39
- boris/add_modifier.py +122 -109
- boris/add_modifier_ui.py +239 -135
- boris/advanced_event_filtering.py +81 -45
- boris/analysis_plugins/__init__.py +0 -0
- boris/analysis_plugins/_latency.py +59 -0
- boris/analysis_plugins/irr_cohen_kappa.py +109 -0
- boris/analysis_plugins/irr_cohen_kappa_with_modifiers.py +112 -0
- boris/analysis_plugins/irr_weighted_cohen_kappa.py +157 -0
- boris/analysis_plugins/irr_weighted_cohen_kappa_with_modifiers.py +162 -0
- boris/analysis_plugins/list_of_dataframe_columns.py +22 -0
- boris/analysis_plugins/number_of_occurences.py +22 -0
- boris/analysis_plugins/number_of_occurences_by_independent_variable.py +54 -0
- boris/analysis_plugins/time_budget.py +61 -0
- boris/behav_coding_map_creator.py +228 -229
- boris/behavior_binary_table.py +33 -50
- boris/behaviors_coding_map.py +17 -18
- boris/boris_cli.py +6 -25
- boris/cmd_arguments.py +12 -1
- boris/coding_pad.py +42 -49
- boris/config.py +161 -77
- boris/config_file.py +63 -83
- boris/connections.py +112 -57
- boris/converters.py +13 -37
- boris/converters_ui.py +187 -110
- boris/cooccurence.py +250 -0
- boris/core.py +2511 -1824
- boris/core_qrc.py +15895 -10185
- boris/core_ui.py +946 -792
- boris/db_functions.py +21 -41
- boris/dev.py +134 -0
- boris/dialog.py +505 -244
- boris/duration_widget.py +15 -20
- boris/edit_event.py +84 -28
- boris/edit_event_ui.py +214 -78
- boris/event_operations.py +517 -415
- boris/events_cursor.py +25 -17
- boris/events_snapshots.py +36 -82
- boris/exclusion_matrix.py +4 -9
- boris/export_events.py +213 -583
- boris/export_observation.py +98 -611
- boris/external_processes.py +156 -97
- boris/geometric_measurement.py +652 -287
- boris/gui_utilities.py +91 -14
- boris/image_overlay.py +9 -9
- boris/import_observations.py +190 -98
- boris/ipc_mpv.py +325 -0
- boris/irr.py +26 -63
- boris/latency.py +34 -25
- boris/measurement_widget.py +14 -18
- boris/media_file.py +52 -84
- boris/menu_options.py +17 -6
- boris/modifier_coding_map_creator.py +1013 -0
- boris/modifiers_coding_map.py +7 -9
- boris/mpv.py +1 -0
- boris/mpv2.py +732 -705
- boris/observation.py +655 -310
- boris/observation_operations.py +1036 -404
- boris/observation_ui.py +584 -356
- boris/observations_list.py +71 -53
- boris/otx_parser.py +74 -80
- boris/param_panel.py +31 -16
- boris/param_panel_ui.py +254 -138
- boris/player_dock_widget.py +90 -60
- boris/plot_data_module.py +43 -46
- boris/plot_events.py +127 -90
- boris/plot_events_rt.py +17 -31
- boris/plot_spectrogram_rt.py +95 -30
- boris/plot_waveform_rt.py +32 -21
- boris/plugins.py +431 -0
- boris/portion/__init__.py +18 -8
- boris/portion/const.py +35 -18
- boris/portion/dict.py +5 -5
- boris/portion/func.py +2 -2
- boris/portion/interval.py +21 -41
- boris/portion/io.py +41 -32
- boris/preferences.py +306 -83
- boris/preferences_ui.py +685 -228
- boris/project.py +448 -293
- boris/project_functions.py +689 -254
- boris/project_import_export.py +213 -222
- boris/project_ui.py +674 -438
- boris/qrc_boris.py +6 -3
- boris/qrc_boris5.py +6 -3
- boris/select_modifiers.py +74 -48
- boris/select_observations.py +20 -199
- boris/select_subj_behav.py +67 -39
- boris/state_events.py +53 -37
- boris/subjects_pad.py +6 -9
- boris/synthetic_time_budget.py +45 -28
- boris/time_budget_functions.py +171 -171
- boris/time_budget_widget.py +84 -114
- boris/transitions.py +41 -47
- boris/utilities.py +766 -266
- boris/version.py +3 -3
- boris/video_equalizer.py +16 -14
- boris/video_equalizer_ui.py +199 -130
- boris/video_operations.py +125 -28
- boris/view_df.py +104 -0
- boris/view_df_ui.py +75 -0
- boris/write_event.py +538 -0
- boris_behav_obs-9.7.6.dist-info/METADATA +139 -0
- boris_behav_obs-9.7.6.dist-info/RECORD +109 -0
- {boris_behav_obs-8.9.16.dist-info → boris_behav_obs-9.7.6.dist-info}/WHEEL +1 -1
- boris_behav_obs-9.7.6.dist-info/entry_points.txt +2 -0
- boris/README.TXT +0 -22
- boris/add_modifier.ui +0 -323
- boris/boris_ui.py +0 -886
- boris/converters.ui +0 -289
- boris/core.qrc +0 -35
- boris/core.ui +0 -1543
- boris/edit_event.ui +0 -175
- boris/icons/logo_eye.ico +0 -0
- boris/map_creator.py +0 -850
- boris/observation.ui +0 -773
- boris/param_panel.ui +0 -379
- boris/preferences.ui +0 -537
- boris/project.ui +0 -1069
- boris/project_server.py +0 -236
- boris/vlc.py +0 -10343
- boris/vlc_local.py +0 -90
- boris_behav_obs-8.9.16.dist-info/LICENSE.TXT +0 -674
- boris_behav_obs-8.9.16.dist-info/METADATA +0 -129
- boris_behav_obs-8.9.16.dist-info/RECORD +0 -108
- boris_behav_obs-8.9.16.dist-info/entry_points.txt +0 -2
- {boris → boris_behav_obs-9.7.6.dist-info/licenses}/LICENSE.TXT +0 -0
- {boris_behav_obs-8.9.16.dist-info → boris_behav_obs-9.7.6.dist-info}/top_level.txt +0 -0
boris/converters.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
BORIS
|
|
3
3
|
Behavioral Observation Research Interactive Software
|
|
4
|
-
Copyright 2012-
|
|
4
|
+
Copyright 2012-2025 Olivier Friard
|
|
5
5
|
|
|
6
6
|
This file is part of BORIS.
|
|
7
7
|
|
|
@@ -22,14 +22,10 @@ This file is part of BORIS.
|
|
|
22
22
|
|
|
23
23
|
import sys
|
|
24
24
|
import json
|
|
25
|
-
import urllib.error
|
|
26
|
-
import urllib.parse
|
|
27
25
|
import urllib.request
|
|
28
26
|
|
|
29
27
|
|
|
30
|
-
from
|
|
31
|
-
from PyQt5.QtGui import *
|
|
32
|
-
from PyQt5.QtWidgets import *
|
|
28
|
+
from PySide6.QtWidgets import QMessageBox, QTableWidgetItem, QFileDialog, QInputDialog, QLineEdit
|
|
33
29
|
|
|
34
30
|
from . import dialog
|
|
35
31
|
from . import config as cfg
|
|
@@ -113,12 +109,8 @@ def modify_converter(self):
|
|
|
113
109
|
w.setEnabled(False)
|
|
114
110
|
|
|
115
111
|
self.le_converter_name.setText(self.tw_converters.item(self.tw_converters.selectedIndexes()[0].row(), 0).text())
|
|
116
|
-
self.le_converter_description.setText(
|
|
117
|
-
|
|
118
|
-
)
|
|
119
|
-
self.pteCode.setPlainText(
|
|
120
|
-
self.tw_converters.item(self.tw_converters.selectedIndexes()[0].row(), 2).text().replace("@", "\n")
|
|
121
|
-
)
|
|
112
|
+
self.le_converter_description.setText(self.tw_converters.item(self.tw_converters.selectedIndexes()[0].row(), 1).text())
|
|
113
|
+
self.pteCode.setPlainText(self.tw_converters.item(self.tw_converters.selectedIndexes()[0].row(), 2).text().replace("@", "\n"))
|
|
122
114
|
|
|
123
115
|
self.row_in_modification = self.tw_converters.selectedIndexes()[0].row()
|
|
124
116
|
|
|
@@ -153,9 +145,7 @@ def save_converter(self):
|
|
|
153
145
|
return
|
|
154
146
|
|
|
155
147
|
if not self.le_converter_name.text().replace("_", "a").isalnum():
|
|
156
|
-
QMessageBox.critical(
|
|
157
|
-
self, "BORIS", "Forbidden characters are used in converter name.<br>Use a..z, A..Z, 0..9 _"
|
|
158
|
-
)
|
|
148
|
+
QMessageBox.critical(self, "BORIS", "Forbidden characters are used in converter name.<br>Use a..z, A..Z, 0..9 _")
|
|
159
149
|
return
|
|
160
150
|
|
|
161
151
|
# test code with exec
|
|
@@ -164,7 +154,7 @@ def save_converter(self):
|
|
|
164
154
|
QMessageBox.critical(self, "BORIS", "The converter must have Python code")
|
|
165
155
|
return
|
|
166
156
|
|
|
167
|
-
function = code_2_func(self, self.le_converter_name.text(), code)
|
|
157
|
+
function = code_2_func(self, name=self.le_converter_name.text(), code=code)
|
|
168
158
|
|
|
169
159
|
try:
|
|
170
160
|
exec(function)
|
|
@@ -247,8 +237,7 @@ def load_converters_from_file_repo(self, mode: str):
|
|
|
247
237
|
|
|
248
238
|
converters_from_file = {}
|
|
249
239
|
if mode == "file":
|
|
250
|
-
|
|
251
|
-
file_name = fn[0] if type(fn) is tuple else fn
|
|
240
|
+
file_name, _ = QFileDialog.getOpenFileName(self, "Load converters from file", "", "All files (*)")
|
|
252
241
|
|
|
253
242
|
if file_name:
|
|
254
243
|
with open(file_name, "r") as f_in:
|
|
@@ -259,35 +248,25 @@ def load_converters_from_file_repo(self, mode: str):
|
|
|
259
248
|
return
|
|
260
249
|
|
|
261
250
|
if mode == "repo":
|
|
262
|
-
|
|
263
|
-
converters_repo_URL = "http://www.boris.unito.it/archive/converters.json"
|
|
251
|
+
converters_repo_URL = "https://www.boris.unito.it/static/converters.json"
|
|
264
252
|
try:
|
|
265
253
|
converters_from_repo = urllib.request.urlopen(converters_repo_URL).read().strip().decode("utf-8")
|
|
266
254
|
except Exception:
|
|
267
|
-
QMessageBox.critical(
|
|
268
|
-
self, cfg.programName, "An error occured during retrieving converters from BORIS remote repository"
|
|
269
|
-
)
|
|
255
|
+
QMessageBox.critical(self, cfg.programName, "An error occured during retrieving converters from BORIS remote repository")
|
|
270
256
|
return
|
|
271
257
|
|
|
272
258
|
try:
|
|
273
259
|
converters_from_file = eval(converters_from_repo)["BORIS converters"]
|
|
274
260
|
except Exception:
|
|
275
|
-
QMessageBox.critical(
|
|
276
|
-
self, cfg.programName, "An error occured during retrieving converters from BORIS remote repository"
|
|
277
|
-
)
|
|
261
|
+
QMessageBox.critical(self, cfg.programName, "An error occured during retrieving converters from BORIS remote repository")
|
|
278
262
|
return
|
|
279
263
|
|
|
280
264
|
if converters_from_file:
|
|
281
|
-
|
|
282
|
-
diag_choose_conv = dialog.ChooseObservationsToImport(
|
|
283
|
-
"Choose the converters to load:", sorted(list(converters_from_file.keys()))
|
|
284
|
-
)
|
|
265
|
+
diag_choose_conv = dialog.ChooseObservationsToImport("Choose the converters to load:", sorted(list(converters_from_file.keys())))
|
|
285
266
|
|
|
286
267
|
if diag_choose_conv.exec_():
|
|
287
|
-
|
|
288
268
|
selected_converters = diag_choose_conv.get_selected_observations()
|
|
289
269
|
if selected_converters:
|
|
290
|
-
|
|
291
270
|
# extract converter names from table
|
|
292
271
|
converter_names = []
|
|
293
272
|
for row in range(self.tw_converters.rowCount()):
|
|
@@ -325,7 +304,7 @@ def load_converters_from_file_repo(self, mode: str):
|
|
|
325
304
|
else:
|
|
326
305
|
continue
|
|
327
306
|
# test if code does not produce error
|
|
328
|
-
function =
|
|
307
|
+
function = code_2_func(self, name=converter_name, code=converters_from_file[converter]["code"])
|
|
329
308
|
|
|
330
309
|
try:
|
|
331
310
|
exec(function)
|
|
@@ -333,10 +312,7 @@ def load_converters_from_file_repo(self, mode: str):
|
|
|
333
312
|
QMessageBox.critical(
|
|
334
313
|
self,
|
|
335
314
|
"BORIS",
|
|
336
|
-
(
|
|
337
|
-
f"The code of {converter_name} converter produces an error: "
|
|
338
|
-
f"<br><b>{sys.exc_info()[1]}</b>"
|
|
339
|
-
),
|
|
315
|
+
(f"The code of {converter_name} converter produces an error: <br><b>{sys.exc_info()[1]}</b>"),
|
|
340
316
|
)
|
|
341
317
|
|
|
342
318
|
self.tw_converters.setRowCount(self.tw_converters.rowCount() + 1)
|
boris/converters_ui.py
CHANGED
|
@@ -1,148 +1,225 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
################################################################################
|
|
4
|
+
## Form generated from reading UI file 'converters.ui'
|
|
5
|
+
##
|
|
6
|
+
## Created by: Qt User Interface Compiler version 6.8.0
|
|
7
|
+
##
|
|
8
|
+
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
|
9
|
+
################################################################################
|
|
8
10
|
|
|
9
|
-
from
|
|
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 (QAbstractItemView, QApplication, QHBoxLayout, QHeaderView,
|
|
19
|
+
QLabel, QLineEdit, QPlainTextEdit, QPushButton,
|
|
20
|
+
QSizePolicy, QSpacerItem, QTableWidget, QTableWidgetItem,
|
|
21
|
+
QVBoxLayout, QWidget)
|
|
10
22
|
|
|
11
23
|
class Ui_converters(object):
|
|
12
24
|
def setupUi(self, converters):
|
|
13
|
-
converters.
|
|
25
|
+
if not converters.objectName():
|
|
26
|
+
converters.setObjectName(u"converters")
|
|
14
27
|
converters.resize(1029, 530)
|
|
15
|
-
self.verticalLayout =
|
|
16
|
-
self.verticalLayout.setObjectName("verticalLayout")
|
|
17
|
-
self.label_4 =
|
|
18
|
-
self.label_4.setObjectName("label_4")
|
|
28
|
+
self.verticalLayout = QVBoxLayout(converters)
|
|
29
|
+
self.verticalLayout.setObjectName(u"verticalLayout")
|
|
30
|
+
self.label_4 = QLabel(converters)
|
|
31
|
+
self.label_4.setObjectName(u"label_4")
|
|
32
|
+
|
|
19
33
|
self.verticalLayout.addWidget(self.label_4)
|
|
20
|
-
|
|
21
|
-
self.tw_converters
|
|
22
|
-
self.tw_converters.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
self.tw_converters.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
self.tw_converters.
|
|
31
|
-
|
|
32
|
-
self.tw_converters.
|
|
34
|
+
|
|
35
|
+
self.tw_converters = QTableWidget(converters)
|
|
36
|
+
if (self.tw_converters.columnCount() < 3):
|
|
37
|
+
self.tw_converters.setColumnCount(3)
|
|
38
|
+
__qtablewidgetitem = QTableWidgetItem()
|
|
39
|
+
self.tw_converters.setHorizontalHeaderItem(0, __qtablewidgetitem)
|
|
40
|
+
__qtablewidgetitem1 = QTableWidgetItem()
|
|
41
|
+
self.tw_converters.setHorizontalHeaderItem(1, __qtablewidgetitem1)
|
|
42
|
+
__qtablewidgetitem2 = QTableWidgetItem()
|
|
43
|
+
self.tw_converters.setHorizontalHeaderItem(2, __qtablewidgetitem2)
|
|
44
|
+
self.tw_converters.setObjectName(u"tw_converters")
|
|
45
|
+
self.tw_converters.setEditTriggers(QAbstractItemView.NoEditTriggers)
|
|
46
|
+
self.tw_converters.setSelectionMode(QAbstractItemView.SingleSelection)
|
|
47
|
+
self.tw_converters.setSelectionBehavior(QAbstractItemView.SelectRows)
|
|
48
|
+
self.tw_converters.setSortingEnabled(True)
|
|
49
|
+
|
|
33
50
|
self.verticalLayout.addWidget(self.tw_converters)
|
|
34
|
-
|
|
35
|
-
self.horizontalLayout
|
|
36
|
-
self.
|
|
37
|
-
self.pb_add_converter
|
|
51
|
+
|
|
52
|
+
self.horizontalLayout = QHBoxLayout()
|
|
53
|
+
self.horizontalLayout.setObjectName(u"horizontalLayout")
|
|
54
|
+
self.pb_add_converter = QPushButton(converters)
|
|
55
|
+
self.pb_add_converter.setObjectName(u"pb_add_converter")
|
|
56
|
+
|
|
38
57
|
self.horizontalLayout.addWidget(self.pb_add_converter)
|
|
39
|
-
|
|
40
|
-
self.pb_modify_converter
|
|
58
|
+
|
|
59
|
+
self.pb_modify_converter = QPushButton(converters)
|
|
60
|
+
self.pb_modify_converter.setObjectName(u"pb_modify_converter")
|
|
61
|
+
|
|
41
62
|
self.horizontalLayout.addWidget(self.pb_modify_converter)
|
|
42
|
-
|
|
43
|
-
self.pb_delete_converter
|
|
63
|
+
|
|
64
|
+
self.pb_delete_converter = QPushButton(converters)
|
|
65
|
+
self.pb_delete_converter.setObjectName(u"pb_delete_converter")
|
|
66
|
+
|
|
44
67
|
self.horizontalLayout.addWidget(self.pb_delete_converter)
|
|
45
|
-
|
|
46
|
-
self.pb_load_from_file
|
|
68
|
+
|
|
69
|
+
self.pb_load_from_file = QPushButton(converters)
|
|
70
|
+
self.pb_load_from_file.setObjectName(u"pb_load_from_file")
|
|
71
|
+
|
|
47
72
|
self.horizontalLayout.addWidget(self.pb_load_from_file)
|
|
48
|
-
|
|
49
|
-
self.pb_load_from_repo
|
|
73
|
+
|
|
74
|
+
self.pb_load_from_repo = QPushButton(converters)
|
|
75
|
+
self.pb_load_from_repo.setObjectName(u"pb_load_from_repo")
|
|
76
|
+
|
|
50
77
|
self.horizontalLayout.addWidget(self.pb_load_from_repo)
|
|
51
|
-
|
|
52
|
-
self.
|
|
78
|
+
|
|
79
|
+
self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
80
|
+
|
|
81
|
+
self.horizontalLayout.addItem(self.horizontalSpacer)
|
|
82
|
+
|
|
83
|
+
|
|
53
84
|
self.verticalLayout.addLayout(self.horizontalLayout)
|
|
54
|
-
|
|
55
|
-
self.horizontalLayout_3
|
|
56
|
-
self.
|
|
57
|
-
self.label_2
|
|
58
|
-
self.label_2.setObjectName("label_2")
|
|
85
|
+
|
|
86
|
+
self.horizontalLayout_3 = QHBoxLayout()
|
|
87
|
+
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
|
88
|
+
self.label_2 = QLabel(converters)
|
|
89
|
+
self.label_2.setObjectName(u"label_2")
|
|
90
|
+
self.label_2.setMinimumSize(QSize(120, 0))
|
|
91
|
+
|
|
59
92
|
self.horizontalLayout_3.addWidget(self.label_2)
|
|
60
|
-
|
|
61
|
-
self.le_converter_name
|
|
93
|
+
|
|
94
|
+
self.le_converter_name = QLineEdit(converters)
|
|
95
|
+
self.le_converter_name.setObjectName(u"le_converter_name")
|
|
96
|
+
|
|
62
97
|
self.horizontalLayout_3.addWidget(self.le_converter_name)
|
|
63
|
-
|
|
64
|
-
self.
|
|
98
|
+
|
|
99
|
+
self.horizontalSpacer_3 = QSpacerItem(10, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum)
|
|
100
|
+
|
|
101
|
+
self.horizontalLayout_3.addItem(self.horizontalSpacer_3)
|
|
102
|
+
|
|
103
|
+
|
|
65
104
|
self.verticalLayout.addLayout(self.horizontalLayout_3)
|
|
66
|
-
|
|
67
|
-
self.horizontalLayout_5
|
|
68
|
-
self.
|
|
69
|
-
self.label_3
|
|
70
|
-
self.label_3.setObjectName("label_3")
|
|
105
|
+
|
|
106
|
+
self.horizontalLayout_5 = QHBoxLayout()
|
|
107
|
+
self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
|
|
108
|
+
self.label_3 = QLabel(converters)
|
|
109
|
+
self.label_3.setObjectName(u"label_3")
|
|
110
|
+
self.label_3.setMinimumSize(QSize(120, 0))
|
|
111
|
+
|
|
71
112
|
self.horizontalLayout_5.addWidget(self.label_3)
|
|
72
|
-
|
|
73
|
-
self.le_converter_description
|
|
113
|
+
|
|
114
|
+
self.le_converter_description = QLineEdit(converters)
|
|
115
|
+
self.le_converter_description.setObjectName(u"le_converter_description")
|
|
116
|
+
|
|
74
117
|
self.horizontalLayout_5.addWidget(self.le_converter_description)
|
|
75
|
-
|
|
76
|
-
self.
|
|
118
|
+
|
|
119
|
+
self.horizontalSpacer_4 = QSpacerItem(10, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum)
|
|
120
|
+
|
|
121
|
+
self.horizontalLayout_5.addItem(self.horizontalSpacer_4)
|
|
122
|
+
|
|
123
|
+
|
|
77
124
|
self.verticalLayout.addLayout(self.horizontalLayout_5)
|
|
78
|
-
|
|
79
|
-
self.horizontalLayout_2
|
|
80
|
-
self.
|
|
81
|
-
self.verticalLayout_3
|
|
82
|
-
self.
|
|
83
|
-
self.label
|
|
125
|
+
|
|
126
|
+
self.horizontalLayout_2 = QHBoxLayout()
|
|
127
|
+
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
|
|
128
|
+
self.verticalLayout_3 = QVBoxLayout()
|
|
129
|
+
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
|
|
130
|
+
self.label = QLabel(converters)
|
|
131
|
+
self.label.setObjectName(u"label")
|
|
132
|
+
|
|
84
133
|
self.verticalLayout_3.addWidget(self.label)
|
|
85
|
-
|
|
86
|
-
self.pb_code_help
|
|
134
|
+
|
|
135
|
+
self.pb_code_help = QPushButton(converters)
|
|
136
|
+
self.pb_code_help.setObjectName(u"pb_code_help")
|
|
137
|
+
|
|
87
138
|
self.verticalLayout_3.addWidget(self.pb_code_help)
|
|
88
|
-
|
|
89
|
-
self.
|
|
139
|
+
|
|
140
|
+
self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
|
141
|
+
|
|
142
|
+
self.verticalLayout_3.addItem(self.verticalSpacer_2)
|
|
143
|
+
|
|
144
|
+
|
|
90
145
|
self.horizontalLayout_2.addLayout(self.verticalLayout_3)
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
146
|
+
|
|
147
|
+
self.pteCode = QPlainTextEdit(converters)
|
|
148
|
+
self.pteCode.setObjectName(u"pteCode")
|
|
149
|
+
font = QFont()
|
|
150
|
+
font.setFamilies([u"Monospace"])
|
|
94
151
|
self.pteCode.setFont(font)
|
|
95
|
-
|
|
152
|
+
|
|
96
153
|
self.horizontalLayout_2.addWidget(self.pteCode)
|
|
97
|
-
|
|
98
|
-
self.verticalLayout_2
|
|
99
|
-
self.
|
|
100
|
-
self.pb_save_converter
|
|
154
|
+
|
|
155
|
+
self.verticalLayout_2 = QVBoxLayout()
|
|
156
|
+
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
|
|
157
|
+
self.pb_save_converter = QPushButton(converters)
|
|
158
|
+
self.pb_save_converter.setObjectName(u"pb_save_converter")
|
|
159
|
+
|
|
101
160
|
self.verticalLayout_2.addWidget(self.pb_save_converter)
|
|
102
|
-
|
|
103
|
-
self.pb_cancel_converter
|
|
161
|
+
|
|
162
|
+
self.pb_cancel_converter = QPushButton(converters)
|
|
163
|
+
self.pb_cancel_converter.setObjectName(u"pb_cancel_converter")
|
|
164
|
+
|
|
104
165
|
self.verticalLayout_2.addWidget(self.pb_cancel_converter)
|
|
105
|
-
|
|
106
|
-
self.
|
|
166
|
+
|
|
167
|
+
self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
|
168
|
+
|
|
169
|
+
self.verticalLayout_2.addItem(self.verticalSpacer)
|
|
170
|
+
|
|
171
|
+
|
|
107
172
|
self.horizontalLayout_2.addLayout(self.verticalLayout_2)
|
|
173
|
+
|
|
174
|
+
|
|
108
175
|
self.verticalLayout.addLayout(self.horizontalLayout_2)
|
|
109
|
-
|
|
110
|
-
self.horizontalLayout_4
|
|
111
|
-
|
|
112
|
-
self.
|
|
113
|
-
|
|
114
|
-
self.
|
|
176
|
+
|
|
177
|
+
self.horizontalLayout_4 = QHBoxLayout()
|
|
178
|
+
self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
|
|
179
|
+
self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
180
|
+
|
|
181
|
+
self.horizontalLayout_4.addItem(self.horizontalSpacer_2)
|
|
182
|
+
|
|
183
|
+
self.pb_cancel_widget = QPushButton(converters)
|
|
184
|
+
self.pb_cancel_widget.setObjectName(u"pb_cancel_widget")
|
|
185
|
+
|
|
115
186
|
self.horizontalLayout_4.addWidget(self.pb_cancel_widget)
|
|
116
|
-
|
|
117
|
-
self.pbOK
|
|
187
|
+
|
|
188
|
+
self.pbOK = QPushButton(converters)
|
|
189
|
+
self.pbOK.setObjectName(u"pbOK")
|
|
190
|
+
|
|
118
191
|
self.horizontalLayout_4.addWidget(self.pbOK)
|
|
192
|
+
|
|
193
|
+
|
|
119
194
|
self.verticalLayout.addLayout(self.horizontalLayout_4)
|
|
120
195
|
|
|
196
|
+
|
|
121
197
|
self.retranslateUi(converters)
|
|
122
|
-
|
|
198
|
+
|
|
199
|
+
QMetaObject.connectSlotsByName(converters)
|
|
200
|
+
# setupUi
|
|
123
201
|
|
|
124
202
|
def retranslateUi(self, converters):
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
self.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
self.
|
|
136
|
-
self.
|
|
137
|
-
self.
|
|
138
|
-
self.
|
|
139
|
-
self.
|
|
140
|
-
self.
|
|
141
|
-
self.
|
|
142
|
-
self.
|
|
143
|
-
self.
|
|
144
|
-
self.
|
|
145
|
-
self.
|
|
146
|
-
|
|
147
|
-
self.pbOK.setText(_translate("converters", "OK"))
|
|
203
|
+
converters.setWindowTitle(QCoreApplication.translate("converters", u"Time converters", None))
|
|
204
|
+
self.label_4.setText(QCoreApplication.translate("converters", u"Converters", None))
|
|
205
|
+
___qtablewidgetitem = self.tw_converters.horizontalHeaderItem(0)
|
|
206
|
+
___qtablewidgetitem.setText(QCoreApplication.translate("converters", u"Name", None));
|
|
207
|
+
___qtablewidgetitem1 = self.tw_converters.horizontalHeaderItem(1)
|
|
208
|
+
___qtablewidgetitem1.setText(QCoreApplication.translate("converters", u"Description", None));
|
|
209
|
+
___qtablewidgetitem2 = self.tw_converters.horizontalHeaderItem(2)
|
|
210
|
+
___qtablewidgetitem2.setText(QCoreApplication.translate("converters", u"Code", None));
|
|
211
|
+
self.pb_add_converter.setText(QCoreApplication.translate("converters", u"Add new converter", None))
|
|
212
|
+
self.pb_modify_converter.setText(QCoreApplication.translate("converters", u"Modify converter", None))
|
|
213
|
+
self.pb_delete_converter.setText(QCoreApplication.translate("converters", u"Delete converter", None))
|
|
214
|
+
self.pb_load_from_file.setText(QCoreApplication.translate("converters", u"Load converters from file", None))
|
|
215
|
+
self.pb_load_from_repo.setText(QCoreApplication.translate("converters", u"Load converters from BORIS repository", None))
|
|
216
|
+
self.label_2.setText(QCoreApplication.translate("converters", u"Name", None))
|
|
217
|
+
self.label_3.setText(QCoreApplication.translate("converters", u"Description", None))
|
|
218
|
+
self.label.setText(QCoreApplication.translate("converters", u"Python code", None))
|
|
219
|
+
self.pb_code_help.setText(QCoreApplication.translate("converters", u"Help", None))
|
|
220
|
+
self.pb_save_converter.setText(QCoreApplication.translate("converters", u"Save converter", None))
|
|
221
|
+
self.pb_cancel_converter.setText(QCoreApplication.translate("converters", u"Cancel", None))
|
|
222
|
+
self.pb_cancel_widget.setText(QCoreApplication.translate("converters", u"Cancel", None))
|
|
223
|
+
self.pbOK.setText(QCoreApplication.translate("converters", u"OK", None))
|
|
224
|
+
# retranslateUi
|
|
148
225
|
|