@@ -67,6 +67,33 void HorizontalAxis::updateGeometry() | |||||
67 | qreal width = 0; |
|
67 | qreal width = 0; | |
68 | QFontMetrics fn(font()); |
|
68 | QFontMetrics fn(font()); | |
69 |
|
69 | |||
|
70 | //title | |||
|
71 | ||||
|
72 | if (!titleText().isNull()) { | |||
|
73 | QFontMetrics fn(title->font()); | |||
|
74 | ||||
|
75 | int size(0); | |||
|
76 | ||||
|
77 | size = gridRect.width(); | |||
|
78 | QString titleText = this->titleText(); | |||
|
79 | ||||
|
80 | if (fn.boundingRect(titleText).width() > size) { | |||
|
81 | QString string = titleText + "..."; | |||
|
82 | while (fn.boundingRect(string).width() > size && string.length() > 3) | |||
|
83 | string.remove(string.length() - 4, 1); | |||
|
84 | title->setText(string); | |||
|
85 | } else { | |||
|
86 | title->setText(titleText); | |||
|
87 | } | |||
|
88 | ||||
|
89 | QPointF center = gridRect.center() - title->boundingRect().center(); | |||
|
90 | if (alignment() == Qt::AlignTop) { | |||
|
91 | title->setPos(center.x(), axisRect.top()); | |||
|
92 | } else if (alignment() == Qt::AlignBottom) { | |||
|
93 | title->setPos(center.x(), axisRect.bottom() - title->boundingRect().height()); | |||
|
94 | } | |||
|
95 | } | |||
|
96 | ||||
70 | for (int i = 0; i < layout.size(); ++i) { |
|
97 | for (int i = 0; i < layout.size(); ++i) { | |
71 |
|
98 | |||
72 | //items |
|
99 | //items | |
@@ -154,34 +181,6 void HorizontalAxis::updateGeometry() | |||||
154 | gridLine->setLine(gridRect.left(), gridRect.top(), gridRect.left(), gridRect.bottom()); |
|
181 | gridLine->setLine(gridRect.left(), gridRect.top(), gridRect.left(), gridRect.bottom()); | |
155 | gridLine->setVisible(true); |
|
182 | gridLine->setVisible(true); | |
156 | } |
|
183 | } | |
157 |
|
||||
158 | //title |
|
|||
159 |
|
||||
160 | if (!titleText().isNull()) { |
|
|||
161 | QFontMetrics fn(title->font()); |
|
|||
162 |
|
||||
163 | int size(0); |
|
|||
164 |
|
||||
165 | size = gridRect.width(); |
|
|||
166 | QString titleText = this->titleText(); |
|
|||
167 |
|
||||
168 | if (fn.boundingRect(titleText).width() > size) { |
|
|||
169 | QString string = titleText + "..."; |
|
|||
170 | while (fn.boundingRect(string).width() > size && string.length() > 3) |
|
|||
171 | string.remove(string.length() - 4, 1); |
|
|||
172 | title->setText(string); |
|
|||
173 | } else { |
|
|||
174 | title->setText(titleText); |
|
|||
175 | } |
|
|||
176 |
|
||||
177 | QPointF center = gridRect.center() - title->boundingRect().center(); |
|
|||
178 | if (alignment() == Qt::AlignTop) { |
|
|||
179 | title->setPos(center.x(), axisRect.top()); |
|
|||
180 | } else if (alignment() == Qt::AlignBottom) { |
|
|||
181 | title->setPos(center.x(), axisRect.bottom() - title->boundingRect().height()); |
|
|||
182 | } |
|
|||
183 | } |
|
|||
184 |
|
||||
185 | } |
|
184 | } | |
186 |
|
185 | |||
187 | QSizeF HorizontalAxis::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const |
|
186 | QSizeF HorizontalAxis::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const |
@@ -71,6 +71,36 void VerticalAxis::updateGeometry() | |||||
71 |
|
71 | |||
72 | QFontMetrics fn(font()); |
|
72 | QFontMetrics fn(font()); | |
73 |
|
73 | |||
|
74 | //title | |||
|
75 | ||||
|
76 | if (!titleText().isNull()) { | |||
|
77 | QFontMetrics fn(title->font()); | |||
|
78 | ||||
|
79 | int size(0); | |||
|
80 | size = gridRect.height(); | |||
|
81 | QString titleText = this->titleText(); | |||
|
82 | ||||
|
83 | if (fn.boundingRect(titleText).width() > size) { | |||
|
84 | QString string = titleText + "..."; | |||
|
85 | while (fn.boundingRect(string).width() > size && string.length() > 3) | |||
|
86 | string.remove(string.length() - 4, 1); | |||
|
87 | title->setText(string); | |||
|
88 | } | |||
|
89 | else { | |||
|
90 | title->setText(titleText); | |||
|
91 | } | |||
|
92 | ||||
|
93 | QPointF center = gridRect.center() - title->boundingRect().center(); | |||
|
94 | if (alignment() == Qt::AlignLeft) { | |||
|
95 | title->setPos(axisRect.left() - title->boundingRect().width()/2 + title->boundingRect().height()/2 , center.y()); | |||
|
96 | } | |||
|
97 | else if (alignment() == Qt::AlignRight) { | |||
|
98 | title->setPos(axisRect.right()- title->boundingRect().width()/2 - title->boundingRect().height()/2, center.y()); | |||
|
99 | } | |||
|
100 | title->setTransformOriginPoint(title->boundingRect().center()); | |||
|
101 | title->setRotation(270); | |||
|
102 | } | |||
|
103 | ||||
74 | for (int i = 0; i < layout.size(); ++i) { |
|
104 | for (int i = 0; i < layout.size(); ++i) { | |
75 |
|
105 | |||
76 | //items |
|
106 | //items | |
@@ -83,9 +113,10 void VerticalAxis::updateGeometry() | |||||
83 |
|
113 | |||
84 | //label text wrapping |
|
114 | //label text wrapping | |
85 | QString text = labelList.at(i); |
|
115 | QString text = labelList.at(i); | |
86 |
|
|
116 | qreal size = axisRect.right() - axisRect.left() - labelPadding() - title->boundingRect().height(); | |
|
117 | if (fn.boundingRect(text).width() > size) { | |||
87 | QString label = text + "..."; |
|
118 | QString label = text + "..."; | |
88 |
while (fn.boundingRect(label).width() > |
|
119 | while (fn.boundingRect(label).width() > size && label.length() > 3) | |
89 | label.remove(label.length() - 4, 1); |
|
120 | label.remove(label.length() - 4, 1); | |
90 | labelItem->setText(label); |
|
121 | labelItem->setText(label); | |
91 | } else { |
|
122 | } else { | |
@@ -151,34 +182,6 void VerticalAxis::updateGeometry() | |||||
151 | gridLine->setLine(gridRect.left(), gridRect.bottom(), gridRect.right(), gridRect.bottom()); |
|
182 | gridLine->setLine(gridRect.left(), gridRect.bottom(), gridRect.right(), gridRect.bottom()); | |
152 | gridLine->setVisible(true); |
|
183 | gridLine->setVisible(true); | |
153 | } |
|
184 | } | |
154 |
|
||||
155 | //title |
|
|||
156 |
|
||||
157 | if (!titleText().isNull()) { |
|
|||
158 | QFontMetrics fn(title->font()); |
|
|||
159 |
|
||||
160 | int size(0); |
|
|||
161 | size = gridRect.height(); |
|
|||
162 | QString titleText = this->titleText(); |
|
|||
163 |
|
||||
164 | if (fn.boundingRect(titleText).width() > size) { |
|
|||
165 | QString string = titleText + "..."; |
|
|||
166 | while (fn.boundingRect(string).width() > size && string.length() > 3) |
|
|||
167 | string.remove(string.length() - 4, 1); |
|
|||
168 | title->setText(string); |
|
|||
169 | } else { |
|
|||
170 | title->setText(titleText); |
|
|||
171 | } |
|
|||
172 |
|
||||
173 | QPointF center = gridRect.center() - title->boundingRect().center(); |
|
|||
174 | if (alignment() == Qt::AlignLeft) { |
|
|||
175 | title->setPos(axisRect.left() - title->boundingRect().width()/2 + title->boundingRect().height()/2 , center.y()); |
|
|||
176 | }else if (alignment() == Qt::AlignRight) { |
|
|||
177 | title->setPos(axisRect.right()- title->boundingRect().width()/2 - title->boundingRect().height()/2, center.y()); |
|
|||
178 | } |
|
|||
179 | title->setTransformOriginPoint(title->boundingRect().center()); |
|
|||
180 | title->setRotation(270); |
|
|||
181 | } |
|
|||
182 | } |
|
185 | } | |
183 |
|
186 | |||
184 | QSizeF VerticalAxis::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const |
|
187 | QSizeF VerticalAxis::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const |
@@ -29,7 +29,7 | |||||
29 |
|
29 | |||
30 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
30 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
31 |
|
31 | |||
32 |
static const qreal golden_ratio = 0. |
|
32 | static const qreal golden_ratio = 0.4; | |
33 |
|
33 | |||
34 | ChartLayout::ChartLayout(ChartPresenter *presenter) |
|
34 | ChartLayout::ChartLayout(ChartPresenter *presenter) | |
35 | : m_presenter(presenter), |
|
35 | : m_presenter(presenter), |
General Comments 0
You need to be logged in to leave comments.
Login now