Skip to content
Snippets Groups Projects
  • Daniel Calviño Sánchez's avatar
    e39db808
    Fix rendering of the sidebar in Files app · e39db808
    Daniel Calviño Sánchez authored
    
    When a view is rendered it should not be concerned with where it is
    going to be placed in the document; in general this should be a
    responsibility of the object using the view.
    
    Moreover, when the details view is rendered it should simply prepare a
    skeleton that includes the root elements provided by the plugins; those
    elements will be updated by the plugins as needed when a file or a tab
    is selected.
    
    Finally, the details view should not be explicitly rendered. The
    rendering removes the previous elements, but that is needed only when
    the details view is in a dirty state, that is, when new plugins were
    added since the last time that it was rendered. However, that dirty
    state is internally handled, and the view is automatically rendered
    again if needed when a file info is set.
    
    Due to all that the details view is no longer explicitly rendered when
    updating it with a different file. Also, as each file list has its own
    details view, and each details view has its own element, but there can
    be only one details view/sidebar element in the document, when the file
    list updates the details view it also replaces the current one in the
    document with its own details view if needed (that is, if it is not the
    current one already).
    
    Besides that, when the element of a details view is replaced with the
    element of a different details view the old one should be detached from
    the document, but never removed. Otherwise the event handlers would not
    work when that element is attached again later (when changing to a
    different section in the Files app and then going back to the previous
    one).
    
    Signed-off-by: default avatarDaniel Calviño Sánchez <danxuliu@gmail.com>
    e39db808
    History
    Fix rendering of the sidebar in Files app
    Daniel Calviño Sánchez authored
    
    When a view is rendered it should not be concerned with where it is
    going to be placed in the document; in general this should be a
    responsibility of the object using the view.
    
    Moreover, when the details view is rendered it should simply prepare a
    skeleton that includes the root elements provided by the plugins; those
    elements will be updated by the plugins as needed when a file or a tab
    is selected.
    
    Finally, the details view should not be explicitly rendered. The
    rendering removes the previous elements, but that is needed only when
    the details view is in a dirty state, that is, when new plugins were
    added since the last time that it was rendered. However, that dirty
    state is internally handled, and the view is automatically rendered
    again if needed when a file info is set.
    
    Due to all that the details view is no longer explicitly rendered when
    updating it with a different file. Also, as each file list has its own
    details view, and each details view has its own element, but there can
    be only one details view/sidebar element in the document, when the file
    list updates the details view it also replaces the current one in the
    document with its own details view if needed (that is, if it is not the
    current one already).
    
    Besides that, when the element of a details view is replaced with the
    element of a different details view the old one should be detached from
    the document, but never removed. Otherwise the event handlers would not
    work when that element is attached again later (when changing to a
    different section in the Files app and then going back to the previous
    one).
    
    Signed-off-by: default avatarDaniel Calviño Sánchez <danxuliu@gmail.com>