Add AppImage metadata extraction, display, and bug fixes

This commit is contained in:
2026-02-27 18:31:07 +02:00
parent 4211ff5ce0
commit 87f4e5d7bf
13 changed files with 1239 additions and 24 deletions

View File

@@ -876,7 +876,12 @@ impl DriftwoodWindow {
let mtime_unchanged = modified.as_deref() == ex.file_modified.as_deref();
let analysis_done = ex.analysis_status.as_deref() == Some("complete");
let has_icon = ex.icon_path.is_some();
if size_unchanged && mtime_unchanged && analysis_done && has_icon {
// Also re-analyze if AppStream metadata was never extracted
// (covers upgrades from older schema versions)
let has_appstream = ex.appstream_id.is_some()
|| ex.generic_name.is_some()
|| ex.has_signature;
if size_unchanged && mtime_unchanged && analysis_done && has_icon && has_appstream {
skipped_count += 1;
continue;
}
@@ -965,9 +970,13 @@ impl DriftwoodWindow {
}
let window_weak4 = window_weak3.clone();
let refresh_timer_clear = refresh_timer.clone();
let timer_id = glib::timeout_add_local_once(
std::time::Duration::from_millis(300),
move || {
// Clear the stored SourceId so nobody tries to remove a fired timer
refresh_timer_clear.set(None);
if let Some(window) = window_weak4.upgrade() {
let db = window.database();
let lib_view = window.imp().library_view.get().unwrap();