diff options
author | Marius Kintel <marius@kintel.net> | 2013-06-05 01:52:03 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2013-06-05 01:52:03 (GMT) |
commit | c719dde9719b7063247f6d6e149e66e75fbcf40a (patch) | |
tree | 9b6d31b98843c1247b8a022320da020f9de75bdd | |
parent | c5f792e99203a531870287b1c4a0df73b9294bbf (diff) |
More frequent progress updates, progress updates also for CSG evaluation
-rw-r--r-- | src/CSGTermEvaluator.cc | 3 | ||||
-rw-r--r-- | src/ProgressWidget.ui | 3 | ||||
-rw-r--r-- | src/mainwin.cc | 10 |
3 files changed, 11 insertions, 5 deletions
diff --git a/src/CSGTermEvaluator.cc b/src/CSGTermEvaluator.cc index a6b654c..71cf149 100644 --- a/src/CSGTermEvaluator.cc +++ b/src/CSGTermEvaluator.cc @@ -115,6 +115,7 @@ Response CSGTermEvaluator::visit(State &state, const AbstractPolyNode &node) if (ps) { t1 = evaluate_csg_term_from_ps(state, this->highlights, this->background, ps, node.modinst, node); + node.progress_report(); } } this->stored_term[node.index()] = t1; @@ -178,6 +179,7 @@ Response CSGTermEvaluator::visit(State &state, const RenderNode &node) shared_ptr<PolySet> ps; if (this->psevaluator) { ps = this->psevaluator->getPolySet(node, true); + node.progress_report(); } if (ps) { t1 = evaluate_csg_term_from_ps(state, this->highlights, this->background, @@ -201,6 +203,7 @@ Response CSGTermEvaluator::visit(State &state, const CgaladvNode &node) if (ps) { t1 = evaluate_csg_term_from_ps(state, this->highlights, this->background, ps, node.modinst, node); + node.progress_report(); } this->stored_term[node.index()] = t1; addToParent(state, node); diff --git a/src/ProgressWidget.ui b/src/ProgressWidget.ui index 895586c..9563b0f 100644 --- a/src/ProgressWidget.ui +++ b/src/ProgressWidget.ui @@ -22,6 +22,9 @@ </property> <item> <widget class="QProgressBar" name="progressBar"> + <property name="maximum"> + <number>988</number> + </property> <property name="value"> <number>24</number> </property> diff --git a/src/mainwin.cc b/src/mainwin.cc index febb325..597a094 100644 --- a/src/mainwin.cc +++ b/src/mainwin.cc @@ -468,12 +468,12 @@ void MainWindow::showProgress() void MainWindow::report_func(const class AbstractNode*, void *vp, int mark) { MainWindow *thisp = static_cast<MainWindow*>(vp); - int v = (int)((mark*100.0) / progress_report_count); - int percent = v < 100 ? v : 99; - - if (percent > thisp->progresswidget->value()) { + int v = (int)((mark*1000.0) / progress_report_count); + int permille = v < 1000 ? v : 999; + printf("Progress: %d\n", permille); + if (permille > thisp->progresswidget->value()) { QMetaObject::invokeMethod(thisp->progresswidget, "setValue", Qt::QueuedConnection, - Q_ARG(int, percent)); + Q_ARG(int, permille)); QApplication::processEvents(); } |