Skip to content

Commit

Permalink
build: Rework data files
Browse files Browse the repository at this point in the history
GResource entries are split into two files:
- `bottles.gresource.xml` remains the GResource file for UI
  files and CSS, with everything else removed.
- `data.gresource.xml` is being introduced for anything related
  to data, such as icons, and in the future
  `Adw.AboutDialog.new_from_appdata ()`.

Most unneeded icons, for instance `data/icons/*/48`, have been
removed. They served no purpose whatsoever, so there's no
point in keeping them.

Every XML-like file runs through a preprocessor to make them
take less space.
  • Loading branch information
TheEvilSkeleton committed Dec 9, 2024
1 parent 1517f2d commit 5d3c416
Show file tree
Hide file tree
Showing 36 changed files with 114 additions and 401 deletions.
9 changes: 6 additions & 3 deletions bottles/frontend/bottles.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
pkgdatadir = "@pkgdatadir@"
localedir = "@localedir@"
# noinspection DuplicatedCode
gresource_path = f"{pkgdatadir}/bottles.gresource"
data_gresource_path = f"{pkgdatadir}/data.gresource"
bottles_gresource_path = f"{pkgdatadir}/bottles.gresource"
sys.path.insert(1, pkgdatadir)

# Remove GTK_THEME variable to prevent breakages
Expand All @@ -39,9 +40,11 @@
if __name__ == "__main__":
from gi.repository import Gio

resource = Gio.Resource.load(gresource_path)
data_resource = Gio.Resource.load(data_gresource_path)
bottles_resource = Gio.Resource.load(bottles_gresource_path)
# noinspection PyProtectedMember
resource._register()
data_resource._register()
bottles_resource._register()

from bottles.frontend import main

Expand Down
1 change: 1 addition & 0 deletions bottles/frontend/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ class Bottles(Adw.Application):
def __init__(self):
super().__init__(
application_id=APP_ID,
resource_base_path="/com/usebottles/bottles",
flags=Gio.ApplicationFlags.HANDLES_COMMAND_LINE,
register_session=True,
)
Expand Down
141 changes: 55 additions & 86 deletions bottles/frontend/ui/bottles.gresource.xml
Original file line number Diff line number Diff line change
@@ -1,89 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/com/usebottles/bottles">
<file>style.css</file>
<file>style-dark.css</file>
<file>window.ui</file>
<file>new.ui</file>
<file>list.ui</file>
<file>loading.ui</file>
<file>list-entry.ui</file>
<file>task-entry.ui</file>
<file>dependency-entry.ui</file>
<file>program-entry.ui</file>
<file>importer-entry.ui</file>
<file>state-entry.ui</file>
<file>installer-entry.ui</file>
<file>dll-override-entry.ui</file>
<file>env-var-entry.ui</file>
<file>component-entry.ui</file>
<file>drive-entry.ui</file>
<file>library-entry.ui</file>
<file>local-resource-entry.ui</file>
<file>exclusion-pattern-entry.ui</file>
<file>details.ui</file>
<file>details-bottle.ui</file>
<file>details-dependencies.ui</file>
<file>details-installers.ui</file>
<file>details-preferences.ui</file>
<file>details-versioning.ui</file>
<file>details-taskmanager.ui</file>
<file>preferences.ui</file>
<file>importer.ui</file>
<file>library.ui</file>
<file>dialog-launch-options.ui</file>
<file>dialog-dll-overrides.ui</file>
<file>dialog-env-vars.ui</file>
<file>dialog-crash-report.ui</file>
<file>dialog-duplicate.ui</file>
<file>dialog-rename.ui</file>
<file>dialog-gamescope.ui</file>
<file>dialog-vkbasalt.ui</file>
<file>dialog-fsr.ui</file>
<file>dialog-mangohud.ui</file>
<file>dialog-display.ui</file>
<file>dialog-drives.ui</file>
<file>dialog-journal.ui</file>
<file>dialog-sandbox.ui</file>
<file>dialog-installer.ui</file>
<file>dialog-bottle-picker.ui</file>
<file>dialog-proton-alert.ui</file>
<file>dialog-deps-check.ui</file>
<file>dialog-exclusion-patterns.ui</file>
<file>dialog-upgrade-versioning.ui</file>
<file>dialog-vmtouch.ui</file>
<file>onboard.ui</file>
<file>about.ui</file>

</gresource>
<gresource prefix="/com/usebottles/bottles/icons/scalable/actions">
<file alias="bottles-steam-symbolic.svg">../../../data/icons/symbolic/scalable/apps/bottles-steam-symbolic.svg</file>
<file alias="external-link-symbolic.svg">../../../data/icons/symbolic/scalable/actions/external-link-symbolic.svg</file>
<file alias="applications-system-symbolic.svg">../../../data/icons/symbolic/scalable/actions/applications-system-symbolic.svg</file>
<file alias="application-x-addon-symbolic.svg">../../../data/icons/symbolic/scalable/actions/application-x-addon-symbolic.svg</file>
<file alias="computer-symbolic.svg">../../../data/icons/symbolic/scalable/actions/computer-symbolic.svg</file>
<file alias="document-save-symbolic.svg">../../../data/icons/symbolic/scalable/actions/document-save-symbolic.svg</file>
<file alias="go-next-symbolic.svg">../../../data/icons/symbolic/scalable/actions/go-next-symbolic.svg</file>
<file alias="go-previous-symbolic.svg">../../../data/icons/symbolic/scalable/actions/go-previous-symbolic.svg</file>
<file alias="media-playback-start-symbolic.svg">../../../data/icons/symbolic/scalable/actions/media-playback-start-symbolic.svg</file>
<file alias="media-playback-stop-symbolic.svg">../../../data/icons/symbolic/scalable/actions/media-playback-stop-symbolic.svg</file>
<file alias="preferences-desktop-apps-symbolic.svg">../../../data/icons/symbolic/scalable/actions/preferences-desktop-apps-symbolic.svg</file>
<file alias="preferences-system-time-symbolic.svg">../../../data/icons/symbolic/scalable/actions/preferences-system-time-symbolic.svg</file>
<file alias="selection-mode-symbolic.svg">../../../data/icons/symbolic/scalable/actions/selection-mode-symbolic.svg</file>
<file alias="system-run-symbolic.svg">../../../data/icons/symbolic/scalable/actions/system-run-symbolic.svg</file>
<file alias="system-shutdown-symbolic.svg">../../../data/icons/symbolic/scalable/actions/system-shutdown-symbolic.svg</file>
<file alias="system-software-install-symbolic.svg">../../../data/icons/symbolic/scalable/actions/system-software-install-symbolic.svg</file>
<file alias="view-more-symbolic.svg">../../../data/icons/symbolic/scalable/actions/view-more-symbolic.svg</file>
<file alias="open-menu-symbolic.svg">../../../data/icons/symbolic/scalable/actions/open-menu-symbolic.svg</file>
<file alias="system-search-symbolic.svg">../../../data/icons/symbolic/scalable/actions/system-search-symbolic.svg</file>
<file alias="list-add-symbolic.svg">../../../data/icons/symbolic/scalable/actions/list-add-symbolic.svg</file>
<file alias="paper-symbolic.svg">../../../data/icons/symbolic/scalable/actions/paper-symbolic.svg</file>
<file alias="info-symbolic.svg">../../../data/icons/symbolic/scalable/actions/info-symbolic.svg</file>
<file alias="library-symbolic.svg">../../../data/icons/symbolic/scalable/actions/library-symbolic.svg</file>
<file alias="warning-symbolic.svg">../../../data/icons/symbolic/scalable/actions/warning-symbolic.svg</file>
</gresource>
<gresource prefix="/com/usebottles/bottles/images">
<file alias="images/bottles-welcome.svg">../../../data/images/bottles-welcome.svg</file>
<file alias="images/bottles-welcome-night.svg">../../../data/images/bottles-welcome-night.svg</file>
</gresource>
<gresource prefix="/com/usebottles/bottles">
<file>style.css</file>
<file>style-dark.css</file>
<file preprocess="xml-stripblanks">window.ui</file>
<file preprocess="xml-stripblanks">new.ui</file>
<file preprocess="xml-stripblanks">list.ui</file>
<file preprocess="xml-stripblanks">loading.ui</file>
<file preprocess="xml-stripblanks">list-entry.ui</file>
<file preprocess="xml-stripblanks">task-entry.ui</file>
<file preprocess="xml-stripblanks">dependency-entry.ui</file>
<file preprocess="xml-stripblanks">program-entry.ui</file>
<file preprocess="xml-stripblanks">importer-entry.ui</file>
<file preprocess="xml-stripblanks">state-entry.ui</file>
<file preprocess="xml-stripblanks">installer-entry.ui</file>
<file preprocess="xml-stripblanks">dll-override-entry.ui</file>
<file preprocess="xml-stripblanks">env-var-entry.ui</file>
<file preprocess="xml-stripblanks">component-entry.ui</file>
<file preprocess="xml-stripblanks">drive-entry.ui</file>
<file preprocess="xml-stripblanks">library-entry.ui</file>
<file preprocess="xml-stripblanks">local-resource-entry.ui</file>
<file preprocess="xml-stripblanks">exclusion-pattern-entry.ui</file>
<file preprocess="xml-stripblanks">details.ui</file>
<file preprocess="xml-stripblanks">details-bottle.ui</file>
<file preprocess="xml-stripblanks">details-dependencies.ui</file>
<file preprocess="xml-stripblanks">details-installers.ui</file>
<file preprocess="xml-stripblanks">details-preferences.ui</file>
<file preprocess="xml-stripblanks">details-versioning.ui</file>
<file preprocess="xml-stripblanks">details-taskmanager.ui</file>
<file preprocess="xml-stripblanks">preferences.ui</file>
<file preprocess="xml-stripblanks">importer.ui</file>
<file preprocess="xml-stripblanks">library.ui</file>
<file preprocess="xml-stripblanks">dialog-launch-options.ui</file>
<file preprocess="xml-stripblanks">dialog-dll-overrides.ui</file>
<file preprocess="xml-stripblanks">dialog-env-vars.ui</file>
<file preprocess="xml-stripblanks">dialog-crash-report.ui</file>
<file preprocess="xml-stripblanks">dialog-duplicate.ui</file>
<file preprocess="xml-stripblanks">dialog-rename.ui</file>
<file preprocess="xml-stripblanks">dialog-gamescope.ui</file>
<file preprocess="xml-stripblanks">dialog-vkbasalt.ui</file>
<file preprocess="xml-stripblanks">dialog-fsr.ui</file>
<file preprocess="xml-stripblanks">dialog-mangohud.ui</file>
<file preprocess="xml-stripblanks">dialog-display.ui</file>
<file preprocess="xml-stripblanks">dialog-drives.ui</file>
<file preprocess="xml-stripblanks">dialog-journal.ui</file>
<file preprocess="xml-stripblanks">dialog-sandbox.ui</file>
<file preprocess="xml-stripblanks">dialog-installer.ui</file>
<file preprocess="xml-stripblanks">dialog-bottle-picker.ui</file>
<file preprocess="xml-stripblanks">dialog-proton-alert.ui</file>
<file preprocess="xml-stripblanks">dialog-deps-check.ui</file>
<file preprocess="xml-stripblanks">dialog-exclusion-patterns.ui</file>
<file preprocess="xml-stripblanks">dialog-upgrade-versioning.ui</file>
<file preprocess="xml-stripblanks">dialog-vmtouch.ui</file>
<file preprocess="xml-stripblanks">onboard.ui</file>
<file preprocess="xml-stripblanks">about.ui</file>
</gresource>
</gresources>
33 changes: 33 additions & 0 deletions data/data.gresource.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/com/usebottles/bottles/icons/scalable/actions">
<file preprocess="xml-stripblanks" alias="bottles-steam-symbolic.svg">icons/hicolor/symbolic/apps/bottles-steam-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="external-link-symbolic.svg">icons/hicolor/symbolic/actions/external-link-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="applications-system-symbolic.svg">icons/hicolor/symbolic/actions/applications-system-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="application-x-addon-symbolic.svg">icons/hicolor/symbolic/actions/application-x-addon-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="computer-symbolic.svg">icons/hicolor/symbolic/actions/computer-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="document-save-symbolic.svg">icons/hicolor/symbolic/actions/document-save-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="go-next-symbolic.svg">icons/hicolor/symbolic/actions/go-next-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="go-previous-symbolic.svg">icons/hicolor/symbolic/actions/go-previous-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="media-playback-start-symbolic.svg">icons/hicolor/symbolic/actions/media-playback-start-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="media-playback-stop-symbolic.svg">icons/hicolor/symbolic/actions/media-playback-stop-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="preferences-desktop-apps-symbolic.svg">icons/hicolor/symbolic/actions/preferences-desktop-apps-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="preferences-system-time-symbolic.svg">icons/hicolor/symbolic/actions/preferences-system-time-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="selection-mode-symbolic.svg">icons/hicolor/symbolic/actions/selection-mode-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="system-run-symbolic.svg">icons/hicolor/symbolic/actions/system-run-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="system-shutdown-symbolic.svg">icons/hicolor/symbolic/actions/system-shutdown-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="system-software-install-symbolic.svg">icons/hicolor/symbolic/actions/system-software-install-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="view-more-symbolic.svg">icons/hicolor/symbolic/actions/view-more-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="open-menu-symbolic.svg">icons/hicolor/symbolic/actions/open-menu-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="system-search-symbolic.svg">icons/hicolor/symbolic/actions/system-search-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="list-add-symbolic.svg">icons/hicolor/symbolic/actions/list-add-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="paper-symbolic.svg">icons/hicolor/symbolic/actions/paper-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="info-symbolic.svg">icons/hicolor/symbolic/actions/info-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="library-symbolic.svg">icons/hicolor/symbolic/actions/library-symbolic.svg</file>
<file preprocess="xml-stripblanks" alias="warning-symbolic.svg">icons/hicolor/symbolic/actions/warning-symbolic.svg</file>
</gresource>
<gresource prefix="/com/usebottles/bottles/images/images">
<file preprocess="xml-stripblanks" alias="bottles-welcome.svg">images/bottles-welcome.svg</file>
<file preprocess="xml-stripblanks" alias="bottles-welcome-night.svg">images/bottles-welcome-night.svg</file>
</gresource>
</gresources>
Loading

0 comments on commit 5d3c416

Please sign in to comment.