Commit graph

342 commits

Author SHA1 Message Date
Jason Rodney Hansen
54b884e5f8 Add ability to remove files from Recents 2025-07-11 09:38:13 -06:00
Jeremy Soller
b44bef59c0
Fix build 2025-07-10 15:00:52 -06:00
Jeremy Soller
7524487ba7
Significantly optimize drag select performance 2025-07-10 13:57:41 -06:00
Jeremy Soller
b7c9ed8dff
Implement auto scroll in mouse area, improves performance 2025-07-10 11:52:42 -06:00
Jeremy Soller
5e4d4523f4
Only build widgets for visible items 2025-07-10 10:52:57 -06:00
Ashley Wulber
19c2cefd8a fix(dialog): header close button 2025-07-09 15:28:47 -06:00
Jeremy Soller
3566040bac
Fix warnings 2025-07-08 09:14:48 -06:00
Ashley Wulber
e4ffec63a1 refactor: apply limit on the number of persisted sort names 2025-07-03 19:34:48 +00:00
Ashley Wulber
84b73b0bdc refactor: move sort names to state 2025-07-03 15:13:11 +00:00
Ashley Wulber
499ce1a7ec refactor: avoid task for save sort names when debouncing 2025-07-03 15:13:11 +00:00
Ashley Wulber
01bf55865c feat: persist sort options for each location 2025-07-03 15:13:11 +00:00
Ashley Wulber
6a2bd1faf1 fix: add eject button for context menus on mount point 2025-07-01 00:25:58 +00:00
ellieplayswow
aba90279e6
add ability to pass appid through to file dialogs (#1042)
* dialog: add new Dialog::create() method with new DialogSettings struct to allow passing app_id from portal; deprecating Dialog::new()

* dialog: remove deprecation, move to builder pattern, add path_opt and kind options to DialogSettings

* dialog: instances of -> DialogSettings to -> Self
2025-06-27 16:26:24 -06:00
Jeremy Soller
cefa82f4e9 Drop dbus-config, update libcosmic, and use system_theme_update 2025-06-23 11:37:22 -06:00
Gwen Lg
b0e89cd5e3
fix some typos in comment or var name (#1027)
indicated by `typos` tool : https://github.com/crate-ci/typos/
2025-06-18 16:40:55 -06:00
Joshua Megnauth
ec685bd185
Save/simplify show hidden items (#1026)
Closes: #1022, #605
See: #982
Original PR: #36

This commit reimplements saving the "show hidden" files setting. I
simplified the implementation by making the toggle global. My original
PR (#36) implemented per tab show hidden, but that complicates saving
configs which is why (I think?) why the saving the toggle was scrapped.
2025-06-18 16:35:39 -06:00
Ashley Wulber
36a5ce2002 fix: proper feature gate 2025-06-18 14:32:07 -04:00
Jeremy Soller
051001b9ea
Implement setting permissions, fixes #325 2025-05-16 09:39:53 -06:00
Jeremy Soller
a34f727913
Fall back to permanently delete on remote shares, part of #909 2025-05-15 11:30:35 -06:00
Jeremy Soller
3b34ba8907
Add reload folder key binding, fixes #146 2025-05-15 10:55:11 -06:00
Jeremy Soller
53143d0abc
Remove nb_items from permanently-delete-warning 2025-05-09 10:25:33 -06:00
Jeremy Soller
037190babd
Remove unused icon sizes argument from preview 2025-04-30 08:27:55 -06:00
Jeremy Soller
dd5fa29e9a
Adjust permanently delete dialog 2025-04-29 18:49:19 -06:00
Jeremy Soller
4f7d13f391
Merge branch 'permanently-delete' of https://github.com/gwen-lg/cosmic-files 2025-04-29 18:39:11 -06:00
Jeremy Soller
5573e36400
Copy to external drives when drag and dropping, part of #828 2025-04-29 18:07:57 -06:00
Jeremy Soller
dd98622cfa Reduce features used on remote filesystems
This attempts to detect remote filesystems on Linux using the
/proc/self/mountinfo file and checking the filesystem against a
hardcoded list of remote filesystems. Remote filesystems will not
thumbnail, read file data to determine mime types, or calculate
directory sizes.
2025-04-29 14:51:11 -06:00
Gwen Lg
160ef5f414 feat: include permanent delete in menu_bar 2025-04-29 20:18:30 +02:00
Gwen Lg
e220268954 Add ModifiersChanged message on Tab and keep value
The message is forwarded from app/dialog Message, and used to
keep the value of the status of modifiers in Tab.
2025-04-29 20:18:30 +02:00
Gwen Lg
d8a198e836 clean: rename Modifiers message to ModifiersChanged
to be more explicit/accurate.
2025-04-29 20:18:30 +02:00
Tim Dengel
1a66d7b184 Support permanently deleting files and directories using Shift+Del
Add a confirmation dialog to limit risks of data lost.
2025-04-29 20:18:30 +02:00
Jeremy Soller
8ced8b0551
Show all applications that handle any mime types in open with dialog, fixes #568, fixes #226, fixes #721 2025-04-29 09:53:51 -06:00
Daniel
569247acfb
visualise cut items (#954) 2025-04-28 07:35:27 -06:00
Ashley Wulber
eea916d783
feat: responsive menu bar (#938) 2025-04-15 18:04:07 -06:00
Jason Hansen
5e21c7cf99
Use icu for date and time localization (#934)
* Use icu for date and time localization

* Handle military time config in dialog
2025-04-14 08:59:32 -06:00
Michael Murphy
79aa8f887a
feat: use io_uring / IOCP when available for async file IO (#911)
Spawns a single thread for handling async file IO on the [compio runtime](https://github.com/compio-rs/compio).
It is a completion-based IO runtime that can dynamically select a polling mechanism at runtime. It defaults to
io_uring on Linux, IOCP on Windows, and the polling crate everywhere else. On Linux systems where io_uring is
unavailable or disabled, it will fall back to the polling crate.

This eliminates most of the threads that were needed previously. It significantly reduced the amount of memory
needed in the recursive Context to get a good transfer rate for each copy operation—from a 4 MB buffer to 128 KB.
Copies on a nvme drive are somewhat faster with the async IO changes, and use less CPU than before.

Although it uses a single thread for non-blocking tasks, it still manages to 100% max out my nvme drive's
activity for the whole duration of multiple long transfers. But it would be possible to enable compio's
dispatcher to spread operations across worker threads if necessary.

All but the extract and compress operations were updated to be async. I had to switch the `CondVar` in the
`Controller` to a `tokio::sync::Notify` to prevent the IO thread from being put to sleep when an operation is paused.
Fixed a deadlock in the `operation_copy` test function that was performing an operation without concurrently pulling
from the channel in the operation. Reduced the rate that `Message::None` is sent from a subscription to trigger a UI
redraw, and fixed it to not run when operations are paused.
2025-04-09 15:15:07 -06:00
Burkhard Mittelbach
f4b92c73ed Fix move to home location on unmount
Previously this would only work if the root of the unmounted file-system
is open in a tab. This also checks for any sub-path.

fixes: #915
2025-04-02 16:03:49 +02:00
Josh Megnauth
42cad87825
feat: Open multiple files with one/multiple apps
Opening multiple selected paths should:
* Launch one app that supports all of the file paths e.g. an image
  viewer that allows cycling through the selected images
* Launch multiple instances of an app if the app doesn't handle multiple
  URLs, such as nsxiv
* Launch different apps for a heterogeneous mix of URLs while taking
  into account the two rules above. For example, launching a mix of
  paths of images, videos, and text should open the correct apps
2025-03-27 02:08:38 -04:00
Jason Rodney Hansen
dfa857b1e5 Set title and accept button label for extract dialog 2025-03-23 15:28:18 -06:00
Jason Rodney Hansen
162768af8f Fix toasts for Extract and Compress 2025-03-23 14:30:22 -06:00
Jason Rodney Hansen
5fd7be593a Use Open Folder dialog for Extract To 2025-03-23 14:18:00 -06:00
Jason Rodney Hansen
a657c5e409 Simplify and fix box selection and autoscroll 2025-03-22 18:51:48 -06:00
Jeremy Soller
06fd35db76
Merge pull request #683 from CaelusV/single-click
Add 'Single click to open' settings toggle
2025-03-19 16:25:37 +00:00
Jeremy Soller
6dc24b52e8
Format 2025-03-19 09:55:01 -06:00
Jeremy Soller
ca7b55bf0b
Merge pull request #885 from johnoye742/master
Introduces feature mentioned in #749
2025-03-19 15:54:27 +00:00
johnoye742
c7a411d3de feat: Extract archive to a specified location 2025-03-17 13:01:08 +01:00
Ashley Wulber
4828bae81d
chore: update libcosmic 2025-03-15 11:59:03 -04:00
CaelusV
20e571efab Add 'Single click to open' settings toggle 2025-03-14 03:30:58 +01:00
Jeremy Soller
4e826c6ef0
Merge pull request #872 from johnoye742/master
Removed unused imports
2025-03-10 08:05:00 -06:00
Jeremy Soller
509a0afb98
Merge pull request #869 from ellieplayswow/feature/open-with-subclasses
Bugfix to open-with dialog to use a scrollable with a managed height
2025-03-10 08:04:22 -06:00
ellieplayswow
eac6acc74f Only show one (default) line 2025-03-10 12:51:50 +00:00