Mercurial > minori
comparison src/gui/widgets/poster.cc @ 230:2f5a9247e501
torrents: implement download button
erg
| author | Paper <paper@paper.us.eu.org> |
|---|---|
| date | Sat, 13 Jan 2024 09:42:02 -0500 |
| parents | 9613d72b097e |
| children | ff0061e75f0f |
comparison
equal
deleted
inserted
replaced
| 229:adc20fa321c1 | 230:2f5a9247e501 |
|---|---|
| 10 #include <QFrame> | 10 #include <QFrame> |
| 11 #include <QHBoxLayout> | 11 #include <QHBoxLayout> |
| 12 #include <QLabel> | 12 #include <QLabel> |
| 13 #include <QMessageBox> | 13 #include <QMessageBox> |
| 14 #include <QPixmap> | 14 #include <QPixmap> |
| 15 #include <QThreadPool> | 15 #include <QThread> |
| 16 #include <QUrl> | 16 #include <QUrl> |
| 17 #include <curl/curl.h> | 17 #include <curl/curl.h> |
| 18 | 18 |
| 19 Poster::Poster(QWidget* parent) : QFrame(parent) { | 19 Poster::Poster(QWidget* parent) : QFrame(parent) { |
| 20 QHBoxLayout* layout = new QHBoxLayout(this); | 20 QHBoxLayout* layout = new QHBoxLayout(this); |
| 33 Poster::Poster(const Anime::Anime& anime, QWidget* parent) : Poster(parent) { | 33 Poster::Poster(const Anime::Anime& anime, QWidget* parent) : Poster(parent) { |
| 34 SetAnime(anime); | 34 SetAnime(anime); |
| 35 } | 35 } |
| 36 | 36 |
| 37 void Poster::SetAnime(const Anime::Anime& anime) { | 37 void Poster::SetAnime(const Anime::Anime& anime) { |
| 38 QThreadPool::globalInstance()->start([this, anime] { | 38 { |
| 39 QByteArray ba = HTTP::Get(anime.GetPosterUrl(), {}); | 39 QByteArray ba; |
| 40 ImageDownloadFinished(ba); | 40 |
| 41 }); | 41 QThread* thread = QThread::create([&] { |
| 42 ba = HTTP::Get(anime.GetPosterUrl(), {}); | |
| 43 }); | |
| 44 | |
| 45 connect(thread, &QThread::finished, this, [&] { | |
| 46 ImageDownloadFinished(ba); | |
| 47 }); | |
| 48 | |
| 49 thread->start(); | |
| 50 } | |
| 42 | 51 |
| 43 label->disconnect(); | 52 label->disconnect(); |
| 44 connect(label, &ClickableLabel::clicked, this, | 53 connect(label, &ClickableLabel::clicked, this, |
| 45 [anime] { QDesktopServices::openUrl(Strings::ToQString(anime.GetServiceUrl())); }); | 54 [anime] { QDesktopServices::openUrl(Strings::ToQString(anime.GetServiceUrl())); }); |
| 46 } | 55 } |
