Commit Graph
50 Commits
Author SHA1 Message Date
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
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
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
Alice Mikhaylenko 6a27049c93 event-editor-dialog: Port Delete Event button 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
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
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
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 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
Christopher Davis 0c2b8261c2 event-editor-dialog: Use AdwWindow instead of GtkDialog
GtkDialog is being deprecated. Instead of using it,
we want to subclass AdwWindow. As part of this change
the content and headerbar are put together in one box.
2023-06-18 22:44:40 -04:00
Felipe Kinoshita 2805b414f8 general: Use gtk_widget_set_visible
A lot of places were using gtk_widget_show/gtk_widget_hide, but those
methods are deprecated since Gtk 4.10.

Let's use gtk_widget_set_visible instead.
2023-03-03 19:14:09 -03:00
Georges Basile Stavracas Neto 40fa82deab event-editor/dialog: Check if calendars changed too
In addition to checking if any event fields changed, check if the
caledar changed too.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/924
2023-02-06 22:48:40 +00:00
Georges Basile Stavracas Neto 502b381975 event-editor/dialog: Properly handle editing recurrent events
When a recurrent event is edited, we now are able to only offer the
MOD_ALL option when it actually will work. However, we're still left
with the problem that we end up applying the instance-specific data
onto the main event, through an old hack.

The views already aren't able to offer the MOD_ALL property, since
they all change the dates of events, but GcalEventEditorDialog can,
and it must handle that properly.

For now, do the simplest possible approach, which is: retrive the
template event and apply all properties that can be applied to it,
without letting the start and end days leak into it. We already only
allow passing MOD_ALL on situations where the dates aren't really
modified, so it should be safe.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/882
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 102346534a event-editor/dialog: Improve detection of MOD_ALL exclusion cases 2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 679a392b71 event-editor/dialog: Don't hide dialog on cancelling operation
If the user clicks the "Cancel" button, it obviously means "cancel",
so let's cancel.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 185490e272 event-editor/dialog: Don't ask mod type if event wasn't recurrent 2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 966411843a event-editor/dialog: Don't show MOD_ALL if schedule changed
We get into seriously tricky situations if we try and change the
date & time of an event with recurrency, and pass MOD_ALL. That's
because it is ambioguous *where* the change must be applied.

Don't allow selecting MOD_ALL when the scheduling of the recurrent
event changes.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/882
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto df5b9e7821 event-editor/dialog: Don't apply changes if nothing changed
This saves some cycles by not doing anything when nothing needs to
be done.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto dbd2f0df58 event-editor/dialog: Don't apply changes to readonly events
In practice this never does anything relevant, because widgets are
insensitive, but it's better not to nonetheless.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 6a5c0229b9 utils: Add boolean flag for showing MOD_ALL
This will be used by next commit to more finely control editing
of recurrent events.
2022-10-17 23:37:13 -03:00
Milan Crha 5e72aa53f2 gcal-event-editor-dialog: Use user-chosen mode in on_ask_recurrence_response_save_cb()
...to do what the user asked for.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/871
2022-10-05 15:39:57 +00:00
Adrien Plazas 6b389005e0 event-editor-dialog: Drop the useless transient_size_allocate_cb()
This drops the transient_size_allocate_cb() callback function that in
practice does nothing at all. This also fixes an error message as the
size-allocate signal doesn't exist anymore in GTK 4.
2022-05-06 08:40:26 +02:00
Georges Basile Stavracas Neto 69d320f49c event-editor/dialog: Improve calendar selection menu 2022-02-12 13:24:57 -03:00
Georges Basile Stavracas Neto 47a72f8156 event-editor-dialog: Port to new callback-based ask API 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto 0f7a0db138 event-editor/dialog: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 2139f40e67 project: Adjust color rendering to use GdkPaintable 2022-02-11 09:18:38 -03:00
Adrien Plazas 598e9814fc event-editor-dialog: Make it resizable
This also sets a reasonable default height and stops giving the scrolled
window a max height. This will allows it to fit in phone screens.
2021-10-15 16:27:09 +02:00
Georges Basile Stavracas Neto 4c24103bae event-editor-dialog: Make 'event' property read-only
It is not meant to be set externally.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto b0cdca78b1 event-editor-dialog: Unify set_event and set_event_is_new
The split is annoying, and a relic of time.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto 7e10c6d451 event-editor-dialog: Stop using response type
Using dialog responses to communicate intent to GcalWindow was always
a hack, and as the code is cleaned, it's getting increasingly annoying.

Replace this with a proper 'remove-event' signal ('delete-event' would
conflict with the equally named GTK signal), remove the custom response
types, and cleanup the code.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto 1480d7ac70 event-editor-dialog: Code cleanup
Use g_autofoo when possible; avoid allocating new strings when fetching
from GVariant; sort and reorder fields.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto c098dc7aa7 event-editor-dialog: Store sections in an array
It allows us to simplify some boring copy-pasted code.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto 3a9f9009a4 event-editor-dialog: Remove dead code
These weren't being used anywhere.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto 0f1dc88030 event-editor-dialog: Move notes to GcalNotesSection 2020-10-31 16:15:49 -03:00
Georges Basile Stavracas Neto 73cbe1f39c event-editor-dialog: Move summary to GcalSummarySection 2020-10-31 13:30:56 -03:00
Georges Basile Stavracas Neto 46aee00f65 event-editor-dialog: More schedule to GcalScheduleSection 2020-10-31 13:30:56 -03:00
Georges Basile Stavracas Neto 997f6bb671 event-editor-dialog: Move reminders to GcalRemindersSection
Move all widgetry, logic, and setup to GcalReminderSection.
2020-10-31 13:30:56 -03:00
Georges Basile Stavracas Neto f9c466a1be event-editor-dialog: Notify context when setting property
The 'context' property is set a explicit notify property, meaning we have
to manually notify it when setting it.
2020-10-31 13:30:56 -03:00
Georges Basile Stavracas Neto b4029b0c23 edit-dialog: Rename to GcalEventEditorDialog 2020-10-31 13:30:56 -03:00