1
0
mirror of https://github.com/d47081/qBittorrent.git synced 2025-01-11 07:18:08 +00:00

Replace png icons with svg

This commit is contained in:
Chocobo1 2018-07-23 12:28:14 +08:00
parent 866408151c
commit 71dcc76a64
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
206 changed files with 238 additions and 218 deletions

View File

@ -29,6 +29,8 @@
#include "iconprovider.h"
#include <QFileInfo>
IconProvider::IconProvider(QObject *parent)
: QObject(parent)
{
@ -57,7 +59,13 @@ IconProvider *IconProvider::instance()
QString IconProvider::getIconPath(const QString &iconId) const
{
return ":/icons/qbt-theme/" + iconId + ".png";
// there are a few icons not available in svg
const QString pathSvg = ":/icons/qbt-theme/" + iconId + ".svg";
if (QFileInfo::exists(pathSvg))
return pathSvg;
const QString pathPng = ":/icons/qbt-theme/" + iconId + ".png";
return pathPng;
}
IconProvider *IconProvider::m_instance = nullptr;

View File

@ -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

View File

@ -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'/>&nbsp;" + 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'/>&nbsp;" + 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'/>&nbsp;" + 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'/>&nbsp;" + 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

View File

@ -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;

View File

@ -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>"));
}
}

View File

@ -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());

View File

@ -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);

View File

@ -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;
}

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -251,105 +251,105 @@
<file>flags/zw.svg</file>
<file>L.gif</file>
<file>loading.png</file>
<file>qbt-theme/application-exit.png</file>
<file>qbt-theme/application-rss+xml.png</file>
<file>qbt-theme/application-x-mswinurl.png</file>
<file>qbt-theme/checked.png</file>
<file>qbt-theme/configure.png</file>
<file>qbt-theme/dialog-cancel.png</file>
<file>qbt-theme/dialog-information.png</file>
<file>qbt-theme/dialog-warning.png</file>
<file>qbt-theme/document-edit-verify.png</file>
<file>qbt-theme/document-edit.png</file>
<file>qbt-theme/document-encrypt.png</file>
<file>qbt-theme/document-import.png</file>
<file>qbt-theme/document-new.png</file>
<file>qbt-theme/document-properties.png</file>
<file>qbt-theme/document-save.png</file>
<file>qbt-theme/download.png</file>
<file>qbt-theme/edit-clear-history.png</file>
<file>qbt-theme/edit-clear.png</file>
<file>qbt-theme/edit-copy.png</file>
<file>qbt-theme/edit-cut.png</file>
<file>qbt-theme/edit-delete.png</file>
<file>qbt-theme/edit-find-user.png</file>
<file>qbt-theme/edit-find.png</file>
<file>qbt-theme/edit-paste.png</file>
<file>qbt-theme/edit-rename.png</file>
<file>qbt-theme/folder-documents.png</file>
<file>qbt-theme/folder-download.png</file>
<file>qbt-theme/folder-new.png</file>
<file>qbt-theme/folder-remote.png</file>
<file>qbt-theme/gear.png</file>
<file>qbt-theme/gear32.png</file>
<file>qbt-theme/go-bottom.png</file>
<file>qbt-theme/go-down.png</file>
<file>qbt-theme/go-top.png</file>
<file>qbt-theme/go-up.png</file>
<file>qbt-theme/help-about.png</file>
<file>qbt-theme/help-contents.png</file>
<file>qbt-theme/inode-directory.png</file>
<file>qbt-theme/insert-link.png</file>
<file>qbt-theme/application-exit.svg</file>
<file>qbt-theme/application-rss+xml.svg</file>
<file>qbt-theme/application-x-mswinurl.svg</file>
<file>qbt-theme/checked.svg</file>
<file>qbt-theme/configure.svg</file>
<file>qbt-theme/dialog-cancel.svg</file>
<file>qbt-theme/dialog-information.svg</file>
<file>qbt-theme/dialog-warning.svg</file>
<file>qbt-theme/document-edit-verify.svg</file>
<file>qbt-theme/document-edit.svg</file>
<file>qbt-theme/document-encrypt.svg</file>
<file>qbt-theme/document-import.svg</file>
<file>qbt-theme/document-new.svg</file>
<file>qbt-theme/document-properties.svg</file>
<file>qbt-theme/document-save.svg</file>
<file>qbt-theme/download.svg</file>
<file>qbt-theme/edit-clear-history.svg</file>
<file>qbt-theme/edit-clear.svg</file>
<file>qbt-theme/edit-copy.svg</file>
<file>qbt-theme/edit-cut.svg</file>
<file>qbt-theme/edit-delete.svg</file>
<file>qbt-theme/edit-find-user.svg</file>
<file>qbt-theme/edit-find.svg</file>
<file>qbt-theme/edit-paste.svg</file>
<file>qbt-theme/edit-rename.svg</file>
<file>qbt-theme/folder-documents.svg</file>
<file>qbt-theme/folder-download.svg</file>
<file>qbt-theme/folder-new.svg</file>
<file>qbt-theme/folder-remote.svg</file>
<file>qbt-theme/gear.svg</file>
<file>qbt-theme/gear32.svg</file>
<file>qbt-theme/go-bottom.svg</file>
<file>qbt-theme/go-down.svg</file>
<file>qbt-theme/go-top.svg</file>
<file>qbt-theme/go-up.svg</file>
<file>qbt-theme/help-about.svg</file>
<file>qbt-theme/help-contents.svg</file>
<file>qbt-theme/inode-directory.svg</file>
<file>qbt-theme/insert-link.svg</file>
<file>qbt-theme/kt-magnet.png</file>
<file>qbt-theme/kt-set-max-download-speed.png</file>
<file>qbt-theme/kt-set-max-upload-speed.png</file>
<file>qbt-theme/list-add.png</file>
<file>qbt-theme/list-remove.png</file>
<file>qbt-theme/mail-folder-inbox.png</file>
<file>qbt-theme/mail-mark-read.png</file>
<file>qbt-theme/media-playback-pause.png</file>
<file>qbt-theme/media-playback-start.png</file>
<file>qbt-theme/media-seek-forward.png</file>
<file>qbt-theme/network-server.png</file>
<file>qbt-theme/network-wired.png</file>
<file>qbt-theme/object-locked.png</file>
<file>qbt-theme/office-chart-line.png</file>
<file>qbt-theme/preferences-desktop.png</file>
<file>qbt-theme/preferences-other.png</file>
<file>qbt-theme/preferences-system-network.png</file>
<file>qbt-theme/preferences-web-browser-cookies.png</file>
<file>qbt-theme/list-add.svg</file>
<file>qbt-theme/list-remove.svg</file>
<file>qbt-theme/mail-folder-inbox.svg</file>
<file>qbt-theme/mail-mark-read.svg</file>
<file>qbt-theme/media-playback-pause.svg</file>
<file>qbt-theme/media-playback-start.svg</file>
<file>qbt-theme/media-seek-forward.svg</file>
<file>qbt-theme/network-server.svg</file>
<file>qbt-theme/network-wired.svg</file>
<file>qbt-theme/object-locked.svg</file>
<file>qbt-theme/office-chart-line.svg</file>
<file>qbt-theme/preferences-desktop.svg</file>
<file>qbt-theme/preferences-other.svg</file>
<file>qbt-theme/preferences-system-network.svg</file>
<file>qbt-theme/preferences-web-browser-cookies.svg</file>
<file>qbt-theme/rss-config.png</file>
<file>qbt-theme/security-high.png</file>
<file>qbt-theme/security-low.png</file>
<file>qbt-theme/services.png</file>
<file>qbt-theme/speedometer.png</file>
<file>qbt-theme/system-log-out.png</file>
<file>qbt-theme/tab-close.png</file>
<file>qbt-theme/task-attention.png</file>
<file>qbt-theme/security-high.svg</file>
<file>qbt-theme/security-low.svg</file>
<file>qbt-theme/services.svg</file>
<file>qbt-theme/speedometer.svg</file>
<file>qbt-theme/system-log-out.svg</file>
<file>qbt-theme/tab-close.svg</file>
<file>qbt-theme/task-attention.svg</file>
<file>qbt-theme/task-complete.png</file>
<file>qbt-theme/task-ongoing.png</file>
<file>qbt-theme/task-reject.png</file>
<file>qbt-theme/text-plain.png</file>
<file>qbt-theme/tools-report-bug.png</file>
<file>qbt-theme/unavailable.png</file>
<file>qbt-theme/user-group-delete.png</file>
<file>qbt-theme/user-group-new.png</file>
<file>qbt-theme/view-calendar-journal.png</file>
<file>qbt-theme/view-categories.png</file>
<file>qbt-theme/view-filter.png</file>
<file>qbt-theme/view-preview.png</file>
<file>qbt-theme/view-refresh.png</file>
<file>qbt-theme/view-statistics.png</file>
<file>qbt-theme/wallet-open.png</file>
<file>qbt-theme/webui.png</file>
<file>qbt-theme/text-plain.svg</file>
<file>qbt-theme/tools-report-bug.svg</file>
<file>qbt-theme/unavailable.svg</file>
<file>qbt-theme/user-group-delete.svg</file>
<file>qbt-theme/user-group-new.svg</file>
<file>qbt-theme/view-calendar-journal.svg</file>
<file>qbt-theme/view-categories.svg</file>
<file>qbt-theme/view-filter.svg</file>
<file>qbt-theme/view-preview.svg</file>
<file>qbt-theme/view-refresh.svg</file>
<file>qbt-theme/view-statistics.svg</file>
<file>qbt-theme/wallet-open.svg</file>
<file>qbt-theme/webui.svg</file>
<file>skin/arrow-right.gif</file>
<file>skin/bg-dropdown.gif</file>
<file>skin/bg-handle-horizontal.gif</file>
<file>skin/bg-header.gif</file>
<file>skin/bg-panel-header.gif</file>
<file>skin/checking.png</file>
<file>skin/checking.svg</file>
<file>skin/collapse-expand.gif</file>
<file>skin/completed.png</file>
<file>skin/connected.png</file>
<file>skin/disconnected.png</file>
<file>skin/completed.svg</file>
<file>skin/connected.svg</file>
<file>skin/disconnected.svg</file>
<file>skin/dock-tabs.gif</file>
<file>skin/download.png</file>
<file>skin/downloading.png</file>
<file>skin/error.png</file>
<file>skin/filteractive.png</file>
<file>skin/filterall.png</file>
<file>skin/filterinactive.png</file>
<file>skin/firewalled.png</file>
<file>skin/download.svg</file>
<file>skin/downloading.svg</file>
<file>skin/error.svg</file>
<file>skin/filteractive.svg</file>
<file>skin/filterall.svg</file>
<file>skin/filterinactive.svg</file>
<file>skin/firewalled.svg</file>
<file>skin/handle-icon-horizontal.gif</file>
<file>skin/handle-icon.gif</file>
<file>skin/knob.gif</file>
@ -357,26 +357,26 @@
<file>skin/logo.gif</file>
<file>skin/logo2.gif</file>
<file>skin/mascot.png</file>
<file>skin/paused.png</file>
<file>skin/paused.svg</file>
<file>skin/qbittorrent-tray.svg</file>
<file>skin/qbittorrent-tray-dark.svg</file>
<file>skin/qbittorrent-tray-light.svg</file>
<file>skin/qbittorrent32.png</file>
<file>skin/queued.png</file>
<file>skin/ratio.png</file>
<file>skin/resumed.png</file>
<file>skin/seeding.png</file>
<file>skin/queued.svg</file>
<file>skin/ratio.svg</file>
<file>skin/resumed.svg</file>
<file>skin/seeding.svg</file>
<file>skin/slider-area.gif</file>
<file>skin/spacer.gif</file>
<file>skin/spinner-placeholder.gif</file>
<file>skin/spinner.gif</file>
<file>skin/splash.png</file>
<file>skin/stalledDL.png</file>
<file>skin/stalledUP.png</file>
<file>skin/stalledDL.svg</file>
<file>skin/stalledUP.svg</file>
<file>skin/tabs.gif</file>
<file>skin/toolbox-divider.gif</file>
<file>skin/toolbox-divider2.gif</file>
<file>skin/uploading.png</file>
<file>skin/uploading.svg</file>
<file>slow.png</file>
<file>slow_off.png</file>
<file>sphere.png</file>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 478 B

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

Before

Width:  |  Height:  |  Size: 878 B

After

Width:  |  Height:  |  Size: 878 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

View File

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 796 B

After

Width:  |  Height:  |  Size: 796 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 585 B

After

Width:  |  Height:  |  Size: 585 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1013 B

After

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 801 B

After

Width:  |  Height:  |  Size: 801 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 453 B

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 817 B

After

Width:  |  Height:  |  Size: 817 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 824 B

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 732 B

After

Width:  |  Height:  |  Size: 732 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 711 B

After

Width:  |  Height:  |  Size: 711 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 805 B

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 478 B

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 780 B

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 782 B

After

Width:  |  Height:  |  Size: 782 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 928 B

After

Width:  |  Height:  |  Size: 928 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 941 B

After

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 711 B

After

Width:  |  Height:  |  Size: 711 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 993 B

View File

Before

Width:  |  Height:  |  Size: 566 B

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 755 B

View File

Before

Width:  |  Height:  |  Size: 445 B

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 472 B

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 796 B

After

Width:  |  Height:  |  Size: 796 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 833 B

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 941 B

After

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 824 B

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 639 B

View File

Before

Width:  |  Height:  |  Size: 243 B

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 358 B

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 B

View File

Before

Width:  |  Height:  |  Size: 395 B

After

Width:  |  Height:  |  Size: 395 B

Some files were not shown because too many files have changed in this diff Show More