Skip to content

Commit 3b878ac

Browse files
queenkjuulqueenkjuul
authored andcommitted
Run makepot
2 parents 3ded1fe + ed20e4a commit 3b878ac

File tree

93 files changed

+3670
-2113
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+3670
-2113
lines changed

calendar-server/cinnamon-calendar-server.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,45 @@ def __init__(self, source, client):
3636
self.source = source
3737
self.client = client
3838

39+
self.syncing = False
40+
3941
self.extension = source.get_extension(EDataServer.SOURCE_EXTENSION_CALENDAR)
4042
self.color = self.extension.get_color()
4143
self.color_prop_listener_id = self.extension.connect("notify::color", self.ext_color_prop_changed)
4244

45+
# This process generally won't stay running for more than 30 seconds or so,
46+
# but enabling refresh lets us force a timeout and re-poll.
47+
if self.client.check_capability(ECal.STATIC_CAPABILITY_REFRESH_SUPPORTED):
48+
self.refresh = self.source.get_extension(EDataServer.SOURCE_EXTENSION_REFRESH)
49+
self.refresh.set_enabled(True)
50+
self.refresh.set_interval_minutes(1)
51+
self.source.refresh_add_timeout(None, self.on_refresh_timeout)
52+
4353
self.start = None
4454
self.end = None
4555

4656
self.view = None
4757
self.view_cancellable = None
4858
self.events = []
4959

60+
def try_sync(self):
61+
if self.syncing:
62+
return
63+
64+
if self.client.check_capability(ECal.STATIC_CAPABILITY_REFRESH_SUPPORTED):
65+
self.source.refresh_force_timeout()
66+
67+
def on_refresh_timeout(self, source, data=None):
68+
self.client.refresh(None, self.on_sync_complete)
69+
70+
def on_sync_complete(self, client, result, data=None):
71+
try:
72+
self.client.refresh_finish(result)
73+
except GLib.Error as e:
74+
print(f"Error refreshing calendar '{self.source.get_display_name()}':", e.message)
75+
76+
self.syncing = False
77+
5078
def destroy(self):
5179
self.extension.disconnect(self.color_prop_listener_id)
5280
self.extension = None
@@ -223,6 +251,9 @@ def handle_set_time_range(self, iface, inv, time_since, time_until, force_reload
223251
self.interface.complete_set_time_range(inv)
224252
return True
225253

254+
for calendar in self.calendars.values():
255+
calendar.try_sync()
256+
226257
self.current_month_start = time_since
227258
self.current_month_end = time_until
228259

0 commit comments

Comments
 (0)