diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp index de5845fe3..074c10efa 100644 --- a/src/base/preferences.cpp +++ b/src/base/preferences.cpp @@ -186,6 +186,19 @@ void Preferences::setAlternatingRowColors(const bool b) setValue(u"Preferences/General/AlternatingRowColors"_s, b); } +bool Preferences::useColorCodedProgressBar() const +{ + return value(u"Preferences/General/ColorCodedProgressBar"_s, true); +} + +void Preferences::setColorCodedProgressBar(const bool b) +{ + if (b == useColorCodedProgressBar()) + return; + + setValue(u"Preferences/General/ColorCodedProgressBar"_s, b); +} + bool Preferences::getHideZeroValues() const { return value(u"Preferences/General/HideZeroValues"_s, false); diff --git a/src/base/preferences.h b/src/base/preferences.h index bfe53d150..6133bf80d 100644 --- a/src/base/preferences.h +++ b/src/base/preferences.h @@ -113,6 +113,8 @@ public: void showSpeedInTitleBar(bool show); bool useAlternatingRowColors() const; void setAlternatingRowColors(bool b); + bool useColorCodedProgressBar() const; + void setColorCodedProgressBar(bool b); bool getHideZeroValues() const; void setHideZeroValues(bool b); int getHideZeroComboValues() const; diff --git a/src/gui/optionsdialog.cpp b/src/gui/optionsdialog.cpp index 2d184daea..7d85bc680 100644 --- a/src/gui/optionsdialog.cpp +++ b/src/gui/optionsdialog.cpp @@ -261,6 +261,7 @@ void OptionsDialog::loadBehaviorTabOptions() m_ui->confirmDeletion->setChecked(pref->confirmTorrentDeletion()); m_ui->checkAltRowColors->setChecked(pref->useAlternatingRowColors()); + m_ui->colorCodedProgressBar->setChecked(pref->useColorCodedProgressBar()); m_ui->checkHideZero->setChecked(pref->getHideZeroValues()); m_ui->comboHideZero->setCurrentIndex(pref->getHideZeroComboValues()); m_ui->comboHideZero->setEnabled(m_ui->checkHideZero->isChecked()); @@ -389,6 +390,7 @@ void OptionsDialog::loadBehaviorTabOptions() connect(m_ui->confirmDeletion, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->checkAltRowColors, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); + connect(m_ui->colorCodedProgressBar, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->checkHideZero, &QAbstractButton::toggled, m_ui->comboHideZero, &QWidget::setEnabled); connect(m_ui->checkHideZero, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->comboHideZero, qComboBoxCurrentIndexChanged, this, &ThisType::enableApplyButton); @@ -483,6 +485,7 @@ void OptionsDialog::saveBehaviorTabOptions() const pref->setConfirmTorrentDeletion(m_ui->confirmDeletion->isChecked()); pref->setAlternatingRowColors(m_ui->checkAltRowColors->isChecked()); + pref->setColorCodedProgressBar(m_ui->colorCodedProgressBar->isChecked()); pref->setHideZeroValues(m_ui->checkHideZero->isChecked()); pref->setHideZeroComboValues(m_ui->comboHideZero->currentIndex()); diff --git a/src/gui/optionsdialog.ui b/src/gui/optionsdialog.ui index 188a9c564..b66be9a2e 100644 --- a/src/gui/optionsdialog.ui +++ b/src/gui/optionsdialog.ui @@ -297,6 +297,16 @@ + + + + Use color-coded progress bar + + + true + + + diff --git a/src/gui/transferlistdelegate.cpp b/src/gui/transferlistdelegate.cpp index ba890599c..c8598ddbe 100644 --- a/src/gui/transferlistdelegate.cpp +++ b/src/gui/transferlistdelegate.cpp @@ -31,6 +31,7 @@ #include #include "transferlistmodel.h" +#include "base/preferences.h" TransferListDelegate::TransferListDelegate(QObject *parent) : QStyledItemDelegate {parent} @@ -90,7 +91,12 @@ void TransferListDelegate::paint(QPainter *painter, const QStyleOptionViewItem & QStyleOptionViewItem customOption {option}; customOption.state.setFlag(QStyle::State_Enabled, isEnableState(torrentState)); - const QColor color = index.data(Qt::ForegroundRole).value(); + QColor color = {}; + + if (Preferences::instance()->useColorCodedProgressBar()) + { + color = index.data(Qt::ForegroundRole).value(); + } m_progressBarPainter.paint(painter, customOption, index.data().toString(), progress, color); }