-static inline void finished_status(QStatusBar *status_bar) {
- status_bar->showMessage("Click the rendering to zoom.");
-}
-
-void BigintMandelWidget::paintEvent(QPaintEvent *event) {
- static int prev_num_threads = -1;
- if (!img_dirty)
- return;
- img_label->setPixmap(enhance_pixmap(settings.get_pixmap(), draw_progress));
- img_label->resize(img_label->pixmap().size());
- img_dirty = false;
- if (fw->isFinished())
- finished_status(status_bar);
- else {
- calculating_status(status_bar, prev_num_threads);
- prev_num_threads = -1;
- }
+void BigintMandelWidget::start() {
+ fw->setFuture(
+ QtConcurrent::mapped(
+ settings.get_cells(),
+ [](const MandelCell &cell){ return cell.iterate(); }
+ )
+ );
+ menu_bar->set_zoom_factor(-1);
+ update();