Skip to content

Commit

Permalink
feat: impl filter panel
Browse files Browse the repository at this point in the history
Signed-off-by: tsukinaha <sakuovds@gmail.com>
  • Loading branch information
tsukinaha committed Dec 21, 2024
1 parent aa2f65c commit 4fbf9b9
Show file tree
Hide file tree
Showing 23 changed files with 724 additions and 179 deletions.
2 changes: 2 additions & 0 deletions resources/resources.gresource.xml
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@
<file compressed="true" preprocess="xml-stripblanks">ui/theme_switcher.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/filter.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/filter_row.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/filters_row.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/filter_label.ui</file>
<file compressed="true" preprocess="xml-stripblanks">ui/filter_search_page.ui</file>
</gresource>
</gresources>
136 changes: 87 additions & 49 deletions resources/ui/filter.ui
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,25 @@
<child>
<object class="AdwToastOverlay" id="toast_overlay">
<child>
<object class="AdwNavigationView" id="navigation_view">
<object class="GtkStack" id="stack">
<property name="transition-type">crossfade</property>
<child>
<object class="AdwNavigationPage" id="page">
<property name="tag">main</property>
<property name="title" translatable="yes">Filter Panel</property>
<object class="GtkStackPage">
<property name="name">view</property>
<property name="title">Filter Panel</property>
<property name="child">
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar">
</object>
</child>
<object class="AdwNavigationView" id="navigation_view">
<child>
<object class="GtkStack" id="stack">
<property name="transition-type">crossfade</property>
<child>
<object class="GtkStackPage">
<property name="name">view</property>
<property name="title">Filter Panel</property>
<property name="child">
<object class="AdwNavigationPage" id="page">
<property name="tag">main</property>
<property name="title" translatable="yes">Filter Panel</property>
<property name="child">
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar">
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="hscrollbar-policy">never</property>
<child>
Expand All @@ -43,6 +43,7 @@
<child>
<object class="AdwComboRow" id="playback_status_combo">
<property name="title" translatable="yes">Playback Status</property>
<property name="use-subtitle">True</property>
<property name="model">
<object class="GtkStringList">
<items>
Expand All @@ -59,7 +60,7 @@
<object class="AdwActionRow" id="favourite_check">
<property name="title">Favourite</property>
<property name="activatable-widget">check</property>
<child type="prefix">
<child type="suffix">
<object class="GtkCheckButton" id="check">
<style>
<class name="accent" />
Expand All @@ -73,33 +74,38 @@
<child>
<object class="AdwPreferencesGroup">
<child>
<object class="FilterRow">
<object class="FiltersRow">
<property name="title" translatable="yes">Genres</property>
<property name="icon-name">music-note-single-outline-symbolic</property>
<property name="filter-type">Genres</property>
</object>
</child>
<child>
<object class="FilterRow">
<object class="FiltersRow">
<property name="title" translatable="yes">Tags</property>
<property name="icon-name">tag-outline-symbolic</property>
<property name="filter-type">Tags</property>
</object>
</child>
<child>
<object class="FilterRow">
<object class="FiltersRow">
<property name="title" translatable="yes">Years</property>
<property name="icon-name">month-symbolic</property>
<property name="filter-type">Years</property>
</object>
</child>
<child>
<object class="FilterRow">
<property name="title" translatable="yes">Official Rating</property>
<object class="FiltersRow">
<property name="title" translatable="yes">Official Ratings</property>
<property name="icon-name">minus-circle-outline-symbolic</property>
<property name="filter-type">OfficialRatings</property>
</object>
</child>
<child>
<object class="FilterRow">
<object class="FiltersRow">
<property name="title" translatable="yes">Studios</property>
<property name="icon-name">sound-symbolic</property>
<property name="filter-type">Studios</property>
</object>
</child>
</object>
Expand All @@ -108,27 +114,59 @@
<object class="AdwPreferencesGroup">
<property name="title" translatable="yes">Media Info</property>
<child>
<object class="FilterRow">
<property name="title" translatable="yes">Container</property>
<object class="FiltersRow">
<property name="title" translatable="yes">Containers</property>
<property name="icon-name">display-projector-symbolic</property>
<property name="filter-type">Containers</property>
</object>
</child>
<child>
<object class="FilterRow">
<property name="title" translatable="yes">Encoder</property>
<object class="FiltersRow">
<property name="title" translatable="yes">Encoders</property>
<property name="icon-name">video-encoder-symbolic</property>
<property name="filter-type">VideoCodecs</property>
</object>
</child>
<child>
<object class="FiltersRow">
<property name="title" translatable="yes">Video Types</property>
<property name="icon-name">video-reel2-symbolic</property>
<property name="filter-type">ExtendedVideoTypes</property>
</object>
</child>
<child>
<object class="FilterRow">
<object class="AdwComboRow">
<property name="title" translatable="yes">Resolution</property>
<property name="icon-name">axes-one-quadrant-symbolic</property>
<property name="use-subtitle">True</property>
<child type="prefix">
<object class="GtkImage">
<property name="icon-name">axes-one-quadrant-symbolic</property>
</object>
</child>
<property name="model">
<object class="GtkStringList">
<items>
<item translatable="yes">Any</item>
<item>2160p</item>
<item>1080p</item>
<item>720p</item>
<item>480p</item>
</items>
</object>
</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesGroup">
<child>
<object class="FilterRow">
<property name="title" translatable="yes">Video Types</property>
<property name="icon-name">video-reel2-symbolic</property>
<object class="AdwButtonRow" id="clear_button_row">
<property name="title" translatable="yes">Clear</property>
<property name="start-icon-name">large-brush-symbolic</property>
<style>
<class name="raised" />
</style>
</object>
</child>
</object>
Expand All @@ -151,30 +189,30 @@
</object>
</child>
</object>
</property>
</child>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">loading</property>
<property name="title">Loading</property>
<property name="child">
<object class="AdwSpinner">
<property name="visible">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="width-request">32</property>
<property name="height-request">32</property>
</object>
</property>
</object>
</child>
</property>
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">loading</property>
<property name="title">Loading</property>
<property name="child">
<object class="AdwSpinner">
<property name="visible">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="width-request">32</property>
<property name="height-request">32</property>
</object>
</property>
</object>
</child>
</object>
</child>
</object>
Expand Down
79 changes: 11 additions & 68 deletions resources/ui/filter_row.ui
Original file line number Diff line number Diff line change
@@ -1,73 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="FilterRow" parent="AdwPreferencesRow">
<property name="selectable">False</property>
<property name="valign">center</property>
<property name="activatable">false</property>
<property name="child">
<object class="GtkBox" id="header">
<property name="valign">center</property>
<property name="hexpand">False</property>
<property name="orientation">vertical</property>
<template class="FilterRow" parent="AdwActionRow">
<property name="activatable">True</property>
<property name="activatable-widget">check</property>
<property name="use-underline">True</property>
<child type="suffix">
<object class="GtkCheckButton" id="check">
<signal name="activate" handler="on_check_toggled" swapped="yes"/>
<style>
<class name="header"/>
<class name="selection-mode"/>
</style>
<child>
<object class="GtkBox" id="title_box">
<property name="orientation">horizontal</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
<property name="spacing">5</property>
<style>
<class name="title"/>
</style>
<child>
<object class="GtkLabel" id="title">
<property name="ellipsize">none</property>
<property name="label" bind-source="FilterRow" bind-property="title" bind-flags="sync-create"/>
<property name="lines">0</property>
<property name="margin-start">5</property>
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
</attributes>
<style>
<class name="title"/>
</style>
</object>
</child>
<child>
<object class="GtkButton">
<signal name="clicked" handler="on_add_button_clicked" swapped="yes"/>
<property name="icon-name">list-add-symbolic</property>
<property name="valign">center</property>
<style>
<class name="circular"/>
<class name="smaller"/>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="suffixes">
<style>
<class name="suffixes"/>
</style>
<child>
<object class="GtkFlowBox" id="flowbox">
<property name="hexpand">True</property>
<property name="margin-bottom">5</property>
<property name="selection-mode">none</property>
<property name="column-spacing">5</property>
<property name="row-spacing">5</property>
</object>
</child>
</object>
</child>
</object>
</property>
</template>
</interface>
</child>
</template>
</interface>
24 changes: 24 additions & 0 deletions resources/ui/filter_search_page.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template parent="AdwNavigationPage" class="FilterDialogSearchPage">
<property name="title">Filters</property>
<child>
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar" />
</child>
<child>
<object class="GtkScrolledWindow">
<property name="hscrollbar-policy">never</property>
<child>
<object class="GtkListBox" id="listbox">
<property name="selection-mode">none</property>
<property name="show-separators">true</property>
</object>
</child>
</object>
</child>
</object>
</child>
</template>
</interface>
Loading

0 comments on commit 4fbf9b9

Please sign in to comment.