Changeset View
Changeset View
Standalone View
Standalone View
src/qmlcontrols/kquickcontrolsaddons/qimageitem.cpp
Show First 20 Lines • Show All 151 Lines • ▼ Show 20 Line(s) | |||||
152 | 152 | | |||
153 | void QImageItem::updatePaintedRect() | 153 | void QImageItem::updatePaintedRect() | ||
154 | { | 154 | { | ||
155 | 155 | | |||
156 | if (m_image.isNull()) { | 156 | if (m_image.isNull()) { | ||
157 | return; | 157 | return; | ||
158 | } | 158 | } | ||
159 | 159 | | |||
160 | QRect sourceRect = m_paintedRect; | 160 | QRectF sourceRect = m_paintedRect; | ||
161 | 161 | | |||
162 | QRect destRect; | 162 | QRectF destRect; | ||
163 | 163 | | |||
164 | switch (m_fillMode) { | 164 | switch (m_fillMode) { | ||
165 | case PreserveAspectFit: { | 165 | case PreserveAspectFit: { | ||
166 | QSize scaled = m_image.size(); | 166 | QSizeF scaled = m_image.size(); | ||
167 | 167 | | |||
168 | scaled.scale(boundingRect().size().toSize(), Qt::KeepAspectRatio); | 168 | scaled.scale(boundingRect().size(), Qt::KeepAspectRatio); | ||
169 | destRect = QRect(QPoint(0, 0), scaled); | 169 | destRect = QRectF(QPoint(0, 0), scaled); | ||
170 | destRect.moveCenter(boundingRect().center().toPoint()); | 170 | destRect.moveCenter(boundingRect().center().toPoint()); | ||
171 | break; | 171 | break; | ||
172 | } | 172 | } | ||
173 | case PreserveAspectCrop: { | 173 | case PreserveAspectCrop: { | ||
174 | QSize scaled = m_image.size(); | 174 | QSizeF scaled = m_image.size(); | ||
175 | 175 | | |||
176 | scaled.scale(boundingRect().size().toSize(), Qt::KeepAspectRatioByExpanding); | 176 | scaled.scale(boundingRect().size(), Qt::KeepAspectRatioByExpanding); | ||
177 | destRect = QRect(QPoint(0, 0), scaled); | 177 | destRect = QRectF(QPoint(0, 0), scaled); | ||
178 | destRect.moveCenter(boundingRect().center().toPoint()); | 178 | destRect.moveCenter(boundingRect().center().toPoint()); | ||
179 | break; | 179 | break; | ||
180 | } | 180 | } | ||
181 | case TileVertically: { | 181 | case TileVertically: { | ||
182 | destRect = boundingRect().toRect(); | 182 | destRect = boundingRect().toRect(); | ||
183 | destRect.setWidth(destRect.width() / (width()/(qreal)m_image.width())); | 183 | destRect.setWidth(destRect.width() / (width()/(qreal)m_image.width())); | ||
184 | break; | 184 | break; | ||
185 | } | 185 | } | ||
186 | case TileHorizontally: { | 186 | case TileHorizontally: { | ||
187 | destRect = boundingRect().toRect(); | 187 | destRect = boundingRect().toRect(); | ||
188 | destRect.setHeight(destRect.height() / (height()/(qreal)m_image.height())); | 188 | destRect.setHeight(destRect.height() / (height()/(qreal)m_image.height())); | ||
189 | break; | 189 | break; | ||
190 | } | 190 | } | ||
191 | case Stretch: | 191 | case Stretch: | ||
192 | case Tile: | 192 | case Tile: | ||
193 | default: | 193 | default: | ||
194 | destRect = boundingRect().toRect(); | 194 | destRect = boundingRect().toRect(); | ||
195 | } | 195 | } | ||
196 | 196 | | |||
197 | if (destRect != sourceRect) { | 197 | if (destRect != sourceRect) { | ||
198 | m_paintedRect = destRect; | 198 | m_paintedRect = destRect.toRect(); | ||
199 | emit paintedHeightChanged(); | 199 | emit paintedHeightChanged(); | ||
200 | emit paintedWidthChanged(); | 200 | emit paintedWidthChanged(); | ||
201 | } | 201 | } | ||
202 | } | 202 | } | ||
203 | 203 | | |||
204 | void QImageItem::geometryChanged(const QRectF& newGeometry, const QRectF& oldGeometry) | 204 | void QImageItem::geometryChanged(const QRectF& newGeometry, const QRectF& oldGeometry) | ||
205 | { | 205 | { | ||
206 | QQuickPaintedItem::geometryChanged(newGeometry, oldGeometry); | 206 | QQuickPaintedItem::geometryChanged(newGeometry, oldGeometry); | ||
207 | updatePaintedRect(); | 207 | updatePaintedRect(); | ||
208 | } | 208 | } |