Mercurial > minori
changeset 412:05aed03e0111
poster: silence warnings under newer Qt
this is a better impl anyway
| author | Paper <paper@tflc.us> |
|---|---|
| date | Sat, 25 Jul 2026 14:33:03 -0400 |
| parents | 02a670a8e1c4 |
| children | 192da585a0a8 |
| files | include/gui/widgets/poster.h src/gui/widgets/poster.cc |
| diffstat | 2 files changed, 16 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/include/gui/widgets/poster.h Sat Jul 25 14:22:44 2026 -0400 +++ b/include/gui/widgets/poster.h Sat Jul 25 14:33:03 2026 -0400 @@ -45,6 +45,7 @@ void ImageDownloadFinished(const QImage& img); void RenderToLabel(); void DownloadPoster(); + void OpenServiceUrl(); QSize sizeHint() const override; QSize minimumSizeHint() const override;
--- a/src/gui/widgets/poster.cc Sat Jul 25 14:22:44 2026 -0400 +++ b/src/gui/widgets/poster.cc Sat Jul 25 14:33:03 2026 -0400 @@ -73,6 +73,11 @@ get_thread_->start(); } +void Poster::OpenServiceUrl(void) +{ + QDesktopServices::openUrl(service_url_); +} + void Poster::SetAnime(const Anime::Anime &anime) { label_.clear(); @@ -86,13 +91,10 @@ } std::optional<std::string> url = anime.GetServiceUrl(session.config.service); - if (url) - service_url_ = Strings::ToQString(url.value()); - if (clickable_) { - label_.disconnect(); - connect(&label_, &ClickableLabel::clicked, this, [this] { QDesktopServices::openUrl(service_url_); }); - } + service_url_ = (url) ? Strings::ToQString(url.value()) : ""; + + SetClickable(clickable_); } void Poster::showEvent(QShowEvent *event) @@ -107,13 +109,17 @@ { clickable_ = enabled; + /* This is safe if the connection does not exist, it's a no-op. + * + * This will remove any connections we've already made so we always + * only have one ... */ + disconnect(&label_, &ClickableLabel::clicked, this, &Poster::OpenServiceUrl); + if (clickable_ && !service_url_.isEmpty()) { setCursor(Qt::PointingHandCursor); - label_.disconnect(); - connect(&label_, &ClickableLabel::clicked, this, [this] { QDesktopServices::openUrl(service_url_); }); + connect(&label_, &ClickableLabel::clicked, this, &Poster::OpenServiceUrl); } else { setCursor(Qt::ArrowCursor); - label_.disconnect(); } }
