diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2021-08-24 13:51:44 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2021-08-24 19:58:09 +0300 |
commit | 04571000dcbc0ac33eee5a5b83368cc4610ad169 (patch) | |
tree | acde73417732f912609167129c92c7be719c1f8a /src/gui/sharedialog.cpp | |
parent | b997f1b3f228cc38999ca2be62c272b222a572ee (diff) |
Sharedialog preview be more resilient
Fixes: #8938
Diffstat (limited to 'src/gui/sharedialog.cpp')
-rw-r--r-- | src/gui/sharedialog.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/gui/sharedialog.cpp b/src/gui/sharedialog.cpp index 55424bdf3..299b290eb 100644 --- a/src/gui/sharedialog.cpp +++ b/src/gui/sharedialog.cpp @@ -73,9 +73,9 @@ ShareDialog::ShareDialog(QPointer<AccountState> accountState, // Set icon QFileInfo f_info(_localPath); QFileIconProvider icon_provider; - QIcon icon = icon_provider.icon(f_info); - auto pixmap = icon.pixmap(thumbnailSize, thumbnailSize); - if (pixmap.width() > 0) { + const QIcon icon = icon_provider.icon(f_info); + if (!icon.isNull()) { + auto pixmap = icon.pixmap(thumbnailSize, thumbnailSize); _ui->label_icon->setPixmap(pixmap); } else { _ui->label_icon->hide(); @@ -213,16 +213,17 @@ QSize ShareDialog::minimumSizeHint() const return ocApp()->gui()->settingsDialog()->sizeHintForChild(); } -void ShareDialog::slotThumbnailFetched(const int &statusCode, const QByteArray &reply) +void ShareDialog::slotThumbnailFetched(const int &statusCode, const QPixmap &reply) { if (statusCode != 200) { qCWarning(lcSharing) << "Thumbnail status code: " << statusCode; return; } - - QPixmap p; - p.loadFromData(reply, "PNG"); - p = p.scaledToHeight(thumbnailSize, Qt::SmoothTransformation); + if (reply.isNull()) { + qCWarning(lcSharing) << "Invalid pixmap"; + return; + } + const auto p = reply.scaledToHeight(thumbnailSize, Qt::SmoothTransformation); _ui->label_icon->setPixmap(p); _ui->label_icon->show(); } |