-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMenuBuilder.cpp
More file actions
99 lines (76 loc) · 2.92 KB
/
Copy pathMenuBuilder.cpp
File metadata and controls
99 lines (76 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include "ChartUI.h"
#include "BarChart.h"
#include "LineChart.h"
#include "PieChart.h"
#include <QTableView>
void chartUI::buildMenus()
{
QMenuBar * menuBar = new QMenuBar(this); //creazione barra menu
QMenu * fileManager = new QMenu("File",menuBar);
menuBar->addMenu(fileManager);
fileManager->addAction("Nuovo",this,SLOT(NewFile()),Qt::Key_F1);
fileManager->addAction("Carica",this,SLOT(FileLoader()),Qt::Key_F2);
fileManager->addAction("Salva",this,SLOT(FileSaver()),Qt::Key_F3);
fileManager->addSeparator();
fileManager->addAction("Esci",qApp,SLOT(quit()),Qt::Key_Escape);
QMenu * chartMenu = new QMenu("Grafico",menuBar);
QMenu * changeView = new QMenu("Cambia vista",chartMenu);
QMenu * addStuffMenu = new QMenu("Aggiungi",chartMenu);
addStuffMenu->addAction("Etichetta vuota",this,SIGNAL(pushRow()),QKeySequence::AddTab);
addStuffMenu->addAction("Colonna vuota",this,SIGNAL(pushColumn()));
pieChange = new QAction("Grafico a torta",changeView);
pieChange->setCheckable(true);
changeView->addAction(pieChange);
lineChange =new QAction("Grafico cartesiano",changeView);
lineChange->setCheckable(true);
changeView->addAction(lineChange);
barChange = new QAction("Grafico a barre",changeView);
barChange->setCheckable(true);
changeView->addAction(barChange);
chartMenu->addMenu(addStuffMenu);
chartMenu->addMenu(changeView);
menuBar->addMenu(chartMenu);
QMenu * other = new QMenu("Altro",menuBar);
other->addAction("About...",this,SLOT(showAboutDialog()));
connect(barChange,SIGNAL(toggled(bool)),this,SLOT(changeToBar(bool)));
connect(lineChange,SIGNAL(toggled(bool)),this,SLOT(changeToLine(bool)));
connect(pieChange,SIGNAL(toggled(bool)),this,SLOT(changeToPie(bool)));
menuBar->addMenu(other);
setMenuBar(menuBar);
}
void chartUI::showAboutDialog(){
QMessageBox::about(this, "About...","ProjectC by Nicola Ravagnan AA 2021/2022");
}
void chartUI::changeToBar(bool i){
if(i){
lineChange->setChecked(false);
pieChange->setChecked(false);
chartModel * aux = chartContainer->getModel();
chartDrawable * toDelete = chartContainer;
chartContainer = new barChart(aux);
setupChart();
delete toDelete;
}
}
void chartUI::changeToLine(bool i){
if(i){
barChange->setChecked(false);
pieChange->setChecked(false);
chartModel * aux = chartContainer->getModel();
chartDrawable * toDelete = chartContainer;
chartContainer = new lineChart(aux);
setupChart();
delete toDelete;
}
}
void chartUI::changeToPie(bool i){
if(i){
lineChange->setChecked(false);
barChange->setChecked(false);
chartModel * aux = chartContainer->getModel();
chartDrawable * toDelete = chartContainer;
chartContainer = new pieChart(aux);
setupChart();
delete toDelete;
}
}