KDevelop4 project file

Adam Treat treat at kde.org
Thu Jul 20 16:53:46 UTC 2006

On Thursday 20 July 2006 12:43 pm, mwoehlke wrote:
> Adam Treat wrote:
> > The project files are now in INI style format, it is true.  This is
> > because we now use the KConfig framework for project settings too.  This
> > has the benefit that we can use KConfigXT and that all settings are saved
> > in the exact same way. [snip]
> >
> > The advantages to this are numerous:
> >
> > *  Plugin developers don't have to worry about whether settings belong in
> > the project or in the regular config.  Settings are settings.  When a
> > project is opened then settings are given a project scope.  When a
> > project is not opened then settings are given a regular scope.
> >
> > *  Users don't have to wonder how to find a particular setting... "Is it
> > in the project config or is it in the regular config"... there is only
> > one place to get/set settings.  The config dialog.
> >
> > *  All settings can be configured on an individual project basis.  A
> > project manager could finally define AStyle settings for the whole
> > project, for instance.  And developers who work on more than one project
> > might have AStyle settings for each different project.
> I can already imagine the headache this is going to create. "Oh, but I
> wanted that setting to apply to ALL projects! You mean I have to close
> my active project, make the change, and then wait five minutes while my
> project re-opens?". It seems like we need to provide a way for the
> configure dialog to let us pick to apply settings to the project, or
> globally.

That was an alternative, but mattr and I talked about it and thought it'd be 
obvious if the top-level menu item changes from 'configure->kdevelop' 
to 'configure->project' when a project is opened.  Obviously, if it 
says 'configure->project' it will only relate to that project.

> For the sake of argument, what about providing a way to specify that a
> setting is always-global or always-project-local? However, I admit that
> a setting that only makes sense in a project could have a default value,
> and I can't think of any setting that I can't also invent a scenario in
> which I would want it to be project-specific.

Exactly.  I can think of exactly one setting that is set by the user which has 
no business in a project file:

[General Options]
Read Last Project on Startup=true

That obviously, needs to go in the user's settings.  Everything else can 
theoretically be useful to set on a per project basis.

More information about the KDevelop-devel mailing list