Why we shouldn't install header files created by UIC

Richard Dale Richard_Dale at tipitina.demon.co.uk
Wed Apr 6 19:01:16 UTC 2005


On Wednesday 06 April 2005 18:32, Matt Rogers wrote:
> Hi,
>
> As I'm going through and changing the main settings widget to look nicer
> (screenshot at
> http://www.sourcextreme.com/projects/kdevelop/newmainsettings.png), I've
> noticed that we're installing a header file that's based of a .ui file and
> calling it public API (i.e. we're not saying these headers are private and
> they shouldn't be used). There are several reasons why this is bad, and
> here's the two that i can think of ATM:
>
> 1. No BC. the header file may or may not change depending on what version
> of uic is used to generate the file. If we didn't autogenerate the .h and
> the .cpp file everytime, this wouldn't be as much of a problem, but we do,
> so it is a problem.
>
> 2. No encapsulation. All the data members are public. You change a variable
> name (as I have done) and you break BC, which goes back to point number 1.
>
>
> The solution to this is to create a new class that contains a pointer to
> the UIC generated class and make this class part of the public API.We can't
> base the new class off of the UIC generated class because you'll still run
> into the above two points. Anyways, i still plan to go forward with my
> changes, so i hope nobody cares that we're breaking BC.
Haven't we already had a discussion about this a couple of months ago? Surely 
just not installing a .ui generated header file is the solution?

-- Richard




More information about the KDevelop-devel mailing list