-
-static inline QMenuBar *setup_menu_bar(BigintMandelWidget *parent) {
- QMenuBar *menu_bar = new QMenuBar(parent);
- QMenu *menu = new QMenu("&File", parent);
- QPushButton *button = new QPushButton("Settings");
- QAction *two, *four, *eight, *sixteen;
- menu_bar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- QObject::connect(
- menu->addAction("&Reset"),
- &QAction::triggered,
- parent,
- &BigintMandelWidget::reset
- );
- QObject::connect(
- menu->addAction("&Load"),
- &QAction::triggered,
- parent,
- &BigintMandelWidget::load_data
- );
- QObject::connect(
- menu->addAction("&Save"),
- &QAction::triggered,
- parent,
- &BigintMandelWidget::save_data
- );
- menu->addSeparator();
- QObject::connect(
- menu->addAction("&Export"),
- &QAction::triggered,
- parent,
- &BigintMandelWidget::export_img
- );
- menu->addSeparator();
- QObject::connect(
- menu->addAction("E&xit"),
- &QAction::triggered,
- parent,
- &BigintMandelWidget::close
- );
- menu_bar->addMenu(menu);
- menu = new QMenu("&Zoom factor", parent);
- two = menu->addAction("&2");
- four = menu->addAction("&4");
- eight = menu->addAction("&8");
- sixteen = menu->addAction("1&6");
- two->setCheckable(true);
- two->setChecked(true);
- four->setCheckable(true);
- eight->setCheckable(true);
- sixteen->setCheckable(true);
- QObject::connect(
- two,
- &QAction::triggered,
- parent,
- [two, four, eight, sixteen, parent]() {
- two->setChecked(true);
- four->setChecked(false);
- eight->setChecked(false);
- sixteen->setChecked(false);
- parent->set_zoom_factor(2);
- }
- );
- QObject::connect(
- four,
- &QAction::triggered,
- parent,
- [two, four, eight, sixteen, parent]() {
- two->setChecked(false);
- four->setChecked(true);
- eight->setChecked(false);
- sixteen->setChecked(false);
- parent->set_zoom_factor(4);
- }
- );
- QObject::connect(
- eight,
- &QAction::triggered,
- parent,
- [two, four, eight, sixteen, parent]() {
- two->setChecked(false);
- four->setChecked(false);
- eight->setChecked(true);
- sixteen->setChecked(false);
- parent->set_zoom_factor(8);
- }
- );
- QObject::connect(
- sixteen,
- &QAction::triggered,
- parent,
- [two, four, eight, sixteen, parent]() {
- two->setChecked(false);
- four->setChecked(false);
- eight->setChecked(false);
- sixteen->setChecked(true);
- parent->set_zoom_factor(16);
- }
- );
- menu_bar->addMenu(menu);
- QObject::connect(
- button,
- &QPushButton::clicked,
- parent,
- &BigintMandelWidget::exec_settings_widget
- );
- menu_bar->setCornerWidget(button);
- return menu_bar;
-}
-
-static inline void start_calculation(
- QFutureWatcher<MandelResultCell> *fw, QVector<MandelCell> cells
-) {
- fw->setFuture(
- QtConcurrent::mapped(
- cells,
- [](const MandelCell &cell){ return cell.iterate(); }
- )
- );
-}