Add QPixmapIconEngine::isNull()
Reimplement the virtual function QIconEngine::isNull() for QPixmapIconEngine. This lets QIcon::isNull() return true when no pixmaps are loaded during QIcon::addFile() e.g. due to a wrong filename. Pick-to: 6.5 Fixes: QTBUG-118667 Change-Id: I29f2c492e55b60638507fa398ef7af76f4e9ff48 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 5a5c96c65d9c4c4e0eac1888d5f396f352e60444) Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
This commit is contained in:
parent
3b3b6f1adf
commit
9a08abf41f
@ -462,6 +462,11 @@ void QPixmapIconEngine::addFile(const QString &fileName, const QSize &size, QIco
|
|||||||
pixmaps += QPixmapIconEngineEntry(abs, size, mode, state);
|
pixmaps += QPixmapIconEngineEntry(abs, size, mode, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QPixmapIconEngine::isNull()
|
||||||
|
{
|
||||||
|
return pixmaps.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
QString QPixmapIconEngine::key() const
|
QString QPixmapIconEngine::key() const
|
||||||
{
|
{
|
||||||
return "QPixmapIconEngine"_L1;
|
return "QPixmapIconEngine"_L1;
|
||||||
|
@ -84,7 +84,7 @@ public:
|
|||||||
QList<QSize> availableSizes(QIcon::Mode mode, QIcon::State state) override;
|
QList<QSize> availableSizes(QIcon::Mode mode, QIcon::State state) override;
|
||||||
void addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state) override;
|
void addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state) override;
|
||||||
void addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state) override;
|
void addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state) override;
|
||||||
|
bool isNull() override;
|
||||||
|
|
||||||
QString key() const override;
|
QString key() const override;
|
||||||
QIconEngine *clone() const override;
|
QIconEngine *clone() const override;
|
||||||
|
@ -195,17 +195,17 @@ void tst_QIcon::isNull() {
|
|||||||
|
|
||||||
// test string constructor with non-existing file
|
// test string constructor with non-existing file
|
||||||
QIcon iconNoFile = QIcon("imagedoesnotexist");
|
QIcon iconNoFile = QIcon("imagedoesnotexist");
|
||||||
QVERIFY(!iconNoFile.isNull());
|
QVERIFY(iconNoFile.isNull());
|
||||||
QVERIFY(!iconNoFile.actualSize(QSize(32, 32)).isValid());
|
QVERIFY(!iconNoFile.actualSize(QSize(32, 32)).isValid());
|
||||||
|
|
||||||
// test string constructor with non-existing file with suffix
|
// test string constructor with non-existing file with suffix
|
||||||
QIcon iconNoFileSuffix = QIcon("imagedoesnotexist.png");
|
QIcon iconNoFileSuffix = QIcon("imagedoesnotexist.png");
|
||||||
QVERIFY(!iconNoFileSuffix.isNull());
|
QVERIFY(iconNoFileSuffix.isNull());
|
||||||
QVERIFY(!iconNoFileSuffix.actualSize(QSize(32, 32)).isValid());
|
QVERIFY(!iconNoFileSuffix.actualSize(QSize(32, 32)).isValid());
|
||||||
|
|
||||||
// test string constructor with existing file but unsupported format
|
// test string constructor with existing file but unsupported format
|
||||||
QIcon iconUnsupportedFormat = QIcon(m_sourceFileName);
|
QIcon iconUnsupportedFormat = QIcon(m_sourceFileName);
|
||||||
QVERIFY(!iconUnsupportedFormat.isNull());
|
QVERIFY(iconUnsupportedFormat.isNull());
|
||||||
QVERIFY(!iconUnsupportedFormat.actualSize(QSize(32, 32)).isValid());
|
QVERIFY(!iconUnsupportedFormat.actualSize(QSize(32, 32)).isValid());
|
||||||
|
|
||||||
// test string constructor with existing file and supported format
|
// test string constructor with existing file and supported format
|
||||||
|
@ -5,10 +5,16 @@
|
|||||||
## tst_qsystemtrayicon Test:
|
## tst_qsystemtrayicon Test:
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
||||||
|
set(resources_resource_files
|
||||||
|
"icons/icon.png"
|
||||||
|
)
|
||||||
|
|
||||||
qt_internal_add_test(tst_qsystemtrayicon
|
qt_internal_add_test(tst_qsystemtrayicon
|
||||||
SOURCES
|
SOURCES
|
||||||
tst_qsystemtrayicon.cpp
|
tst_qsystemtrayicon.cpp
|
||||||
LIBRARIES
|
LIBRARIES
|
||||||
Qt::Gui
|
Qt::Gui
|
||||||
Qt::Widgets
|
Qt::Widgets
|
||||||
|
TESTDATA ${resources_resource_files}
|
||||||
|
BUILTIN_TESTDATA
|
||||||
)
|
)
|
||||||
|
@ -39,9 +39,9 @@ tst_QSystemTrayIcon::~tst_QSystemTrayIcon()
|
|||||||
void tst_QSystemTrayIcon::showHide()
|
void tst_QSystemTrayIcon::showHide()
|
||||||
{
|
{
|
||||||
QSystemTrayIcon icon;
|
QSystemTrayIcon icon;
|
||||||
icon.setIcon(QIcon("icons/icon.png"));
|
icon.setIcon(QIcon(":/icons/icon.png"));
|
||||||
icon.show();
|
icon.show();
|
||||||
icon.setIcon(QIcon("icons/icon.png"));
|
icon.setIcon(QIcon(":/icons/icon.png"));
|
||||||
icon.hide();
|
icon.hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ void tst_QSystemTrayIcon::showHide()
|
|||||||
void tst_QSystemTrayIcon::showMessage()
|
void tst_QSystemTrayIcon::showMessage()
|
||||||
{
|
{
|
||||||
QSystemTrayIcon icon;
|
QSystemTrayIcon icon;
|
||||||
icon.setIcon(QIcon("icons/icon.png"));
|
icon.setIcon(QIcon(":/icons/icon.png"));
|
||||||
|
|
||||||
icon.showMessage("Title", "Messagecontents");
|
icon.showMessage("Title", "Messagecontents");
|
||||||
icon.showMessage("Title", "Messagecontents", QSystemTrayIcon::NoIcon);
|
icon.showMessage("Title", "Messagecontents", QSystemTrayIcon::NoIcon);
|
||||||
@ -72,7 +72,7 @@ void tst_QSystemTrayIcon::getSetCheck()
|
|||||||
QCOMPARE(true, "testToolTip" == icon.toolTip());
|
QCOMPARE(true, "testToolTip" == icon.toolTip());
|
||||||
|
|
||||||
QCOMPARE(true, icon.icon().isNull());
|
QCOMPARE(true, icon.icon().isNull());
|
||||||
icon.setIcon(QIcon("icons/icon.png"));
|
icon.setIcon(QIcon(":/icons/icon.png"));
|
||||||
QCOMPARE(false, icon.icon().isNull());
|
QCOMPARE(false, icon.icon().isNull());
|
||||||
|
|
||||||
QMenu menu;
|
QMenu menu;
|
||||||
@ -104,7 +104,7 @@ void tst_QSystemTrayIcon::lastWindowClosed()
|
|||||||
QSignalSpy spy(qApp, &QGuiApplication::lastWindowClosed);
|
QSignalSpy spy(qApp, &QGuiApplication::lastWindowClosed);
|
||||||
QWidget window;
|
QWidget window;
|
||||||
QSystemTrayIcon icon;
|
QSystemTrayIcon icon;
|
||||||
icon.setIcon(QIcon("whatever.png"));
|
icon.setIcon(QIcon(":/icons/icon.png"));
|
||||||
icon.show();
|
icon.show();
|
||||||
window.show();
|
window.show();
|
||||||
QTimer::singleShot(2500, &window, SLOT(close()));
|
QTimer::singleShot(2500, &window, SLOT(close()));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user