From 4cf8274b2b035bbdffb81e2d3fb0da863cfdc9cf Mon Sep 17 00:00:00 2001 From: Ian McInerney Date: Wed, 29 Jan 2025 19:34:00 +0000 Subject: [PATCH] Silence errors from file watchers when adding files The file watcher can throw errors on Linux that are very cryptic and actually not very useful to users, so let's hide them since there isn't really any problem that comes from this. Fixes https://gitlab.com/kicad/code/kicad/-/issues/15717 --- eeschema/sch_base_frame.cpp | 6 +++++- kicad/project_tree_pane.cpp | 10 +++++++--- pcbnew/pcb_base_frame.cpp | 6 +++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/eeschema/sch_base_frame.cpp b/eeschema/sch_base_frame.cpp index 9da56af26a..764d51880f 100644 --- a/eeschema/sch_base_frame.cpp +++ b/eeschema/sch_base_frame.cpp @@ -705,7 +705,11 @@ void SCH_BASE_FRAME::setSymWatcher( const LIB_ID* aID ) fn.AssignDir( m_watcherFileName.GetPath() ); fn.DontFollowLink(); - m_watcher->Add( fn ); + { + // Silence OS errors that come from the watcher + wxLogNull silence; + m_watcher->Add( fn ); + } } diff --git a/kicad/project_tree_pane.cpp b/kicad/project_tree_pane.cpp index 0fc46b8b05..9504c6a7b4 100644 --- a/kicad/project_tree_pane.cpp +++ b/kicad/project_tree_pane.cpp @@ -1498,9 +1498,13 @@ void PROJECT_TREE_PANE::FileWatcherReset() if( wxFileName::IsDirReadable( path ) ) // linux whines about watching protected dir { - fn.AssignDir( path ); - m_watcher->Add( fn ); - total_watch_count++; + { + // Silence OS errors that come from the watcher + wxLogNull silence; + fn.AssignDir( path ); + m_watcher->Add( fn ); + total_watch_count++; + } // if kid is a subdir, push in list to explore it later if( itemData->IsPopulated() && m_TreeProject->GetChildrenCount( kid ) ) diff --git a/pcbnew/pcb_base_frame.cpp b/pcbnew/pcb_base_frame.cpp index 09531be396..263c8a3003 100644 --- a/pcbnew/pcb_base_frame.cpp +++ b/pcbnew/pcb_base_frame.cpp @@ -1172,7 +1172,11 @@ void PCB_BASE_FRAME::setFPWatcher( FOOTPRINT* aFootprint ) wxLogTrace( "KICAD_LIB_WATCH", "Add watch: %s", fn.GetPath() ); - m_watcher->Add( fn ); + { + // Silence OS errors that come from the watcher + wxLogNull silence; + m_watcher->Add( fn ); + } }