36 progressUnit(
KJob::Bytes), percentage(0),
37 suspended(false), capabilities(
KJob::NoCapabilities),
38 speedTimer(0), isAutoDelete(true), eventLoop(0), isFinished(false)
81 if ( delegate == 0 || delegate->setJob(
this ) )
84 d->uiDelegate = delegate;
88 d->uiDelegate->connectJob(
this );
95 return d_func()->uiDelegate;
100 return d_func()->capabilities;
105 return d_func()->suspended;
122 d->isFinished =
true;
161 d->suspended =
false;
203 Q_ASSERT( ! d->eventLoop );
205 QEventLoop loop(
this );
206 d->eventLoop = &loop;
209 if( !d->isFinished ) {
210 d->eventLoop->exec(QEventLoop::ExcludeUserInputEvents);
214 if ( wasAutoDelete ) {
217 return ( d->error ==
NoError );
222 return d_func()->error;
227 return d_func()->errorText;
232 return d_func()->errorText;
237 return d_func()->processedAmount[unit];
242 return d_func()->totalAmount[unit];
247 return d_func()->percentage;
253 d->error = errorCode;
265 bool should_emit = (d->processedAmount[unit] != amount);
267 d->processedAmount[unit] = amount;
272 if (unit==d->progressUnit) {
274 emitPercent(d->processedAmount[unit], d->totalAmount[unit]);
282 bool should_emit = (d->totalAmount[unit] != amount);
284 d->totalAmount[unit] = amount;
289 if (unit==d->progressUnit) {
291 emitPercent(d->processedAmount[unit], d->totalAmount[unit]);
299 if ( d->percentage!=percentage )
301 d->percentage = percentage;
302 emit
percent(
this, percentage );
309 d->isFinished =
true;
311 if ( d->eventLoop ) {
312 d->eventLoop->quit();
329 unsigned long oldPercentage = d->percentage;
330 d->percentage = (
unsigned long)(( (
float)(processedAmount) / (
float)(totalAmount) ) * 100.0);
331 if ( d->percentage != oldPercentage ) {
332 emit
percent(
this, d->percentage );
340 if (!d->speedTimer) {
341 d->speedTimer =
new QTimer(
this);
342 connect(d->speedTimer, SIGNAL(
timeout()), SLOT(_k_speedTimeout()));
345 emit
speed(
this, value);
346 d->speedTimer->start(5000);
361 return d->isAutoDelete;
367 d->isAutoDelete = autodelete;