GNOME Bugzilla – Bug 347287
Modular view control
Last modified: 2009-01-30 10:45:18 UTC
At present, each view in the calendar has a seperate model associated with it. The views should share a single model. This would reduce the memory usage by considerable ammount.
Bumping version to a stable release.
Created attachment 116433 [details] [review] Uses a single model for all the views Change ECalModelComponent to GObject based so that it can be ref'ed instead of copying it.
Patch has been committed to HEAD.
I see these warnings when compiling: e-cal-model.c: In function ‘e_cal_model_set_timezone’: e-cal-model.c:1118: warning: unused variable ‘l’ e-cal-model.c: In function ‘e_cal_view_done_cb’: e-cal-model.c:1525: warning: unused variable ‘priv’ e-cal-model.c: At top level: e-cal-model.c:2093: warning: ‘copy_ecdv’ defined but not used e-day-view-config.c: In function ‘timezone_changed_cb’: e-day-view-config.c:155: warning: implicit declaration of function ‘set_timezone’ e-day-view-config.c: At top level: e-day-view-config.c:149: warning: ‘timezone_changed_cb’ defined but not used And these two related when running evolution: (evolution:17849): e-utils-WARNING **: can't load plugin '/build/local/lib/evolution/2.24/plugins/liborg-gnome-exchange-operations.so': /build/local/lib/evolution/2.24/components/libevolution-calendar.so: undefined symbol: set_timezone (evolution:17849): e-utils-WARNING **: can't load plugin '/build/local/lib/evolution/2.24/plugins/liborg-gnome-exchange-operations.so': /build/local/lib/evolution/2.24/components/libevolution-calendar.so: undefined symbol: set_timezone I tried to make/make install in the evolution's root, but no luck, the runtime thing is still there (maybe forcing rebuild would help here?)
Fix committed.
Kinda bad regression (or however you want to name it), I have enabled birthdays and anniversaries calendar, I have some contacts with b &/| a, and when I open evolution (before evo --force-shutdown), on the day where are supposed to be some events from the contacts backend, then I do not see them. It's enough to move to other day and back and it's there.
Milan, after the trial & error game today I updated to trunk again and things are still working fine for me, e.g. no back/forth switching required for me.
Update: After lots of testing, I have seen this a number of times, too. It's not happening all the time and if it happens I can normally display all events by just disable/enable the B&A calendar once. Also, sometimes only a few birthdays show and a few are missing.
chenthill: what was the svn revision for the commit from comment #5?
Peter: http://svn.gnome.org/viewvc/evolution?view=revision&revision=35977
michael, mcrha, will test it out and cook a fix for b/a calendar issue..
UPDATE! This does _not_ only affect the B&A calendar! I just started evo and went to the cal component to find that my GNOME release schedule was not displayed. It was activated, though. Deactivating and activating it made it show up just fine again. So I suppose there is a general problem with calendars in 2.23.x which shows more with some and less with other calendars. It is however a serious flaw as it could lead people to miss appointments etc. IMHO bumping the priority would be a good idea at this point.
Created attachment 117117 [details] Semi new finding screenshot maybe this is interesting. When started today, my GNOME schedule cal was again not visible though it was active. I noticed however that the mini cal view in the bottom left shows the days which have AND SHOULD HAVE events as bold, so it seems to work down there.
Michael, did you find any warnings in the terminal saying "Could not get the query" ? I think it might related to fetching the queries.
@chenthill: yes I see this warning: (evolution:20961): e-data-server-DEBUG: Loading categories from "/home/nx/.evolution/categories.xml" (evolution:20961): e-data-server-DEBUG: Loaded 13 categories Changing the queries (contains? "summary" "") (evolution:20961): calendar-gui-WARNING **: gnome-cal.c:910: Could not create the query: Backend is busy Triggering summary_reloaded on INBOX 0xb253c420 calendar-gui-Message: Check if default client matches (1181761339.14309.8@enigma 1181761339.14309.8@enigma) I also noticed now then when the B&A calender items are not displayed, they too seem to mark the days bold in the bottom left mini cal widget. Does this make any sense?
Ah ok. I know the problem. The warning, (evolution:20961): calendar-gui-WARNING **: gnome-cal.c:910: Could not create the query: Backend is busy says it all. The reason for this is, at any point in time ecal interface cannot handle two calls simultaneously. Now if date navigator and say dayview calls e_cal_get_query at the same time, one of them would fail. So I put a poll for three times with a sleep on the thread to try to get the query again. I will get a better solution for this.
This "Backend is busy" can be best solved using the dbus-port for eds. Am now working on a temporary fix for the same.
Created attachment 126824 [details] [review] Avoids un-necessary ipc calls The real patch is inside e_cal_generate_instances_for_object. Other part of the code is for debugging purposes, to find the current operation going on.
Created attachment 126825 [details] [review] Increase the tries to 10 and sleep to 500 micro seconds. I tried to find an average time get_query takes and it was around 4000ms. I could not find why certain cals even came upto 17k ms. This will anyway be fixed while moving to dbus port. So this is a temporary fix for the problem.
As a temporary fix looks good. Feel free to commit both to trunk, and maybe the second also to stable.
committed the patch to trunk and stable.