You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
4.4 KiB
153 lines
4.4 KiB
15 years ago
|
/**
|
||
|
* Kalle Dalheimer <kalle@kde.org>
|
||
|
*/
|
||
|
|
||
|
#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
|