Example #1
0
		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 ();
		}
Example #2
0
		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);
		}
Example #3
0
        void RescanPhotos()
        {
            if (ActiveSource == null)
                return;

            photo_scan_running = true;
            PhotoList pl = new PhotoList ();
            Photos.Collection = pl;
            ActiveSource.StartPhotoScan (this, pl);
            FireEvent (ImportEvent.PhotoScanStarted);
        }
Example #4
0
 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 ());
 }
Example #5
0
 protected virtual void ScanPhotos(ImportController controller, PhotoList photo_list)
 {
     ScanPhotoDirectory (controller, Root, photo_list);
     ThreadAssist.ProxyToMain (() => controller.PhotoScanFinished ());
 }
Example #6
0
 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;
     }
 }
Example #7
0
        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));
        }
Example #8
0
        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 ()));
            }
        }