Commit Graph
112 Commits
Author SHA1 Message Date
Georges Basile Stavracas Neto 400eb12572 calendar-management/dialog: Update default sizes 2023-06-22 00:20:21 +00:00
Georges Basile Stavracas Neto 106655def2 calendar-management/calendars: Switch to toasts
It's time to move on from the old in-app notification style.

Switch to toasts.
2023-06-22 00:20:21 +00:00
Georges Basile Stavracas Neto 5e5eb75be0 calendar-management/new-calendar: Move add button to dialog
Move the add button from the headerbar into the dialog, make it
a pill button, and update the button label with the number of
calendars that will be added.
2023-06-22 00:20:21 +00:00
Georges Basile Stavracas Neto a13b4ae4f6 calendar-management/pages: Subclass AdwBin
It's simpler.
2023-06-22 00:20:21 +00:00
Georges Basile Stavracas Neto bdda09abb8 calendar-management: Port to AdwNavigationView
The interfacing that GcalCalendarManagementDialog had is somewhat
similar to AdwNavigationView, with pages and signaling basically
matching the same semantics.

We can save some code by switching to AdwNavigationView then, as
the heavy-lifting of page management is done there now.

The headerbar of the dialog is no more; instead, each page has its
own headerbar that automatically gets a back button.

Page activation and deactivation works essentially the same, but
uses AdwNavigationView signals to manage that.
2023-06-22 00:20:21 +00:00
Hari Rana 10be0ac7ef edit-calendar: Limit Calendar URL row to 1 line; use basename 2023-06-19 11:08:35 -04:00
Christopher Davis 5f82b1054e calendar-management: Port credentials dialog to AdwToolbarView and AdwWindow 2023-06-19 01:17:28 -04:00
Christopher Davis 93da9cee7d calendar-management: Use AdwToolbarView for main page 2023-06-18 22:58:55 -04:00
Hari RanaandJamie Murphy 7b1752bc19 edit-calendar: Port to libadwaita
Co-authored-by: Jamie Murphy <hello@itsjamie.dev>
2023-06-17 22:13:41 +00:00
Hari Rana ef88f27b4e calendars-page: Restrain borders of listbox
This restrains borders of the "Add Calendar…" row to its hitbox, making
it draw the borders accurately when increasing the size of the window.
2023-06-17 09:21:18 -04:00
Hari Rana 0a061fe6d1 new-calendar: Port to AdwEntryRow 2023-06-10 12:49:40 -04:00
Georges Basile Stavracas Neto ac526c5a22 calendar-management: Switch to GtkColorDialogButton 2023-03-16 12:30:15 +00:00
Georges Basile Stavracas Neto 4df39fa2ce calendar-manager/new: Switch to GtkFileDialog
Cleans up a few more compiler warnings.
2023-03-16 12:30:15 +00:00
Georges Basile Stavracas Neto 0e8332b07b calendar-management/new: Switch to a GtkDialog
The implementation of the credentials popover has relied on a hack,
and sadly this hack doesn't work anymore.

It's too late for a redesign, so for now, just put it into a dialog
and show it on top of the calendar management dialog.
2023-03-03 19:50:30 -03:00
Georges Basile Stavracas Neto 4f9d7de032 calendar-management/new: Dispose template 2023-03-03 19:50:30 -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
Georges Basile Stavracas Neto 4c9e7a2d03 manager: Bring back credentials 2022-06-23 13:50:20 -03:00
Milan Crha 0bd11799dc Port to libsoup3 2022-06-22 08:51:30 -03:00
Cleo Menezes Jr 0fa383a14a new-calendar-page: fix Calendar files are not shown 2022-06-22 01:26:50 -04: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
Georges Basile Stavracas Neto b1781146b7 calendar-management/page: Port to GTK4
Just switch to include adwaita.h
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 27659cf4fb calendar-management/new-calendar-page: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 5ee03040c5 calendar-manager/edit-calendar-page: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 41ba168250 calendar-management/calendars-page: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 2b834b27ff calendar-management-dialog: Port to GTK4
Subclass AdwWindow. Adjust the API to return GtkHeaderBar
instead of HdyHeaderBar.
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto f1ac400e5d Drop gnome-online-accounts dependency
We don't need it anymore.
2021-10-13 13:48:09 -03:00
Georges Basile Stavracas Neto aec1d8d5cd calendar-page: Add rounded corners to listbox 2021-08-06 17:37:40 -03:00
Georges Basile Stavracas Neto 8c71c60e8d calendar-management: Switch to HdyWindow
Make GcalCalendarManagementDialog an HdyWindow subclass,
and adapt the widgetry to work with the new parent class.

Use HdyHeaderBar everywhere.
2021-08-06 17:32:58 -03:00
Eric Daigle a93ae8778a new-calendar-page: add callback for new calendar color chooser
The color chosen in the new calendar page is currently ignored
when creating a new calendar, as described in #681.

Added a callback similar to that used for the name text entry,
allowing new calendars to be created with the chosen color.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/681
2021-02-14 16:01:11 +00:00
Georges Basile Stavracas Neto 92863f578f project: Split GResource files in subdirs 2020-10-30 14:17:40 -03:00
Georges Basile Stavracas Neto eb954505e4 project: Split meson files in subdirs
It allows us to better control what each subdir does, etc. This is
only the first step; we want to also split GResources, etc.
2020-10-30 13:45:50 -03:00
Michael Catanzaro 26897f89a2 Revert "new-calendar-page: add support for webcal:// links"
This reverts commit 8520e1819c
2020-04-02 15:30:35 +00:00
Michael Catanzaro 8520e1819c new-calendar-page: add support for webcal:// links
Turns out, all we have to do is rewrite the URL to https://. I'm
surprised this works, but I don't see any problems with it. I tested
subscribing to webcal://www.gnome.org/start/unstable/schedule.ics.

See also: #481
2020-04-02 03:09:06 +00:00
Michael Catanzaro 7a3db413e9 new-calendar-page: properly track state of URL entry and Add button
Currently, when the user enters an invalid URL -- a URL that does not
pass SoupURI's URI format validation -- then we set the error style
class on the URL entry to turn the border of the entry red. For example,
if I try to enter "dog" then GNOME Calendar catches this and flags the
entry as red.

But there are some problems.

First of all, GNOME Calendar doesn't do anything to prevent users from
entering URLs that are syntatically valid but not usable as calendars.
The code knows whether the URL was successfully parsed as a calendar
file, it just doesn't do anything with this information. So there is no
red warning if I try to use https://example.com as a calendar, even
though the dialog knows that it didn't work.

Secondly, GNOME Calendar allows pressing the Add button even if the URL
entry contains invalid input, but only if the Calendar Name has been
entered. The dialog thinks: "if I have a name, but not a valid URL, then
the user wants to create a new, empty local calendar!" But this is not
right. If the user has typed anything in the URL entry, then the goal is
to import a new calendar, not to create a new one.

This commit changes set_url_entry_error() into update_url_entry_state(),
and gives it responsibility for updating the add button sensitivity and
URL entry pulsing in addition to the URL entry style class, solving both
of the above problems.

As a side effect, this also closes a race window where the Add button
remains sensitive for half a second after typing new text in the URL entry.
At this point, we don't yet know whether the URL is valid, because we
wait half a second before validating the URL, so we shouldn't allow the
user to activate the Add button during this race window.

Fixes #481
2020-04-02 03:09:06 +00:00
Michael Catanzaro bba6c60c32 new-calendar-page: improve URI validity check
This check passes if the URI is empty. Normally this callback only runs
when there is text in the URL entry, but there is a race window where
the user could delete it first. (Passing NULL to a SoupURI creates an
invalid non-NULL empty URI that can be filled in later.)
2020-04-02 03:09:06 +00:00
Georges Basile Stavracas Neto 6586c8738c calendars-page: Add already connected calendars on startup
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/479
2020-04-01 23:10:01 -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
Michael Catanzaro 18ae67cb59 Use more g_signal_connect_object()
Most of these are probably paranoid, not bugs. I haven't done an
exhaustive review to see what really needs it: that would be
time-consuming and require significant familiarity with the Calendar
codebase. This was just a quick check. Anyway, I vote for paranoid
when it comes to using g_signal_connect() regardless. It's dangerous,
and there's no reason to ever leave a signal connected after the user
data object has been destroyed.

Fixes #423
2019-09-14 23:28:42 +00:00
Georges Basile Stavracas Neto 9aec1c097d new-calendar-page: Properly cleanup sources
We can't control a widget's property at destruction time.
Cleanup the sources directly.
2019-07-13 20:07:30 -03:00
Georges Basile Stavracas Neto f0060b7699 new-calendar-page: Use the new discoverer
The new discoverer is a vast improvement over the code
that use used to have here. Right now, we fail to use
Soup to detect the URL, and that's been reported multiple
times already.

Use the new web discoverer code, and adjust the UI to
match the new code. Namely, use a GtkPopover to show
the credentials widget.

Fixes #380
2019-07-13 16:04:31 -03:00
Georges Basile Stavracas Neto 33fc75ca01 calendar-management-page: Pass GcalCalendar 2019-06-25 14:16:47 -03:00
Georges Basile Stavracas Neto 47bed7bc77 new-calendar-page: Restore opening Online Accounts panel from label 2019-06-25 12:51:14 -03:00
Georges Basile Stavracas Neto 0f28e3fa53 new-calendar-page: Implement new designs
This looks soooooo much better =)

https://gitlab.gnome.org/GNOME/gnome-calendar/issues/388
2019-06-24 21:33:00 -03:00
Georges Basile Stavracas Neto 7da3197186 calendars-page: Remove previously deleted calendar if any
It is possible to delete a calendar, and immediately delete another.
When that happens, both should be deleted.
2019-06-24 21:33:00 -03:00
Georges Basile Stavracas Neto 39ebc5457a calendars-page: Fix callback parameters 2019-06-24 21:33:00 -03:00
Georges Basile Stavracas Neto e53a7532f2 calendars-page: Use the passed calendar for deletion 2019-06-24 21:33:00 -03:00
Georges Basile Stavracas Neto 10e10f6605 edit-calendar-page: Silence warning 2019-06-24 21:32:59 -03:00
Georges Basile Stavracas Neto 170347b016 calendar-management-dialog: Trivial style cleanup 2019-06-24 21:32:59 -03:00
Georges Basile Stavracas Neto efa29b19d5 calendars-page: Use switch to toggle visibility 2019-06-24 21:32:59 -03:00