GNOME Bugzilla – Bug 417999
Don't use deprecated GTK+ symbols
Last modified: 2007-11-22 07:29:34 UTC
I did some general code-cleanup work on evolution-data-server to kick off the next development cycle. I'm splitting the changes into managable chunks, and filing separate bugs for each. Here's the first one. - Migrate off deprecated GTK+ functions. - Upstream some more implicit function declaration fixes that were lurking in an old Red Hat patch (circa 1.3.x). A couple of these are for libical. - Deprecate ESourceOptionMenu and migrate to a new ESourceComboBox widget. ESourceOptionMenu inherits from GtkOptionMenu, which is deprecated. ESourceComboBox inherits from GtkComboBox, which replaces GtkOptionMenu. - Document ESourceComboBox.
Created attachment 84533 [details] [review] Proposed patch for evolution-data-server
Created attachment 84534 [details] [review] Proposed patch for libical Fixes a couple implicit function declarations.
Created attachment 84535 [details] [review] Proposed patch for evolution Uses ESourceComboBox instead of ESourceOptionMenu.
Created attachment 85701 [details] [review] Revised patch for evolution-data-server A Fedora user was kind enough to alert me to a stupid mistake I made in the ESourceComboBox widget [1]. Here's a revised patch. [1] http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=234760
Created attachment 85807 [details] [review] Revised patch for evolution-data-server This revision fixes another ESourceComboBox bug: Don't activate a row on creation. The caller hasn't had a chance to connect to the "changed" signal yet, and if he tries to activate the already-active row, the "changed" signal won't be emitted.
Created attachment 86053 [details] [review] Corrected patch for evolution-data-server It would probably help to actually include the new widget in the patch...
--- libedataserverui/e-name-selector-dialog.h (revision 7689) +++ libedataserverui/e-name-selector-dialog.h (working copy) @@ -58,7 +58,6 @@ struct _ENameSelectorDialog { /* Private */ EBook *pending_book; - ESourceList *source_list; ENameSelectorModel *name_selector_model; GtkTreeModelSort *contact_sort; This breaks ABI. I didn't review it fully but too tired to review a huge patch :(
Yeah, it's too bad private member variables are tied to the ABI. /me makes a mental note to push for using g_type_class_add_private(). I see three ways to address your concern: 1) Leave it there as cruft. 2) Replace it with something like "gpointer placeholder". 3) Yeah, so we broke ABI. It's for an unstable development version. I suppose (2) is probably the best option.
it's kinda preferable to just do what every other gnome app does which is to do this: struct _EWidgetFu { GtkWidget parent_object struct _EWidgetFuPrivate *priv; }; and then define struct _EWidgetFuPrivate internal to the .c file using the g_type_class_*_private() stuff is annoying to use when debugging, much simpler to just use a priv variable. Plus it'd be more consistant with a lot of other evo code (imho, better to keep consistent)
I think we should go the way fejj said. But I dont want to do it now. Either convert it to a gpointer or leave it as it is (Causes any error?).
I agree. That might be a good "evolution-love" task for someone to start on after we finish with the compiler warning cleanup. Using both a "priv" pointer and g_type_class_add_private() would give you the best of both worlds. GObject would allocate and deallocate the private structure for you (and more efficiently), and the "priv" pointer would make the private data easily reachable in a debugger.
Created attachment 89786 [details] [review] Revised patch This revision fixes the ABI break mentioned in comment #7 by replacing the ESourceList pointer with a gpointer placeholder.
Created attachment 93287 [details] [review] Sync'ed with latest Subversion source
I would like to target it for 2.14.
Created attachment 94019 [details] [review] Revised patch for Evolution This revision fixes some bugs in the BBDB plugin. See bug #447591 for details.
Created attachment 94020 [details] [review] Revised patch for Evolution-Data-Server Some minor refactoring to ESourceComboBox to help catch similar bugs in the future.
If the patches here are accepted we should consider applying Milan's work in bug #460649 which adds the ESource's color to the combo box.
cc'ing myself..
Srini: Just a friendly ping so you don't forget about this. The bug is blocking some follow up work I'd like to do for 2.14/2.22.
Matthew, I wont forget for sure. Just relaxing by staying idle for this week. (Idle = revamping my setups, machines, etc) Will take it up from next week on
Srini agreed to let me commit this in time for 2.21.1. It's been in Fedora for some time now and I believe all the major bugs have been shaken out. libical (revision 626) evolution (revision 34408). evolution-data-server (revision 8138)
There still left one place with "source_changed" signal in Evolution.
Created attachment 97898 [details] [review] proposed evo patch for evolution; ... and here's the patch for that forgotten place.
Good catch, Milan. Please commit to trunk.
Committed to trunk. Committed revision 34436.
*** Bug 489073 has been marked as a duplicate of this bug. ***