audio-tuner-gui 0.10.0__py3-none-any.whl → 0.11.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.
- audio_tuner_gui/__init__.py +1 -1
- audio_tuner_gui/analysis.py +107 -81
- audio_tuner_gui/common.py +77 -25
- audio_tuner_gui/file_selector.py +71 -21
- audio_tuner_gui/icons/fallback/README +4 -0
- audio_tuner_gui/icons/fallback/application-exit.svg +457 -0
- audio_tuner_gui/icons/fallback/audio-card.svg +434 -0
- audio_tuner_gui/icons/fallback/audio-x-generic.svg +180 -0
- audio_tuner_gui/icons/fallback/dialog-warning.svg +373 -0
- audio_tuner_gui/icons/fallback/document-save.svg +619 -0
- audio_tuner_gui/icons/fallback/edit-delete.svg +896 -0
- audio_tuner_gui/icons/fallback/folder.svg +424 -0
- audio_tuner_gui/icons/fallback/format-justify-left.svg +271 -0
- audio_tuner_gui/icons/fallback/go-home.svg +445 -0
- audio_tuner_gui/icons/fallback/go-next.svg +192 -0
- audio_tuner_gui/icons/fallback/go-previous.svg +854 -0
- audio_tuner_gui/icons/fallback/go-up.svg +196 -0
- audio_tuner_gui/icons/fallback/media-playback-pause.svg +641 -0
- audio_tuner_gui/icons/fallback/media-playback-start.svg +319 -0
- audio_tuner_gui/icons/fallback/media-playback-stop.svg +651 -0
- audio_tuner_gui/icons/fallback/media-seek-backward.svg +374 -0
- audio_tuner_gui/icons/fallback/media-seek-forward.svg +383 -0
- audio_tuner_gui/icons/fallback/preferences-system.svg +398 -0
- audio_tuner_gui/icons/fallback/process-stop.svg +336 -0
- audio_tuner_gui/option_panel.py +49 -21
- audio_tuner_gui/scripts/tuner_gui.py +137 -21
- {audio_tuner_gui-0.10.0.dist-info → audio_tuner_gui-0.11.1.dist-info}/METADATA +4 -3
- audio_tuner_gui-0.11.1.dist-info/RECORD +45 -0
- audio_tuner_gui/icons/folder.png +0 -0
- audio_tuner_gui/icons/preferences-other.png +0 -0
- audio_tuner_gui/icons/process-stop.png +0 -0
- audio_tuner_gui-0.10.0.dist-info/RECORD +0 -28
- {audio_tuner_gui-0.10.0.dist-info → audio_tuner_gui-0.11.1.dist-info}/WHEEL +0 -0
- {audio_tuner_gui-0.10.0.dist-info → audio_tuner_gui-0.11.1.dist-info}/entry_points.txt +0 -0
- {audio_tuner_gui-0.10.0.dist-info → audio_tuner_gui-0.11.1.dist-info}/licenses/COPYING +0 -0
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
<svg
|
|
4
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
5
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
|
6
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
7
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
10
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
11
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
12
|
+
width="48.000000px"
|
|
13
|
+
height="48.000000px"
|
|
14
|
+
id="svg6361"
|
|
15
|
+
sodipodi:version="0.32"
|
|
16
|
+
inkscape:version="0.46"
|
|
17
|
+
sodipodi:docbase="/home/jimmac/gfx/ximian/tango-icon-theme/scalable/actions"
|
|
18
|
+
sodipodi:docname="process-stop.svg"
|
|
19
|
+
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
|
20
|
+
<defs
|
|
21
|
+
id="defs3">
|
|
22
|
+
<inkscape:perspective
|
|
23
|
+
sodipodi:type="inkscape:persp3d"
|
|
24
|
+
inkscape:vp_x="0 : 24 : 1"
|
|
25
|
+
inkscape:vp_y="0 : 1000 : 0"
|
|
26
|
+
inkscape:vp_z="48 : 24 : 1"
|
|
27
|
+
inkscape:persp3d-origin="24 : 16 : 1"
|
|
28
|
+
id="perspective52" />
|
|
29
|
+
<linearGradient
|
|
30
|
+
id="linearGradient2256">
|
|
31
|
+
<stop
|
|
32
|
+
style="stop-color:#ff0202;stop-opacity:1;"
|
|
33
|
+
offset="0"
|
|
34
|
+
id="stop2258" />
|
|
35
|
+
<stop
|
|
36
|
+
style="stop-color:#ff9b9b;stop-opacity:1;"
|
|
37
|
+
offset="1"
|
|
38
|
+
id="stop2260" />
|
|
39
|
+
</linearGradient>
|
|
40
|
+
<linearGradient
|
|
41
|
+
inkscape:collect="always"
|
|
42
|
+
id="linearGradient2248">
|
|
43
|
+
<stop
|
|
44
|
+
style="stop-color:#ffffff;stop-opacity:1;"
|
|
45
|
+
offset="0"
|
|
46
|
+
id="stop2250" />
|
|
47
|
+
<stop
|
|
48
|
+
style="stop-color:#ffffff;stop-opacity:0;"
|
|
49
|
+
offset="1"
|
|
50
|
+
id="stop2252" />
|
|
51
|
+
</linearGradient>
|
|
52
|
+
<linearGradient
|
|
53
|
+
id="linearGradient9647">
|
|
54
|
+
<stop
|
|
55
|
+
style="stop-color:#ffffff;stop-opacity:1;"
|
|
56
|
+
offset="0"
|
|
57
|
+
id="stop9649" />
|
|
58
|
+
<stop
|
|
59
|
+
style="stop-color:#dbdbdb;stop-opacity:1;"
|
|
60
|
+
offset="1"
|
|
61
|
+
id="stop9651" />
|
|
62
|
+
</linearGradient>
|
|
63
|
+
<linearGradient
|
|
64
|
+
inkscape:collect="always"
|
|
65
|
+
id="linearGradient21644">
|
|
66
|
+
<stop
|
|
67
|
+
style="stop-color:#000000;stop-opacity:1;"
|
|
68
|
+
offset="0"
|
|
69
|
+
id="stop21646" />
|
|
70
|
+
<stop
|
|
71
|
+
style="stop-color:#000000;stop-opacity:0;"
|
|
72
|
+
offset="1"
|
|
73
|
+
id="stop21648" />
|
|
74
|
+
</linearGradient>
|
|
75
|
+
<radialGradient
|
|
76
|
+
inkscape:collect="always"
|
|
77
|
+
xlink:href="#linearGradient21644"
|
|
78
|
+
id="radialGradient21650"
|
|
79
|
+
cx="25.125"
|
|
80
|
+
cy="36.75"
|
|
81
|
+
fx="25.125"
|
|
82
|
+
fy="36.75"
|
|
83
|
+
r="15.75"
|
|
84
|
+
gradientTransform="matrix(1.000000,0.000000,0.000000,0.595238,-2.300678e-15,14.87500)"
|
|
85
|
+
gradientUnits="userSpaceOnUse" />
|
|
86
|
+
<linearGradient
|
|
87
|
+
inkscape:collect="always"
|
|
88
|
+
id="linearGradient7895">
|
|
89
|
+
<stop
|
|
90
|
+
style="stop-color:#ffffff;stop-opacity:1;"
|
|
91
|
+
offset="0"
|
|
92
|
+
id="stop7897" />
|
|
93
|
+
<stop
|
|
94
|
+
style="stop-color:#ffffff;stop-opacity:0;"
|
|
95
|
+
offset="1"
|
|
96
|
+
id="stop7899" />
|
|
97
|
+
</linearGradient>
|
|
98
|
+
<linearGradient
|
|
99
|
+
id="linearGradient4981">
|
|
100
|
+
<stop
|
|
101
|
+
style="stop-color:#cc0000;stop-opacity:1;"
|
|
102
|
+
offset="0"
|
|
103
|
+
id="stop4983" />
|
|
104
|
+
<stop
|
|
105
|
+
style="stop-color:#b30000;stop-opacity:1.0000000;"
|
|
106
|
+
offset="1.0000000"
|
|
107
|
+
id="stop4985" />
|
|
108
|
+
</linearGradient>
|
|
109
|
+
<linearGradient
|
|
110
|
+
id="linearGradient15762"
|
|
111
|
+
inkscape:collect="always">
|
|
112
|
+
<stop
|
|
113
|
+
id="stop15764"
|
|
114
|
+
offset="0"
|
|
115
|
+
style="stop-color:#ffffff;stop-opacity:1;" />
|
|
116
|
+
<stop
|
|
117
|
+
id="stop15766"
|
|
118
|
+
offset="1"
|
|
119
|
+
style="stop-color:#ffffff;stop-opacity:0;" />
|
|
120
|
+
</linearGradient>
|
|
121
|
+
<linearGradient
|
|
122
|
+
id="linearGradient14236">
|
|
123
|
+
<stop
|
|
124
|
+
id="stop14238"
|
|
125
|
+
offset="0.0000000"
|
|
126
|
+
style="stop-color:#ed4040;stop-opacity:1.0000000;" />
|
|
127
|
+
<stop
|
|
128
|
+
id="stop14240"
|
|
129
|
+
offset="1.0000000"
|
|
130
|
+
style="stop-color:#a40000;stop-opacity:1.0000000;" />
|
|
131
|
+
</linearGradient>
|
|
132
|
+
<linearGradient
|
|
133
|
+
id="linearGradient11780">
|
|
134
|
+
<stop
|
|
135
|
+
style="stop-color:#ff8b8b;stop-opacity:1.0000000;"
|
|
136
|
+
offset="0.0000000"
|
|
137
|
+
id="stop11782" />
|
|
138
|
+
<stop
|
|
139
|
+
style="stop-color:#ec1b1b;stop-opacity:1.0000000;"
|
|
140
|
+
offset="1.0000000"
|
|
141
|
+
id="stop11784" />
|
|
142
|
+
</linearGradient>
|
|
143
|
+
<linearGradient
|
|
144
|
+
id="linearGradient11014">
|
|
145
|
+
<stop
|
|
146
|
+
style="stop-color:#a80000;stop-opacity:1.0000000;"
|
|
147
|
+
offset="0.0000000"
|
|
148
|
+
id="stop11016" />
|
|
149
|
+
<stop
|
|
150
|
+
style="stop-color:#c60000;stop-opacity:1.0000000;"
|
|
151
|
+
offset="0.0000000"
|
|
152
|
+
id="stop13245" />
|
|
153
|
+
<stop
|
|
154
|
+
style="stop-color:#e50000;stop-opacity:1.0000000;"
|
|
155
|
+
offset="1.0000000"
|
|
156
|
+
id="stop11018" />
|
|
157
|
+
</linearGradient>
|
|
158
|
+
<linearGradient
|
|
159
|
+
y2="9.6507530"
|
|
160
|
+
x2="9.8940229"
|
|
161
|
+
y1="5.3855424"
|
|
162
|
+
x1="5.7365270"
|
|
163
|
+
gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,31.72170,31.29079)"
|
|
164
|
+
gradientUnits="userSpaceOnUse"
|
|
165
|
+
id="linearGradient15772"
|
|
166
|
+
xlink:href="#linearGradient15762"
|
|
167
|
+
inkscape:collect="always" />
|
|
168
|
+
<linearGradient
|
|
169
|
+
inkscape:collect="always"
|
|
170
|
+
xlink:href="#linearGradient11780"
|
|
171
|
+
id="linearGradient2057"
|
|
172
|
+
x1="15.737001"
|
|
173
|
+
y1="12.503600"
|
|
174
|
+
x2="53.570126"
|
|
175
|
+
y2="47.374317"
|
|
176
|
+
gradientUnits="userSpaceOnUse"
|
|
177
|
+
gradientTransform="translate(0.000000,-2.000000)" />
|
|
178
|
+
<linearGradient
|
|
179
|
+
inkscape:collect="always"
|
|
180
|
+
xlink:href="#linearGradient4981"
|
|
181
|
+
id="linearGradient4987"
|
|
182
|
+
x1="23.995985"
|
|
183
|
+
y1="20.105337"
|
|
184
|
+
x2="41.047836"
|
|
185
|
+
y2="37.959785"
|
|
186
|
+
gradientUnits="userSpaceOnUse"
|
|
187
|
+
gradientTransform="translate(0.000000,-2.000000)" />
|
|
188
|
+
<linearGradient
|
|
189
|
+
inkscape:collect="always"
|
|
190
|
+
xlink:href="#linearGradient7895"
|
|
191
|
+
id="linearGradient7901"
|
|
192
|
+
x1="15.578875"
|
|
193
|
+
y1="16.285088"
|
|
194
|
+
x2="32.166405"
|
|
195
|
+
y2="28.394291"
|
|
196
|
+
gradientUnits="userSpaceOnUse" />
|
|
197
|
+
<radialGradient
|
|
198
|
+
inkscape:collect="always"
|
|
199
|
+
xlink:href="#linearGradient9647"
|
|
200
|
+
id="radialGradient2239"
|
|
201
|
+
cx="24.30225"
|
|
202
|
+
cy="33.30225"
|
|
203
|
+
fx="24.30225"
|
|
204
|
+
fy="33.30225"
|
|
205
|
+
r="12.30225"
|
|
206
|
+
gradientUnits="userSpaceOnUse"
|
|
207
|
+
gradientTransform="matrix(1.693981,-5.775714e-16,5.775714e-16,1.693981,-16.86529,-25.11111)" />
|
|
208
|
+
<linearGradient
|
|
209
|
+
inkscape:collect="always"
|
|
210
|
+
xlink:href="#linearGradient4981"
|
|
211
|
+
id="linearGradient2243"
|
|
212
|
+
gradientUnits="userSpaceOnUse"
|
|
213
|
+
x1="23.995985"
|
|
214
|
+
y1="20.105337"
|
|
215
|
+
x2="41.047836"
|
|
216
|
+
y2="37.959785"
|
|
217
|
+
gradientTransform="matrix(0.988373,0.000000,0.000000,0.988373,0.279002,0.278984)" />
|
|
218
|
+
<radialGradient
|
|
219
|
+
inkscape:collect="always"
|
|
220
|
+
xlink:href="#linearGradient2248"
|
|
221
|
+
id="radialGradient2254"
|
|
222
|
+
cx="16.75"
|
|
223
|
+
cy="10.666344"
|
|
224
|
+
fx="16.75"
|
|
225
|
+
fy="10.666344"
|
|
226
|
+
r="21.25"
|
|
227
|
+
gradientTransform="matrix(4.154957,-2.979206e-24,3.255657e-24,3.198723,-52.84553,-23.50921)"
|
|
228
|
+
gradientUnits="userSpaceOnUse" />
|
|
229
|
+
<linearGradient
|
|
230
|
+
inkscape:collect="always"
|
|
231
|
+
xlink:href="#linearGradient2256"
|
|
232
|
+
id="linearGradient2262"
|
|
233
|
+
x1="21.75"
|
|
234
|
+
y1="15.80225"
|
|
235
|
+
x2="24.30225"
|
|
236
|
+
y2="35.05225"
|
|
237
|
+
gradientUnits="userSpaceOnUse"
|
|
238
|
+
gradientTransform="translate(0.000000,-2.000000)" />
|
|
239
|
+
</defs>
|
|
240
|
+
<sodipodi:namedview
|
|
241
|
+
inkscape:guide-bbox="true"
|
|
242
|
+
showguides="true"
|
|
243
|
+
id="base"
|
|
244
|
+
pagecolor="#ffffff"
|
|
245
|
+
bordercolor="#666666"
|
|
246
|
+
borderopacity="0.15294118"
|
|
247
|
+
inkscape:pageopacity="0.0"
|
|
248
|
+
inkscape:pageshadow="2"
|
|
249
|
+
inkscape:zoom="4"
|
|
250
|
+
inkscape:cx="0.007276"
|
|
251
|
+
inkscape:cy="7.0544576"
|
|
252
|
+
inkscape:current-layer="layer1"
|
|
253
|
+
showgrid="false"
|
|
254
|
+
inkscape:grid-bbox="true"
|
|
255
|
+
inkscape:document-units="px"
|
|
256
|
+
inkscape:window-width="786"
|
|
257
|
+
inkscape:window-height="688"
|
|
258
|
+
inkscape:window-x="488"
|
|
259
|
+
inkscape:window-y="160"
|
|
260
|
+
inkscape:showpageshadow="false" />
|
|
261
|
+
<metadata
|
|
262
|
+
id="metadata4">
|
|
263
|
+
<rdf:RDF>
|
|
264
|
+
<cc:Work
|
|
265
|
+
rdf:about="">
|
|
266
|
+
<dc:format>image/svg+xml</dc:format>
|
|
267
|
+
<dc:type
|
|
268
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
269
|
+
<dc:title>Stop</dc:title>
|
|
270
|
+
<dc:date>2005-10-16</dc:date>
|
|
271
|
+
<dc:creator>
|
|
272
|
+
<cc:Agent>
|
|
273
|
+
<dc:title>Andreas Nilsson</dc:title>
|
|
274
|
+
</cc:Agent>
|
|
275
|
+
</dc:creator>
|
|
276
|
+
<dc:subject>
|
|
277
|
+
<rdf:Bag>
|
|
278
|
+
<rdf:li>stop</rdf:li>
|
|
279
|
+
<rdf:li>halt</rdf:li>
|
|
280
|
+
<rdf:li>error</rdf:li>
|
|
281
|
+
</rdf:Bag>
|
|
282
|
+
</dc:subject>
|
|
283
|
+
<cc:license
|
|
284
|
+
rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
|
|
285
|
+
<dc:contributor>
|
|
286
|
+
<cc:Agent>
|
|
287
|
+
<dc:title>Jakub Steiner</dc:title>
|
|
288
|
+
</cc:Agent>
|
|
289
|
+
</dc:contributor>
|
|
290
|
+
</cc:Work>
|
|
291
|
+
<cc:License
|
|
292
|
+
rdf:about="http://creativecommons.org/licenses/publicdomain/">
|
|
293
|
+
<cc:permits
|
|
294
|
+
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
|
295
|
+
<cc:permits
|
|
296
|
+
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
|
297
|
+
<cc:permits
|
|
298
|
+
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
|
299
|
+
</cc:License>
|
|
300
|
+
</rdf:RDF>
|
|
301
|
+
</metadata>
|
|
302
|
+
<g
|
|
303
|
+
id="layer1"
|
|
304
|
+
inkscape:label="Layer 1"
|
|
305
|
+
inkscape:groupmode="layer">
|
|
306
|
+
<path
|
|
307
|
+
sodipodi:type="arc"
|
|
308
|
+
style="opacity:0.63068183;color:#000000;fill:url(#radialGradient21650);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
|
309
|
+
id="path21642"
|
|
310
|
+
sodipodi:cx="25.125"
|
|
311
|
+
sodipodi:cy="36.75"
|
|
312
|
+
sodipodi:rx="15.75"
|
|
313
|
+
sodipodi:ry="9.375"
|
|
314
|
+
d="M 40.875 36.75 A 15.75 9.375 0 1 1 9.375,36.75 A 15.75 9.375 0 1 1 40.875 36.75 z"
|
|
315
|
+
transform="matrix(1.173803,0.000000,0.000000,0.600000,-5.265866,19.57500)" />
|
|
316
|
+
<path
|
|
317
|
+
style="fill:url(#linearGradient4987);fill-opacity:1;fill-rule:evenodd;stroke:#860000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
318
|
+
d="M 15.591006,0.4919213 L 32.676311,0.4919213 L 45.497585,13.586385 L 45.497585,31.48003 L 32.848986,43.496929 L 15.418649,43.496929 L 2.4943857,30.658264 L 2.4943857,13.464078 L 15.591006,0.4919213 z "
|
|
319
|
+
id="path9480"
|
|
320
|
+
sodipodi:nodetypes="ccccccccc" />
|
|
321
|
+
<path
|
|
322
|
+
style="opacity:0.81318683;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2057);stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
|
|
323
|
+
d="M 16.020655,1.5003424 L 32.248563,1.5003424 L 44.496456,13.922717 L 44.496456,31.037001 L 32.638472,42.48783 L 15.870253,42.48783 L 3.5090792,30.208718 L 3.5090792,13.84561 L 16.020655,1.5003424 z "
|
|
324
|
+
id="path9482"
|
|
325
|
+
sodipodi:nodetypes="ccccccccc" />
|
|
326
|
+
<path
|
|
327
|
+
style="opacity:0.28977272;fill:url(#radialGradient2254);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
328
|
+
d="M 15.6875,0.75 L 2.75,13.5625 L 2.75,30.5625 L 5.6875,33.46875 C 22.450041,33.526299 22.164665,20.450067 45.25,21.59375 L 45.25,13.6875 L 32.5625,0.75 L 15.6875,0.75 z "
|
|
329
|
+
id="path2241"
|
|
330
|
+
sodipodi:nodetypes="cccccccc" />
|
|
331
|
+
<path
|
|
332
|
+
style="fill:url(#radialGradient2239);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2262);stroke-width:0.99999958;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
333
|
+
d="M 16.767175,10.5 L 12.5,14.767175 L 20.035075,22.30225 L 12.5,29.837325 L 16.767175,34.104501 L 24.30225,26.569425 L 31.837325,34.104501 L 36.104501,29.837325 L 28.569425,22.30225 L 36.104501,14.767175 L 31.837325,10.5 L 24.30225,18.035075 L 16.767175,10.5 z "
|
|
334
|
+
id="path2787" />
|
|
335
|
+
</g>
|
|
336
|
+
</svg>
|
audio_tuner_gui/option_panel.py
CHANGED
|
@@ -29,8 +29,11 @@ __all__ = [
|
|
|
29
29
|
]
|
|
30
30
|
|
|
31
31
|
|
|
32
|
+
import copy
|
|
33
|
+
|
|
32
34
|
from PyQt6.QtCore import (
|
|
33
35
|
pyqtSignal,
|
|
36
|
+
Qt,
|
|
34
37
|
)
|
|
35
38
|
from PyQt6.QtWidgets import (
|
|
36
39
|
QWidget,
|
|
@@ -231,8 +234,8 @@ class _OptionFloatSpinBox(_OptionIntSpinBox):
|
|
|
231
234
|
def init_main_widget(self):
|
|
232
235
|
widget = QDoubleSpinBox()
|
|
233
236
|
widget.setDecimals(3)
|
|
234
|
-
widget.setMinimum(
|
|
235
|
-
widget.setMaximum(
|
|
237
|
+
widget.setMinimum(com.PITCH_TEMPO_MIN)
|
|
238
|
+
widget.setMaximum(com.PITCH_TEMPO_MAX)
|
|
236
239
|
widget.setSingleStep(.001)
|
|
237
240
|
|
|
238
241
|
self._revert_to_default = False
|
|
@@ -291,15 +294,16 @@ class _OptionComboBox(_OptionLineEdit):
|
|
|
291
294
|
|
|
292
295
|
class OptionPanel(QWidget):
|
|
293
296
|
"""Panel full of option widgets. Inherits from QWidget. Includes a
|
|
294
|
-
`Hold` checkbox to hold options at their current values, a `
|
|
295
|
-
|
|
296
|
-
request that an individual widget
|
|
297
|
-
setting it's line edit box to a
|
|
298
|
-
widgets that actually have a line
|
|
299
|
-
`default` attribute has been set,
|
|
300
|
-
`is_defaults` parameter of the
|
|
301
|
-
`set_default_options` convenience method,
|
|
302
|
-
to defaults` button is connected to, does
|
|
297
|
+
`Hold` checkbox to hold options at their current values, a `Use in
|
|
298
|
+
next analysis` checkbox, a `Revert to defaults` button and an `Apply
|
|
299
|
+
to selected` button. The user can request that an individual widget
|
|
300
|
+
return to it's default value by setting it's line edit box to a
|
|
301
|
+
blank value (this only works for widgets that actually have a line
|
|
302
|
+
edit box, and only if the widget's `default` attribute has been set,
|
|
303
|
+
which can be done using the `is_defaults` parameter of the
|
|
304
|
+
`set_options` method (The `set_default_options` convenience method,
|
|
305
|
+
which is what the `Revert to defaults` button is connected to, does
|
|
306
|
+
this automatically)).
|
|
303
307
|
|
|
304
308
|
Parameters
|
|
305
309
|
----------
|
|
@@ -376,7 +380,9 @@ class OptionPanel(QWidget):
|
|
|
376
380
|
|
|
377
381
|
# Link button
|
|
378
382
|
widget = QToolButton()
|
|
379
|
-
widget.setText('
|
|
383
|
+
widget.setText('Link')
|
|
384
|
+
widget.setShortcut('=')
|
|
385
|
+
widget.setStatusTip('Link pitch and tempo (=)')
|
|
380
386
|
widget.setCheckable(True)
|
|
381
387
|
hbox.addWidget(widget)
|
|
382
388
|
self._link = widget
|
|
@@ -487,14 +493,6 @@ class OptionPanel(QWidget):
|
|
|
487
493
|
self._grid.addWidget(widget, 6, 1)
|
|
488
494
|
self.widgets[title] = widget
|
|
489
495
|
|
|
490
|
-
# Pad input
|
|
491
|
-
title = gcom.OPTION_PAD
|
|
492
|
-
widget = _OptionCheckBox(title)
|
|
493
|
-
widget.setStatusTip("Pad the audio with zeros to ensure the FFT"
|
|
494
|
-
" window doesn't miss the very beginning and end")
|
|
495
|
-
self._grid.addWidget(widget, 7, 1)
|
|
496
|
-
self.widgets[title] = widget
|
|
497
|
-
|
|
498
496
|
|
|
499
497
|
self.widgets[gcom.OPTION_PITCH].widget.valueChanged.connect(
|
|
500
498
|
self._pitch_changed)
|
|
@@ -509,9 +507,14 @@ class OptionPanel(QWidget):
|
|
|
509
507
|
self._button_panel = QWidget(self)
|
|
510
508
|
hbox = QHBoxLayout(self._button_panel)
|
|
511
509
|
|
|
512
|
-
self._hold = QCheckBox('
|
|
510
|
+
self._hold = QCheckBox('Ho&ld')
|
|
513
511
|
self._hold.setStatusTip("Don't update settings to reflect selection")
|
|
514
512
|
hbox.addWidget(self._hold)
|
|
513
|
+
self._use = QCheckBox('&Use in next analysis')
|
|
514
|
+
self._use.setStatusTip('Use these settings to analyze the next'
|
|
515
|
+
' file selected for analysis')
|
|
516
|
+
self._use.checkStateChanged.connect(self._use_changed)
|
|
517
|
+
hbox.addWidget(self._use)
|
|
515
518
|
self._to_defaults = QPushButton('Revert to &defaults')
|
|
516
519
|
self._to_defaults.clicked.connect(self.set_default_options)
|
|
517
520
|
hbox.addWidget(self._to_defaults)
|
|
@@ -520,6 +523,10 @@ class OptionPanel(QWidget):
|
|
|
520
523
|
hbox.addWidget(self._to_selected)
|
|
521
524
|
hbox.setContentsMargins(0, 0, 0, 0)
|
|
522
525
|
|
|
526
|
+
def _use_changed(self, event):
|
|
527
|
+
if event == Qt.CheckState.Checked:
|
|
528
|
+
self._hold.setChecked(True)
|
|
529
|
+
|
|
523
530
|
def _link_toggled(self, event):
|
|
524
531
|
if event:
|
|
525
532
|
self._link_ok = False
|
|
@@ -626,6 +633,17 @@ class OptionPanel(QWidget):
|
|
|
626
633
|
factor = self.widgets[gcom.OPTION_PITCH].get()
|
|
627
634
|
self.PitchChange.emit(factor)
|
|
628
635
|
|
|
636
|
+
def use_options(self) -> bool:
|
|
637
|
+
"""Determine whether the 'Use in next analysis' checkbox is
|
|
638
|
+
checked.
|
|
639
|
+
|
|
640
|
+
Returns
|
|
641
|
+
-------
|
|
642
|
+
bool
|
|
643
|
+
True if checked, False if not.
|
|
644
|
+
"""
|
|
645
|
+
return self._use.isChecked()
|
|
646
|
+
|
|
629
647
|
def get_options(self) -> gcom.Options:
|
|
630
648
|
"""Get the values currently set in the option widgets.
|
|
631
649
|
|
|
@@ -673,6 +691,16 @@ class OptionPanel(QWidget):
|
|
|
673
691
|
options.reread_requested = True
|
|
674
692
|
self.PushOptions.emit(options, True)
|
|
675
693
|
|
|
694
|
+
def get_default_options(self) -> gcom.Options:
|
|
695
|
+
"""Return a copy of the default options.
|
|
696
|
+
|
|
697
|
+
Returns
|
|
698
|
+
-------
|
|
699
|
+
audio_tuner_gui.common.Options
|
|
700
|
+
The default options.
|
|
701
|
+
"""
|
|
702
|
+
return copy.copy(self._default_options)
|
|
703
|
+
|
|
676
704
|
def set_default_options(self):
|
|
677
705
|
"""Set the widgets to the values passed in the constructor's
|
|
678
706
|
`args` parameter. This calls `set_options` with force=True and
|