Commit graph

49 commits

Author SHA1 Message Date
Georges Basile Stavracas Neto
eff96c4cb1 camera: Port to GTK4 2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
75f6566a91 notifications: Port to GTK4
This one was relatively easy, since most of the brokenness came
from using deprecated properties that can just be dropped, and
packaging that can also just be dropped.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
3c8a0aa0b1 info-overview: Port to GTK4
- Remove visible=True properties from the UI file
 - Use GtkPicture for the OS logo
 - Drop gtk_dialog_run()
 - Port gnome-control-center-print-renderer to GTK4
   by using GdkSurface to create the GL context
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
f41ab920b3 Disable all panels and tests
We'll start the transition by disabling all panels and tests, so that
we can go through them one by one, which should make the review process
significantly less painful.
2021-12-14 22:34:21 -03:00
Mohammed Sadiq
dc840f0aec wwan: Add new panel for modem management
The panel supports 2G/3G/4G GSM/LTE modems. CDMA2000 Modems are not supported.
If a supported modem is present, the panel will be shown and the modem will be
handled, else, network-panel shall manage the modem as it did in the past.

If more than one modem with data enabled is present, the user is allowed to set
priority of one SIM over the other (the priority is for SIM, not modem).

Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/issues/132
2021-08-13 19:25:41 +00:00
Georges Basile Stavracas Neto
0f0845172f Introduce the Multitasking panel
The Multitasking panel brings some additional settings
from Tweaks that are relevant to the general platform.

Related: https://gitlab.gnome.org/GNOME/gnome-control-center/issues/558
2021-08-13 18:17:36 +00:00
Robert Ancell
60875cc4f2 shell: Don't use the OnlyShowIn/NotShowIn flags from desktop files to hide panels
It was added in 3e04b1c53b to allow downstreams to hide panels that don't make
sense in their environment. Later on the ability for panels to hide themselves
was added in a78cbe3963, which is a better solution for this case.

The current situation is confusing if you are not a known environment, as then no
panels show.

Fixes #163
2020-02-17 23:23:25 +00: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
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
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
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
Georges Basile Stavracas Neto
1245fd787b
Introduce Applications panel
This is an initial implementation of most of the
intended functionality for this panel. Flatpak
integration itself is implemented by spawning
"flatpak info -m $appid", which gives us the
metadata in key file format, and allows flatpak
to be a runtime dependency.

Even after removing the .desktop suffix, there can
still be a difference between the app ID generated
in this way and the flatpak ID, since flatpaks are
allowed to export files whose prefix is the flatpak
ID. Fix this by pulling the X-Flatpak key out of
the desktop file. This would cause trouble for
org.libreoffice.LibreOffice-math.
2019-01-07 10:59:30 -02:00
Georges Basile Stavracas Neto
9a2c5dc41b
panel-loader: Document public functions
Add documentation comments to the public functions, which
has the additional benefit of adding visual marks for
public functions and making it easier to navigate through
this file.
2018-11-11 23:42:00 -02:00
Georges Basile Stavracas Neto
62d3fb95ff
panel-loader: Allow overriding panel vtable
In order to introduce test panels, which are a nice to have
feature before actually moving to working on the custom
widget on sidebar feature, add a way to override the panels
vtable and load whatever panels we might want.
2018-11-11 23:42:00 -02:00
Georges Basile Stavracas Neto
867a35dc89
panel-loader: Simplify listing panels
Instead of enumerating them, putting that in a GList, then
iterating the GList printing the panel names, simply print
them while enumerating.
2018-11-11 23:42:00 -02:00
Georges Basile Stavracas Neto
31a5d55896
panel-loader: Reorder functions
Put the externally visible functions at the bottom, and
the static functions at the top.
2018-11-11 23:42:00 -02:00
Georges Basile Stavracas Neto
d1fe090bf4
panel-loader: Rename all_panels to default_panels 2018-11-11 23:41:59 -02:00
Georges Basile Stavracas Neto
6a50a21f40
panel-loader: Define vtable struct in the header
We will allow test panels to be added, so the vtable must
be overridable. The first step into making it overridable
is exposing the actual vtable struct.
2018-11-11 23:41:59 -02:00
Georges Basile Stavracas Neto
9d88b84788
panel-loader: Assert get_type() function
Be more strict about the get_type() availability - we cannot
run without it.
2018-11-11 23:41:59 -02:00
Bastien Nocera
0e2a4aa2d6 wacom: Hide Wacom panel when there are no tablets
Use GsdDeviceManager to monitor libwacom-supported tablets coming and
going. Hide the Wacom panel from the list when there's no supported
tablets plugged in.
2018-06-20 12:53:11 +00:00
Georges Basile Stavracas Neto
4151af5ea2 wifi: Hide when no Wi-Fi adapter is available
It's WIP.
2018-05-29 16:09:51 -03:00
Georges Basile Stavracas Neto
10cf920fef panel-loader: Add support for static init functions
Static init functions are functions that initialize resources
or monitor daemons without needing any contextual information,
such as a CcPanel instance or access to a CcShell implementation.

These functions are meant to be used for monitoring a panel's
visibility, when it makes sense. Usually, panels that represent
hardware that potentially is not available or is not supported
should hide itself.

Following this commit, the Wi-Fi panel panel will be adapted as
the first user of this new API. Other panels that require this
functionality will be adapted later.
2018-05-29 16:09:51 -03:00
Christian Kellner
47f241b10c thunderbolt: new panel for device management
Thunderbolt devices need to be approved before they can be used.
This is done via the boltd system daemon and gnome-shell. The new
panel enables the user to manage thunderbolt devices, i.e.:

 - forget devices that have previously been authorized
 - authorize currently unauthorize devices

Additionally authorization of devices an be temporarily disabled
to ensure no evil device will gain access to the computers
resources.

File starting with "bolt-" are copied from bolt's source tree
and currently correspond to the bolt upstream commit with the id
f22b1cd6104bdc2b33a95d9896b50f29a141b8d8
They can be updated from bolt via the update-from-bolt.sh script.
2018-04-13 15:08:16 +02:00
Georges Basile Stavracas Neto
c5f97d8a56 panel-loader: Update code style
Use g_auto and remove an unecessary line break.
2018-03-06 22:38:56 -03:00
Georges Basile Stavracas Neto
c13de500b7 shell-model: Remove hidden category
No more panels are hidden now.

https://bugzilla.gnome.org/show_bug.cgi?id=790923
2017-11-28 17:03:51 -02:00
Georges Basile Stavracas Neto
6123d97e3f project: Remove CcInfoPanel
This panel was hidden in the new shell, and now that
we don't have the old one, can be safely dropped.

Minor adjustments were made to the other panels to
properly remove this panel.

https://bugzilla.gnome.org/show_bug.cgi?id=790923
2017-11-28 17:03:51 -02:00
Georges Basile Stavracas Neto
b23ef59926 shell-model: Remove old categories
Since we don't maintain two different shells anymore, there
is no need to maintain the two different sets of categories
in the desktop files.

This commit also drops the "#ifdef CC_ENABLE_ALT_CATEGORIES"
blocks, since the previous commit removed that define.

https://bugzilla.gnome.org/show_bug.cgi?id=790923
2017-11-28 17:03:51 -02:00
Didier Roche
3e04b1c53b Only load panel corresponding to OnlyShowIn/NotShowIn
Most panel desktop files have an OnlyShowIn entry to display them
in the previous iconish G-C-C UI. Some distributions (like ubuntu) prefers
adding new panel rather than patching the existing ones to ensure that
the upstream Control Center look it preserved under a vanilla GNOME session.
This patch fix thus the new layout setting to respect the OnlyShowIn property.

https://bugzilla.gnome.org/show_bug.cgi?id=787347
2017-09-12 15:31:22 +02:00
Georges Basile Stavracas Neto
d5c4436869 project: Switch to the new shell
This is the bomb dropping commit. It does so simply by
changing the compiled files, and adjusting the build
projects proper.
2017-08-09 19:31:41 +02:00
Georges Basile Stavracas Neto
b4194048de panel-loader: Cosmetic changes
This commit only fixes some very minor cosmetic changes
like int → gint, simplifies the code by using g_autofoo,
et cetera.

https://bugzilla.gnome.org/show_bug.cgi?id=779216
2017-07-24 23:33:41 -03:00
Mohammed Sadiq
6cf52ada03 info: Add desktop files for the split panels
This commit shall show the panels separate.

Some panels are hidden in current design, while some other panels
are hidden in new shell design.

https://bugzilla.gnome.org/show_bug.cgi?id=779216
2017-07-24 22:55:27 -03:00
Mohammed Sadiq
1485b50a7a shell-model: Add hidden settings
Some panels shall be shown only in current design, And some other panels
shall be shown only in new Shell design. So let's have a code that
would help us do that

https://bugzilla.gnome.org/show_bug.cgi?id=779216
2017-07-24 22:54:58 -03:00
Georges Basile Stavracas Neto
016efdfac8 wifi: Introduce Wi-Fi panel
The glory moment has come. The new Wi-Fi panel is finally
introduced using a different code style from the rest of
the Network panel, since Control Center itself is written
using the GTK+ C code style.

The Wi-Fi panel uses modern GTK+ features like template
classes and new widgets. The files are stored together
with the Network panel so that we can reuse the abstraction
layer that the Network panel has to manage devices.

https://bugzilla.gnome.org/show_bug.cgi?id=784818
2017-07-18 13:30:46 -03:00
Bastien Nocera
8074a31d5e printers: Make panel required on all platforms
All the free Unix-compatible platforms we support have CUPS support, so
require it from the get-go.
2017-02-08 20:08:20 +01:00
Georges Basile Stavracas Neto
27ce5b388f 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.

https://bugzilla.gnome.org/show_bug.cgi?id=767301
2016-06-14 12:16:43 -03:00
Christophe Fergeau
c84722248e shell: Revert "Let panels have their own commandline flags"
This reverts commit 31a8a99440.

This was meant for bgo#695885 which has stalled for a while, so this
feature has no in-tree user. This commit removes it for now, this can be
readded when users for it materialize.

https://bugzilla.gnome.org/show_bug.cgi?id=751597
2015-07-16 11:49:34 +02:00
Tim Lunn
6bfce1e06b shell: Fix desktop_name memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=699362
2013-05-06 18:11:04 +10:00
Emanuele Aina
31a8a99440 shell: Let panels have their own commandline flags
Add a class method to CcPanel to get a GOptionGroup which will be added
to the main commandline parser. This gives panels the chance to have
commandline "--flags" in addition to the already available parameters.

This changes changes the way parameters are passed to panels: the first
entry in the GVariant array is always the a{sv} dictionary of
commandline flags, followed by the remaining free-form arguments.

https://bugzilla.gnome.org/show_bug.cgi?id=696054
2013-04-03 18:09:11 +02:00
Emanuele Aina
9977bb200e shell: Use GVariant to convey panel arguments instead of a string array
By using a GVariant of type "av" we can potentially pass more structured
data to panels, which will become relevant with the ability to invoke
them by GAction-based DBus-activation introduced in the following patch.

https://bugzilla.gnome.org/show_bug.cgi?id=696054
2013-04-03 18:02:10 +02:00
Giovanni Campagna
3911ef1c3a shell: add a way to compile the panel loader without GType functions
This will allow to use the panel loader in the search provider, which
is a separate executable and doesn't link all the panel modules.

https://bugzilla.gnome.org/show_bug.cgi?id=690577
2013-02-18 16:08:22 +01:00
Bastien Nocera
66808c2b3f screen: Remove screen panel
It's been replaced by the updated Power panel and the new Privacy panel.
2013-01-17 11:06:02 +01:00
Thomas Wood
b30d0133b9 Add initial implementation of the new Sharing panel
https://bugzilla.gnome.org/show_bug.cgi?id=687772
2013-01-14 18:06:20 +00:00
Bastien Nocera
7c3d27f3a0 shell: Add --list command-line option
https://bugzilla.gnome.org/show_bug.cgi?id=655418
2013-01-10 17:15:56 +01:00
Giovanni Campagna
e8cd35edce notifications: Add panel
Show applications using the message tray, and
allow configuring in what way the shell presents them.

The set of applications shown include all applications that ever
showed a notification in gnome-shell and all applications that have
a boolean X-GNOME-UsesNotifications key set to true in their desktop file.

https://bugzilla.gnome.org/show_bug.cgi?id=685928
2012-12-20 09:25:22 +01:00
Giovanni Campagna
0139f68416 shell: replace GMenu loading code with an hardcoded list of panels
Now that we don't allow or load external panels, using libgnome-menu is just
overengineering. We can get the same results with less code by keeping a static
list of function pointers.
This reduces the number of places one needs to patch to add a new panel.
Also, this way we avoid registering all types at startup, and if we want
we can switch to load panel desktop files in a separate thread.

https://bugzilla.gnome.org/show_bug.cgi?id=690165
2012-12-18 16:46:27 +01:00