@@ -112,7 +112,7 QSizeF ChartBarCategoryAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constra | |||
|
112 | 112 | |
|
113 | 113 | QFontMetrics fn(font()); |
|
114 | 114 | QSizeF sh; |
|
115 |
QSizeF base = |
|
|
115 | QSizeF base = HorizontalAxis::sizeHint(which, constraint); | |
|
116 | 116 | QStringList ticksList = createCategoryLabels(ChartAxis::layout()); |
|
117 | 117 | |
|
118 | 118 | qreal width=0; |
@@ -110,7 +110,7 QSizeF ChartBarCategoryAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constra | |||
|
110 | 110 | |
|
111 | 111 | QFontMetrics fn(font()); |
|
112 | 112 | QSizeF sh; |
|
113 |
QSizeF base = |
|
|
113 | QSizeF base = VerticalAxis::sizeHint(which, constraint); | |
|
114 | 114 | QStringList ticksList = createCategoryLabels(ChartAxis::layout()); |
|
115 | 115 | |
|
116 | 116 | qreal width=0; |
@@ -84,7 +84,7 QSizeF ChartCategoryAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint | |||
|
84 | 84 | |
|
85 | 85 | QFontMetrics fn(font()); |
|
86 | 86 | QSizeF sh; |
|
87 |
QSizeF base = |
|
|
87 | QSizeF base = HorizontalAxis::sizeHint(which, constraint); | |
|
88 | 88 | QStringList ticksList = m_axis->categoriesLabels(); |
|
89 | 89 | qreal width = 0; |
|
90 | 90 | qreal height = 0; |
@@ -84,7 +84,7 QSizeF ChartCategoryAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constraint | |||
|
84 | 84 | |
|
85 | 85 | QFontMetrics fn(font()); |
|
86 | 86 | QSizeF sh; |
|
87 |
QSizeF base = |
|
|
87 | QSizeF base = VerticalAxis::sizeHint(which, constraint); | |
|
88 | 88 | QStringList ticksList = m_axis->categoriesLabels(); |
|
89 | 89 | qreal width = 0; |
|
90 | 90 | qreal height = 0; |
@@ -422,37 +422,6 void ChartAxis::setLabels(const QStringList &labels) | |||
|
422 | 422 | m_labelsList = labels; |
|
423 | 423 | } |
|
424 | 424 | |
|
425 | QSizeF ChartAxis::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const | |
|
426 | { | |
|
427 | ||
|
428 | Q_UNUSED(constraint); | |
|
429 | QFontMetrics fn(m_title->font()); | |
|
430 | QSizeF sh; | |
|
431 | ||
|
432 | if (m_titleText.isNull()) | |
|
433 | return sh; | |
|
434 | ||
|
435 | switch (which) { | |
|
436 | case Qt::MinimumSize: | |
|
437 | if (orientation() == Qt::Horizontal) | |
|
438 | sh = QSizeF(fn.boundingRect("...").width(), fn.height()); | |
|
439 | else if (orientation() == Qt::Vertical) | |
|
440 | sh = QSizeF(fn.height(), fn.boundingRect("...").width()); | |
|
441 | break; | |
|
442 | case Qt::MaximumSize: | |
|
443 | case Qt::PreferredSize: | |
|
444 | if (orientation() == Qt::Horizontal) | |
|
445 | sh = QSizeF(fn.boundingRect(m_chartAxis->title()).width(), fn.height()); | |
|
446 | else if (orientation() == Qt::Vertical) | |
|
447 | sh = QSizeF(fn.height(), fn.boundingRect(m_chartAxis->title()).width()); | |
|
448 | break; | |
|
449 | default: | |
|
450 | break; | |
|
451 | } | |
|
452 | ||
|
453 | return sh; | |
|
454 | } | |
|
455 | ||
|
456 | 425 | QStringList ChartAxis::createValueLabels(int ticks) const |
|
457 | 426 | { |
|
458 | 427 | Q_ASSERT(m_max > m_min); |
@@ -497,6 +466,13 QStringList ChartAxis::createDateTimeLabels(const QString &format, int ticks) co | |||
|
497 | 466 | return labels; |
|
498 | 467 | } |
|
499 | 468 | |
|
469 | QSizeF ChartAxis::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const | |
|
470 | { | |
|
471 | Q_UNUSED(which); | |
|
472 | Q_UNUSED(constraint); | |
|
473 | return QSizeF(); | |
|
474 | } | |
|
475 | ||
|
500 | 476 | #include "moc_chartaxis_p.cpp" |
|
501 | 477 | |
|
502 | 478 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -51,6 +51,8 public: | |||
|
51 | 51 | ChartAxis(QAbstractAxis *axis, ChartPresenter *presenter, bool intervalAxis = false); |
|
52 | 52 | ~ChartAxis(); |
|
53 | 53 | |
|
54 | QAbstractAxis* axis() const { return m_chartAxis; } | |
|
55 | ||
|
54 | 56 | void setArrowOpacity(qreal opacity); |
|
55 | 57 | qreal arrowOpacity() const; |
|
56 | 58 | void setArrowVisibility(bool visible); |
@@ -86,6 +88,7 public: | |||
|
86 | 88 | void setTitleBrush(const QBrush &brush); |
|
87 | 89 | void setTitleFont(const QFont &font); |
|
88 | 90 | void setTitleText(const QString &title); |
|
91 | QString titleText() const {return m_titleText; }; | |
|
89 | 92 | |
|
90 | 93 | void setLayout(QVector<qreal> &layout); |
|
91 | 94 | QVector<qreal> layout() const { return m_layoutVector; } |
@@ -120,6 +123,7 protected: | |||
|
120 | 123 | QList<QGraphicsItem *> labelItems() { return m_labels->childItems();}; |
|
121 | 124 | QList<QGraphicsItem *> shadeItems() { return m_shades->childItems();}; |
|
122 | 125 | QList<QGraphicsItem *> arrowItems() { return m_arrow->childItems();}; |
|
126 | QGraphicsSimpleTextItem* titleItem() const { return m_title;} | |
|
123 | 127 | |
|
124 | 128 | QFont font() const { return m_font; } |
|
125 | 129 | qreal min() const {return m_min; } |
@@ -156,4 +156,28 void HorizontalAxis::updateGeometry() | |||
|
156 | 156 | } |
|
157 | 157 | } |
|
158 | 158 | |
|
159 | QSizeF HorizontalAxis::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const | |
|
160 | { | |
|
161 | Q_UNUSED(constraint); | |
|
162 | QFontMetrics fn(titleItem()->font()); | |
|
163 | QSizeF sh; | |
|
164 | ||
|
165 | if (titleText().isNull()) | |
|
166 | return sh; | |
|
167 | ||
|
168 | switch (which) { | |
|
169 | case Qt::MinimumSize: | |
|
170 | sh = QSizeF(fn.boundingRect("...").width(), fn.height()); | |
|
171 | break; | |
|
172 | case Qt::MaximumSize: | |
|
173 | case Qt::PreferredSize: | |
|
174 | sh = QSizeF(fn.boundingRect(axis()->title()).width(), fn.height()); | |
|
175 | break; | |
|
176 | default: | |
|
177 | break; | |
|
178 | } | |
|
179 | ||
|
180 | return sh; | |
|
181 | } | |
|
182 | ||
|
159 | 183 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -39,6 +39,7 class HorizontalAxis : public ChartAxis | |||
|
39 | 39 | public: |
|
40 | 40 | HorizontalAxis(QAbstractAxis *axis, ChartPresenter *presenter, bool intervalAxis = false); |
|
41 | 41 | ~HorizontalAxis(); |
|
42 | QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; | |
|
42 | 43 | protected: |
|
43 | 44 | void updateGeometry(); |
|
44 | 45 |
@@ -82,7 +82,7 QSizeF ChartValueAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint) c | |||
|
82 | 82 | QFontMetrics fn(font()); |
|
83 | 83 | QSizeF sh; |
|
84 | 84 | |
|
85 |
QSizeF base = |
|
|
85 | QSizeF base = HorizontalAxis::sizeHint(which, constraint); | |
|
86 | 86 | QStringList ticksList = createValueLabels(m_tickCount); |
|
87 | 87 | qreal width = 0; |
|
88 | 88 | qreal height = 0; |
@@ -84,7 +84,7 QSizeF ChartValueAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constraint) c | |||
|
84 | 84 | |
|
85 | 85 | QFontMetrics fn(font()); |
|
86 | 86 | QSizeF sh; |
|
87 |
QSizeF base = |
|
|
87 | QSizeF base = VerticalAxis::sizeHint(which, constraint); | |
|
88 | 88 | QStringList ticksList = createValueLabels(m_tickCount); |
|
89 | 89 | qreal width = 0; |
|
90 | 90 | qreal height = 0; |
@@ -151,4 +151,29 void VerticalAxis::updateGeometry() | |||
|
151 | 151 | } |
|
152 | 152 | } |
|
153 | 153 | |
|
154 | QSizeF VerticalAxis::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const | |
|
155 | { | |
|
156 | ||
|
157 | Q_UNUSED(constraint); | |
|
158 | QFontMetrics fn(titleItem()->font()); | |
|
159 | QSizeF sh; | |
|
160 | ||
|
161 | if (titleText().isNull()) | |
|
162 | return sh; | |
|
163 | ||
|
164 | switch (which) { | |
|
165 | case Qt::MinimumSize: | |
|
166 | sh = QSizeF(fn.height(), fn.boundingRect("...").width()); | |
|
167 | break; | |
|
168 | case Qt::MaximumSize: | |
|
169 | case Qt::PreferredSize: | |
|
170 | sh = QSizeF(fn.height(), fn.boundingRect(axis()->title()).width()); | |
|
171 | break; | |
|
172 | default: | |
|
173 | break; | |
|
174 | } | |
|
175 | ||
|
176 | return sh; | |
|
177 | } | |
|
178 | ||
|
154 | 179 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -39,6 +39,7 class VerticalAxis : public ChartAxis | |||
|
39 | 39 | public: |
|
40 | 40 | VerticalAxis(QAbstractAxis *axis, ChartPresenter *presenter, bool intervalAxis = false); |
|
41 | 41 | ~VerticalAxis(); |
|
42 | QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; | |
|
42 | 43 | protected: |
|
43 | 44 | void updateGeometry(); |
|
44 | 45 |
General Comments 0
You need to be logged in to leave comments.
Login now