/* * bigintmandelwidget.h * * This file is covered by the LICENSE file in the root of this project. */ #ifndef BIGINTMANDELWIDGET_H #define BIGINTMANDELWIDGET_H #include #include #include #include #include #include "mandel.h" class MenuBar; class MandelLabel; class SettingsWidget; class BigintMandelWidget : public QWidget { Q_OBJECT QFutureWatcher *fw; MandelSettings settings; MenuBar *menu_bar; QScrollArea *scroll_area; MandelLabel *mandel_label; QStatusBar *status_bar; SettingsWidget *settings_widget; void update_status_bar(); void start(); void stop(); inline const QSize get_ideal_size() const { return scroll_area->size().shrunkBy(scroll_area->contentsMargins()); } protected: void mousePressEvent(QMouseEvent *event); public: explicit BigintMandelWidget(QWidget *parent = nullptr); ~BigintMandelWidget(); inline MandelSettings * const get_settings() { return &settings; } public Q_SLOTS: void reset(); void export_img(); void exec_settings_widget(); void settings_widget_accepted(); void finished_cell(int num); void finished(); void load_data(); void save_data(); void update(); void resize_to_window(); }; #endif // BIGINTMANDELWIDGET_H