Commit graph

857 commits

Author SHA1 Message Date
Georges Basile Stavracas Neto
25edfb4a4b mouse: Port to GTK4
This one is an interesting case. It was easier to simply switch
to AdwPreferencesPage than actually port all the GtkFrames in
there.

In addition to that, the mouse test page now uses a GtkPicture
instead of a GtkImage, and the GtkDrawingArea API changes are
reflected in the code.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
2d762680d2 usage: Port to GTK4 2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
696ed350bb applications: Port to GTK4 2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
6cfd6e0652 multitasking: Port to GTK4 2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
a0d49cb3a8 power: Port to GTK4
Extra care was needed for the combo boxes, and the way we currently
use GtkStringList is kind of hacky, but overall things seem to be
working fine.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
800cab08bf microphone: Port to GTK4 2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
b965f7cf50 lock: Port to GTK4
This one was even more trivial than the previous one!
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
449c55be3a location: Port to GTK4
An almost trivial port too.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
26630338ba search: Port to GTK4
This one was the first panel ported that used Drag n' Drop, and
we can see how much of an improvement GTK4 is compared to GTK3
when handling DnD.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
c43eeea954 removable-media: Port to GTK4
A pretty boring, regular port again. No new challenges here.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
b9064cf2f6 default-apps: Port to GTK4
An easy one, mostly removing code from the UI file.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
9995a3bb79 universal-access: Port to GTK4
This was quite a huge port, but fortunately it mostly involved
removing tons of deprecated widgets (without replacement; just
drop them) and adjusting packing properties.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
a719008403 sound: Port to GTK4 2021-12-14 22:34:21 -03:00
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
30dcd1f973 window: Port to GTK4
- Inherit AdwApplicationWindow
 - GtkHeaderBar → AdwHeaderBar
 - Simplify the widget tree structure [1]
 - Drop custom key handler, use bindings instead

[1] It used to have a big messy chain of leaflets, headers,
and whatnot. Now it's simplified as:

 AdwLeaflet
 + ---------------- + --------------------------------- +
 |   AdwHeaderBar   |           AdwHeaderBar            |
 + ---------------- + --------------------------------- +
 |   GtkSearchBar   |                                   |
 + ---------------- +                                   |
 |                  |                                   |
 |                  |                                   |
 |                  |                                   |
 |                  |             GtkStack              |
 |   CcPanelList    |                                   |
 |                  |                                   |
 |                  |                                   |
 |                  |                                   |
 |                  |                                   |
 + ---------------- + --------------------------------- +
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
0818bf469c panel: Port to GTK4
Inherit AdwBin.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
521ea3a635 panel-list: Port to GTK4
- Inherit AdwBin since GtkStack is a final class now
 - Replace GtkContainer APIs by their widget-specific ones
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
15a67221a0 application: Add CSS provider on startup
GTK isn't fully initialized on init, so move that to startup.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
e42a819723 application: Subclass AdwApplication
It'll handle setting up various things for us.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
5ca53a0a78 Drop Cheese dependency
Cheese is not ready for GTK4, and probably won't ever be, so just
drop the dependency. We'll reimplement webcam support using PipeWire
later.
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
tejal30palwankar
00ada31bce software: Added missing screenshots in software
Updated appdata.xml

Fixes #588
2021-11-04 09:22:49 +00:00
Guido Günther
a4ab41194b shell: Mirror the main leaflet's 'folded' property
This makes it simpler for panels to check whether g-c-c
is in folded state.
2021-09-25 19:05:28 +00:00
1pav
f89a48a980 window: Save application window state
Currently the window state (width, height, maximized) is not preserved
across application restarts.

These changes implement window state saving/restoring by leveraging the
GSettings API.

Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1293
2021-09-24 20:42:06 -03:00
Sophie Herold
c1cfe52527 metainfo: Align app name with .desktop name 2021-09-24 22:34:28 +00: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
Carlos Garnacho
7196e8aaea shell: Avoid handling map events from other windows
The CcWindow tries to unset the focus when first mapping the window.
However this pretty wide check intercepts mapping events from other
windows than the toplevel (e.g. subsurfaces, for popovers). This
causes the focus to move away from the popover, overriding its
modality.

Check that the event received is addressed to the CcWindow's
GDK window before unsetting the focus, so we don't mess with popover
focus.

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1327
2021-04-21 20:54:06 +02:00
Ian Douglas Scott
b804fdb01a shell: Fix bug when multiple panels use custom sidebar widget
This is not currently a problem because the feature is only used in the
Applications panel, but this fixes the behavior if a custom sidebar is used
in more than one panel.
2021-04-19 14:31:44 +00:00
Felix Riemann
c6bde9770d help-overlay: Show correct 'Back' shortcut in RTL locales
The 'Back' shortcut automatically switches to Alt+Right in RTL locales.
Add direction properties to achieve the same effect in the help overlay.

Fixes #939.
2021-02-01 03:41:33 +00:00
Adrien Plazas
9ef266eda5 data: List compatible form-factors
This will allow the app to be available in Phosh and PureOS Store.
2020-11-11 19:57:58 +00:00
Ian Douglas Scott
f4f44f511e shell: Do not show panel description by default
01874f7 added this `gtk_widget_show (label)` call, which seems to be
erroneous. The previous `g_object_new()` call had `"visible", FALSE,`.

It should only be shown when searching panels. This fixes that,
restoring the older behavior.
2020-10-29 20:22:58 +00:00
Robert Ancell
01874f7650 shell: Replace g_object_new with gtk widget methods
This improves compile time type checking.
2020-10-19 04:07:53 +00:00
Adrien Plazas
fd60c313df Stop using HANDY_USE_UNSTABLE_API
It isn't needed anymore since libhandy 0.90.0.
2020-08-18 02:51:04 +00:00
Yuri Chornoivan
e7050ab6f4 Fix minor typos 2020-07-20 10:38:09 +03:00
Adrien Plazas
0c9b828d6f window: Use HdyLeaflet:folded
Replace the dropped fold enum property by the folded boolean one, and
directly bind booleans in UI files where possible.
2020-07-20 08:05:45 +02:00
Adrien Plazas
080e145e23 window: Use HdyHeaderGroup:decorate-all
Replace the dropped focus property by the decorate-all boolean one.
2020-07-20 08:04:28 +02:00
Adrien Plazas
3f20b9b572 window: Use HdyLeaflet:transition-type
Replace the dropped mode and child specific transition type properties
by the unified one.
2020-07-20 08:04:28 +02:00
Adrien Plazas
726684e9e0 Adapt to changes in hdy_init()
It must now be called after initializing GTK, and doesn't take
parameters.
2020-07-20 08:04:28 +02:00
Adrien Plazas
611ffdbe7d window: Fix a typo in a comment 2020-07-03 10:07:58 +02: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
Robert Ancell
de2b8f305a shell: Remove dead code 2020-02-10 11:19:23 +13:00
Robert Ancell
93b14a4339 panel: Move shared GCancellable code into panel class
Make the panel class provide a cancellable that will be cancelled when the panel
is destroyed. Panel implementations can use this and not have to mangage the
cancellable themselves. Consolidate cases where panels had multiple cancellables
that were all being used for this behaviour.
2020-02-03 09:36:24 +13:00
Georges Basile Stavracas Neto
86a8ecb705 panel-list: Temporarily move the Network panel to below Wi-Fi
This is until we merge the Network, Wi-Fi, and Mobile Broadband
panels.
2020-01-06 15:15:30 +00:00
Georges Basile Stavracas Neto
aa98bf47da panel-list: Move Thunderbolt to the Privacy section 2020-01-06 15:15:30 +00:00
Georges Basile Stavracas Neto
5f640b9903 panel-list: Reorganize Devices section
Move the Power and Sound panel to there.
2020-01-06 15:15:30 +00:00
Georges Basile Stavracas Neto
a99ad542ae panel-list: Remove the Devices subsection
Same case of the Details subsection, it's now part of the
main list.
2020-01-06 15:15:30 +00:00
Georges Basile Stavracas Neto
e7f221e1b9 panel-list: Reorganize panel order 2020-01-06 15:15:30 +00:00