feat(start): recent files as a list, icons or large previews

Three toggles beside the Recent Documents title switch the panel between
the existing list, a grid of thumbnail tiles and one large preview per
file. The choice is kept in the recent section of the app config.

Refs #1494

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Opus 5.5 committed 2026-10-13 21:46:40 +03:00
1 parent 58b2f22c09
commit adbcac8a02
29 files changed
+244 -2

No files matched your search

+2
View File
@@ -1326,6 +1326,7 @@ impl OpenCADStudio {
.map(|p| p.to_string_lossy().into_owned())
.collect(),
limit: self.recent_limit,
view: self.recent_view,
},
start: crate::app::config::StartConfig {
section: self.start_section,
@@ -1397,6 +1398,7 @@ impl OpenCADStudio {
);
self.recent_files.truncate(self.recent_limit);
self.recent_limit_input = self.recent_limit.to_string();
self.recent_view = cfg.recent.view;
// Thumbnails are decoded by a background task queued at boot
// (`refresh_recent_thumbs`) — never here on the boot path.
self.start_section = cfg.start.section;
+6
View File
@@ -1153,6 +1153,12 @@ impl OpenCADStudio {
Task::none()
}
Message::SetRecentView(view) => {
self.recent_view = view;
self.save_config();
Task::none()
}
Message::RecentLimitInput(s) => {
// Keep only digits while typing; applied on Enter (SetRecentLimit).
self.recent_limit_input = s.chars().filter(|c| c.is_ascii_digit()).collect();