Commit Graph
100 Commits
Author SHA1 Message Date
Georges Basile Stavracas Neto 151c47a8b3 Bump 3.35.0 2019-09-30 12:03:36 -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 9644c30eee date-time-utils: Fix weekday calculation
GNOME Calendar needs to deal with two different
weekday ranges:

 1. Sunday → 0 ... Saturday → 6
 2. Monday → 1 ... Sunday → 7 (used by GDateTime)

When converting (2) into (1), the correct calculation
is `weekday % 7`.

However, gcal_date_time_get_start_of_week() was doing
`weekday - 1` instead.

Fix it and do the correct calculation instead.

https://gitlab.gnome.org/GNOME/gnome-calendar/issues/451
2019-09-14 11:14:01 -03:00
Georges Basile Stavracas Neto 450aa5e158 log: Remove g_get_current_time 2019-09-14 10:46:14 -03:00
Georges Basile Stavracas Neto e39bd95c87 log: Use g_autofree 2019-09-14 10:39:38 -03:00
Georges Basile Stavracas Neto 43f5de8a0c main: Trivial style cleanup 2019-09-13 18:53:13 -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 5b49c4fc46 3.34.0 2019-09-09 12:31:13 -03:00
Georges Basile Stavracas Neto 666679f123 year-view: Remove stray message 2019-08-25 17:57:48 +03:00
Georges Basile Stavracas Neto f81320bdd1 3.33.4 2019-07-16 21:30:31 -03:00
Georges Basile Stavracas Neto 75d24803ed tests: Temporarily disable discoverer test 2019-07-16 21:30:31 -03:00
Georges Basile Stavracas Neto 00e883ca63 year-view: Optimize sidebar update
Use the cached events to fill the sidebar, instead of
querying e-d-s every time we need an update.
2019-07-13 20:44:27 -03: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 b49486d0f9 calendar: Disconnect from the visible signals as well
Missed from the initial implementation.
2019-07-13 19:54:47 -03:00
Georges Basile Stavracas Neto 07acf540ae calendar: Disconnect from the correct object
The name changed signal comes from the ESource, not
the extension.
2019-07-13 19:54:17 -03:00
Georges Basile Stavracas Neto bb2a1321be calendar: Use gulong for signal handlers
They are unsigned longs, not unsigned ints.
2019-07-13 19:52:53 -03:00
Georges Basile Stavracas Neto 1d6dee8bbb manager: Avoid reentrancy
While deleting the calendar, we may run into a situation
where the GcalCalendar instance is destroyed before the
GcalManager:calendar-removed signal is emitted, causing
us to emit the signal with a destroyed object.

Prevent that by increasing the ref count before emiting
the signal.
2019-07-13 19:51:02 -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 ff0644ad76 utils: Add auxiliary function to format display names
This will be used by the web source discoverer to format
any URLs that contain a file name in their path.
2019-07-13 16:04:31 -03:00
Georges Basile Stavracas Neto 371fdbc881 Introduce new source discoverer
The new source discoverer is a complete overhaul of
the current code. It is async-only, correctly threaded,
and easier to maintain.

A major new feature of this web source discoverer is
that it now pings the server to see if the URL feeds
us back with an iCalendar file.

Furthermore, it continues to use E-D-S WebDAV discovery
functions as a fallback mechanism.

Fixes #380
2019-07-13 16:04:30 -03:00
Georges Basile Stavracas Neto 2aa9bc1f61 tests: Add calendar server and tests
This will be used to write a propert test suite
for the new calendar discoverer code.
2019-07-13 16:04:30 -03:00
Georges Basile Stavracas Neto 54690e285a build: Improve test generation 2019-07-13 16:04:30 -03:00
Georges Basile Stavracas Neto 02a5eca945 weather-service: Reorganize file 2019-07-09 21:47:14 -03:00
Georges Basile Stavracas Neto 8a98c697c4 week-header: Trivial style cleanup 2019-07-09 21:24:58 -03:00
Georges Basile Stavracas Neto c62bb2eb95 flatpak: Reorder some sources
Small cosmetic change.
2019-07-09 21:24:58 -03:00
Georges Basile Stavracas Neto 0b4119367a month-view: Use last cell to calculate multday event end
Instead of assuming all cells have the same width, use the last
cell to figure out the width of the event with the traditional:

    event width = end.x2 - start.x1
    event width = (end.x1 + end.width) - start.x1

https://gitlab.gnome.org/GNOME/gnome-calendar/issues/413
2019-06-26 11:04:39 -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 a95097f594 calendar-management-dialog: Remove unused signal handler 2019-06-25 12:50:48 -03:00
Georges Basile Stavracas Neto 4a7536328e new-calendar-page: Add more file filters 2019-06-25 11:42:11 -03:00
Georges Basile Stavracas Neto fcfa403902 new-calendar-page: Reenable file filter
We were blocked on a GtkBuilder issue [1].

[1] https://gitlab.gnome.org/GNOME/gtk/issues/1973
2019-06-25 11:39:06 -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 78680d9b5b search-engine: Fix wrong debug message 2019-06-24 21:32:59 -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
Georges Basile Stavracas Neto c092445363 calendar-management: Shuffle code around and cleanup 2019-06-24 21:32:59 -03:00
Georges Basile Stavracas Neto f7df717e1b edit-calendar-page: Add back button
And remove the remaining code (and a few extras) from the
calendar management dialog.
2019-06-24 21:32:59 -03:00
Georges Basile Stavracas Neto a2d15697d9 log: Increase prefix width
GcalCalendarManagementDialog is too wide and breaks the log
layout, so increase the spacing to fit it.
2019-06-24 21:32:58 -03:00
Georges Basile Stavracas Neto 5e9f7bf01e new-calendar-page: Add "Cancel" and "Add" header buttons 2019-06-24 21:32:58 -03:00
Georges Basile Stavracas Neto 804479ebcc calendar-management-page: Add helper to retrieve titlebar 2019-06-24 21:32:58 -03:00
Georges Basile Stavracas Neto e49ed1ed67 calendar-management: Move code to GcalNewCalendarPage 2019-06-24 21:32:58 -03:00
Georges Basile Stavracas Neto 9cc07c5786 calendar-management: Introduce GcalEditCalendarPage
This is the second of the three original pages we used to have.
This one edits calendars.
2019-06-24 21:32:58 -03:00
Georges Basile Stavracas Neto db4613ae71 new-calendar-page: Add stub page 2019-06-24 21:32:58 -03:00
Georges Basile Stavracas Neto 375b9fc53c calendar-management-dialog: Response to page switch 2019-06-24 21:32:57 -03:00
Georges Basile Stavracas Neto ad017d1709 calendars-page: Introduce GcalCalendarsPage
A page dedicated to show a list of calendars and add
new ones. Other pages will come in soon.
2019-06-24 21:32:57 -03:00
Georges Basile Stavracas Neto b2d2767131 calendar-row: Tweak margins 2019-06-24 21:32:57 -03:00
Georges Basile Stavracas Neto 831bbbdba8 calendar-management-page: Introduce new interface
This will be used by the pages of the calendar management dialog
to let it know they are actual pages, to offer an activation
mechanism, and to communicate with the dialog when they want to
switch to another page.
2019-06-24 21:32:57 -03:00
Georges Basile Stavracas Neto 4088b8b6bb source-dialog: Rename to GcalCalendarManagementDialog 2019-06-24 21:32:44 -03:00
Georges Basile Stavracas Neto c0720d0031 build: Move GcalSourceDialog to gui/calendar-management
Soon we will start populating this subfolder with many other
calendar management files, and to avoid making the gui/ folder
a mess, move source dialog to it.
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
Georges Basile Stavracas Neto 8743121f4d source-dialog: Move Online Accounts panel spawn to utils
So that it can be reused by other files.
2019-06-24 21:32:44 -03:00
Georges Basile Stavracas Neto 7ee0acdcbf source-dialog: Remove online accounts
Showing these online accounts in the dialog only added
an additional step. We'll be adding a link to online
accounts in the next commit, so for now, remove the
widgets from the source dialog.
2019-06-24 21:32:44 -03:00
Georges Basile Stavracas Neto af8d2bb969 schema: Default 'follow-night-light' to false
https://gitlab.gnome.org/GNOME/gnome-calendar/issues/401
2019-05-27 15:14:10 -03:00
Georges Basile Stavracas Neto 2be54af238 flatpak: Build less 2019-05-24 21:28:47 -03:00
Georges Basile Stavracas Neto 16f2a8a554 flatpak: Allow org.gnome.evolution.dataserver.Calendar8
The new EDS bumped its D-Bus API version.
2019-05-24 21:27:14 -03:00
Georges Basile Stavracas Neto 73ddbbdc60 window: Remove non-existing signal handler 2019-05-24 21:26:50 -03:00
Georges Basile Stavracas Neto badd1fb0f1 calendar: Fix double free
The GError is unreferenced twice.
2019-05-24 21:25:28 -03:00
Georges Basile Stavracas Neto dcdd3f6ee8 Remove stray g_message()s
Leftovers from previous commits.
2019-05-11 13:41:50 -03:00
Georges Basile Stavracas Neto ea043ab48b calendar-popover: Show success after synchronizing
https://gitlab.gnome.org/GNOME/gnome-calendar/issues/395
2019-05-10 13:45:00 -03:00
Georges Basile Stavracas Neto 198180d023 manager: Fix typo 2019-05-10 13:44:43 -03:00
Georges Basile Stavracas Neto 117d56a1c9 calendar-popover: Relabel as "Synchronize Calendars"
https://gitlab.gnome.org/GNOME/gnome-calendar/issues/396
2019-05-10 13:30:29 -03:00
Georges Basile Stavracas Neto 647c9ee2c7 calendar-popover: Adjust UI
Add a separator and remove spacing.
2019-05-10 13:15:50 -03:00
Georges Basile Stavracas Neto c5ec57f78e calendar-popover: Improve calendar settings button
Change the label to "Manage Calendars…" and make it a model
button.
2019-05-10 13:14:23 -03:00
Georges Basile Stavracas Neto 405787307c window: Move synchronize button to the calendar popover 2019-05-10 13:10:50 -03:00
Georges Basile Stavracas Neto 0639b4e7ae window: Show a spinner while synchronizing 2019-05-10 13:04:33 -03:00
Georges Basile Stavracas Neto f4c4a91465 manager: Add 'synchronizing' property
Will be useful to know if there are any clients being
synchronized.
2019-05-10 12:42:13 -03:00
Georges Basile Stavracas Neto 1c0131a55f edit-dialog: Restore time removal of all-day events
All day events have no time period. This was a fallout from
the previous commit.
2019-05-10 11:53:24 -03:00
Georges Basile Stavracas Neto 7ad0f100a7 manager: Properly bind default calendar
We need to convert from ESource to GcalCalendar.
2019-05-10 11:20:51 -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
Georges Basile Stavracas Neto 771c5c30f0 window: Reorganize a few functions 2019-05-09 17:42:59 -03:00
Georges Basile Stavracas Neto 0baeaa160a window: Delegate changing dates to GcalView
The view knows its time range, and knows what the
next or previous dates should be. So instead of
calculating the next date manually, ask the views
for that.
2019-05-09 17:42:59 -03:00
Georges Basile Stavracas Neto da31180cba view: Let views handle subscription range
Instead of GcalWindow handling the ranges themselves,
delegate this responsibility to the views.
2019-05-09 17:42:58 -03:00
Georges Basile Stavracas Neto 1f0179c431 ci: Simplify CI
Only build with the 'flatpak' stage, since it does
everything we do on other stages already.
2019-05-04 22:45:14 -03:00
Georges Basile Stavracas Neto a88b628507 build: Make generated sources a dependency
So that they are 100% certain to be generated before
starting to build libgcal.
2019-05-04 22:15:17 -03:00
Georges Basile Stavracas Neto a2609d6853 project: Reorganize much 2019-05-04 19:48:40 -03:00
Georges Basile Stavracas Neto 70cb7c14a9 build: Make libgcal a static library
This avoids us building everything twice.
2019-05-04 12:28:45 -03:00
Georges Basile Stavracas Neto 682e614e4b Remove developer docs
They're essentially useless.
2019-05-04 12:28:24 -03:00
Georges Basile Stavracas Neto f55b4531ef project: Move ui-related classes to gui/ 2019-05-04 12:14:05 -03:00
Georges Basile Stavracas Neto d5fbce1385 window: Remove search mode 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto bb8d5b92ce manager: Handle default calendars via GcalCalendar 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 7811b90730 tests: Fix test suite
Introduce a new GcalStubCalendar class that essentially
removes the ECalClient initialization from GcalCalendar,
and use it as part of a new private library consumed by
the tests.
2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 28c5a41639 build: Properly include deps and directories in libgcal_dep 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto ada9bcc473 calendar: Fix signal handler cleanup on finalize() 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 5e3eb40c53 utils: Add gcal_clear_signal_handler 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 245df513d7 event: Simplify color handling
We can use GcalCalendar::color property directly now.
2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 02cbfdadf2 calendar: Make it a derivable class 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto df182d1b88 manager: Remove "loading" property
The stack is robust enough to handle dynamically
loading the calendars.
2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto e7c6120133 manager: Remove gcal_manager_is_client_writable()
It is now handled by GcalCalendar, and nobody else uses
it.
2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto e617d29309 source-dialog: Use more GcalCalendar API 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto e800bb2476 manager: Remove gcal_manager_enable/disable_source()
This is now managed by GcalCalendar itself.
2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 560419ed8a editorconfig: Update tab width 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto e3e19b4cea application: Parse CSS more aggressively 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 2ef1cbc463 manager: Toggle data model sources when changed
Instead of other classes needing to manually set and
unset whether a source is registered in the data model,
we can now simply call GcalCalendar.set_visible() and
have the model be updated for us.
2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto fd3d2ea3f6 window: Move calendar popover to GcalCalendarPopover
This helps reducing the LOC number of GcalWindow, and
allows us to also implement the popover in a better way.
2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 64fa11f4c0 calendar: Fix double unref 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 1a5ff545a2 project: Move a few classes to core/ 2019-05-04 12:05:39 -03:00