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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
/**
* Kalle Dalheimer <[email protected]>
*/
#ifndef KCHART_PART_H
#define KCHART_PART_H
#include <kconfig.h>
#include <koChart.h>
#include "kchart_params.h"
#include "koffice_export.h"
class KoXmlWriter;
class KoGenStyles;
namespace KChart
{
class KChartParams;
class KCHART_EXPORT KChartPart : public KoChart::Part
{
Q_OBJECT
public:
KChartPart( QWidget *parentWidget = 0, const char *widgetName = 0,
QObject* parent = 0, const char* name = 0,
bool singleViewMode = false );
~KChartPart();
// Methods inherited from KoDocument:
virtual bool initDoc(InitDocFlags flags, QWidget* parentWidget=0);
virtual void paintContent( QPainter& painter, const QRect& rect,
bool transparent = false,
double zoomX = 1.0, double zoomY = 1.0 );
// Methods unique to KChart, and available in the new interface
// (see ../interfaces/koChart.h.)
virtual void resizeData( int rows, int columns );
virtual void setCellData( int row, int column, const QVariant &);
virtual void analyzeHeaders( );
virtual void setCanChangeValue( bool b ) { m_bCanChangeValue = b; }
// ----------------------------------------------------------------
void analyzeHeaders( const KDChartTableData& data );
void doSetData( const KDChartTableData& data,
bool firstColHeader,
bool firstRowHeader );
bool showWizard( QString &dataArea );
void initLabelAndLegend();
void loadConfig(KConfig *conf);
void saveConfig(KConfig *conf);
void defaultConfig();
KChartParams::ChartType chartType() const { return (KChartParams::ChartType) params()->chartType(); }
KDChartTableData *data() { return &m_currentData; }
KChartParams *params() const { return m_params; }
QStringList &rowLabelTexts() { return m_rowLabels; }
QStringList &colLabelTexts() { return m_colLabels; }
// Save and load
virtual QDomDocument saveXML();
virtual bool loadXML( QIODevice *, const QDomDocument& doc );
virtual bool loadOasis( const QDomDocument& doc,
KoOasisStyles& oasisStyles,
const QDomDocument& settings,
KoStore *store );
virtual bool saveOasis( KoStore* store,
KoXmlWriter* manifestWriter );
bool canChangeValue() const { return m_bCanChangeValue; }
void initNullChart();
// Functions that generate templates (not used yet):
void generateBarChartTemplate();
virtual bool showEmbedInitDialog(QWidget* parent);
public slots:
void slotModified();
virtual void initEmpty();
signals:
void docChanged();
protected:
virtual KoView* createViewInstance( QWidget* parent, const char* name );
bool loadOldXML( const QDomDocument& doc );
bool loadAuxiliary( const QDomDocument& doc );
bool loadData( const QDomDocument& doc, KDChartTableData& currentData );
bool loadOasisData( const QDomElement& tableElem );
void saveOasisData( KoXmlWriter* bodyWriter, KoGenStyles& mainStyles ) const;
void writeAutomaticStyles( KoXmlWriter& contentWriter, KoGenStyles& mainStyles ) const;
private:
// Helper methods for painting.
int createDisplayData();
void createLabelsAndLegend( QStringList &longLabels,
QStringList &shortLabels );
QDomElement createElement(const QString &tagName,
const QFont &font,
QDomDocument &doc) const;
QFont toFont(QDomElement &element) const;
void setChartDefaults();
private:
// The chart and its contents
KChartParams *m_params; // Everything about the chart
KDChartTableData m_currentData; // The data in the chart.
QStringList m_rowLabels;
QStringList m_colLabels;
//QString m_regionName;
// Other auxiliary values
bool m_bCanChangeValue;
// Graphics
QWidget *m_parentWidget;
// Used when displaying.
KDChartTableData m_displayData;
QPixmap m_bufferPixmap;
};
class WizardExt : public KoChart::WizardExtension
{
public:
WizardExt( KoChart::Part *part )
: KoChart::WizardExtension( part ) {};
virtual bool show( QString &dataArea ) {
return static_cast<KChartPart *>( part() )->showWizard( dataArea );
}
};
} //KChart namespace
#endif
|