Skip to content

Commit

Permalink
Fix database deletion bug, update wait dialog and some other interfac…
Browse files Browse the repository at this point in the history
…e changes
  • Loading branch information
CatmanFan committed Jan 17, 2025
1 parent dfa9cce commit 7d4b413
Show file tree
Hide file tree
Showing 23 changed files with 341 additions and 293 deletions.
1 change: 1 addition & 0 deletions FriishProduce/MainForm.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 10 additions & 8 deletions FriishProduce/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ private void addProject(object sender, EventArgs e)

private void addTab(Platform platform, Project x = null, string file = null)
{
ProjectForm p = new(platform, file, x) { Font = Font };
ProjectForm p = new(platform, file, x);
p.FormClosed += TabChanged;
tabControl.TabPages.Add(p);

Expand Down Expand Up @@ -332,7 +332,7 @@ private void TabContextMenu_Opening(object sender, CancelEventArgs e)

private void CloseTab_Click(object sender, EventArgs e) { var tab = tabControl.SelectedForm as Form; tab?.Close(); }

private void About_Click(object sender, EventArgs e) { using var about = new About() { Font = Font }; about.ShowDialog(); }
private void About_Click(object sender, EventArgs e) { using var about = new About(); about.ShowDialog(); }

private void MenuItem_Exit_Click(object sender, EventArgs e) => Application.Exit();

Expand Down Expand Up @@ -516,18 +516,20 @@ private void LanguageFileEditor(object sender, EventArgs e)

private void ClearAllDatabases(object sender, EventArgs e)
{
foreach (var item in Directory.EnumerateFiles(Paths.Databases))
if (Path.GetExtension(item).ToLower() == ".xml")
File.Delete(item);
if (Directory.Exists(Paths.Databases))
foreach (var item in Directory.EnumerateFiles(Paths.Databases))
if (Path.GetExtension(item).ToLower() == ".xml")
File.Delete(item);
}

private void ResetConfig(object sender, EventArgs e)
{
if (MessageBox.Show(Program.Lang.Msg(11), MessageBox.Buttons.YesNo, MessageBox.Icons.Warning) == MessageBox.Result.Yes)
{
foreach (var item in Directory.EnumerateFiles(Paths.Databases))
if (Path.GetExtension(item).ToLower() == ".xml")
File.Delete(item);
if (Directory.Exists(Paths.Databases))
foreach (var item in Directory.EnumerateFiles(Paths.Databases))
if (Path.GetExtension(item).ToLower() == ".xml")
File.Delete(item);

Program.Config.Reset(false);
if (File.Exists(Paths.Config)) File.Delete(Paths.Config);
Expand Down
116 changes: 58 additions & 58 deletions FriishProduce/ProjectForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public partial class ProjectForm : Form
protected Platform targetPlatform { get; set; }
private readonly BannerOptions banner_form;
private readonly Savedata savedata;
private Wait wait;
private Wait wait = new(false);
private HTMLForm htmlForm;

protected string TIDCode;
Expand Down Expand Up @@ -107,48 +107,22 @@ public bool IsEmpty
}
}

private bool _isBusy;
public bool IsBusy
public void Wait(bool show, int msg = 0, bool showProgress = false)
{
get => _isBusy;

set
Invoke(new MethodInvoker(delegate
{
_isBusy = value;
if (!show) ParentForm.Select();

if (InvokeRequired)
if (show)
{
Invoke(new MethodInvoker(delegate
{
if (!value) ParentForm.Select();

if (value)
{
wait = new();
wait.Show(this);
}
else
wait.Hide();

(ParentForm as MainForm).Enabled = Enabled = !value;
}));
wait = new(showProgress, msg);
wait.Show(this);
}

else
{
if (!value) ParentForm.Select();
wait.Hide();

if (value)
{
wait = new();
wait.Show(this);
}
else
wait.Hide();

(ParentForm as MainForm).Enabled = Enabled = !value;
}
}
(ParentForm as MainForm).Enabled = Enabled = !show;
}));
}

public bool IsExportable
Expand Down Expand Up @@ -442,6 +416,7 @@ public void RefreshForm()

#region ------------------------------------------ Localization: Controls ------------------------------------------
Program.Lang.Control(this, "projectform");
Font = Program.MainForm.Font;

// File filters
browsePatch.Filter = Program.Lang.String("filter.patch");
Expand Down Expand Up @@ -1361,9 +1336,9 @@ protected void LoadImage()
else refreshData();
}

protected void LoadImage(string path)
protected async void LoadImage(string path)
{
img = new ImageHelper(targetPlatform, path);
await Task.Run(() => { img = new ImageHelper(targetPlatform, path); });
LoadImage(img.Source);
}

Expand Down Expand Up @@ -1432,16 +1407,19 @@ protected bool LoadImage(Bitmap src)

try
{
img.InterpMode = (InterpolationMode)image_interpolation_mode.SelectedIndex;
img.FitAspectRatio = image_resize1.Checked;
Invoke(new MethodInvoker(delegate
{
img.InterpMode = (InterpolationMode)image_interpolation_mode.SelectedIndex;
img.FitAspectRatio = image_resize1.Checked;

platformImageFunction(src);
platformImageFunction(src);

if (img.Source != null)
{
resetImages();
refreshData();
}
if (img.Source != null)
{
resetImages();
refreshData();
}
}));

return true;
}
Expand Down Expand Up @@ -1552,9 +1530,13 @@ public async void GameScan(bool imageOnly)
{
if (rom == null || rom.FilePath == null) return;

Wait(true);

try
{
var gameData = await Task.FromResult(GetGameData(targetPlatform, rom.FilePath));
(string Name, string Serial, string Year, string Players, string Image) gameData = (null, null, null, null, null);
await Task.Run(() => { gameData = GetGameData(targetPlatform, rom.FilePath); });

bool retrieved = imageOnly ? !string.IsNullOrEmpty(gameData.Image) : gameData != (null, null, null, null, null);

if (retrieved)
Expand Down Expand Up @@ -1587,6 +1569,8 @@ public async void GameScan(bool imageOnly)
resetImages(true);
}

Wait(false);

// Show message if partially failed to retrieve data
if (retrieved && (string.IsNullOrEmpty(gameData.Name) || string.IsNullOrEmpty(gameData.Players) || string.IsNullOrEmpty(gameData.Year) || string.IsNullOrEmpty(gameData.Image)) && !imageOnly)
MessageBox.Show(Program.Lang.Msg(4));
Expand All @@ -1595,6 +1579,7 @@ public async void GameScan(bool imageOnly)

catch (Exception ex)
{
Wait(false);
MessageBox.Error(ex.Message);
}
}
Expand All @@ -1604,7 +1589,7 @@ public async void GameScan(bool imageOnly)
private void saveToWAD(object sender, System.ComponentModel.DoWorkEventArgs e)
{
Exception error = null;
IsBusy = true;
Wait(true, 1, true);

string targetFile = e.Argument.ToString();
if (targetFile == null) targetFile = Paths.WorkingFolder + "out.wad";
Expand All @@ -1625,14 +1610,14 @@ private void saveToWAD(object sender, System.ComponentModel.DoWorkEventArgs e)
BannerPlayers = _bannerPlayers,
BannerSound = sound,

IsMultifile = multifile_software.Checked,
// IsMultifile = multifile_software.Checked,
BannerRegion = _bannerRegion,
SaveDataTitle = _saveDataTitle,
Settings = (contentOptions, keymap.List),

WAD = WAD.Load(Properties.Resources.StaticBase),
WadRegion = (int)outWadRegion,
WadVideoMode = video_modes.SelectedIndex,
// WadVideoMode = video_modes.SelectedIndex,

EmuVersion = emuVer,

Expand All @@ -1642,6 +1627,17 @@ private void saveToWAD(object sender, System.ComponentModel.DoWorkEventArgs e)
Out = targetFile,
};

string emulator = null;
Forwarder.Storages device = 0;

Invoke(new MethodInvoker(delegate
{
m.IsMultifile = multifile_software.Checked;
m.WadVideoMode = video_modes.SelectedIndex;
emulator = injection_methods.SelectedItem.ToString();
device = forwarder_root_device.SelectedIndex == 1 ? Forwarder.Storages.USB : Forwarder.Storages.SD;
}));

// Get WAD data
// *******
if (inWadFile != null) m.GetWAD(inWadFile, baseID.Text);
Expand All @@ -1651,6 +1647,7 @@ private void saveToWAD(object sender, System.ComponentModel.DoWorkEventArgs e)
var index = Array.IndexOf(entry.GetUpperIDs(), baseID.Text);
m.GetWAD(entry.GetWAD(index), entry.GetUpperID(index));
}
backgroundWorker.ReportProgress(m.Progress);

switch (targetPlatform)
{
Expand All @@ -1666,7 +1663,11 @@ private void saveToWAD(object sender, System.ComponentModel.DoWorkEventArgs e)
if (isVirtualConsole)
m.Inject();
else
m.CreateForwarder(injection_methods.SelectedItem.ToString(), forwarder_root_device.SelectedIndex == 1 ? Forwarder.Storages.USB : Forwarder.Storages.SD);
m.CreateForwarder(emulator, device);
break;

case Platform.Flash:
m.Inject();
break;

case Platform.GB:
Expand All @@ -1676,25 +1677,25 @@ private void saveToWAD(object sender, System.ComponentModel.DoWorkEventArgs e)
case Platform.SMCD:
case Platform.PSX:
case Platform.RPGM:
m.CreateForwarder(injection_methods.SelectedItem.ToString(), forwarder_root_device.SelectedIndex == 1 ? Forwarder.Storages.USB : Forwarder.Storages.SD);
break;

case Platform.Flash:
m.Inject();
m.CreateForwarder(emulator, device);
break;

default:
throw new NotImplementedException();
}
backgroundWorker.ReportProgress(m.Progress);

// Change WAD region & internal main.dol things
// *******

// Other WAD settings to be changed done by WAD creator helper, which will save to a new file
// *******
m.EditMetadata();
backgroundWorker.ReportProgress(m.Progress);
m.EditBanner();
backgroundWorker.ReportProgress(m.Progress);
m.Save();
backgroundWorker.ReportProgress(m.Progress);

// Check new WAD file
// *******
Expand All @@ -1709,6 +1710,7 @@ private void saveToWAD(object sender, System.ComponentModel.DoWorkEventArgs e)

finally
{
Wait(false);
Program.CleanTemp();

Invoke(new MethodInvoker(delegate
Expand All @@ -1730,8 +1732,6 @@ private void saveToWAD(object sender, System.ComponentModel.DoWorkEventArgs e)
MessageBox.Error(error.Message);
}
}));

IsBusy = false;
}
}
#endregion
Expand Down
15 changes: 9 additions & 6 deletions FriishProduce/ProjectForm.resx
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox4.ZOrder" xml:space="preserve">
<value>3</value>
<value>1</value>
</data>
<data name="banner.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
Expand Down Expand Up @@ -714,7 +714,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox5.ZOrder" xml:space="preserve">
<value>2</value>
<value>0</value>
</data>
<data name="forwarder_root_device.Items" xml:space="preserve">
<value>SD</value>
Expand Down Expand Up @@ -964,7 +964,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox3.ZOrder" xml:space="preserve">
<value>4</value>
<value>2</value>
</data>
<data name="pictureBox2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
Expand Down Expand Up @@ -1336,7 +1336,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox2.ZOrder" xml:space="preserve">
<value>7</value>
<value>5</value>
</data>
<data name="pictureBox1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
Expand Down Expand Up @@ -1528,7 +1528,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox6.ZOrder" xml:space="preserve">
<value>5</value>
<value>3</value>
</data>
<data name="include_patch.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
Expand Down Expand Up @@ -1651,7 +1651,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
<value>6</value>
<value>4</value>
</data>
<metadata name="backgroundWorker.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>914, 17</value>
Expand Down Expand Up @@ -3860,6 +3860,9 @@
<data name="$this.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>No</value>
</data>
<data name="$this.RightToLeftLayout" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="&gt;&gt;browseInputWad.Name" xml:space="preserve">
<value>browseInputWad</value>
</data>
Expand Down
Loading

0 comments on commit 7d4b413

Please sign in to comment.