driftlessmap 1.1.0__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 (210) hide show
  1. driftlessmap/__init__.py +16 -0
  2. driftlessmap/__main__.py +5 -0
  3. driftlessmap/about.py +24 -0
  4. driftlessmap/allen_downloader.py +908 -0
  5. driftlessmap/app.py +8085 -0
  6. driftlessmap/atlas_downloader.py +370 -0
  7. driftlessmap/atlas_loader.py +526 -0
  8. driftlessmap/atlas_processor.py +784 -0
  9. driftlessmap/atlas_transform.py +111 -0
  10. driftlessmap/atlas_view.py +1435 -0
  11. driftlessmap/cell_detection.py +27 -0
  12. driftlessmap/coordinate_validation.py +19 -0
  13. driftlessmap/czi_reader.py +236 -0
  14. driftlessmap/data/WHS_atlas_labels.pkl +0 -0
  15. driftlessmap/data/allen_mice_atlas_labels.pkl +0 -0
  16. driftlessmap/data/atlas_labels.pkl +0 -0
  17. driftlessmap/data/query.csv +1328 -0
  18. driftlessmap/download_utils.py +85 -0
  19. driftlessmap/herbs.png +0 -0
  20. driftlessmap/icons/backward.svg +15 -0
  21. driftlessmap/icons/dot.svg +11 -0
  22. driftlessmap/icons/down-arrow.svg +10 -0
  23. driftlessmap/icons/fast_backward.svg +14 -0
  24. driftlessmap/icons/fast_forward.svg +14 -0
  25. driftlessmap/icons/forward.svg +14 -0
  26. driftlessmap/icons/layers/add.png +0 -0
  27. driftlessmap/icons/layers/ai.png +0 -0
  28. driftlessmap/icons/layers/eye_off.png +0 -0
  29. driftlessmap/icons/layers/eye_on.png +0 -0
  30. driftlessmap/icons/layers/eye_white.png +0 -0
  31. driftlessmap/icons/layers/hi.png +0 -0
  32. driftlessmap/icons/layers/trash.png +0 -0
  33. driftlessmap/icons/object.svg +22 -0
  34. driftlessmap/icons/sidebar/add.png +0 -0
  35. driftlessmap/icons/sidebar/atlascontrol.png +0 -0
  36. driftlessmap/icons/sidebar/atlascontrol.svg +32 -0
  37. driftlessmap/icons/sidebar/bnd.svg +14 -0
  38. driftlessmap/icons/sidebar/c_section.png +0 -0
  39. driftlessmap/icons/sidebar/c_section2.png +0 -0
  40. driftlessmap/icons/sidebar/cell.svg +24 -0
  41. driftlessmap/icons/sidebar/check.svg +9 -0
  42. driftlessmap/icons/sidebar/compare.svg +18 -0
  43. driftlessmap/icons/sidebar/contour.svg +14 -0
  44. driftlessmap/icons/sidebar/h_section.png +0 -0
  45. driftlessmap/icons/sidebar/info.svg +14 -0
  46. driftlessmap/icons/sidebar/layers.png +0 -0
  47. driftlessmap/icons/sidebar/layers.svg +23 -0
  48. driftlessmap/icons/sidebar/line.svg +10 -0
  49. driftlessmap/icons/sidebar/link.svg +18 -0
  50. driftlessmap/icons/sidebar/link_off.svg +18 -0
  51. driftlessmap/icons/sidebar/merge.svg +11 -0
  52. driftlessmap/icons/sidebar/object.svg +13 -0
  53. driftlessmap/icons/sidebar/probe.png +0 -0
  54. driftlessmap/icons/sidebar/probe.svg +23 -0
  55. driftlessmap/icons/sidebar/rotation_horizontal.svg +14 -0
  56. driftlessmap/icons/sidebar/rotation_vertical.svg +14 -0
  57. driftlessmap/icons/sidebar/s_section.png +0 -0
  58. driftlessmap/icons/sidebar/tool.png +0 -0
  59. driftlessmap/icons/sidebar/tool.svg +19 -0
  60. driftlessmap/icons/sidebar/trash.png +0 -0
  61. driftlessmap/icons/sidebar/tree_checked.svg +10 -0
  62. driftlessmap/icons/sidebar/treeview.png +0 -0
  63. driftlessmap/icons/sidebar/treeview.svg +10 -0
  64. driftlessmap/icons/sidebar/treeview2.png +0 -0
  65. driftlessmap/icons/sidebar/virus.svg +24 -0
  66. driftlessmap/icons/tdown.svg +16 -0
  67. driftlessmap/icons/toolbar/accept.svg +18 -0
  68. driftlessmap/icons/toolbar/accept2.svg +24 -0
  69. driftlessmap/icons/toolbar/aim.svg +44 -0
  70. driftlessmap/icons/toolbar/aim_not.svg +28 -0
  71. driftlessmap/icons/toolbar/anchor.svg +14 -0
  72. driftlessmap/icons/toolbar/anticlockwise_rotation.svg +12 -0
  73. driftlessmap/icons/toolbar/atlas_icon.png +0 -0
  74. driftlessmap/icons/toolbar/boundary_register.svg +18 -0
  75. driftlessmap/icons/toolbar/cancel.svg +32 -0
  76. driftlessmap/icons/toolbar/cell_select.svg +22 -0
  77. driftlessmap/icons/toolbar/cell_select_not.svg +12 -0
  78. driftlessmap/icons/toolbar/check.svg +9 -0
  79. driftlessmap/icons/toolbar/clockwise_rotation.svg +11 -0
  80. driftlessmap/icons/toolbar/closed_path.svg +16 -0
  81. driftlessmap/icons/toolbar/closed_path2 copy.svg +19 -0
  82. driftlessmap/icons/toolbar/closed_path2.svg +20 -0
  83. driftlessmap/icons/toolbar/eraser.png +0 -0
  84. driftlessmap/icons/toolbar/eraser.svg +19 -0
  85. driftlessmap/icons/toolbar/eye.svg +17 -0
  86. driftlessmap/icons/toolbar/eye_closed.svg +19 -0
  87. driftlessmap/icons/toolbar/fill.svg +12 -0
  88. driftlessmap/icons/toolbar/gps.svg +15 -0
  89. driftlessmap/icons/toolbar/h_flip.png +0 -0
  90. driftlessmap/icons/toolbar/handle.png +0 -0
  91. driftlessmap/icons/toolbar/image_icon.png +0 -0
  92. driftlessmap/icons/toolbar/image_icon.svg +25 -0
  93. driftlessmap/icons/toolbar/info.svg +14 -0
  94. driftlessmap/icons/toolbar/inpart.png +0 -0
  95. driftlessmap/icons/toolbar/inpart.svg +17 -0
  96. driftlessmap/icons/toolbar/lasso.png +0 -0
  97. driftlessmap/icons/toolbar/lasso.svg +14 -0
  98. driftlessmap/icons/toolbar/left90.png +0 -0
  99. driftlessmap/icons/toolbar/line.svg +10 -0
  100. driftlessmap/icons/toolbar/line_sites.svg +11 -0
  101. driftlessmap/icons/toolbar/linear_silicon.png +0 -0
  102. driftlessmap/icons/toolbar/linear_silicon.svg +88 -0
  103. driftlessmap/icons/toolbar/list.svg +14 -0
  104. driftlessmap/icons/toolbar/location.svg +14 -0
  105. driftlessmap/icons/toolbar/magic-wand.svg +16 -0
  106. driftlessmap/icons/toolbar/magic_white.png +0 -0
  107. driftlessmap/icons/toolbar/mask.svg +10 -0
  108. driftlessmap/icons/toolbar/match.svg +20 -0
  109. driftlessmap/icons/toolbar/matchbnd.svg +18 -0
  110. driftlessmap/icons/toolbar/matching.svg +36 -0
  111. driftlessmap/icons/toolbar/merge.svg +11 -0
  112. driftlessmap/icons/toolbar/move_down.png +0 -0
  113. driftlessmap/icons/toolbar/move_left.png +0 -0
  114. driftlessmap/icons/toolbar/move_right.png +0 -0
  115. driftlessmap/icons/toolbar/move_up.png +0 -0
  116. driftlessmap/icons/toolbar/moving.png +0 -0
  117. driftlessmap/icons/toolbar/multi-probe.svg +119 -0
  118. driftlessmap/icons/toolbar/multi_pencil.svg +23 -0
  119. driftlessmap/icons/toolbar/multi_probe.png +0 -0
  120. driftlessmap/icons/toolbar/object.svg +13 -0
  121. driftlessmap/icons/toolbar/open_path.svg +22 -0
  122. driftlessmap/icons/toolbar/outpart.png +0 -0
  123. driftlessmap/icons/toolbar/outpart.svg +26 -0
  124. driftlessmap/icons/toolbar/pencil.png +0 -0
  125. driftlessmap/icons/toolbar/pencil.svg +19 -0
  126. driftlessmap/icons/toolbar/plasso.png +0 -0
  127. driftlessmap/icons/toolbar/probe.svg +19 -0
  128. driftlessmap/icons/toolbar/radar.svg +32 -0
  129. driftlessmap/icons/toolbar/rotation.svg +45 -0
  130. driftlessmap/icons/toolbar/rotation_clockwise.svg +18 -0
  131. driftlessmap/icons/toolbar/rotation_counter_clockwise.svg +18 -0
  132. driftlessmap/icons/toolbar/ruler.svg +27 -0
  133. driftlessmap/icons/toolbar/separate_sites.svg +13 -0
  134. driftlessmap/icons/toolbar/single_pencil.svg +16 -0
  135. driftlessmap/icons/toolbar/toa.svg +11 -0
  136. driftlessmap/icons/toolbar/toa_delete.svg +36 -0
  137. driftlessmap/icons/toolbar/toaa.svg +11 -0
  138. driftlessmap/icons/toolbar/toh.svg +11 -0
  139. driftlessmap/icons/toolbar/toh_delete.svg +36 -0
  140. driftlessmap/icons/toolbar/tohh.svg +11 -0
  141. driftlessmap/icons/toolbar/trans.png +0 -0
  142. driftlessmap/icons/toolbar/trans.svg +16 -0
  143. driftlessmap/icons/toolbar/triangulation.svg +10 -0
  144. driftlessmap/icons/toolbar/two_window.png +0 -0
  145. driftlessmap/icons/toolbar/unmerge.svg +16 -0
  146. driftlessmap/icons/toolbar/v_flip.png +0 -0
  147. driftlessmap/icons/toolbar/virus.svg +24 -0
  148. driftlessmap/icons/toolbar/virus_register.svg +31 -0
  149. driftlessmap/icons/toolbar/vis2d.svg +29 -0
  150. driftlessmap/icons/toolbar/window2.png +0 -0
  151. driftlessmap/icons/toolbar/window3.png +0 -0
  152. driftlessmap/icons/toolbar/window4.png +0 -0
  153. driftlessmap/icons/tree_close.svg +14 -0
  154. driftlessmap/icons/tree_open.svg +14 -0
  155. driftlessmap/icons/up-arrow.svg +10 -0
  156. driftlessmap/image_curves.py +579 -0
  157. driftlessmap/image_reader.py +186 -0
  158. driftlessmap/image_stacks.py +359 -0
  159. driftlessmap/image_view.py +646 -0
  160. driftlessmap/images_reader.py +5 -0
  161. driftlessmap/label_tree.py +278 -0
  162. driftlessmap/layer_validation.py +25 -0
  163. driftlessmap/layers_control.py +554 -0
  164. driftlessmap/main_window.ui +883 -0
  165. driftlessmap/movable_points.py +254 -0
  166. driftlessmap/obj_items.py +122 -0
  167. driftlessmap/object_control.py +1762 -0
  168. driftlessmap/persistence.py +376 -0
  169. driftlessmap/popup_message.py +16 -0
  170. driftlessmap/probe_csv.py +319 -0
  171. driftlessmap/probe_reconstruction.py +409 -0
  172. driftlessmap/probe_utiles.py +1442 -0
  173. driftlessmap/qss/atlas_view_group_box.qss +15 -0
  174. driftlessmap/qss/box_label.qss +7 -0
  175. driftlessmap/qss/channel_selector.qss +19 -0
  176. driftlessmap/qss/color_combo.qss +121 -0
  177. driftlessmap/qss/decor_label.qss +9 -0
  178. driftlessmap/qss/dialogs.qss +11 -0
  179. driftlessmap/qss/hidden_line_edit.qss +5 -0
  180. driftlessmap/qss/label_tree.qss +123 -0
  181. driftlessmap/qss/main_window.qss +243 -0
  182. driftlessmap/qss/menu_bar.qss +42 -0
  183. driftlessmap/qss/multi_handle_slider.qss +14 -0
  184. driftlessmap/qss/obj_ctrl_bottom_button.qss +29 -0
  185. driftlessmap/qss/object_text_button.qss +19 -0
  186. driftlessmap/qss/page_control.qss +36 -0
  187. driftlessmap/qss/rotation_button.qss +9 -0
  188. driftlessmap/qss/side_bar.qss +23 -0
  189. driftlessmap/qss/spinbox.qss +106 -0
  190. driftlessmap/qss/tabs.qss +211 -0
  191. driftlessmap/qss/tool_bar.qss +77 -0
  192. driftlessmap/resources.py +34 -0
  193. driftlessmap/roi_analysis.py +375 -0
  194. driftlessmap/run_driftlessmap.py +4 -0
  195. driftlessmap/slice_stacks.py +268 -0
  196. driftlessmap/slice_validation.py +20 -0
  197. driftlessmap/toolbox.py +569 -0
  198. driftlessmap/triangulation.py +517 -0
  199. driftlessmap/triangulation_points.py +108 -0
  200. driftlessmap/user_settings.py +92 -0
  201. driftlessmap/uuuuuu.py +1168 -0
  202. driftlessmap/version.py +3 -0
  203. driftlessmap/widgets_utils.py +140 -0
  204. driftlessmap/wtiles.py +715 -0
  205. driftlessmap-1.1.0.dist-info/METADATA +186 -0
  206. driftlessmap-1.1.0.dist-info/RECORD +210 -0
  207. driftlessmap-1.1.0.dist-info/WHEEL +5 -0
  208. driftlessmap-1.1.0.dist-info/entry_points.txt +2 -0
  209. driftlessmap-1.1.0.dist-info/licenses/LICENSE.txt +23 -0
  210. driftlessmap-1.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,9 @@
1
+ QPushButton {
2
+ border : None;
3
+ background: transparent;
4
+ margin: 0px;
5
+ padding-top: 0px;
6
+ border-radius: 0px;
7
+ min-width: 15px;
8
+ min-height: 15px;
9
+ }
@@ -0,0 +1,23 @@
1
+ QPushButton{
2
+ background: #656565;
3
+ border-radius: 5px;
4
+ color: white;
5
+ border-style: outset;
6
+ border-bottom: 1px solid rgb(30, 30, 30);
7
+ height: 24px;
8
+ margin: 0px;
9
+ }
10
+
11
+ QPushButton:hover{
12
+ background-color: #323232;
13
+ border: 1px solid #656565;
14
+ }
15
+
16
+ QPushButton:checked{
17
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
18
+ stop: 0 #17bb00, stop: 1 #0e6900);
19
+ border-bottom: 1px solid rgb(30, 30, 30);
20
+ border-top: None;
21
+ border-left: None;
22
+ border-right: None;
23
+ }
@@ -0,0 +1,106 @@
1
+ /*---------------------- SpinBox -----------------------*/
2
+ QSpinBox {
3
+ padding-right: 0px; /* make room for the arrows */
4
+ border: 1px solid #242424;
5
+ background: transparent;
6
+ }
7
+
8
+ QSpinBox::up-button {
9
+ background: transparent;
10
+ subcontrol-origin: border;
11
+ subcontrol-position: top right; /* position at the top right corner */
12
+ width: 15px;
13
+ border-width: 0px;
14
+ }
15
+
16
+ QSpinBox::down-button {
17
+ background: transparent;
18
+ subcontrol-origin: border;
19
+ subcontrol-position: bottom right; /* position at bottom right corner */
20
+ width: 15px;
21
+ border-width: 0px;
22
+ }
23
+
24
+ QSpinBox::up-button:hover {
25
+ background-color: #282828;
26
+ }
27
+
28
+ QSpinBox::down-button:hover {
29
+ background-color: #282828;
30
+ }
31
+
32
+ QSpinBox::up-button:pressed {
33
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
34
+ stop: 0 #282828, stop: 1 #323232);
35
+ }
36
+
37
+ QSpinBox::down-button:pressed {
38
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
39
+ stop: 0 #323232, stop: 1 #282828);
40
+ }
41
+
42
+ QSpinBox::up-arrow {
43
+ image: url(icons/up-arrow.svg);
44
+ width: 7px;
45
+ height: 7px;
46
+ }
47
+
48
+ QSpinBox::down-arrow {
49
+ image: url(icons/down-arrow.svg);
50
+ width: 7px;
51
+ height: 7px;
52
+ }
53
+
54
+ /*---------------------- DoubleSpinBox -----------------------*/
55
+ QDoubleSpinBox {
56
+ padding-right: 0px;
57
+ border: 1px solid #242424;
58
+ background: transparent;
59
+
60
+ }
61
+
62
+ QDoubleSpinBox::up-button {
63
+ background: transparent;
64
+ subcontrol-origin: border;
65
+ subcontrol-position: top right; /* position at the top right corner */
66
+ width: 15px;
67
+ border: None;
68
+ }
69
+
70
+ QDoubleSpinBox::down-button {
71
+ background: transparent;
72
+ subcontrol-origin: border;
73
+ subcontrol-position: bottom right; /* position at bottom right corner */
74
+ width: 15px;
75
+ border: None;
76
+ }
77
+
78
+ QDoubleSpinBox::up-button:hover {
79
+ background-color: #282828;
80
+ }
81
+
82
+ QDoubleSpinBox::down-button:hover {
83
+ background-color: #282828;
84
+ }
85
+
86
+ QDoubleSpinBox::up-button:pressed {
87
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
88
+ stop: 0 #282828, stop: 1 #000000);
89
+ }
90
+
91
+ QDoubleSpinBox::down-button:pressed {
92
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
93
+ stop: 0 #000000, stop: 1 #282828);
94
+ }
95
+
96
+ QDoubleSpinBox::up-arrow {
97
+ image: url(icons/up-arrow.svg);
98
+ width: 7px;
99
+ height: 7px;
100
+ }
101
+
102
+ QDoubleSpinBox::down-arrow {
103
+ image: url(icons/down-arrow.svg);
104
+ width: 7px;
105
+ height: 7px;
106
+ }
@@ -0,0 +1,211 @@
1
+ /*---------------------- QTabWidget -----------------------*/
2
+ QTabWidget{
3
+ background-color: rgb(50, 50, 50);
4
+ margin-bottom: 0px;
5
+
6
+ }
7
+
8
+ QTabWidget::pane {
9
+ background-color: transparent;
10
+ margin-left: 0px;
11
+ padding-left:0px;
12
+ border-top: 1px solid #747a80;
13
+ border-left: 1px solid #747a80;
14
+ border-right: 1px solid #747a80;
15
+ border-bottom: 1px solid #747a80;
16
+ margin-bottom: 0px;
17
+ }
18
+
19
+ QTabWidget::tab-bar {
20
+ bottom: 0;
21
+ border: 1px solid gray;
22
+ }
23
+
24
+ QTabBar::tab {
25
+ background-color: #3c3f41;
26
+ height:30px;
27
+ width: 30px;
28
+ border-bottom: 3px solid #323232;
29
+ margin: 0px;
30
+ padding-top: 5px;
31
+ padding-left: 6px;
32
+ }
33
+
34
+ QTabBar::tab:selected {
35
+ background: #4e5254;
36
+ border-bottom: 3px solid #747a80;
37
+ }
38
+
39
+ QTabBar::tab:hover{
40
+ background: #27292a;
41
+ }
42
+
43
+ QGroupBox {
44
+ background-color: transparent;
45
+ color: white;
46
+ border: 1px solid;
47
+ border-radius: 5px;
48
+ padding-top: 3px;
49
+ padding-bottom: 3px;
50
+ margin-top: 0px
51
+ }
52
+
53
+ QLabel {
54
+ color: white;
55
+ }
56
+
57
+ /* --------------------------------------- QScrollBar -----------------------------------*/
58
+ QScrollBar:horizontal
59
+ {
60
+ height: 15px;
61
+ margin: 3px 15px 3px 15px;
62
+ border: None;
63
+ border-radius: 4px;
64
+ background-color: transparent;
65
+ }
66
+
67
+ QScrollBar::handle:horizontal
68
+ {
69
+ background-color: #656565;
70
+ min-width: 5px;
71
+ border-radius: 4px;
72
+ }
73
+
74
+ QScrollBar::add-line:horizontal
75
+ {
76
+ margin: 0px 3px 0px 3px;
77
+ width: 10px;
78
+ height: 10px;
79
+ subcontrol-position: right;
80
+ subcontrol-origin: margin;
81
+ border: None;
82
+ }
83
+
84
+ QScrollBar::sub-line:horizontal
85
+ {
86
+ margin: 0px 3px 0px 3px;
87
+ height: 10px;
88
+ width: 10px;
89
+ subcontrol-position: left;
90
+ subcontrol-origin: margin;
91
+ border: None;
92
+ }
93
+
94
+ QScrollBar::add-line:horizontal:hover,QScrollBar::add-line:horizontal:on
95
+ {
96
+ height: 10px;
97
+ width: 10px;
98
+ subcontrol-position: right;
99
+ subcontrol-origin: margin;
100
+ border: None;
101
+ }
102
+
103
+
104
+ QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on
105
+ {
106
+ height: 10px;
107
+ width: 10px;
108
+ subcontrol-position: left;
109
+ subcontrol-origin: margin;
110
+ border: None;
111
+ }
112
+
113
+ QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal
114
+ {
115
+ background: transparent;
116
+ }
117
+
118
+
119
+ QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal
120
+ {
121
+ background: transparent;
122
+ }
123
+
124
+ QScrollBar:vertical
125
+ {
126
+ background-color: transparent;
127
+ width: 15px;
128
+ margin: 15px 3px 15px 3px;
129
+ border: None;
130
+ border-radius: 4px;
131
+ }
132
+
133
+ QScrollBar::handle:vertical
134
+ {
135
+ background-color: #656565;
136
+ min-height: 5px;
137
+ border-radius: 4px;
138
+ }
139
+
140
+ QScrollBar::sub-line:vertical
141
+ {
142
+ margin: 3px 0px 3px 0px;
143
+ height: 10px;
144
+ width: 10px;
145
+ subcontrol-position: top;
146
+ subcontrol-origin: margin;
147
+ border: None;
148
+ }
149
+
150
+ QScrollBar::add-line:vertical
151
+ {
152
+ margin: 3px 0px 3px 0px;
153
+ height: 10px;
154
+ width: 10px;
155
+ subcontrol-position: bottom;
156
+ subcontrol-origin: margin;
157
+ border: None;
158
+ }
159
+
160
+ QScrollBar::sub-line:vertical:hover,QScrollBar::sub-line:vertical:on
161
+ {
162
+ height: 10px;
163
+ width: 10px;
164
+ subcontrol-position: top;
165
+ subcontrol-origin: margin;
166
+ border: None;
167
+ }
168
+
169
+ QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on
170
+ {
171
+ height: 10px;
172
+ width: 10px;
173
+ subcontrol-position: bottom;
174
+ subcontrol-origin: margin;
175
+ border: None;
176
+ }
177
+
178
+ QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical
179
+ {
180
+ background: transparent;
181
+ }
182
+
183
+ QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical
184
+ {
185
+ background: transparent;
186
+ }
187
+
188
+ /* --------------------------------------- QPushButton -----------------------------------*/
189
+ QPushButton{
190
+ background: #656565;
191
+ border-radius: 5px;
192
+ color: white;
193
+ border-style: outset;
194
+ border-bottom: 1px solid rgb(30, 30, 30);
195
+ height: 24px;
196
+ margin: 0px;
197
+ }
198
+
199
+ QPushButton:hover{
200
+ background-color: #323232;
201
+ border: 1px solid #656565;
202
+ }
203
+
204
+ QPushButton:checked{
205
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
206
+ stop: 0 #17bb00, stop: 1 #0e6900);
207
+ border-bottom: 1px solid rgb(30, 30, 30);
208
+ border-top: None;
209
+ border-left: None;
210
+ border-right: None;
211
+ }
@@ -0,0 +1,77 @@
1
+ QToolBar::separator {
2
+ color: white;
3
+ background-color: gray;
4
+ width: 1px;
5
+ height: 10px;
6
+ border: 5px solid rgb(50, 50, 50);
7
+ }
8
+
9
+
10
+ QToolBar {
11
+ color: rgb(255, 255, 255);
12
+ background-color: rgb(50, 50, 50);
13
+ border: None;
14
+ selection-color: rgb(50, 50, 50);
15
+ selection-background-color: #27292a;
16
+ spacing: 0px;
17
+ }
18
+
19
+ QToolButton {
20
+ border-top: 2px solid rgb(50, 50, 50);
21
+ border-bottom: 2px solid rgb(50, 50, 50);
22
+ }
23
+
24
+ QRadioButton {
25
+ color: white;
26
+ }
27
+
28
+
29
+ QToolButton:hover {
30
+ background-color: #27292a;
31
+ border-top: 2px solid #27292a;
32
+ border-bottom: 2px solid #27292a;
33
+ }
34
+
35
+ QToolButton:checked {
36
+ border-bottom: 2px solid gray;
37
+ }
38
+
39
+ QPushButton {
40
+ background-color: rgb(50, 50, 50);
41
+ border: 0px solid gray;
42
+ width: 32px;
43
+ height: 32px;
44
+ margin: 0px;
45
+ padding: 0px;
46
+ }
47
+
48
+ QPushButton:hover {
49
+ background-color: #27292a;
50
+ }
51
+
52
+ QLabel {
53
+ color: #d6d6d6;
54
+ background-color: rgb(50, 50, 50);
55
+ }
56
+
57
+ QLineEdit {
58
+ border: 1px solid gray;
59
+ }
60
+
61
+
62
+
63
+ QSlider::groove:horizontal {
64
+ border: 1px solid #999999;
65
+ height: 2px;
66
+ background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B1B1B1, stop:1 #c4c4c4);
67
+ margin: 2px 0;
68
+ }
69
+
70
+ QSlider::handle:horizontal {
71
+ background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #b4b4b4, stop:1 #8f8f8f);
72
+ border: 1px solid #5c5c5c;
73
+ width: 18px;
74
+ margin: -2px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */
75
+ border-radius: 3px;
76
+ }
77
+
@@ -0,0 +1,34 @@
1
+ from pathlib import Path
2
+ import re
3
+
4
+
5
+ PACKAGE_DIRECTORY = Path(__file__).resolve().parent
6
+ QSS_URL_PATTERN = re.compile(
7
+ r"url\(\s*(?P<quote>['\"]?)(?P<path>.*?)(?P=quote)\s*\)",
8
+ re.IGNORECASE,
9
+ )
10
+
11
+
12
+ def resource_path(relative_path):
13
+ """Return an absolute path to a resource shipped with DriftlessMap."""
14
+ path = Path(relative_path)
15
+ if path.is_absolute():
16
+ return str(path)
17
+ return str(PACKAGE_DIRECTORY / path)
18
+
19
+
20
+ def resolve_qss_resource_urls(stylesheet):
21
+ """Resolve package-relative Qt stylesheet URLs independently of the CWD."""
22
+
23
+ def replace_url(match):
24
+ target = match.group("path").strip()
25
+ if not target or target.startswith(
26
+ (":", "data:", "file:", "http:", "https:", "qrc:")
27
+ ):
28
+ return match.group(0)
29
+ path = Path(target)
30
+ if not path.is_absolute():
31
+ path = PACKAGE_DIRECTORY / path
32
+ return 'url("{}")'.format(path.resolve().as_posix())
33
+
34
+ return QSS_URL_PATTERN.sub(replace_url, stylesheet)