Fix icon extraction, drop overlay styling, and card padding

- Fix upsert_appimage returning 0 for existing records by falling
  back to a SELECT query when last_insert_rowid is 0
- Replace --appimage-offset execution with binary squashfs magic scan
  to avoid hanging on AppImages with custom AppRun scripts
- Add 5-second timeout fallback if binary scan fails
- Extract desktop files from usr/share/applications/ for reverse-DNS
  named entries that root-level *.desktop glob misses
- Add root-level png/svg fallback in icon search
- Add CSS for drop overlay scrim, drop zone card, and drop zone icon
- Add card padding (24px 20px) so content does not touch card edges
- Always scan on startup to discover new AppImages
This commit is contained in:
lashman
2026-02-27 17:49:04 +02:00
parent 423323d5a9
commit 6526f92a6f
5 changed files with 132 additions and 14 deletions

View File

@@ -784,11 +784,8 @@ impl DriftwoodWindow {
}
}
// Auto-scan on startup if enabled
let settings = self.settings();
if settings.boolean("auto-scan-on-startup") {
self.trigger_scan();
}
// Always scan on startup to discover new AppImages and complete pending analyses
self.trigger_scan();
// Check for orphaned desktop entries in the background
let toast_overlay = self.imp().toast_overlay.get().unwrap().clone();
@@ -878,7 +875,8 @@ impl DriftwoodWindow {
let size_unchanged = ex.size_bytes == d.size_bytes as i64;
let mtime_unchanged = modified.as_deref() == ex.file_modified.as_deref();
let analysis_done = ex.analysis_status.as_deref() == Some("complete");
if size_unchanged && mtime_unchanged && analysis_done {
let has_icon = ex.icon_path.is_some();
if size_unchanged && mtime_unchanged && analysis_done && has_icon {
skipped_count += 1;
continue;
}