After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 585701 - Rework loading of configuration
Rework loading of configuration
Status: RESOLVED FIXED
Product: Gnumeric
Classification: Applications
Component: General
git master
Other All
: Normal normal
: ---
Assigned To: Jody Goldberg
Jody Goldberg
Depends on:
Blocks:
 
 
Reported: 2009-06-14 02:10 UTC by Morten Welinder
Modified: 2009-07-01 18:07 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Morten Welinder 2009-06-14 02:10:08 UTC
The current gnumeric-gconf code splits the configuration options to be loaded
into essentials (loaded right away) and extras (loaded after 1s idle time).

1. Nothing ensures that options things have been loaded when needed.
2. It is not possible to watch for changes to configuration values.

I suggest that we rework things along the lines of:

A. All configuration values are listed in an xml file.  (That might be
   the schemas files or something derived from there.)

B. Code is generated from that xml file, so it not necessary to parse it
   at run-time.

C. Options become GObject properties of the application object.
   This fixes problem 2.

D. When an option is queried, we make sure it has actually been loaded.
   (Consequently, we hide gnm_app_prefs.)  This fixes problem 1.

E. An idle timeout starts loading stuff after, say, 1s of idle time.
   When we start this process, we load, say, 10 keys per second.

F. Non-GUI applications (such as ssconvert) either rely on D, or we
   supply a load-it-all function.
Comment 1 Morten Welinder 2009-06-29 02:40:41 UTC
A: Done.
B: Done.
C: Not done.
D: Done.
E: Not done.  Probably not needed -- items load as they are requested.
F: Not needed.
Comment 2 Morten Welinder 2009-07-01 18:07:52 UTC
C. is kind-of done: we now have function that return GOConfNode*s.  Those
can be monitored.

This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.