blob: c2656574b2bd7b3aebef4c496c13515423faa960 (
plain)
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
|
#ifndef CHARTFORM_H
#define CHARTFORM_H
#include "element.h"
#include <qmainwindow.h>
#include <qstringlist.h>
class CanvasView;
class QAction;
class QCanvas;
class QFont;
class QPrinter;
class QString;
class ChartForm: public QMainWindow
{
Q_OBJECT
public:
enum { MAX_ELEMENTS = 100 };
enum { MAX_RECENTFILES = 9 }; // Must not exceed 9
enum ChartType { PIE, VERTICAL_BAR, HORIZONTAL_BAR };
enum AddValuesType { NO, YES, AS_PERCENTAGE };
ChartForm( const QString& filename );
~ChartForm();
int chartType() { return m_chartType; }
void setChanged( bool changed = TRUE ) { m_changed = changed; }
void drawElements();
QPopupMenu *optionsMenu; // Why public? See canvasview.cpp
protected:
virtual void closeEvent( QCloseEvent * );
private slots:
void fileNew();
void fileOpen();
void fileOpenRecent( int index );
void fileSave();
void fileSaveAs();
void fileSaveAsPixmap();
void filePrint();
void fileQuit();
void optionsSetData();
void updateChartType( QAction *action );
void optionsSetFont();
void optionsSetOptions();
void helpHelp();
void helpAbout();
void helpAboutQt();
void saveOptions();
private:
void init();
void load( const QString& filename );
bool okToClear();
void drawPieChart( const double scales[], double total, int count );
void drawVerticalBarChart( const double scales[], double total, int count );
void drawHorizontalBarChart( const double scales[], double total, int count );
QString valueLabel( const QString& label, double value, double total );
void updateRecentFiles( const QString& filename );
void updateRecentFilesMenu();
void setChartType( ChartType chartType );
QPopupMenu *fileMenu;
QAction *optionsPieChartAction;
QAction *optionsHorizontalBarChartAction;
QAction *optionsVerticalBarChartAction;
QString m_filename;
QStringList m_recentFiles;
QCanvas *m_canvas;
CanvasView *m_canvasView;
bool m_changed;
ElementVector m_elements;
QPrinter *m_printer;
ChartType m_chartType;
AddValuesType m_addValues;
int m_decimalPlaces;
QFont m_font;
};
#endif
|