kchart
kchart_part.h00001
00005 #ifndef KCHART_PART_H
00006 #define KCHART_PART_H
00007
00008
00009 #include <kconfig.h>
00010
00011 #include <koChart.h>
00012 #include "kchart_params.h"
00013 #include "koffice_export.h"
00014
00015 class KoXmlWriter;
00016 class KoGenStyles;
00017 namespace KChart
00018 {
00019
00020 class KChartParams;
00021
00022
00023 class KCHART_EXPORT KChartPart : public KoChart::Part
00024 {
00025 Q_OBJECT
00026
00027 public:
00028 KChartPart( QWidget *parentWidget = 0, const char *widgetName = 0,
00029 QObject* parent = 0, const char* name = 0,
00030 bool singleViewMode = false );
00031 ~KChartPart();
00032
00033
00034
00035 virtual bool initDoc(InitDocFlags flags, QWidget* parentWidget=0);
00036
00037 virtual void paintContent( QPainter& painter, const QRect& rect,
00038 bool transparent = false,
00039 double zoomX = 1.0, double zoomY = 1.0 );
00040
00041
00042
00043
00044 virtual void resizeData( int rows, int columns );
00045 virtual void setCellData( int row, int column, const QVariant &);
00046 virtual void analyzeHeaders( );
00047 virtual void setCanChangeValue( bool b ) { m_bCanChangeValue = b; }
00048
00049
00050
00051 void analyzeHeaders( const KDChartTableData& data );
00052 void doSetData( const KDChartTableData& data,
00053 bool hasRowHeader,
00054 bool hasRowHeader );
00055
00056 bool showWizard( QString &area );
00057 void initLabelAndLegend();
00058 void loadConfig(KConfig *conf);
00059 void saveConfig(KConfig *conf);
00060 void defaultConfig();
00061
00062 KChartParams::ChartType chartType() const { return (KChartParams::ChartType) params()->chartType(); }
00063 KDChartTableData *data() { return &m_currentData; }
00064 KChartParams *params() const { return m_params; }
00065
00066 QStringList &rowLabelTexts() { return m_rowLabels; }
00067 QStringList &colLabelTexts() { return m_colLabels; }
00068
00069
00070 virtual QDomDocument saveXML();
00071 virtual bool loadXML( QIODevice *, const QDomDocument& doc );
00072 virtual bool loadOasis( const QDomDocument& doc,
00073 KoOasisStyles& oasisStyles,
00074 const QDomDocument& settings,
00075 KoStore *store );
00076 virtual bool saveOasis( KoStore* store,
00077 KoXmlWriter* manifestWriter );
00078
00079 bool canChangeValue() const { return m_bCanChangeValue; }
00080
00081 void initNullChart();
00082
00083
00084 void generateBarChartTemplate();
00085
00086 virtual bool showEmbedInitDialog(QWidget* parent);
00087
00088 public slots:
00089 void slotModified();
00090 virtual void initEmpty();
00091
00092 signals:
00093 void docChanged();
00094
00095 protected:
00096 virtual KoView* createViewInstance( QWidget* parent, const char* name );
00097 bool loadOldXML( const QDomDocument& doc );
00098 bool loadAuxiliary( const QDomDocument& doc );
00099 bool loadData( const QDomDocument& doc, KDChartTableData& currentData );
00100 bool loadOasisData( const QDomElement& tableElem );
00101 void saveOasisData( KoXmlWriter* bodyWriter, KoGenStyles& mainStyles ) const;
00102 void writeAutomaticStyles( KoXmlWriter& contentWriter, KoGenStyles& mainStyles ) const;
00103
00104 private:
00105
00106 void createDisplayData();
00107
00108 QDomElement createElement(const QString &tagName,
00109 const QFont &font,
00110 QDomDocument &doc) const;
00111 QFont toFont(QDomElement &element) const;
00112
00113 void setChartDefaults();
00114
00115 private:
00116
00117 KChartParams *m_params;
00118 KDChartTableData m_currentData;
00119 QString m_regionName;
00120
00121
00122 bool m_bCanChangeValue;
00123
00124
00125 QWidget *m_parentWidget;
00126
00127
00128 KDChartTableData m_displayData;
00129 QStringList m_rowLabels;
00130 QStringList m_colLabels;
00131
00132 QPixmap m_bufferPixmap;
00133 };
00134
00135
00136 class WizardExt : public KoChart::WizardExtension
00137 {
00138 public:
00139 WizardExt( KoChart::Part *part )
00140 : KoChart::WizardExtension( part ) {};
00141
00142 virtual bool show( QString &area ) {
00143 return static_cast<KChartPart *>( part() )->showWizard( area );
00144 }
00145 };
00146
00147 }
00148
00149 #endif
|