Commit Graph
140 Commits
Author SHA1 Message Date
Titouan Real 5ed9f469b0 time-selector: Port GtkDropdown to AdwToggleGroup 2024-12-16 17:42:26 -03:00
Titouan Real ca32033c60 event-editor: Use new rows for date and time
Make the event editor use GcalTimeChooserRows and GcalDateChooserRows to
prompt the user.
2024-12-16 17:41:39 -03:00
Titouan Real a37b0551ea event-editor: Create GcalDateChooserRow
Create a new GcalDateChooserRow widget from AdwEntryRow that parses the
entry into a date, or lets the user pick a date from a popover.
2024-12-16 16:12:54 -03:00
Titouan Real 569233f948 event-editor: Create GcalTimeChooserRow
Create a new GcalTimeChooserRow widget from AdwEntryRow that parses the
entry into a time, or lets the user pick a time from a popover.

[feaneron] Improved code style, reworked regex management.
2024-12-16 15:54:32 -03:00
Titouan Real f7d6a3dc9b Event Editor: cleanup 2024-11-29 11:26:35 +01:00
Georges Basile Stavracas Neto f227055122 event-editor/dialog: Use action in the Save / Done button 2024-11-28 09:11:52 -03:00
Georges Basile Stavracas Neto 363dd585df event-editor/dialog: Switch to GSimpleActionGroup 2024-11-28 09:11:51 -03:00
Titouan Real 69de2e6c3f EventEditor: Add shortcuts 2024-11-19 18:57:08 +01:00
Georges Basile Stavracas Neto 5283bfe546 event-editor/dialog: Compose calendars model
Currently we only show writable calendars in the calendar row, but
for read-only events, the read-only calendar must be selected. But
that's impossible because it's not in the model.

Change the model to a flattened list as follows:

+ FlattenListModel -----------+
|                             |
| + writable calendars -----+ |
| |                         | |
| | - Calendar 1            | |
| | - Calendar 2            | |
| | - Calendar 3            | |
| | [...]                   | |
| |                         | |
| +-------------------------+ |
| + read-only calendars ----+ |
| |                         | |
| | - Calendar 1            | |
| | [...]                   | |
| |                         | |
| +-------------------------+ |
+-----------------------------+

The read-only calendars list only ever has 1 item: the calendar
of the current event, and only if the event is in a read-only
calendar.
2024-11-08 17:38:10 -03:00
Georges Basile Stavracas Neto 1354467dc1 event-editor/dialog: Bind sensitive to writable property
So that the row is insensitive for read-only calendars.
2024-11-08 17:37:28 -03:00
Titouan Real aca797d192 Remove GcalCalendarRow 2024-11-08 19:09:56 +01:00
Titouan Real 923cb668da Make GcalEventEditor use GcalCalendarComboRow 2024-11-08 19:09:56 +01:00
Automeris naranja 061c027520 event-editor-dialog: Use an AdwBanner when a calendar is read-only
Using a tooltip to inform when the calendar is read-only won't
work in touch devices.

This change also improves a11y, as Orca now reads this message,
something that wasn't happening before.
2024-10-22 11:29:53 +00:00
Hari Rana 26d34930b6 event-editor: Only list writable calendars 2024-08-23 13:46:00 -03:00
Diego Iván 0af5ffc334 event-editor-dialog: Use GcalCalendarRow to display calendars
Use the widget to display calendars and distinguish whether
they are visible or not. Currently, it does not distinguish
read-only calendars, but once !494 is merged, it should not
be a problem.
2024-08-11 23:35:42 +00:00
Diego Iván 1d418ce1ba event-editor: Introduce GcalCalendarRow
This widget displays the calendar and shows whether it is
visible or not. The widget displays the color of the calendar
at the left of the label and the visibility state at the right.
2024-08-11 23:35:42 +00:00
Abdullahi Usman 1e3acba3cb date-chooser: fix some events randomly disappearing
because days starts at 01:01:01 (HH:MM::SS), some events at the start
or end of day may be push into another day or back into previous day.
day should starts at 00:00:00 and previous day should stop at 23:59:59.

fixes:
https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1255
2024-07-21 23:03:43 +01:00
Dimitrios Christidis 5dbf0c24bd event-editor: Introduce reminder at event start time 2024-07-09 19:54:03 +00:00
Abdullahi Usman d8e2fd6d81 reminders-section: make alarm sound changes persistent
When the alarm sound changes, the change is not updated because
gcal-manager does not see the changes.

We now update the components and make more comparisons so that
it can be seen by gcal-manager
2024-07-09 19:47:13 +00:00
Abdullahi Usman 420a126ddb reminders-section: fix reminder alarm toggle button states
Alarm toggle state are in three stages because we do not update both
icon and active when pressed.

we now update the icons to match their states.
2024-07-09 19:47:13 +00:00
Jean-François Fortin Tam b547db1170 event-editor: Demystify the read-only padlock icon
Non-technical users may not realize why they can not edit some events
from read-only subscribed remote calendars.

A symbolic padlock icon does not suffice to make this obvious.
This tooltip makes the UI self-documenting, and improves accessibility.
2024-05-01 15:01:39 +00:00
Alice Mikhaylenko 6a27049c93 event-editor-dialog: Port Delete Event button to AdwButtonRow 2024-05-01 13:47:16 +00:00
Alice Mikhaylenko a74e7179c1 reminders-section: Port Add Reminder row to AdwButtonRow 2024-05-01 13:47:16 +00:00
Jean-François Fortin Tam 704c0815a1 event-editor: Focus "Done" for read-only events
In commit 1494f7407, we focus the summary entry when opening the dialog.
However, this prevents the Escape keyboard shortcut from working
when opening a read-only event after having opened a writable event.

Set focus onto the "Done" button when showing a read-only event,
as it's the only widget that can be activated/clicked in this situation.

This makes the "Escape", "Spacebar" and "Enter" keyboard shortcuts work.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1180
2024-04-26 12:54:59 +00:00
Georges Basile Stavracas Neto cbe89a9daa gui/event-editor: Rework calendars menu
Use a GtkListBox and bind from the model. Create rows from the model
items, and bind properties as needed.

The action target is set only when the calendar is writable because
setting an invalid action+target pair makes the row insensitive.

Remove the ancient menu icon hack.
2024-03-01 00:39:42 -03:00
Georges Basile Stavracas Neto 4795999092 Revert "event-editor: Revert "New Event" string back to "Unnamed Event""
This reverts commit 18da9c9f3b.
2024-02-25 14:32:07 -03:00
Georges Basile Stavracas Neto 18da9c9f3b event-editor: Revert "New Event" string back to "Unnamed Event" 2024-02-25 13:18:06 -03:00
Hari Rana ddb54c8c1c event-editor: Improve event name validation handling
- Fix a bug where clicking the "Add Event" button created an empty title in the event editor dialog.
- Add "error" class when the user writes an invalid event name.
- Add new function to validate event name.

Because the sections are split into files, the event editor will need a signal to check that each section is correct, and each section will have to emit the signal. This will need to be done in a future commit.
2024-02-25 08:55:17 -05:00
Hari Rana 1494f7407f summary-section: Grab focus on summary entry when opening dialog
Due to an unintentional behavior change from AdwWindow to AdwDialog, the entry row must be focused after the dialog is displayed.
2024-02-24 22:53:54 +00:00
Jean-François Fortin Tam 1ae6fbb637 event-editor: Fix widgets groups sensitivity sync
A side-effect of changing the default "writable" state in commit 06b3c38
is that we must ensure that all the widget groups are synced with it.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1178
2024-02-23 17:13:01 -05:00
Jean-François Fortin Tam 06b3c38db8 event-editor: Fix the "Save" / "Done" button label
The "Done" button was apparently meant for read-only events,
while the "Save" action was for everything else.
It didn't work correctly because of a mismatch between code and UI XML.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1142
2024-02-23 16:19:40 +00:00
Monster 3733d11380 general: Correct strings to comply with GNOME HIG 2024-02-14 14:55:36 +00:00
Georges Basile Stavracas Neto 26c71e18f6 event-editor: Use adw_dialog_close() to hide 2024-01-27 12:53:10 -03:00
Georges Basile Stavracas Neto df8526f471 event-editor: Cleanup some code
Remove the constructed() override, we can do that in init().
2024-01-27 12:40:23 -03:00
Georges Basile Stavracas Neto b52b27eace event-editor: Turn into an AdwDialog 2024-01-27 12:38:35 -03:00
Hari Rana 315d47350f summary-section: Use AdwEntryRow class 2023-12-17 22:33:34 +00:00
Hari Rana 57cb3a7650 alarm-row: Remove GtkBox
Uses valign in all buttons, instead of using GtkBox
2023-12-14 00:11:56 +00:00
Georges Basile Stavracas Neto 1043917ecf event-editor/time-selector: Don't change dropdown on callback
The 'update_time' function shouldn't try to update the dropdown,
as it is actually invoked by the dropdown itself. This causes a
cyclic loop with signal emission.

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1133
2023-12-13 19:41:41 -03:00
Georges Basile Stavracas Neto 3b9bf55dd5 event-editor/time-selector: Properly diff times
Helps: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1133
2023-12-13 19:41:41 -03:00
Felipe Kinoshita fc48929233 gcal-time-selector: Use GtkDropDown
GtkComboBoxText is deprecated, let's port it to the recommended Widget.
2023-11-25 11:51:10 -03:00
Georges Basile Stavracas Neto a944aafa00 gui/date-chooser: Use translated weekday abbreviations
It matches what GNOME Shell does, and makes the app more localizable.

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1122
2023-11-17 13:47:48 -03:00
Daniel García Moreno adb56d9c29 event-editor: Do not apply section that doesn't changed
Fix https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1028
2023-11-12 21:29:07 +01:00
Georges Basile Stavracas Neto 82a6fa364e event-editor/date-selector: Use portal for week dates
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1022
2023-11-07 18:55:05 +00:00
Georges Basile Stavracas Neto da84b727b3 core/subscriber: Pass old event on update
Now that we keep precise control over GcalEvent instances, and
can use simple pointer comparisons everywhere, GcalMonthView
implemented its update function as a simple remove + add pair.

The problem is that we're not passing the old event instance,
so removals never actually happen, since the new instance is
not yet available to subscribers.

Pass old event in additio to the new one, and use it where it
makes sense.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1073
2023-08-18 10:41:41 -03:00
Hari Rana d80536c83b summary-section: Remove find-location button 2023-08-15 18:28:58 -04:00
Hari Rana 3c5a1cf870 notes-section: Disable Tab 2023-08-03 11:26:19 +00:00
Georges Basile Stavracas Neto a7f0af6e8a event-editor: Shuffle some code
Declaring the entries struct inline saves us a few
lines of code.
2023-08-02 11:03:50 -03:00
Hari Rana 21bfed06e9 schedule-section: Show date when selecting the same day next week 2023-08-02 12:38:53 +00:00
Hari Rana be337bfe70 event-editor-dialog: Various keyboard improvements
- Add Esc as shortcut to close window
- Add mnemonics for Cancel and Done buttons
2023-07-23 14:14:33 +00:00
Christopher Davis ec54dc0ba7 event-editor-dialog: Port to AdwToolbarView
All windows in an app should be using AdwToolbarView.
2023-06-18 22:44:40 -04:00