Commit Graph
94 Commits
Author SHA1 Message Date
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
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
Titouan Real cf1d70e6c7 Add condition to reset 2023-05-31 12:25:36 +00:00
Cyber Phantom e2e7305971 gcal-schedule-section: Port "Repeat" to AdwComboRow
GtkComboBox is going to be deprecated in GTK 4.10.
This commit updates the "Repeat" rows in new schedule window to use AdwComboRow.
2023-04-22 10:14:22 +00: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
Jean-François Fortin Tam aa333722af Set a better default size (height and width) for the event editor dialog
These are still hardcoded instead of measuring the available space,
but it's better than nothing in the meantime.

Decent WMs size the window correctly if width/height exceed the screen.

Also, allow the Notes field to expand vertically, to fill the space.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/602
2023-01-02 16:24:44 -05:00
Milan Crha 21e5396bf5 event-editor: Fix possible use-after-free of recurrence until date
The GcalDateSelector returns an internal instance, while the 'until' date/time
is meant to be an own instance, which is freed by the GcalRecurrence instance
in its free function. That means the 'until' date/time is supposed to be reffed
when being assigned into the GcalRecurrence structure.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/892
2022-10-31 12:25:11 +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 23dedc0fc8 event-editor/schedule: Trivial autoptr cleanup 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 82d8ec31ca event-editor/sections: Add vfunc to check for changes
This will be useful for next commits where we will need to check
if the schedule section actually changed something.
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
Milan Crha 15ce841a6c gcal-date-chooser: Update also combined_choice in set_date()
Thus it's in sync with the rest of the date chooser.

Also use a common function to replace `self->date` value.

Related to https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/868
2022-10-05 15:10:47 +00:00
Florian Müllner 80d803d125 date-chooser: Update combined-choice on date changes
Otherwise the header will not reflect the active date.

https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/876
2022-10-05 14:59:22 +00:00
Christopher Davis 905128cc69 event-editor: Use AdwEntryRow 2022-07-07 12:53:22 -04:00
Adrien Plazas 051212f44b multi-choice: Fix the indentation
It was left purposefully broken in the previous commit.
2022-06-16 08:23:45 -03:00
Adrien Plazas b031c9591a multi-choice: Add the popover property
This allows a multi choice's label to be clicked to reveal a popover. It
is needed by the date chooser, to have a combined month and year choice
that can be split in two via a popover.

This leaves the indendation purposefully broken to ease reviewing the
actual changes.
2022-06-16 08:23:45 -03:00
Adrien Plazas 78931df46c date-chooser: Add the split-month-year property
This allows unifying the month and year selectors into a single month
and year selector by setting it to false.
2022-06-16 08:23:44 -03:00
Adrien Plazas db0f07136c date-chooser: Implement GcalView
This also replace the date property by the overridden active-date one
ans adds the context property.
2022-06-16 08:22:45 -03:00
Adrien Plazas 6cb57b0ad5 date-chooser: Add the show-events property
This allows showing events from the timeline via a dot.
2022-06-16 08:19:49 -03:00
Adrien Plazas b5d8575445 date-chooser: Implement GcalTimelineSubscriber
This allows the date chooser to receive events from the timeline, and
will allow it to show them via a dot.
2022-06-16 08:19:47 -03:00
Adrien Plazas 9911386706 date-chooser: Add the show-selected-week property
If enabled, the selected week will be made visible.
2022-06-16 08:16:04 -03:00
Adrien Plazas 7b5a934250 date-chooser: Use ROWS and COLS macros
This makes the code easier to read and update.
2022-06-16 08:16:04 -03:00
Adrien Plazas 54e0a5784c date-chooser-day: Add .non-workday class to the current day
This will help making the non worked days let prominent.
2022-06-16 08:15:51 -03:00
Adrien Plazas 21895416f3 date-chooser-day: Add the .today style class to the current day
This will help making the current day pop out a bit.
2022-06-16 08:14:54 -03:00
Adrien Plazas d76617f809 date-chooser-day: Automatically free the string 2022-06-16 09:29:16 +02:00
Adrien Plazas 7198ce41f9 date-chooser-day: Add the has-dot and dot-visible properties
This allows the days to display events.
2022-06-16 09:29:16 +02:00
Adrien Plazas 0ff62c4314 date-chooser-day: Always have the size of two characters
This ensures the size will be consistent for all days.
2022-06-16 09:29:16 +02:00
Adrien Plazas b5841e1100 date-chooser-day: Use the numeric style class
This ensures the digits are well aligned.
2022-06-16 09:29:16 +02:00
Adrien Plazas a58fa3deb8 date-chooser-day: Use a template
This makes the widget easier to maintain.
2022-06-16 09:29:16 +02:00
Adrien Plazas f9c4501d6c date-chooser-day: Make it a button
This stops reimplementing a flat button and use GtkButton directly
instead.
2022-06-16 09:29:16 +02:00
Adrien Plazas 24713fbb65 date-chooser: Drop the unused month-changed signal
It's never emitted or connected to.
2022-06-15 01:36:49 +00:00
Adrien Plazas 4f15556d31 date-chooser: Drop the unused no-month-change property
It's never set.
2022-06-14 22:20:57 -03:00
Adrien Plazas 13b648082f date-chooser: Drop the unused GcalDateChooserDayOptions 2022-06-15 01:05:41 +00:00
Adrien Plazas 5de0694479 date-chooser-day: Drop the unused options setter
The options are never set, so let's just drop the methods setting them.
2022-06-15 01:05:41 +00:00
Adrien Plazas 91afd1b06d date-chooser: Drop the unused day options callback
The day options callback is never set, so let's just drop it and all its
methods.
2022-06-15 01:05:41 +00:00
Abdullahi Usman 659fdca460 event-detail: Grey out already added reminder in drop-down list 2022-05-25 13:35:08 +00:00
Adrien Plazas aecfebcc9d Use gtk_widget_add/remove_css_class() where possible
This makes the code simpler and more idiomatic to GTK 4.
2022-05-10 13:01:25 +02:00
Yosef Or Boczko 301beb2534 time-selector: Put the spinbuttons in a box and force it to be LTR
#558

Signed-off-by: Yosef Or Boczko <yoseforb@gmail.com>
2022-05-06 14:09:45 +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