コード例 #1
0
        public void SettingsUpdateV3To4_VersionBecomes4_TiffColorBlackWihteGetsBlackWhiteG4Fax()
        {
            const int oldSettingsVersion = 3;
            const int newSettingsVersion = 4;

            var ini         = new IniStorage(Encoding.UTF8);
            var builder     = new DefaultProfileBuilder();
            var oldSettings = builder.CreateDefaultSettings("PDFCreator", ini, "English");

            oldSettings.ConversionProfiles[0].TiffSettings.Color = TiffColor.BlackWhiteG4Fax;
            var currentSettingsVersion = oldSettings.ApplicationProperties.SettingsVersion;

            oldSettings.ApplicationProperties.SettingsVersion = oldSettingsVersion;
            var iniFile = Path.Combine(_th.TmpTestFolder, "TestSettings.ini");

            oldSettings.SaveData(ini, iniFile);

            var settingsFromIni = File.ReadAllText(iniFile);

            settingsFromIni = settingsFromIni.Replace("BlackWhiteG4Fax", "BlackWhite");
            File.WriteAllText(iniFile, settingsFromIni);

            var upgrader = new SettingsUpgradeHelper(newSettingsVersion);
            var settings = new DefaultProfileBuilder().CreateEmptySettings(null);

            settings.LoadData(ini, iniFile, upgrader.UpgradeSettings);

            Assert.AreEqual(newSettingsVersion, settings.ApplicationProperties.SettingsVersion, "Did not update SettingsVersion.");
            Assert.AreEqual(TiffColor.BlackWhiteG4Fax, settings.ConversionProfiles[0].TiffSettings.Color, "Did not update TiffColor BlackWhite to BlackWhiteG4Fax");
        }
コード例 #2
0
        private PdfCreatorSettings CreateSettings()
        {
            var profileBuilder = new DefaultProfileBuilder();
            var settings       = profileBuilder.CreateDefaultSettings("MySpecialPrinter", new IniStorage(), "Elbisch");

            return(settings);
        }
コード例 #3
0
        public PdfCreatorSettings LoadPdfCreatorSettings()
        {
            MoveSettingsIfRequired();
            var regStorage = BuildStorage();

            var profileBuilder = new DefaultProfileBuilder();
            var settings       = profileBuilder.CreateEmptySettings(regStorage);

            var settingsUpgrader = new SettingsUpgradeHelper(SettingsVersion);

            if (UserSettingsExist())
            {
                settings.LoadData(regStorage, "", settingsUpgrader.UpgradeSettings);
            }

            if (!CheckValidSettings(settings))
            {
                var defaultLanguage = _languageDetector.FindDefaultLanguage();
                if (!_languageProvider.HasTranslation(defaultLanguage))
                {
                    defaultLanguage = "English";
                }

                var defaultSettings = profileBuilder.CreateDefaultSettings(FindPrimaryPrinter(), regStorage, defaultLanguage);

                if (DefaultUserSettingsExist())
                {
                    settings = LoadDefaultUserSettings(defaultSettings, profileBuilder, regStorage);
                }
                else
                {
                    settings = defaultSettings;
                }
            }

            CheckAndAddMissingDefaultProfile(settings, profileBuilder);
            CheckPrinterMappings(settings);
            CheckTitleReplacement(settings);

            if (settings.ApplicationSettings.Language == "")
            {
                var language = _languageProvider.FindBestLanguage(CultureInfo.CurrentCulture);

                if (language != null)
                {
                    settings.ApplicationSettings.Language = Path.GetFileNameWithoutExtension(language.FileName);
                }
            }

            TranslateProfilenames(settings);

            LogProfiles(settings);

            return(settings);
        }
コード例 #4
0
        /// <summary>
        ///     Functions checks, if a default profile exists and adds one.
        /// </summary>
        private void CheckAndAddMissingDefaultProfile(PdfCreatorSettings settings, DefaultProfileBuilder profileBuilder)
        {
            var defaultProfile = settings.GetProfileByGuid(ProfileGuids.DEFAULT_PROFILE_GUID);

            if (defaultProfile == null)
            {
                defaultProfile = profileBuilder.CreateDefaultProfile();
                settings.ConversionProfiles.Add(defaultProfile);
            }
            else
            {
                defaultProfile.Properties.Deletable = false;
            }
        }
コード例 #5
0
        private void ExecuteRestoreDefaultSettings(object obj)
        {
            var title              = Translator.GetTranslation("ApplicationSettingsWindow", "RestoreDefaultSettingsTitle");
            var message            = Translator.GetTranslation("ApplicationSettingsWindow", "RestoreDefaultSettingsMessage");
            var messageInteraction = new MessageInteraction(message, title, MessageOptions.YesNo, MessageIcon.Question);

            _invoker.Invoke(messageInteraction);
            if (messageInteraction.Response == MessageResponse.Yes)
            {
                var profileBuilder  = new DefaultProfileBuilder();
                var defaultSettings = profileBuilder.CreateDefaultSettings(_settingsProvider.Settings);
                ApplySettingsProcedure(defaultSettings);
            }
        }
コード例 #6
0
        public Conversion.Settings.PdfCreatorSettings LoadIniSettings(string iniFile)
        {
            if (string.IsNullOrWhiteSpace(iniFile))
            {
                return(null);
            }

            var iniStorage = _dataStorageFactory.BuildIniStorage();

            var settingsUpgrader = new SettingsUpgradeHelper();

            var settings = new DefaultProfileBuilder().CreateEmptySettings(iniStorage);

            settings.LoadData(iniStorage, iniFile, settingsUpgrader.UpgradeSettings);

            return(settings);
        }
コード例 #7
0
        private PdfCreatorSettings LoadDefaultUserSettings(PdfCreatorSettings defaultSettings, DefaultProfileBuilder profileBuilder,
                                                           IStorage regStorage)
        {
            var defaultUserStorage = new RegistryStorage(RegistryHive.Users,
                                                         @".DEFAULT\" + _installationPathProvider.SettingsRegistryPath);

            var data = Data.CreateDataStorage();

            defaultUserStorage.SetData(data);

            // Store default settings and then load the machine defaults from HKEY_USERS\.DEFAULT to give them prefrence
            defaultSettings.StoreValues(data, "");
            defaultUserStorage.ReadData("", false);

            // And then load the combined settings with default user overriding our defaults
            var settings = profileBuilder.CreateEmptySettings(regStorage);

            settings.ReadValues(data, "");

            return(settings);
        }