コード例 #1
0
ファイル: MainForm.cs プロジェクト: Twake56/Hail-Tail
        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            SaveCurrentSession(null);
            if (TabControlParent.TabPages.Count > 0)
            {
                for (var i = 0; i < TabControlParent.TabPages.Count; i++)
                {
                    Classes.LogTabPage logTabPage = TabControlParent.TabPages[i] as Classes.LogTabPage;
                    if (logTabPage.IsFolder)
                    {
                        TabControl subTabControl = (logTabPage.Controls.Find("SubTabControl", true).FirstOrDefault()) as TabControl;
                        for (var ik = 0; ik < subTabControl.TabPages.Count; ik++)
                        {
                            try
                            {
                                (subTabControl.TabPages[ik] as Classes.LogTabPage).Deconstruct();
                            }
                            catch (NullReferenceException err)
                            {
                                Console.WriteLine(err.Message);
                            }
                        }
                    }
                    try
                    {
                        logTabPage.Deconstruct();
                    }
                    catch (NullReferenceException err)
                    {
                        Console.WriteLine(err.Message);
                    }
                }
                TabControlParent.TabPages.Clear();
            }
            DirectoryInfo tempDir = new DirectoryInfo("./Assets/TempFiles/");

            if (tempDir.GetFiles().Any())
            {
                foreach (FileInfo file in tempDir.GetFiles())
                {
                    try
                    {
                        file.Delete();
                    }
                    catch (IOException err)
                    {
                        Console.WriteLine(err.Message);
                    }
                }
            }
        }
コード例 #2
0
ファイル: Session.cs プロジェクト: Twake56/Hail-Tail
        private void LoadSession(string path)
        {
            if (TabControlParent.TabPages.Count > 0)
            {
                for (var i = 0; i < TabControlParent.TabPages.Count; i++)
                {
                    Classes.LogTabPage logTabPage = TabControlParent.TabPages[i] as Classes.LogTabPage;
                    if (logTabPage.IsFolder)
                    {
                        TabControl subTabControl = (logTabPage.Controls.Find("SubTabControl", true).FirstOrDefault()) as TabControl;
                        for (var ik = 0; ik < subTabControl.TabPages.Count; ik++)
                        {
                            try
                            {
                                (subTabControl.TabPages[ik] as Classes.LogTabPage).Deconstruct();
                            }
                            catch (NullReferenceException err)
                            {
                                Console.WriteLine(err.Message);
                            }
                        }
                    }
                    try
                    {
                        logTabPage.Deconstruct();
                    }
                    catch (NullReferenceException err)
                    {
                        Console.WriteLine(err.Message);
                    }
                }
                TabControlParent.TabPages.Clear();
            }
            try
            {
                XDocument LastSession = XDocument.Load(path ?? @"./Assets/Session/Session.xml");
                XElement  files       = LastSession.Root.Elements("Files").First();
                for (var i = 0; i < files.Elements().Count(); i++)
                {
                    XElement element = files.Elements().ToList()[i];
                    int      index   = -1;
                    Int32.TryParse(element.Attribute("Position").Value, out index);
                    CreateParentTabPageAtIndex(element.Attribute("Path").Value, index, text: element.Attribute("Name").Value);
                }

                XElement folders = LastSession.Root.Elements("Folders").First();
                for (var f = 0; f < folders.Elements().Count(); f++)
                {
                    XElement element = folders.Elements().ToList()[f];
                    int      index   = -1;
                    Int32.TryParse(element.Attribute("Position").Value, out index);
                    CreateFolder(element.Attribute("Name").Value, index);

                    for (var fi = 0; fi < folders.Elements().ToList()[f].Elements().Count(); fi++)
                    {
                        int subIndex = -1;
                        Int32.TryParse(folders.Elements().ToList()[f].Elements().ToList()[fi].Attribute("Position").Value, out subIndex);
                        CreateParentTabPageAtIndex(folders.Elements().ToList()[f].Elements().ToList()[fi].Attribute("Path").Value, subIndex, parentName: element.Attribute("Name").Value, text: folders.Elements().ToList()[f].Elements().ToList()[fi].Attribute("Name").Value);
                    }
                }
                SetIndexes();
            }
            catch (IOException err)
            {
                MessageBox.Show(err.Message);
                return;
            }
        }