Commit graph

656 commits

Author SHA1 Message Date
Georges Basile Stavracas Neto
f0d246a8b0 panel-list: Remove Details subsection
As per the latest mockups, the Details section is a toplevel
section, and not an actual subsection.

Remove all the code that implemented Details as a subsection,
and simply treat these panels as toplevel ones.
2020-01-06 15:15:30 +00:00
Robert Ancell
5dbbc20918 shell: Show the submenu icon hint for the applications panel
The panel swarms details/devices/privacy show this icon. Since the applications
panel is not made from sub-panels, this doesn't show. For consistency this shows
the icon so the transition isn't as jarring for the user.

Add a flat into the panel .desktop file to enable this - other panels might
require this in the future
2019-11-28 11:20:41 +13:00
Robert Ancell
d16cddeccf shell: Replace ifdefs with #pragma once 2019-11-27 21:56:09 +00:00
Robert Ancell
19ccad96ae Whitespace fixes for g_autoptr coding style 2019-11-08 09:42:10 +13:00
Georges Basile Stavracas Neto
aed05547f3 panel-list: Reorganize panel order
This does not currently implements all the changes
in panel order defined by the latest mockups [1],
but only moves Privacy and Applications to their
appropriate places.

[1] https://gitlab.gnome.org/Teams/Design/settings-mockups/blob/master/shell/settings-cleanup.png
2019-11-07 14:40:07 +13:00
Georges Basile Stavracas Neto
e677539b28 panel-list: Only use panel id to sort
Right now, the sort function checks for two different
fields when comparing panel rows: the category of the
row, and the id of the panel. When comparing using the
category, it relies on the order of the enum values of
CcPanelCategory. When comparing by panel ids, it uses
the hardcoded positions defined in the 'panel_order'
array.

Using categories, however, is unecessary for our case,
and makes sorting a tad more complicated than it should
be.

Remove the category comparison of the sort function, and
rely only on the positions defined in 'panel_order'.
2019-11-07 14:40:07 +13:00
Matthias Clasen
a4bdc37760 Remove the privacy panel
It has been turned into a herd of panels.
2019-11-07 14:40:07 +13:00
Matthias Clasen
13a4f9a2af Add a diagnostic panel
This is a broken out version of the privacy panel dialog.
2019-11-07 14:40:06 +13:00
Matthias Clasen
3860a2e2af shell: Add a new privacy section
This will be filled out in the next commits.

Probably doesn't build because it includes all the type funcs.
2019-11-07 14:19:23 +13:00
Ian Santopietro
3493b50be9 Use @theme_fg_color for .drag-handle
Instead of using @borders for drag handles, we use @theme_fg_color at 40% opacity. Because these are widgets intended to be interacted with by users instead of drawing borders, we should use a semantically appropriate color which updates according to whether a user has a dark theme selected or not. This ensures that the drag handles contrast with the background no matter what stylesheet the user is using.

This improves the contrast of these widgets in the light theme from 1.7:1 to 2.9:1, which is still rather low, but greatly improves the usability of these widgets without having too large an impact on the look of the widgets in-situ. The contrast ratio is unchanged in the HighContrast style (4.0:1).

This also improves the situation if we eventually adopt a dark style preference for users, and improves the portability of the application.
2019-10-15 18:54:30 +00:00
Felipe Borges
ad83235bf9 shell: Use a meson option to determine that we're in a sandbox 2019-10-14 20:25:39 +00:00
Robert Ancell
9a2e821fe5 Initialize autoptr values to NULL.
These cases were safe, but if the code changed this risked freeing uninitialized
memory.
2019-10-03 10:58:38 +13:00
Robert Ancell
c6965d9e30 shell: Use g_autofree for strings 2019-10-02 17:04:15 +00:00
Robert Ancell
92e1abf6f2 log: Replace deprecated functions with modern equivalents 2019-09-30 14:31:39 +00:00
Robert Ancell
d99613a320 window: Use self variable name consistently 2019-09-23 14:00:42 +00:00
Robert Ancell
bb9fe942d1 window: Connect signals in swapped form 2019-09-23 14:00:42 +00:00
Robert Ancell
a80fc89f48 window: Use GTK+ widget types 2019-09-23 14:00:42 +00:00
Robert Ancell
d843802f98 window: Remove unused variables 2019-09-23 14:00:42 +00:00
Robert Ancell
c2567b9c3e window: Replace child names with widget references
Using child names can cause code to be broken if a name is changed - this wont
be picked up as an error in the compiler.
2019-09-23 14:00:42 +00:00
Mohammed Sadiq
62c7176304 window: Set sidebar as the default visible child
This doesn't make any difference when the UI isn't folded.
Otherwise (Eg., on small screens) the sidebar will be shown
first instead of some panel.
2019-09-21 03:43:34 +00:00
Josselin Mouette
68d5b340c0 gnome-control-center.desktop: Use the "Settings" category
Use the "Settings" category instead of "System"
as per mentioned in spec-file [1].

Cherry-picked from debian packaging for g-c-c [2].

[1] https://standards.freedesktop.org/menu-spec/latest/apa.html
[2] https://salsa.debian.org/gnome-team/gnome-control-center/blob/debian/1%253.34.0.1-1/debian/patches/01_menu_category.patch
2019-09-13 13:57:30 +00:00
Robert Ancell
1f34dd67dd info: Split removable-media into its own panel 2019-09-09 21:52:07 +00:00
Robert Ancell
e743b8efd7 info: Split default-apps into its own panel 2019-09-09 21:52:07 +00:00
Mohammed Sadiq
661df1b683 window: Disable selection when panel list is folded
When the panel list is folded, either the panel items list or the
panel itself is shown, not both.  And when the list is shown it
doesn’t mean anything for an item to be marked as selected.
2019-08-27 13:26:21 +00:00
Ting-Wei Lan
299647f970 build: Include generated sources in declared dependencies
Sometimes ninja decides to compile tests/interactive-panels/main.c,
which requires shell/resources.h, before shell/resources.h is generated.

The fix is to use 'sources' argument of declare_dependency to properly
declare the dependency on generated headers.

A fix for tests/datetime and panels/datetime is also included in the
commit to fix a similar problem.

Closes https://gitlab.gnome.org/GNOME/gnome-control-center/merge_requests/472
2019-08-25 09:42:22 +00:00
Allan Day
eb8263454f region: Use correct icon for the drag handle
There's a dedicated icon for drag handles - we should make use of
it. Also, change the color of the handle so it looks like it is
part of the row.

Fixes #590
2019-07-16 22:34:26 +00:00
Felipe Borges
4f099e33c5 shell: Add global CSS stylesheet 2019-07-16 22:34:26 +00:00
Georges Basile Stavracas Neto
75f150d5a2 shell: Add position to cc_shell_embed_widget_in_header()
So we can control where the widget should be added to. The
main window only supports left and right positions.

https://gitlab.gnome.org/GNOME/gnome-control-center/issues/528
2019-05-21 12:59:36 -03:00
Georges Basile Stavracas Neto
476ea8f550 panel-list: Simplify placeholder widget setup
I just learned that we can use <child type="placeholder"> and
avoid C code to do that. Simplify CcPanelList as well.
2019-04-01 22:27:51 +00:00
Adrien Plazas
638dc94a8d window: Use a HdyLeaflet
This allows the window to be folded to show either the sidebar or the
panel when not enough space is available.

This reverts commit 2854669f5c8280a32d0b5fa6c5399cc391ef06f3.
2019-03-29 18:33:36 +00:00
Adrien Plazas
f9d0decc3a shell: Bump the right panel width request to 360
This will help ensuring the shell's leaflets fold consistently for all
panels by setting a more reasonable minimum size constraint for the
right panel, so that more panels can meet it.
2019-03-29 18:12:03 +00:00
Adrien Plazas
5cc5a85bf9 window: Stop using HdyLeaflet
It is safer to not make the shell adaptive until all panels are, so this
drops usage of HdyLeaflet to make the shell adaptive.

This mostly reverts commit 0ca61a5bde.

Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/issues/375.
2019-02-21 11:35:35 +00:00
Iain Lane
82191ca285
window: Update the headerbar when the panel list changes
Currently you can get stuck in the applications panel if you do this:

  1) Click "Applications" in the sidebar. The top left icon is a back
     icon.
  2) Click the back icon to return to the panel list. The top left icon
     changes to a search icon.
  3) Click "Applications" again. The top left icon remains a search icon
     and you're stuck in the panel.

The basic problem is that the headebar icon is update when the panel
changes, but not when the sidebar view changes. To fix this, we connect
to the signal that is emitted when the sidebar view changes, and update
the headerbar.
2019-02-18 13:19:51 +00:00
Robert Ancell
0799c864e8 sound: Rename new sound panel to replace old one 2019-02-07 09:31:18 +13:00
Robert Ancell
945b85af7e sound: Create new sound panel that uses the updated design
Use the new designs:
https://wiki.gnome.org/Design/SystemSettings/Sound

The existing panel was very old and had a very traditional layout that didn't
align with the new designs. Initialy this patch modified existing elements of
the old panel but the change was so great that new widgets were written. Some
of the widgets have algorithms taken from the old panel.

The sound files and icons are from the old panel.
2019-02-07 09:31:17 +13:00
Christopher Davis
89245bbeda cc-window: Remove custom development CSS
GTK now includes it's own development style class, .devel.
We can use that instead of creating our own.
2019-01-21 20:44:44 -05:00
Adrien Plazas
90dd7651cd window: Ensure a constant minimum panel width
Ensure all panels take at least 300pt of width to ensure a minimum of
usability, readability of the panels and consistency of when the shell
folds itself.
2019-01-21 21:53:21 +00:00
Adrien Plazas
0ca61a5bde window: Use a HdyLeaflet
This allows the window to be folded to show either the sidebar or the
panel when not enough space is available.
2019-01-21 21:53:21 +00:00
Adrien Plazas
dbfc3e4c7a panel: Add the sidebar-activated signal
This is necessary for the application panel to warn that an element of
its sidebar has been activated so the window can focus on it when the
window will use a leaflet.
2019-01-21 21:53:21 +00:00
Adrien Plazas
64ac458804 window: Use the sidebar style class on sidebar separators
This adds the sidebar style class to the sidebar separators to keep them
styled correctly.
2019-01-21 21:53:21 +00:00
Adrien Plazas
63dda56329 window: Use a HdyTitleBar
This will be needed for sliding animations to work well as we are going
to use HdyLeaflet in the titlebar.
2019-01-21 21:53:21 +00:00
Adrien Plazas
77aece9920 shell: Synchronize the separators
This will help the separators to behave properly with leaflets, as we
are going to introduce some in some following commits.
2019-01-21 21:53:21 +00:00
Adrien Plazas
4c813fa1d8 shell: Synchronize the right panel width
This will help the right panel to behave properly with leaflets, as we
are going to introduce some in some following commits.
2019-01-21 21:53:21 +00:00
Adrien Plazas
9d9c547649 shell: Use a HdyHeaderGroup
Handle the header bars' decoration layouts with a HdyHeaderGroup to
simplify the code.
2019-01-21 21:53:21 +00:00
Jeremy Bicha
de00af78a5 appdata: Update contact info 2019-01-17 21:44:45 +00:00
Jeremy Bicha
4e02c9c06d appdata: Update app name and description
Our public name is Settings not Control Center.

In the description, simplify and use "system" instead of "desktop".

"GNOME desktop" is still mentioned in the summary but that seems
ok to me.
2019-01-17 21:44:45 +00:00
Bilal Elmoussaoui
eab8474be6 Appdata: remove provides binary
It's already fetched from the desktop file, no need to duplicate that here.
2019-01-09 20:58:51 +00:00
Bilal Elmoussaoui
2c8706b0d3 appdata: revert modified id
Should be updated later with the new unified app-id
2019-01-09 14:32:54 +00:00
Bilal Elmoussaoui
c7a372c48c Add a provides tag. 2019-01-09 14:30:17 +00:00
Bilal Elmoussaoui
0a6009f6a0 appdata: Improve the appdata file 2019-01-09 13:53:38 +00:00