In ikhal, when we make either the calendar or the event list (or both) jump long distances, all events for the days between the currently loaded ones and the new date get loaded. This can take a long time.
This PR introduces some performance improvements and lots of new type hints.
Also fixes an issue with updating the event list for the right dates after editing an event.
This will fix #1046
[x] improve Event Walker
[x] measure
jumping from today (2023-06-06) to 2000-06-06 takes 2-3 seconds with the old code, 0.005-0.01 seconds with the new code on my mostly empty test calendar on an M1 mac, a speedup of about ~200
[x] improve CalendarWidget
[x] measure
jumping from today (2023-06-13) to 2000 takes 3-5 seconds with the old code, 0.01, 0.02 seconds with the new code, a similar speedup
In ikhal, when we make either the calendar or the event list (or both) jump long distances, all events for the days between the currently loaded ones and the new date get loaded. This can take a long time.
This PR introduces some performance improvements and lots of new type hints. Also fixes an issue with updating the event list for the right dates after editing an event.
This will fix #1046