After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 767301 - Alternative Shell should group the panels
Alternative Shell should group the panels
Status: RESOLVED FIXED
Product: gnome-control-center
Classification: Core
Component: shell
unspecified
Other All
: Normal normal
: ---
Assigned To: Georges Basile Stavracas Neto
Control-Center Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-06-06 18:08 UTC by Georges Basile Stavracas Neto
Modified: 2016-06-14 15:19 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
shell-model: introduce new categories (3.27 KB, patch)
2016-06-06 18:08 UTC, Georges Basile Stavracas Neto
committed Details | Review
panels: use the new categories (14.13 KB, patch)
2016-06-06 18:08 UTC, Georges Basile Stavracas Neto
committed Details | Review
panel-list: create a custom class to handle the sidelist (29.27 KB, patch)
2016-06-06 18:08 UTC, Georges Basile Stavracas Neto
none Details | Review
window: adapt to use CcPanelList (8.99 KB, patch)
2016-06-06 18:08 UTC, Georges Basile Stavracas Neto
none Details | Review
window: adapt to use CcPanelList (13.57 KB, patch)
2016-06-06 18:24 UTC, Georges Basile Stavracas Neto
none Details | Review
panel-list: create a custom class to handle the sidelist (29.77 KB, patch)
2016-06-06 18:35 UTC, Georges Basile Stavracas Neto
none Details | Review
window: adapt to use CcPanelList (16.83 KB, patch)
2016-06-07 18:01 UTC, Georges Basile Stavracas Neto
none Details | Review
panel-list: create a custom class to handle the sidelist (32.97 KB, patch)
2016-06-07 18:02 UTC, Georges Basile Stavracas Neto
none Details | Review
panel-list: create a custom class to handle the sidelist (34.81 KB, patch)
2016-06-08 01:21 UTC, Georges Basile Stavracas Neto
none Details | Review
window: adapt to use CcPanelList (16.83 KB, patch)
2016-06-08 01:22 UTC, Georges Basile Stavracas Neto
none Details | Review
window: remove the placeholder view (4.40 KB, patch)
2016-06-08 01:22 UTC, Georges Basile Stavracas Neto
committed Details | Review
panel-list: create a custom class to handle the sidelist (36.60 KB, patch)
2016-06-08 02:37 UTC, Georges Basile Stavracas Neto
none Details | Review
panel-list: create a custom class to handle the sidelist (36.93 KB, patch)
2016-06-14 00:07 UTC, Georges Basile Stavracas Neto
committed Details | Review
window: adapt to use CcPanelList (18.17 KB, patch)
2016-06-14 00:08 UTC, Georges Basile Stavracas Neto
committed Details | Review

Description Georges Basile Stavracas Neto 2016-06-06 18:08:11 UTC
The new alternative Shell should group the panels according
to the proposed mockup[1]. The following patches will adapt
the alternative Shell and make it display the panels as
groups.

[1] https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-settings/shell/settings-organization.png
Comment 1 Georges Basile Stavracas Neto 2016-06-06 18:08:15 UTC
Created attachment 329216 [details] [review]
shell-model: introduce new categories

Following the previous set of patches for implementing
the next generation Shell, a new set of categories must
be added.

These new categories will reflect on the ordering of the
panels and subpages in the sidelist.

This patch adds these new categories and conditionally
compiles them, to not break the current icon-based Shell.
Comment 2 Georges Basile Stavracas Neto 2016-06-06 18:08:32 UTC
Created attachment 329217 [details] [review]
panels: use the new categories

Following the previous patch, this patch adds the new alternative
categories to the panels' Desktop files. These alternative categories
are only relevant for the alternative Shell, and do not break the
current Shell in any way.
Comment 3 Georges Basile Stavracas Neto 2016-06-06 18:08:37 UTC
Created attachment 329218 [details] [review]
panel-list: create a custom class to handle the sidelist

As the sidelist gets more complex, managing it in CcWindow
would make it very confusing.

This patch introduces the CcPanelList, a widget that manages
the sidelist.
Comment 4 Georges Basile Stavracas Neto 2016-06-06 18:08:43 UTC
Created attachment 329219 [details] [review]
window: adapt to use CcPanelList

After introducing the new sidelist class, the
next logical step is to make CcWindow use it.

This patch, then, adapts CcWindow to use CcPanelList
instead of a plain GtkListBox.
Comment 5 Georges Basile Stavracas Neto 2016-06-06 18:24:33 UTC
Created attachment 329223 [details] [review]
window: adapt to use CcPanelList

Updated patch to remove most of the unused code.
Comment 6 Georges Basile Stavracas Neto 2016-06-06 18:35:57 UTC
Created attachment 329224 [details] [review]
panel-list: create a custom class to handle the sidelist

Update to unselect the previous panel row when changing the visible panel.
Comment 7 James 2016-06-06 20:21:04 UTC
RE this post: https://feaneron.com/2016/06/06/an-update-on-the-control-center/

A quick comment: In the video, the welcome page shows no useful information, where as in the old control centre, the "home" page, has easy access to all the top level sections. Now they're all hidden in much less real estate and it requires scrolling. I don't think this is a UI improvement.

If we are going to have the new layout (which I personally don't prefer) then the home screen should stay the same, and when something is clicked on, then we switch to the new view with the sidebar at the left. Going back to home should revert it to the original view.

Cheers
Comment 8 Mark 2016-06-07 07:26:53 UTC
(In reply to James from comment #7)
> RE this post:
> https://feaneron.com/2016/06/06/an-update-on-the-control-center/

> If we are going to have the new layout (which I personally don't prefer)
> then the home screen should stay the same, and when something is clicked on,
> then we switch to the new view with the sidebar at the left. Going back to
> home should revert it to the original view.

Agreed, there are way too many items in the initial list at the moment, maybe the panel groupings need to be re-grouped.
Comment 9 James 2016-06-07 07:29:15 UTC
(In reply to Mark from comment #8)
> Agreed, there are way too many items in the initial list at the moment,
> maybe the panel groupings need to be re-grouped.

Even if the number of initial items in the list was low enough to fit on the screen, they still only take up approximately 25% of the visible window, with the other 75% empty until an item is selected.

As a result, it makes more sense to use the entire window to display the different control centre initial items in a grid view, and then only switch to the new list+main window view once a category was selected.
Comment 10 Bastien Nocera 2016-06-07 08:16:55 UTC
Review of attachment 329216 [details] [review]:

Looks fine.
Comment 11 Bastien Nocera 2016-06-07 08:17:49 UTC
Review of attachment 329217 [details] [review]:

Fine
Comment 12 Bastien Nocera 2016-06-07 08:43:51 UTC
Review of attachment 329224 [details] [review]:

::: shell/alt/cc-panel-list.c
@@ +107,3 @@
+
+  /* Icon */
+  image = gtk_image_new_from_icon_name (icon, GTK_ICON_SIZE_BUTTON);

There still aren't any icons in the mockups.

@@ +252,3 @@
+
+      /*
+       * We can only retrieve the data after assuring that none

ensuring.
Comment 13 Bastien Nocera 2016-06-07 08:44:28 UTC
Review of attachment 329223 [details] [review]:

Looks fine.
Comment 14 Stephen 2016-06-07 11:43:24 UTC
I'm not convinced about the extra click needed to navigate the groups, but in any case from the grouping shown on the video on https://feaneron.com/2016/06/06/an-update-on-the-control-center/ the "Details" group doesn't make much sense:

Details
  - Date/Time
  - Details
  - Users

Seems like a dumping ground for random items (and the existing Details panel itself is already a dumping ground for random "other" settings really).

All looks very slick though ;)
Comment 15 Allan Day 2016-06-07 13:18:39 UTC
(In reply to James from comment #7)
> RE this post:
> https://feaneron.com/2016/06/06/an-update-on-the-control-center/
> 
> A quick comment: In the video, the welcome page shows no useful information,
> where as in the old control centre, the "home" page, has easy access to all
> the top level sections. Now they're all hidden in much less real estate and
> it requires scrolling. I don't think this is a UI improvement.

I agree that the initial page should show something useful, rather than a placeholder. My suggestion would be to show the first settings panel (currently Wi-Fi).

> If we are going to have the new layout (which I personally don't prefer)
> then the home screen should stay the same, and when something is clicked on,
> then we switch to the new view with the sidebar at the left. Going back to
> home should revert it to the original view.

Two navigation mechanisms would be rather messy and confusing, I'm afraid.
Comment 16 Allan Day 2016-06-07 13:22:17 UTC
(In reply to Mark from comment #8)
...
> Agreed, there are way too many items in the initial list at the moment,
> maybe the panel groupings need to be re-grouped.

Can you elaborate on why you think there are too many? There are fewer items than in the current icon grid approach.
Comment 17 Allan Day 2016-06-07 13:38:57 UTC
I've tested the work in progress and it looks great for an initial implementation. There are obviously a lot of changes needed for the panels before it'll be ready. However, here is some initial feedback on the actual shell:

 * As mentioned in #c15, please drop the (very nicely done, by the way!) welcome screen and show the first panel when the control center is launched.
 * The initial window size is too small. Maybe go for something like 1100x740 to start with?
 * Devices and Details shouldn't have icons - they're not useful.
 * The heading above the sidebar should update when the Devices or Details sections are being shown (so it says Devices or Details).

Oh, and I couldn't get search to work reliably.
Comment 18 Mark 2016-06-07 16:58:25 UTC
(In reply to Allan Day from comment #16)
I feel the list looks long without any clear separation between groups with each label equally spaced. Also that the window needs to be maximized at the moment for the sidebar to fit fully on-screen. Sound, devices and details get lost at the bottom.
Comment 19 Georges Basile Stavracas Neto 2016-06-07 18:01:10 UTC
Created attachment 329321 [details] [review]
window: adapt to use CcPanelList

Fixed some issues with the search mode.
Comment 20 Georges Basile Stavracas Neto 2016-06-07 18:02:14 UTC
Created attachment 329322 [details] [review]
panel-list: create a custom class to handle the sidelist

Fine-tuned the behavior of the search. Also, per designers' request, I'm letting the symbolic icons there and applied the dim-label class.
Comment 21 Georges Basile Stavracas Neto 2016-06-08 01:21:53 UTC
Created attachment 329356 [details] [review]
panel-list: create a custom class to handle the sidelist

Updated to show a placeholder when no search result is found.
Comment 22 Georges Basile Stavracas Neto 2016-06-08 01:22:14 UTC
Created attachment 329357 [details] [review]
window: adapt to use CcPanelList

Cosmetic cleanups.
Comment 23 Georges Basile Stavracas Neto 2016-06-08 01:22:29 UTC
Created attachment 329358 [details] [review]
window: remove the placeholder view

Now that we always show a panel, this placeholder
view is not needed.

This patch removes the placesholder view.
Comment 24 Georges Basile Stavracas Neto 2016-06-08 02:37:18 UTC
Created attachment 329361 [details] [review]
panel-list: create a custom class to handle the sidelist

Update the patch to sort search results by relevance.
Comment 25 Allan Day 2016-06-08 07:52:13 UTC
Search is working better with the latest patches. Some notes on the behaviour:

 * The list shouldn't change when the search bar is shown - it should remain the same until a search is entered (see [1]).
 * When in the details or devices section, typing shouldn't activate search.
 * 'Searching for ""' doesn't really fit in the header bar above the list. I'd probably just leave the 'Settings' heading as it is when search is active.

[1] https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-settings/shell/settings-search.png
Comment 26 Allan Day 2016-06-08 08:15:10 UTC
(In reply to Mark from comment #18)
...
> I feel the list looks long without any clear separation between groups

That's interesting. I wonder if making the separators darker would help?

> with
> each label equally spaced. 

Not sure what that means - how are equally spaced labels an issue?

> Also that the window needs to be maximized at the
> moment for the sidebar to fit fully on-screen. Sound, devices and details
> get lost at the bottom.

The window needs to be 720px tall in order for all list rows to be visible; that will be less than maximised on most displays.

The whole point of the design is to emphasise some settings panels over others, in order to guide the user and promote what's most important and interesting. That in turn requires that some panels are less prominent.
Comment 27 Stephen 2016-06-08 15:36:36 UTC
Is the two-level deep "Details" issue going to be addressed? Details is also not an accurate or informative name for the set of control panel items currently in that group (or the settings in the "Details" panel contained within).
Comment 28 Mark 2016-06-09 07:30:51 UTC
(In reply to Allan Day from comment #26)

> That's interesting. I wonder if making the separators darker would help?

Even slightly darker i think would. Maybe an extra pixel of margin for the spacer would too.

> Not sure what that means - how are equally spaced labels an issue?
 
With a clearer separator this wouldn't matter. I was thinking of something the way Files sidebar used to be with Places, Devices etc. or just a larger space between / tighter spacing within groups
 
> The window needs to be 720px tall in order for all list rows to be visible;
> that will be less than maximised on most displays.

Point taken

> The whole point of the design is to emphasise some settings panels over
> others, in order to guide the user and promote what's most important and
> interesting. That in turn requires that some panels are less prominent.

OK, but wouldn't devices (which includes display now) and sound (e.g. for switching outputs, USB, headphones etc) be more commonly required than some others?
Comment 29 Bastien Nocera 2016-06-09 11:32:14 UTC
Review of attachment 329357 [details] [review]:

Looks fine overall.

::: shell/alt/cc-window.c
@@ +260,3 @@
 {
+  CcPanelListView view;
+  gchar *title;

Can be const here, because...

@@ +267,3 @@
+    {
+    case CC_PANEL_LIST_DETAILS:
+      title = g_strdup (_("Details"));

This will need to use contexts.

@@ +280,2 @@
+    case CC_PANEL_LIST_SEARCH:
+      title = g_strdup_printf (_("Searching for “%s”"),

As mentioned by Allan, this is not needed.
Comment 30 Bastien Nocera 2016-06-09 11:32:42 UTC
Review of attachment 329358 [details] [review]:

Sure.
Comment 31 Bastien Nocera 2016-06-09 11:38:09 UTC
Review of attachment 329361 [details] [review]:

Missing a scrolled window as well?

::: shell/alt/cc-panel-list.c
@@ +621,3 @@
+
+static void
+cc_panel_list_init (CcPanelList *self)

You'll want to set the GtkStack (eg. itself) to homogeneous, so that the sidebar width stays the same.

::: shell/panel-list.ui
@@ +3,3 @@
+  <requires lib="gtk+" version="3.20"/>
+  <template class="CcPanelList" parent="GtkStack">
+    <property name="width_request">200</property>

This shouldn't be needed. As mentioned, you want a vertical scrollbar, no horizontal scrollbar. The width should be the same width as the longest label + icon, from the main list and the sublists.
Comment 32 Allan Day 2016-06-09 12:06:45 UTC
(In reply to Mark from comment #28)
> (In reply to Allan Day from comment #26)
> 
> > That's interesting. I wonder if making the separators darker would help?
> 
> Even slightly darker i think would. Maybe an extra pixel of margin for the
> spacer would too.

Let's explore that.

> > Not sure what that means - how are equally spaced labels an issue?
>  
> With a clearer separator this wouldn't matter. I was thinking of something
> the way Files sidebar used to be with Places, Devices etc. or just a larger
> space between / tighter spacing within groups

Also worth exploring, possibly.

...
> > The whole point of the design is to emphasise some settings panels over
> > others, in order to guide the user and promote what's most important and
> > interesting. That in turn requires that some panels are less prominent.
> 
> OK, but wouldn't devices (which includes display now) and sound (e.g. for
> switching outputs, USB, headphones etc) be more commonly required than some
> others?

I don't have a strong view on the exact groups/order, so feel free to make suggestions for alternative arrangements (maybe in a separate bug!) We did a bunch of experiments previously, which you can find here:

https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-settings/shell/settings-organization-experiments.png
Comment 33 Georges Basile Stavracas Neto 2016-06-14 00:07:40 UTC
Created attachment 329737 [details] [review]
panel-list: create a custom class to handle the sidelist

(In reply to Bastien Nocera from comment #31)
> You'll want to set the GtkStack (eg. itself) to homogeneous, so that the
> sidebar width stays the same.

Done.
 
> This shouldn't be needed. As mentioned, you want a vertical scrollbar, no
> horizontal scrollbar. The width should be the same width as the longest
> label + icon, from the main list and the sublists.

Fixed. Thanks for pointing that out, I should've realized that before.
Comment 34 Georges Basile Stavracas Neto 2016-06-14 00:08:58 UTC
Created attachment 329738 [details] [review]
window: adapt to use CcPanelList

(In reply to Bastien Nocera from comment #29)
> Can be const here, because...

Done.
Comment 35 Bastien Nocera 2016-06-14 09:02:04 UTC
Review of attachment 329737 [details] [review]:

Looks good.
Comment 36 Bastien Nocera 2016-06-14 09:03:11 UTC
Review of attachment 329738 [details] [review]:

Sure.
Comment 37 Georges Basile Stavracas Neto 2016-06-14 15:18:54 UTC
Thanks for the reviews.

Attachment 329216 [details] pushed as 27ce5b3 - shell-model: introduce new categories
Attachment 329217 [details] pushed as 2777fd5 - panels: use the new categories
Attachment 329358 [details] pushed as 45d6073 - window: remove the placeholder view
Attachment 329737 [details] pushed as cb1e0c4 - panel-list: create a custom class to handle the sidelist
Attachment 329738 [details] pushed as 11ce397 - window: adapt to use CcPanelList