Merge pull request 'release/0.3.5' (#1) from release/0.3.5 into master

Reviewed-on: #1
This commit is contained in:
Ray 2024-08-07 18:50:50 +00:00
commit 487d40df9c
14 changed files with 222 additions and 128 deletions

View File

@ -96,46 +96,6 @@ namespace RokettoLaunch {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap cog2 {
get {
object obj = ResourceManager.GetObject("cog2", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap disk2 {
get {
object obj = ResourceManager.GetObject("disk2", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap file {
get {
object obj = ResourceManager.GetObject("file", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap folder {
get {
object obj = ResourceManager.GetObject("folder", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -146,16 +106,6 @@ namespace RokettoLaunch {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap help2 {
get {
object obj = ResourceManager.GetObject("help2", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>

View File

@ -130,24 +130,9 @@
<value>https://www.hiimray.co.uk/software-rokettolaunch</value> <value>https://www.hiimray.co.uk/software-rokettolaunch</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="cog2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\cog2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="disk2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\disk2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="file" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\folder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="folder_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\folder_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>Resources\folder_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="help2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\help2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon_64" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icon_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\icon-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>Resources\icon-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>

View File

@ -70,7 +70,7 @@ namespace RokettoLaunch
textBox1.IconSize = 13F; textBox1.IconSize = 13F;
textBox1.Location = new Point(109, 20); textBox1.Location = new Point(109, 20);
textBox1.Name = "textBox1"; textBox1.Name = "textBox1";
textBox1.Size = new Size(275, 32); textBox1.Size = new Size(260, 32);
textBox1.TabIndex = 152; textBox1.TabIndex = 152;
textBox1.TabStop = false; textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false; textBox1.UseSystemPasswordChar = false;
@ -126,6 +126,7 @@ namespace RokettoLaunch
dialogFooter1.Button1Text = "&Save"; dialogFooter1.Button1Text = "&Save";
dialogFooter1.Dialog = this; dialogFooter1.Dialog = this;
dialogFooter1.Dock = DockStyle.Bottom; dialogFooter1.Dock = DockStyle.Bottom;
dialogFooter1.IsBusy = false;
dialogFooter1.Location = new Point(0, 437); dialogFooter1.Location = new Point(0, 437);
dialogFooter1.Name = "dialogFooter1"; dialogFooter1.Name = "dialogFooter1";
dialogFooter1.Size = new Size(384, 84); dialogFooter1.Size = new Size(384, 84);

42
MainForm.Designer.cs generated
View File

@ -139,64 +139,64 @@ namespace RokettoLaunch
// //
// newToolStripMenuItem // newToolStripMenuItem
// //
newToolStripMenuItem.Image = AppResource.file; newToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
newToolStripMenuItem.Name = "newToolStripMenuItem"; newToolStripMenuItem.Name = "newToolStripMenuItem";
newToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N; newToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N;
newToolStripMenuItem.Size = new System.Drawing.Size(146, 22); newToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
newToolStripMenuItem.Text = "&New"; newToolStripMenuItem.Text = "&New";
newToolStripMenuItem.Click += newToolStripMenuItem_Click; newToolStripMenuItem.Click += newToolStripMenuItem_Click;
// //
// openToolStripMenuItem // openToolStripMenuItem
// //
openToolStripMenuItem.Image = AppResource.folder; openToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
openToolStripMenuItem.Name = "openToolStripMenuItem"; openToolStripMenuItem.Name = "openToolStripMenuItem";
openToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O; openToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O;
openToolStripMenuItem.Size = new System.Drawing.Size(146, 22); openToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
openToolStripMenuItem.Text = "&Open"; openToolStripMenuItem.Text = "&Open";
openToolStripMenuItem.Click += openToolStripMenuItem_Click; openToolStripMenuItem.Click += openToolStripMenuItem_Click;
// //
// toolStripMenuItem13 // toolStripMenuItem13
// //
toolStripMenuItem13.Name = "toolStripMenuItem13"; toolStripMenuItem13.Name = "toolStripMenuItem13";
toolStripMenuItem13.Size = new System.Drawing.Size(143, 6); toolStripMenuItem13.Size = new System.Drawing.Size(177, 6);
// //
// closeToolStripMenuItem // closeToolStripMenuItem
// //
closeToolStripMenuItem.Name = "closeToolStripMenuItem"; closeToolStripMenuItem.Name = "closeToolStripMenuItem";
closeToolStripMenuItem.Size = new System.Drawing.Size(146, 22); closeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
closeToolStripMenuItem.Text = "&Close"; closeToolStripMenuItem.Text = "&Close";
closeToolStripMenuItem.Click += closeToolStripMenuItem_Click; closeToolStripMenuItem.Click += closeToolStripMenuItem_Click;
// //
// toolStripMenuItem14 // toolStripMenuItem14
// //
toolStripMenuItem14.Name = "toolStripMenuItem14"; toolStripMenuItem14.Name = "toolStripMenuItem14";
toolStripMenuItem14.Size = new System.Drawing.Size(143, 6); toolStripMenuItem14.Size = new System.Drawing.Size(177, 6);
// //
// saveToolStripMenuItem // saveToolStripMenuItem
// //
saveToolStripMenuItem.Image = AppResource.disk2; saveToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
saveToolStripMenuItem.Name = "saveToolStripMenuItem"; saveToolStripMenuItem.Name = "saveToolStripMenuItem";
saveToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S; saveToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S;
saveToolStripMenuItem.Size = new System.Drawing.Size(146, 22); saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
saveToolStripMenuItem.Text = "&Save"; saveToolStripMenuItem.Text = "&Save";
saveToolStripMenuItem.Click += saveToolStripMenuItem_Click; saveToolStripMenuItem.Click += saveToolStripMenuItem_Click;
// //
// saveAsToolStripMenuItem // saveAsToolStripMenuItem
// //
saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22); saveAsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
saveAsToolStripMenuItem.Text = "Save &As..."; saveAsToolStripMenuItem.Text = "Save &As...";
saveAsToolStripMenuItem.Click += saveAsToolStripMenuItem_Click; saveAsToolStripMenuItem.Click += saveAsToolStripMenuItem_Click;
// //
// toolStripMenuItem15 // toolStripMenuItem15
// //
toolStripMenuItem15.Name = "toolStripMenuItem15"; toolStripMenuItem15.Name = "toolStripMenuItem15";
toolStripMenuItem15.Size = new System.Drawing.Size(143, 6); toolStripMenuItem15.Size = new System.Drawing.Size(177, 6);
// //
// exitToolStripMenuItem2 // exitToolStripMenuItem2
// //
exitToolStripMenuItem2.Name = "exitToolStripMenuItem2"; exitToolStripMenuItem2.Name = "exitToolStripMenuItem2";
exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22); exitToolStripMenuItem2.Size = new System.Drawing.Size(180, 22);
exitToolStripMenuItem2.Text = "E&xit"; exitToolStripMenuItem2.Text = "E&xit";
exitToolStripMenuItem2.Click += exitToolStripMenuItem2_Click; exitToolStripMenuItem2.Click += exitToolStripMenuItem2_Click;
// //
@ -210,7 +210,7 @@ namespace RokettoLaunch
// addGroupToolStripMenuItem // addGroupToolStripMenuItem
// //
addGroupToolStripMenuItem.Name = "addGroupToolStripMenuItem"; addGroupToolStripMenuItem.Name = "addGroupToolStripMenuItem";
addGroupToolStripMenuItem.Size = new System.Drawing.Size(132, 22); addGroupToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
addGroupToolStripMenuItem.Text = "&Add Group"; addGroupToolStripMenuItem.Text = "&Add Group";
addGroupToolStripMenuItem.Click += addGroupToolStripMenuItem_Click; addGroupToolStripMenuItem.Click += addGroupToolStripMenuItem_Click;
// //
@ -224,14 +224,14 @@ namespace RokettoLaunch
// showBigIconsToolStripMenuItem // showBigIconsToolStripMenuItem
// //
showBigIconsToolStripMenuItem.Name = "showBigIconsToolStripMenuItem"; showBigIconsToolStripMenuItem.Name = "showBigIconsToolStripMenuItem";
showBigIconsToolStripMenuItem.Size = new System.Drawing.Size(154, 22); showBigIconsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
showBigIconsToolStripMenuItem.Text = "Show &Big Icons"; showBigIconsToolStripMenuItem.Text = "Show &Big Icons";
showBigIconsToolStripMenuItem.Click += showBigIconsToolStripMenuItem_Click; showBigIconsToolStripMenuItem.Click += showBigIconsToolStripMenuItem_Click;
// //
// alwaysOnTopToolStripMenuItem // alwaysOnTopToolStripMenuItem
// //
alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem"; alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem";
alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(154, 22); alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
alwaysOnTopToolStripMenuItem.Text = "Always On &Top"; alwaysOnTopToolStripMenuItem.Text = "Always On &Top";
alwaysOnTopToolStripMenuItem.Click += alwaysOnTopToolStripMenuItem_Click; alwaysOnTopToolStripMenuItem.Click += alwaysOnTopToolStripMenuItem_Click;
// //
@ -244,10 +244,10 @@ namespace RokettoLaunch
// //
// optionsToolStripMenuItem // optionsToolStripMenuItem
// //
optionsToolStripMenuItem.Image = AppResource.cog2; optionsToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
optionsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12; optionsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12;
optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22); optionsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
optionsToolStripMenuItem.Text = "&Options"; optionsToolStripMenuItem.Text = "&Options";
optionsToolStripMenuItem.Click += optionsToolStripMenuItem_Click; optionsToolStripMenuItem.Click += optionsToolStripMenuItem_Click;
// //
@ -260,22 +260,22 @@ namespace RokettoLaunch
// //
// viewHelpToolStripMenuItem1 // viewHelpToolStripMenuItem1
// //
viewHelpToolStripMenuItem1.Image = AppResource.help2; viewHelpToolStripMenuItem1.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1"; viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1";
viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1; viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1;
viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22); viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(180, 22);
viewHelpToolStripMenuItem1.Text = "&View Help"; viewHelpToolStripMenuItem1.Text = "&View Help";
viewHelpToolStripMenuItem1.Click += viewHelpToolStripMenuItem1_Click; viewHelpToolStripMenuItem1.Click += viewHelpToolStripMenuItem1_Click;
// //
// toolStripMenuItem16 // toolStripMenuItem16
// //
toolStripMenuItem16.Name = "toolStripMenuItem16"; toolStripMenuItem16.Name = "toolStripMenuItem16";
toolStripMenuItem16.Size = new System.Drawing.Size(143, 6); toolStripMenuItem16.Size = new System.Drawing.Size(177, 6);
// //
// aboutToolStripMenuItem1 // aboutToolStripMenuItem1
// //
aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1"; aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22); aboutToolStripMenuItem1.Size = new System.Drawing.Size(180, 22);
aboutToolStripMenuItem1.Text = "&About"; aboutToolStripMenuItem1.Text = "&About";
aboutToolStripMenuItem1.Click += aboutToolStripMenuItem1_Click; aboutToolStripMenuItem1.Click += aboutToolStripMenuItem1_Click;
// //

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
@ -32,6 +33,12 @@ namespace RokettoLaunch
this.AutoScaleMode = AutoScaleMode.None; this.AutoScaleMode = AutoScaleMode.None;
this.Text = Application.ProductName; this.Text = Application.ProductName;
newToolStripMenuItem.Image = RyzStudio.Windows.ThemedForms.DefaultVisualStyle.GetImage("a", Color.Black, 2);
openToolStripMenuItem.Image = RyzStudio.Windows.ThemedForms.DefaultVisualStyle.GetImage("b", Color.Black, 2);
saveToolStripMenuItem.Image = RyzStudio.Windows.ThemedForms.DefaultVisualStyle.GetImage("c", Color.Black, 2);
optionsToolStripMenuItem.Image = RyzStudio.Windows.ThemedForms.DefaultVisualStyle.GetImage("i", Color.Black, 2);
viewHelpToolStripMenuItem1.Image = RyzStudio.Windows.ThemedForms.DefaultVisualStyle.GetImage("j", Color.Black, 2);
_fileSessionManager = new FileSessionManager(); _fileSessionManager = new FileSessionManager();
_fileSessionManager.OpenFileDialog = openFileDialog1; _fileSessionManager.OpenFileDialog = openFileDialog1;
_fileSessionManager.SaveFileDialog = saveFileDialog1; _fileSessionManager.SaveFileDialog = saveFileDialog1;
@ -150,7 +157,7 @@ namespace RokettoLaunch
{ {
closeToolStripMenuItem.Enabled = (_fileSessionManager.SessionState != FileSessionManager.SessionStateEnum.Close); closeToolStripMenuItem.Enabled = (_fileSessionManager.SessionState != FileSessionManager.SessionStateEnum.Close);
saveToolStripMenuItem.Enabled = (_fileSessionManager.SessionState == FileSessionManager.SessionStateEnum.Open); saveToolStripMenuItem.Enabled = (_fileSessionManager.SessionState == FileSessionManager.SessionStateEnum.Open) && _fileSessionManager.HasChanged;
saveAsToolStripMenuItem.Enabled = (_fileSessionManager.SessionState != FileSessionManager.SessionStateEnum.Close); saveAsToolStripMenuItem.Enabled = (_fileSessionManager.SessionState != FileSessionManager.SessionStateEnum.Close);
addGroupToolStripMenuItem.Enabled = (_fileSessionManager.SessionState != FileSessionManager.SessionStateEnum.Close); addGroupToolStripMenuItem.Enabled = (_fileSessionManager.SessionState != FileSessionManager.SessionStateEnum.Close);

View File

@ -27,40 +27,76 @@ namespace RokettoLaunch.Models
public List<TileModel> Items { get; set; } = new List<TileModel>(); public List<TileModel> Items { get; set; } = new List<TileModel>();
public string Version { get; set; }
public override string ToString() => this.Title ?? string.Empty; public override string ToString() => this.Title ?? string.Empty;
public string CleanProcessFilename => (string.IsNullOrWhiteSpace(this.ProcessFilename) ? string.Empty : resolvePath(this.ProcessFilename));
public string CleanProcessArgument => (string.IsNullOrWhiteSpace(this.ProcessArgument) ? string.Empty : resolvePath(this.ProcessArgument)); [JsonIgnore]
public string CleanProcessFilename
public string CleanProcessWorkingDirectory => (string.IsNullOrWhiteSpace(this.ProcessWorkingDirectory) ? string.Empty : resolvePath(this.ProcessWorkingDirectory));
protected string resolvePath(string value)
{ {
string rv = Environment.ExpandEnvironmentVariables(value); get
{
rv = resolveFirstPath(rv); return (string.IsNullOrWhiteSpace(this.ProcessFilename) ? string.Empty : ResolvePath(this.ProcessFilename));
rv = resolveLastPath(rv); }
return rv;
} }
protected string resolveFirstPath(string value) [JsonIgnore]
public string CleanProcessArgument
{ {
const string last = "%FIRST%"; get
if (!value.Contains(last))
{ {
return value; return (string.IsNullOrWhiteSpace(this.ProcessArgument) ? string.Empty : ResolvePath(this.ProcessArgument));
}
}
[JsonIgnore]
public string CleanProcessWorkingDirectory
{
get
{
return (string.IsNullOrWhiteSpace(this.ProcessWorkingDirectory) ? string.Empty : ResolvePath(this.ProcessWorkingDirectory));
}
}
private Tuple<string, string> SplitPath(string path, string needle)
{
if (string.IsNullOrWhiteSpace(path))
{
return null;
} }
string head = value.Substring(0, value.IndexOf(last)); if (string.IsNullOrWhiteSpace(needle))
string tail = value.Substring(value.IndexOf(last) + last.Length); {
return null;
}
if (!path.Contains(needle))
{
return null;
}
string head = path.Substring(0, path.IndexOf(needle));
string tail = path.Substring(path.IndexOf(needle) + needle.Length);
return new Tuple<string, string>(head, tail);
}
private string GetFirstPath(string value)
{
var parts = SplitPath(value, "%FIRST%");
if (parts == null)
{
return null;
}
string[] dirList = new string[0]; string[] dirList = new string[0];
try try
{ {
dirList = System.IO.Directory.GetDirectories(head, "*", System.IO.SearchOption.TopDirectoryOnly); dirList = System.IO.Directory.GetDirectories(parts.Item1, "*", System.IO.SearchOption.TopDirectoryOnly);
} }
catch catch
{ {
@ -69,28 +105,25 @@ namespace RokettoLaunch.Models
if (dirList.Length <= 0) if (dirList.Length <= 0)
{ {
return value; return null;
} }
return dirList[0] + tail; return System.IO.Path.GetFileName(dirList[0]);
} }
protected string resolveLastPath(string value) private string GetLastPath(string value)
{ {
const string last = "%LAST%"; var parts = SplitPath(value, "%LAST%");
if (!value.Contains(last)) if (parts == null)
{ {
return value; return null;
} }
string head = value.Substring(0, value.IndexOf(last));
string tail = value.Substring(value.IndexOf(last) + last.Length);
string[] dirList = new string[0]; string[] dirList = new string[0];
try try
{ {
dirList = System.IO.Directory.GetDirectories(head, "*", System.IO.SearchOption.TopDirectoryOnly); dirList = System.IO.Directory.GetDirectories(parts.Item1, "*", System.IO.SearchOption.TopDirectoryOnly);
} }
catch catch
{ {
@ -98,11 +131,128 @@ namespace RokettoLaunch.Models
} }
if (dirList.Length <= 0) if (dirList.Length <= 0)
{
return null;
}
return System.IO.Path.GetFileName(dirList[(dirList.Length - 1)]);
}
private string ResolvePath(string path)
{
var result = Environment.ExpandEnvironmentVariables(path);
if (result.Contains("%FIRST%"))
{
result = ResolveFirstPath(result);
}
if (result.Contains("%LAST%"))
{
result = ResolveLastPath(result);
}
return result;
}
private string ResolveFirstPath(string value)
{
var parts = SplitPath(value, "%FIRST%");
if (parts == null)
{ {
return value; return value;
} }
return dirList[(dirList.Length - 1)] + tail; try
{
if (!System.IO.Directory.Exists(parts.Item1))
{
return value;
}
}
catch (Exception)
{
return value;
}
// Try cached version
if (!string.IsNullOrWhiteSpace(this.Version))
{
var filename = parts.Item1 + this.Version + parts.Item2;
try
{
if (System.IO.File.Exists(filename))
{
return filename;
}
}
catch (Exception)
{
}
}
// Resolve version
var version = GetFirstPath(value);
if (version == null)
{
return value;
}
this.Version = version;
return parts.Item1 + version + parts.Item2;
}
private string ResolveLastPath(string value)
{
var parts = SplitPath(value, "%LAST%");
if (parts == null)
{
return value;
}
try
{
if (!System.IO.Directory.Exists(parts.Item1))
{
return value;
}
}
catch (Exception)
{
return value;
}
// Try cached version
if (!string.IsNullOrWhiteSpace(this.Version))
{
var filename = parts.Item1 + this.Version + parts.Item2;
try
{
if (System.IO.File.Exists(filename))
{
return filename;
}
}
catch (Exception)
{
}
}
// Resolve version
var version = GetLastPath(value);
if (version == null)
{
return value;
}
this.Version = version;
return parts.Item1 + version + parts.Item2;
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 467 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

View File

@ -14,7 +14,7 @@
<Copyright>Ray Lam</Copyright> <Copyright>Ray Lam</Copyright>
<AssemblyVersion>1.0.0.0</AssemblyVersion> <AssemblyVersion>1.0.0.0</AssemblyVersion>
<FileVersion>1.0.0.0</FileVersion> <FileVersion>1.0.0.0</FileVersion>
<Version>0.3.4.164</Version> <Version>0.3.5.0335</Version>
<EnableNETAnalyzers>False</EnableNETAnalyzers> <EnableNETAnalyzers>False</EnableNETAnalyzers>
<PlatformTarget>x64</PlatformTarget> <PlatformTarget>x64</PlatformTarget>
<PackageIcon>icon-128.png</PackageIcon> <PackageIcon>icon-128.png</PackageIcon>
@ -79,8 +79,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="RyzStudio" Version="8.1.2.324" /> <PackageReference Include="RyzStudio" Version="8.1.2.366" />
<PackageReference Include="RyzStudio.Windows.Forms" Version="8.1.3.632" /> <PackageReference Include="RyzStudio.Windows.Forms" Version="8.1.3.689" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -87,6 +87,10 @@ namespace RokettoLaunch.Windows.Forms
{ {
if (this.ModelInfo.IsGroup) if (this.ModelInfo.IsGroup)
{ {
var iconSize = ((this.MainForm?.CurrentSession?.ShowBigIcons ?? true) ? 24 : 16);
this.LeftContextMenuStrip.ImageScalingSize = new Size(iconSize, iconSize);
this.LeftContextMenuStrip?.Show(this, e.Location); this.LeftContextMenuStrip?.Show(this, e.Location);
} }
else else
@ -169,14 +173,11 @@ namespace RokettoLaunch.Windows.Forms
private void InvalidateGroupMenu(TileModel model) private void InvalidateGroupMenu(TileModel model)
{ {
var iconSize = ((this.MainForm?.CurrentSession?.ShowBigIcons ?? true) ? 24 : 16);
if (this.LeftContextMenuStrip == null) if (this.LeftContextMenuStrip == null)
{ {
this.LeftContextMenuStrip = new ContextMenuStrip(); this.LeftContextMenuStrip = new ContextMenuStrip();
} }
this.LeftContextMenuStrip.ImageScalingSize = new Size(iconSize, iconSize);
this.LeftContextMenuStrip.Items.Clear(); this.LeftContextMenuStrip.Items.Clear();
foreach (TileModel item in model?.Items ?? new System.Collections.Generic.List<TileModel>()) foreach (TileModel item in model?.Items ?? new System.Collections.Generic.List<TileModel>())

View File

@ -2,13 +2,13 @@
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "RokettoLaunch" #define MyAppName "RokettoLaunch"
#define MyAppVersion "0.3.4.164" #define MyAppVersion "0.3.5.335"
#define MyAppPublisher "Hi, I'm Ray" #define MyAppPublisher "Hi, I'm Ray"
#define MyAppURL "https://www.hiimray.co.uk/software-fizzy-launcher" #define MyAppURL "https://www.hiimray.co.uk/software-fizzy-launcher"
#define MyAppExeName "rokettolaunch.exe" #define MyAppExeName "rokettolaunch.exe"
#define AppSourcePath "L:\gitea-hiimray\linear-app-launcher\bin" #define AppSourcePath "L:\gitea-hiimray\roketto-launch\bin"
#define AppReleasePath "L:\gitea-hiimray\linear-app-launcher\bin" #define AppReleasePath "L:\gitea-hiimray\roketto-launch\bin"
#define AppReleaseName "rokettolaunch-installer" #define AppReleaseName "rokettolaunch-installer"