public RepairDialog (IBrowsableCollection collection) : base ("RepairDialog.ui", "repair_dialog") { source = collection; missing = new PhotoList (); FindMissing (); TrayView view = new TrayView (missing); view_scrolled.Add (view); this.ShowAll (); }
void RescanPhotos () { if (ActiveSource == null) return; photo_scan_running = true; var pl = new PhotoList (); Photos.Collection = pl; ActiveSource.PhotoFoundEvent += OnPhotoFound; ActiveSource.PhotoScanFinishedEvent += OnPhotoScanFinished; ActiveSource.StartPhotoScan (RecurseSubdirectories, MergeRawAndJpeg); FireEvent (ImportEvent.PhotoScanStarted); }
void RescanPhotos() { if (ActiveSource == null) return; photo_scan_running = true; PhotoList pl = new PhotoList (); Photos.Collection = pl; ActiveSource.StartPhotoScan (this, pl); FireEvent (ImportEvent.PhotoScanStarted); }
protected override void ScanPhotos(ImportController controller, PhotoList photo_list) { foreach (var uri in uris) { Log.Debug ("Scanning " + uri); ScanPhotoDirectory (controller, uri, photo_list); } ThreadAssist.ProxyToMain (() => controller.PhotoScanFinished ()); }
protected virtual void ScanPhotos(ImportController controller, PhotoList photo_list) { ScanPhotoDirectory (controller, Root, photo_list); ThreadAssist.ProxyToMain (() => controller.PhotoScanFinished ()); }
protected void ScanPhotoDirectory(ImportController controller, SafeUri uri, PhotoList photo_list) { var enumerator = new RecursiveFileEnumerator (uri) { Recurse = controller.RecurseSubdirectories, CatchErrors = true, IgnoreSymlinks = true }; foreach (var file in enumerator) { if (ImageFile.HasLoader (new SafeUri (file.Uri.ToString(), true))) { var info = new FileImportInfo (new SafeUri (file.Uri.ToString (), true)); ThreadAssist.ProxyToMain (() => photo_list.Add (info)); } if (!run_photoscanner) return; } }
public void StartPhotoScan(ImportController controller, PhotoList photo_list) { if (PhotoScanner != null) { run_photoscanner = false; PhotoScanner.Join (); } run_photoscanner = true; PhotoScanner = ThreadAssist.Spawn (() => ScanPhotos (controller, photo_list)); }
protected void ScanPhotoDirectory(ImportController controller, SafeUri uri, PhotoList photo_list) { var enumerator = new RecursiveFileEnumerator (uri) { Recurse = controller.RecurseSubdirectories, CatchErrors = true, IgnoreSymlinks = true }; var infos = new List<FileImportInfo> (); foreach (var file in enumerator) { if (ImageFile.HasLoader (new SafeUri (file.Uri.ToString(), true))) { infos.Add (new FileImportInfo (new SafeUri (file.Uri.ToString(), true))); } if (infos.Count % 10 == 0 || infos.Count < 10) { var to_add = infos; // prevents race condition ThreadAssist.ProxyToMain (() => photo_list.Add (to_add.ToArray ())); infos = new List<FileImportInfo> (); } if (!run_photoscanner) return; } if (infos.Count > 0) { var to_add = infos; // prevents race condition ThreadAssist.ProxyToMain (() => photo_list.Add (to_add.ToArray ())); } }