diff --git a/cartridges/details_window.py b/cartridges/details_dialog.py similarity index 98% rename from cartridges/details_window.py rename to cartridges/details_dialog.py index 3afcb60..84d1454 100644 --- a/cartridges/details_window.py +++ b/cartridges/details_dialog.py @@ -36,9 +36,9 @@ from cartridges.utils.create_dialog import create_dialog from cartridges.utils.save_cover import convert_cover, save_cover -@Gtk.Template(resource_path=shared.PREFIX + "/gtk/details-window.ui") -class DetailsWindow(Adw.Window): - __gtype_name__ = "DetailsWindow" +@Gtk.Template(resource_path=shared.PREFIX + "/gtk/details-dialog.ui") +class DetailsDialog(Adw.Dialog): + __gtype_name__ = "DetailsDialog" cover_overlay = Gtk.Template.Child() cover = Gtk.Template.Child() @@ -61,12 +61,9 @@ class DetailsWindow(Adw.Window): def __init__(self, game: Optional[Game] = None, **kwargs: Any): super().__init__(**kwargs) - self.game: Game = game self.game_cover: GameCover = GameCover({self.cover}) - self.set_transient_for(shared.win) - if self.game: self.set_title(_("Game Details")) self.name.set_text(self.game.name) @@ -152,7 +149,6 @@ class DetailsWindow(Adw.Window): self.executable.connect("entry-activated", self.apply_preferences) self.set_focus(self.name) - self.present() def delete_pixbuf(self, *_args: Any) -> None: self.game_cover.new_cover() diff --git a/cartridges/importer/importer.py b/cartridges/importer/importer.py index 0f96615..65194e4 100644 --- a/cartridges/importer/importer.py +++ b/cartridges/importer/importer.py @@ -407,7 +407,7 @@ class Importer(ErrorProducer): self, page_name: Optional[str] = None, expander_row: Optional[Adw.ExpanderRow] = None, - ) -> Adw.PreferencesWindow: + ) -> Adw.PreferencesDialog: return shared.win.get_application().on_preferences_action( page_name=page_name, expander_row=expander_row ) diff --git a/cartridges/main.py b/cartridges/main.py index 5914208..3023663 100644 --- a/cartridges/main.py +++ b/cartridges/main.py @@ -34,7 +34,7 @@ gi.require_version("Adw", "1") from gi.repository import Adw, Gio, GLib, Gtk from cartridges import shared -from cartridges.details_window import DetailsWindow +from cartridges.details_dialog import DetailsDialog from cartridges.game import Game from cartridges.importer.bottles_source import BottlesSource from cartridges.importer.desktop_source import DesktopSource @@ -47,7 +47,7 @@ from cartridges.importer.lutris_source import LutrisSource from cartridges.importer.retroarch_source import RetroarchSource from cartridges.importer.steam_source import SteamSource from cartridges.logging.setup import log_system_info, setup_logging -from cartridges.preferences import PreferencesWindow +from cartridges.preferences import CartridgesPreferences from cartridges.store.managers.cover_manager import CoverManager from cartridges.store.managers.display_manager import DisplayManager from cartridges.store.managers.file_manager import FileManager @@ -246,10 +246,9 @@ class CartridgesApplication(Adw.Application): debug_str += log_file.read() log_file.close() - about = Adw.AboutWindow.new_from_appdata( + about = Adw.AboutDialog.new_from_appdata( shared.PREFIX + "/" + shared.APP_ID + ".metainfo.xml", shared.VERSION ) - about.set_transient_for(shared.win) about.set_developers( ( "kramo https://kramo.hu", @@ -275,7 +274,7 @@ class CartridgesApplication(Adw.Application): Gtk.License.CUSTOM, "Steam and the Steam logo are trademarks and/or registered trademarks of Valve Corporation in the U.S. and/or other countries.", # pylint: disable=line-too-long ) - about.present() + about.present(shared.win) def on_preferences_action( self, @@ -284,12 +283,12 @@ class CartridgesApplication(Adw.Application): page_name: Optional[str] = None, expander_row: Optional[str] = None, ) -> CartridgesWindow: - win = PreferencesWindow() + win = CartridgesPreferences() if page_name: win.set_visible_page_name(page_name) if expander_row: getattr(win, expander_row).set_expanded(True) - win.present() + win.present(shared.win) return win @@ -300,10 +299,10 @@ class CartridgesApplication(Adw.Application): shared.win.active_game.toggle_hidden() def on_edit_game_action(self, *_args: Any) -> None: - DetailsWindow(shared.win.active_game) + DetailsDialog(shared.win.active_game).present(shared.win) def on_add_game_action(self, *_args: Any) -> None: - DetailsWindow() + DetailsDialog().present(shared.win) def on_import_action(self, *_args: Any) -> None: shared.importer = Importer() diff --git a/cartridges/meson.build b/cartridges/meson.build index 535284d..61da5c3 100644 --- a/cartridges/meson.build +++ b/cartridges/meson.build @@ -18,7 +18,7 @@ install_data( 'main.py', 'window.py', 'preferences.py', - 'details_window.py', + 'details_dialog.py', 'game.py', 'game_cover.py', configure_file( @@ -28,4 +28,4 @@ install_data( ) ], install_dir: moduledir -) \ No newline at end of file +) diff --git a/cartridges/preferences.py b/cartridges/preferences.py index a0d158e..cdd37d8 100644 --- a/cartridges/preferences.py +++ b/cartridges/preferences.py @@ -43,8 +43,8 @@ from cartridges.utils.create_dialog import create_dialog @Gtk.Template(resource_path=shared.PREFIX + "/gtk/preferences.ui") -class PreferencesWindow(Adw.PreferencesWindow): - __gtype_name__ = "PreferencesWindow" +class CartridgesPreferences(Adw.PreferencesDialog): + __gtype_name__ = "CartridgesPreferences" general_page = Gtk.Template.Child() import_page = Gtk.Template.Child() @@ -123,7 +123,6 @@ class PreferencesWindow(Adw.PreferencesWindow): def __init__(self, **kwargs: Any) -> None: super().__init__(**kwargs) self.file_chooser = Gtk.FileDialog() - self.set_transient_for(shared.win) self.toast = Adw.Toast.new(_("All games removed")) self.toast.set_button_label(_("Undo")) diff --git a/data/cartridges.gresource.xml.in b/data/cartridges.gresource.xml.in index 4704591..4c2ab68 100644 --- a/data/cartridges.gresource.xml.in +++ b/data/cartridges.gresource.xml.in @@ -6,7 +6,7 @@ gtk/help-overlay.ui gtk/game.ui gtk/preferences.ui - gtk/details-window.ui + gtk/details-dialog.ui gtk/style.css gtk/style-dark.css library_placeholder.svg diff --git a/data/gtk/details-window.blp b/data/gtk/details-dialog.blp similarity index 93% rename from data/gtk/details-window.blp rename to data/gtk/details-dialog.blp index 2bef55d..add24a6 100644 --- a/data/gtk/details-window.blp +++ b/data/gtk/details-dialog.blp @@ -1,17 +1,8 @@ using Gtk 4.0; using Adw 1; -template $DetailsWindow : Adw.Window { - default-width: 480; // Same as Nautilus' properties window - default-height: -1; - modal: true; - - ShortcutController { - Shortcut { - trigger: "Escape"; - action: "action(window.close)"; - } - } +template $DetailsDialog : Adw.Dialog { + content-width: 480; Adw.ToolbarView { @@ -85,7 +76,7 @@ template $DetailsWindow : Adw.Window { Picture cover { width-request: 200; height-request: 300; - + styles [ "card" ] @@ -149,4 +140,4 @@ template $DetailsWindow : Adw.Window { } } } -} \ No newline at end of file +} diff --git a/data/gtk/preferences.blp b/data/gtk/preferences.blp index 0badc13..1c84b51 100644 --- a/data/gtk/preferences.blp +++ b/data/gtk/preferences.blp @@ -1,7 +1,8 @@ using Gtk 4.0; using Adw 1; -template $PreferencesWindow : Adw.PreferencesWindow { +template $CartridgesPreferences : Adw.PreferencesDialog { + search-enabled: true; Adw.PreferencesPage general_page { name: "general"; diff --git a/data/gtk/window.blp b/data/gtk/window.blp index 277198f..7217a79 100644 --- a/data/gtk/window.blp +++ b/data/gtk/window.blp @@ -45,7 +45,7 @@ Adw.StatusPage hidden_notice_empty { template $CartridgesWindow : Adw.ApplicationWindow { title: _("Cartridges"); - width-request: 281; + width-request: 360; height-request: 100; Adw.Breakpoint { @@ -75,6 +75,8 @@ template $CartridgesWindow : Adw.ApplicationWindow { title: _("All Games"); Adw.OverlaySplitView overlay_split_view { + sidebar-width-fraction: .2; + [sidebar] Adw.NavigationPage { title: _("Cartridges"); diff --git a/data/hu.kramo.Cartridges.metainfo.xml.in b/data/hu.kramo.Cartridges.metainfo.xml.in index 4afa764..d4b0e43 100644 --- a/data/hu.kramo.Cartridges.metainfo.xml.in +++ b/data/hu.kramo.Cartridges.metainfo.xml.in @@ -28,7 +28,7 @@ touch - 280 + 360 diff --git a/data/meson.build b/data/meson.build index 756c573..cf98149 100644 --- a/data/meson.build +++ b/data/meson.build @@ -4,7 +4,7 @@ blueprints = custom_target('blueprints', 'gtk/window.blp', 'gtk/game.blp', 'gtk/preferences.blp', - 'gtk/details-window.blp' + 'gtk/details-dialog.blp' ), output: '.', command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'], diff --git a/flatpak/hu.kramo.Cartridges.Devel.json b/flatpak/hu.kramo.Cartridges.Devel.json index 69850b9..3ea2258 100644 --- a/flatpak/hu.kramo.Cartridges.Devel.json +++ b/flatpak/hu.kramo.Cartridges.Devel.json @@ -1,7 +1,7 @@ { "id" : "hu.kramo.Cartridges.Devel", "runtime" : "org.gnome.Platform", - "runtime-version" : "45", + "runtime-version" : "master", "sdk" : "org.gnome.Sdk", "command" : "cartridges", "finish-args" : [