MCPcopy Create free account
hub / github.com/Cubitect/cubiomes-viewer / progressTimeout

Method progressTimeout

src/headless.cpp:215–254  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

213}
214
215void Headless::progressTimeout()
216{
217 QString status;
218 uint64_t prog, end, seed;
219 qreal min, avg, max;
220 sthread.getProgress(&status, &prog, &end, &seed, &min, &avg, &max);
221
222 if (progressfp)
223 {
224 long pos = ftell(progressfp);
225 fprintf(progressfp, "#Progress: %20" PRId64 "\n", seed);
226 fseek(progressfp, pos, SEEK_SET);
227 }
228
229 short width = get_term_width();
230 if (width <= 24)
231 return;
232
233 qreal perc = (qreal) prog / end;
234
235 int cols = floor(perc * (width - 4) + 1e-6);
236 qint64 sec = elapsed.elapsed() / 1000;
237
238 QStringList l;
239 l += QString(" Found matching seeds:%1 ").arg(results.size(), width-23);
240 l += QString(" Scheduled seed:%1 ").arg((int64_t)seed, width-17);
241 l += QString(" Progress:%1 ").arg(QString("%1 / %2 : %3%").arg(prog).arg(end).arg(100*perc, 5, 'f', 2), width-11);
242 l += QString(" [%1%2] ").arg("", cols, '#').arg("", width-cols-4, '-');
243 l += QString(" %1").arg(status, 1-width);
244 l += QString::asprintf(" %d:%02d:%02d", (int)(sec / 3600), (int)(sec / 60) % 60, (int)(sec % 60));
245 l += "";
246
247 qOut() << "\e[999D\e[" << l.size() << "A";
248 for (QString& s : l)
249 {
250 s.truncate(width);
251 qOut() << s << "\n";
252 }
253 qOut().flush();
254}
255
256

Callers

nothing calls this directly

Calls 2

get_term_widthFunction · 0.85
getProgressMethod · 0.80

Tested by

no test coverage detected