Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add zip browsing #394

Open
wants to merge 20 commits into
base: master
Choose a base branch
from
Open

Add zip browsing #394

wants to merge 20 commits into from

Conversation

warpdesign
Copy link
Owner

@warpdesign warpdesign commented Feb 22, 2023

MVP checklist: #392

Note: shows a very simple zip only. Lots of work needed:

- need to add readonly + checks on Fs so that read+delete+paste+rename operations are disabled
- need to allow browsing into a dir inside the zip
- need to allow browsing a zip by double-clicking in it
- need to handle opening a file from zip (by extracking the file in /tmp)
- need to handle copying files from zip
Also added new icons:
- Icon inside toolbar input that shows current FS's icon
- Lock icon when filesystem is readonly
This is needed since we may switch to different Fs in the middle of a path.
Also fixed FileDescriptor.name which was containing full file path.
Some zip have a specific entry for directories inside the archive: 'foo/'
but some zips don't have it, so we have a manually add 'foo/' if the archive
contains for example 'foo/bar'.

Also added new 'indirect' option on Fs that will be used when opening a file
needs first to uncompress (eg. zip archive) or transfer (eg. FTP) file before
it can be opened by the OS.

Last but not least, onFsChange was made optional since archive Fs
don't have it (at least not in the initial version).
When entering a zip subdirectory, the FileDescriptor's dir was
missing the current directory relative to the zip.
Also: cleaned-up write-only methods (these should be optionals)
This PR fixes two things:

- when copying files from a zip directory, closing the zip tab, then pasting the files
in another tab, the cache's zip file was closed, so we re-open it.

- FsZip file listing had a bug where a directory partially matching another directory
would return non-existing folders, for eg. `/foo` & `/foo.bar`.
Also simplified paste enable checks: ignore file under mouse for now since
we paste on current cache & not on the folder under the mouse anyway.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant