Commit graph

141 commits

Author SHA1 Message Date
Lains
7615bb5ccb datetime: Add top bar clock and calendar switches
For changing the clock display (weekday, seconds, date) and week numbers on the calendar

These switches should change:
- Whether or not the clock display has the week day (e.g. Mon).
- Whether or not the clock display has the date (e.g. Jun 6).
- Whether or not the clock display has seconds (e.g. 12:30:45).
- Whether or not the clock's popup calendar should show the week's number.

Fixes #257
2023-05-22 13:18:31 +00:00
Chris Mayo
0d1ae3d4f4 datetime: Fix Time Format ComboRow
Failed to set property AdwEnumListModel.enum-type to GDesktopClockFormat: Unsupported GType 'GDesktopClockFormat' for value of type 'GType'

meson.build code adapted from background/meson.build.
2023-04-17 12:14:58 +00:00
Chris Mayo
92c4b6a706 Fix panel crashes due to unknown types in UI descriptions
Error building template class 'CcSearchPanel' for an instance of type 'CcSearchPanel': .:0:0 Invalid object type 'CcListRow'

Error building template class 'CcDisplayPanel' for an instance of type 'CcDisplayPanel': .:0:0 Invalid object type 'CcListRow'

Error building template class 'CcMousePanel' for an instance of type 'CcMousePanel': .:0:0 Invalid object type 'CcIllustratedRow'

Error building template class 'CcKeyboardPanel' for an instance of type 'CcKeyboardPanel': .:0:0 Invalid object type 'CcListRow'

Error building template class 'CcRegionPanel' for an instance of type 'CcRegionPanel': .:0:0 Invalid object type 'CcListRow'

Error building template class 'CcUaPanel' for an instance of type 'CcUaPanel': .:0:0 Invalid object type 'CcListRow'

Error building template class 'CcUserPanel' for an instance of type 'CcUserPanel': .:0:0 Invalid object type 'CcAvatarChooser'
Error building template class 'CcUserPanel' for an instance of type 'CcUserPanel': .:0:0 Invalid object type 'CcListRow'

Error building template class 'CcDateTimePanel' for an instance of type 'CcDateTimePanel': .:0:0 Invalid object type 'CcTzDialog'
cc_tz_dialog_get_selected_location: assertion 'CC_IS_TZ_DIALOG (self)' failed
dumped core
Error building template class 'CcDateTimePanel' for an instance of type 'CcDateTimePanel': .:0:0 Invalid object type 'CcListRow'

Error building template class 'CcInfoOverviewPanel' for an instance of type 'CcInfoOverviewPanel': .:0:0 Invalid object type 'CcHostnameEntry'
2023-04-17 12:14:58 +00:00
Robert Ancell
dd06bf7c11 datetime: Fix NTP switch getting out of sync.
The state needs to be set to the state that was requested before the D-Bus call.
The existing code used the state received from D-Bus, which will be the previous state.
2023-03-30 09:19:34 +13:00
Robert Ancell
00e303998e datetime: Use g_object_bind_property to show NTP state 2023-03-30 09:17:21 +13:00
Robert Ancell
a3d99c78f6 datetime: Fix widget names and types 2023-03-29 11:04:24 +00:00
Maksym Hazevych
5b988a6943 Replace all occurrences of 'gtk_widget_hide'
Replace all occurrences of 'gtk_widget_hide(smth)' with
'gtk_widget_set_visible(smth, FALSE)'.
2023-03-29 14:26:55 +13:00
Alessandro Bono
7c356d8c7d datetime: Decouple active and state properties usage
The ability to tweak the state property was mainly introduced in
order to implement delayed state change via the state-set signal.
Since GTK 4.9.3[1] the active and state properties are no more
interchangeable.

[1] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5442

Closes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2330
2023-03-03 18:16:57 +00:00
Mohammed Sadiq
5e41174475 datetime: Use the new timezone dialog
This commit also removes the deprecated GtkListStore usage
2022-12-04 21:38:34 +00:00
Mohammed Sadiq
1885b2c4f3 datetime: Display month in 2 columns
So that it fits better in smaller screens and the user
doesn't have to scroll to select some months.

This commit implements the updated design[0]

[0] https://gitlab.gnome.org/Teams/Design/settings-mockups/-/blob/master/time-date/time-date-adaptive.png
2022-12-01 01:21:24 +00:00
Mohammed Sadiq
4b2d32e53f datetime: Fix crash when loading the panel
When the month row value is changed, the signal callback uses
the year value from the year spin button.  So set year value
before month is set so that the year is set to a valid value
thus avoiding a crash with invalid year.
2022-02-01 13:59:33 +00:00
Georges Basile Stavracas Neto
65c53a4c57 datetime: Switch Month row to AdwComboRow
It fits it much better, and allows for a great cleanup.
2022-01-26 23:43:43 -03:00
Pablo Correa Gómez
7c91fc1400 datetime: get month_label from GtkFlowBox widget
Using g_date_time_format to get the name of the month
translates the name according to LC_TIME. This is inconsistent
with all other labels displayed, which get translated according
to LC_MESSAGES. By taking the label from the corresponding
entry in the GtkFlowBox, we avoid the incosistency

Fixes #1507
2022-01-25 11:42:41 +00:00
Georges Basile Stavracas Neto
4300a4a290 panels: Use new CcPanel helpers for title widgets
This should significantly simplify these panels, by not forcing
them to override GObject.constructed all the time. Most panels
were quite straightfoward.
2022-01-20 02:23:42 +00:00
Christopher Davis
24fbb5e49a cc-datetime-panel: Use AdwComboRow
The API is nicer, and it's the recommended widget to use
for dropdown rows.
2022-01-06 11:47:10 -08:00
Christopher Davis
0a5515463d cc-datetime-panel: Use AdwPreferencesGroup
Lets us get rid of our manual listboxes.
2022-01-06 11:42:08 -08:00
Christopher Davis
d3756aaf26 cc-datetime-panel: Move activation handling to rows 2022-01-06 11:42:08 -08:00
Christopher Davis
3b90e5b43f cc-datetime-panel: Set activatable-widget on rows with switches 2022-01-06 11:42:08 -08:00
Christopher Davis
52a32574fb cc-datetime-panel: Remove keynav-failed handling 2022-01-06 11:42:08 -08:00
Georges Basile Stavracas Neto
c6dd59f378 datetime: Port to GTK4
Of particular relevance, the timezone map was massively cleaned up.
It is much more pleasant to use now.
2021-12-14 22:34:21 -03:00
Georges Basile Stavracas Neto
6cc5bbd074 datetime: Use g_time_zone_new_identifier
g_time_zone_new() is deprecated in favour of g_time_zone_new_identifier().

g_time_zone_new_identifier() returns NULL if no matching identifier is
found, so warn and fallback to UTC in that case.
2021-07-29 23:43:29 +00:00
Mohammed Sadiq
ea821e5c3a datetime: Use content style for listbox 2021-05-19 03:25:47 +00:00
Benjamin Berg
3bf6ea7794 datetime: Improve NTP switch handling fixing update loop
We cannot simply set the state/active property of the switch without
also triggering the notify:: or state-set signals at the same time. As
such, we need to block the "set-state" handler when we update the
"state" of the switch.

Also, while at it, change the switch to react to "state-set" and only
update the "state" after we received the response from the system.

Fixes: #1299
2021-05-07 03:46:13 +00:00
Mohammed Sadiq
55ea4cabda datetime: Implement the new time-date editor dialog design 2020-09-15 03:07:41 +00:00
lionirdeadman
5b573b7e25 Seperate timezone and date controls as per recent design mockups. 2020-07-17 03:32:02 +00:00
Mohammed Sadiq
7683a09ff7 datetime: Use the new time editor 2020-06-15 04:55:39 +00:00
Benjamin Berg
8d9affbd6a datetime: Allow changing the timezone when auto-update is prohibited
When the user disables the use of location services in the privacy
panel, then the timezone will never be updated automatically. Automatic
timezone may still be enabled though, so we need to allow the user to
change the timezone when location services are disabled or when
automatic timezone updating is disabled.
2019-09-11 18:39:54 +02: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
Robert Ancell
3695c22ab5 datetime: Make .ui filename match the .c filename 2018-11-12 16:41:01 +00:00
Robert Ancell
417fc57392 datetime: Use g_signal_connect_object for all signal handlers
This ensures they wont be called when the handling object is destroyed.
Also connect all in "swapped" form for improved readability.
2018-10-18 01:13:49 +00:00
Robert Ancell
c0f41daff0 shell: Remove the lock button from the shell
Only the date time panel used it, all other panels add their own shell using
cc_shell_embed_widget_in_header which was added after the date time panel was
written. Update the date time panel to use this method.
2018-10-18 00:25:40 +00:00
Robert Ancell
6ce1a1dce6 datetime: Don't use gtk_widget_show_all
It is removed in GTK+ 4
2018-10-10 04:01:11 +00:00
Robert Ancell
216736b8dd datetime: Fix warning running callback before objects are created
The following warning occurs when the datetime panel is created:
(gnome-control-center:3173): GLib-GIO-CRITICAL **: 09:18:38.531: g_settings_get_value: assertion 'G_IS_SETTINGS (settings)' failed

This is due to the callback being called before the settings object is created
2018-10-09 20:30:16 +00:00
Petr Kubánek
89fabad809 datetime: grayout automatic timezone
Automatic timezone does not work if location sharing is disabled in privacy.

Grays out automatic timezone setting if location sharing is disabled in privacy
settings. Enable automatic timezone seting if location sharing is enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=788714
2018-09-11 02:11:44 +00:00
Robert Ancell
dd61d98ec5 datetime: Move callbacks into .ui file 2018-06-01 20:35:30 +00:00
Robert Ancell
6a72e73d0c datetime: Use GtkTemplate 2018-05-29 16:34:28 +00:00
Benjamin Berg
c2f601a9d4 Move common panel code from shell/ to panel/common
This creates a new static library called libwidget which the shell links
against.
2018-04-17 15:26:59 +02:00
Dominique Leuenberger
5a66372deb datetime: Allow changing the timezone if polkit says so
As changing the time can have security implications, such as expiring
passwords, while changing the timezone doesn't, it's not unusual to
have a setup where org.freedesktop.timedate1.set-timezone is allowed
while other time-related actions aren't.

Therefore, if org.freedesktop.timedate1.set-timezone is allowed, there's
no reason to require that the user unlocks the panel to enable them to
change the timezone.

https://bugzilla.gnome.org/show_bug.cgi?id=646185
2018-01-26 11:07:59 -02:00
Robert Ancell
d71f705d77 datetime: Use g_auto for variables
https://bugzilla.gnome.org/show_bug.cgi?id=788221
2018-01-18 12:30:37 -02:00
Robert Ancell
e779a30927 datetime: Use G_DEFINE_TYPE 2017-09-26 20:20:45 -04:00
Silvère Latchurié
c890872843 datetime: Fix the style of the date/time selection dialog
Fix the size of the AM/PM button. Add padding to the time widgets and to the panel.

https://bugzilla.gnome.org/show_bug.cgi?id=778146
2017-05-17 17:30:07 +02:00
Bastien Nocera
85cd910af5 datetime: 12h time format is now always available
Following a change in GDateTime, AM/PM format is now always available
even if the support is missing in the locale used.

Remove the code used to detect AM/PM support in the locale, and bump the
GLib requirements to the version that includes this GDateTime change.

See https://bugzilla.gnome.org/show_bug.cgi?id=761889

https://bugzilla.gnome.org/show_bug.cgi?id=780863
2017-04-03 11:32:43 +02:00
Bastien Nocera
ac59708d3f datetime: Fix incorrect sensitivity when permission is missing
When the permission is missing, we shouldn't make the rows sensitive.

https://bugzilla.gnome.org/show_bug.cgi?id=709774
2015-07-10 17:14:02 +02:00
Bastien Nocera
6279dcd0a6 datetime: Respect the date endianess
When the user changes the date, order the widgets in the same order as
how the date is printed in that locale.

https://bugzilla.gnome.org/show_bug.cgi?id=750799
2015-06-30 15:00:07 +02:00
Bastien Nocera
d7bda0bc2e datetime: Don't hard-code font size
Use a percentage instead.

https://bugzilla.gnome.org/show_bug.cgi?id=735973
2014-09-03 18:04:58 +02:00
Bastien Nocera
2ae2eabe2f datetime: Fix crash when setting year to 0
https://bugzilla.gnome.org/show_bug.cgi?id=735352
2014-09-01 14:43:51 +02:00
Stanislav Brabec
98916a60f8 datetime: Make punctuation translatable
https://bugzilla.gnome.org/show_bug.cgi?id=732585
2014-07-15 15:12:04 +02:00
Bastien Nocera
92134ee21b datetime: Use new listbox helpers
https://bugzilla.gnome.org/show_bug.cgi?id=732106
2014-06-24 11:35:30 +02:00
Michael Catanzaro
c8654808c2 datetime: check CanNTP when initializing the panel
If the system does not support NTP (as determined by the presence of an
NTP unit in /usr/lib/systemd/ntp-units.d), the Automatic Date & Time row
is intended to be hidden. We respond to changes to timedated's CanNTP
property, but we never account for the initial state of the property,
so we wind up displaying the Automatic Date & Time row even though the
switch is guaranteed to be broken.

Check CanNTP when initializing the panel to fix this.

https://bugzilla.gnome.org/show_bug.cgi?id=732021
2014-06-23 11:50:34 -05:00
Yosef Or Boczko
576acc1602 datetime: Use header bar in the datetime and the timezone dialogs
The seatch entry in the timezone dialog is moved to the
title of the header bar.

https://bugzilla.gnome.org/show_bug.cgi?id=724299
2014-04-28 17:29:17 +03:00