The displayed panel should always match the selection in the panel
list. That implies that after swapping out the list (for instance
by browsing Devices or Details), we need to update the panel rather
than keeping the old one around until the user manually selects a
row. The easiest way to achieve that is to activate the panel list
after a view change when appropriate.
https://bugzilla.gnome.org/show_bug.cgi?id=783429
When the active panel is not changed through sidebar navigation,
e.g. by calling the Control Center through command line and asking
to open a specific panel, the panel is correctly opened but the
sidebar is not updated to reflect that.
Fix that by selecting the externally set panel row, and eventually
moving to the correct list.
https://bugzilla.gnome.org/show_bug.cgi?id=769063
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.
https://bugzilla.gnome.org/show_bug.cgi?id=767301
We previously had a dedicate view for handling search,
based on model filtering and a custom panel to display
that differently.
After moving to GtkListBox, search can be trivially
done by using a filtering function, and widgets can
be fine-tuned to display extra information.
This patch, then, reimplements the search using a filtering
function over the panels' list.
https://bugzilla.gnome.org/show_bug.cgi?id=766922
The latest mockups use a list instead of icon grid. This
commit, after all the work porting the current UI to use
a side list, replacing the temporary icon grid.
https://bugzilla.gnome.org/show_bug.cgi?id=766922
The first headerbar and the sidelist should stay synchronized,
and this commit does so by setting the width request of the
headerbar to the allocated width of the sidelist.
https://bugzilla.gnome.org/show_bug.cgi?id=766922
This commit introduces the second headerbar, where the
panel title and the panel widgets are displayed. It also
adapts the code to use the second headerbar when needed.
https://bugzilla.gnome.org/show_bug.cgi?id=766922
In order to prepare ourselves for the future changes,
having the window as a template class is hugely advantageous
for we'll be able to modify the interface much more
quickly and cleanly.
This commit makes the window a template class, and only
that. No behavioral changes, nor new features were
introduced here.
https://bugzilla.gnome.org/show_bug.cgi?id=766922
Because the old layout was never meant to scale well on low
resolution displays, we had to introduce code that adapts the
window to be usable on low res screens.
The problem with this code is that it still doesn't scale down
very well for really low resolution screens. Partially because
of the layout itself (which, again, was never meant to), partially
because the panels request a size bigger than e.g. 720x480. Now,
this is an important feature and we need to support that low
resolution by default.
To push this constraint forward, remove the code that managed a
custom mode for low resolution screens. From now on, the Control
Center shall be adapted to scale well on any screen sizes.
https://bugzilla.gnome.org/show_bug.cgi?id=766922
Having a fixed width is bad for various reasons. First, it's
harder to deal with low resolution screens, which was fixed
by adding an entire new mode just to deal with it. Second,
because it may not scale well for big resolutions.
Fix that by removing the code that handles the fixed width.
The next commit will completely remove the code that manages
small screens, in the hope that the new layout will handle
both cases well by design.
https://bugzilla.gnome.org/show_bug.cgi?id=766922
To progressively achieve the sidelist, let's start by moving
the current iconview selector to the side and then turning
it into a GtkListBox.
This commit, then, moves the iconviews' list to the start of
the horizontal box added in the previous commit.
https://bugzilla.gnome.org/show_bug.cgi?id=766922
The copied files are exact copies of shell/cc-window.c and
shell/cc-window.h, and they'll be used to implement the restyled
shell as an alternative binary.
https://bugzilla.gnome.org/show_bug.cgi?id=766922