]> git.mar77i.info Git - bigintmandel/blob - menubar.cpp
make zoom_factor part of MandelSettings
[bigintmandel] / menubar.cpp
1
2 /*
3 * menubar.cpp
4 *
5 * This file is covered by the LICENSE file in the root of this project.
6 */
7
8 #include <QPushButton>
9 #include <qwidget.h>
10
11 #include "menubar.h"
12
13 static inline QAction *zoom_action(
14 MenuBar *menu_bar, QAction *action, int data
15 ) {
16 QObject::connect(
17 action,
18 &QAction::triggered,
19 menu_bar,
20 &MenuBar::change_zoom_factor
21 );
22 action->setData(data);
23 action->setCheckable(true);
24 return action;
25 }
26
27 MenuBar::MenuBar(BigintMandelWidget *parent)
28 : QMenuBar(parent),
29 settings(parent->get_settings()),
30 file_menu(new QMenu("&File", parent)),
31 calc_menu(new QMenu("&Calculation", parent)),
32 zoom_menu(new QMenu("&Zoom", parent)) {
33 QKeySequence no_key;
34 setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
35 load_action = file_menu->addAction(
36 "&Load...", no_key, parent, &BigintMandelWidget::load_data
37 );
38 save_action = file_menu->addAction(
39 "&Save...", no_key, parent, &BigintMandelWidget::save_data
40 );
41 export_action = file_menu->addAction(
42 "&Export...", no_key, parent, &BigintMandelWidget::export_img
43 );
44 file_menu->addSeparator();
45 exit_action = file_menu->addAction(
46 "E&xit", no_key, parent, &BigintMandelWidget::close
47 );
48 addMenu(file_menu);
49
50 reset_action = calc_menu->addAction(
51 "&Reset", no_key, parent, &BigintMandelWidget::reset
52 );
53 resize_action = calc_menu->addAction(
54 "Resi&ze to Window",
55 no_key,
56 parent,
57 &BigintMandelWidget::resize_to_window
58 );
59 settings_action = calc_menu->addAction(
60 "&Settings", no_key, parent, &BigintMandelWidget::exec_settings_widget
61 );
62 addMenu(calc_menu);
63
64 no_action = zoom_action(this, zoom_menu->addAction("&Off"), -1);
65 two_action = zoom_action(this, zoom_menu->addAction("&2"), 2);
66 four_action = zoom_action(this, zoom_menu->addAction("&4"), 4);
67 eight_action = zoom_action(this, zoom_menu->addAction("&8"), 8);
68 sixteen_action = zoom_action(this, zoom_menu->addAction("1&6"), 16);
69 addMenu(zoom_menu);
70 check_action();
71 }