Changeset View
Changeset View
Standalone View
Standalone View
src/desktopicon.cpp
Show First 20 Lines • Show All 240 Lines • ▼ Show 20 Line(s) | |||||
241 | { | 241 | { | ||
242 | if (m_source.isNull()) { | 242 | if (m_source.isNull()) { | ||
243 | delete node; | 243 | delete node; | ||
244 | return Q_NULLPTR; | 244 | return Q_NULLPTR; | ||
245 | } | 245 | } | ||
246 | 246 | | |||
247 | if (m_changed || node == 0) { | 247 | if (m_changed || node == 0) { | ||
248 | QImage img; | 248 | QImage img; | ||
249 | const QSize size = QSize(width(), height()) * (window() ? window()->devicePixelRatio() : qApp->devicePixelRatio()); | 249 | const QSize itemSize(width(), height()); | ||
250 | | ||||
251 | if (itemSize.width() != 0 && itemSize.height() != 0) { | ||||
252 | const QSize size = itemSize * (window() ? window()->devicePixelRatio() : qApp->devicePixelRatio()); | ||||
250 | 253 | | |||
251 | switch(m_source.type()){ | 254 | switch(m_source.type()){ | ||
252 | case QVariant::Pixmap: | 255 | case QVariant::Pixmap: | ||
253 | img = m_source.value<QPixmap>().toImage(); | 256 | img = m_source.value<QPixmap>().toImage(); | ||
254 | break; | 257 | break; | ||
255 | case QVariant::Image: | 258 | case QVariant::Image: | ||
256 | img = m_source.value<QImage>(); | 259 | img = m_source.value<QImage>(); | ||
257 | break; | 260 | break; | ||
Show All 15 Lines | |||||
273 | 276 | | |||
274 | if (img.isNull()){ | 277 | if (img.isNull()){ | ||
275 | img = QImage(size, QImage::Format_Alpha8); | 278 | img = QImage(size, QImage::Format_Alpha8); | ||
276 | img.fill(Qt::transparent); | 279 | img.fill(Qt::transparent); | ||
277 | } | 280 | } | ||
278 | if (img.size() != size){ | 281 | if (img.size() != size){ | ||
279 | img = img.scaled(size, Qt::KeepAspectRatioByExpanding, m_smooth ? Qt::SmoothTransformation : Qt::FastTransformation ); | 282 | img = img.scaled(size, Qt::KeepAspectRatioByExpanding, m_smooth ? Qt::SmoothTransformation : Qt::FastTransformation ); | ||
280 | } | 283 | } | ||
284 | } | ||||
281 | m_changed = false; | 285 | m_changed = false; | ||
282 | 286 | | |||
283 | ManagedTextureNode* mNode = dynamic_cast<ManagedTextureNode*>(node); | 287 | ManagedTextureNode* mNode = dynamic_cast<ManagedTextureNode*>(node); | ||
284 | if (!mNode) { | 288 | if (!mNode) { | ||
285 | delete node; | 289 | delete node; | ||
286 | mNode = new ManagedTextureNode; | 290 | mNode = new ManagedTextureNode; | ||
287 | } | 291 | } | ||
288 | | ||||
289 | mNode->setTexture(s_iconImageCache->loadTexture(window(), img)); | 292 | mNode->setTexture(s_iconImageCache->loadTexture(window(), img)); | ||
290 | mNode->setRect(QRect(QPoint(0,0), QSize(width(), height()))); | 293 | mNode->setRect(QRect(QPoint(0,0), itemSize)); | ||
291 | node = mNode; | 294 | node = mNode; | ||
292 | } | 295 | } | ||
293 | 296 | | |||
294 | return node; | 297 | return node; | ||
295 | } | 298 | } | ||
296 | 299 | | |||
297 | void DesktopIcon::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) | 300 | void DesktopIcon::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) | ||
298 | { | 301 | { | ||
▲ Show 20 Lines • Show All 122 Lines • Show Last 20 Lines |