コード例 #1
0
        public void SavePreferences(PersonalPreferences personalPrefs, ProjectPreferences projectPrefs)
        {
            PersonalPrefs = personalPrefs.Clone();
            ProjectPrefs  = projectPrefs.Clone();

            EditorPrefs.SetString(PERSONAL_PREFERENCES_KEY, JsonUtility.ToJson(PersonalPrefs));

            File.WriteAllText(PROJECT_PREFERENCES_PATH, JsonUtility.ToJson(ProjectPrefs, true));

            SVNContextMenusManager.SetupContextType(PersonalPrefs.ContextMenusClient);

            PreferencesChanged?.Invoke();
        }
コード例 #2
0
        private void BuildUnitPerTime(ImGui gui, bool fluid, ProjectPreferences preferences)
        {
            var unit    = fluid ? preferences.fluidUnit : preferences.itemUnit;
            var newUnit = unit;

            if (gui.BuildRadioButton("Simple Amount" + preferences.GetPerTimeUnit().suffix, unit == 0f))
            {
                newUnit = 0f;
            }
            using (gui.EnterRow())
            {
                if (gui.BuildRadioButton("Custom: 1 unit equals", unit != 0f))
                {
                    newUnit = 1f;
                }
                gui.AllocateSpacing();
                gui.allocator = RectAllocator.RightRow;
                if (!fluid)
                {
                    if (gui.BuildButton("Set from belt"))
                    {
                        gui.BuildObjectSelectDropDown <EntityBelt>(Database.allBelts, DataUtils.DefaultOrdering, setBelt =>
                        {
                            preferences.RecordUndo(true);
                            preferences.itemUnit = setBelt.beltItemsPerSecond;
                        }, "Select belt", extra: b => DataUtils.FormatAmount(b.beltItemsPerSecond, UnitOfMeasure.PerSecond));
                    }
                }
                gui.BuildText("per second");
                if (gui.BuildTextInput(DataUtils.FormatAmount(unit, UnitOfMeasure.None), out var updated, null, Icon.None, true) &&
                    DataUtils.TryParseAmount(updated, out var parsed, UnitOfMeasure.None))
                {
                    newUnit = parsed;
                }
            }
            gui.AllocateSpacing(1f);

            if (newUnit != unit)
            {
                preferences.RecordUndo(true);
                if (fluid)
                {
                    preferences.fluidUnit = newUnit;
                }
                else
                {
                    preferences.itemUnit = newUnit;
                }
            }
        }
コード例 #3
0
 private void Cleanup(string key, object value)
 {
     if (value is float)
     {
         ProjectPreferences.RemoveFloat(key);
     }
     else if (value is bool)
     {
         ProjectPreferences.RemoveBool(key);
     }
     else if (value is int)
     {
         ProjectPreferences.RemoveInt(key);
     }
     else if (value is string)
     {
         ProjectPreferences.RemoveString(key);
     }
 }
コード例 #4
0
        private void LoadPreferences()
        {
            var personalPrefsData = EditorPrefs.GetString(PERSONAL_PREFERENCES_KEY, string.Empty);

            if (!string.IsNullOrEmpty(personalPrefsData))
            {
                PersonalPrefs = JsonUtility.FromJson <PersonalPreferences>(personalPrefsData);
            }
            else
            {
                PersonalPrefs = new PersonalPreferences();
#if UNITY_EDITOR_WIN
                PersonalPrefs.ContextMenusClient = ContextMenusClient.TortoiseSVN;
#else
                PersonalPrefs.ContextMenusClient = ContextMenusClient.SnailSVN;
#endif
            }

            if (File.Exists(PROJECT_PREFERENCES_PATH))
            {
                ProjectPrefs = JsonUtility.FromJson <ProjectPreferences>(File.ReadAllText(PROJECT_PREFERENCES_PATH));
            }
            else
            {
                ProjectPrefs = new ProjectPreferences();
            }

            LoadTextures();

            // If WiseSVN was just added to the project, Unity won't manage to load the textures the first time. Try again next frame.
            if (FileStatusIcons[(int)VCFileStatus.Added].image == null)
            {
                EditorApplication.CallbackFunction reloadTextures = null;
                reloadTextures = () => {
                    EditorApplication.update -= reloadTextures;
                    LoadTextures();
                };

                EditorApplication.update += reloadTextures;
            }
        }
コード例 #5
0
 public void TestNewPreferences()
 {
     try
     {
         foreach (var test in TestData)
         {
             if (test.Value is float)
             {
                 var value = (float)test.Value;
                 ProjectPreferences.Set(test.Key, value);
                 Assert.AreEqual(value, ProjectPreferences.Get(test.Key, 0f));
             }
             else if (test.Value is bool)
             {
                 var value = (bool)test.Value;
                 ProjectPreferences.Set(test.Key, value);
                 Assert.AreEqual(value, ProjectPreferences.Get(test.Key, false));
             }
             else if (test.Value is int)
             {
                 var value = (int)test.Value;
                 ProjectPreferences.Set(test.Key, value);
                 Assert.AreEqual(value, ProjectPreferences.Get(test.Key, 0));
             }
             else if (test.Value is string)
             {
                 var value = (string)test.Value;
                 ProjectPreferences.Set(test.Key, value);
                 Assert.AreEqual(value, ProjectPreferences.Get(test.Key, string.Empty));
             }
         }
     }
     finally
     {
         foreach (var test in TestData)
         {
             Cleanup(test.Key, test.Value);
         }
     }
 }
コード例 #6
0
 public void TestNewPreferences()
 {
     try
     {
         foreach (var test in TestData)
         {
             if (test.Value is float floatValue)
             {
                 ProjectPreferences.Set(test.Key, floatValue);
                 Assert.AreEqual(floatValue, ProjectPreferences.Get(test.Key, 0f));
             }
             else if (test.Value is bool boolValue)
             {
                 ProjectPreferences.Set(test.Key, boolValue);
                 Assert.AreEqual(boolValue, ProjectPreferences.Get(test.Key, false));
             }
             else if (test.Value is int intValue)
             {
                 ProjectPreferences.Set(test.Key, intValue);
                 Assert.AreEqual(intValue, ProjectPreferences.Get(test.Key, 0));
             }
             else if (test.Value is string stringValue)
             {
                 ProjectPreferences.Set(test.Key, stringValue);
                 Assert.AreEqual(stringValue, ProjectPreferences.Get(test.Key, string.Empty));
             }
         }
     }
     finally
     {
         foreach (var test in TestData)
         {
             Cleanup(test.Key, test.Value);
         }
     }
 }
コード例 #7
0
 public Project() : base(new UndoSystem())
 {
     settings    = new ProjectSettings(this);
     preferences = new ProjectPreferences(this);
 }
コード例 #8
0
ファイル: FrmProjectManager.cs プロジェクト: ewin66/Arya
        private void PrepareData()
        {
            //Load all the projects for the User.
            currentDb = new SkuDataDbDataContext();

            if (currentProjectID != Guid.Empty)
            {
                currentProject  = currentDb.Projects.Single(p => p.ID == currentProjectID);
                Text            = Text + " : " + currentProject.ProjectDescription;
                projPreferences = currentProject.ProjectPreferences;
            }
            else
            {
                //ID and other fields will be set in the defaultValues method.
                currentProject = new Project();
                currentDb.Projects.InsertOnSubmit(currentProject);
                Text             = Text + " : <New Project>";
                newProject       = true;
                currentProjectID = currentProject.ID;
                projPreferences  = new ProjectPreferences
                {
                    ListSeparator   = "; ",
                    ReturnSeparator = "|"
                };
            }

            tbProjectName.Text = currentProject.ProjectName;
            //can edit Project name only for new projects
            tbProjectName.Enabled = newProject;
            tbDatabaseName.Text   = currentProject.DatabaseName;
            //can edit database name only for new projects
            tbDatabaseName.Enabled = newProject;

            tbListSeparator.Text   = projPreferences.ListSeparator;
            tbReturnSeparator.Text = projPreferences.ReturnSeparator;

            tbClientDescription.Text = currentProject.ClientDescription;
            tbSetName.Text           = currentProject.SetName;

            //Field1
            tbEntityField1Name.Text        = currentProject.EntityField1Name;
            cbEntityField1ReadOnly.Checked = currentProject.EntityField1Readonly;

            //Field2
            tbEntityField2Name.Text        = currentProject.EntityField2Name;
            cbEntityField2ReadOnly.Checked = currentProject.EntityField2Readonly;

            //Field3
            tbEntityField3Name.Text        = currentProject.EntityField3Name;
            cbEntityField3ReadOnly.Checked = currentProject.EntityField3Readonly;

            //Field4
            tbEntityField4Name.Text        = currentProject.EntityField4Name;
            cbEntityField4ReadOnly.Checked = currentProject.EntityField4Readonly;

            //Field5
            tbEntityField5Name.Text        = currentProject.EntityField5Name;
            cbEntityField5ReadOnly.Checked = currentProject.EntityField5Readonly;
            cbEntityField5IsStatus.Checked = currentProject.EntityField5IsStatus;

            //Image URL
            tbProductSearchString.Text   = currentProject.ImageUrlString;
            tbSchemaFillRateFilters.Text = currentProject.SchemaFillRateFilters;

            //Hookup all the events
            var allTextBoxControls = GetControls(this).Where(p => p.Name.StartsWith("tb")).ToList();

            foreach (var textBoxControl in allTextBoxControls)
            {
                var method  = GetType().GetMethod("tbAllFields_TextChanged", BindingFlags.NonPublic | BindingFlags.Instance);
                var type    = typeof(EventHandler);
                var handler = Delegate.CreateDelegate(type, this, method);
                var evt     = textBoxControl.GetType().GetEvent("TextChanged");
                evt.AddEventHandler(textBoxControl, handler);
            }

            var allCheckBoxControls = GetControls(this).Where(p => p.Name.StartsWith("cb")).ToList();

            foreach (var checkBoxControl in allCheckBoxControls)
            {
                var method  = GetType().GetMethod("cbAllFields_CheckedChanged", BindingFlags.NonPublic | BindingFlags.Instance);
                var type    = typeof(EventHandler);
                var handler = Delegate.CreateDelegate(type, this, method);
                var evt     = checkBoxControl.GetType().GetEvent("CheckedChanged");
                evt.AddEventHandler(checkBoxControl, handler);
            }
        }