mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-04 16:56:59 +01:00
fix(core,fuse,gui): UI/UX quick wins from the audit (phase 0)
- Move Google Takeout import out of Settings; Photos owns it, and the
Takeout page's back button returns there.
- Trash from the file browser is Undo-only (no confirm); F2 on a
multi-selection explains why it does nothing.
- Ask before sign-out, rejecting an invitation, removing someone's access,
removing a public link, and switching a folder to on-demand.
- Clearer offline wording ("Make available offline" / "Make online only")
with dedicated offline, online-only and upload symbolic icons; the pin row
is hidden for folders.
- Search hits report whether a file is cached, so search results show the
offline badge.
- Activity log: readable Empty Trash / link entries, distinct icons, and
error/warning styling for failures and conflicts.
- Proper singular/plural counts instead of "item(s)" / "archive(s)".
- Name earlier versions by save time instead of revision id; capitalise
the public link role; stop-syncing uses a stop icon, not a trash can.
- Label the Photos Upload and "Show on map" buttons; toast when a
thumbnail build finishes; the versions button follows the mount state.
- Mode switches and device mutations reload both sync pages.
This commit is contained in:
1 parent
690b91deab
commit
cc308ac25a
27 files changed
+341
-190
No files matched your search
@@ -810,9 +810,14 @@ fn handle_control_conn(core: &Core, username: &str, mountpoint: &Path, stream: U
|
||||
},
|
||||
Ok(CtlRequest::EmptyTrash) => match core.empty_trash() {
|
||||
Ok(n) => {
|
||||
core.log_activity(ActivityKind::EmptyTrash, format!("{n} item(s)"), "", true);
|
||||
let items = if n == 1 {
|
||||
"1 item".to_string()
|
||||
} else {
|
||||
format!("{n} items")
|
||||
};
|
||||
core.log_activity(ActivityKind::EmptyTrash, items.clone(), "", true);
|
||||
CtlResponse::Ok {
|
||||
message: format!("emptied trash ({n} item(s))"),
|
||||
message: format!("emptied trash ({items})"),
|
||||
}
|
||||
}
|
||||
Err(e) => CtlResponse::error(e),
|
||||
|
||||
@@ -3865,6 +3865,12 @@ impl Core {
|
||||
size: node_size(&h.node),
|
||||
modified: h.node.modification_time,
|
||||
pinned: pinned.contains(&h.node.uid.to_string()),
|
||||
cached: !h.node.is_folder()
|
||||
&& self.cache.is_cached(
|
||||
&h.node.uid,
|
||||
h.node.modification_time,
|
||||
node_size(&h.node),
|
||||
),
|
||||
uid: h.node.uid.to_string(),
|
||||
mounted_path: roots.resolve(&h.path),
|
||||
path: h.path,
|
||||
@@ -3932,6 +3938,12 @@ impl Core {
|
||||
size: node_size(&hit.node),
|
||||
modified: hit.node.modification_time,
|
||||
pinned: is_pinned,
|
||||
cached: !hit.node.is_folder()
|
||||
&& self.cache.is_cached(
|
||||
&hit.node.uid,
|
||||
hit.node.modification_time,
|
||||
node_size(&hit.node),
|
||||
),
|
||||
uid,
|
||||
mounted_path: roots.resolve(&hit.path),
|
||||
path: hit.path,
|
||||
|
||||
Reference in new issue
Block a user