mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
Fix dock app icon error if encoding with base64
Change-Id: I5f90b43b4f8c525d391058a4ccb836253645cc23
This commit is contained in:
parent
b65277c40a
commit
b0c14898f3
Notes:
Deepin Code Review
2017-02-20 17:57:26 +08:00
Verified+1: Anonymous Coward #1000004 Code-Review+2: 石博文 <sbw@sbw.so> Submitted-by: 石博文 <sbw@sbw.so> Submitted-at: Mon, 20 Feb 2017 17:57:26 +0800 Reviewed-on: https://cr.deepin.io/20474 Project: dde/dde-dock Branch: refs/heads/master
@ -1,6 +1,8 @@
|
||||
#include "themeappicon.h"
|
||||
|
||||
#include <QIcon>
|
||||
#include <QFile>
|
||||
#include <QDebug>
|
||||
|
||||
ThemeAppIcon::ThemeAppIcon(QObject *parent) : QObject(parent)
|
||||
{
|
||||
@ -14,12 +16,23 @@ ThemeAppIcon::~ThemeAppIcon()
|
||||
|
||||
QPixmap ThemeAppIcon::getIcon(const QString iconName, const int size)
|
||||
{
|
||||
QIcon icon = QIcon::fromTheme(iconName, QIcon::fromTheme("application-x-desktop"));
|
||||
QPixmap pix = icon.pixmap(QSize(size, size));
|
||||
if (pix.isNull()) {
|
||||
pix = QPixmap(":/icons/resources/application-x-desktop.svg").scaled(size, size);
|
||||
QPixmap pixmap(size, size);
|
||||
|
||||
if (QFile::exists(iconName))
|
||||
return QPixmap(iconName);
|
||||
if (iconName.startsWith("data:image/"))
|
||||
{
|
||||
const QStringList strs = iconName.split("base64,");
|
||||
if (strs.size() == 2)
|
||||
pixmap.loadFromData(QByteArray::fromBase64(strs.at(1).toLatin1()));
|
||||
} else {
|
||||
const QIcon icon = QIcon::fromTheme(iconName, QIcon::fromTheme("application-x-desktop"));
|
||||
pixmap = icon.pixmap(QSize(size, size));
|
||||
}
|
||||
|
||||
return pix;
|
||||
if (pixmap.isNull())
|
||||
pixmap = QPixmap(":/icons/resources/application-x-desktop.svg");
|
||||
|
||||
return pixmap.scaled(size, size, Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user