dcscope 2.22.1__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 (267) hide show
  1. dcscope/__init__.py +17 -0
  2. dcscope/__main__.py +44 -0
  3. dcscope/_version.py +21 -0
  4. dcscope/extensions.py +250 -0
  5. dcscope/gui/__init__.py +2 -0
  6. dcscope/gui/analysis/__init__.py +10 -0
  7. dcscope/gui/analysis/ana_basins.py +110 -0
  8. dcscope/gui/analysis/ana_basins.ui +143 -0
  9. dcscope/gui/analysis/ana_filter.py +341 -0
  10. dcscope/gui/analysis/ana_filter.ui +364 -0
  11. dcscope/gui/analysis/ana_log.py +122 -0
  12. dcscope/gui/analysis/ana_log.ui +100 -0
  13. dcscope/gui/analysis/ana_meta.py +207 -0
  14. dcscope/gui/analysis/ana_meta.ui +141 -0
  15. dcscope/gui/analysis/ana_plot.py +638 -0
  16. dcscope/gui/analysis/ana_plot.ui +1060 -0
  17. dcscope/gui/analysis/ana_slot.py +504 -0
  18. dcscope/gui/analysis/ana_slot.ui +684 -0
  19. dcscope/gui/analysis/ana_tables.py +227 -0
  20. dcscope/gui/analysis/ana_tables.ui +195 -0
  21. dcscope/gui/analysis/ana_view.py +69 -0
  22. dcscope/gui/analysis/ana_view.ui +269 -0
  23. dcscope/gui/analysis/dlg_slot_reorder.py +55 -0
  24. dcscope/gui/analysis/dlg_slot_reorder.ui +138 -0
  25. dcscope/gui/bulk/__init__.py +2 -0
  26. dcscope/gui/bulk/bulk_emodulus.py +200 -0
  27. dcscope/gui/bulk/bulk_emodulus.ui +245 -0
  28. dcscope/gui/compute/__init__.py +3 -0
  29. dcscope/gui/compute/comp_lme4.py +115 -0
  30. dcscope/gui/compute/comp_lme4.ui +194 -0
  31. dcscope/gui/compute/comp_lme4_dataset.py +51 -0
  32. dcscope/gui/compute/comp_lme4_dataset.ui +92 -0
  33. dcscope/gui/compute/comp_lme4_results.py +120 -0
  34. dcscope/gui/compute/comp_lme4_results.ui +268 -0
  35. dcscope/gui/compute/comp_stats.py +223 -0
  36. dcscope/gui/compute/comp_stats.ui +187 -0
  37. dcscope/gui/dcor/__init__.py +304 -0
  38. dcscope/gui/dcor/dcor.ui +118 -0
  39. dcscope/gui/export/__init__.py +3 -0
  40. dcscope/gui/export/e2data.py +394 -0
  41. dcscope/gui/export/e2data.ui +367 -0
  42. dcscope/gui/export/e2filter.py +76 -0
  43. dcscope/gui/export/e2filter.ui +111 -0
  44. dcscope/gui/export/e2plot.py +94 -0
  45. dcscope/gui/export/e2plot.ui +175 -0
  46. dcscope/gui/main.py +1089 -0
  47. dcscope/gui/main.ui +579 -0
  48. dcscope/gui/matrix/__init__.py +4 -0
  49. dcscope/gui/matrix/block_matrix.py +141 -0
  50. dcscope/gui/matrix/block_matrix.ui +207 -0
  51. dcscope/gui/matrix/data_matrix.py +574 -0
  52. dcscope/gui/matrix/dm_dataset.py +116 -0
  53. dcscope/gui/matrix/dm_dataset.ui +348 -0
  54. dcscope/gui/matrix/dm_element.py +111 -0
  55. dcscope/gui/matrix/dm_element.ui +169 -0
  56. dcscope/gui/matrix/dm_filter.py +115 -0
  57. dcscope/gui/matrix/dm_filter.ui +287 -0
  58. dcscope/gui/matrix/plot_matrix.py +316 -0
  59. dcscope/gui/matrix/pm_element.py +39 -0
  60. dcscope/gui/matrix/pm_plot.py +86 -0
  61. dcscope/gui/matrix/pm_plot.ui +249 -0
  62. dcscope/gui/pipeline_plot.py +797 -0
  63. dcscope/gui/pipeline_plot.ui +66 -0
  64. dcscope/gui/preferences.py +380 -0
  65. dcscope/gui/preferences.ui +554 -0
  66. dcscope/gui/quick_view/__init__.py +1 -0
  67. dcscope/gui/quick_view/qv_main.py +1072 -0
  68. dcscope/gui/quick_view/qv_main.ui +1297 -0
  69. dcscope/gui/quick_view/qv_scatter.py +284 -0
  70. dcscope/gui/quick_view/qv_style.css +10 -0
  71. dcscope/gui/update.py +90 -0
  72. dcscope/gui/widgets/__init__.py +15 -0
  73. dcscope/gui/widgets/bg_thread.py +29 -0
  74. dcscope/gui/widgets/bulk_list.py +79 -0
  75. dcscope/gui/widgets/bulk_list.ui +95 -0
  76. dcscope/gui/widgets/double_spin_box_nan.py +75 -0
  77. dcscope/gui/widgets/feature_combobox.py +140 -0
  78. dcscope/gui/widgets/get_path.py +42 -0
  79. dcscope/gui/widgets/key_value_table_widget.css +12 -0
  80. dcscope/gui/widgets/key_value_table_widget.py +75 -0
  81. dcscope/gui/widgets/mdi_subwindow_wo_close.py +12 -0
  82. dcscope/gui/widgets/qrangeslider.py +262 -0
  83. dcscope/gui/widgets/rangecontrol.py +308 -0
  84. dcscope/gui/widgets/rangecontrol.ui +136 -0
  85. dcscope/gui/widgets/simple_image_view.py +55 -0
  86. dcscope/gui/widgets/simple_plot_widget.py +113 -0
  87. dcscope/gui/widgets/so_colorbaritem.py +29 -0
  88. dcscope/gui/widgets/wait_cursor.py +33 -0
  89. dcscope/idiom.py +26 -0
  90. dcscope/img/__init__.py +2 -0
  91. dcscope/img/icon-theme/breeze/COPYING-ICONS +209 -0
  92. dcscope/img/icon-theme/breeze/COPYING.LIB +510 -0
  93. dcscope/img/icon-theme/breeze/README +5 -0
  94. dcscope/img/icon-theme/breeze/actions/16/application-exit.svg +17 -0
  95. dcscope/img/icon-theme/breeze/actions/16/code-context.svg +13 -0
  96. dcscope/img/icon-theme/breeze/actions/16/dialog-cancel.svg +13 -0
  97. dcscope/img/icon-theme/breeze/actions/16/dialog-close.svg +17 -0
  98. dcscope/img/icon-theme/breeze/actions/16/dialog-messages.svg +13 -0
  99. dcscope/img/icon-theme/breeze/actions/16/dialog-ok-apply.svg +13 -0
  100. dcscope/img/icon-theme/breeze/actions/16/dialog-ok.svg +13 -0
  101. dcscope/img/icon-theme/breeze/actions/16/document-open-folder.svg +13 -0
  102. dcscope/img/icon-theme/breeze/actions/16/document-open.svg +13 -0
  103. dcscope/img/icon-theme/breeze/actions/16/document-save.svg +13 -0
  104. dcscope/img/icon-theme/breeze/actions/16/documentinfo.svg +12 -0
  105. dcscope/img/icon-theme/breeze/actions/16/draw-watercolor.svg +13 -0
  106. dcscope/img/icon-theme/breeze/actions/16/edit-clear-all.svg +13 -0
  107. dcscope/img/icon-theme/breeze/actions/16/edit-clear.svg +13 -0
  108. dcscope/img/icon-theme/breeze/actions/16/edit-paste.svg +13 -0
  109. dcscope/img/icon-theme/breeze/actions/16/globe.svg +16 -0
  110. dcscope/img/icon-theme/breeze/actions/16/gtk-preferences.svg +13 -0
  111. dcscope/img/icon-theme/breeze/actions/16/list-add.svg +13 -0
  112. dcscope/img/icon-theme/breeze/actions/16/messagebox_warning.svg +20 -0
  113. dcscope/img/icon-theme/breeze/actions/16/object-columns.svg +13 -0
  114. dcscope/img/icon-theme/breeze/actions/16/object-order-lower.svg +13 -0
  115. dcscope/img/icon-theme/breeze/actions/16/object-rows.svg +13 -0
  116. dcscope/img/icon-theme/breeze/actions/16/office-chart-line-stacked.svg +13 -0
  117. dcscope/img/icon-theme/breeze/actions/16/office-chart-ring.svg +13 -0
  118. dcscope/img/icon-theme/breeze/actions/16/office-chart-scatter.svg +13 -0
  119. dcscope/img/icon-theme/breeze/actions/16/path-mode-polyline.svg +13 -0
  120. dcscope/img/icon-theme/breeze/actions/16/preferences-activities.svg +13 -0
  121. dcscope/img/icon-theme/breeze/actions/16/remove.svg +10 -0
  122. dcscope/img/icon-theme/breeze/actions/16/search.svg +13 -0
  123. dcscope/img/icon-theme/breeze/actions/16/show-grid.svg +13 -0
  124. dcscope/img/icon-theme/breeze/actions/16/special_paste.svg +13 -0
  125. dcscope/img/icon-theme/breeze/actions/16/tools-wizard.svg +13 -0
  126. dcscope/img/icon-theme/breeze/actions/16/view-calendar-list.svg +13 -0
  127. dcscope/img/icon-theme/breeze/actions/16/view-filter.svg +13 -0
  128. dcscope/img/icon-theme/breeze/actions/16/view-list-tree.svg +13 -0
  129. dcscope/img/icon-theme/breeze/actions/16/view-statistics.svg +13 -0
  130. dcscope/img/icon-theme/breeze/actions/16/visibility.svg +21 -0
  131. dcscope/img/icon-theme/breeze/actions/22/application-exit.svg +13 -0
  132. dcscope/img/icon-theme/breeze/actions/22/code-context.svg +14 -0
  133. dcscope/img/icon-theme/breeze/actions/22/dialog-cancel.svg +14 -0
  134. dcscope/img/icon-theme/breeze/actions/22/dialog-close.svg +10 -0
  135. dcscope/img/icon-theme/breeze/actions/22/dialog-messages.svg +14 -0
  136. dcscope/img/icon-theme/breeze/actions/22/dialog-ok-apply.svg +14 -0
  137. dcscope/img/icon-theme/breeze/actions/22/dialog-ok.svg +14 -0
  138. dcscope/img/icon-theme/breeze/actions/22/document-open-folder.svg +14 -0
  139. dcscope/img/icon-theme/breeze/actions/22/document-open.svg +14 -0
  140. dcscope/img/icon-theme/breeze/actions/22/document-save.svg +14 -0
  141. dcscope/img/icon-theme/breeze/actions/22/documentinfo.svg +14 -0
  142. dcscope/img/icon-theme/breeze/actions/22/draw-watercolor.svg +14 -0
  143. dcscope/img/icon-theme/breeze/actions/22/edit-clear-all.svg +14 -0
  144. dcscope/img/icon-theme/breeze/actions/22/edit-clear.svg +14 -0
  145. dcscope/img/icon-theme/breeze/actions/22/edit-paste.svg +14 -0
  146. dcscope/img/icon-theme/breeze/actions/22/globe.svg +12 -0
  147. dcscope/img/icon-theme/breeze/actions/22/gtk-preferences.svg +13 -0
  148. dcscope/img/icon-theme/breeze/actions/22/list-add.svg +14 -0
  149. dcscope/img/icon-theme/breeze/actions/22/messagebox_warning.svg +17 -0
  150. dcscope/img/icon-theme/breeze/actions/22/object-columns.svg +14 -0
  151. dcscope/img/icon-theme/breeze/actions/22/object-order-lower.svg +17 -0
  152. dcscope/img/icon-theme/breeze/actions/22/object-rows.svg +17 -0
  153. dcscope/img/icon-theme/breeze/actions/22/office-chart-line-stacked.svg +17 -0
  154. dcscope/img/icon-theme/breeze/actions/22/office-chart-ring.svg +17 -0
  155. dcscope/img/icon-theme/breeze/actions/22/office-chart-scatter.svg +17 -0
  156. dcscope/img/icon-theme/breeze/actions/22/path-mode-polyline.svg +17 -0
  157. dcscope/img/icon-theme/breeze/actions/22/preferences-activities.svg +14 -0
  158. dcscope/img/icon-theme/breeze/actions/22/remove.svg +10 -0
  159. dcscope/img/icon-theme/breeze/actions/22/special_paste.svg +14 -0
  160. dcscope/img/icon-theme/breeze/actions/22/tools-wizard.svg +14 -0
  161. dcscope/img/icon-theme/breeze/actions/22/view-calendar-list.svg +14 -0
  162. dcscope/img/icon-theme/breeze/actions/22/view-filter.svg +14 -0
  163. dcscope/img/icon-theme/breeze/actions/22/view-list-tree.svg +14 -0
  164. dcscope/img/icon-theme/breeze/actions/22/view-statistics.svg +14 -0
  165. dcscope/img/icon-theme/breeze/actions/22/visibility.svg +14 -0
  166. dcscope/img/icon-theme/breeze/actions/24/application-exit.svg +12 -0
  167. dcscope/img/icon-theme/breeze/actions/24/code-context.svg +12 -0
  168. dcscope/img/icon-theme/breeze/actions/24/dialog-cancel.svg +12 -0
  169. dcscope/img/icon-theme/breeze/actions/24/dialog-close.svg +10 -0
  170. dcscope/img/icon-theme/breeze/actions/24/dialog-messages.svg +12 -0
  171. dcscope/img/icon-theme/breeze/actions/24/dialog-ok-apply.svg +12 -0
  172. dcscope/img/icon-theme/breeze/actions/24/dialog-ok.svg +14 -0
  173. dcscope/img/icon-theme/breeze/actions/24/document-open-folder.svg +12 -0
  174. dcscope/img/icon-theme/breeze/actions/24/document-open.svg +12 -0
  175. dcscope/img/icon-theme/breeze/actions/24/document-save.svg +12 -0
  176. dcscope/img/icon-theme/breeze/actions/24/documentinfo.svg +14 -0
  177. dcscope/img/icon-theme/breeze/actions/24/draw-watercolor.svg +12 -0
  178. dcscope/img/icon-theme/breeze/actions/24/edit-clear-all.svg +14 -0
  179. dcscope/img/icon-theme/breeze/actions/24/edit-clear.svg +12 -0
  180. dcscope/img/icon-theme/breeze/actions/24/edit-paste.svg +12 -0
  181. dcscope/img/icon-theme/breeze/actions/24/globe.svg +14 -0
  182. dcscope/img/icon-theme/breeze/actions/24/gtk-preferences.svg +13 -0
  183. dcscope/img/icon-theme/breeze/actions/24/list-add.svg +12 -0
  184. dcscope/img/icon-theme/breeze/actions/24/messagebox_warning.svg +13 -0
  185. dcscope/img/icon-theme/breeze/actions/24/object-columns.svg +12 -0
  186. dcscope/img/icon-theme/breeze/actions/24/object-order-lower.svg +15 -0
  187. dcscope/img/icon-theme/breeze/actions/24/object-rows.svg +15 -0
  188. dcscope/img/icon-theme/breeze/actions/24/office-chart-line-stacked.svg +15 -0
  189. dcscope/img/icon-theme/breeze/actions/24/office-chart-ring.svg +15 -0
  190. dcscope/img/icon-theme/breeze/actions/24/office-chart-scatter.svg +15 -0
  191. dcscope/img/icon-theme/breeze/actions/24/path-mode-polyline.svg +15 -0
  192. dcscope/img/icon-theme/breeze/actions/24/preferences-activities.svg +13 -0
  193. dcscope/img/icon-theme/breeze/actions/24/remove.svg +10 -0
  194. dcscope/img/icon-theme/breeze/actions/24/special_paste.svg +12 -0
  195. dcscope/img/icon-theme/breeze/actions/24/tools-wizard.svg +12 -0
  196. dcscope/img/icon-theme/breeze/actions/24/view-calendar-list.svg +12 -0
  197. dcscope/img/icon-theme/breeze/actions/24/view-filter.svg +12 -0
  198. dcscope/img/icon-theme/breeze/actions/24/view-list-tree.svg +12 -0
  199. dcscope/img/icon-theme/breeze/actions/24/view-statistics.svg +12 -0
  200. dcscope/img/icon-theme/breeze/actions/24/visibility.svg +14 -0
  201. dcscope/img/icon-theme/breeze/actions/32/application-exit.svg +8 -0
  202. dcscope/img/icon-theme/breeze/actions/32/dialog-cancel.svg +13 -0
  203. dcscope/img/icon-theme/breeze/actions/32/dialog-messages.svg +13 -0
  204. dcscope/img/icon-theme/breeze/actions/32/dialog-ok-apply.svg +1 -0
  205. dcscope/img/icon-theme/breeze/actions/32/dialog-ok.svg +1 -0
  206. dcscope/img/icon-theme/breeze/actions/32/document-open-folder.svg +13 -0
  207. dcscope/img/icon-theme/breeze/actions/32/document-open.svg +13 -0
  208. dcscope/img/icon-theme/breeze/actions/32/document-save.svg +18 -0
  209. dcscope/img/icon-theme/breeze/actions/32/gtk-preferences.svg +17 -0
  210. dcscope/img/icon-theme/breeze/actions/32/object-order-lower.svg +18 -0
  211. dcscope/img/icon-theme/breeze/actions/32/view-filter.svg +18 -0
  212. dcscope/img/icon-theme/breeze/actions/32/view-list-tree.svg +18 -0
  213. dcscope/img/icon-theme/breeze/places/16/folder-cloud.svg +13 -0
  214. dcscope/img/icon-theme/breeze/places/16/folder.svg +13 -0
  215. dcscope/img/icon-theme/breeze/places/22/folder-cloud.svg +13 -0
  216. dcscope/img/icon-theme/breeze/places/22/folder.svg +13 -0
  217. dcscope/img/icon-theme/breeze/places/24/folder-cloud.svg +12 -0
  218. dcscope/img/icon-theme/breeze/places/24/folder.svg +12 -0
  219. dcscope/img/icon-theme/breeze/places/32/folder-cloud.svg +35 -0
  220. dcscope/img/icon-theme/breeze/places/32/folder.svg +30 -0
  221. dcscope/img/icon-theme/breeze/places/64/folder-cloud.svg +35 -0
  222. dcscope/img/icon-theme/breeze/places/64/folder.svg +30 -0
  223. dcscope/img/icon-theme/breeze/status/16/dialog-error.svg +9 -0
  224. dcscope/img/icon-theme/breeze/status/16/dialog-information.svg +9 -0
  225. dcscope/img/icon-theme/breeze/status/16/dialog-question.svg +7 -0
  226. dcscope/img/icon-theme/breeze/status/16/dialog-warning.svg +9 -0
  227. dcscope/img/icon-theme/breeze/status/22/dialog-error.svg +9 -0
  228. dcscope/img/icon-theme/breeze/status/22/dialog-information.svg +9 -0
  229. dcscope/img/icon-theme/breeze/status/22/dialog-question.svg +7 -0
  230. dcscope/img/icon-theme/breeze/status/22/dialog-warning.svg +9 -0
  231. dcscope/img/icon-theme/breeze/status/24/dialog-error.svg +13 -0
  232. dcscope/img/icon-theme/breeze/status/24/dialog-information.svg +13 -0
  233. dcscope/img/icon-theme/breeze/status/24/dialog-question.svg +9 -0
  234. dcscope/img/icon-theme/breeze/status/24/dialog-warning.svg +1 -0
  235. dcscope/img/icon-theme/breeze/status/64/dialog-error.svg +25 -0
  236. dcscope/img/icon-theme/breeze/status/64/dialog-information.svg +25 -0
  237. dcscope/img/icon-theme/breeze/status/64/dialog-question.svg +25 -0
  238. dcscope/img/icon-theme/breeze/status/64/dialog-warning.svg +25 -0
  239. dcscope/img/icon-theme/collect_icons.py +124 -0
  240. dcscope/img/icon-theme/dcscope/dcor.png +0 -0
  241. dcscope/img/icon-theme/dcscope/edit-copy-anew.svg +13 -0
  242. dcscope/img/icon-theme/dcscope/emodulus.svg +69 -0
  243. dcscope/img/icon-theme/dcscope/filter_ray.svg +54 -0
  244. dcscope/img/icon-theme/dcscope/region_channel.svg +86 -0
  245. dcscope/img/icon-theme/dcscope/region_reservoir.svg +89 -0
  246. dcscope/img/icon-theme/dcscope/rlang.svg +108 -0
  247. dcscope/img/icon-theme/dcscope/statistical_significance.svg +106 -0
  248. dcscope/img/icon-theme/index.theme +81 -0
  249. dcscope/img/icon.png +0 -0
  250. dcscope/img/icon.svg +73 -0
  251. dcscope/img/splash.png +0 -0
  252. dcscope/meta_tool.py +143 -0
  253. dcscope/pipeline/__init__.py +5 -0
  254. dcscope/pipeline/core.py +632 -0
  255. dcscope/pipeline/dataslot.py +270 -0
  256. dcscope/pipeline/filter.py +161 -0
  257. dcscope/pipeline/filter_ray.py +170 -0
  258. dcscope/pipeline/plot.py +187 -0
  259. dcscope/plot_cache.py +79 -0
  260. dcscope/session.py +379 -0
  261. dcscope/util.py +34 -0
  262. dcscope-2.22.1.dist-info/METADATA +95 -0
  263. dcscope-2.22.1.dist-info/RECORD +267 -0
  264. dcscope-2.22.1.dist-info/WHEEL +5 -0
  265. dcscope-2.22.1.dist-info/entry_points.txt +2 -0
  266. dcscope-2.22.1.dist-info/licenses/LICENSE +621 -0
  267. dcscope-2.22.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,348 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ui version="4.0">
3
+ <class>Form</class>
4
+ <widget class="QWidget" name="Form">
5
+ <property name="enabled">
6
+ <bool>true</bool>
7
+ </property>
8
+ <property name="geometry">
9
+ <rect>
10
+ <x>0</x>
11
+ <y>0</y>
12
+ <width>94</width>
13
+ <height>111</height>
14
+ </rect>
15
+ </property>
16
+ <property name="sizePolicy">
17
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
18
+ <horstretch>0</horstretch>
19
+ <verstretch>0</verstretch>
20
+ </sizepolicy>
21
+ </property>
22
+ <property name="windowTitle">
23
+ <string>Form</string>
24
+ </property>
25
+ <property name="autoFillBackground">
26
+ <bool>false</bool>
27
+ </property>
28
+ <property name="styleSheet">
29
+ <string notr="true">background-color:#C3C9FF; color:black</string>
30
+ </property>
31
+ <layout class="QVBoxLayout" name="verticalLayout">
32
+ <property name="spacing">
33
+ <number>0</number>
34
+ </property>
35
+ <property name="leftMargin">
36
+ <number>0</number>
37
+ </property>
38
+ <property name="topMargin">
39
+ <number>0</number>
40
+ </property>
41
+ <property name="rightMargin">
42
+ <number>0</number>
43
+ </property>
44
+ <property name="bottomMargin">
45
+ <number>0</number>
46
+ </property>
47
+ <item>
48
+ <widget class="QWidget" name="widget" native="true">
49
+ <property name="minimumSize">
50
+ <size>
51
+ <width>0</width>
52
+ <height>0</height>
53
+ </size>
54
+ </property>
55
+ <property name="layoutDirection">
56
+ <enum>Qt::LeftToRight</enum>
57
+ </property>
58
+ <layout class="QVBoxLayout" name="verticalLayout_2">
59
+ <property name="spacing">
60
+ <number>2</number>
61
+ </property>
62
+ <property name="leftMargin">
63
+ <number>2</number>
64
+ </property>
65
+ <property name="topMargin">
66
+ <number>2</number>
67
+ </property>
68
+ <property name="rightMargin">
69
+ <number>2</number>
70
+ </property>
71
+ <property name="bottomMargin">
72
+ <number>2</number>
73
+ </property>
74
+ <item>
75
+ <widget class="QLabel" name="label">
76
+ <property name="font">
77
+ <font>
78
+ <pointsize>9</pointsize>
79
+ </font>
80
+ </property>
81
+ <property name="text">
82
+ <string>Name</string>
83
+ </property>
84
+ <property name="alignment">
85
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
86
+ </property>
87
+ </widget>
88
+ </item>
89
+ <item>
90
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
91
+ <property name="spacing">
92
+ <number>0</number>
93
+ </property>
94
+ <property name="leftMargin">
95
+ <number>0</number>
96
+ </property>
97
+ <property name="topMargin">
98
+ <number>0</number>
99
+ </property>
100
+ <property name="rightMargin">
101
+ <number>0</number>
102
+ </property>
103
+ <property name="bottomMargin">
104
+ <number>0</number>
105
+ </property>
106
+ <item>
107
+ <widget class="QLabel" name="label_region">
108
+ <property name="sizePolicy">
109
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
110
+ <horstretch>0</horstretch>
111
+ <verstretch>0</verstretch>
112
+ </sizepolicy>
113
+ </property>
114
+ <property name="font">
115
+ <font>
116
+ <pointsize>9</pointsize>
117
+ </font>
118
+ </property>
119
+ <property name="text">
120
+ <string>pxm</string>
121
+ </property>
122
+ <property name="alignment">
123
+ <set>Qt::AlignCenter</set>
124
+ </property>
125
+ </widget>
126
+ </item>
127
+ <item>
128
+ <widget class="QLabel" name="label_flowrate">
129
+ <property name="sizePolicy">
130
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
131
+ <horstretch>0</horstretch>
132
+ <verstretch>0</verstretch>
133
+ </sizepolicy>
134
+ </property>
135
+ <property name="font">
136
+ <font>
137
+ <pointsize>9</pointsize>
138
+ </font>
139
+ </property>
140
+ <property name="text">
141
+ <string>0.123</string>
142
+ </property>
143
+ <property name="textFormat">
144
+ <enum>Qt::AutoText</enum>
145
+ </property>
146
+ <property name="alignment">
147
+ <set>Qt::AlignCenter</set>
148
+ </property>
149
+ </widget>
150
+ </item>
151
+ </layout>
152
+ </item>
153
+ <item>
154
+ <widget class="Line" name="line">
155
+ <property name="styleSheet">
156
+ <string notr="true">color: #B7B7B7</string>
157
+ </property>
158
+ <property name="frameShadow">
159
+ <enum>QFrame::Plain</enum>
160
+ </property>
161
+ <property name="lineWidth">
162
+ <number>1</number>
163
+ </property>
164
+ <property name="orientation">
165
+ <enum>Qt::Horizontal</enum>
166
+ </property>
167
+ </widget>
168
+ </item>
169
+ <item>
170
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
171
+ <property name="leftMargin">
172
+ <number>0</number>
173
+ </property>
174
+ <property name="topMargin">
175
+ <number>0</number>
176
+ </property>
177
+ <property name="rightMargin">
178
+ <number>0</number>
179
+ </property>
180
+ <property name="bottomMargin">
181
+ <number>0</number>
182
+ </property>
183
+ <item>
184
+ <widget class="QToolButton" name="toolButton_modify">
185
+ <property name="sizePolicy">
186
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
187
+ <horstretch>0</horstretch>
188
+ <verstretch>0</verstretch>
189
+ </sizepolicy>
190
+ </property>
191
+ <property name="font">
192
+ <font>
193
+ <pointsize>9</pointsize>
194
+ </font>
195
+ </property>
196
+ <property name="toolTip">
197
+ <string>Modify this dataset in Analysis View</string>
198
+ </property>
199
+ <property name="text">
200
+ <string>edit</string>
201
+ </property>
202
+ <property name="icon">
203
+ <iconset theme="tools-wizard">
204
+ <normaloff>.</normaloff>.</iconset>
205
+ </property>
206
+ <property name="toolButtonStyle">
207
+ <enum>Qt::ToolButtonTextBesideIcon</enum>
208
+ </property>
209
+ <property name="autoRaise">
210
+ <bool>true</bool>
211
+ </property>
212
+ </widget>
213
+ </item>
214
+ </layout>
215
+ </item>
216
+ <item>
217
+ <layout class="QHBoxLayout" name="horizontalLayout">
218
+ <property name="spacing">
219
+ <number>0</number>
220
+ </property>
221
+ <property name="sizeConstraint">
222
+ <enum>QLayout::SetDefaultConstraint</enum>
223
+ </property>
224
+ <property name="leftMargin">
225
+ <number>0</number>
226
+ </property>
227
+ <property name="topMargin">
228
+ <number>0</number>
229
+ </property>
230
+ <property name="rightMargin">
231
+ <number>0</number>
232
+ </property>
233
+ <item>
234
+ <widget class="QCheckBox" name="checkBox">
235
+ <property name="sizePolicy">
236
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
237
+ <horstretch>0</horstretch>
238
+ <verstretch>0</verstretch>
239
+ </sizepolicy>
240
+ </property>
241
+ <property name="toolTip">
242
+ <string>Use this dataset</string>
243
+ </property>
244
+ <property name="layoutDirection">
245
+ <enum>Qt::LeftToRight</enum>
246
+ </property>
247
+ <property name="text">
248
+ <string/>
249
+ </property>
250
+ <property name="checked">
251
+ <bool>true</bool>
252
+ </property>
253
+ <property name="tristate">
254
+ <bool>false</bool>
255
+ </property>
256
+ </widget>
257
+ </item>
258
+ <item>
259
+ <spacer name="horizontalSpacer">
260
+ <property name="orientation">
261
+ <enum>Qt::Horizontal</enum>
262
+ </property>
263
+ <property name="sizeHint" stdset="0">
264
+ <size>
265
+ <width>0</width>
266
+ <height>20</height>
267
+ </size>
268
+ </property>
269
+ </spacer>
270
+ </item>
271
+ <item>
272
+ <widget class="QToolButton" name="toolButton_toggle">
273
+ <property name="sizePolicy">
274
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
275
+ <horstretch>0</horstretch>
276
+ <verstretch>0</verstretch>
277
+ </sizepolicy>
278
+ </property>
279
+ <property name="toolTip">
280
+ <string>Enable/Disable all filters and plots for this dataset</string>
281
+ </property>
282
+ <property name="text">
283
+ <string>r</string>
284
+ </property>
285
+ <property name="icon">
286
+ <iconset theme="object-rows">
287
+ <normaloff>.</normaloff>.</iconset>
288
+ </property>
289
+ <property name="autoRaise">
290
+ <bool>true</bool>
291
+ </property>
292
+ </widget>
293
+ </item>
294
+ <item>
295
+ <spacer name="horizontalSpacer_2">
296
+ <property name="orientation">
297
+ <enum>Qt::Horizontal</enum>
298
+ </property>
299
+ <property name="sizeHint" stdset="0">
300
+ <size>
301
+ <width>0</width>
302
+ <height>20</height>
303
+ </size>
304
+ </property>
305
+ </spacer>
306
+ </item>
307
+ <item>
308
+ <widget class="QToolButton" name="toolButton_opt">
309
+ <property name="sizePolicy">
310
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
311
+ <horstretch>0</horstretch>
312
+ <verstretch>0</verstretch>
313
+ </sizepolicy>
314
+ </property>
315
+ <property name="toolTip">
316
+ <string>Dataset options</string>
317
+ </property>
318
+ <property name="text">
319
+ <string>...</string>
320
+ </property>
321
+ <property name="icon">
322
+ <iconset theme="preferences-activities">
323
+ <normaloff>.</normaloff>.</iconset>
324
+ </property>
325
+ <property name="popupMode">
326
+ <enum>QToolButton::InstantPopup</enum>
327
+ </property>
328
+ <property name="toolButtonStyle">
329
+ <enum>Qt::ToolButtonIconOnly</enum>
330
+ </property>
331
+ <property name="autoRaise">
332
+ <bool>true</bool>
333
+ </property>
334
+ <property name="arrowType">
335
+ <enum>Qt::NoArrow</enum>
336
+ </property>
337
+ </widget>
338
+ </item>
339
+ </layout>
340
+ </item>
341
+ </layout>
342
+ </widget>
343
+ </item>
344
+ </layout>
345
+ </widget>
346
+ <resources/>
347
+ <connections/>
348
+ </ui>
@@ -0,0 +1,111 @@
1
+ import importlib.resources
2
+
3
+ from PyQt6 import uic, QtWidgets, QtCore
4
+
5
+
6
+ class MatrixElement(QtWidgets.QWidget):
7
+ _quick_view_instance = None
8
+ quickview_selected = QtCore.pyqtSignal()
9
+ element_changed = QtCore.pyqtSignal()
10
+
11
+ def __init__(self, *args, **kwargs):
12
+ super(MatrixElement, self).__init__(*args, **kwargs)
13
+ ref = importlib.resources.files(
14
+ "dcscope.gui.matrix") / "dm_element.ui"
15
+ with importlib.resources.as_file(ref) as path_ui:
16
+ uic.loadUi(path_ui, self)
17
+
18
+ self.active = False
19
+ self.enabled = True
20
+ self.invalid = False
21
+
22
+ self.update_content()
23
+
24
+ def read_pipeline_state(self):
25
+ state = {"active": self.active and not self.invalid,
26
+ "enabled": self.enabled,
27
+ "invalid": self.invalid}
28
+ return state
29
+
30
+ def write_pipeline_state(self, state):
31
+ self.active = state["active"] and not state["invalid"]
32
+ self.enabled = state["enabled"]
33
+ self.invalid = state["invalid"]
34
+ self.update_content()
35
+
36
+ def has_quickview(self):
37
+ curinst = MatrixElement._quick_view_instance
38
+ if curinst is self:
39
+ quickview = True
40
+ else:
41
+ quickview = False
42
+ return quickview
43
+
44
+ def mousePressEvent(self, event):
45
+ # toggle selection
46
+ if not self.invalid:
47
+ if event.modifiers() == QtCore.Qt.KeyboardModifier.ShiftModifier:
48
+ quickview = not self.has_quickview()
49
+ else:
50
+ self.active = not self.active
51
+ quickview = False
52
+ self.element_changed.emit()
53
+ self.update_content(quickview)
54
+ event.accept()
55
+
56
+ def set_active(self, b=True):
57
+ state = self.read_pipeline_state()
58
+ state["active"] = b
59
+ self.write_pipeline_state(state)
60
+
61
+ def update_content(self, quickview=False):
62
+ if self.invalid:
63
+ color = "#DCDCDC" # gray
64
+ label = "invalid"
65
+ tooltip = "Incompatible filter settings"
66
+ elif self.active and self.enabled:
67
+ color = "#86E789" # green
68
+ label = "active"
69
+ tooltip = "Click to deactivate"
70
+ elif self.active and not self.enabled:
71
+ color = "#C9DAC9" # gray-green
72
+ label = "active\n(unused)"
73
+ tooltip = "Click to deactivate"
74
+ elif not self.active and self.enabled:
75
+ color = "#EFEFEF" # light gray
76
+ label = "inactive"
77
+ tooltip = "Click to activate"
78
+ else:
79
+ color = "#DCDCDC" # gray
80
+ label = "inactive\n(unused)"
81
+ tooltip = "Click to activate"
82
+
83
+ if not self.invalid:
84
+ if self.has_quickview():
85
+ do_quickview = True
86
+ elif quickview:
87
+ curinst = MatrixElement._quick_view_instance
88
+ # reset color of old quick view instance
89
+ if curinst is not None and self is not curinst:
90
+ MatrixElement._quick_view_instance = None
91
+ try:
92
+ curinst.update_content()
93
+ except RuntimeError:
94
+ # element has been deleted
95
+ pass
96
+ MatrixElement._quick_view_instance = self
97
+ do_quickview = True
98
+ else:
99
+ do_quickview = False
100
+ if do_quickview:
101
+ color = "#F0A1D6"
102
+ label += "\n(QV)"
103
+ self.quickview_selected.emit()
104
+ else:
105
+ tooltip += "\nShift+Click for Quick View"
106
+
107
+ self.label.setText(label)
108
+ self.setToolTip(tooltip)
109
+ self.label.setToolTip(tooltip)
110
+ self.setStyleSheet(
111
+ "background-color:{};color:black".format(color))
@@ -0,0 +1,169 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ui version="4.0">
3
+ <class>Form</class>
4
+ <widget class="QWidget" name="Form">
5
+ <property name="enabled">
6
+ <bool>true</bool>
7
+ </property>
8
+ <property name="geometry">
9
+ <rect>
10
+ <x>0</x>
11
+ <y>0</y>
12
+ <width>94</width>
13
+ <height>105</height>
14
+ </rect>
15
+ </property>
16
+ <property name="sizePolicy">
17
+ <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
18
+ <horstretch>0</horstretch>
19
+ <verstretch>0</verstretch>
20
+ </sizepolicy>
21
+ </property>
22
+ <property name="minimumSize">
23
+ <size>
24
+ <width>0</width>
25
+ <height>0</height>
26
+ </size>
27
+ </property>
28
+ <property name="maximumSize">
29
+ <size>
30
+ <width>1000</width>
31
+ <height>1000</height>
32
+ </size>
33
+ </property>
34
+ <property name="font">
35
+ <font>
36
+ <pointsize>9</pointsize>
37
+ </font>
38
+ </property>
39
+ <property name="windowTitle">
40
+ <string>Form</string>
41
+ </property>
42
+ <property name="autoFillBackground">
43
+ <bool>false</bool>
44
+ </property>
45
+ <property name="styleSheet">
46
+ <string notr="true">background-color:#EFEFEF; color:black</string>
47
+ </property>
48
+ <layout class="QVBoxLayout" name="verticalLayout">
49
+ <property name="spacing">
50
+ <number>0</number>
51
+ </property>
52
+ <property name="sizeConstraint">
53
+ <enum>QLayout::SetDefaultConstraint</enum>
54
+ </property>
55
+ <property name="leftMargin">
56
+ <number>0</number>
57
+ </property>
58
+ <property name="topMargin">
59
+ <number>0</number>
60
+ </property>
61
+ <property name="rightMargin">
62
+ <number>0</number>
63
+ </property>
64
+ <property name="bottomMargin">
65
+ <number>0</number>
66
+ </property>
67
+ <item>
68
+ <widget class="QWidget" name="widget" native="true">
69
+ <property name="sizePolicy">
70
+ <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
71
+ <horstretch>0</horstretch>
72
+ <verstretch>0</verstretch>
73
+ </sizepolicy>
74
+ </property>
75
+ <property name="minimumSize">
76
+ <size>
77
+ <width>0</width>
78
+ <height>0</height>
79
+ </size>
80
+ </property>
81
+ <property name="maximumSize">
82
+ <size>
83
+ <width>1000</width>
84
+ <height>1000</height>
85
+ </size>
86
+ </property>
87
+ <property name="toolTip">
88
+ <string/>
89
+ </property>
90
+ <property name="layoutDirection">
91
+ <enum>Qt::LeftToRight</enum>
92
+ </property>
93
+ <layout class="QVBoxLayout" name="verticalLayout_2">
94
+ <property name="spacing">
95
+ <number>0</number>
96
+ </property>
97
+ <property name="sizeConstraint">
98
+ <enum>QLayout::SetDefaultConstraint</enum>
99
+ </property>
100
+ <property name="leftMargin">
101
+ <number>0</number>
102
+ </property>
103
+ <property name="topMargin">
104
+ <number>0</number>
105
+ </property>
106
+ <property name="rightMargin">
107
+ <number>0</number>
108
+ </property>
109
+ <property name="bottomMargin">
110
+ <number>0</number>
111
+ </property>
112
+ <item>
113
+ <spacer name="verticalSpacer">
114
+ <property name="orientation">
115
+ <enum>Qt::Vertical</enum>
116
+ </property>
117
+ <property name="sizeHint" stdset="0">
118
+ <size>
119
+ <width>20</width>
120
+ <height>0</height>
121
+ </size>
122
+ </property>
123
+ </spacer>
124
+ </item>
125
+ <item alignment="Qt::AlignHCenter|Qt::AlignVCenter">
126
+ <widget class="QLabel" name="label">
127
+ <property name="sizePolicy">
128
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
129
+ <horstretch>0</horstretch>
130
+ <verstretch>0</verstretch>
131
+ </sizepolicy>
132
+ </property>
133
+ <property name="font">
134
+ <font>
135
+ <pointsize>9</pointsize>
136
+ </font>
137
+ </property>
138
+ <property name="toolTip">
139
+ <string/>
140
+ </property>
141
+ <property name="text">
142
+ <string>inactive</string>
143
+ </property>
144
+ <property name="alignment">
145
+ <set>Qt::AlignCenter</set>
146
+ </property>
147
+ </widget>
148
+ </item>
149
+ <item>
150
+ <spacer name="verticalSpacer_2">
151
+ <property name="orientation">
152
+ <enum>Qt::Vertical</enum>
153
+ </property>
154
+ <property name="sizeHint" stdset="0">
155
+ <size>
156
+ <width>20</width>
157
+ <height>0</height>
158
+ </size>
159
+ </property>
160
+ </spacer>
161
+ </item>
162
+ </layout>
163
+ </widget>
164
+ </item>
165
+ </layout>
166
+ </widget>
167
+ <resources/>
168
+ <connections/>
169
+ </ui>