On Mit, 2004-10-13 at 10:28 -0400, Dave Camp wrote: > I'm not opposed to design changes to make subversion work easier in > nautilus-vcs. > I attached an UML tree of the object model i thought of. NautilusVcs shall be the only extension to Nautilus (Nautilus does not know about the different vcs). All major code resides inside NautilusVcs, this includes handling of the different actions wich can be done on different vcs i.e. NautilusVcs has a list of the union of all actions available over all Vcs. Its able to call "capabilities" on files to different Vcs and they will respond with a map consisting of the actions they can perform on that list of files. The implementation of such an action is in the Vcs class itself as a virtual function. Since NautilusVcs shall be the only object wich talks to Nautilus it also provides the varios widgets or it. Therefore NautilusVcs can request an Info object from the vcs to get information to place in those widgets. It may be possible that e.g. the action implementations need more arguments (commit message). This way we reduce code for the various actions e.g. we need to code the message window for the commit text only once. I hope i haven't forgotten something important... :). RFC. cheers, Raffaele
Attachment:
objectmodel.dia
Description: application/dia-diagram