Commit 408d060eeacdddc9febfb07a13b2d3f671cfefbd

Authored by caotto
2 parents fc69f628 cbadb416

Merge pull request #150 from biometrics/progressin

Progressin
openbr/core/core.cpp
... ... @@ -148,9 +148,11 @@ struct AlgorithmCore
148 148 if (data.empty())
149 149 return files;
150 150  
  151 + // Store totalSteps for ProgressCounter
  152 + Globals->totalSteps = data.length();
  153 +
151 154 // Trust me, this makes complete sense.
152 155 // We're just going to make a pipe with a placeholder first transform
153   - Globals->totalSteps = data.length();
154 156 QString pipeDesc = "Identity+GalleryOutput("+gallery.flat()+")+ProgressCounter("+QString::number(data.length())+")+Discard";
155 157 QScopedPointer<Transform> basePipe(Transform::make(pipeDesc,NULL));
156 158  
... ...
openbr/gui/progress.cpp
... ... @@ -26,7 +26,7 @@ br::Progress::Progress(QWidget *parent)
26 26 void br::Progress::checkProgress()
27 27 {
28 28 const int progress = 100 * br_progress();
29   - const bool visible = progress >= 0;
  29 + const bool visible = progress >= 0 && progress < 100;
30 30  
31 31 if (visible) {
32 32 showMessage(br_most_recent_message());
... ...
openbr/plugins/misc.cpp
... ... @@ -514,28 +514,20 @@ class ProgressCounterTransform : public TimeVaryingTransform
514 514 void projectUpdate(const TemplateList &src, TemplateList &dst)
515 515 {
516 516 dst = src;
517   - qint64 elapsed = timer.elapsed();
518   - calls++;
519   - set_calls++;
520   - // updated every 10 seconds
521   - if (elapsed > 5 * 1000) {
522   - float f_elapsed = elapsed / 1000.0f;
523   - // remaining calls (according to our input variable)
524   - int remaining = totalTemplates - calls;
525   - // calls / second
526   - float speed = set_calls / f_elapsed;
527 517  
528   - float p = 100 * float(calls) / totalTemplates;
  518 + qint64 elapsed = timer.elapsed();
529 519  
530   - // seconds remaining
531   - int s = float(remaining) / speed;
  520 + // updated every second
  521 + if (elapsed > 1000) {
  522 + float p = br_progress();
  523 + int s = br_time_remaining();
532 524  
533   - fprintf(stderr, "%05.2f%% ELAPSED=%s REMAINING=%s COUNT=%g \r", p, QtUtils::toTime(Globals->startTime.elapsed()/1000.0f).toStdString().c_str(), QtUtils::toTime(s).toStdString().c_str(), float(calls));
  525 + fprintf(stderr, "%05.2f%% ELAPSED=%s REMAINING=%s COUNT=%g \r", p, QtUtils::toTime(Globals->startTime.elapsed()/1000.0f).toStdString().c_str(), QtUtils::toTime(s).toStdString().c_str(), Globals->currentStep);
534 526  
535 527 timer.start();
536   - set_calls = 0;
537 528 }
538 529  
  530 + Globals->currentStep++;
539 531  
540 532 return;
541 533 }
... ... @@ -548,24 +540,18 @@ class ProgressCounterTransform : public TimeVaryingTransform
548 540 void finalize(TemplateList & data)
549 541 {
550 542 (void) data;
551   - float p = 100 * float(calls) / totalTemplates;
552   - qDebug("%05.2f%% ELAPSED=%s REMAINING=%s COUNT=%g \r", p, QtUtils::toTime(Globals->startTime.elapsed()/1000.0f).toStdString().c_str(), QtUtils::toTime(0).toStdString().c_str(), float(calls));
  543 + float p = br_progress();
  544 + qDebug("%05.2f%% ELAPSED=%s REMAINING=%s COUNT=%g \r", p, QtUtils::toTime(Globals->startTime.elapsed()/1000.0f).toStdString().c_str(), QtUtils::toTime(0).toStdString().c_str(), Globals->currentStep);
553 545 }
554 546  
555 547 void init()
556 548 {
557   - calls = 0;
558   - set_calls = 0;
559 549 timer.start();
560 550 }
561 551  
562 552 public:
563 553 ProgressCounterTransform() : TimeVaryingTransform(false,false) {}
564   - bool initialized;
565 554 QElapsedTimer timer;
566   - qint64 calls;
567   - qint64 set_calls;
568   -
569 555 };
570 556  
571 557 BR_REGISTER(Transform, ProgressCounterTransform)
... ...