Commit graph

486 commits

Author SHA1 Message Date
Vukašin Vojinović
d5dbcc7677 chore: add rustfmt config
Also adds a Zed editor config for automatic formatting with nightly.
2026-04-29 00:53:57 +02:00
Vukašin Vojinović
e91a984da9 chore: clippy 2026-04-29 00:53:57 +02:00
Vukašin Vojinović
93e31d433a chore: update dependencies 2026-04-29 00:53:57 +02:00
Jeremy Soller
4afacccc8a Fix windows compilation issues 2026-04-17 13:31:55 -06:00
Jeremy Soller
8c57060db2 Only use uzers on unix, do not fork on mac 2026-04-17 12:54:33 -06:00
Jeremy Soller
62bfcc3550 Put libcosmic/desktop behind desktop feature 2026-04-17 12:54:33 -06:00
Jeremy Soller
9c0eb63b82 Refactor trash handling to improve portability 2026-04-17 12:54:33 -06:00
Michael Aaron Murphy
15e40461e5
fix: do not generate thumbnail if file is being written 2026-04-14 17:04:53 +02:00
Michael Aaron Murphy
e35d5123f0
perf: avoid holding async mutex guards across await points
tokio recommends using a sync mutex with a notifier instead of the
async mutex where possible. Rust forbids holding a sync mutex guard
across await points so we can prevent a potential deadlock this way.

This adds a custom channel based on the tokio mpmc example for
handling gvfs events from callbacks to avoid the async mutex
requirement. Messages are held in a `VecDeque` behind a sync mutex
and the receiver will get notified via the notifier when a message
is added to the queue.

Weak references used in gio callbacks in case the sender is dropped
by the application.
2026-04-14 17:04:48 +02:00
Michael Aaron Murphy
93dd775f3c
perf: get image dimensions from background thread
This caused the tab subscription to block the tokio executor.
Instead store the image dimensions in the `Item`, which is
created on a background thread.
2026-04-14 16:51:51 +02:00
sandroid
91243b99b5 feat: repeat a key to cycle through items in type-to-select mode 2026-04-13 16:24:28 -04:00
sandroid
da05a85fc5 feat: start type-to-select search from the current focus 2026-04-13 16:24:28 -04:00
Jeremy Soller
175f8ba724
Merge pull request #1728 from darkfated/add-context-actions
Add user-defined context actions
2026-04-10 15:42:42 -06:00
Hojjat
b17f8889a8 chore: update to the latest libcosmic 2026-04-08 15:15:48 -06:00
Jeremy Soller
781e99d293 Use row, column with_capacity 2026-04-06 18:08:44 -06:00
darkfated
39281a6336 Add user-defined context actions 2026-04-06 06:16:27 +03:00
Jonatan Pettersson
23b5d98dcc feat: set placeholder for permission dropdowns 2026-04-02 13:43:03 -06:00
Jonatan Pettersson
41cdf89604 feat: allow setting permissions in multi preview
This adds a Message::ShiftPermissions to handle setting
permissions for user, group or other for either 1 or
more items and a Command::SetMultiplePermissions to
set permissions on multiple items at the same time.

The permission dropdown will only have a selection if
all selected items have the same permission, otherwise it
will be empty but still allow changing.

Up to 5 owners and groups will be displayed for all
selected items with an ellipses if there are more.

The OperationSelection for setting permissions now also
returns the path as selected such that the tab will be re-scanned
and update the dropdown to correctly.
2026-04-02 13:43:03 -06:00
Jonatan Pettersson
17325a5f5a feat: add open-with in multi preview
Adds the ability to set the open-with setting for
multiple selected items. This setting will only appear
if all selected items have the same mime type.
2026-04-02 13:43:03 -06:00
Vukašin Vojinović
6e2eafe16c chore: clippy 2026-03-24 11:25:59 -06:00
Vukašin Vojinović
3b1bc4430b refactor: use jiff instead of chrono 2026-03-24 11:25:59 -06:00
Vukašin Vojinović
4414d2f4b2 chore: update dependencies
Also utilizes the `jxl-oxide` image decoding hook.
2026-03-24 11:25:59 -06:00
Ashley Wulber
360973175c
feat: rebase libcosmic onto iced 0.14 2026-03-13 21:04:17 +01:00
Levi Portenier
ca15a1bde4
Merge pull request #1558 from jpttrssn/exclude-trash
fix: exclude trash from multi-preview
2026-03-02 11:49:53 -07:00
Jason Rodney Hansen
bba95c3fc0 feat: search in Recents and Trash 2026-02-27 18:34:58 -07:00
Jeremy Soller
4e0b44b5bb
Merge pull request #1613 from FreddyFunk/feat/clipboard-paste-menu-graying
feat: gray out paste menu when clipboard is empty or location unsupported
2026-02-19 19:00:04 -07:00
Hojjat
059f0227f9 feat: use ellipsizing for item names 2026-02-19 16:50:54 -07:00
Frederic Laing
591ba0f9b9 feat: gray out paste menu when clipboard is empty or location unsupported 2026-02-19 14:19:26 -07:00
Jeremy Soller
3fcaaf1ed7 Add Clear Recents history to Recents nav bar context menu 2026-02-18 12:14:38 -07:00
Jeremy Soller
6801307bbd Fix compilation when gvfs feature not enabled 2026-02-09 14:44:55 -07:00
Michael Meuli
439bedcc1c fix display_name_for_file() for gvfs 2026-02-09 14:31:25 -07:00
Vukašin Vojinović
fcaf6c7e30 chore: update dependencies 2026-01-30 21:10:00 +01:00
Vukašin Vojinović
1e25e7dd69 chore: clippy 2026-01-30 21:05:46 +01:00
Michael Meuli
e729ebe2b2 only show open button if something can be opened 2026-01-28 16:15:28 -07:00
Jonatan Pettersson
b793d025c2 fix: filter for items with paths in multi-preview 2026-01-23 18:01:03 +01:00
Nathan Rowe
452adb9602 Stop immediately listing hidden files 2026-01-20 13:55:44 -07:00
Jeremy Soller
a3b80d6fde
Merge pull request #1499 from jpttrssn/multi-preview-open
feat: Add open button to multi preview
2026-01-14 11:32:21 -07:00
Jeremy Soller
e5b10fbb07 Only tab complete trailing slash if path is directory 2026-01-13 11:55:55 -05:00
Jeremy Soller
e5d4a0a46e Automatically resolve if there is only one completion 2026-01-13 11:55:55 -05:00
Jeremy Soller
2715e326ac Select first completion if current location does not exist 2026-01-13 11:55:55 -05:00
Jeremy Soller
02201940d9 Auto complete slash at end of directories 2026-01-13 11:55:55 -05:00
Jeremy Soller
705c881259 Canonicalize paths if possible when changing directory 2026-01-13 11:55:55 -05:00
Jeremy Soller
85456983c8 Allow nested path completion 2026-01-13 11:55:55 -05:00
Jeremy Soller
3b49808bc6 Allow tab and shift-tab completion in path editing 2026-01-13 11:55:55 -05:00
Jonatan Pettersson
c75845e3d3 fix: handle hidden items during shift-click 2026-01-07 16:39:43 -07:00
Jonatan Pettersson
03c5124859 feat: open multiple dirs in separate tabs 2026-01-07 16:39:43 -07:00
Jonatan Pettersson
77f33c0acc feat: Add open button to multi preview 2026-01-07 16:39:43 -07:00
Hojjat
092d25d860 fix: culled items not appearning after window resize
When a window resizes larger such that content no longer needs
scrolling, scroll_opt retains its stale offset value. Since no scroll
event fires, visible_rect was calculated with an out-of-bounds offset,
causing items at the top to be culled and not rendered.

Fix by caching content_height from each render pass and using it to
clamp scroll_opt when building visible_rect.
2026-01-07 16:28:42 -07:00
wowitsjack
26634889dc scroll to selected item when using type-to-select 2026-01-03 17:10:58 +10:00
Levi Portenier
03ec21bdc9
Merge branch 'master' into type-to-select 2025-12-30 12:44:20 -07:00