/// <returns>\r
/// True if added, false if error.\r
/// </returns>\r
- public bool AddToQueue()\r
+ public AddQueueError AddToQueue()\r
{\r
if (this.ScannedSource == null || string.IsNullOrEmpty(this.ScannedSource.ScanPath) || this.ScannedSource.Titles.Count == 0)\r
{\r
- this.errorService.ShowMessageBox(Resources.Main_ScanSource, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
- return false;\r
+ return new AddQueueError(Resources.Main_ScanSource, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
}\r
\r
if (string.IsNullOrEmpty(this.CurrentTask.Destination))\r
{\r
- this.errorService.ShowMessageBox(Resources.Main_SetDestination, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
- return false;\r
+ return new AddQueueError(Resources.Main_SetDestination, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
}\r
\r
if (File.Exists(this.CurrentTask.Destination))\r
MessageBoxResult result = this.errorService.ShowMessageBox(string.Format(Resources.Main_QueueOverwritePrompt, Path.GetFileName(this.CurrentTask.Destination)), Resources.Question, MessageBoxButton.YesNo, MessageBoxImage.Question);\r
if (result == MessageBoxResult.No)\r
{\r
- return false;\r
- } \r
+ return null; // Handled by the above action.\r
+ }\r
}\r
\r
if (!DirectoryUtilities.IsWritable(Path.GetDirectoryName(this.CurrentTask.Destination), false, this.errorService))\r
{\r
- this.errorService.ShowMessageBox(Resources.Main_NoPermissionsOrMissingDirectory, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
- return false;\r
+ return new AddQueueError(Resources.Main_NoPermissionsOrMissingDirectory, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
}\r
\r
-\r
if (!DriveUtilities.HasMinimumDiskSpace(\r
this.Destination,\r
this.userSettingService.GetUserSetting<long>(UserSettingConstants.PauseOnLowDiskspaceLevel)))\r
{\r
- this.errorService.ShowMessageBox(Resources.Main_LowDiskspace, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
- return false;\r
+ return new AddQueueError(Resources.Main_LowDiskspace, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
}\r
\r
// Sanity check the filename\r
if (!string.IsNullOrEmpty(this.Destination) && FileHelper.FilePathHasInvalidChars(this.Destination))\r
{\r
- this.errorService.ShowMessageBox(Resources.Main_InvalidDestination, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
this.NotifyOfPropertyChange(() => this.Destination);\r
- return false;\r
+ return new AddQueueError(Resources.Main_InvalidDestination, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
}\r
\r
if (this.Destination == this.ScannedSource.ScanPath)\r
{\r
- this.errorService.ShowMessageBox(Resources.Main_SourceDestinationMatchError, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
this.Destination = null;\r
- return false;\r
+ return new AddQueueError(Resources.Main_SourceDestinationMatchError, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
}\r
\r
if (this.scannedSource != null && !string.IsNullOrEmpty(this.scannedSource.ScanPath) && this.Destination.ToLower() == this.scannedSource.ScanPath.ToLower())\r
{\r
- this.errorService.ShowMessageBox(Resources.Main_MatchingFileOverwriteWarning, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
- return false;\r
+ return new AddQueueError(Resources.Main_MatchingFileOverwriteWarning, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
}\r
\r
QueueTask task = new QueueTask(new EncodeTask(this.CurrentTask), HBConfigurationFactory.Create(), this.ScannedSource.ScanPath, this.SelectedPreset);\r
}\r
else\r
{\r
- this.errorService.ShowMessageBox(Resources.Main_DuplicateDestinationOnQueue, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Warning);\r
- return false;\r
+ return new AddQueueError(Resources.Main_DuplicateDestinationOnQueue, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Warning);\r
}\r
\r
if (!this.IsEncoding)\r
this.ProgramStatusLabel = string.Format(Resources.Main_XEncodesPending, this.queueProcessor.Count);\r
}\r
\r
- return true;\r
+ return null;\r
}\r
\r
/// <summary>\r
foreach (Title title in this.ScannedSource.Titles)\r
{\r
this.SelectedTitle = title;\r
- if (!this.AddToQueue())\r
+ var addError = this.AddToQueue();\r
+ if (addError != null)\r
{\r
- MessageBoxResult result = this.errorService.ShowMessageBox(Resources.Main_ContinueAddingToQueue, Resources.Question, MessageBoxButton.YesNo, MessageBoxImage.Question);\r
+ MessageBoxResult result = this.errorService.ShowMessageBox(addError.Message + Environment.NewLine + Environment.NewLine + Resources.Main_ContinueAddingToQueue, addError.Header, MessageBoxButton.YesNo, addError.ErrorType);\r
\r
if (result == MessageBoxResult.No)\r
{\r
foreach (SelectionTitle title in tasks)\r
{\r
this.SelectedTitle = title.Title;\r
- this.AddToQueue();\r
+ var addError = this.AddToQueue();\r
+ if (addError != null)\r
+ {\r
+ MessageBoxResult result = this.errorService.ShowMessageBox(addError.Message + Environment.NewLine + Environment.NewLine + Resources.Main_ContinueAddingToQueue, addError.Header, MessageBoxButton.YesNo, addError.ErrorType);\r
+\r
+ if (result == MessageBoxResult.No)\r
+ {\r
+ break;\r
+ }\r
+ }\r
}\r
}, this.selectedPreset);\r
\r
}\r
\r
// Create the Queue Task and Start Processing\r
- if (this.AddToQueue())\r
+ var addError = this.AddToQueue();\r
+ if (addError == null)\r
{\r
this.IsEncoding = true;\r
this.queueProcessor.Start(this.userSettingService.GetUserSetting<bool>(UserSettingConstants.ClearCompletedFromQueue)); \r
}\r
+ else\r
+ {\r
+ this.errorService.ShowMessageBox(\r
+ addError.Message,\r
+ addError.Header,\r
+ addError.Buttons,\r
+ addError.ErrorType);\r
+ }\r
}\r
\r
/// <summary>\r