Skip to content

Commit

Permalink
Added context menu options in the games library for deleting all game…
Browse files Browse the repository at this point in the history
…s in the database
  • Loading branch information
Asnivor committed Oct 10, 2016
1 parent 6a23b93 commit b22ece9
Show file tree
Hide file tree
Showing 5 changed files with 112 additions and 3 deletions.
51 changes: 50 additions & 1 deletion MedLaunch/Classes/GameScanner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,56 @@ public string GetPath(int systemId)
break;
}
return path;
}
}
// remove ALL GAMES from db for all systems
public static void RemoveAllGames()
{
MessageBoxResult result = MessageBox.Show("This operation will wipe out ALL the games in your games library database (but they will not be deleted from disk)\n\nAre you sure you wish to continue?", "WARNING", MessageBoxButton.OKCancel, MessageBoxImage.Warning);
if (result == MessageBoxResult.OK)
{
// get all roms for specific system
using (var context = new MyDbContext())
{
List<Game> roms = (from a in context.Game
select a).ToList();
Game.DeleteGames(roms);
}
}
}

// remove all roms from db for a certain system
public static void RemoveRoms(int sysId)
{
MessageBoxResult result = MessageBox.Show("This operation will wipe out ALL the " + GSystem.GetSystemName(sysId) + " games in your library database (but they will not be deleted from disk)\n\nAre you sure you wish to continue?", "WARNING", MessageBoxButton.OKCancel, MessageBoxImage.Warning);
if (result == MessageBoxResult.OK)
{
// get all roms for specific system
using (var context = new MyDbContext())
{
List<Game> roms = (from a in context.Game
where a.systemId == sysId
select a).ToList();
Game.DeleteGames(roms);
}
}
}

// remove all disk-based games from db for a certain system
public static void RemoveDisks(int sysId)
{
MessageBoxResult result = MessageBox.Show("This operation will wipe out ALL the " + GSystem.GetSystemName(sysId) + " games in your library database (but they will not be deleted from disk)\n\nAre you sure you wish to continue?", "WARNING", MessageBoxButton.OKCancel, MessageBoxImage.Warning);
if (result == MessageBoxResult.OK)
{
// get all disks for specific system
using (var context = new MyDbContext())
{
List<Game> disks = (from a in context.Game
where a.systemId == sysId
select a).ToList();
Game.DeleteGames(disks);
}
}
}

// return number of files found in a directory and sub-directory (based on usingRecursion bool)
public static int CountFiles(string path, bool usingRecursion)
Expand Down
26 changes: 26 additions & 0 deletions MedLaunch/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,17 @@

<Border BorderBrush="White" BorderThickness="1,1,1,1" CornerRadius="2" Margin="0" Grid.Column="0">
<Expander IsExpanded="True" BorderThickness="0" Header="Roms">
<Expander.ContextMenu>
<ContextMenu>
<MenuItem Click="RemoveAllGames_Click" Header="Remove All Games From Database" />
</ContextMenu>
</Expander.ContextMenu>
<StackPanel x:Name="spRomFilters">
<RadioButton GroupName="flt" x:Name="btnNes" HorizontalContentAlignment="Left" Style="{StaticResource {x:Type ToggleButton}}" Checked="btnNes_Checked">
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms11" Click="ScanRoms_Click" Header="Rescan NES ROMs" />
<MenuItem x:Name="RemoveRoms11" Click="RemoveRoms_Click" Header="Remove All NES ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
NES
Expand All @@ -69,6 +75,7 @@
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms12" Click="ScanRoms_Click" Header="Rescan SNES ROMs" />
<MenuItem x:Name="RemoveRoms12" Click="RemoveRoms_Click" Header="Remove All SNES ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
SNES
Expand All @@ -77,6 +84,7 @@
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms10" Click="ScanRoms_Click" Header="Rescan SMS ROMs" />
<MenuItem x:Name="RemoveRoms10" Click="RemoveRoms_Click" Header="Remove All SMS ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
Master System
Expand All @@ -85,6 +93,7 @@
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms4" Click="ScanRoms_Click" Header="Rescan MD ROMs" />
<MenuItem x:Name="RemoveRoms4" Click="RemoveRoms_Click" Header="Remove All MD ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
MegaDrive
Expand All @@ -93,6 +102,7 @@
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms7" Click="ScanRoms_Click" Header="Rescan PCE ROMs" />
<MenuItem x:Name="RemoveRoms7" Click="RemoveRoms_Click" Header="Remove All PCE ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
PC-Engine
Expand All @@ -101,6 +111,7 @@
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms14" Click="ScanRoms_Click" Header="Rescan VB ROMs" />
<MenuItem x:Name="RemoveRoms14" Click="RemoveRoms_Click" Header="Remove All VB ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
Virtual Boy
Expand All @@ -109,6 +120,7 @@
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms6" Click="ScanRoms_Click" Header="Rescan NGP ROMs" />
<MenuItem x:Name="RemoveRoms6" Click="RemoveRoms_Click" Header="Remove All NGP ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
NeoGeo Pocket
Expand All @@ -117,6 +129,7 @@
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms15" Click="ScanRoms_Click" Header="Rescan WSWAN ROMs" />
<MenuItem x:Name="RemoveRoms15" Click="RemoveRoms_Click" Header="Remove All WSWAN ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
WonderSwan
Expand All @@ -125,6 +138,7 @@
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms1" Click="ScanRoms_Click" Header="Rescan GB ROMs" />
<MenuItem x:Name="RemoveRoms1" Click="RemoveRoms_Click" Header="Remove All GB ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
Gameboy Color
Expand All @@ -133,6 +147,7 @@
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms2" Click="ScanRoms_Click" Header="Rescan GBA ROMs" />
<MenuItem x:Name="RemoveRoms2" Click="RemoveRoms_Click" Header="Remove All GBA ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
Gameboy Advance
Expand All @@ -141,6 +156,7 @@
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms5" Click="ScanRoms_Click" Header="Rescan GG ROMs" />
<MenuItem x:Name="RemoveRoms5" Click="RemoveRoms_Click" Header="Remove All GG ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
Game Gear
Expand All @@ -149,6 +165,7 @@
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ScanRoms3" Click="ScanRoms_Click" Header="Rescan LYNX ROMs" />
<MenuItem x:Name="RemoveRoms3" Click="RemoveRoms_Click" Header="Remove All LYNX ROMs from Database" />
</ContextMenu>
</RadioButton.ContextMenu>
Atari Lynx
Expand All @@ -159,12 +176,18 @@

<Border BorderBrush="White" BorderThickness="1,1,1,1" CornerRadius="2" Margin="0" Grid.Column="0">
<Expander IsExpanded="True" BorderThickness="0" Header="Disks" >
<Expander.ContextMenu>
<ContextMenu>
<MenuItem Click="RemoveAllGames_Click" Header="Remove All Games From Database" />
</ContextMenu>
</Expander.ContextMenu>
<StackPanel x:Name="spDiskFilters">
<RadioButton GroupName="flt" x:Name="btnSs" HorizontalContentAlignment="Left" Style="{StaticResource {x:Type ToggleButton}}" Checked="btnSs_Checked">
<RadioButton.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ManualAddGame13" Click="ManualAddGame_Click" Header="Manually Import a Saturn Game" />
<MenuItem x:Name="ScanDisks13" Click="ScanDisks_Click" Header="Rescan SS Disks" />
<MenuItem x:Name="RemoveDisks13" Click="RemoveDisks_Click" Header="Remove All SS Games From Database" />
</ContextMenu>
</RadioButton.ContextMenu>
Saturn
Expand All @@ -174,6 +197,7 @@
<ContextMenu>
<MenuItem x:Name="ManualAddGame9" Click="ManualAddGame_Click" Header="Manually Import a PSX Game" />
<MenuItem x:Name="ScanDisks9" Click="ScanDisks_Click" Header="Rescan PSX Disks" />
<MenuItem x:Name="RemoveDisks9" Click="RemoveDisks_Click" Header="Remove All PSX Games From Database" />
</ContextMenu>
</RadioButton.ContextMenu>
Playstation
Expand All @@ -184,6 +208,7 @@
<ContextMenu>
<MenuItem x:Name="ManualAddGame18" Click="ManualAddGame_Click" Header="Manually Import a PCE Game" />
<MenuItem x:Name="ScanDisks18" Click="ScanDisks_Click" Header="Rescan PCE Disks" />
<MenuItem x:Name="RemoveDisks18" Click="RemoveDisks_Click" Header="Remove All PCE(CD) Games From Database" />
</ContextMenu>
</RadioButton.ContextMenu>
PC-Engine (CD)
Expand All @@ -193,6 +218,7 @@
<ContextMenu>
<MenuItem x:Name="ManualAddGame8" Click="ManualAddGame_Click" Header="Manually Import a PC-FX Game" />
<MenuItem x:Name="ScanDisks8" Click="ScanDisks_Click" Header="Rescan PCFX Disks" />
<MenuItem x:Name="RemoveDisks8" Click="RemoveDisks_Click" Header="Remove All PCFX Games From Database" />
</ContextMenu>
</RadioButton.ContextMenu>
PC-FX
Expand Down
25 changes: 25 additions & 0 deletions MedLaunch/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -732,13 +732,31 @@ private void ScanRoms_Click(object sender, RoutedEventArgs e)
RescanSystemRoms(sysId);
}

private void RemoveRoms_Click(object sender, RoutedEventArgs e)
{
// get systemId from menu name
string menuName = (sender as MenuItem).Name;
int sysId = Convert.ToInt32(menuName.Replace("RemoveRoms", ""));
GameScanner.RemoveRoms(sysId);
GamesLibraryVisualHandler.RefreshGamesLibrary();
}

private void ScanDisks_Click(object sender, RoutedEventArgs e)
{
// get systemId from menu name
string menuName = (sender as MenuItem).Name;
int sysId = Convert.ToInt32(menuName.Replace("ScanDisks", ""));
}

private void RemoveDisks_Click(object sender, RoutedEventArgs e)
{
// get systemId from menu name
string menuName = (sender as MenuItem).Name;
int sysId = Convert.ToInt32(menuName.Replace("RemoveDisks", ""));
GameScanner.RemoveDisks(sysId);
GamesLibraryVisualHandler.RefreshGamesLibrary();
}

private void ManualAddGame_Click(object sender, RoutedEventArgs e)
{
string menuName = (sender as MenuItem).Name;
Expand All @@ -749,6 +767,11 @@ private void ManualAddGame_Click(object sender, RoutedEventArgs e)
GamesLibraryVisualHandler.RefreshGamesLibrary();
}

private void RemoveAllGames_Click(object sender, RoutedEventArgs e)
{
GameScanner.RemoveAllGames();
}


// Games grid filter text box event
private void tbFilterDatagrid_TextChanged(object sender, TextChangedEventArgs e)
Expand Down Expand Up @@ -1986,5 +2009,7 @@ private void btnSettingsCancelAllChanges_Click(object sender, RoutedEventArgs e)
ConfigServerSettings.PopulateCustomServer(tbServerDesc, tbHostname, slServerPort, tbPassword, tbGameKey);

}


}
}
9 changes: 9 additions & 0 deletions MedLaunch/Models/Game.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,14 @@ public static void DeleteGame(Game game)
}

}

public static void DeleteGames(List<Game> games)
{
using (var cont = new MyDbContext())
{
cont.Game.RemoveRange(games);
cont.SaveChanges();
}
}
}
}
4 changes: 2 additions & 2 deletions MedLaunch/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.1.14.1")]
[assembly: AssemblyFileVersion("0.1.14.1")]
[assembly: AssemblyVersion("0.1.14.5")]
[assembly: AssemblyFileVersion("0.1.14.5")]

0 comments on commit b22ece9

Please sign in to comment.