Make zero sized icons valid
Fixes icons in Buttons Ported from kde-runtime fbbec602e90ed8f99e93605
This commit is contained in:
parent
cdc45bc7ca
commit
b6715b6e6f
@ -128,7 +128,9 @@ void IconItem::setSource(const QVariant &source)
|
|||||||
m_svgIcon = 0;
|
m_svgIcon = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (width() > 0 && height() > 0) {
|
||||||
loadPixmap();
|
loadPixmap();
|
||||||
|
}
|
||||||
|
|
||||||
emit sourceChanged();
|
emit sourceChanged();
|
||||||
emit validChanged();
|
emit validChanged();
|
||||||
@ -171,7 +173,11 @@ bool IconItem::smooth() const
|
|||||||
|
|
||||||
bool IconItem::isValid() const
|
bool IconItem::isValid() const
|
||||||
{
|
{
|
||||||
return !m_iconPixmaps.isEmpty();
|
bool v = !m_iconPixmaps.isEmpty();
|
||||||
|
v = m_icon.isNull() || m_svgIcon || !m_pixmapIcon.isNull() || m_imageIcon.isNull();
|
||||||
|
qDebug() << "valid??????" << v;
|
||||||
|
//return true;
|
||||||
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IconItem::paint(QPainter *painter)
|
void IconItem::paint(QPainter *painter)
|
||||||
@ -246,7 +252,9 @@ void IconItem::loadPixmap()
|
|||||||
//final pixmap to paint
|
//final pixmap to paint
|
||||||
QPixmap result;
|
QPixmap result;
|
||||||
if (size<=0) {
|
if (size<=0) {
|
||||||
m_iconPixmaps.clear();
|
//m_iconPixmaps.clear();
|
||||||
|
m_animation->stop();
|
||||||
|
update();
|
||||||
return;
|
return;
|
||||||
} else if (m_svgIcon) {
|
} else if (m_svgIcon) {
|
||||||
m_svgIcon->resize(size, size);
|
m_svgIcon->resize(size, size);
|
||||||
@ -259,6 +267,8 @@ void IconItem::loadPixmap()
|
|||||||
result = QPixmap::fromImage(m_imageIcon);
|
result = QPixmap::fromImage(m_imageIcon);
|
||||||
} else {
|
} else {
|
||||||
m_iconPixmaps.clear();
|
m_iconPixmaps.clear();
|
||||||
|
m_animation->stop();
|
||||||
|
update();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -292,10 +302,12 @@ void IconItem::geometryChanged(const QRectF &newGeometry,
|
|||||||
{
|
{
|
||||||
if (newGeometry.size() != oldGeometry.size()) {
|
if (newGeometry.size() != oldGeometry.size()) {
|
||||||
m_iconPixmaps.clear();
|
m_iconPixmaps.clear();
|
||||||
|
if (newGeometry.width() > 0 && newGeometry.height() > 0) {
|
||||||
loadPixmap();
|
loadPixmap();
|
||||||
}
|
}
|
||||||
|
|
||||||
QQuickItem::geometryChanged(newGeometry, oldGeometry);
|
QQuickItem::geometryChanged(newGeometry, oldGeometry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "iconitem.moc"
|
#include "iconitem.moc"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user