private void RenderLoadProfileMenu()
        {
            if (ImGui.BeginPopupModal("Load Profile", WindowFlags.AlwaysAutoResize))
            {
                string[] files = Directory.GetFiles(Plugin.ProfileDirectory);

                if (files == null || files.Length == 0)
                {
                    ImGui.Text("No profiles in profile directory.");
                    currentlySelectedProfile = -1;
                }
                else
                {
                    ImGui.Combo("Files", ref currentlySelectedProfile, files.Select(x => Path.GetFileName(x)).ToArray());
                }

                if (currentlySelectedProfile >= 0 && ImGui.Button("Load"))
                {
                    Profile.LoadedProfile loadedProfile = BaseTreeRoutinePlugin <BuildYourOwnRoutineSettings, BaseTreeCache> .LoadSettingFile <Profile.LoadedProfile>(files[currentlySelectedProfile]);

                    if (loadedProfile == null || loadedProfile.Name == null)
                    {
                        StartNewOKMenu("Profile did not load properly");
                    }
                    else
                    {
                        Plugin.Settings.LoadedProfile = loadedProfile;
                        Plugin.CreateAndStartTreeFromLoadedProfile();

                        currentlySelectedProfile = -1;
                        ImGui.CloseCurrentPopup();
                    }
                }
                // Render the menu from loading profile
                RenderOkMenu();

                if (ImGui.Button("Cancel"))
                {
                    currentlySelectedProfile = -1;
                    ImGui.CloseCurrentPopup();
                }

                ImGui.EndPopup();
            }
        }
示例#2
0
        private void RenderLoadProfileMenu()
        {
            bool open = true;

            if (ImGui.BeginPopupModal("Load Profile", ref open, ImGuiWindowFlags.AlwaysAutoResize))
            {
                string[] files = Directory.GetFiles(Plugin.ProfileDirectory);

                if (files.Length == 0)
                {
                    ImGui.Text($"No profiles in profile directory: {Plugin.ProfileDirectory}");
                    currentlySelectedProfile = -1;
                    LoadSaveTrigger          = null;
                    forceOpenLoad            = false;
                }
                else
                {
                    ImGui.Combo("Files", ref currentlySelectedProfile, files.Select(x => Path.GetFileName(x)).ToArray(), files.Length);
                }

                if (currentlySelectedProfile >= 0 && ImGui.Button("Load"))
                {
                    Profile.LoadedProfile loadedProfile = Plugin.LoadSettingFile <Profile.LoadedProfile>(files[currentlySelectedProfile]);
                    if (loadedProfile == null || loadedProfile.Name == null)
                    {
                        StartNewOKMenu("Profile did not load profile properly");
                    }
                    else
                    {
                        if (LoadSaveTrigger != null)
                        {
                            if (loadedProfile.Composite != null)
                            {
                                LoadSaveTrigger.Children.Add((loadedProfile.Composite));
                            }

                            LoadSaveTrigger = null;
                            forceOpenLoad   = false;
                        }
                        else
                        {
                            Plugin.Settings.LoadedProfile = loadedProfile;
                            Plugin.CreateAndStartTreeFromLoadedProfile();

                            currentlySelectedProfile = -1;
                            LoadSaveTrigger          = null;
                            forceOpenLoad            = false;
                        }

                        ImGui.CloseCurrentPopup();
                    }
                }
                // Render the menu from loading profile
                RenderOkMenu();

                if (ImGui.Button("Cancel"))
                {
                    currentlySelectedProfile = -1;
                    LoadSaveTrigger          = null;
                    forceOpenLoad            = false;

                    ImGui.CloseCurrentPopup();
                }

                ImGui.EndPopup();
            }
        }