extensions-app: Use AdwPreferencesPage and AdwPreferencesGroup

Give consistent styling and sizing to extensions lists.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1997>
This commit is contained in:
Romain Vigier 2021-10-18 15:18:11 +02:00 committed by Florian Müllner
parent 1359cedc00
commit ab5977713b
3 changed files with 26 additions and 63 deletions

View File

@ -89,7 +89,6 @@
<child> <child>
<object class="GtkLabel" id="descriptionLabel"> <object class="GtkLabel" id="descriptionLabel">
<property name="ellipsize">end</property> <property name="ellipsize">end</property>
<property name="max-width-chars">60</property>
<property name="xalign">0</property> <property name="xalign">0</property>
<property name="yalign">0</property> <property name="yalign">0</property>
</object> </object>
@ -171,7 +170,6 @@
<property name="visible">False</property> <property name="visible">False</property>
<property name="selectable">True</property> <property name="selectable">True</property>
<property name="wrap">True</property> <property name="wrap">True</property>
<property name="max-width-chars">60</property>
<property name="xalign">0</property> <property name="xalign">0</property>
<layout> <layout>
<property name="column">1</property> <property name="column">1</property>

View File

@ -124,65 +124,29 @@
<object class="GtkStackPage"> <object class="GtkStackPage">
<property name="name">main</property> <property name="name">main</property>
<property name="child"> <property name="child">
<object class="GtkScrolledWindow" id="scrolledWindow"> <object class="AdwPreferencesPage">
<property name="hscrollbar-policy">never</property>
<child> <child>
<object class="GtkViewport"> <object class="AdwPreferencesGroup" id="userGroup">
<property name="scroll-to-focus">True</property> <property name="title" translatable="yes">Manually Installed</property>
<child> <child>
<object class="GtkBox"> <object class="GtkListBox" id="userList">
<property name="orientation">vertical</property> <property name="selection-mode">none</property>
<property name="halign">center</property> <style>
<property name="margin-start">36</property> <class name="content"/>
<property name="margin-end">36</property> </style>
<property name="margin-top">36</property> </object>
<property name="margin-bottom">36</property> </child>
<property name="spacing">12</property> </object>
<child> </child>
<object class="GtkLabel"> <child>
<property name="visible" <object class="AdwPreferencesGroup" id="systemGroup">
bind-source="userList" <property name="title" translatable="yes">Built-In</property>
bind-property="visible" <child>
bind-flags="sync-create"/> <object class="GtkListBox" id="systemList">
<property name="halign">start</property> <property name="selection-mode">none</property>
<property name="hexpand">True</property> <style>
<property name="label" translatable="yes">Manually Installed</property> <class name="content"/>
<style> </style>
<class name="heading"/>
</style>
</object>
</child>
<child>
<object class="GtkListBox" id="userList">
<property name="selection-mode">none</property>
<property name="margin-bottom">24</property>
<style>
<class name="content"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible"
bind-source="systemList"
bind-property="visible"
bind-flags="sync-create"/>
<property name="halign">start</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Built-In</property>
<style>
<class name="heading"/>
</style>
</object>
</child>
<child>
<object class="GtkListBox" id="systemList">
<property name="selection-mode">none</property>
<style>
<class name="content"/>
</style>
</object>
</child>
</object> </object>
</child> </child>
</object> </object>

View File

@ -74,10 +74,11 @@ var ExtensionsWindow = GObject.registerClass({
GTypeName: 'ExtensionsWindow', GTypeName: 'ExtensionsWindow',
Template: 'resource:///org/gnome/Extensions/ui/extensions-window.ui', Template: 'resource:///org/gnome/Extensions/ui/extensions-window.ui',
InternalChildren: [ InternalChildren: [
'userGroup',
'userList', 'userList',
'systemGroup',
'systemList', 'systemList',
'mainStack', 'mainStack',
'scrolledWindow',
'searchBar', 'searchBar',
'searchButton', 'searchButton',
'searchEntry', 'searchEntry',
@ -316,10 +317,10 @@ var ExtensionsWindow = GObject.registerClass({
} }
_syncListVisibility() { _syncListVisibility() {
this._userList.visible = [...this._userList].length > 1; this._userGroup.visible = [...this._userList].length > 1;
this._systemList.visible = [...this._systemList].length > 1; this._systemGroup.visible = [...this._systemList].length > 1;
if (this._userList.visible || this._systemList.visible) if (this._userGroup.visible || this._systemGroup.visible)
this._mainStack.visible_child_name = 'main'; this._mainStack.visible_child_name = 'main';
else else
this._mainStack.visible_child_name = 'placeholder'; this._mainStack.visible_child_name = 'placeholder';