/* * menubar.cpp * * This file is covered by the LICENSE file in the root of this project. */ #include #include #include "menubar.h" static inline QAction *zoom_action( MenuBar *menu_bar, QAction *action, int data ) { QObject::connect( action, &QAction::triggered, menu_bar, &MenuBar::change_zoom_factor ); action->setData(data); action->setCheckable(true); return action; } MenuBar::MenuBar(BigintMandelWidget *parent) : QMenuBar(parent), settings(parent->get_settings()), file_menu(new QMenu("&File", parent)), calc_menu(new QMenu("&Calculation", parent)), zoom_menu(new QMenu("&Zoom", parent)) { QKeySequence no_key; setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); load_action = file_menu->addAction( "&Load...", no_key, parent, &BigintMandelWidget::load_data ); save_action = file_menu->addAction( "&Save...", no_key, parent, &BigintMandelWidget::save_data ); export_action = file_menu->addAction( "&Export...", no_key, parent, &BigintMandelWidget::export_img ); file_menu->addSeparator(); exit_action = file_menu->addAction( "E&xit", no_key, parent, &BigintMandelWidget::close ); addMenu(file_menu); reset_action = calc_menu->addAction( "&Reset", no_key, parent, &BigintMandelWidget::reset ); resize_action = calc_menu->addAction( "Resi&ze to Window", no_key, parent, &BigintMandelWidget::resize_to_window ); settings_action = calc_menu->addAction( "&Settings", no_key, parent, &BigintMandelWidget::exec_settings_widget ); addMenu(calc_menu); no_action = zoom_action(this, zoom_menu->addAction("&Off"), -1); two_action = zoom_action(this, zoom_menu->addAction("&2"), 2); four_action = zoom_action(this, zoom_menu->addAction("&4"), 4); eight_action = zoom_action(this, zoom_menu->addAction("&8"), 8); sixteen_action = zoom_action(this, zoom_menu->addAction("1&6"), 16); addMenu(zoom_menu); check_action(); }