public static bool?ShowDialogTopMost(bool showViewerWarning)
        {
            var recommendPdfArchitectWindow = new RecommendPdfArchitectWindow(showViewerWarning);

            TopMostHelper.ShowDialogTopMost(recommendPdfArchitectWindow, false);
            return(recommendPdfArchitectWindow.DialogResult);
        }
예제 #2
0
        private void ShowConversionProgressDialog()
        {
            var conversionStatusForm = new ConversionProgressWindow();

            conversionStatusForm.ApplyJob(Job);
            TopMostHelper.ShowDialogTopMost(conversionStatusForm, true);
        }
예제 #3
0
        public static MessageWindowResponse ShowTopMost(string message, string caption, MessageWindowButtons buttons, MessageWindowIcon icon)
        {
            var messageWindow = new MessageWindow(message, caption, buttons, icon);

            TopMostHelper.ShowDialogTopMost(messageWindow, false);
            return(messageWindow.DialogResponse);
        }
예제 #4
0
        private bool LaunchSaveFileForRetyping(SaveFileDialog saveFileDialog)
        {
            var result = TopMostHelper.ShowDialogTopMost(saveFileDialog, !Job.Profile.SkipPrintDialog);

            if (result != DialogResult.OK)
            {
                Logger.Info("User cancelled the save dialog. No file will be created.");
                WorkflowStep = WorkflowStep.AbortedByUser;
                return(false);
            }

            try
            {
                var outputFile = saveFileDialog.FileName;
                if (!OutputFormatHelper.HasValidExtension(outputFile, Job.Profile.OutputFormat))
                {
                    outputFile = OutputFormatHelper.EnsureValidExtension(outputFile, Job.Profile.OutputFormat);
                }

                Job.OutputFilenameTemplate = outputFile;
                return(true);
            }
            catch (PathTooLongException)
            {
                Logger.Error("Filename (+ path) from savefile dialog is too long.");
                var message = _translator.GetTranslation("InteractiveWorkflow", "SelectedPathTooLong", "The total length of path and filename is too long.\r\nPlease use a shorter name.");
                var caption = _translator.GetTranslation("InteractiveWorkflow", "SelectDestination", "Select destination");
                MessageWindow.ShowTopMost(message, caption, MessageWindowButtons.OK, MessageWindowIcon.Warning);
                return(LaunchSaveFileForRetyping(saveFileDialog));
            }
        }
예제 #5
0
        protected override bool QuerySignaturePassword()
        {
            if (!string.IsNullOrEmpty(Job.Profile.PdfSettings.Signature.SignaturePassword))
            {
                Job.Passwords.PdfSignaturePassword = Job.Profile.PdfSettings.Signature.SignaturePassword;
                return(true);
            }

            var passwordWindow = new SignaturePasswordWindow(PasswordMiddleButton.Skip, Job.Profile.PdfSettings.Signature.CertificateFile);

            TopMostHelper.ShowDialogTopMost(passwordWindow, true);

            if (passwordWindow.SignaturePasswordViewModel.Result == SignaturePasswordResult.StorePassword)
            {
                Job.Passwords.PdfSignaturePassword = passwordWindow.Password;
                return(true);
            }
            if (passwordWindow.SignaturePasswordViewModel.Result == SignaturePasswordResult.Skip)
            {
                Job.Profile.PdfSettings.Signature.Enabled = false;
                Logger.Info("User skipped Signature Password. Signing disabled.");
                return(true);
            }

            Cancel = true;
            Logger.Warn("Cancelled the signature password dialog. No PDF will be created.");
            WorkflowStep = WorkflowStep.AbortedByUser;
            return(false);
        }
예제 #6
0
        private void SettingsButton_OnClick(object sender, RoutedEventArgs e)
        {
            var vm = (PrintJobViewModel)DataContext;

            TopMostHelper.UndoTopMostWindow(this);
            _settings.ApplicationSettings.LastUsedProfileGuid = vm.SelectedProfile.Guid;

            var window = new ProfileSettingsWindow(_settings);

            if (window.ShowDialog() == true)
            {
                _settings = window.Settings;

                vm.Profiles            = _settings.ConversionProfiles;
                vm.ApplicationSettings = _settings.ApplicationSettings;
                vm.SelectProfileByGuid(_settings.ApplicationSettings.LastUsedProfileGuid);
            }
        }
예제 #7
0
 public TimeServerPasswordResponse ShowDialogTopMost()
 {
     TopMostHelper.ShowDialogTopMost(this, false);
     return(Response);
 }
예제 #8
0
        public static void ShowDialogTopMost()
        {
            var welcomeWindow = new WelcomeWindow();

            TopMostHelper.ShowDialogTopMost(welcomeWindow, true);
        }
예제 #9
0
        private static void ShowPlusHintWindow()
        {
            var welcomeWindow = new PlusHintWindow();

            TopMostHelper.ShowDialogTopMost(welcomeWindow, true);
        }
        public static bool ShowDialogTopMost(ActionResultDict actionResultDict)
        {
            var window = new DefectiveProfilesWindow(actionResultDict);

            return(TopMostHelper.ShowDialogTopMost(window, true) == true);
        }
예제 #11
0
        public static void LaunchNewUpdateForm(Object sender, UpdateEventArgs eventArgs)
        {
            string caption = TranslationHelper.TranslatorInstance.GetFormattedTranslation("UpdateManager", "PDFCreatorUpdate",
                                                                                          "PDFCreator Update");
            string message = TranslationHelper.TranslatorInstance.GetFormattedTranslation("UpdateManager", "NewUpdateMessage",
                                                                                          "The new version [{0}] is available.\r\nWould you like to download the new version?", OnlineVersion.Version);

            var response = MessageWindow.ShowTopMost(message, caption, MessageWindowButtons.YesLaterNo, MessageWindowIcon.PDFCreator);

            if (response == MessageWindowResponse.Yes)
            {
                if (EditionFactory.Instance.Edition.AutomaticUpdate)
                {
                    try
                    {
                        bool done = false;

                        while (!done)
                        {
                            var  downloadWindow = new UpdateDownloadWindow(OnlineVersion.DownloadUrl);
                            bool?result         = TopMostHelper.ShowDialogTopMost(downloadWindow, true);

                            if (result != true)
                            {
                                done = true;
                                continue;
                            }

                            if (FileUtil.Instance.VerifyMd5(downloadWindow.DownloadedFile, OnlineVersion.FileHash))
                            {
                                done = true;
                                ThreadManager.Instance.UpdateAfterShutdownAction = () => Process.Start(downloadWindow.DownloadedFile);
                                continue;
                            }

                            message = TranslationHelper.TranslatorInstance.GetFormattedTranslation("UpdateManager", "DownloadHashErrorMessage",
                                                                                                   "The MD5 hash of the downloaded file does not match the expected hash. It is possible that the file has been damaged during the download. Do you want to retry the download?", OnlineVersion.Version);
                            var res = MessageWindow.ShowTopMost(message, caption, MessageWindowButtons.YesNo, MessageWindowIcon.Warning);

                            if (res != MessageWindowResponse.No)
                            {
                                continue;
                            }

                            ThreadManager.Instance.UpdateAfterShutdownAction = () => Process.Start(downloadWindow.DownloadedFile);
                            done = true;
                        }
                    }
                    catch (Exception)
                    {
                        message = TranslationHelper.TranslatorInstance.GetFormattedTranslation("UpdateManager", "DownloadErrorMessage",
                                                                                               "There was a problem during the download. Do you want to download the update from the website instead?", OnlineVersion.Version);
                        var res = MessageWindow.ShowTopMost(message, caption, MessageWindowButtons.YesNo, MessageWindowIcon.PDFCreator);

                        if (res == MessageWindowResponse.Yes)
                        {
                            Process.Start(OnlineVersion.DownloadUrl);
                        }
                    }
                }
                else
                {
                    Process.Start(Urls.PdfCreatorDownloadUrl);
                }
            }

            if (response != MessageWindowResponse.Later)
            {
                eventArgs.SkipVersion = true;
            }
        }
예제 #12
0
        public static bool?ShowDialogTopMost()
        {
            var w = new MainWindow();

            return(TopMostHelper.ShowDialogTopMost(w, true));
        }
예제 #13
0
        public static void ShowDialogTopMost()
        {
            var licenseWindow = new LicenseWindow();

            TopMostHelper.ShowDialogTopMost(licenseWindow, true);
        }
예제 #14
0
 public SmtpPasswordResponse ShowDialogTopMost()
 {
     TopMostHelper.ShowDialogTopMost(this, false);
     return(Response);
 }
예제 #15
0
        protected override void QueryTargetFile()
        {
            if (!Job.Profile.SkipPrintDialog)
            {
                Job.ApplyMetadata();
                var w     = new PrintJobWindow();
                var model = new PrintJobViewModel(Job.JobInfo, Job.Profile);
                w.DataContext = model;

                if ((TopMostHelper.ShowDialogTopMost(w, true) != true) || model.PrintJobAction == PrintJobAction.Cancel)
                {
                    Cancel       = true;
                    WorkflowStep = WorkflowStep.AbortedByUser;
                    return;
                }

                if (model.PrintJobAction == PrintJobAction.ManagePrintJobs)
                {
                    throw new ManagePrintJobsException();
                }

                Job.Profile = model.SelectedProfile.Copy();
                Job.ApplyMetadata();

                if (model.PrintJobAction == PrintJobAction.EMail)
                {
                    Job.SkipSaveFileDialog          = true;
                    Job.Profile.EmailClient.Enabled = true;
                    Job.Profile.AutoSave.Enabled    = false;
                    Job.Profile.OpenViewer          = false;
                }
            }

            if (Job.SkipSaveFileDialog)
            {
                ITempFolderProvider tempFolderProvider = JobInfoQueue.Instance;

                var sendFilesFolder = _pathSafe.Combine(tempFolderProvider.TempFolder, "Job" + Job.JobInfo.SourceFiles[0].JobId + "_SendFiles");
                Directory.CreateDirectory(sendFilesFolder);
                var filePath = _pathSafe.Combine(sendFilesFolder, Job.ComposeOutputFilename());
                filePath = FileUtil.Instance.EllipsisForTooLongPath(filePath);
                Job.OutputFilenameTemplate = filePath;
            }
            else
            {
                var saveFileDialog = new SaveFileDialog();
                saveFileDialog.Title   = _translator.GetTranslation("InteractiveWorkflow", "SelectDestination", "Select destination");
                saveFileDialog.Filter  = _translator.GetTranslation("InteractiveWorkflow", "PdfFile", "PDF file") + @" (*.pdf)|*.pdf";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "PdfA1bFile", "PDF/A-1b file") + @" (*.pdf)|*.pdf";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "PdfA2bFile", "PDF/A-2b file") + @" (*.pdf)|*.pdf";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "PdfXFile", "PDF/X file") + @" (*.pdf)|*.pdf";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "JpegFile", "JPEG file") + @" (*.jpg)|*.jpg;*.jpeg;";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "PngFile", "PNG file") + @" (*.png)|*.png;";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "TiffFile", "TIFF file") + @" (*.tif)|*.tif;*.tiff";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "TextFile", "Text file") + @" (*.txt)|*.txt;";

                saveFileDialog.FilterIndex     = ((int)Job.Profile.OutputFormat) + 1;
                saveFileDialog.OverwritePrompt = true;

                if (Job.Profile.SaveDialog.SetDirectory)
                {
                    var saveDirectory = FileUtil.Instance.MakeValidFolderName(Job.TokenReplacer.ReplaceTokens(Job.Profile.SaveDialog.Folder));
                    DirectoryHelper = new DirectoryHelper(saveDirectory);
                    if (DirectoryHelper.CreateDirectory())
                    {
                        saveFileDialog.RestoreDirectory = true;
                        saveFileDialog.InitialDirectory = saveDirectory;
                        Logger.Debug("Set directory in save file dialog: " + saveDirectory);
                    }
                    else
                    {
                        Logger.Warn("Could not create directory for save file dialog. It will be opened with default save location.");
                    }
                }

                Cancel = !LaunchSaveFileDialog(saveFileDialog);
            }
        }
예제 #16
0
 public EncryptionPasswordResponse ShowDialogTopMost()
 {
     TopMostHelper.ShowDialogTopMost(this, false);
     return(Response);
 }