diff --git a/src/widgets/multiloadingindicator.cpp b/src/widgets/multiloadingindicator.cpp index 9c4456dce..1f8175241 100644 --- a/src/widgets/multiloadingindicator.cpp +++ b/src/widgets/multiloadingindicator.cpp @@ -2,6 +2,7 @@ * Strawberry Music Player * This file was part of Clementine. * Copyright 2010, David Sansome + * Copyright 2018-2025, Jonas Kvinge * * Strawberry is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -45,7 +46,8 @@ constexpr int kSpacing = 6; MultiLoadingIndicator::MultiLoadingIndicator(QWidget *parent) : QWidget(parent), task_manager_(nullptr), - spinner_(new BusyIndicator(this)) { + spinner_(new BusyIndicator(this)), + task_count_(-1) { spinner_->move(kHorizontalPadding, kVerticalPadding); setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed); @@ -75,7 +77,7 @@ void MultiLoadingIndicator::UpdateText() { QStringList strings; strings.reserve(tasks.count()); for (const TaskManager::Task &task : tasks) { - QString task_text(task.name); + QString task_text = task.name; task_text[0] = task_text[0].toLower(); if (task.progress_max > 0) { @@ -92,7 +94,11 @@ void MultiLoadingIndicator::UpdateText() { text_ += "..."_L1; } - Q_EMIT TaskCountChange(static_cast(tasks.count())); + if (task_count_ != tasks.count()) { + task_count_ = tasks.count(); + Q_EMIT TaskCountChange(static_cast(tasks.count())); + } + update(); updateGeometry(); diff --git a/src/widgets/multiloadingindicator.h b/src/widgets/multiloadingindicator.h index dc4bc91a0..fcfe3ab4c 100644 --- a/src/widgets/multiloadingindicator.h +++ b/src/widgets/multiloadingindicator.h @@ -2,6 +2,7 @@ * Strawberry Music Player * This file was part of Clementine. * Copyright 2010, David Sansome + * Copyright 2018-2025, Jonas Kvinge * * Strawberry is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -56,6 +57,7 @@ class MultiLoadingIndicator : public QWidget { SharedPtr task_manager_; BusyIndicator *spinner_; + qint64 task_count_; QString text_; };