IBuildSystemManager is not a IProjectFileManager anymore

Andreas Pakulat apaku at gmx.de
Fri Oct 22 06:55:18 UTC 2010


On 21.10.10 23:06:11, Milian Wolff wrote:
> Hey there,
> 
> to make QMake reuse the new AbstractFileManagerPlugin I had to remove the 
> inheritance of IProjectFileManager from IBuildSystemManager. Otherwise I'd get 
> into multiple inheritance hell:
> 
> AbstractFileManagerPlugin overloads everyhint in IProjectFileManager
> IBuildSystemManager is a pure abstract IProjectFileManager
> 
> QMakeManager inheriting from both would not compile as it is seen as a pure 
> abstract IProjectFileManager again...
> 
> All other fixes I could think of would have been *much* more ugly.
> 
> Hope this is ok, improvements welcome.

Hmm, indeed that creates the 'deadly diamond shape'. Would've been nice
to find another way (maybe using virtual inheritance would work....), as
it avoided additional calls to extension() or storing the plugin
instance. It also made more clear that a buildsystem plugin should also
imlpement filemanagement for the project, not to mention the
import/parse functions. 

Andreas

-- 
You will inherit millions of dollars.




More information about the KDevelop-devel mailing list