• Friedemann Kleint's avatar
    VCS: Introduce Base class for VCS plugins, use in git. · 8097879d
    Friedemann Kleint authored
    Fixes:
    - Cannot diff a file that does not belong to a project
    - Cannot commit when a temporary diff/log view is open
      due to the current file pointing to a temporary directory
    - git's project-related actions not passing the correct
      relative path.
    
    Implementation:
    - Centralize code to listen for Qt Creator's relevant state changes
      in VCSBasePlugin, dispatching the changes to the instances affected.
      (avoiding multiple invocations of searches/QFileInfo on current).
    - Do the same for the corelistener catching closing SubmitEditors.
    - Introduce VCSBasePluginState representing the relevant state
      (current file/project).
    - Call git with working directory set and relative arguments
    - Remove setEnabled/isEnabled() logic of IVersionControl
    - Pass toplevel from VCSManager to avoid duplicate searches.
    8097879d
perforceplugin.h 6.01 KB