Commit Graph
54 Commits
Author SHA1 Message Date
Victoria Lacroix aec45594f9 gcal-utils: Combine GNOME Settings launchers
This refactor combines the functions
gcal_utils_launch_online_accounts_panel and
gcal_utils_launch_datetime_settings_panel into a single function that
takes a panel ID as an argument.
2023-07-15 23:04:51 +00:00
Victoria Lacroix 3526cadcca gcal-window: datetime settings shortcut
Shortcut is added so that time-related system settings can be easily
accessed. See #1023

The code is largely just a copy-paste of the code that opens the
"Online Accounts…" menu.

Fixes #1023
2023-07-15 23:04:51 +00:00
Christopher Davis 34bf2f8e50 window: Use AdwNavigationSplitView and AdwBreakpoint
Replaces our leaflet with the new AdwNavigationSplitView
widget and AdwBreakpoint.
2023-06-17 20:18:07 +00:00
Christopher Davis 5b528032db window, toolbar-end: ToolbarEnd Fixes
* Use the sidebar's search entry for search shortcut when folded
* Set context on the sidebar's search entry
* Drop context GtkExpression from gcal-toolbar-end.ui
2023-06-17 20:18:07 +00:00
Georges Basile Stavracas Neto 3c672e0784 Move sync indicator into a separate widget
And move the new widget into the headerbar itself, instead of
the calendars button.
2023-05-23 19:01:19 -03:00
Georges Basile Stavracas Neto 9ea2ceef1a gui: Fix search from Shell overview 2023-03-05 11:53:50 -03:00
Georges Basile Stavracas Neto d6a216d0fa gui: Propagate context to GcalSearchButton
The people who introduced this code were not careful enough to
make sure the code they removed from GcalWindow was added back
in GcalToolbarEnd.

They also simply commented out some code instead of properly
reimplementing that.

I regret having trusted their code :(

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/880
2023-03-05 11:41:35 -03: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
Ray Strode 184d77ef4d window: Fix crash in toast animation
Every once in a while when I'm deleting an event gnome-calendar crashes.

I dug in a bit, and it seems the reason is
adw_toast_overlay_add_toast takes ownership of the passed in reference.

This is a little idiosyncratic for something that's not GInitiallyUnowned,
but it appears to be the API nonetheless.

GCalWindow assumes it owns the reference.

This commit makes both users of the toast happy by adding a ref call.
2022-10-14 13:38:03 -04:00
Milan Crha 8138619419 gcal-window: Event deletion aborts unfinished previous delete attempt
Cannot use g_clear_pointer() here, because it unsets the pointer first and
only then calls the free function, which means the test on self->delete_event_toast
NULL-ness would be satisfied in the on_toast_dismissed_cb(), thus the previous
event delete attempt would be "cancelled" internally.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/858
2022-10-05 18:44:25 +02:00
Christopher Davis a53787457e window: Use two today buttons instead of moving
This fixes an issue that caused flickering as the window
approached a size where it could fold.
2022-08-12 03:00:08 +00:00
Christopher Davis 04ead5fe85 window: Update today action enabeld state instead of button sensitivity
Button sensitivity is automatically updated with action state.
By taking advantage of this we can use the `win.today` action
on multiple buttons without needing to update every button.
2022-08-12 03:00:08 +00:00
Christopher Davis 9444d998ff general: Use GcalToolbarEnd for toolbars
For the sake of smooth adaptivity, we need the toolbar buttons
to be constant in both modes instead of moving places from one
mode to another. Instead of duplicating these groups of
buttons, we can refactor them into an object for toolbars
and use them in multiple places.

This commit takes the widgets from the end of the header bar and
creates `GcalToolbarEnd`, which is used in the header bar and the
mobile action bar.
2022-08-12 03:00:08 +00:00
Christopher Davis 78d9dd1e8e window: Move action widgets at small widths
Moves the action widgets (Today, New Event, Search) to an
action bar when the window shrinks.
2022-08-12 03:00:08 +00:00
Adrien Plazas 40ce81f81a Use the Libadwaita style loading mechanism
This simplifies the code and will help support the dark and high
constrast variants.
2022-06-22 12:49:38 +00:00
Adrien Plazas 54a8445abb window: Drop the back and forward buttons
They aren't needed anymore as we have a date chooser, and they are
absent from the new design.
2022-06-16 08:34:27 -03:00
Adrien Plazas a3f21be8b4 window: Add a sidebar with a date chooser and an agenda
This starts implementing the sidebar of the new design.
2022-06-16 08:34:27 -03: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
Adrien Plazas 7764cb7278 window: Drop the year view
We don't need it anymore since we have the date chooser, and it's absent
from the new design.
2022-05-06 20:28:48 +02:00
Georges Basile Stavracas Neto 87e376b15b window: Add more tracing 2022-02-12 18:13:20 -03:00
Georges Basile Stavracas Neto f47e222037 window: Uncomment accidental leftover 2022-02-12 16:56:41 -03:00
Georges Basile Stavracas Neto ad0a97d6ac Rework calendar popover to be a button
This allows more precise control of the style and the contents
of the popover.
2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto e3196644bb window: Port to GTK4
Subclass AdwApplicationWindow.
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 8f715c19b5 application: Move CSS providers to GcalWindow 2021-09-05 18:34:32 -03:00
Georges Basile Stavracas Neto 229b6f7add window: Silence a compilar warning 2021-09-05 18:07:27 -03:00
Georges Basile Stavracas Neto 440bb39498 window: Add weak pointer to import dialog
Otherwise we crash the second time it's opened.
2021-08-16 19:07:35 -03:00
Georges Basile Stavracas Neto e689f18b1e Add file importing dialog
Add a file importing dialog, and pass through files received from command
line.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/5
2021-08-16 18:26:21 -03:00
Georges Basile Stavracas Neto 68160348dc Introduce GcalEventPopover
GcalEventPopover gives a preview of the event, and handy access
to the event description and information. It also allows easily
joining meetings if any one if available.

The list of supported meeting URLs is small now, but I hope
more people will contribute as we go.

It is also possible to edit the event through an edit button.
2021-06-27 18:45:12 -03:00
Johannes Maibaum 78d0df1404 window: Remove nested CLAMP() on switching views 2021-04-11 19:06:38 +02:00
Johannes Maibaum 4c51539168 window: Fix GcalWindow's change-view accelerators
Commit 2d5b1aa9d1 removed the
GCAL_WINDOW_VIEW_DAY variant of the GcalWindowView enum. Since then, the
change-view accelerators to switch to GCAL_WINDOW_VIEW_{WEEK,MONTH,YEAR}
were broken, as the accelerator setup was assuming
GCAL_WINDOW_VIEW_WEEK==1, which isn't true anymore with
GCAL_WINDOW_VIEW_DAY being gone.

This change fixes the enum values in the accelerator setup.
2021-04-11 19:06:05 +02:00
Georges Basile Stavracas Neto a146b9050d project: Silence CI warnings 2020-10-31 16:55:06 -03:00
Georges Basile Stavracas Neto 968ae16e08 window: Use leaf type for GcalEventEditorDialog
We're casting either way, to at least let's cast to something
that requires fewer characters.
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 b4029b0c23 edit-dialog: Rename to GcalEventEditorDialog 2020-10-31 13:30:56 -03:00
Evangelos Ribeiro Tzaras 402ad34f42 window: Inherit from HdyApplicationWindow
This commit makes the toplevel GcalWindow inherit from
HdyApplicationWindow instead of GtkApplicationWindow.
2020-09-16 15:24:46 +00:00
Evangelos Ribeiro Tzaras 2d5b1aa9d1 project: Cleanup code for unused views
Got rid of the unused views in the GcalWindowView enum
and associated code in gcal-window.
2020-09-16 15:24:46 +00:00
Georges Basile Stavracas Neto fa0173e174 window: Remove subscribers on destroy 2020-04-01 23:10:01 -03:00
Georges Basile Stavracas Neto 399b9d8d00 Simplify calendar views
We don't need a split subscription update step in GcalView
anymore, since subscribers communicate range directly to
the timeline now.
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto b772349c3f Move UI files to src/
Keep it in sync with what To Do and Settings do.
2019-12-02 16:41:56 -03:00
Georges Basile Stavracas Neto 357ec18a0a Fix GcalContext management
GObject automatically notifies when passing
properties as part of g_object_new(). This
happens after the instance is created, thus
after constructed().

By passing G_PARAM_EXPLICIT_NOTIFY, we avoid
this behavior. However, we are still notifying
PROP_CONTEXT in GcalWindow. Removing this other
notify fixes the crashes related to GcalContext.

https://gitlab.gnome.org/GNOME/gnome-calendar/issues/417
2019-10-04 20:54:05 -03:00
Christopher Davis 0aa9e42016 flatpak: Add development styling to window
Adds .devel style class to the main window for development
builds of Calendar.

Related to https://gitlab.gnome.org/GNOME/gnome-calendar/issues/285
2019-09-30 12:04:08 -03:00
Georges Basile Stavracas Neto 5e4bbe446f utils: Pass GcalCalendar to ask_recurrence_modification_type()
The method ask_recurrence_modification_type() currently
receives an ESource, and tried to fetch the ECalClient
from the ESource by using g_object_get_data().

However, since we moved to GcalCalendar, we do not set
this data field in ESource.

Receive a GcalCalendar instead, and use the appropriate
function gcal_calendar_get_client() instead.
2019-09-14 21:38:53 -03:00
Georges Basile Stavracas Neto 22596db1d1 window: Readd <Ctrl>n shortcut
https://gitlab.gnome.org/GNOME/gnome-calendar/issues/383
2019-09-13 18:49:05 -03:00
Georges Basile Stavracas Neto c092445363 calendar-management: Shuffle code around and cleanup 2019-06-24 21:32:59 -03:00
Georges Basile Stavracas Neto 4088b8b6bb source-dialog: Rename to GcalCalendarManagementDialog 2019-06-24 21:32:44 -03:00
Georges Basile Stavracas Neto 7217f9fa53 window: Add "Online Accounts..." button 2019-06-24 21:32:44 -03:00
Milan Crha a0cae4356a Port to libecal-2.0
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/merge_requests/70
2019-05-17 21:58:55 +02:00
Georges Basile Stavracas Neto 0639b4e7ae window: Show a spinner while synchronizing 2019-05-10 13:04:33 -03:00
Georges Basile Stavracas Neto 79eea9376b window: Add new event button
As per the latest mockups [1]

[1] https://teams.pages.gitlab.gnome.org/Design/web-experiments/calendar/headerbar
2019-05-09 17:42:59 -03:00