Пример #1
0
        /// <summary>
        /// Ermittelt eine einzelne Einstellung.
        /// </summary>
        /// <param name="name">Name der Einstellung.</param>
        /// <returns>Wert der Einstellung.</returns>
        private static object ReadSetting(SettingNames name)
        {
            // Find and forward
            SettingDescription settings;

            return(m_Settings.TryGetValue(name, out settings) ? settings.ReadValue() : null);
        }
Пример #2
0
        public override HistoryMemento PerformAction(DocumentWorkspace documentWorkspace)
        {
            AnchorEdge initialEdge = SettingNames.GetLastCanvasSizeAnchorEdge();

            Document newDoc = ResizeDocument(
                documentWorkspace.FindForm(),
                documentWorkspace.Document,
                documentWorkspace.Document.Size,
                initialEdge,
                documentWorkspace.AppWorkspace.AppEnvironment.SecondaryColor,
                true,
                true);

            if (newDoc != null)
            {
                using (new PushNullToolMode(documentWorkspace))
                {
                    ReplaceDocumentHistoryMemento rdha = new ReplaceDocumentHistoryMemento(StaticName, StaticImage, documentWorkspace);
                    documentWorkspace.Document = newDoc;
                    return(rdha);
                }
            }
            else
            {
                return(null);
            }
        }
Пример #3
0
        private string LoadSetting(SettingNames setting)
        {
            string value;

            if (settings.TryGetValue((int)setting, out value))
            {
                return(value);
            }
            return(GetSettingNameDefaultValue(setting));
        }
Пример #4
0
        private string GetSettingNameDefaultValue(SettingNames settingName)
        {
            MemberInfo            enumValue    = typeof(SettingNames).GetMember(settingName.ToString())[0];
            DefaultValueAttribute defaultValue = (DefaultValueAttribute)enumValue.GetCustomAttributes(typeof(DefaultValueAttribute), false).FirstOrDefault();

            if (defaultValue != null)
            {
                return(defaultValue.Value.ToString());
            }
            return(null);
        }
Пример #5
0
        void CreateCapabilityList()
        {
            string dummyString = "";

            SettingNames.Clear();
            foreach (VideoCapabilities settings in _deviceCapabilites)
            {
                dummyString = "";
                dummyString = settings.FrameSize.Width + "x" + settings.FrameSize.Height + " " + settings.AverageFrameRate + "FPS";
                SettingNames.Add(dummyString);
            }
        }
Пример #6
0
        internal static string ToSerializedValue(this SettingNames value)
        {
            switch (value)
            {
            case SettingNames.AutoLogon:
                return("AutoLogon");

            case SettingNames.FirstLogonCommands:
                return("FirstLogonCommands");
            }
            return(null);
        }
Пример #7
0
        protected override void AddSettingNames(SettingNames names)
        {
            names.Add(SettingRemoveWhenReading, SettingMaxCountToAutoStart);

            names.Add(SettingMainWindow, SettingLogWindow, SettingDetailsWindow,
                      SettingExceptionWindow, SettingGenericEditorWindow, SettingLogColumnWidths,
                      SettingLogSplitterRatio, SettingDetailsSplitterRatioTop, SettingDetailsSplitterRatioBottom,
                      SettingDetailColumnWidths, SettingParameterColumnWidths);

            names.Add(SettingPreviewPane, SettingStatusBar, SettingAutoScrollMessages, SettingDisplayTimeZone);

            names.Add(SettingMaxRecentlyUsed, SettingRecentlyUsedList, SettingLastActive);
        }
Пример #8
0
        /// <summary>
        /// Ermittelt eine einzelne Einstellung.
        /// </summary>
        /// <param name="name">Name der Einstellung.</param>
        /// <returns>Wert der Einstellung.</returns>
        private static object ReadSetting(SettingNames name)
        {
            // Find and forward
            SettingDescription settings;

            if (m_Settings.TryGetValue(name, out settings))
            {
                return(settings.ReadValue());
            }
            else
            {
                return(null);
            }
        }
Пример #9
0
        private void SaveSetting(SettingNames settingName, string value)
        {
            int settingId = (int)settingName;

            Setting setting = database.Settings.Find(settingId);

            if (setting == null)
            {
                setting = new Setting {
                    Id = settingId, Description = settingName.ToString()
                };
                database.Settings.Add(setting);
            }

            setting.Value = value;
            database.SaveChanges();
        }
Пример #10
0
        protected SettingsBase()
        {
            m_version = HighestSupportedVersion;

            SettingNames names = new SettingNames();

            AddSettingNames(names);

            if (names.Count == 0)
            {
                throw new ApplicationException("The '" + GetType().FullName + "' settings class did not"
                                               + " return any setting names.");
            }
            m_settingNames = names.ToArray();

            // Get the values twice. The first time create a dictionary of initial values that we can use
            // to determine if the settings have changed from defaults.

            m_settingDictionary = CreateInitialSettingsDictionary();
        }
Пример #11
0
        public override HistoryMemento PerformAction(DocumentWorkspace documentWorkspace)
        {
            AnchorEdge initialEdge = SettingNames.GetLastCanvasSizeAnchorEdge();

            Document newDoc = ResizeDocument(
                documentWorkspace.FindForm(),
                documentWorkspace.Document,
                documentWorkspace.Document.Size,
                initialEdge,
                documentWorkspace.AppWorkspace.AppEnvironment.SecondaryColor,
                true,
                true);

            if (newDoc != null)
            {
                using (new PushNullToolMode(documentWorkspace))
                {
                    if (newDoc.DpuUnit != MeasurementUnit.Pixel)
                    {
                        Settings.CurrentUser.SetString(SettingNames.LastNonPixelUnits, newDoc.DpuUnit.ToString());

                        if (documentWorkspace.AppWorkspace.Units != MeasurementUnit.Pixel)
                        {
                            documentWorkspace.AppWorkspace.Units = newDoc.DpuUnit;
                        }
                    }

                    ReplaceDocumentHistoryMemento rdha = new ReplaceDocumentHistoryMemento(StaticName, StaticImage, documentWorkspace);
                    documentWorkspace.Document = newDoc;
                    return(rdha);
                }
            }
            else
            {
                return(null);
            }
        }
 public static string ToSerialString(this SettingNames value) => value switch
 {
Пример #13
0
 public SettingBase this[SettingNames name] => _settings[name];
Пример #14
0
 /// <summary>
 /// Vermerkt eine Einstellung.
 /// </summary>
 /// <typeparam name="T">Der Datentyp des zugehörigen Wertes.</typeparam>
 /// <param name="name">Der Name der Einstellung.</param>
 /// <param name="defaultValue">Der voreingestellt Wert.</param>
 private static void Add <T>(SettingNames name, T defaultValue)
 {
     // Create new
     m_Settings[name] = new SettingDescription <T>(name, defaultValue);
 }
Пример #15
0
 protected internal ListSetting(SettingNames name, ImmutableHashSet <T> defaultValue, string description) : base(name, defaultValue, description)
 {
 }
Пример #16
0
 /// <summary>
 /// Erzeugt eine neue Beschreibung.
 /// </summary>
 /// <param name="name">Der Name der Beschreibung.</param>
 internal SettingDescription(SettingNames name)
 {
     // Remember
     Name = name;
 }
Пример #17
0
        // returns null to indicate user cancelled, or if initialNewSize = newSize that the user requested,
        // or if there was an error (out of memory)
        public static Document ResizeDocument(IWin32Window parent,
                                              Document document,
                                              Size initialNewSize,
                                              AnchorEdge initialAnchor,
                                              ColorBgra background,
                                              bool loadAndSaveMaintainAspect,
                                              bool saveAnchor)
        {
            using (CanvasSizeDialog csd = new CanvasSizeDialog())
            {
                bool maintainAspect;

                if (loadAndSaveMaintainAspect)
                {
                    maintainAspect = Settings.CurrentUser.GetBoolean(SettingNames.LastMaintainAspectRatioCS, false);
                }
                else
                {
                    maintainAspect = false;
                }

                csd.OriginalSize      = document.Size;
                csd.OriginalDpuUnit   = document.DpuUnit;
                csd.OriginalDpu       = document.DpuX;
                csd.ImageWidth        = initialNewSize.Width;
                csd.ImageHeight       = initialNewSize.Height;
                csd.LayerCount        = document.Layers.Count;
                csd.AnchorEdge        = initialAnchor;
                csd.Units             = csd.OriginalDpuUnit;
                csd.Resolution        = document.DpuX;
                csd.Units             = SettingNames.GetLastNonPixelUnits();
                csd.ConstrainToAspect = maintainAspect;

                DialogResult    result     = csd.ShowDialog(parent);
                Size            newSize    = new Size(csd.ImageWidth, csd.ImageHeight);
                MeasurementUnit newDpuUnit = csd.Units;
                double          newDpu     = csd.Resolution;

                // If they cancelled, get out
                if (result == DialogResult.Cancel)
                {
                    return(null);
                }

                // If they clicked OK, then we save the aspect checkbox, and maybe the anchor
                if (loadAndSaveMaintainAspect)
                {
                    Settings.CurrentUser.SetBoolean(SettingNames.LastMaintainAspectRatioCS, csd.ConstrainToAspect);
                }

                if (saveAnchor)
                {
                    Settings.CurrentUser.SetString(SettingNames.LastCanvasSizeAnchorEdge, csd.AnchorEdge.ToString());
                }

                if (newSize == document.Size && newDpuUnit == document.DpuUnit && newDpu == document.DpuX)
                {
                    return(null);
                }

                try
                {
                    Utility.GCFullCollect();
                    Document newDoc = ResizeDocument(document, newSize, csd.AnchorEdge, background);
                    newDoc.DpuUnit = newDpuUnit;
                    newDoc.DpuX    = newDpu;
                    newDoc.DpuY    = newDpu;
                    return(newDoc);
                }

                catch (OutOfMemoryException)
                {
                    Utility.ErrorBox(parent, PdnResources.GetString("CanvasSizeAction.ResizeDocument.OutOfMemory"));
                    return(null);
                }

                catch
                {
                    return(null);
                }
            }
        }
Пример #18
0
 /// <summary>
 /// Vermerkt eine Einstellung.
 /// </summary>
 /// <typeparam name="TValueType">Der Datentyp des zugehörigen Wertes.</typeparam>
 /// <param name="name">Der Name der Einstellung.</param>
 /// <param name="defaultValue">Der voreingestellt Wert.</param>
 private static void Add <TValueType>(SettingNames name, TValueType defaultValue) => m_Settings[name] = new SettingDescription <TValueType>(name, defaultValue);
Пример #19
0
 /// <summary>
 /// Vermerkt eine Einstellung.
 /// </summary>
 /// <param name="name">Der Name der Einstellung.</param>
 private static void Add(SettingNames name)
 {
     // Forward
     Add(name, (string)null);
 }
Пример #20
0
        public override HistoryMemento PerformAction(DocumentWorkspace documentWorkspace)
        {
            int             newWidth;
            int             newHeight;
            double          newDpu;
            MeasurementUnit newDpuUnit;

            string resamplingAlgorithm = Settings.CurrentUser.GetString(SettingNames.LastResamplingMethod,
                                                                        ResamplingAlgorithm.SuperSampling.ToString());

            ResamplingAlgorithm alg;

            try
            {
                alg = (ResamplingAlgorithm)Enum.Parse(typeof(ResamplingAlgorithm), resamplingAlgorithm, true);
            }

            catch
            {
                alg = ResamplingAlgorithm.SuperSampling;
            }

            bool maintainAspect = Settings.CurrentUser.GetBoolean(SettingNames.LastMaintainAspectRatio, true);

            using (ResizeDialog rd = new ResizeDialog())
            {
                rd.OriginalSize        = documentWorkspace.Document.Size;
                rd.OriginalDpuUnit     = documentWorkspace.Document.DpuUnit;
                rd.OriginalDpu         = documentWorkspace.Document.DpuX;
                rd.ImageHeight         = documentWorkspace.Document.Height;
                rd.ImageWidth          = documentWorkspace.Document.Width;
                rd.ResamplingAlgorithm = alg;
                rd.LayerCount          = documentWorkspace.Document.Layers.Count;
                rd.Units             = rd.OriginalDpuUnit;
                rd.Resolution        = documentWorkspace.Document.DpuX;
                rd.Units             = SettingNames.GetLastNonPixelUnits();
                rd.ConstrainToAspect = maintainAspect;

                DialogResult result = rd.ShowDialog(documentWorkspace);

                if (result == DialogResult.Cancel)
                {
                    return(null);
                }

                Settings.CurrentUser.SetString(SettingNames.LastResamplingMethod, rd.ResamplingAlgorithm.ToString());
                Settings.CurrentUser.SetBoolean(SettingNames.LastMaintainAspectRatio, rd.ConstrainToAspect);
                newDpuUnit = rd.Units;
                newWidth   = rd.ImageWidth;
                newHeight  = rd.ImageHeight;
                newDpu     = rd.Resolution;
                alg        = rd.ResamplingAlgorithm;

                if (newDpuUnit != MeasurementUnit.Pixel)
                {
                    Settings.CurrentUser.SetString(SettingNames.LastNonPixelUnits, newDpuUnit.ToString());

                    if (documentWorkspace.AppWorkspace.Units != MeasurementUnit.Pixel)
                    {
                        documentWorkspace.AppWorkspace.Units = newDpuUnit;
                    }
                }

                // if the new size equals the old size, there's really no point in doing anything
                if (documentWorkspace.Document.Size == new Size(rd.ImageWidth, rd.ImageHeight) &&
                    documentWorkspace.Document.DpuX == newDpu &&
                    documentWorkspace.Document.DpuUnit == newDpuUnit)
                {
                    return(null);
                }
            }

            HistoryMemento ha;

            if (newWidth == documentWorkspace.Document.Width &&
                newHeight == documentWorkspace.Document.Height)
            {
                // Only adjusting Dpu or DpuUnit
                ha = new MetaDataHistoryMemento(StaticName, StaticImage, documentWorkspace);
                documentWorkspace.Document.DpuUnit = newDpuUnit;
                documentWorkspace.Document.DpuX    = newDpu;
                documentWorkspace.Document.DpuY    = newDpu;
            }
            else
            {
                try
                {
                    using (new WaitCursorChanger(documentWorkspace))
                    {
                        ha = new ReplaceDocumentHistoryMemento(StaticName, StaticImage, documentWorkspace);
                    }

                    Document newDocument = new Document(newWidth, newHeight);
                    newDocument.ReplaceMetaDataFrom(documentWorkspace.Document);
                    newDocument.DpuUnit = newDpuUnit;
                    newDocument.DpuX    = newDpu;
                    newDocument.DpuY    = newDpu;
                    ResizeProgressDialog rpd = new ResizeProgressDialog(documentWorkspace, newDocument, documentWorkspace.Document, new Size(newWidth, newHeight), alg);
                    Utility.GCFullCollect();
                    bool result = rpd.DoResize();

                    if (!result)
                    {
                        return(null);
                    }

                    documentWorkspace.Document = newDocument;
                }

                catch (WorkerThreadException ex)
                {
                    if (ex.InnerException is OutOfMemoryException)
                    {
                        Utility.ErrorBox(documentWorkspace, PdnResources.GetString("ResizeAction.PerformAction.OutOfMemory"));
                        return(null);
                    }
                    else
                    {
                        throw;
                    }
                }

                catch (OutOfMemoryException)
                {
                    Utility.ErrorBox(documentWorkspace, PdnResources.GetString("ResizeAction.PerformAction.OutOfMemory"));
                    return(null);
                }
            }

            return(ha);
        }
Пример #21
0
 protected SettingBase(SettingNames name, string description)
 {
     Name        = name;
     Description = description;
 }
Пример #22
0
 /// <summary>
 /// When implemented by a derived class adds the names of all the settings in that class.
 /// </summary>
 /// <param name="names">The collection of setting names. The derived class may only add to
 /// this collection.</param>
 protected abstract void AddSettingNames(SettingNames names);
Пример #23
0
 protected internal DictionarySetting(SettingNames name, ImmutableDictionary <T1, T2> defaultValue, string description) : base(name, defaultValue,
                                                                                                                               description)
 {
 }
Пример #24
0
 /// <summary>
 /// Vermerkt eine Einstellung.
 /// </summary>
 /// <param name="name">Der Name der Einstellung.</param>
 private static void Add(SettingNames name) => Add(name, (string)null);
Пример #25
0
 public static Setting <T> Create <T>(SettingNames name, T defaultValue, string description) => new(name, defaultValue, description);
Пример #26
0
        public override void PerformAction(AppWorkspace appWorkspace)
        {
            using (NewFileDialog nfd = new NewFileDialog())
            {
                Size newDocSize = appWorkspace.GetNewDocumentSize();

                if (Utility.IsClipboardImageAvailable())
                {
                    try
                    {
                        Utility.GCFullCollect();
                        IDataObject clipData = System.Windows.Forms.Clipboard.GetDataObject();

                        using (Image clipImage = (Image)clipData.GetData(DataFormats.Bitmap))
                        {
                            int width2  = clipImage.Width;
                            int height2 = clipImage.Height;
                            newDocSize = new Size(width2, height2);
                        }
                    }

                    catch (Exception ex)
                    {
                        if (ex is OutOfMemoryException ||
                            ex is ExternalException ||
                            ex is NullReferenceException)
                        {
                            // ignore
                        }
                        else
                        {
                            throw;
                        }
                    }
                }

                nfd.OriginalSize      = new Size(newDocSize.Width, newDocSize.Height);
                nfd.OriginalDpuUnit   = SettingNames.GetLastNonPixelUnits();
                nfd.OriginalDpu       = Document.GetDefaultDpu(nfd.OriginalDpuUnit);
                nfd.Units             = nfd.OriginalDpuUnit;
                nfd.Resolution        = nfd.OriginalDpu;
                nfd.ConstrainToAspect = Settings.CurrentUser.GetBoolean(SettingNames.LastMaintainAspectRatioNF, false);

                DialogResult dr = nfd.ShowDialog(appWorkspace);

                if (dr == DialogResult.OK)
                {
                    bool success = appWorkspace.CreateBlankDocumentInNewWorkspace(new Size(nfd.ImageWidth, nfd.ImageHeight), nfd.Units, nfd.Resolution, false);

                    if (success)
                    {
                        appWorkspace.ActiveDocumentWorkspace.ZoomBasis = ZoomBasis.FitToWindow;
                        Settings.CurrentUser.SetBoolean(SettingNames.LastMaintainAspectRatioNF, nfd.ConstrainToAspect);

                        if (nfd.Units != MeasurementUnit.Pixel)
                        {
                            Settings.CurrentUser.SetString(SettingNames.LastNonPixelUnits, nfd.Units.ToString());
                        }

                        if (appWorkspace.Units != MeasurementUnit.Pixel)
                        {
                            appWorkspace.Units = nfd.Units;
                        }
                    }
                }
            }
        }