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