Commit graph

1050 commits

Author SHA1 Message Date
1488e2b01b Merge remote-tracking branch 'upstream/master' into local/libcosmic-path-patch
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	src/app.rs
#	src/dialog.rs
#	src/menu.rs
#	src/tab.rs
2026-08-19 22:02:40 +02:00
d78a22d87c feat: add "edit desktop entry" to the desktop file context menu
Opening a .desktop file launches the application it describes, so the
file manager offered no way to look at or change the file itself: the
only way out was a terminal. Reported upstream on 2025-05-11 and still
open.

Add an "Edit desktop entry" action to the context menu, next to the
entry own desktop actions. It opens the file with the default
text/plain handler instead of its application/x-desktop one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 20:42:34 +02:00
chris-010
3c9a78ac9f fix: accept a URI typed into the location bar from any location
The location bar inherits its type from the tab's current location
(Message::EditLocationEnable), and the view has exactly two branches, next
to the existing "TODO: allow editing other locations": a Location::Network
is edited through with_uri, anything else through with_path. Typing
smb://server/share while standing in a local folder therefore produced
Path("smb://server/share"), which is not a directory, and the navigation
was dropped. The reverse direction was broken the same way: from the
Networks view a local path was passed to with_uri and became a bogus
network location.

EditLocationSubmit now decides by parsing the text instead of by the
location it came from:

  * parses as a URL with a scheme other than "file" and has a host
    -> Location::Network, using url::Url::as_str(), which also normalizes
       away surrounding whitespace.
  * fails to parse and the current location is a Network
    -> Location::Path, with the text untrimmed, because a directory name
       may legitimately end in a space.
  * anything else is left as it was, so network:/// and foo:bar keep
    behaving exactly as before.

The reliable indicator for "this is a path" is that parsing fails, not
that the host is missing: network:/// and file:///home both parse with
has_host() == false. Verified against url 2.5.8.

An unmounted share cannot be resolved, since Tab::resolve sends network
locations through mounter.dir_info, so resolve() returns None and the
navigation would be dropped again. Navigating there is what triggers the
mount, because Cmd::NetworkScan mounts the location it is asked to scan,
so the typed URI is used as a fallback. That fallback is restricted to
input recognised by the first rule above; applying it to any network
location would let unparseable text through, and because with_uri keeps
the display name and path of the previous location, the window would look
normal while the listing stayed empty.

Known cosmetic side effect: while the share is not mounted, resolve()
yields nothing and the tab shows the raw URI as its name. It is replaced
by the proper name as soon as the mount completes.

Drafted with AI assistance (Claude Code); the change was reviewed, built
and tested by me on real hardware as described.

Signed-off-by: chris-010 <10660568+chris-010@users.noreply.github.com>
2026-08-18 16:01:32 -06:00
Hojjat
55c1b0afe0 feat: add context menu to text input and selectable text fields
chore: update libcosmic
2026-08-17 11:17:19 -06:00
Will Sheehan
95035166d3 fix infinite dialog on network mount failure 2026-08-04 23:09:19 -07:00
9e0c2726ef feat: add empty-trash action to trash view context menu
Right-clicking inside the trash view now shows 'Empty trash' when
the trash is not empty, in addition to the existing per-item
restore/delete actions and sort options.
2026-07-25 22:54:15 +02:00
30e562c8c2 fix: nav_context_menu must produce one submenu per nav item
The segmented_button widget asserts that context_menu children
count matches model length. The yoda fork was building a single
flat menu for the clicked item instead of iterating over all
nav_model items like upstream, causing an assertion panic on
right-click in the sidebar (trash, folders, etc.).

Align with upstream: iterate self.nav_model.iter() and use
menu::nav_context() instead of menu::items().
2026-07-25 22:53:11 +02:00
RipleyTom
dc36bdc8d3
fix: fixes original_path_for_trash_child 2026-07-19 14:03:04 +02:00
RipleyTom
8ef1082a4c
fix: not all files directory are trash 2026-07-18 19:13:12 +02:00
Joel
a93fc1d9ee
fix: fall back to GIO on destination open failure for MTP copies
* fix: fall back to GIO on destination open failure for MTP copies
* Preserve error source chain in non-gvfs open failure path
2026-07-15 12:42:17 -06:00
Jeremy Soller
fab53e54d6
chore: update libcosmic (#1713)
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-07-06 07:11:32 -06:00
fd4a2ba610 fix: absorb libcosmic theme-v2 API (nav_context_menu, app_popup LiveSettings)
Leyoda 2026 – GPLv3
2026-07-03 15:26:15 +02:00
Leyoda
17fc1cabbb yoda: cosmic-files customizations (squashed 21 commits)
This commit squashes the 21 local commits that customize cosmic-files for
the yoda stack, to allow a clean rebase on upstream/master.

Original commits (chronological):

- 9bcfe7a Cargo.toml: patch libcosmic via local path for dev builds
- 04abd13 yoda: depend on libcosmic-yoda (path) instead of upstream libcosmic
- 02adcc3 lockfile: libcosmic-yoda 0.1.0-yoda -> 0.1.0-yoda.2
- a025fd6 yoda: prefer cosmic-yoterm over upstream cosmic-term in terminal fallback
- e8d62ae yoda: add "Always use this app" toggle to OpenWith dialog
- 8fb2b15 yoda wayland-v5: redirect window_clipboard + cosmic-text to local forks
- 0595296 yoda: Dolphin-style quick actions toolbar under the headerbar
- 4b6d345 yoda: fix missing rename icon in toolbar
- 8b51af1 yoda: use pencil-symbolic for the Rename toolbar button
- 33a5c8f yoda: phase 2 - customizable toolbar (settings toggles per button)
- 1cf17dc yoda: phase 3 - drag-drop toolbar editor in Settings
- 11d4357 yoda: add up/down buttons next to drag handle in toolbar editor
- af843d2 yoda: direct drag-drop reorder on the toolbar itself
- 94c3e6c yoda: toolbar as segmented_button for working drag reorder
- f053819 yoda: toolbar icon-only + clean visual (Control style, 32px squares)
- 338354c Improve initial directory listing latency
- d080bc8 Resolve cosmic-files warnings without masking
- 69c35ab yoda: switch window_clipboard patch to public Forgejo fork
- 35e115f yoda: switch cosmic-text patch to public Forgejo fork
- 6f3adcd chore: clean feature-gated warnings
- 57ab1ec fix: clean files warnings for terminal build

Original tip preserved as tag backup/pre-rebase-upstream-20260524.
2026-07-03 15:21:21 +02:00
norepro
43a4228ca4
feat: support MIME subclasses in file chooser dialog 2026-07-02 17:52:14 +02:00
Ashley Wulber
908218e3e0 fix: remove background style for container around tab bar 2026-07-01 15:18:11 -04:00
Ashley Wulber
8fc5182486 fix: popup corner improvements 2026-07-01 15:18:11 -04:00
Ashley Wulber
e00725a450 chore: update for navbar popup 2026-07-01 15:18:11 -04:00
Ashley Wulber
0e761ba811 fix: no blur for desktop mode
fix: desktop blur

chore: update libcosmic

chore: update libcosmic

chore: update libcosmic
2026-07-01 15:18:11 -04:00
Ashley Wulber
6fe510a67a chore: update libcosmic 2026-07-01 15:18:09 -04:00
ZlordHUN
49107187a4
feat: view folder's content in trash
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-06-29 18:39:12 +02:00
Fred
4d6788c9fd
feat: add SHA256 checksums to file properties 2026-06-26 16:57:13 +02:00
JADella94
cd427c746c
fix: panic when a second zip extract dialog is opened
* Syncs extracted zip files on the compio executor's thread
* Close the first zip extract dialog before opening a new one to fix a panic
---------

Co-authored-by: James A DellaMorte <dellamorte.james@comcast.net>
2026-06-24 20:12:10 +02:00
Gene Wood
65f5f454be
feat: add PageUp and PageDown bindings 2026-06-22 23:37:41 +02:00
Gene Wood
53a33dbe74 Clear hover highlights when navigating with keyboard
Keyboard navigation (arrow keys) did not clear item hover state, causing
items to retain their grey hover background after the mouse left the
window, resulting in multiple items appearing highlighted simultaneously.

Fixes #1865
2026-06-18 14:41:13 -04:00
Michael Aaron Murphy
7d3487da7b fix(mime_app): unalias mime types when associating apps
Fixes associations for `.iso`, where many apps define `application/x-cd-image` instead of `application/vnd.efi.iso`.
Popsicle and GNOME Disks will now appear as exact matches for opening `.iso` files with this change.
2026-06-16 23:05:07 -04:00
Michael Aaron Murphy
e8fdb28a24
feat(mime_app): show related apps in open with dropdown in preview 2026-06-11 18:56:23 +02:00
Michael Aaron Murphy
eda8291678
fix(mime_app): track mime type app default by mime 2026-06-11 17:54:12 +02:00
Michael Aaron Murphy
6d4af69318
feat(mime_app): include text editors for text-based mime types 2026-06-11 17:29:42 +02:00
Michael Aaron Murphy
256a6cba19
feat(mime_app): include video players for audio mime types 2026-06-11 17:29:19 +02:00
Michael Aaron Murphy
3cd0d0c00a
refactor: move mime app logic to mime_app module 2026-06-11 17:29:17 +02:00
Michael Aaron Murphy
64998b37a1
fix: do not use application/x-zerosize as mime type for empty files 2026-06-11 15:52:30 +02:00
Jeremy Soller
48eef3906d
improv: use sort-icons instead of unicode arrow glyphs (#1846)
This replaces the up/down arrow glyphs in the context menu for sort
direction with actual sort icons.
This way the icon is not dependent on the user's system font. For
example "Adwaita Sans" contains the up arrow but not the down arrow,
which means the arrow changes shape (depending on the chosen fallback
font) when you switch direction.

<img width="508" height="498" alt="Screenshot_2026-06-09_14-29-58"
src="https://github.com/user-attachments/assets/265eada7-d7c2-4f76-b63d-38c1879e6e85"
/>
<img width="515" height="453" alt="Screenshot_2026-06-09_14-30-09"
src="https://github.com/user-attachments/assets/d2634e96-5245-422a-b236-c49d7c65e79c"
/>

I took the liberty to move the icon from the end of the word to the left
side and also preserve an empty space when it's not drawn. It may need
UX approval.

Relevant mattermost thread:
https://chat.pop-os.org/pop-os/pl/i3nphjm85fbpdfmnd9pt9abs6y

Fixes https://github.com/pop-os/cosmic-files/issues/1844

___
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-06-10 16:56:30 -06:00
Hojjat
42577aa467 fix: take user's Added Association into account when hiding apps 2026-06-09 16:51:21 -06:00
Hojjat
4ac289f40a improv: lazy load app icons for mime apps 2026-06-09 16:51:21 -06:00
Michael Aaron Murphy
c6c9eac97e fix: hide apps without declared mimetype support 2026-06-09 18:10:24 -04:00
Hojjat
af65a6b1c0 improv: use sort-icons instead of unicode arrow glyphs 2026-06-09 14:36:14 -06:00
Michael Aaron Murphy
814b49114b
fix: sort other apps section 2026-06-08 18:24:52 +02:00
Michael Aaron Murphy
7c7970d0c0
fix: hide no-display apps only in other category 2026-06-06 20:26:45 +02:00
Michael Aaron Murphy
fc8f2b4000
fix: hide no-display apps in open-with select 2026-06-06 20:09:36 +02:00
Michael Aaron Murphy
fca0753781 fix: gate desktop features for no-default-features build 2026-06-02 09:52:14 -04:00
Michael Aaron Murphy
bb1ae9d458 feat: reload mime app cache when mime app config is updated 2026-06-02 09:52:14 -04:00
Michael Aaron Murphy
53cfeebe57 feat: improve mime app detection & do it faster 2026-06-02 09:52:14 -04:00
Hojjat
355423a027 chore: fixes after libcosmic update 2026-05-26 14:14:02 -04:00
Mario
784200a253
Fix 24h time format in file dialog (#1812)
* Assign parameter config the proper way
* Don't overwrite military time

---------

Co-authored-by: Rrogntudju <rrogntudju@example.com>
2026-05-18 11:57:04 -06:00
Oleg Bespalov
03e537abad feat: add text preview for thumbnails and gallery
Preview text files (≤8 MiB) in grid and gallery: read up to 256 KiB,
handle invalid UTF-8, skip empty files. Add unit tests.

Lets users peek at .txt without opening; size caps avoid blocking the UI.
2026-05-15 14:09:14 -06:00
Levi Portenier
accb9fd418
fix: don't overwrite military time in Message::Config() (#1803)
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x ] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.

Closes #1798
2026-05-12 17:05:30 -06:00
Jeremy Soller
048ed3187b
Merge pull request #1793 from pop-os/icons
Fix small file icons from alternative icon themes
2026-05-12 09:13:49 -06:00
Rrogntudju
b4df354585 don't overwrite military time 2026-05-11 20:07:35 -04:00
lorduskordus
4b5c6d2c1b fix(i18n): use separate 'rename' keys for menu and dialog confirm button 2026-05-11 16:49:33 -06:00
Jeremy Soller
3548615d40
Merge pull request #1777 from norepro/add-clear-recents-button
feat(files): Add button to clear recents
2026-05-11 15:04:34 -06:00