Re: [evolution-patches] camel provider changes for connector




Almost there.


                if (!accepted) {
                        /* Since the license is not yet accepted, pop-up a
                         * dialog to display the license agreement and check
                         * if the user accepts it
                         */
 
-                       if (display_license (prov->license_file)) {
-                               status = gconf_client_set_bool (gconf,
-                                               gconf_license_key, TRUE, NULL);
+                       if (display_license (prov)) {
+                               providers_list = g_slist_append (providers_list,
+                                                (gpointer)prov->protocol);
+                               status = gconf_client_set_list (gconf,
+                                               "/apps/evolution/mail/licenses",
+                                               GCONF_VALUE_STRING,
+                                                providers_list, NULL);
                        } else {
-                               g_free (gconf_license_key);
+                               g_slist_free (providers_list);
                                return FALSE;
                        }
                }
-               g_free (gconf_license_key);
+               g_slist_free (providers_list);
        }

you also have to free the strings in the slist, otherwise they leak.

I suggest instead of having the two return statements, just have one at the end, and let the logic fall through to that case.  This way you only need 1 copy of the free code.

e.g. "return accepted;" at the end, and set accepted based on the display_license return.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]