summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy <jimmy@spalge.com>2022-04-04 17:35:04 +1200
committerJimmy <jimmy@spalge.com>2022-04-04 18:03:54 +1200
commite9ed6456fd38abe6d9269bb4f3842c95dc11dfba (patch)
tree660eb986a3dc2a7edd30329143de56c92eafcbad
parentd0c1d1ff94d24376efc3c08c0bb85e0da48cbcbf (diff)
downloadqutebrowser-e9ed6456fd38abe6d9269bb4f3842c95dc11dfba.tar.gz
qutebrowser-e9ed6456fd38abe6d9269bb4f3842c95dc11dfba.zip
Load icons via importlib.resources
The PyQt resources system is gone in 6.2 and deprecated before that. This should be the last usage of it. Switches icons to be read with `utils.resources.read_file_binary()` in `notification.py` (fallback desktop notification icon) and `app.py` (icon for the desktop window). importlib only loads resources under a package, so the icons are moved under the `qutebrowser/` directory. Closes: #6062
-rw-r--r--MANIFEST.in2
-rw-r--r--README.asciidoc2
-rw-r--r--misc/Makefile2
-rw-r--r--misc/qutebrowser.rcc13
-rw-r--r--misc/qutebrowser.spec4
-rw-r--r--qutebrowser/app.py5
-rw-r--r--qutebrowser/browser/webengine/notification.py8
-rw-r--r--qutebrowser/icons/qutebrowser-128x128.png (renamed from icons/qutebrowser-128x128.png)bin6426 -> 6426 bytes
-rw-r--r--qutebrowser/icons/qutebrowser-16x16.png (renamed from icons/qutebrowser-16x16.png)bin856 -> 856 bytes
-rw-r--r--qutebrowser/icons/qutebrowser-24x24.png (renamed from icons/qutebrowser-24x24.png)bin1339 -> 1339 bytes
-rw-r--r--qutebrowser/icons/qutebrowser-256x256.png (renamed from icons/qutebrowser-256x256.png)bin13690 -> 13690 bytes
-rw-r--r--qutebrowser/icons/qutebrowser-32x32.png (renamed from icons/qutebrowser-32x32.png)bin1624 -> 1624 bytes
-rw-r--r--qutebrowser/icons/qutebrowser-48x48.png (renamed from icons/qutebrowser-48x48.png)bin2399 -> 2399 bytes
-rw-r--r--qutebrowser/icons/qutebrowser-512x512.png (renamed from icons/qutebrowser-512x512.png)bin30109 -> 30109 bytes
-rw-r--r--qutebrowser/icons/qutebrowser-64x64.png (renamed from icons/qutebrowser-64x64.png)bin3179 -> 3179 bytes
-rw-r--r--qutebrowser/icons/qutebrowser-96x96.png (renamed from icons/qutebrowser-96x96.png)bin4776 -> 4776 bytes
-rw-r--r--qutebrowser/icons/qutebrowser-all.svg (renamed from icons/qutebrowser-all.svg)0
-rw-r--r--qutebrowser/icons/qutebrowser-favicon.svg (renamed from icons/qutebrowser-favicon.svg)0
-rw-r--r--qutebrowser/icons/qutebrowser.icns (renamed from icons/qutebrowser.icns)bin196205 -> 196205 bytes
-rw-r--r--qutebrowser/icons/qutebrowser.ico (renamed from icons/qutebrowser.ico)bin115490 -> 115490 bytes
-rw-r--r--qutebrowser/icons/qutebrowser.svg (renamed from icons/qutebrowser.svg)0
-rw-r--r--qutebrowser/icons/qutebrowser.xpm (renamed from icons/qutebrowser.xpm)0
-rwxr-xr-xscripts/asciidoc2html.py6
-rw-r--r--scripts/dev/gen_resources.py30
-rw-r--r--tests/end2end/fixtures/webserver_sub.py2
25 files changed, 19 insertions, 55 deletions
diff --git a/MANIFEST.in b/MANIFEST.in
index ed4b5e5b1..81bf824b7 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -4,7 +4,7 @@ recursive-include qutebrowser/javascript *.js
graft tests
graft qutebrowser/html
graft qutebrowser/3rdparty
-graft icons
+graft qutebrowser/icons
graft doc/img
graft misc/apparmor
graft misc/userscripts
diff --git a/README.asciidoc b/README.asciidoc
index bb1f2562c..d1bb9ee98 100644
--- a/README.asciidoc
+++ b/README.asciidoc
@@ -7,7 +7,7 @@ qutebrowser
===========
// QUTE_WEB_HIDE
-image:icons/qutebrowser-64x64.png[qutebrowser logo] *A keyboard-driven, vim-like browser based on PyQt5 and Qt.*
+image:qutebrowser/icons/qutebrowser-64x64.png[qutebrowser logo] *A keyboard-driven, vim-like browser based on PyQt5 and Qt.*
image:https://github.com/qutebrowser/qutebrowser/workflows/CI/badge.svg["Build Status", link="https://github.com/qutebrowser/qutebrowser/actions?query=workflow%3ACI"]
image:https://codecov.io/github/qutebrowser/qutebrowser/coverage.svg?branch=master["coverage badge",link="https://codecov.io/github/qutebrowser/qutebrowser?branch=master"]
diff --git a/misc/Makefile b/misc/Makefile
index b916a20d5..0b021f305 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -24,7 +24,7 @@ install: man
"$(DESTDIR)$(MANDIR)/man1/qutebrowser.1"
install -Dm644 misc/org.qutebrowser.qutebrowser.desktop \
"$(DESTDIR)$(DATADIR)/applications/org.qutebrowser.qutebrowser.desktop"
- $(foreach i,$(ICONSIZES),install -Dm644 "icons/qutebrowser-$(i)x$(i).png" \
+ $(foreach i,$(ICONSIZES),install -Dm644 "qutebrowser/icons/qutebrowser-$(i)x$(i).png" \
"$(DESTDIR)$(DATADIR)/icons/hicolor/$(i)x$(i)/apps/qutebrowser.png";)
install -Dm644 icons/qutebrowser.svg \
"$(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/qutebrowser.svg"
diff --git a/misc/qutebrowser.rcc b/misc/qutebrowser.rcc
deleted file mode 100644
index ffe9e47f6..000000000
--- a/misc/qutebrowser.rcc
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
- <file>../icons/qutebrowser-16x16.png</file>
- <file>../icons/qutebrowser-24x24.png</file>
- <file>../icons/qutebrowser-32x32.png</file>
- <file>../icons/qutebrowser-48x48.png</file>
- <file>../icons/qutebrowser-64x64.png</file>
- <file>../icons/qutebrowser-96x96.png</file>
- <file>../icons/qutebrowser-128x128.png</file>
- <file>../icons/qutebrowser-256x256.png</file>
- <file>../icons/qutebrowser-512x512.png</file>
-</qresource>
-</RCC>
diff --git a/misc/qutebrowser.spec b/misc/qutebrowser.spec
index ffb17d371..11eb11c7d 100644
--- a/misc/qutebrowser.spec
+++ b/misc/qutebrowser.spec
@@ -40,9 +40,9 @@ setupcommon.write_git_file()
if os.name == 'nt':
- icon = '../icons/qutebrowser.ico'
+ icon = '../qutebrowser/icons/qutebrowser.ico'
elif sys.platform == 'darwin':
- icon = '../icons/qutebrowser.icns'
+ icon = '../qutebrowser/icons/qutebrowser.icns'
else:
icon = None
diff --git a/qutebrowser/app.py b/qutebrowser/app.py
index 1ab28e8d0..663c33ffc 100644
--- a/qutebrowser/app.py
+++ b/qutebrowser/app.py
@@ -182,8 +182,9 @@ def _init_icon():
"""Initialize the icon of qutebrowser."""
fallback_icon = QIcon()
for size in [16, 24, 32, 48, 64, 96, 128, 256, 512]:
- filename = ':/icons/qutebrowser-{size}x{size}.png'.format(size=size)
- pixmap = QPixmap(filename)
+ filename = 'icons/qutebrowser-{size}x{size}.png'.format(size=size)
+ pixmap = QPixmap()
+ pixmap.loadFromData(resources.read_file_binary(filename))
if pixmap.isNull():
log.init.warning("Failed to load {}".format(filename))
else:
diff --git a/qutebrowser/browser/webengine/notification.py b/qutebrowser/browser/webengine/notification.py
index 69c702aec..2b77a5ac4 100644
--- a/qutebrowser/browser/webengine/notification.py
+++ b/qutebrowser/browser/webengine/notification.py
@@ -65,7 +65,9 @@ if TYPE_CHECKING:
from qutebrowser.config import config
from qutebrowser.misc import objects
-from qutebrowser.utils import qtutils, log, utils, debug, message, version, objreg
+from qutebrowser.utils import (
+ qtutils, log, utils, debug, message, version, objreg, resources,
+)
from qutebrowser.qt import sip
@@ -965,8 +967,8 @@ class DBusNotificationAdapter(AbstractNotificationAdapter):
icon = qt_notification.icon()
if icon.isNull():
- filename = ':/icons/qutebrowser-64x64.png'
- icon = QImage(filename)
+ filename = 'icons/qutebrowser-64x64.png'
+ icon = QImage.fromData(resources.read_file_binary(filename))
key = self._quirks.icon_key or "image-data"
data = self._convert_image(icon)
diff --git a/icons/qutebrowser-128x128.png b/qutebrowser/icons/qutebrowser-128x128.png
index ca88ccc42..ca88ccc42 100644
--- a/icons/qutebrowser-128x128.png
+++ b/qutebrowser/icons/qutebrowser-128x128.png
Binary files differ
diff --git a/icons/qutebrowser-16x16.png b/qutebrowser/icons/qutebrowser-16x16.png
index 062fe402c..062fe402c 100644
--- a/icons/qutebrowser-16x16.png
+++ b/qutebrowser/icons/qutebrowser-16x16.png
Binary files differ
diff --git a/icons/qutebrowser-24x24.png b/qutebrowser/icons/qutebrowser-24x24.png
index 6aa2b5cd3..6aa2b5cd3 100644
--- a/icons/qutebrowser-24x24.png
+++ b/qutebrowser/icons/qutebrowser-24x24.png
Binary files differ
diff --git a/icons/qutebrowser-256x256.png b/qutebrowser/icons/qutebrowser-256x256.png
index 705d314fc..705d314fc 100644
--- a/icons/qutebrowser-256x256.png
+++ b/qutebrowser/icons/qutebrowser-256x256.png
Binary files differ
diff --git a/icons/qutebrowser-32x32.png b/qutebrowser/icons/qutebrowser-32x32.png
index c03d91092..c03d91092 100644
--- a/icons/qutebrowser-32x32.png
+++ b/qutebrowser/icons/qutebrowser-32x32.png
Binary files differ
diff --git a/icons/qutebrowser-48x48.png b/qutebrowser/icons/qutebrowser-48x48.png
index 1dd9e79a5..1dd9e79a5 100644
--- a/icons/qutebrowser-48x48.png
+++ b/qutebrowser/icons/qutebrowser-48x48.png
Binary files differ
diff --git a/icons/qutebrowser-512x512.png b/qutebrowser/icons/qutebrowser-512x512.png
index 08a273507..08a273507 100644
--- a/icons/qutebrowser-512x512.png
+++ b/qutebrowser/icons/qutebrowser-512x512.png
Binary files differ
diff --git a/icons/qutebrowser-64x64.png b/qutebrowser/icons/qutebrowser-64x64.png
index 72dc3febb..72dc3febb 100644
--- a/icons/qutebrowser-64x64.png
+++ b/qutebrowser/icons/qutebrowser-64x64.png
Binary files differ
diff --git a/icons/qutebrowser-96x96.png b/qutebrowser/icons/qutebrowser-96x96.png
index bc24982c5..bc24982c5 100644
--- a/icons/qutebrowser-96x96.png
+++ b/qutebrowser/icons/qutebrowser-96x96.png
Binary files differ
diff --git a/icons/qutebrowser-all.svg b/qutebrowser/icons/qutebrowser-all.svg
index da9ab4d6d..da9ab4d6d 100644
--- a/icons/qutebrowser-all.svg
+++ b/qutebrowser/icons/qutebrowser-all.svg
diff --git a/icons/qutebrowser-favicon.svg b/qutebrowser/icons/qutebrowser-favicon.svg
index 0cceab56c..0cceab56c 100644
--- a/icons/qutebrowser-favicon.svg
+++ b/qutebrowser/icons/qutebrowser-favicon.svg
diff --git a/icons/qutebrowser.icns b/qutebrowser/icons/qutebrowser.icns
index 928b6ca89..928b6ca89 100644
--- a/icons/qutebrowser.icns
+++ b/qutebrowser/icons/qutebrowser.icns
Binary files differ
diff --git a/icons/qutebrowser.ico b/qutebrowser/icons/qutebrowser.ico
index 42419d944..42419d944 100644
--- a/icons/qutebrowser.ico
+++ b/qutebrowser/icons/qutebrowser.ico
Binary files differ
diff --git a/icons/qutebrowser.svg b/qutebrowser/icons/qutebrowser.svg
index b26c80c2b..b26c80c2b 100644
--- a/icons/qutebrowser.svg
+++ b/qutebrowser/icons/qutebrowser.svg
diff --git a/icons/qutebrowser.xpm b/qutebrowser/icons/qutebrowser.xpm
index 04e183154..04e183154 100644
--- a/icons/qutebrowser.xpm
+++ b/qutebrowser/icons/qutebrowser.xpm
diff --git a/scripts/asciidoc2html.py b/scripts/asciidoc2html.py
index 0a6912b82..6b4e3fb0d 100755
--- a/scripts/asciidoc2html.py
+++ b/scripts/asciidoc2html.py
@@ -196,7 +196,11 @@ class AsciiDoc:
continue
self._build_website_file(item_path.parent, item_path.name)
- copy = {'icons': 'icons', 'doc/img': 'doc/img', 'www/media': 'media/'}
+ copy = {
+ 'qutebrowser/icons': 'icons',
+ 'doc/img': 'doc/img',
+ 'www/media': 'media/',
+ }
for src, dest in copy.items():
full_src = REPO_ROOT / src
diff --git a/scripts/dev/gen_resources.py b/scripts/dev/gen_resources.py
deleted file mode 100644
index efa6c6a3d..000000000
--- a/scripts/dev/gen_resources.py
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env python3
-# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et:
-
-# Copyright 2014-2021 Florian Bruhin (The-Compiler) <me@the-compiler.org>
-
-# this file is part of qutebrowser.
-#
-# qutebrowser is free software: you can redistribute it and/or modify
-# it under the terms of the gnu general public license as published by
-# the free software foundation, either version 3 of the license, or
-# (at your option) any later version.
-#
-# qutebrowser is distributed in the hope that it will be useful,
-# but without any warranty; without even the implied warranty of
-# merchantability or fitness for a particular purpose. see the
-# gnu general public license for more details.
-#
-# you should have received a copy of the gnu general public license
-# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>.
-
-"""Generate Qt resources based on source files."""
-
-import subprocess
-import pathlib
-
-ROOT = pathlib.Path(__file__).parents[2]
-OUTPUT = ROOT / 'qutebrowser' / 'resources.py'
-INPUT = ROOT / 'misc' / 'qutebrowser.rcc'
-
-subprocess.run(['pyrcc5', '-o', str(OUTPUT), str(INPUT)], check=True)
diff --git a/tests/end2end/fixtures/webserver_sub.py b/tests/end2end/fixtures/webserver_sub.py
index 6a4b249c2..392fbe43f 100644
--- a/tests/end2end/fixtures/webserver_sub.py
+++ b/tests/end2end/fixtures/webserver_sub.py
@@ -294,7 +294,7 @@ def view_user_agent():
def favicon():
# WORKAROUND for https://github.com/PyCQA/pylint/issues/5783
# pylint: disable-next=no-member,useless-suppression
- icon_dir = END2END_DIR.parents[1] / 'icons'
+ icon_dir = END2END_DIR.parents[1] / 'qutebrowser' / 'icons'
return flask.send_from_directory(
icon_dir, 'qutebrowser.ico', mimetype='image/vnd.microsoft.icon')