<br><br><div class="gmail_quote">On Sat, Dec 27, 2008 at 12:18 PM, Andreas Pakulat <span dir="ltr"><<a href="mailto:apaku@gmx.de">apaku@gmx.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On 26.12.08 20:36:29, Aleix Pol wrote:<br>
> On Fri, Dec 26, 2008 at 5:19 AM, Matt Rogers <<a href="mailto:mattr@kde.org">mattr@kde.org</a>> wrote:<br>
> > On Wednesday 24 December 2008 07:35:17 pm Aleix Pol wrote:<br>
> > > hi,<br>
> > > I've been checking the project modification interface and there are some<br>
> > > things that look a bit strange.<br>
> > ><br>
> > > - why do we need the removeFileFromTarget when we have a removeFile? we<br>
> > can<br>
> > > check if it is from an item using<br>
> > > dynamic_cast<ProjectTargetItem*>(it->parent()).<br>
> ><br>
> > What happens if you want to remove a file from a target and move it to<br>
> > another<br>
> > target? That was the use-case that removeFileFromTarget was intended for.<br>
> > If<br>
> > removeFile is a destructive action (i.e. the file gets deleted) then this<br>
> > is<br>
> > still needed. It also makes the operation explicit in terms of API.<br>
><br>
> Maybe the name is wrong?<br>
> By now the file is deleted by the projectmanagerview though, not by the<br>
> plugin. the plugin just makes sure that the change is coherent with the<br>
> call.<br>
<br>
</div>I'm not sure the project-manager-plugin (i.e. cmake/qmake/etc) should be<br>
doing the deletion because:<br>
<br>
a) it duplicates code<br>
b) thats not the task of those plugins, they should just manage the<br>
buildsystem/project-file-list<br>
</blockquote><div>Well, I think it is quite clear that the buildtool should not delete the files by themselves. it should be done by the vcs plugin, instead.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
However, that still leaves the case Matt explained: I want to remove file<br>
foo.cpp from target a, which should leave that file in the project, but<br>
simply not attach it to a certain target.</blockquote><div>Then we should remove it from the buildtool but not from the filesystem (which is not performed by this interface) and then add the file again to another parent :/.<br>
 <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<div class="Ih2E3d"><br>
> > > - why do we have addFileToTarget and addFile(toFolder)? and the target<br>
> > case<br>
> > > has a ProjectFileItem as a parameter instead of a KUrl :S<br>
> ><br>
> > because the addFile call is expected to take place before the<br>
> > addFileToTarget<br>
> > call. You can have files in the project file structure and not have them be<br>
> > part of the target (think README, TODO, and HACKING files)<br>
><br>
> These files won't be added to a target but to a folder.<br>
><br>
> It doesn't really make sense to me to have to add the file first to a parent<br>
> and then reparent it to another one.<br>
<br>
</div>But it makes the API more consistent, because for every addXXX there's a<br>
removeXXX and vice-versa. Having such API is good, because people don't<br>
need to lookup the methods as its obviously clear what methods exist.<br>
<div class="Ih2E3d"><br>
> > > - why don't we just merge these methods that just pass the same and we<br>
> > pass<br>
> > > a ProjectBaseItem as the parent?<br>
> ><br>
> > I also don't understand this question. Could you be more explicit?<br>
><br>
> why don't we have addItem(ProjectBaseItem*) instead of every addFile,<br>
> Folder, Target.<br>
<br>
</div>Because its more explicit in the API. That way if you use this API you<br>
instantly see what is added at a certain point. Sometimes more verbose code<br>
is good.<br>
<br>
Especially with the two interfaces IPFM and IBSM we'd have a differing<br>
behaviour of the same method, depending on wether the underlying plugin is<br>
a buildsystem or just project manager. This might be totally invisible from<br>
the place of the call of the addItem.<br>
<br>
Andreas<br>
<font color="#888888"><br>
--<br>
Try the Moo Shu Pork.  It is especially good today.<br>
</font><div><div></div><div class="Wj3C7c"><br>
_______________________________________________<br>
KDevelop-devel mailing list<br>
<a href="mailto:KDevelop-devel@kdevelop.org">KDevelop-devel@kdevelop.org</a><br>
<a href="https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel" target="_blank">https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel</a><br>
</div></div></blockquote></div><br>