diff --git a/qt/Application.cc b/qt/Application.cc index e22921269..834f4ee6c 100644 --- a/qt/Application.cc +++ b/qt/Application.cc @@ -76,6 +76,18 @@ bool loadTranslation(QTranslator& translator, QString const& name, QLocale const return false; } +[[nodiscard]] auto makeWindowIcon() +{ + // first, try to load it from the system theme + if (auto icon = QIcon::fromTheme(QStringLiteral("transmission")); !icon.isNull()) + { + return icon; + } + + // if that fails, use our own as the fallback + return QIcon{ QStringLiteral(":/icons/transmission.svg") }; +} + } // namespace Application::Application(int& argc, char** argv) @@ -96,19 +108,7 @@ Application::Application(int& argc, char** argv) #endif - // set the default icon - QIcon icon = QIcon::fromTheme(QStringLiteral("transmission")); - - if (icon.isNull()) - { - static std::array constexpr Sizes = { 16, 22, 24, 32, 48, 64, 72, 96, 128, 192, 256 }; - for (auto const size : Sizes) - { - icon.addPixmap(QPixmap(QStringLiteral(":/icons/transmission-%1.png").arg(size))); - } - } - - setWindowIcon(icon); + setWindowIcon(makeWindowIcon()); #ifdef __APPLE__ setAttribute(Qt::AA_DontShowIconsInMenus); diff --git a/qt/DetailsDialog.h b/qt/DetailsDialog.h index 1ac887e81..6c3101984 100644 --- a/qt/DetailsDialog.h +++ b/qt/DetailsDialog.h @@ -138,7 +138,7 @@ private: QMap peers_; - QIcon const icon_encrypted_ = QIcon(QStringLiteral(":/icons/encrypted.png")); + QIcon const icon_encrypted_ = QIcon(QStringLiteral(":/icons/encrypted.svg")); QIcon const icon_unencrypted_ = {}; static int prev_tab_index_; diff --git a/qt/IconToolButton.cc b/qt/IconToolButton.cc index 8b1198efb..cabc3fcb3 100644 --- a/qt/IconToolButton.cc +++ b/qt/IconToolButton.cc @@ -23,7 +23,7 @@ QSize IconToolButton::sizeHint() const option.toolButtonStyle = Qt::ToolButtonIconOnly; QSize const size = style()->sizeFromContents(QStyle::CT_ToolButton, &option, iconSize(), this); - return size.expandedTo(iconSize() + QSize(8, 8)); + return size.expandedTo(iconSize() + QSize(4, 4)); } void IconToolButton::paintEvent(QPaintEvent* /*event*/) diff --git a/qt/MainWindow.ui b/qt/MainWindow.ui index 79291cbe6..39127e4b7 100644 --- a/qt/MainWindow.ui +++ b/qt/MainWindow.ui @@ -68,7 +68,7 @@ - :/icons/utilities.png:/icons/utilities.png + :/icons/hamburger-menu.svg:/icons/hamburger-menu.svg @@ -91,8 +91,8 @@ - :/icons/alt-limit-off.png - :/icons/alt-limit-on.png:/icons/alt-limit-off.png + :/icons/alt-limit-off.svg + :/icons/alt-limit-on.svg:/icons/alt-limit-off.svg @@ -151,7 +151,7 @@ - :/icons/ratio.png:/icons/ratio.png + :/icons/ratio.svg:/icons/ratio.svg diff --git a/qt/PrefsDialog.ui b/qt/PrefsDialog.ui index f0dac58b1..553000840 100644 --- a/qt/PrefsDialog.ui +++ b/qt/PrefsDialog.ui @@ -121,7 +121,7 @@ - :/icons/alt-limit-off.png + :/icons/alt-limit-off.svg diff --git a/qt/application.qrc b/qt/application.qrc index 387603bc5..021ceda1f 100644 --- a/qt/application.qrc +++ b/qt/application.qrc @@ -1,21 +1,10 @@ - icons/hicolor/16x16/transmission-qt.png - icons/hicolor/22x22/transmission-qt.png - icons/hicolor/24x24/transmission-qt.png - icons/hicolor/32x32/transmission-qt.png - icons/hicolor/48x48/transmission-qt.png - icons/hicolor/64x64/transmission-qt.png - icons/hicolor/72x72/transmission-qt.png - icons/hicolor/96x96/transmission-qt.png - icons/hicolor/128x128/transmission-qt.png - icons/hicolor/192x192/transmission-qt.png - icons/hicolor/256x256/transmission-qt.png - icons/hicolor/scalable/transmission-qt.svg - icons/ratio.png - icons/turtle-grey.png - icons/turtle-blue.png - icons/lock.png - icons/utilities.png + icons/turtle-silhouette.svg + icons/turtle.svg + icons/lock.svg + icons/hamburger-menu.svg + icons/yin-yang.svg + icons/transmission.svg - \ No newline at end of file + diff --git a/qt/icons/SOURCES.md b/qt/icons/SOURCES.md new file mode 100644 index 000000000..0d52fd4d1 --- /dev/null +++ b/qt/icons/SOURCES.md @@ -0,0 +1,9 @@ +# Icon Sources + +| Name | Source | Author | License | +|---|---|---|---| +| hamburger-menu.svg | [wikimedia](https://commons.wikimedia.org/wiki/File:Hamburger_icon.svg) | [Timothy Miller](https://tmthymllr.com/) | [SPDX: CC-BY-SA-3.0](https://spdx.org/licenses/CC-BY-SA-3.0.html) | +| lock.svg | [fxemoji](https://github.com/mozilla/fxemoji/blob/gh-pages/svgs/objects/u1F512-lock.svg) | Mozilla Foundation | [SPDX: CC-BY-4.0](https://spdx.org/licenses/CC-BY-4.0.html) | +| turtle-silhouette.svg | [fxemoji](https://github.com/mozilla/fxemoji/blob/gh-pages/svgs/nature/u1F422-turtle.svg) (derived from) | Mozilla Foundation | [SPDX: CC-BY-4.0](https://spdx.org/licenses/CC-BY-4.0.html) | +| turtle.svg | [fxemoji](https://github.com/mozilla/fxemoji/blob/gh-pages/svgs/nature/u1F422-turtle.svg) (derived from) | Mozilla Foundation | [SPDX: CC-BY-4.0](https://spdx.org/licenses/CC-BY-4.0.html) | +| yin-yang.svg | [wikimedia](https://commons.wikimedia.org/wiki/File:Yin_and_Yang_symbol.svg) | Klem | [SPDX: CC-SPDX](https://spdx.org/licenses/CC-PDDC.html) | diff --git a/qt/icons/hamburger-menu.svg b/qt/icons/hamburger-menu.svg new file mode 100644 index 000000000..a5e8cbe52 --- /dev/null +++ b/qt/icons/hamburger-menu.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/qt/icons/hicolor/128x128/transmission-qt.png b/qt/icons/hicolor/128x128/transmission-qt.png deleted file mode 100644 index ecc62463d..000000000 Binary files a/qt/icons/hicolor/128x128/transmission-qt.png and /dev/null differ diff --git a/qt/icons/hicolor/16x16/transmission-qt.png b/qt/icons/hicolor/16x16/transmission-qt.png deleted file mode 100644 index 330ae5381..000000000 Binary files a/qt/icons/hicolor/16x16/transmission-qt.png and /dev/null differ diff --git a/qt/icons/hicolor/192x192/transmission-qt.png b/qt/icons/hicolor/192x192/transmission-qt.png deleted file mode 100644 index a750ac5b8..000000000 Binary files a/qt/icons/hicolor/192x192/transmission-qt.png and /dev/null differ diff --git a/qt/icons/hicolor/22x22/transmission-qt.png b/qt/icons/hicolor/22x22/transmission-qt.png deleted file mode 100644 index 804988823..000000000 Binary files a/qt/icons/hicolor/22x22/transmission-qt.png and /dev/null differ diff --git a/qt/icons/hicolor/24x24/transmission-qt.png b/qt/icons/hicolor/24x24/transmission-qt.png deleted file mode 100644 index 1e1bc5f29..000000000 Binary files a/qt/icons/hicolor/24x24/transmission-qt.png and /dev/null differ diff --git a/qt/icons/hicolor/256x256/transmission-qt.png b/qt/icons/hicolor/256x256/transmission-qt.png deleted file mode 100644 index 7c6a8e4f7..000000000 Binary files a/qt/icons/hicolor/256x256/transmission-qt.png and /dev/null differ diff --git a/qt/icons/hicolor/32x32/transmission-qt.png b/qt/icons/hicolor/32x32/transmission-qt.png deleted file mode 100644 index b95c31d6e..000000000 Binary files a/qt/icons/hicolor/32x32/transmission-qt.png and /dev/null differ diff --git a/qt/icons/hicolor/48x48/transmission-qt.png b/qt/icons/hicolor/48x48/transmission-qt.png deleted file mode 100644 index 53c629ca3..000000000 Binary files a/qt/icons/hicolor/48x48/transmission-qt.png and /dev/null differ diff --git a/qt/icons/hicolor/64x64/transmission-qt.png b/qt/icons/hicolor/64x64/transmission-qt.png deleted file mode 100644 index 183637484..000000000 Binary files a/qt/icons/hicolor/64x64/transmission-qt.png and /dev/null differ diff --git a/qt/icons/hicolor/72x72/transmission-qt.png b/qt/icons/hicolor/72x72/transmission-qt.png deleted file mode 100644 index 33b1bc150..000000000 Binary files a/qt/icons/hicolor/72x72/transmission-qt.png and /dev/null differ diff --git a/qt/icons/hicolor/96x96/transmission-qt.png b/qt/icons/hicolor/96x96/transmission-qt.png deleted file mode 100644 index 2d04a1b26..000000000 Binary files a/qt/icons/hicolor/96x96/transmission-qt.png and /dev/null differ diff --git a/qt/icons/hicolor/scalable/transmission-qt.svg b/qt/icons/hicolor/scalable/transmission-qt.svg deleted file mode 100644 index f5453412f..000000000 --- a/qt/icons/hicolor/scalable/transmission-qt.svg +++ /dev/null @@ -1,4352 +0,0 @@ - - - - - - - - - diff --git a/qt/icons/lock.png b/qt/icons/lock.png deleted file mode 100644 index 9551422b1..000000000 Binary files a/qt/icons/lock.png and /dev/null differ diff --git a/qt/icons/lock.svg b/qt/icons/lock.svg new file mode 100644 index 000000000..a02955f98 --- /dev/null +++ b/qt/icons/lock.svg @@ -0,0 +1 @@ + diff --git a/qt/icons/ratio.png b/qt/icons/ratio.png deleted file mode 100644 index 6a4df2607..000000000 Binary files a/qt/icons/ratio.png and /dev/null differ diff --git a/qt/icons/transmission.png b/qt/icons/transmission.png deleted file mode 100644 index fd08b7110..000000000 Binary files a/qt/icons/transmission.png and /dev/null differ diff --git a/qt/icons/transmission.svg b/qt/icons/transmission.svg new file mode 100644 index 000000000..a10a8ad70 --- /dev/null +++ b/qt/icons/transmission.svg @@ -0,0 +1,471 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/qt/icons/turtle-blue.png b/qt/icons/turtle-blue.png deleted file mode 100644 index f4251064a..000000000 Binary files a/qt/icons/turtle-blue.png and /dev/null differ diff --git a/qt/icons/turtle-grey.png b/qt/icons/turtle-grey.png deleted file mode 100644 index 22de9e269..000000000 Binary files a/qt/icons/turtle-grey.png and /dev/null differ diff --git a/qt/icons/turtle-silhouette.svg b/qt/icons/turtle-silhouette.svg new file mode 100644 index 000000000..790ffc0a9 --- /dev/null +++ b/qt/icons/turtle-silhouette.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/qt/icons/turtle.svg b/qt/icons/turtle.svg new file mode 100644 index 000000000..9e875b8b5 --- /dev/null +++ b/qt/icons/turtle.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/qt/icons/utilities.png b/qt/icons/utilities.png deleted file mode 100644 index bbff275e2..000000000 Binary files a/qt/icons/utilities.png and /dev/null differ diff --git a/qt/icons/yin-yang.svg b/qt/icons/yin-yang.svg new file mode 100644 index 000000000..2d1b1a611 --- /dev/null +++ b/qt/icons/yin-yang.svg @@ -0,0 +1,6 @@ + + + + + +