Ejemplo n.º 1
0
        /// <summary>
        /// </summary>
        private void StoreSettings()
        {
            if (ModesTreeView.SelectedNode == null || ModePropertyGrid.SelectedObject == null)
            {
                return;
            }

            BuildLaunchMode           Mode    = ModesTreeView.SelectedNode.Tag as BuildLaunchMode;
            DynamicPropertyGridObject GridObj = ModePropertyGrid.SelectedObject as DynamicPropertyGridObject;

            foreach (BuildLaunchVariable Var in Mode.Variables)
            {
                if (Var.ConditionResult)
                {
                    DynamicPropertyGridProperty Property = GridObj.Find(Var.Name);
                    if (Property == null)
                    {
                        continue;
                    }

                    if (Var.DataType == BuildLaunchVariableDataType.Bool)
                    {
                        Var.Value = Property.Value.ToString().ToLower();
                    }
                    else
                    {
                        Var.Value = Property.Value.ToString();
                    }
                }
            }

            // Remove old stored settings value.
            foreach (StoredLaunchSettings OldSettings in Program.Settings.LaunchSettings)
            {
                if (OldSettings.ManifestId == Downloader.ManifestId)
                {
                    Program.Settings.LaunchSettings.Remove(OldSettings);
                    break;
                }
            }

            // Add new stored settings value.
            StoredLaunchSettings LaunchSettings = new StoredLaunchSettings();

            LaunchSettings.ManifestId = Downloader.ManifestId;
            foreach (BuildLaunchVariable Var in Mode.Variables)
            {
                LaunchSettings.Values.Add(Var.Name, Var.Value);
            }

            Program.Settings.LaunchSettings.Add(LaunchSettings);

            // If over max launch settings prune.
            while (Program.Settings.LaunchSettings.Count > Client.Settings.MaxLaunchSettings)
            {
                Program.Settings.LaunchSettings.RemoveAt(0);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LaunchModeNodeSelected(object sender, TreeViewEventArgs e)
        {
            if (e.Node == null)
            {
                ModePropertyGrid.SelectedObject = null;
                return;
            }

            BuildLaunchMode Mode = e.Node.Tag as BuildLaunchMode;

            if (Mode == null)
            {
                ModePropertyGrid.SelectedObject = null;
                return;
            }

            // Have we got a stored value for this variable?
            StoredLaunchSettings StoredSettings = null;

            foreach (StoredLaunchSettings OldSettings in Program.Settings.LaunchSettings)
            {
                if (OldSettings.ManifestId == Downloader.ManifestId)
                {
                    StoredSettings = OldSettings;
                    break;
                }
            }

            DynamicPropertyGridObject GridObj = new DynamicPropertyGridObject();

            foreach (BuildLaunchVariable Var in Mode.Variables)
            {
                if (StoredSettings != null && !Var.Internal)
                {
                    if (StoredSettings.Values.ContainsKey(Var.Name))
                    {
                        Var.Value = StoredSettings.Values[Var.Name];
                    }
                }

                if (Var.ConditionResult && !Var.Internal)
                {
                    switch (Var.DataType)
                    {
                    case BuildLaunchVariableDataType.String:
                    {
                        if (Var.Options.Count == 0)
                        {
                            GridObj.Add(new DynamicPropertyGridProperty(Var.Name, Var.FriendlyName, Var.FriendlyDescription, Var.FriendlyCategory, Var.Value, Var.Value, false, true));
                        }
                        else
                        {
                            GridObj.Add(new DynamicPropertyGridOptionsProperty(Var.Name, Var.FriendlyName, Var.FriendlyDescription, Var.FriendlyCategory, Var.Value, Var.Value, false, true, Var.Options));
                        }

                        break;
                    }

                    case BuildLaunchVariableDataType.Float:
                    {
                        float Value = 0.0f;
                        float.TryParse(Var.Value, out Value);

                        GridObj.Add(new DynamicPropertyGridRangedProperty(Var.Name, Var.FriendlyName, Var.FriendlyDescription, Var.FriendlyCategory, Value, Value, false, true, Var.MinValue, Var.MaxValue));

                        break;
                    }

                    case BuildLaunchVariableDataType.Int:
                    {
                        int Value = 0;
                        int.TryParse(Var.Value, out Value);

                        GridObj.Add(new DynamicPropertyGridRangedProperty(Var.Name, Var.FriendlyName, Var.FriendlyDescription, Var.FriendlyCategory, Value, Value, false, true, Var.MinValue, Var.MaxValue));

                        break;
                    }

                    case BuildLaunchVariableDataType.Bool:
                    {
                        bool Value = false;
                        bool.TryParse(Var.Value, out Value);

                        GridObj.Add(new DynamicPropertyGridProperty(Var.Name, Var.FriendlyName, Var.FriendlyDescription, Var.FriendlyCategory, Value, Value, false, true));

                        break;
                    }
                    }
                }
            }

            ModePropertyGrid.SelectedObject = GridObj;
        }