diff --git a/qbittorrent.pro b/qbittorrent.pro index a7f2a137d..1910dbaef 100644 --- a/qbittorrent.pro +++ b/qbittorrent.pro @@ -17,6 +17,10 @@ tarball.commands += rm -fR $${PROJECT_NAME}-$${PROJECT_VERSION} QMAKE_EXTRA_TARGETS += tarball +# Translations included here (at top level) is to avoid regenerating the .qm files +# every time when src.pro is processed +include(src/lang/lang.pri) + # For Qt Creator beautifier DISTFILES += \ uncrustify.cfg diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index d4db1e3e1..e36c69f36 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -2300,7 +2300,7 @@ bool Session::loadMetadata(const MagnetUri &magnetUri) p.max_connections = maxConnectionsPerTorrent(); p.max_uploads = maxUploadsPerTorrent(); - QString savePath = QString("%1/%2").arg(QDir::tempPath(), hash); + QString savePath = QString("%1/%2").arg(Utils::Fs::tempPath(), hash); p.save_path = Utils::Fs::toNativePath(savePath).toStdString(); // Forced start diff --git a/src/base/iconprovider.cpp b/src/base/iconprovider.cpp index 2d6004311..9851536e9 100644 --- a/src/base/iconprovider.cpp +++ b/src/base/iconprovider.cpp @@ -29,8 +29,6 @@ #include "iconprovider.h" -#include - IconProvider::IconProvider(QObject *parent) : QObject(parent) { @@ -57,7 +55,7 @@ IconProvider *IconProvider::instance() return m_instance; } -QString IconProvider::getIconPath(const QString &iconId) +QString IconProvider::getIconPath(const QString &iconId) const { return ":/icons/qbt-theme/" + iconId + ".png"; } diff --git a/src/base/iconprovider.h b/src/base/iconprovider.h index 98e204bd9..3bba13361 100644 --- a/src/base/iconprovider.h +++ b/src/base/iconprovider.h @@ -31,8 +31,7 @@ #define ICONPROVIDER_H #include - -class QString; +#include class IconProvider : public QObject { @@ -43,7 +42,7 @@ public: static void freeInstance(); static IconProvider *instance(); - virtual QString getIconPath(const QString &iconId); + virtual QString getIconPath(const QString &iconId) const; protected: explicit IconProvider(QObject *parent = nullptr); diff --git a/src/gui/guiiconprovider.cpp b/src/gui/guiiconprovider.cpp index bfe4a2ee6..b14431b86 100644 --- a/src/gui/guiiconprovider.cpp +++ b/src/gui/guiiconprovider.cpp @@ -30,12 +30,14 @@ #include "guiiconprovider.h" #include +#include #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) #include #include #endif #include "base/preferences.h" +#include "base/utils/fs.h" GuiIconProvider::GuiIconProvider(QObject *parent) : IconProvider(parent) @@ -57,12 +59,12 @@ GuiIconProvider *GuiIconProvider::instance() return static_cast(m_instance); } -QIcon GuiIconProvider::getIcon(const QString &iconId) +QIcon GuiIconProvider::getIcon(const QString &iconId) const { return getIcon(iconId, iconId); } -QIcon GuiIconProvider::getIcon(const QString &iconId, const QString &fallback) +QIcon GuiIconProvider::getIcon(const QString &iconId, const QString &fallback) const { #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) if (m_useSystemTheme) { @@ -78,7 +80,7 @@ QIcon GuiIconProvider::getIcon(const QString &iconId, const QString &fallback) return QIcon(IconProvider::getIconPath(iconId)); } -QIcon GuiIconProvider::getFlagIcon(const QString &countryIsoCode) +QIcon GuiIconProvider::getFlagIcon(const QString &countryIsoCode) const { if (countryIsoCode.isEmpty()) return QIcon(); return QIcon(":/icons/flags/" + countryIsoCode.toLower() + ".svg"); @@ -89,7 +91,7 @@ QIcon GuiIconProvider::getFlagIcon(const QString &countryIsoCode) // Otherwise, the UI looks broken if the icon is not available // in the correct size. #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) -QIcon GuiIconProvider::generateDifferentSizes(const QIcon &icon) +QIcon GuiIconProvider::generateDifferentSizes(const QIcon &icon) const { // if icon is loaded from SVG format, it already contains all the required sizes and we shall not resize it // In that case it will be available in the following sizes: @@ -99,16 +101,15 @@ QIcon GuiIconProvider::generateDifferentSizes(const QIcon &icon) return icon; QIcon newIcon; - QList requiredSizes; - requiredSizes << QSize(16, 16) << QSize(24, 24) << QSize(32, 32); - QList modes; - modes << QIcon::Normal << QIcon::Active << QIcon::Selected << QIcon::Disabled; - foreach (const QSize &size, requiredSizes) { - foreach (QIcon::Mode mode, modes) { + const QVector requiredSizes {{16, 16}, {24, 24}, {32, 32}}; + const QVector modes {QIcon::Normal, QIcon::Active, QIcon::Selected, QIcon::Disabled}; + for (const QSize &size : requiredSizes) { + for (const QIcon::Mode mode : modes) { QPixmap pixoff = icon.pixmap(size, mode, QIcon::Off); if (pixoff.height() > size.height()) pixoff = pixoff.scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation); newIcon.addPixmap(pixoff, mode, QIcon::Off); + QPixmap pixon = icon.pixmap(size, mode, QIcon::On); if (pixon.height() > size.height()) pixon = pixoff.scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation); @@ -120,11 +121,11 @@ QIcon GuiIconProvider::generateDifferentSizes(const QIcon &icon) } #endif -QString GuiIconProvider::getIconPath(const QString &iconId) +QString GuiIconProvider::getIconPath(const QString &iconId) const { #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) if (m_useSystemTheme) { - QString path = QDir::temp().absoluteFilePath(iconId + ".png"); + QString path = Utils::Fs::tempPath() + iconId + ".png"; if (!QFile::exists(path)) { const QIcon icon = QIcon::fromTheme(iconId); if (!icon.isNull()) diff --git a/src/gui/guiiconprovider.h b/src/gui/guiiconprovider.h index 0acc13f92..4bc0d4e7f 100644 --- a/src/gui/guiiconprovider.h +++ b/src/gui/guiiconprovider.h @@ -43,10 +43,10 @@ public: static void initInstance(); static GuiIconProvider *instance(); - QIcon getIcon(const QString &iconId); - QIcon getIcon(const QString &iconId, const QString &fallback); - QIcon getFlagIcon(const QString &countryIsoCode); - QString getIconPath(const QString &iconId); + QIcon getIcon(const QString &iconId) const; + QIcon getIcon(const QString &iconId, const QString &fallback) const; + QIcon getFlagIcon(const QString &countryIsoCode) const; + QString getIconPath(const QString &iconId) const override; private slots: void configure(); @@ -55,7 +55,7 @@ private: explicit GuiIconProvider(QObject *parent = nullptr); ~GuiIconProvider(); #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) - QIcon generateDifferentSizes(const QIcon &icon); + QIcon generateDifferentSizes(const QIcon &icon) const; bool m_useSystemTheme; #endif diff --git a/src/src.pro b/src/src.pro index 5bbf39b3c..e1c069ff2 100644 --- a/src/src.pro +++ b/src/src.pro @@ -76,7 +76,4 @@ RESOURCES += \ lang/lang.qrc \ searchengine/searchengine.qrc -# Translations -include(lang/lang.pri) - DESTDIR = .