Skip to content
  • Frank Reininghaus's avatar
    Keep the "free space" information updated in all visible views · de197075
    Frank Reininghaus authored
    The old code would watch the free space on a mount point, i.e.,
    determine the free space again, in 10-second intervals, only until the
    view became invisible once (even if it was invisible only for a very
    short moment, i.e., while splitting the view).
    
    This commit ensures that the mount point is watched again as soon as
    the corresponding view becomes visible again.
    
    Moreover, the object that watches the free space for a mount point is
    shared among all views that show URLs that belong to this mount point.
    To achieve this, there is a central cache which can be used to obtain
    an existing MountPointObserver for a certain path. If necessary, a new
    MountPointObserver is created and added to the cache.
    
    The MountPointObserver is removed from the cache and destroyed only if
    no views use it any more, and no new users appear until the next update
    (which happens every 10 seconds). This prevents that the free space is
    measured repeatedly when changing the current directory on the same
    mount point.
    
    Many thanks to Emmanuel Pescosta for the initial ideas to factor out
    the "free space" code and to establish a central storage for the
    "observer" objects, and for providing many good suggestions how to
    improve the code!
    
    BUG: 327708
    REVIEW: 118208
    FIXED-IN: 4.14.0
    de197075