@@ -445,7 +445,7 @@ def _build_dlc_group(self) -> QGroupBox:
445445 # Processor selection
446446 processor_path_layout = QHBoxLayout ()
447447 self .processor_folder_edit = QLineEdit ()
448- self .processor_folder_edit .setText (default_processors_dir ())
448+ self .processor_folder_edit .setText (self . _settings_store . get_processor_folder ( default = default_processors_dir () ))
449449 processor_path_layout .addWidget (self .processor_folder_edit )
450450
451451 self .browse_processor_folder_button = QPushButton ("Browse..." )
@@ -1081,10 +1081,11 @@ def _action_browse_directory(self) -> None:
10811081
10821082 def _action_browse_processor_folder (self ) -> None :
10831083 """Browse for processor folder."""
1084- current_path = self .processor_folder_edit .text () or default_processors_dir ()
1084+ current_path = self .processor_folder_edit .text (). strip () or default_processors_dir ()
10851085 directory = QFileDialog .getExistingDirectory (self , "Select processor folder" , current_path )
10861086 if directory :
10871087 self .processor_folder_edit .setText (directory )
1088+ self ._settings_store .set_processor_folder (directory )
10881089 self ._refresh_processors ()
10891090
10901091 def _action_open_recording_folder (self ) -> None :
@@ -1138,10 +1139,17 @@ def _refresh_processors(self) -> None:
11381139 self .processor_combo .addItem ("No Processor" , None )
11391140
11401141 selected_folder = self .processor_folder_edit .text ().strip ()
1141- if Path (selected_folder ).exists ():
1142- self ._scanned_processors = scan_processor_folder (selected_folder )
1142+ selected_path = Path (selected_folder ).expanduser () if selected_folder else None
1143+
1144+ if selected_path is not None and selected_path .is_dir ():
1145+ resolved_folder = str (selected_path .resolve ())
1146+ self ._settings_store .set_processor_folder (resolved_folder )
1147+ self ._scanned_processors = scan_processor_folder (resolved_folder )
1148+ source_text = resolved_folder
11431149 else :
11441150 self ._scanned_processors = scan_processor_package ("dlclivegui.processors" )
1151+ source_text = "package dlclivegui.processors"
1152+
11451153 self ._processor_keys = list (self ._scanned_processors .keys ())
11461154
11471155 for key in self ._processor_keys :
@@ -1150,9 +1158,7 @@ def _refresh_processors(self) -> None:
11501158 self .processor_combo .addItem (display_name , key )
11511159
11521160 self .processor_combo .update_shrink_width ()
1153- self .statusBar ().showMessage (
1154- f"Found { len (self ._processor_keys )} processor(s) in package dlclivegui.processors" , 3000
1155- )
1161+ self .statusBar ().showMessage (f"Found { len (self ._processor_keys )} processor(s) in { source_text } " , 3000 )
11561162
11571163 # ------------------------------------------------------------------
11581164 # Recording path preview and session name persistence
@@ -2157,6 +2163,9 @@ def closeEvent(self, event: QCloseEvent) -> None: # pragma: no cover - GUI beha
21572163
21582164 # Remember model path on exit
21592165 self ._model_path_store .save_if_valid (self .model_path_edit .text ().strip ())
2166+ # Remember processor folder on exit
2167+ if hasattr (self , "processor_folder_edit" ):
2168+ self ._settings_store .set_processor_folder (self .processor_folder_edit .text ().strip ())
21602169
21612170 # Close the window
21622171 super ().closeEvent (event )
0 commit comments