diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index fb2c82f..5566272 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -77,6 +77,7 @@ namespace FizzyLauncher removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); panel1 = new System.Windows.Forms.Panel(); + toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); contextMenuStrip2.SuspendLayout(); menuStrip1.SuspendLayout(); tileContainerMenu1.SuspendLayout(); @@ -274,41 +275,41 @@ namespace FizzyLauncher // // tileContainerMenu1 // - tileContainerMenu1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addGroupToolStripMenuItem1, toolStripMenuItem4, editToolStripMenuItem, toolStripSeparator1, toolStripMenuItem2, toolStripSeparator2, toolStripMenuItem3, toolStripSeparator3, removeToolStripMenuItem }); + tileContainerMenu1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addGroupToolStripMenuItem1, toolStripMenuItem4, editToolStripMenuItem, toolStripMenuItem5, toolStripSeparator1, toolStripMenuItem2, toolStripSeparator2, toolStripMenuItem3, toolStripSeparator3, removeToolStripMenuItem }); tileContainerMenu1.Name = "tileContainerMenu1"; - tileContainerMenu1.Size = new System.Drawing.Size(133, 154); + tileContainerMenu1.Size = new System.Drawing.Size(181, 198); // // addGroupToolStripMenuItem1 // addGroupToolStripMenuItem1.Name = "addGroupToolStripMenuItem1"; - addGroupToolStripMenuItem1.Size = new System.Drawing.Size(132, 22); + addGroupToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); addGroupToolStripMenuItem1.Text = "&Add Tile"; addGroupToolStripMenuItem1.Click += addGroupToolStripMenuItem1_Click; // // toolStripMenuItem4 // toolStripMenuItem4.Name = "toolStripMenuItem4"; - toolStripMenuItem4.Size = new System.Drawing.Size(132, 22); + toolStripMenuItem4.Size = new System.Drawing.Size(180, 22); toolStripMenuItem4.Text = "Add &Group"; toolStripMenuItem4.Click += toolStripMenuItem4_Click; // // editToolStripMenuItem // editToolStripMenuItem.Name = "editToolStripMenuItem"; - editToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + editToolStripMenuItem.Size = new System.Drawing.Size(180, 22); editToolStripMenuItem.Text = "&Edit"; editToolStripMenuItem.Click += editToolStripMenuItem_Click; // // toolStripSeparator1 // toolStripSeparator1.Name = "toolStripSeparator1"; - toolStripSeparator1.Size = new System.Drawing.Size(129, 6); + toolStripSeparator1.Size = new System.Drawing.Size(177, 6); // // toolStripMenuItem2 // toolStripMenuItem2.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { addRowToolStripMenuItem, removeRowToolStripMenuItem }); toolStripMenuItem2.Name = "toolStripMenuItem2"; - toolStripMenuItem2.Size = new System.Drawing.Size(132, 22); + toolStripMenuItem2.Size = new System.Drawing.Size(180, 22); toolStripMenuItem2.Text = "Ro&w"; // // addRowToolStripMenuItem @@ -328,13 +329,13 @@ namespace FizzyLauncher // toolStripSeparator2 // toolStripSeparator2.Name = "toolStripSeparator2"; - toolStripSeparator2.Size = new System.Drawing.Size(129, 6); + toolStripSeparator2.Size = new System.Drawing.Size(177, 6); // // toolStripMenuItem3 // toolStripMenuItem3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { topToolStripMenuItem, upToolStripMenuItem, downToolStripMenuItem, bottomToolStripMenuItem }); toolStripMenuItem3.Name = "toolStripMenuItem3"; - toolStripMenuItem3.Size = new System.Drawing.Size(132, 22); + toolStripMenuItem3.Size = new System.Drawing.Size(180, 22); toolStripMenuItem3.Text = "&Move"; // // topToolStripMenuItem @@ -368,12 +369,12 @@ namespace FizzyLauncher // toolStripSeparator3 // toolStripSeparator3.Name = "toolStripSeparator3"; - toolStripSeparator3.Size = new System.Drawing.Size(129, 6); + toolStripSeparator3.Size = new System.Drawing.Size(177, 6); // // removeToolStripMenuItem // removeToolStripMenuItem.Name = "removeToolStripMenuItem"; - removeToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + removeToolStripMenuItem.Size = new System.Drawing.Size(180, 22); removeToolStripMenuItem.Text = "&Remove"; removeToolStripMenuItem.Click += removeToolStripMenuItem_Click; // @@ -402,6 +403,13 @@ namespace FizzyLauncher panel1.Size = new System.Drawing.Size(404, 417); panel1.TabIndex = 9; // + // toolStripMenuItem5 + // + toolStripMenuItem5.Name = "toolStripMenuItem5"; + toolStripMenuItem5.Size = new System.Drawing.Size(180, 22); + toolStripMenuItem5.Text = "&Duplicate"; + toolStripMenuItem5.Click += toolStripMenuItem5_Click; + // // MainForm // AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -474,6 +482,7 @@ namespace FizzyLauncher private System.Windows.Forms.ToolStripMenuItem downToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem bottomToolStripMenuItem; private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem5; } } diff --git a/MainForm.cs b/MainForm.cs index d4e5272..f738c57 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.ComponentModel; -using System.Drawing; using System.IO; using System.Linq; using System.Threading.Tasks; @@ -256,9 +255,9 @@ namespace FizzyLauncher /// /// /// - private void addGroupToolStripMenuItem_Click(object sender, EventArgs e) + private async void addGroupToolStripMenuItem_Click(object sender, EventArgs e) { - AddNewTileGroup(); + await AddNewTileGroup(); } @@ -358,7 +357,7 @@ namespace FizzyLauncher private async Task fileSessionManager_OnNewSession(FileSessionManager sender) { - return await Task.Run(() => + return await Task.Run(async () => { var form = new NewForm(); if (form.ShowDialog() == DialogResult.OK) @@ -371,7 +370,7 @@ namespace FizzyLauncher for (var i = 0; i < result.GroupCount; i++) { - AddNewTileGroup(); + await AddNewTileGroup(); } } @@ -601,6 +600,28 @@ namespace FizzyLauncher }; } + /// + /// Duplicate + /// + /// + /// + private async void toolStripMenuItem5_Click(object sender, EventArgs e) + { + var container = UIControl.GetOwner((ToolStripMenuItem)sender); + if (container == null) + { + return; + } + + var model = UIControl.GetTag(container); + model.IsExpanded = true; + + await AddTileGroups(model); + + _fileSessionManager.HasChanged = true; + } + + /// /// Row - Add Row /// @@ -730,28 +751,44 @@ namespace FizzyLauncher #endregion - private void AddNewTileGroup() + private async Task AddNewTileGroup() { var group = new TileGroupModel(); group.Title = "New Group"; group.IsExpanded = true; group.GridSize = new System.Drawing.Size(this.CurrentSession.TilesPerRow, 1); - var container = new RyzStudio.Windows.TileForms.TileContainer(); - container.Title = group.Title; - container.IsOpen = group.IsExpanded; - container.TitleContextMenuStrip = tileContainerMenu1; - container.AutoSizeHeight = true; - container.Tag = group; - container.BackColor = Color.Orange; - - UIControl.Add(flowLayoutPanel1, container); - - container.AutoSize(group.GridSize.Width, group.GridSize.Height); + await AddTileGroups(group); _fileSessionManager.HasChanged = true; } + private async Task AddTileGroups(TileGroupModel model) + { + await Task.Run(() => + { + var panel = new RyzStudio.Windows.TileForms.TileContainer(); + panel.Title = model.Title; + panel.IsOpen = model.IsExpanded; + panel.TitleContextMenuStrip = tileContainerMenu1; + panel.AutoSizeHeight = true; + panel.Tag = model; + + panel.AutoSize(model.GridSize.Width, model.GridSize.Height); + + UIControl.Add(flowLayoutPanel1, panel); + + // Load tiles + foreach (var item2 in model.Items ?? new List()) + { + var tile = new FizzyLauncher.Windows.Forms.TilePanel(); + tile.LoadInfo(item2); + + panel.Add(tile, item2.Position.X, item2.Position.Y); + } + }); + } + private void AutoResize() { if (flowLayoutPanel1.Controls.Count <= 0) @@ -770,35 +807,12 @@ namespace FizzyLauncher private async Task LoadTileGroups(List groupList) { - await Task.Run(() => + UIControl.Clear(flowLayoutPanel1); + + foreach (var item in groupList ?? new List()) { - UIControl.Clear(flowLayoutPanel1); - - // Load groups - foreach (var item in groupList ?? new List()) - { - var panel = new RyzStudio.Windows.TileForms.TileContainer(); - panel.Title = item.Title; - panel.IsOpen = item.IsExpanded; - panel.TitleContextMenuStrip = tileContainerMenu1; - panel.AutoSizeHeight = true; - panel.Tag = item; - - panel.AutoSize(item.GridSize.Width, item.GridSize.Height); - - UIControl.Add(flowLayoutPanel1, panel); - - // Load tiles - foreach (var item2 in item.Items ?? new List()) - { - var tile = new FizzyLauncher.Windows.Forms.TilePanel(); - tile.LoadInfo(item2); - - panel.Add(tile, item2.Position.X, item2.Position.Y); - } - - } - }); + await AddTileGroups(item); + } } } diff --git a/build.bat b/build.bat index 71bd782..2996b4a 100644 --- a/build.bat +++ b/build.bat @@ -8,4 +8,6 @@ dotnet publish skye.sln -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfC "C:\B\Portable Files (dev)\Inno Setup\v6.0.4-2\app\ISCC.exe" "build-installer.iss" cd "bin\Release\64\" -"C:\B\Portable Files\PeaZip (Portable)\v6.5.1\App\PeaZip\res\7z\7z.exe" a -t7z "..\fizzy-launcher.7z" "*" -mx9 \ No newline at end of file +"C:\B\Portable Files\PeaZip (Portable)\v6.5.1\App\PeaZip\res\7z\7z.exe" a -t7z "..\fizzy-launcher.7z" "*" -mx9 + +PAUSE \ No newline at end of file