void SvgItem::setSvg(Plasma::Svg *svg) { if (m_svg) { disconnect(m_svg.data(), 0, this, 0); } m_svg = svg; updateDevicePixelRatio(); if (svg) { connect(svg, SIGNAL(repaintNeeded()), this, SLOT(updateNeeded())); connect(svg, SIGNAL(repaintNeeded()), this, SIGNAL(naturalSizeChanged())); connect(svg, SIGNAL(sizeChanged()), this, SIGNAL(naturalSizeChanged())); } if (implicitWidth() <= 0) { setImplicitWidth(naturalSize().width()); } if (implicitHeight() <= 0) { setImplicitHeight(naturalSize().height()); } scheduleImageUpdate(); emit svgChanged(); emit naturalSizeChanged(); }
QSGNode *FilteredImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) { QSGSimpleTextureNode *node = static_cast<QSGSimpleTextureNode*>(oldNode); QImage *image = !m_filteredImage.isNull() ? &m_filteredImage : &m_image; if(image->isNull()) { delete node; return 0; } if (!node) { node = new QSGSimpleTextureNode(); } if (m_imageChanged || !node->texture()) { m_imageChanged = false; delete node->texture(); node->setTexture(window()->createTextureFromImage(*image)); node->setRect(0,0,implicitWidth(),implicitHeight()); node->markDirty(QSGNode::DirtyMaterial | QSGNode::DirtyGeometry); } return node; }
void FrameSvgItem::setPrefix(const QString &prefix) { if (m_prefix == prefix) { return; } m_frameSvg->setElementPrefix(prefix); m_prefix = prefix; if (implicitWidth() <= 0) { setImplicitWidth(m_frameSvg->marginSize(Plasma::Types::LeftMargin) + m_frameSvg->marginSize(Plasma::Types::RightMargin)); } if (implicitHeight() <= 0) { setImplicitHeight(m_frameSvg->marginSize(Plasma::Types::TopMargin) + m_frameSvg->marginSize(Plasma::Types::BottomMargin)); } emit prefixChanged(); m_margins->update(); m_fixedMargins->update(); if (isComponentComplete()) { m_frameSvg->resizeFrame(QSizeF(width(), height())); m_textureChanged = true; update(); } }
QSize QDeclarativeImageBase::sourceSize() const { Q_D(const QDeclarativeImageBase); int width = d->sourcesize.width(); int height = d->sourcesize.height(); return QSize(width != -1 ? width : implicitWidth(), height != -1 ? height : implicitHeight()); }
void MDeclarativeImplicitSizeItem::setImplicitHeightNotify(const qreal height) { if (implicitHeight() == height) return; setImplicitHeight(height); emit implicitHeightChanged(); }
void SvgItem::updateNeeded() { if (implicitWidth() <= 0) { setImplicitWidth(naturalSize().width()); } if (implicitHeight() <= 0) { setImplicitHeight(naturalSize().height()); } scheduleImageUpdate(); }
void MonoText::updatePolish() { QRawFont raw_font = QRawFont::fromFont(m_font, QFontDatabase::Latin); qreal height = raw_font.descent() + raw_font.ascent() + raw_font.lineThickness(); qreal width = raw_font.averageCharWidth() * m_text.size(); bool emit_text_width_changed = width != implicitWidth(); bool emit_text_height_changed = height != implicitHeight(); setImplicitSize(width, height); if (emit_text_width_changed) emit paintedWidthChanged(); if (emit_text_height_changed) emit paintedHeightChanged(); update(); }
void SvgItem::setElementId(const QString &elementID) { if (elementID == m_elementID) { return; } if (implicitWidth() <= 0) { setImplicitWidth(naturalSize().width()); } if (implicitHeight() <= 0) { setImplicitHeight(naturalSize().height()); } m_elementID = elementID; emit elementIdChanged(); emit naturalSizeChanged(); scheduleImageUpdate(); }
void FrameSvgItem::doUpdate() { if (implicitWidth() <= 0) { setImplicitWidth(m_frameSvg->marginSize(Plasma::Types::LeftMargin) + m_frameSvg->marginSize(Plasma::Types::RightMargin)); } if (implicitHeight() <= 0) { setImplicitHeight(m_frameSvg->marginSize(Plasma::Types::TopMargin) + m_frameSvg->marginSize(Plasma::Types::BottomMargin)); } QString prefix = m_frameSvg->actualPrefix(); bool hasOverlay = !prefix.startsWith(QLatin1String("mask-")) && m_frameSvg->hasElement(prefix % QLatin1String("overlay")); bool hasComposeOverBorder = m_frameSvg->hasElement(prefix % QLatin1String("hint-compose-over-border")) && m_frameSvg->hasElement(QLatin1String("mask-") % prefix % QLatin1String("center")); m_fastPath = !hasOverlay && !hasComposeOverBorder; m_textureChanged = true; update(); m_margins->update(); m_fixedMargins->update(); emit repaintNeeded(); }
void StretchColumn::layoutChildrenWithDefaultSize() { //static int count = 0; //qDebug() << "Column Default Size" << ++count; Q_ASSERT(m_defaultSize != 0); const QList<QQuickItem *> childrenList = childItems(); if (childrenList.isEmpty()) return; const int contentWidth = width() - m_leftMargin - m_rightMargin; qreal currY = 0; for (QList<QQuickItem *>::const_iterator it = childrenList.constBegin(); it != childrenList.constEnd(); ++it) { QQuickItem* child = (*it); if (child == Q_NULLPTR || !child->isVisible()) { continue; } // add spacing if it is not the first item: if (currY > 0) { currY += m_spacing; } if (currY != child->y()) child->setY(currY); // check if item has a stretch proportion set: if (child->implicitHeight() < 0) { // yes -> set it to default size multiplied by relative size: qreal newHeight = m_defaultSize * child->implicitHeight() * -1; if (newHeight != child->height()) child->setHeight(newHeight); } // set width of all items to fill the layout: if (m_leftMargin != child->x()) child->setX(m_leftMargin); if (contentWidth != child->width()) child->setWidth(contentWidth); currY += child->height(); } // set implicit size to fit all items: if (currY != implicitHeight()) setImplicitHeight(currY); }
qreal MonoText::paintedHeight() const { return implicitHeight(); }
QSize QDeclarativeImageBase::sourceSize() const { Q_D(const QDeclarativeImageBase); return d->sourcesize.isValid() ? d->sourcesize : QSize(implicitWidth(),implicitHeight()); }