lbajardsilogic@0
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
lbajardsilogic@0
|
2
|
lbajardsilogic@0
|
3 /*
|
lbajardsilogic@0
|
4 Sonic Visualiser
|
lbajardsilogic@0
|
5 An audio file viewer and annotation editor.
|
lbajardsilogic@0
|
6 Centre for Digital Music, Queen Mary, University of London.
|
lbajardsilogic@0
|
7 This file copyright 2006 Chris Cannam.
|
lbajardsilogic@0
|
8
|
lbajardsilogic@0
|
9 This program is free software; you can redistribute it and/or
|
lbajardsilogic@0
|
10 modify it under the terms of the GNU General Public License as
|
lbajardsilogic@0
|
11 published by the Free Software Foundation; either version 2 of the
|
lbajardsilogic@0
|
12 License, or (at your option) any later version. See the file
|
lbajardsilogic@0
|
13 COPYING included with this distribution for more information.
|
lbajardsilogic@0
|
14 */
|
lbajardsilogic@0
|
15
|
lbajardsilogic@0
|
16 #include "ItemEditDialog.h"
|
lbajardsilogic@0
|
17
|
lbajardsilogic@0
|
18 #include <QLineEdit>
|
lbajardsilogic@0
|
19 #include <QDoubleSpinBox>
|
lbajardsilogic@0
|
20 #include <QSpinBox>
|
lbajardsilogic@0
|
21 #include <QGridLayout>
|
lbajardsilogic@0
|
22 #include <QHBoxLayout>
|
lbajardsilogic@0
|
23 #include <QLabel>
|
lbajardsilogic@0
|
24 #include <QPushButton>
|
lbajardsilogic@0
|
25 #include <QGroupBox>
|
lbajardsilogic@0
|
26
|
lbajardsilogic@0
|
27 #include <float.h> // for FLT_MIN/MAX
|
lbajardsilogic@0
|
28
|
lbajardsilogic@0
|
29
|
lbajardsilogic@0
|
30 ItemEditDialog::ItemEditDialog(size_t sampleRate, int options,
|
lbajardsilogic@0
|
31 QString valueUnits, QWidget *parent) :
|
lbajardsilogic@0
|
32 QDialog(parent),
|
lbajardsilogic@0
|
33 m_sampleRate(sampleRate),
|
lbajardsilogic@0
|
34 m_frameTimeSpinBox(0),
|
lbajardsilogic@0
|
35 m_realTimeSecsSpinBox(0),
|
lbajardsilogic@0
|
36 m_realTimeUSecsSpinBox(0),
|
lbajardsilogic@0
|
37 m_frameDurationSpinBox(0),
|
lbajardsilogic@0
|
38 m_realDurationSecsSpinBox(0),
|
lbajardsilogic@0
|
39 m_realDurationUSecsSpinBox(0),
|
lbajardsilogic@0
|
40 m_valueSpinBox(0),
|
lbajardsilogic@0
|
41 m_textField(0)
|
lbajardsilogic@0
|
42 {
|
lbajardsilogic@0
|
43 QGridLayout *grid = new QGridLayout;
|
lbajardsilogic@0
|
44 setLayout(grid);
|
lbajardsilogic@0
|
45
|
lbajardsilogic@0
|
46 QGroupBox *timeBox = 0;
|
lbajardsilogic@0
|
47 QGroupBox *valueBox = 0;
|
lbajardsilogic@0
|
48 QGridLayout *subgrid = 0;
|
lbajardsilogic@0
|
49
|
lbajardsilogic@0
|
50 int row = 0, subrow = 0;
|
lbajardsilogic@0
|
51
|
lbajardsilogic@0
|
52 size_t singleStep = RealTime::frame2RealTime(2, sampleRate).usec() - 1;
|
lbajardsilogic@0
|
53
|
lbajardsilogic@0
|
54 if ((options & ShowTime) || (options & ShowDuration)) {
|
lbajardsilogic@0
|
55
|
lbajardsilogic@0
|
56 timeBox = new QGroupBox;
|
lbajardsilogic@0
|
57 timeBox->setTitle(tr("Timing"));
|
lbajardsilogic@0
|
58 grid->addWidget(timeBox, row, 0);
|
lbajardsilogic@0
|
59
|
lbajardsilogic@0
|
60 subgrid = new QGridLayout;
|
lbajardsilogic@0
|
61 timeBox->setLayout(subgrid);
|
lbajardsilogic@0
|
62
|
lbajardsilogic@0
|
63 ++row;
|
lbajardsilogic@0
|
64 }
|
lbajardsilogic@0
|
65
|
lbajardsilogic@0
|
66 if (options & ShowTime) {
|
lbajardsilogic@0
|
67
|
lbajardsilogic@0
|
68 subgrid->addWidget(new QLabel(tr("Time:")), subrow, 0);
|
lbajardsilogic@0
|
69
|
lbajardsilogic@0
|
70 m_frameTimeSpinBox = new QSpinBox;
|
lbajardsilogic@0
|
71 m_frameTimeSpinBox->setMaximum(INT_MAX);
|
lbajardsilogic@0
|
72 m_frameTimeSpinBox->setSuffix(tr(" frames"));
|
lbajardsilogic@0
|
73 subgrid->addWidget(m_frameTimeSpinBox, subrow, 1, 1, 2);
|
lbajardsilogic@0
|
74 connect(m_frameTimeSpinBox, SIGNAL(valueChanged(int)),
|
lbajardsilogic@0
|
75 this, SLOT(frameTimeChanged(int)));
|
lbajardsilogic@0
|
76
|
lbajardsilogic@0
|
77 ++subrow;
|
lbajardsilogic@0
|
78
|
lbajardsilogic@0
|
79 m_realTimeSecsSpinBox = new QSpinBox;
|
lbajardsilogic@0
|
80 m_realTimeSecsSpinBox->setMaximum(999999);
|
lbajardsilogic@0
|
81 m_realTimeSecsSpinBox->setSuffix(tr(" sec"));
|
lbajardsilogic@0
|
82 subgrid->addWidget(m_realTimeSecsSpinBox, subrow, 1);
|
lbajardsilogic@0
|
83 connect(m_realTimeSecsSpinBox, SIGNAL(valueChanged(int)),
|
lbajardsilogic@0
|
84 this, SLOT(realTimeSecsChanged(int)));
|
lbajardsilogic@0
|
85
|
lbajardsilogic@0
|
86 m_realTimeUSecsSpinBox = new QSpinBox;
|
lbajardsilogic@0
|
87 m_realTimeUSecsSpinBox->setMaximum(999999);
|
lbajardsilogic@0
|
88 m_realTimeUSecsSpinBox->setSuffix(tr(" usec"));
|
lbajardsilogic@0
|
89 m_realTimeUSecsSpinBox->setSingleStep(singleStep);
|
lbajardsilogic@0
|
90 subgrid->addWidget(m_realTimeUSecsSpinBox, subrow, 2);
|
lbajardsilogic@0
|
91 connect(m_realTimeUSecsSpinBox, SIGNAL(valueChanged(int)),
|
lbajardsilogic@0
|
92 this, SLOT(realTimeUSecsChanged(int)));
|
lbajardsilogic@0
|
93
|
lbajardsilogic@0
|
94 ++subrow;
|
lbajardsilogic@0
|
95 }
|
lbajardsilogic@0
|
96
|
lbajardsilogic@0
|
97 if (options & ShowDuration) {
|
lbajardsilogic@0
|
98
|
lbajardsilogic@0
|
99 subgrid->addWidget(new QLabel(tr("Duration:")), subrow, 0);
|
lbajardsilogic@0
|
100
|
lbajardsilogic@0
|
101 m_frameDurationSpinBox = new QSpinBox;
|
lbajardsilogic@0
|
102 m_frameDurationSpinBox->setMaximum(INT_MAX);
|
lbajardsilogic@0
|
103 m_frameDurationSpinBox->setSuffix(tr(" frames"));
|
lbajardsilogic@0
|
104 subgrid->addWidget(m_frameDurationSpinBox, subrow, 1, 1, 2);
|
lbajardsilogic@0
|
105 connect(m_frameDurationSpinBox, SIGNAL(valueChanged(int)),
|
lbajardsilogic@0
|
106 this, SLOT(frameDurationChanged(int)));
|
lbajardsilogic@0
|
107
|
lbajardsilogic@0
|
108 ++subrow;
|
lbajardsilogic@0
|
109
|
lbajardsilogic@0
|
110 m_realDurationSecsSpinBox = new QSpinBox;
|
lbajardsilogic@0
|
111 m_realDurationSecsSpinBox->setMaximum(999999);
|
lbajardsilogic@0
|
112 m_realDurationSecsSpinBox->setSuffix(tr(" sec"));
|
lbajardsilogic@0
|
113 subgrid->addWidget(m_realDurationSecsSpinBox, subrow, 1);
|
lbajardsilogic@0
|
114 connect(m_realDurationSecsSpinBox, SIGNAL(valueChanged(int)),
|
lbajardsilogic@0
|
115 this, SLOT(realDurationSecsChanged(int)));
|
lbajardsilogic@0
|
116
|
lbajardsilogic@0
|
117 m_realDurationUSecsSpinBox = new QSpinBox;
|
lbajardsilogic@0
|
118 m_realDurationUSecsSpinBox->setMaximum(999999);
|
lbajardsilogic@0
|
119 m_realDurationUSecsSpinBox->setSuffix(tr(" usec"));
|
lbajardsilogic@0
|
120 m_realDurationUSecsSpinBox->setSingleStep(singleStep);
|
lbajardsilogic@0
|
121 subgrid->addWidget(m_realDurationUSecsSpinBox, subrow, 2);
|
lbajardsilogic@0
|
122 connect(m_realDurationUSecsSpinBox, SIGNAL(valueChanged(int)),
|
lbajardsilogic@0
|
123 this, SLOT(realDurationUSecsChanged(int)));
|
lbajardsilogic@0
|
124
|
lbajardsilogic@0
|
125 ++subrow;
|
lbajardsilogic@0
|
126 }
|
lbajardsilogic@0
|
127
|
lbajardsilogic@0
|
128 if ((options & ShowValue) || (options & ShowText)) {
|
lbajardsilogic@0
|
129
|
lbajardsilogic@0
|
130 valueBox = new QGroupBox;
|
lbajardsilogic@0
|
131 valueBox->setTitle(tr("Properties"));
|
lbajardsilogic@0
|
132 grid->addWidget(valueBox, row, 0);
|
lbajardsilogic@0
|
133
|
lbajardsilogic@0
|
134 subgrid = new QGridLayout;
|
lbajardsilogic@0
|
135 valueBox->setLayout(subgrid);
|
lbajardsilogic@0
|
136
|
lbajardsilogic@0
|
137 ++row;
|
lbajardsilogic@0
|
138 }
|
lbajardsilogic@0
|
139
|
lbajardsilogic@0
|
140 subrow = 0;
|
lbajardsilogic@0
|
141
|
lbajardsilogic@0
|
142 if (options & ShowValue) {
|
lbajardsilogic@0
|
143
|
lbajardsilogic@0
|
144 subgrid->addWidget(new QLabel(tr("Value:")), subrow, 0);
|
lbajardsilogic@0
|
145
|
lbajardsilogic@0
|
146 m_valueSpinBox = new QDoubleSpinBox;
|
lbajardsilogic@0
|
147 m_valueSpinBox->setSuffix(QString(" %1").arg(valueUnits));
|
lbajardsilogic@0
|
148 m_valueSpinBox->setDecimals(10);
|
lbajardsilogic@0
|
149 m_valueSpinBox->setMinimum(-1e100);
|
lbajardsilogic@0
|
150 m_valueSpinBox->setMaximum(1e100);
|
lbajardsilogic@0
|
151 connect(m_valueSpinBox, SIGNAL(valueChanged(double)),
|
lbajardsilogic@0
|
152 this, SLOT(valueChanged(double)));
|
lbajardsilogic@0
|
153 subgrid->addWidget(m_valueSpinBox, subrow, 1);
|
lbajardsilogic@0
|
154
|
lbajardsilogic@0
|
155 ++subrow;
|
lbajardsilogic@0
|
156 }
|
lbajardsilogic@0
|
157
|
lbajardsilogic@0
|
158 if (options & ShowText) {
|
lbajardsilogic@0
|
159
|
lbajardsilogic@0
|
160 subgrid->addWidget(new QLabel(tr("Text:")), subrow, 0);
|
lbajardsilogic@0
|
161
|
lbajardsilogic@0
|
162 m_textField = new QLineEdit;
|
lbajardsilogic@0
|
163 connect(m_textField, SIGNAL(textChanged(QString)),
|
lbajardsilogic@0
|
164 this, SLOT(textChanged(QString)));
|
lbajardsilogic@0
|
165 subgrid->addWidget(m_textField, subrow, 1);
|
lbajardsilogic@0
|
166
|
lbajardsilogic@0
|
167 ++subrow;
|
lbajardsilogic@0
|
168 }
|
lbajardsilogic@0
|
169
|
lbajardsilogic@0
|
170 if (options & ShowText) {
|
lbajardsilogic@0
|
171 m_textField->setFocus(Qt::OtherFocusReason);
|
lbajardsilogic@0
|
172 } else if (options & ShowValue) {
|
lbajardsilogic@0
|
173 m_valueSpinBox->setFocus(Qt::OtherFocusReason);
|
lbajardsilogic@0
|
174 }
|
lbajardsilogic@0
|
175
|
lbajardsilogic@0
|
176 QHBoxLayout *hbox = new QHBoxLayout;
|
lbajardsilogic@0
|
177 grid->addLayout(hbox, row, 0, 1, 2);
|
lbajardsilogic@0
|
178
|
lbajardsilogic@0
|
179 QPushButton *ok = new QPushButton(tr("OK"));
|
lbajardsilogic@0
|
180 m_resetButton = new QPushButton(tr("Reset"));
|
lbajardsilogic@0
|
181 QPushButton *cancel = new QPushButton(tr("Cancel"));
|
lbajardsilogic@0
|
182 hbox->addStretch(10);
|
lbajardsilogic@0
|
183 hbox->addWidget(ok);
|
lbajardsilogic@0
|
184 hbox->addWidget(m_resetButton);
|
lbajardsilogic@0
|
185 hbox->addWidget(cancel);
|
lbajardsilogic@0
|
186 ok->setDefault(true);
|
lbajardsilogic@0
|
187 connect(ok, SIGNAL(clicked()), this, SLOT(accept()));
|
lbajardsilogic@0
|
188 connect(m_resetButton, SIGNAL(clicked()), this, SLOT(reset()));
|
lbajardsilogic@0
|
189 connect(cancel, SIGNAL(clicked()), this, SLOT(reject()));
|
lbajardsilogic@0
|
190 m_resetButton->setEnabled(false);
|
lbajardsilogic@0
|
191 }
|
lbajardsilogic@0
|
192
|
lbajardsilogic@0
|
193 void
|
lbajardsilogic@0
|
194 ItemEditDialog::setFrameTime(long frame)
|
lbajardsilogic@0
|
195 {
|
lbajardsilogic@0
|
196 if (!m_frameTimeSpinBox) return;
|
lbajardsilogic@0
|
197
|
lbajardsilogic@0
|
198 RealTime rt(RealTime::frame2RealTime(frame, m_sampleRate));
|
lbajardsilogic@0
|
199 m_realTimeSecsSpinBox->setValue(rt.sec);
|
lbajardsilogic@0
|
200 m_realTimeUSecsSpinBox->setValue(rt.usec());
|
lbajardsilogic@0
|
201 m_frameTimeSpinBox->setValue(frame);
|
lbajardsilogic@0
|
202 m_defaultFrame = frame;
|
lbajardsilogic@0
|
203 m_resetButton->setEnabled(false);
|
lbajardsilogic@0
|
204 }
|
lbajardsilogic@0
|
205
|
lbajardsilogic@0
|
206 long
|
lbajardsilogic@0
|
207 ItemEditDialog::getFrameTime() const
|
lbajardsilogic@0
|
208 {
|
lbajardsilogic@0
|
209 return m_frameTimeSpinBox->value();
|
lbajardsilogic@0
|
210 }
|
lbajardsilogic@0
|
211
|
lbajardsilogic@0
|
212 void
|
lbajardsilogic@0
|
213 ItemEditDialog::setRealTime(RealTime rt)
|
lbajardsilogic@0
|
214 {
|
lbajardsilogic@0
|
215 setFrameTime(RealTime::realTime2Frame(rt, m_sampleRate));
|
lbajardsilogic@0
|
216 }
|
lbajardsilogic@0
|
217
|
lbajardsilogic@0
|
218 RealTime
|
lbajardsilogic@0
|
219 ItemEditDialog::getRealTime() const
|
lbajardsilogic@0
|
220 {
|
lbajardsilogic@0
|
221 return RealTime::frame2RealTime(getFrameTime(), m_sampleRate);
|
lbajardsilogic@0
|
222 }
|
lbajardsilogic@0
|
223
|
lbajardsilogic@0
|
224 void
|
lbajardsilogic@0
|
225 ItemEditDialog::setFrameDuration(long duration)
|
lbajardsilogic@0
|
226 {
|
lbajardsilogic@0
|
227 if (!m_frameDurationSpinBox) return;
|
lbajardsilogic@0
|
228
|
lbajardsilogic@0
|
229 RealTime rt(RealTime::frame2RealTime(duration, m_sampleRate));
|
lbajardsilogic@0
|
230 m_realDurationSecsSpinBox->setValue(rt.sec);
|
lbajardsilogic@0
|
231 m_realDurationUSecsSpinBox->setValue(rt.usec());
|
lbajardsilogic@0
|
232 m_frameDurationSpinBox->setValue(duration);
|
lbajardsilogic@0
|
233 m_defaultDuration = duration;
|
lbajardsilogic@0
|
234 m_resetButton->setEnabled(false);
|
lbajardsilogic@0
|
235 }
|
lbajardsilogic@0
|
236
|
lbajardsilogic@0
|
237 long
|
lbajardsilogic@0
|
238 ItemEditDialog::getFrameDuration() const
|
lbajardsilogic@0
|
239 {
|
lbajardsilogic@0
|
240 return m_frameDurationSpinBox->value();
|
lbajardsilogic@0
|
241 }
|
lbajardsilogic@0
|
242
|
lbajardsilogic@0
|
243 void
|
lbajardsilogic@0
|
244 ItemEditDialog::setRealDuration(RealTime rt)
|
lbajardsilogic@0
|
245 {
|
lbajardsilogic@0
|
246 setFrameDuration(RealTime::realTime2Frame(rt, m_sampleRate));
|
lbajardsilogic@0
|
247 }
|
lbajardsilogic@0
|
248
|
lbajardsilogic@0
|
249 RealTime
|
lbajardsilogic@0
|
250 ItemEditDialog::getRealDuration() const
|
lbajardsilogic@0
|
251 {
|
lbajardsilogic@0
|
252 return RealTime::frame2RealTime(getFrameDuration(), m_sampleRate);
|
lbajardsilogic@0
|
253 }
|
lbajardsilogic@0
|
254
|
lbajardsilogic@0
|
255 void
|
lbajardsilogic@0
|
256 ItemEditDialog::setValue(float v)
|
lbajardsilogic@0
|
257 {
|
lbajardsilogic@0
|
258 if (!m_valueSpinBox) return;
|
lbajardsilogic@0
|
259
|
lbajardsilogic@0
|
260 m_valueSpinBox->setValue(v);
|
lbajardsilogic@0
|
261 m_defaultValue = v;
|
lbajardsilogic@0
|
262 m_resetButton->setEnabled(false);
|
lbajardsilogic@0
|
263 }
|
lbajardsilogic@0
|
264
|
lbajardsilogic@0
|
265 float
|
lbajardsilogic@0
|
266 ItemEditDialog::getValue() const
|
lbajardsilogic@0
|
267 {
|
lbajardsilogic@0
|
268 return m_valueSpinBox->value();
|
lbajardsilogic@0
|
269 }
|
lbajardsilogic@0
|
270
|
lbajardsilogic@0
|
271 void
|
lbajardsilogic@0
|
272 ItemEditDialog::setText(QString text)
|
lbajardsilogic@0
|
273 {
|
lbajardsilogic@0
|
274 if (!m_textField) return;
|
lbajardsilogic@0
|
275
|
lbajardsilogic@0
|
276 m_textField->setText(text);
|
lbajardsilogic@0
|
277 m_defaultText = text;
|
lbajardsilogic@0
|
278 m_resetButton->setEnabled(false);
|
lbajardsilogic@0
|
279 }
|
lbajardsilogic@0
|
280
|
lbajardsilogic@0
|
281 QString
|
lbajardsilogic@0
|
282 ItemEditDialog::getText() const
|
lbajardsilogic@0
|
283 {
|
lbajardsilogic@0
|
284 return m_textField->text();
|
lbajardsilogic@0
|
285 }
|
lbajardsilogic@0
|
286
|
lbajardsilogic@0
|
287 void
|
lbajardsilogic@0
|
288 ItemEditDialog::frameTimeChanged(int i)
|
lbajardsilogic@0
|
289 {
|
lbajardsilogic@0
|
290 m_realTimeSecsSpinBox->blockSignals(true);
|
lbajardsilogic@0
|
291 m_realTimeUSecsSpinBox->blockSignals(true);
|
lbajardsilogic@0
|
292
|
lbajardsilogic@0
|
293 RealTime rt(RealTime::frame2RealTime(i, m_sampleRate));
|
lbajardsilogic@0
|
294 m_realTimeSecsSpinBox->setValue(rt.sec);
|
lbajardsilogic@0
|
295 m_realTimeUSecsSpinBox->setValue(rt.usec());
|
lbajardsilogic@0
|
296
|
lbajardsilogic@0
|
297 m_realTimeSecsSpinBox->blockSignals(false);
|
lbajardsilogic@0
|
298 m_realTimeUSecsSpinBox->blockSignals(false);
|
lbajardsilogic@0
|
299 m_resetButton->setEnabled(true);
|
lbajardsilogic@0
|
300 }
|
lbajardsilogic@0
|
301
|
lbajardsilogic@0
|
302 void
|
lbajardsilogic@0
|
303 ItemEditDialog::realTimeSecsChanged(int i)
|
lbajardsilogic@0
|
304 {
|
lbajardsilogic@0
|
305 RealTime rt = getRealTime();
|
lbajardsilogic@0
|
306 rt.sec = i;
|
lbajardsilogic@0
|
307 size_t frame = RealTime::realTime2Frame(rt, m_sampleRate);
|
lbajardsilogic@0
|
308 m_frameTimeSpinBox->setValue(frame);
|
lbajardsilogic@0
|
309 m_resetButton->setEnabled(true);
|
lbajardsilogic@0
|
310 }
|
lbajardsilogic@0
|
311
|
lbajardsilogic@0
|
312 void
|
lbajardsilogic@0
|
313 ItemEditDialog::realTimeUSecsChanged(int i)
|
lbajardsilogic@0
|
314 {
|
lbajardsilogic@0
|
315 RealTime rt = getRealTime();
|
lbajardsilogic@0
|
316 rt.nsec = i * 1000;
|
lbajardsilogic@0
|
317 size_t frame = RealTime::realTime2Frame(rt, m_sampleRate);
|
lbajardsilogic@0
|
318 m_frameTimeSpinBox->setValue(frame);
|
lbajardsilogic@0
|
319 m_resetButton->setEnabled(true);
|
lbajardsilogic@0
|
320 }
|
lbajardsilogic@0
|
321
|
lbajardsilogic@0
|
322 void
|
lbajardsilogic@0
|
323 ItemEditDialog::frameDurationChanged(int i)
|
lbajardsilogic@0
|
324 {
|
lbajardsilogic@0
|
325 m_realDurationSecsSpinBox->blockSignals(true);
|
lbajardsilogic@0
|
326 m_realDurationUSecsSpinBox->blockSignals(true);
|
lbajardsilogic@0
|
327
|
lbajardsilogic@0
|
328 RealTime rt(RealTime::frame2RealTime(i, m_sampleRate));
|
lbajardsilogic@0
|
329 m_realDurationSecsSpinBox->setValue(rt.sec);
|
lbajardsilogic@0
|
330 m_realDurationUSecsSpinBox->setValue(rt.usec());
|
lbajardsilogic@0
|
331
|
lbajardsilogic@0
|
332 m_realDurationSecsSpinBox->blockSignals(false);
|
lbajardsilogic@0
|
333 m_realDurationUSecsSpinBox->blockSignals(false);
|
lbajardsilogic@0
|
334 m_resetButton->setEnabled(true);
|
lbajardsilogic@0
|
335 }
|
lbajardsilogic@0
|
336
|
lbajardsilogic@0
|
337 void
|
lbajardsilogic@0
|
338 ItemEditDialog::realDurationSecsChanged(int i)
|
lbajardsilogic@0
|
339 {
|
lbajardsilogic@0
|
340 RealTime rt = getRealDuration();
|
lbajardsilogic@0
|
341 rt.sec = i;
|
lbajardsilogic@0
|
342 size_t frame = RealTime::realTime2Frame(rt, m_sampleRate);
|
lbajardsilogic@0
|
343 m_frameDurationSpinBox->setValue(frame);
|
lbajardsilogic@0
|
344 m_resetButton->setEnabled(true);
|
lbajardsilogic@0
|
345 }
|
lbajardsilogic@0
|
346
|
lbajardsilogic@0
|
347 void
|
lbajardsilogic@0
|
348 ItemEditDialog::realDurationUSecsChanged(int i)
|
lbajardsilogic@0
|
349 {
|
lbajardsilogic@0
|
350 RealTime rt = getRealDuration();
|
lbajardsilogic@0
|
351 rt.nsec = i * 1000;
|
lbajardsilogic@0
|
352 size_t frame = RealTime::realTime2Frame(rt, m_sampleRate);
|
lbajardsilogic@0
|
353 m_frameDurationSpinBox->setValue(frame);
|
lbajardsilogic@0
|
354 m_resetButton->setEnabled(true);
|
lbajardsilogic@0
|
355 }
|
lbajardsilogic@0
|
356
|
lbajardsilogic@0
|
357 void
|
lbajardsilogic@0
|
358 ItemEditDialog::valueChanged(double)
|
lbajardsilogic@0
|
359 {
|
lbajardsilogic@0
|
360 m_resetButton->setEnabled(true);
|
lbajardsilogic@0
|
361 }
|
lbajardsilogic@0
|
362
|
lbajardsilogic@0
|
363 void
|
lbajardsilogic@0
|
364 ItemEditDialog::textChanged(QString)
|
lbajardsilogic@0
|
365 {
|
lbajardsilogic@0
|
366 m_resetButton->setEnabled(true);
|
lbajardsilogic@0
|
367 }
|
lbajardsilogic@0
|
368
|
lbajardsilogic@0
|
369 void
|
lbajardsilogic@0
|
370 ItemEditDialog::reset()
|
lbajardsilogic@0
|
371 {
|
lbajardsilogic@0
|
372 setFrameTime(m_defaultFrame);
|
lbajardsilogic@0
|
373 setFrameDuration(m_defaultDuration);
|
lbajardsilogic@0
|
374 setValue(m_defaultValue);
|
lbajardsilogic@0
|
375 setText(m_defaultText);
|
lbajardsilogic@0
|
376 m_resetButton->setEnabled(false);
|
lbajardsilogic@0
|
377 }
|
lbajardsilogic@0
|
378
|