internal void CreateProfile(string name, string commandName)
        {
            var profile = new WritableLaunchProfile {
                Name = name, CommandName = commandName
            };

            CurrentLaunchSettings.Profiles.Add(profile);
            LaunchProfiles.Add(profile);

            NotifyProfileCollectionChanged();

            // Fire a property changed so we can get the page to be dirty when we add a new profile
            OnPropertyChanged("_NewProfile");
            SelectedDebugProfile = profile;
        }
        internal virtual void InitializeDebugTargetsCore(ILaunchSettings profiles)
        {
            IWritableLaunchSettings newSettings = profiles.ToWritableLaunchSettings();

            // Since this get's reentered if the user saves or the user switches active profiles.
            if (CurrentLaunchSettings != null && !CurrentLaunchSettings.SettingsDiffer(newSettings))
            {
                return;
            }

            try
            {
                // This should never change the dirty state when loading the dialog
                PushIgnoreEvents();

                // Remember the current selection
                string curProfileName = SelectedDebugProfile?.Name;

                // Update the set of settings and generate a property change so the list of profiles gets updated. Note that we always
                // clear the active profile on the CurrentLaunchSettings so that when we do set one and property changed event is set
                CurrentLaunchSettings = newSettings;
                CurrentLaunchSettings.ActiveProfile = null;

                // Reload the launch profiles collection
                LaunchProfiles.Clear();
                foreach (IWritableLaunchProfile profile in CurrentLaunchSettings.Profiles)
                {
                    LaunchProfiles.Add(profile);
                }

                // When loading new profiles we need to clear the launch type. This is so the external changes cause the current
                // active provider to be refreshed
                _selectedLaunchType = null;
                NotifyProfileCollectionChanged();

                // If we have a selection, we want to leave it as is
                if (curProfileName == null || newSettings.Profiles.Find(p => LaunchProfile.IsSameProfileName(p.Name, curProfileName)) == null)
                {
                    // Note that we have to be careful since the collection can be empty.
                    if (profiles.ActiveProfile != null && !string.IsNullOrEmpty(profiles.ActiveProfile.Name))
                    {
                        SelectedDebugProfile = LaunchProfiles.Single(p => LaunchProfile.IsSameProfileName(p.Name, profiles.ActiveProfile.Name));
                    }
                    else
                    {
                        if (LaunchProfiles.Count > 0)
                        {
                            SelectedDebugProfile = LaunchProfiles[0];
                        }
                        else
                        {
                            SetEnvironmentGrid(null);
                        }
                    }
                }
                else
                {
                    SelectedDebugProfile = LaunchProfiles.Single(p => LaunchProfile.IsSameProfileName(p.Name, curProfileName));
                }
            }
            finally
            {
                PopIgnoreEvents();
                _firstSnapshotCompleteSource?.TrySetResult();
                _debugTargetsCoreInitialized = true;
            }
        }
 internal bool IsNewProfileNameValid(string name)
 {
     return(!LaunchProfiles.Any(
                profile => LaunchProfile.IsSameProfileName(profile.Name, name)));
 }
Esempio n. 4
0
 internal bool IsNewProfileNameValid(string name)
 {
     return(LaunchProfiles.Where(
                profile => LaunchProfile.IsSameProfileName(profile.Name, name)).Count() == 0);
 }
Esempio n. 5
0
        // Make like mojang launcher
        public void launprof(string name, string version, string client, string mdir)
        {
            Authentication auth = new Authentication();
            auth.username = name;

            Profiles pr = new Profiles();
            pr.authentication = auth;
            pr.javaArgs = "";
            pr.lastVersionId = client;
            pr.name = client;

            Dictionary<string, Profiles> pro = new Dictionary<string, Profiles>();
            pro.Add(client, pr);

            LaunchProfiles prof = new LaunchProfiles();
            prof.clientToken = "";
            prof.selectedProfile = client;
            prof.profiles = pro;

            try
            {
                string output = JsonConvert.SerializeObject(prof, Formatting.Indented);

                bool fexist = File.Exists(mdir + "\\launcher_profiles.json");
                if (fexist == true)
                    File.Delete(mdir + "\\launcher_profiles.json");

                StreamWriter sr = new StreamWriter(mdir + "\\launcher_profiles.json");
                sr.WriteLine(output);
                sr.Close();
            }
            catch
            {
                if (debug == true)
                    MessageBox.Show("Can't create launcher_profile.json");
            }
        }