KD Chart API Documentation  3.1
KDChartAbstractDiagram.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** This file is part of the KD Chart library.
4 **
5 ** SPDX-FileCopyrightText: 2001 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
6 **
7 ** SPDX-License-Identifier: MIT
8 **
9 ****************************************************************************/
10 
11 #ifndef KDCHARTABSTRACTDIAGRAM_H
12 #define KDCHARTABSTRACTDIAGRAM_H
13 
14 #include <QAbstractItemView>
15 #include <QList>
16 #include <QRectF>
17 
18 #include "KDChartAttributesModel.h"
19 #include "KDChartGlobal.h"
21 
22 namespace KDChart {
23 
24 class AbstractCoordinatePlane;
25 class AttributesModel;
26 class DataValueAttributes;
27 class PaintContext;
28 
38 class KDCHART_EXPORT AbstractDiagram : public QAbstractItemView
39 {
40  Q_OBJECT
41  Q_DISABLE_COPY(AbstractDiagram)
43 
46  friend class PolarCoordinatePlane;
47 
48 protected:
49  explicit inline AbstractDiagram(
50  Private *p, QWidget *parent, AbstractCoordinatePlane *plane);
51  explicit AbstractDiagram(
52  QWidget *parent = nullptr, AbstractCoordinatePlane *plane = nullptr);
53 
54 public:
55  ~AbstractDiagram() override;
56 
60  bool compare(const AbstractDiagram *other) const;
61 
76  const QPair<QPointF, QPointF> dataBoundaries() const;
77 
78  // protected: // FIXME: why should that be private? (Mirko)
85  virtual void paint(PaintContext *paintContext) = 0;
86 
93  virtual void resize(const QSizeF &area) = 0;
94 
96  void setModel(QAbstractItemModel *model) override;
97 
99  void setSelectionModel(QItemSelectionModel *selectionModel) override;
100 
129  virtual void setAttributesModel(AttributesModel *model);
130 
137  virtual bool usesExternalAttributesModel() const;
138 
149  virtual AttributesModel *attributesModel() const;
150 
153  void setRootIndex(const QModelIndex &idx) override;
154 
156  QRect visualRect(const QModelIndex &index) const override;
158  void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible) override;
160  QModelIndex indexAt(const QPoint &point) const override;
162  QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override;
164  int horizontalOffset() const override;
166  int verticalOffset() const override;
168  bool isIndexHidden(const QModelIndex &index) const override;
170  void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) override;
172  QRegion visualRegionForSelection(const QItemSelection &selection) const override;
173  virtual QRegion visualRegion(const QModelIndex &index) const;
175  void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) override;
177  void doItemsLayout() override;
178 
185  AbstractCoordinatePlane *coordinatePlane() const;
186 
192  virtual void setCoordinatePlane(AbstractCoordinatePlane *plane);
193 
207  void setHidden(const QModelIndex &index, bool hidden);
208 
221  void setHidden(int dataset, bool hidden);
222 
234  void setHidden(bool hidden);
235 
242  bool isHidden() const;
243 
251  bool isHidden(int dataset) const;
252 
260  bool isHidden(const QModelIndex &index) const;
261 
268  void setDataValueAttributes(const QModelIndex &index,
269  const DataValueAttributes &a);
270 
276  void setDataValueAttributes(int dataset, const DataValueAttributes &a);
277 
282  void setDataValueAttributes(const DataValueAttributes &a);
283 
290  DataValueAttributes dataValueAttributes() const;
291 
299  DataValueAttributes dataValueAttributes(int dataset) const;
300 
309  DataValueAttributes dataValueAttributes(const QModelIndex &index) const;
310 
317  void setPen(const QModelIndex &index, const QPen &pen);
318 
324  void setPen(int dataset, const QPen &pen);
325 
330  void setPen(const QPen &pen);
331 
338  QPen pen() const;
346  QPen pen(int dataset) const;
354  QPen pen(const QModelIndex &index) const;
355 
362  void setBrush(const QModelIndex &index, const QBrush &brush);
363 
369  void setBrush(int dataset, const QBrush &brush);
370 
375  void setBrush(const QBrush &brush);
376 
383  QBrush brush() const;
391  QBrush brush(int dataset) const;
399  QBrush brush(const QModelIndex &index) const;
400 
407  void setUnitPrefix(const QString &prefix, int column, Qt::Orientation orientation);
413  void setUnitPrefix(const QString &prefix, Qt::Orientation orientation);
414 
421  void setUnitSuffix(const QString &suffix, int column, Qt::Orientation orientation);
427  void setUnitSuffix(const QString &suffix, Qt::Orientation orientation);
428 
437  QString unitPrefix(int column, Qt::Orientation orientation, bool fallback = false) const;
443  QString unitPrefix(Qt::Orientation orientation) const;
444 
453  QString unitSuffix(int column, Qt::Orientation orientation, bool fallback = false) const;
459  QString unitSuffix(Qt::Orientation orientation) const;
460 
465  void setAllowOverlappingDataValueTexts(bool allow);
466 
470  bool allowOverlappingDataValueTexts() const;
471 
477  void setAntiAliasing(bool enabled);
478 
483  bool antiAliasing() const;
484 
491  void useDefaultColors();
492 
498  void useRainbowColors();
499 
505  void useSubduedColors();
506 
511  QStringList itemRowLabels() const;
512 
517  QStringList datasetLabels() const;
518 
528  QList<QBrush> datasetBrushes() const;
529 
539  QList<QPen> datasetPens() const;
540 
550  QList<MarkerAttributes> datasetMarkers() const;
551 
562  Q_DECL_DEPRECATED void setPercentMode(bool percent);
563 
575  bool percentMode() const;
576 
577  virtual void paintMarker(QPainter *painter,
578  const MarkerAttributes &markerAttributes,
579  const QBrush &brush, const QPen &,
580  const QPointF &point, const QSizeF &size);
581 
596  int datasetDimension() const;
597 
604  Q_DECL_DEPRECATED void setDatasetDimension(int dimension);
605 
606 protected:
607  void setDatasetDimensionInternal(int dimension);
608 
609 public:
610  void update() const;
611 
612  void paintMarker(QPainter *painter, const DataValueAttributes &a,
613  const QModelIndex &index,
614  const QPointF &pos);
615  void paintMarker(QPainter *painter,
616  const QModelIndex &index,
617  const QPointF &pos);
618  void paintDataValueText(QPainter *painter, const QModelIndex &index,
619  const QPointF &pos, qreal value);
620 
621  // reverse mapping:
625  QModelIndexList indexesAt(const QPoint &point) const;
626  QModelIndexList indexesIn(const QRect &rect) const;
627 
628 protected:
629  virtual bool checkInvariants(bool justReturnTheStatus = false) const;
630  virtual const QPair<QPointF, QPointF> calculateDataBoundaries() const = 0;
631 
632 protected Q_SLOTS:
633  void setDataBoundariesDirty() const;
634 
635 protected:
643  Q_DECL_DEPRECATED virtual void paintDataValueTexts(QPainter *painter);
651  Q_DECL_DEPRECATED virtual void paintMarkers(QPainter *painter);
652  void setAttributesModelRootIndex(const QModelIndex &);
653  QModelIndex attributesModelRootIndex() const;
654 
662  Q_DECL_DEPRECATED qreal valueForCell(int row, int column) const;
663 
664 Q_SIGNALS:
673  void layoutChanged(AbstractDiagram *);
674 
679  void aboutToBeDestroyed();
680 
682  void modelsChanged();
683 
686  void attributesModelAboutToChange(AttributesModel *newModel, AttributesModel *oldModel);
687 
689  void modelDataChanged();
690 
692  void dataHidden();
693 
695  void propertiesChanged();
696 
698  void boundariesChanged();
700  void viewportCoordinateSystemChanged();
701 
702 private:
703  QModelIndex conditionallyMapFromSource(const QModelIndex &sourceIndex) const;
704 };
705 
708 
713 {
714  Q_OBJECT
715 public:
716  explicit PrivateAttributesModel(QAbstractItemModel *model, QObject *parent = nullptr)
717  : AttributesModel(model, parent)
718  {
719  }
720 };
721 }
722 
723 #endif
Contains KDChart macros.
#define KDCHART_DECLARE_PRIVATE_BASE_POLYMORPHIC(X)
Definition: KDChartGlobal.h:87
Base class common for all coordinate planes, CartesianCoordinatePlane, PolarCoordinatePlane,...
AbstractDiagram defines the interface for diagram classes.
A proxy model used for decorating data with attributes.
Diagram attributes dealing with data value labels.
A set of attributes controlling the appearance of data set markers.
Stores information about painting diagrams.
Internally used class just adding a special constructor used by AbstractDiagram.
PrivateAttributesModel(QAbstractItemModel *model, QObject *parent=nullptr)
QList< AbstractDiagram * > AbstractDiagramList
QList< const AbstractDiagram * > ConstAbstractDiagramList

© 2001 Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/
https://www.kdab.com/development-resources/qt-tools/kd-chart/
Generated by doxygen 1.9.1