Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2021-08-24 13:51:44 +0300
committerHannah von Reth <vonreth@kde.org>2021-08-24 19:58:09 +0300
commit04571000dcbc0ac33eee5a5b83368cc4610ad169 (patch)
treeacde73417732f912609167129c92c7be719c1f8a /src/gui/sharedialog.cpp
parentb997f1b3f228cc38999ca2be62c272b222a572ee (diff)
Sharedialog preview be more resilient
Fixes: #8938
Diffstat (limited to 'src/gui/sharedialog.cpp')
-rw-r--r--src/gui/sharedialog.cpp17
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();
}