Port to libadwaita 1.5 widgets

This commit is contained in:
kramo
2024-01-27 08:52:50 +01:00
parent 124d2c8ec7
commit 3e1ef88a1f
12 changed files with 29 additions and 41 deletions

View File

@@ -36,9 +36,9 @@ from cartridges.utils.create_dialog import create_dialog
from cartridges.utils.save_cover import convert_cover, save_cover from cartridges.utils.save_cover import convert_cover, save_cover
@Gtk.Template(resource_path=shared.PREFIX + "/gtk/details-window.ui") @Gtk.Template(resource_path=shared.PREFIX + "/gtk/details-dialog.ui")
class DetailsWindow(Adw.Window): class DetailsDialog(Adw.Dialog):
__gtype_name__ = "DetailsWindow" __gtype_name__ = "DetailsDialog"
cover_overlay = Gtk.Template.Child() cover_overlay = Gtk.Template.Child()
cover = Gtk.Template.Child() cover = Gtk.Template.Child()
@@ -61,12 +61,9 @@ class DetailsWindow(Adw.Window):
def __init__(self, game: Optional[Game] = None, **kwargs: Any): def __init__(self, game: Optional[Game] = None, **kwargs: Any):
super().__init__(**kwargs) super().__init__(**kwargs)
self.game: Game = game self.game: Game = game
self.game_cover: GameCover = GameCover({self.cover}) self.game_cover: GameCover = GameCover({self.cover})
self.set_transient_for(shared.win)
if self.game: if self.game:
self.set_title(_("Game Details")) self.set_title(_("Game Details"))
self.name.set_text(self.game.name) self.name.set_text(self.game.name)
@@ -152,7 +149,6 @@ class DetailsWindow(Adw.Window):
self.executable.connect("entry-activated", self.apply_preferences) self.executable.connect("entry-activated", self.apply_preferences)
self.set_focus(self.name) self.set_focus(self.name)
self.present()
def delete_pixbuf(self, *_args: Any) -> None: def delete_pixbuf(self, *_args: Any) -> None:
self.game_cover.new_cover() self.game_cover.new_cover()

View File

@@ -407,7 +407,7 @@ class Importer(ErrorProducer):
self, self,
page_name: Optional[str] = None, page_name: Optional[str] = None,
expander_row: Optional[Adw.ExpanderRow] = None, expander_row: Optional[Adw.ExpanderRow] = None,
) -> Adw.PreferencesWindow: ) -> Adw.PreferencesDialog:
return shared.win.get_application().on_preferences_action( return shared.win.get_application().on_preferences_action(
page_name=page_name, expander_row=expander_row page_name=page_name, expander_row=expander_row
) )

View File

@@ -34,7 +34,7 @@ gi.require_version("Adw", "1")
from gi.repository import Adw, Gio, GLib, Gtk from gi.repository import Adw, Gio, GLib, Gtk
from cartridges import shared from cartridges import shared
from cartridges.details_window import DetailsWindow from cartridges.details_dialog import DetailsDialog
from cartridges.game import Game from cartridges.game import Game
from cartridges.importer.bottles_source import BottlesSource from cartridges.importer.bottles_source import BottlesSource
from cartridges.importer.desktop_source import DesktopSource 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.retroarch_source import RetroarchSource
from cartridges.importer.steam_source import SteamSource from cartridges.importer.steam_source import SteamSource
from cartridges.logging.setup import log_system_info, setup_logging 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.cover_manager import CoverManager
from cartridges.store.managers.display_manager import DisplayManager from cartridges.store.managers.display_manager import DisplayManager
from cartridges.store.managers.file_manager import FileManager from cartridges.store.managers.file_manager import FileManager
@@ -246,10 +246,9 @@ class CartridgesApplication(Adw.Application):
debug_str += log_file.read() debug_str += log_file.read()
log_file.close() log_file.close()
about = Adw.AboutWindow.new_from_appdata( about = Adw.AboutDialog.new_from_appdata(
shared.PREFIX + "/" + shared.APP_ID + ".metainfo.xml", shared.VERSION shared.PREFIX + "/" + shared.APP_ID + ".metainfo.xml", shared.VERSION
) )
about.set_transient_for(shared.win)
about.set_developers( about.set_developers(
( (
"kramo https://kramo.hu", "kramo https://kramo.hu",
@@ -275,7 +274,7 @@ class CartridgesApplication(Adw.Application):
Gtk.License.CUSTOM, 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 "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( def on_preferences_action(
self, self,
@@ -284,12 +283,12 @@ class CartridgesApplication(Adw.Application):
page_name: Optional[str] = None, page_name: Optional[str] = None,
expander_row: Optional[str] = None, expander_row: Optional[str] = None,
) -> CartridgesWindow: ) -> CartridgesWindow:
win = PreferencesWindow() win = CartridgesPreferences()
if page_name: if page_name:
win.set_visible_page_name(page_name) win.set_visible_page_name(page_name)
if expander_row: if expander_row:
getattr(win, expander_row).set_expanded(True) getattr(win, expander_row).set_expanded(True)
win.present() win.present(shared.win)
return win return win
@@ -300,10 +299,10 @@ class CartridgesApplication(Adw.Application):
shared.win.active_game.toggle_hidden() shared.win.active_game.toggle_hidden()
def on_edit_game_action(self, *_args: Any) -> None: 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: def on_add_game_action(self, *_args: Any) -> None:
DetailsWindow() DetailsDialog().present(shared.win)
def on_import_action(self, *_args: Any) -> None: def on_import_action(self, *_args: Any) -> None:
shared.importer = Importer() shared.importer = Importer()

View File

@@ -18,7 +18,7 @@ install_data(
'main.py', 'main.py',
'window.py', 'window.py',
'preferences.py', 'preferences.py',
'details_window.py', 'details_dialog.py',
'game.py', 'game.py',
'game_cover.py', 'game_cover.py',
configure_file( configure_file(
@@ -28,4 +28,4 @@ install_data(
) )
], ],
install_dir: moduledir install_dir: moduledir
) )

View File

@@ -43,8 +43,8 @@ from cartridges.utils.create_dialog import create_dialog
@Gtk.Template(resource_path=shared.PREFIX + "/gtk/preferences.ui") @Gtk.Template(resource_path=shared.PREFIX + "/gtk/preferences.ui")
class PreferencesWindow(Adw.PreferencesWindow): class CartridgesPreferences(Adw.PreferencesDialog):
__gtype_name__ = "PreferencesWindow" __gtype_name__ = "CartridgesPreferences"
general_page = Gtk.Template.Child() general_page = Gtk.Template.Child()
import_page = Gtk.Template.Child() import_page = Gtk.Template.Child()
@@ -123,7 +123,6 @@ class PreferencesWindow(Adw.PreferencesWindow):
def __init__(self, **kwargs: Any) -> None: def __init__(self, **kwargs: Any) -> None:
super().__init__(**kwargs) super().__init__(**kwargs)
self.file_chooser = Gtk.FileDialog() self.file_chooser = Gtk.FileDialog()
self.set_transient_for(shared.win)
self.toast = Adw.Toast.new(_("All games removed")) self.toast = Adw.Toast.new(_("All games removed"))
self.toast.set_button_label(_("Undo")) self.toast.set_button_label(_("Undo"))

View File

@@ -6,7 +6,7 @@
<file preprocess="xml-stripblanks">gtk/help-overlay.ui</file> <file preprocess="xml-stripblanks">gtk/help-overlay.ui</file>
<file preprocess="xml-stripblanks">gtk/game.ui</file> <file preprocess="xml-stripblanks">gtk/game.ui</file>
<file preprocess="xml-stripblanks">gtk/preferences.ui</file> <file preprocess="xml-stripblanks">gtk/preferences.ui</file>
<file preprocess="xml-stripblanks">gtk/details-window.ui</file> <file preprocess="xml-stripblanks">gtk/details-dialog.ui</file>
<file alias="style.css">gtk/style.css</file> <file alias="style.css">gtk/style.css</file>
<file alias="style-dark.css">gtk/style-dark.css</file> <file alias="style-dark.css">gtk/style-dark.css</file>
<file>library_placeholder.svg</file> <file>library_placeholder.svg</file>

View File

@@ -1,17 +1,8 @@
using Gtk 4.0; using Gtk 4.0;
using Adw 1; using Adw 1;
template $DetailsWindow : Adw.Window { template $DetailsDialog : Adw.Dialog {
default-width: 480; // Same as Nautilus' properties window content-width: 480;
default-height: -1;
modal: true;
ShortcutController {
Shortcut {
trigger: "Escape";
action: "action(window.close)";
}
}
Adw.ToolbarView { Adw.ToolbarView {
@@ -85,7 +76,7 @@ template $DetailsWindow : Adw.Window {
Picture cover { Picture cover {
width-request: 200; width-request: 200;
height-request: 300; height-request: 300;
styles [ styles [
"card" "card"
] ]
@@ -149,4 +140,4 @@ template $DetailsWindow : Adw.Window {
} }
} }
} }
} }

View File

@@ -1,7 +1,8 @@
using Gtk 4.0; using Gtk 4.0;
using Adw 1; using Adw 1;
template $PreferencesWindow : Adw.PreferencesWindow { template $CartridgesPreferences : Adw.PreferencesDialog {
search-enabled: true;
Adw.PreferencesPage general_page { Adw.PreferencesPage general_page {
name: "general"; name: "general";

View File

@@ -45,7 +45,7 @@ Adw.StatusPage hidden_notice_empty {
template $CartridgesWindow : Adw.ApplicationWindow { template $CartridgesWindow : Adw.ApplicationWindow {
title: _("Cartridges"); title: _("Cartridges");
width-request: 281; width-request: 360;
height-request: 100; height-request: 100;
Adw.Breakpoint { Adw.Breakpoint {
@@ -75,6 +75,8 @@ template $CartridgesWindow : Adw.ApplicationWindow {
title: _("All Games"); title: _("All Games");
Adw.OverlaySplitView overlay_split_view { Adw.OverlaySplitView overlay_split_view {
sidebar-width-fraction: .2;
[sidebar] [sidebar]
Adw.NavigationPage { Adw.NavigationPage {
title: _("Cartridges"); title: _("Cartridges");

View File

@@ -28,7 +28,7 @@
<control>touch</control> <control>touch</control>
</supports> </supports>
<recommends> <recommends>
<display_length compare="gt">280</display_length> <display_length compare="ge">360</display_length>
</recommends> </recommends>
<screenshots> <screenshots>
<screenshot type="default"> <screenshot type="default">

View File

@@ -4,7 +4,7 @@ blueprints = custom_target('blueprints',
'gtk/window.blp', 'gtk/window.blp',
'gtk/game.blp', 'gtk/game.blp',
'gtk/preferences.blp', 'gtk/preferences.blp',
'gtk/details-window.blp' 'gtk/details-dialog.blp'
), ),
output: '.', output: '.',
command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'], command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],

View File

@@ -1,7 +1,7 @@
{ {
"id" : "hu.kramo.Cartridges.Devel", "id" : "hu.kramo.Cartridges.Devel",
"runtime" : "org.gnome.Platform", "runtime" : "org.gnome.Platform",
"runtime-version" : "45", "runtime-version" : "master",
"sdk" : "org.gnome.Sdk", "sdk" : "org.gnome.Sdk",
"command" : "cartridges", "command" : "cartridges",
"finish-args" : [ "finish-args" : [