Initial sidebar filter work

This commit is contained in:
kramo
2023-07-07 17:46:57 +02:00
parent 6893551f1c
commit b577b3ec7b
5 changed files with 261 additions and 201 deletions

View File

@@ -45,15 +45,81 @@ Adw.StatusPage hidden_notice_empty {
template $CartridgesWindow : Adw.ApplicationWindow { template $CartridgesWindow : Adw.ApplicationWindow {
title: _("Cartridges"); title: _("Cartridges");
width-request: 281;
height-request: 100;
Adw.Breakpoint {
condition ("max-width: 564px")
setters {
overlay_split_view.collapsed: true;
details_view_box.orientation: vertical;
details_view_box.margin-top: 12;
details_view_box.margin-start: 12;
details_view_box.margin-end: 12;
details_view_details_box.margin-start: 0;
details_view_details_box.margin-end: 0;
details_view_title.margin-top: 30;
details_view_title.halign: center;
details_view_developer.halign: center;
details_view_date_box.halign: center;
details_view_toolbar.halign: center;
details_view_toolbar.orientation: vertical;
details_view_play_button.halign: center;
details_view_toolbar_buttons.margin-start: 0;
}
}
Adw.ToastOverlay toast_overlay { Adw.ToastOverlay toast_overlay {
Adw.NavigationView navigation_view { Adw.NavigationView navigation_view {
Adw.NavigationPage library_page { Adw.NavigationPage library_page {
title: _("Cartridges"); title: _("Cartridges");
Adw.OverlaySplitView overlay_split_view {
[sidebar]
Adw.NavigationPage {
title: _("Sources");
Adw.ToolbarView {
[top]
Adw.HeaderBar {
[start]
Button {
icon-name: "sidebar-show-symbolic";
action-name: "win.show_sidebar";
}
}
ListBox {
Box {
Image {
icon-name: "view-grid";
margin-start: 3;
margin-end: 9;
}
Label {
halign: start;
label: _("All");
}
}
styles ["navigation-sidebar"]
}
}
}
Adw.ToolbarView library_view { Adw.ToolbarView library_view {
[top] [top]
Adw.HeaderBar header_bar { Adw.HeaderBar header_bar {
[start]
Revealer {
transition-type: slide_right;
reveal-child: bind-property overlay_split_view.show-sidebar inverted;
Button show_sidebar_button {
icon-name: "sidebar-show-symbolic";
action-name: "win.show_sidebar";
}
}
[start] [start]
MenuButton { MenuButton {
tooltip-text: _("Add Game"); tooltip-text: _("Add Game");
@@ -112,6 +178,7 @@ template $CartridgesWindow : Adw.ApplicationWindow {
} }
} }
} }
}
Adw.NavigationPage hidden_library_page { Adw.NavigationPage hidden_library_page {
title: _("Hidden Games"); title: _("Hidden Games");
@@ -185,32 +252,6 @@ Adw.NavigationPage details_page {
Adw.HeaderBar { Adw.HeaderBar {
} }
Adw.BreakpointBin {
hexpand: true;
vexpand: true;
width-request: 229;
height-request: 54;
Adw.Breakpoint {
condition ("max-width: 564px")
setters {
details_view_box.orientation: vertical;
details_view_box.margin-top: 12;
details_view_box.margin-start: 12;
details_view_box.margin-end: 12;
details_view_details_box.margin-start: 0;
details_view_details_box.margin-end: 0;
details_view_title.margin-top: 30;
details_view_title.halign: center;
details_view_developer.halign: center;
details_view_date_box.halign: center;
details_view_toolbar.halign: center;
details_view_toolbar.orientation: vertical;
details_view_play_button.halign: center;
details_view_toolbar_buttons.margin-start: 0;
}
}
ScrolledWindow { ScrolledWindow {
Box details_view_box { Box details_view_box {
halign: center; halign: center;
@@ -374,7 +415,6 @@ Adw.NavigationPage details_page {
} }
} }
} }
}
Picture details_view_blurred_cover { Picture details_view_blurred_cover {
keep-aspect-ratio: false; keep-aspect-ratio: false;

View File

@@ -106,6 +106,12 @@
</choices> </choices>
<default>"a-z"</default> <default>"a-z"</default>
</key> </key>
<key name="show-sidebar" type="b">
<default>false</default>
</key>
<key name="filter" type="s">
<default>"all"</default>
</key>
<key name="steam-limiter-tokens-history" type="s"> <key name="steam-limiter-tokens-history" type="s">
<default>"[]"</default> <default>"[]"</default>
</key> </key>

View File

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

View File

@@ -113,6 +113,7 @@ class CartridgesApplication(Adw.Application):
("protondb_search",), ("protondb_search",),
("lutris_search",), ("lutris_search",),
("hltb_search",), ("hltb_search",),
("show_sidebar", ("F9",), self.win),
("show_hidden", ("<primary>h",), self.win), ("show_hidden", ("<primary>h",), self.win),
("go_to_parent", ("<alt>Up",), self.win), ("go_to_parent", ("<alt>Up",), self.win),
("go_home", ("<alt>Home",), self.win), ("go_home", ("<alt>Home",), self.win),

View File

@@ -27,9 +27,11 @@ from src.utils.relative_date import relative_date
class CartridgesWindow(Adw.ApplicationWindow): class CartridgesWindow(Adw.ApplicationWindow):
__gtype_name__ = "CartridgesWindow" __gtype_name__ = "CartridgesWindow"
overlay_split_view = Gtk.Template.Child()
navigation_view = Gtk.Template.Child() navigation_view = Gtk.Template.Child()
toast_overlay = Gtk.Template.Child() toast_overlay = Gtk.Template.Child()
primary_menu_button = Gtk.Template.Child() primary_menu_button = Gtk.Template.Child()
show_sidebar_button = Gtk.Template.Child()
details_view = Gtk.Template.Child() details_view = Gtk.Template.Child()
library_page = Gtk.Template.Child() library_page = Gtk.Template.Child()
library_view = Gtk.Template.Child() library_view = Gtk.Template.Child()
@@ -88,6 +90,8 @@ class CartridgesWindow(Adw.ApplicationWindow):
self.notice_empty.set_icon_name(shared.APP_ID + "-symbolic") self.notice_empty.set_icon_name(shared.APP_ID + "-symbolic")
self.overlay_split_view.set_show_sidebar(shared.state_schema.get_boolean("show-sidebar"))
if shared.PROFILE == "development": if shared.PROFILE == "development":
self.add_css_class("devel") self.add_css_class("devel")
@@ -147,6 +151,9 @@ class CartridgesWindow(Adw.ApplicationWindow):
remove_from_overlay(self.hidden_notice_no_results) remove_from_overlay(self.hidden_notice_no_results)
def filter_func(self, child): def filter_func(self, child):
if shared.state_schema.get_string("filter") != "all":
pass
game = child.get_child() game = child.get_child()
text = ( text = (
( (
@@ -260,6 +267,12 @@ class CartridgesWindow(Adw.ApplicationWindow):
widget.get_visible_page() == self.library_page widget.get_visible_page() == self.library_page
) )
def on_show_sidebar_action(self, *_args):
shared.state_schema.set_boolean(
"show-sidebar", (value := not self.overlay_split_view.get_show_sidebar())
)
self.overlay_split_view.set_show_sidebar(value)
def on_go_to_parent_action(self, *_args): def on_go_to_parent_action(self, *_args):
if self.navigation_view.get_visible_page() == self.details_page: if self.navigation_view.get_visible_page() == self.details_page:
self.navigation_view.pop() self.navigation_view.pop()