Mercurial > minori
comparison src/gui/widgets/poster.cc @ 254:d14f8e0e40c3
[UNFINISHED] *: update anime button
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Wed, 07 Feb 2024 07:57:37 -0500 |
parents | 4d461ef7d424 |
children | fe702c8f161f |
comparison
equal
deleted
inserted
replaced
253:b3549da699a6 | 254:d14f8e0e40c3 |
---|---|
2 #include "core/anime_db.h" | 2 #include "core/anime_db.h" |
3 #include "core/http.h" | 3 #include "core/http.h" |
4 #include "core/session.h" | 4 #include "core/session.h" |
5 #include "core/strings.h" | 5 #include "core/strings.h" |
6 #include "gui/widgets/clickable_label.h" | 6 #include "gui/widgets/clickable_label.h" |
7 | |
7 #include <QByteArray> | 8 #include <QByteArray> |
8 #include <QDebug> | 9 #include <QDebug> |
9 #include <QDesktopServices> | 10 #include <QDesktopServices> |
10 #include <QFrame> | 11 #include <QFrame> |
11 #include <QHBoxLayout> | 12 #include <QHBoxLayout> |
12 #include <QLabel> | 13 #include <QLabel> |
13 #include <QMessageBox> | 14 #include <QMessageBox> |
14 #include <QPixmap> | 15 #include <QPixmap> |
15 #include <QThread> | 16 #include <QThread> |
16 #include <QUrl> | 17 #include <QUrl> |
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); |
21 layout->setContentsMargins(1, 1, 1, 1); | 21 layout->setContentsMargins(1, 1, 1, 1); |
22 | 22 |
42 connect(thread, &HTTP::GetThread::finished, thread, &HTTP::GetThread::deleteLater); | 42 connect(thread, &HTTP::GetThread::finished, thread, &HTTP::GetThread::deleteLater); |
43 | 43 |
44 thread->start(); | 44 thread->start(); |
45 } | 45 } |
46 | 46 |
47 label->disconnect(); | 47 service_url = Strings::ToQString(anime.GetServiceUrl()); |
48 connect(label, &ClickableLabel::clicked, this, | 48 |
49 [anime] { QDesktopServices::openUrl(Strings::ToQString(anime.GetServiceUrl())); }); | 49 if (clickable) { |
50 label->disconnect(); | |
51 connect(label, &ClickableLabel::clicked, this, | |
52 [this] { QDesktopServices::openUrl(service_url); }); | |
53 } | |
54 } | |
55 | |
56 void Poster::SetClickable(bool enabled) { | |
57 clickable = enabled; | |
58 | |
59 if (clickable && !service_url.isEmpty()) { | |
60 setCursor(Qt::PointingHandCursor); | |
61 label->disconnect(); | |
62 connect(label, &ClickableLabel::clicked, this, | |
63 [this] { QDesktopServices::openUrl(service_url); }); | |
64 } else { | |
65 setCursor(Qt::ArrowCursor); | |
66 label->disconnect(); | |
67 } | |
50 } | 68 } |
51 | 69 |
52 void Poster::ImageDownloadFinished(const QByteArray& arr) { | 70 void Poster::ImageDownloadFinished(const QByteArray& arr) { |
53 img.loadFromData(arr); | 71 img.loadFromData(arr); |
54 RenderToLabel(); | 72 RenderToLabel(); |