mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-12-31 20:58:07 -06:00
Replace png icons with svg
This commit is contained in:
committed by
sledgehammer999
parent
45d4d22055
commit
5cd5cc71a8
@@ -29,6 +29,7 @@
|
||||
|
||||
#include "guiiconprovider.h"
|
||||
|
||||
#include <QHash>
|
||||
#include <QIcon>
|
||||
#include <QVector>
|
||||
#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC))
|
||||
@@ -76,7 +77,15 @@ QIcon GuiIconProvider::getIcon(const QString &iconId, const QString &fallback) c
|
||||
#else
|
||||
Q_UNUSED(fallback)
|
||||
#endif
|
||||
return QIcon(IconProvider::getIconPath(iconId));
|
||||
// cache to avoid rescaling svg icons
|
||||
static QHash<QString, QIcon> iconCache;
|
||||
const auto iter = iconCache.find(iconId);
|
||||
if (iter != iconCache.end())
|
||||
return *iter;
|
||||
|
||||
const QIcon icon {IconProvider::getIconPath(iconId)};
|
||||
iconCache[iconId] = icon;
|
||||
return icon;
|
||||
}
|
||||
|
||||
QIcon GuiIconProvider::getFlagIcon(const QString &countryIsoCode) const
|
||||
|
||||
@@ -1568,10 +1568,10 @@ void MainWindow::updateGUI()
|
||||
html += "qBittorrent";
|
||||
html += "</div>";
|
||||
html += "<div style='vertical-align: baseline; height: 18px;'>";
|
||||
html += "<img src=':/icons/skin/download.png' height='14'/> " + tr("DL speed: %1", "e.g: Download speed: 10 KiB/s").arg(Utils::Misc::friendlyUnit(status.payloadDownloadRate, true));
|
||||
html += "<img src=':/icons/skin/download.svg' height='14'/> " + tr("DL speed: %1", "e.g: Download speed: 10 KiB/s").arg(Utils::Misc::friendlyUnit(status.payloadDownloadRate, true));
|
||||
html += "</div>";
|
||||
html += "<div style='vertical-align: baseline; height: 18px;'>";
|
||||
html += "<img src=':/icons/skin/seeding.png' height='14'/> " + tr("UP speed: %1", "e.g: Upload speed: 10 KiB/s").arg(Utils::Misc::friendlyUnit(status.payloadUploadRate, true));
|
||||
html += "<img src=':/icons/skin/seeding.svg' height='14'/> " + tr("UP speed: %1", "e.g: Upload speed: 10 KiB/s").arg(Utils::Misc::friendlyUnit(status.payloadUploadRate, true));
|
||||
html += "</div>";
|
||||
#else
|
||||
// OSes such as Windows do not support html here
|
||||
|
||||
@@ -1751,11 +1751,11 @@ bool OptionsDialog::setSslKey(const QByteArray &key)
|
||||
// try different formats
|
||||
const bool isKeyValid = (!QSslKey(key, QSsl::Rsa).isNull() || !QSslKey(key, QSsl::Ec).isNull());
|
||||
if (isKeyValid) {
|
||||
m_ui->lblSslKeyStatus->setPixmap(Utils::Gui::scaledPixmap(":/icons/qbt-theme/security-high.png", this, 24));
|
||||
m_ui->lblSslKeyStatus->setPixmap(Utils::Gui::scaledPixmapSvg(":/icons/qbt-theme/security-high.svg", this, 24));
|
||||
m_sslKey = key;
|
||||
}
|
||||
else {
|
||||
m_ui->lblSslKeyStatus->setPixmap(Utils::Gui::scaledPixmap(":/icons/qbt-theme/security-low.png", this, 24));
|
||||
m_ui->lblSslKeyStatus->setPixmap(Utils::Gui::scaledPixmapSvg(":/icons/qbt-theme/security-low.svg", this, 24));
|
||||
m_sslKey.clear();
|
||||
}
|
||||
return isKeyValid;
|
||||
@@ -1770,11 +1770,11 @@ bool OptionsDialog::setSslCertificate(const QByteArray &cert)
|
||||
#ifndef QT_NO_OPENSSL
|
||||
const bool isCertValid = !QSslCertificate(cert).isNull();
|
||||
if (isCertValid) {
|
||||
m_ui->lblSslCertStatus->setPixmap(Utils::Gui::scaledPixmap(":/icons/qbt-theme/security-high.png", this, 24));
|
||||
m_ui->lblSslCertStatus->setPixmap(Utils::Gui::scaledPixmapSvg(":/icons/qbt-theme/security-high.svg", this, 24));
|
||||
m_sslCert = cert;
|
||||
}
|
||||
else {
|
||||
m_ui->lblSslCertStatus->setPixmap(Utils::Gui::scaledPixmap(":/icons/qbt-theme/security-low.png", this, 24));
|
||||
m_ui->lblSslCertStatus->setPixmap(Utils::Gui::scaledPixmapSvg(":/icons/qbt-theme/security-low.svg", this, 24));
|
||||
m_sslCert.clear();
|
||||
}
|
||||
return isCertValid;
|
||||
|
||||
@@ -63,14 +63,14 @@ StatusBar::StatusBar(QWidget *parent)
|
||||
m_connecStatusLblIcon->setFlat(true);
|
||||
m_connecStatusLblIcon->setFocusPolicy(Qt::NoFocus);
|
||||
m_connecStatusLblIcon->setCursor(Qt::PointingHandCursor);
|
||||
m_connecStatusLblIcon->setIcon(QIcon(":/icons/skin/firewalled.png"));
|
||||
m_connecStatusLblIcon->setIcon(QIcon(":/icons/skin/firewalled.svg"));
|
||||
m_connecStatusLblIcon->setToolTip(
|
||||
QString(QLatin1String("<b>%1</b><br><i>%2</i>")).arg(tr("Connection status:")
|
||||
, tr("No direct connections. This may indicate network configuration problems.")));
|
||||
connect(m_connecStatusLblIcon, &QAbstractButton::clicked, this, &StatusBar::connectionButtonClicked);
|
||||
|
||||
m_dlSpeedLbl = new QPushButton(this);
|
||||
m_dlSpeedLbl->setIcon(QIcon(":/icons/skin/download.png"));
|
||||
m_dlSpeedLbl->setIcon(QIcon(":/icons/skin/download.svg"));
|
||||
connect(m_dlSpeedLbl, &QAbstractButton::clicked, this, &StatusBar::capDownloadSpeed);
|
||||
m_dlSpeedLbl->setFlat(true);
|
||||
m_dlSpeedLbl->setFocusPolicy(Qt::NoFocus);
|
||||
@@ -79,7 +79,7 @@ StatusBar::StatusBar(QWidget *parent)
|
||||
m_dlSpeedLbl->setMinimumWidth(200);
|
||||
|
||||
m_upSpeedLbl = new QPushButton(this);
|
||||
m_upSpeedLbl->setIcon(QIcon(":/icons/skin/seeding.png"));
|
||||
m_upSpeedLbl->setIcon(QIcon(":/icons/skin/seeding.svg"));
|
||||
connect(m_upSpeedLbl, &QAbstractButton::clicked, this, &StatusBar::capUploadSpeed);
|
||||
m_upSpeedLbl->setFlat(true);
|
||||
m_upSpeedLbl->setFocusPolicy(Qt::NoFocus);
|
||||
@@ -174,17 +174,17 @@ void StatusBar::updateConnectionStatus()
|
||||
const BitTorrent::SessionStatus &sessionStatus = BitTorrent::Session::instance()->status();
|
||||
|
||||
if (!BitTorrent::Session::instance()->isListening()) {
|
||||
m_connecStatusLblIcon->setIcon(QIcon(QLatin1String(":/icons/skin/disconnected.png")));
|
||||
m_connecStatusLblIcon->setIcon(QIcon(QLatin1String(":/icons/skin/disconnected.svg")));
|
||||
m_connecStatusLblIcon->setToolTip(QLatin1String("<b>") + tr("Connection Status:") + QLatin1String("</b><br>") + tr("Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections."));
|
||||
}
|
||||
else {
|
||||
if (sessionStatus.hasIncomingConnections) {
|
||||
// Connection OK
|
||||
m_connecStatusLblIcon->setIcon(QIcon(QLatin1String(":/icons/skin/connected.png")));
|
||||
m_connecStatusLblIcon->setIcon(QIcon(QLatin1String(":/icons/skin/connected.svg")));
|
||||
m_connecStatusLblIcon->setToolTip(QLatin1String("<b>") + tr("Connection Status:") + QLatin1String("</b><br>") + tr("Online"));
|
||||
}
|
||||
else {
|
||||
m_connecStatusLblIcon->setIcon(QIcon(QLatin1String(":/icons/skin/firewalled.png")));
|
||||
m_connecStatusLblIcon->setIcon(QIcon(QLatin1String(":/icons/skin/firewalled.svg")));
|
||||
m_connecStatusLblIcon->setToolTip(QLatin1String("<b>") + tr("Connection status:") + QLatin1String("</b><br>") + QLatin1String("<i>") + tr("No direct connections. This may indicate network configuration problems.") + QLatin1String("</i>"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <QPushButton>
|
||||
|
||||
#include "base/bittorrent/torrenthandle.h"
|
||||
#include "guiiconprovider.h"
|
||||
#include "utils.h"
|
||||
|
||||
TrackerLoginDialog::TrackerLoginDialog(QWidget *parent, BitTorrent::TorrentHandle *const torrent)
|
||||
@@ -44,7 +45,7 @@ TrackerLoginDialog::TrackerLoginDialog(QWidget *parent, BitTorrent::TorrentHandl
|
||||
|
||||
buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Log in"));
|
||||
|
||||
labelLoginLogo->setPixmap(QPixmap(QLatin1String(":/icons/qbt-theme/encrypted.png")));
|
||||
labelLoginLogo->setPixmap(Utils::Gui::scaledPixmap(GuiIconProvider::instance()->getIcon("document-encrypt"), this, 32));
|
||||
|
||||
labelTrackerURL->setText(torrent->currentTracker());
|
||||
|
||||
|
||||
@@ -132,31 +132,31 @@ StatusFilterWidget::StatusFilterWidget(QWidget *parent, TransferListWidget *tran
|
||||
// Add status filters
|
||||
QListWidgetItem *all = new QListWidgetItem(this);
|
||||
all->setData(Qt::DisplayRole, QVariant(tr("All (0)", "this is for the status filter")));
|
||||
all->setData(Qt::DecorationRole, QIcon(":/icons/skin/filterall.png"));
|
||||
all->setData(Qt::DecorationRole, QIcon(":/icons/skin/filterall.svg"));
|
||||
QListWidgetItem *downloading = new QListWidgetItem(this);
|
||||
downloading->setData(Qt::DisplayRole, QVariant(tr("Downloading (0)")));
|
||||
downloading->setData(Qt::DecorationRole, QIcon(":/icons/skin/downloading.png"));
|
||||
downloading->setData(Qt::DecorationRole, QIcon(":/icons/skin/downloading.svg"));
|
||||
QListWidgetItem *seeding = new QListWidgetItem(this);
|
||||
seeding->setData(Qt::DisplayRole, QVariant(tr("Seeding (0)")));
|
||||
seeding->setData(Qt::DecorationRole, QIcon(":/icons/skin/uploading.png"));
|
||||
seeding->setData(Qt::DecorationRole, QIcon(":/icons/skin/uploading.svg"));
|
||||
QListWidgetItem *completed = new QListWidgetItem(this);
|
||||
completed->setData(Qt::DisplayRole, QVariant(tr("Completed (0)")));
|
||||
completed->setData(Qt::DecorationRole, QIcon(":/icons/skin/completed.png"));
|
||||
completed->setData(Qt::DecorationRole, QIcon(":/icons/skin/completed.svg"));
|
||||
QListWidgetItem *resumed = new QListWidgetItem(this);
|
||||
resumed->setData(Qt::DisplayRole, QVariant(tr("Resumed (0)")));
|
||||
resumed->setData(Qt::DecorationRole, QIcon(":/icons/skin/resumed.png"));
|
||||
resumed->setData(Qt::DecorationRole, QIcon(":/icons/skin/resumed.svg"));
|
||||
QListWidgetItem *paused = new QListWidgetItem(this);
|
||||
paused->setData(Qt::DisplayRole, QVariant(tr("Paused (0)")));
|
||||
paused->setData(Qt::DecorationRole, QIcon(":/icons/skin/paused.png"));
|
||||
paused->setData(Qt::DecorationRole, QIcon(":/icons/skin/paused.svg"));
|
||||
QListWidgetItem *active = new QListWidgetItem(this);
|
||||
active->setData(Qt::DisplayRole, QVariant(tr("Active (0)")));
|
||||
active->setData(Qt::DecorationRole, QIcon(":/icons/skin/filteractive.png"));
|
||||
active->setData(Qt::DecorationRole, QIcon(":/icons/skin/filteractive.svg"));
|
||||
QListWidgetItem *inactive = new QListWidgetItem(this);
|
||||
inactive->setData(Qt::DisplayRole, QVariant(tr("Inactive (0)")));
|
||||
inactive->setData(Qt::DecorationRole, QIcon(":/icons/skin/filterinactive.png"));
|
||||
inactive->setData(Qt::DecorationRole, QIcon(":/icons/skin/filterinactive.svg"));
|
||||
QListWidgetItem *errored = new QListWidgetItem(this);
|
||||
errored->setData(Qt::DisplayRole, QVariant(tr("Errored (0)")));
|
||||
errored->setData(Qt::DecorationRole, QIcon(":/icons/skin/error.png"));
|
||||
errored->setData(Qt::DecorationRole, QIcon(":/icons/skin/error.svg"));
|
||||
|
||||
const Preferences *const pref = Preferences::instance();
|
||||
setCurrentRow(pref->getTransSelFilter(), QItemSelectionModel::SelectCurrent);
|
||||
|
||||
@@ -419,55 +419,55 @@ QColor getColorByState(BitTorrent::TorrentState state)
|
||||
|
||||
QIcon getPausedIcon()
|
||||
{
|
||||
static QIcon cached = QIcon(":/icons/skin/paused.png");
|
||||
static QIcon cached = QIcon(":/icons/skin/paused.svg");
|
||||
return cached;
|
||||
}
|
||||
|
||||
QIcon getQueuedIcon()
|
||||
{
|
||||
static QIcon cached = QIcon(":/icons/skin/queued.png");
|
||||
static QIcon cached = QIcon(":/icons/skin/queued.svg");
|
||||
return cached;
|
||||
}
|
||||
|
||||
QIcon getDownloadingIcon()
|
||||
{
|
||||
static QIcon cached = QIcon(":/icons/skin/downloading.png");
|
||||
static QIcon cached = QIcon(":/icons/skin/downloading.svg");
|
||||
return cached;
|
||||
}
|
||||
|
||||
QIcon getStalledDownloadingIcon()
|
||||
{
|
||||
static QIcon cached = QIcon(":/icons/skin/stalledDL.png");
|
||||
static QIcon cached = QIcon(":/icons/skin/stalledDL.svg");
|
||||
return cached;
|
||||
}
|
||||
|
||||
QIcon getUploadingIcon()
|
||||
{
|
||||
static QIcon cached = QIcon(":/icons/skin/uploading.png");
|
||||
static QIcon cached = QIcon(":/icons/skin/uploading.svg");
|
||||
return cached;
|
||||
}
|
||||
|
||||
QIcon getStalledUploadingIcon()
|
||||
{
|
||||
static QIcon cached = QIcon(":/icons/skin/stalledUP.png");
|
||||
static QIcon cached = QIcon(":/icons/skin/stalledUP.svg");
|
||||
return cached;
|
||||
}
|
||||
|
||||
QIcon getCompletedIcon()
|
||||
{
|
||||
static QIcon cached = QIcon(":/icons/skin/completed.png");
|
||||
static QIcon cached = QIcon(":/icons/skin/completed.svg");
|
||||
return cached;
|
||||
}
|
||||
|
||||
QIcon getCheckingIcon()
|
||||
{
|
||||
static QIcon cached = QIcon(":/icons/skin/checking.png");
|
||||
static QIcon cached = QIcon(":/icons/skin/checking.svg");
|
||||
return cached;
|
||||
}
|
||||
|
||||
QIcon getErrorIcon()
|
||||
{
|
||||
static QIcon cached = QIcon(":/icons/skin/error.png");
|
||||
static QIcon cached = QIcon(":/icons/skin/error.svg");
|
||||
return cached;
|
||||
}
|
||||
|
||||
|
||||
@@ -874,7 +874,7 @@ void TransferListWidget::displayListMenu(const QPoint&)
|
||||
connect(&actionDelete, &QAction::triggered, this, &TransferListWidget::softDeleteSelectedTorrents);
|
||||
QAction actionPreviewFile(GuiIconProvider::instance()->getIcon("view-preview"), tr("Preview file..."), nullptr);
|
||||
connect(&actionPreviewFile, &QAction::triggered, this, &TransferListWidget::previewSelectedTorrents);
|
||||
QAction actionSetMaxRatio(QIcon(QLatin1String(":/icons/skin/ratio.png")), tr("Limit share ratio..."), nullptr);
|
||||
QAction actionSetMaxRatio(QIcon(QLatin1String(":/icons/skin/ratio.svg")), tr("Limit share ratio..."), nullptr);
|
||||
connect(&actionSetMaxRatio, &QAction::triggered, this, &TransferListWidget::setMaxRatioSelectedTorrents);
|
||||
QAction actionSetUploadLimit(GuiIconProvider::instance()->getIcon("kt-set-max-upload-speed"), tr("Limit upload rate..."), nullptr);
|
||||
connect(&actionSetUploadLimit, &QAction::triggered, this, &TransferListWidget::setUpLimitSelectedTorrents);
|
||||
|
||||
@@ -63,6 +63,13 @@ qreal Utils::Gui::screenScalingFactor(const QWidget *widget)
|
||||
#endif // Q_OS_WIN
|
||||
}
|
||||
|
||||
QPixmap Utils::Gui::scaledPixmap(const QIcon &icon, const QWidget *widget, const int height)
|
||||
{
|
||||
Q_ASSERT(height > 0);
|
||||
const int scaledHeight = height * Utils::Gui::screenScalingFactor(widget);
|
||||
return icon.pixmap(scaledHeight);
|
||||
}
|
||||
|
||||
QPixmap Utils::Gui::scaledPixmap(const QString &path, const QWidget *widget, const int height)
|
||||
{
|
||||
const QPixmap pixmap(path);
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <QPixmap>
|
||||
#include <QSize>
|
||||
|
||||
class QIcon;
|
||||
class QWidget;
|
||||
|
||||
namespace Utils
|
||||
@@ -48,6 +49,7 @@ namespace Utils
|
||||
return (size * screenScalingFactor(widget));
|
||||
}
|
||||
|
||||
QPixmap scaledPixmap(const QIcon &icon, const QWidget *widget, const int height);
|
||||
QPixmap scaledPixmap(const QString &path, const QWidget *widget, const int height = 0);
|
||||
QPixmap scaledPixmapSvg(const QString &path, const QWidget *widget, const int baseHeight);
|
||||
QSize smallIconSize(const QWidget *widget = nullptr);
|
||||
|
||||
Reference in New Issue
Block a user