Working manual game icon selection

Also copes with patching existing shortcuts
This commit is contained in:
Terry MacDonald 2021-11-05 10:32:05 +13:00
parent 65cca02e5d
commit 4d9216328d
5 changed files with 217 additions and 264 deletions

View File

@ -373,6 +373,7 @@ namespace DisplayMagician
Icon myIcon = null; Icon myIcon = null;
List<ShortcutBitmap> bmList = new List<ShortcutBitmap>(); List<ShortcutBitmap> bmList = new List<ShortcutBitmap>();
int bmCount = 0; int bmCount = 0;
string fileNameOnly = Path.GetFileName(fileNameAndPath);
if (fileNameAndPath.EndsWith(".ico")) if (fileNameAndPath.EndsWith(".ico"))
{ {
@ -384,12 +385,7 @@ namespace DisplayMagician
myIcon = new Icon(fileNameAndPath, 256, 256); myIcon = new Icon(fileNameAndPath, 256, 256);
//Icon myIcon = Icon.ExtractAssociatedIcon(fileNameAndPath); //Icon myIcon = Icon.ExtractAssociatedIcon(fileNameAndPath);
ShortcutBitmap bm = new ShortcutBitmap(); ShortcutBitmap bm = CreateShortcutBitmap(myIcon.ToBitmap(), fileNameOnly, fileNameAndPath, bmCount++);
bm.UUID = Guid.NewGuid().ToString("D");
bm.Order = bmCount++;
bm.Source = fileNameAndPath;
bm.Image = myIcon.ToBitmap();
bm.Size = new Size(bm.Image.Width, bm.Image.Height);
// Add the shortcutbitmap to the list // Add the shortcutbitmap to the list
bmList.Add(bm); bmList.Add(bm);
logger.Trace($"ShortcutItem/GetMeABitmapFromFile: Added new bitmap from the icon file {fileNameAndPath} using standard Icon access method."); logger.Trace($"ShortcutItem/GetMeABitmapFromFile: Added new bitmap from the icon file {fileNameAndPath} using standard Icon access method.");
@ -406,12 +402,7 @@ namespace DisplayMagician
mySingleIcon.Load(fileNameAndPath); mySingleIcon.Load(fileNameAndPath);
foreach (IconImage myIconImage in mySingleIcon) foreach (IconImage myIconImage in mySingleIcon)
{ {
ShortcutBitmap bm = new ShortcutBitmap(); ShortcutBitmap bm = CreateShortcutBitmap(myIconImage.Image, fileNameOnly, fileNameAndPath, bmCount++);
bm.UUID = Guid.NewGuid().ToString("D");
bm.Order = bmCount++;
bm.Source = fileNameAndPath;
bm.Image = myIconImage.Image;
bm.Size = new Size(bm.Image.Width, bm.Image.Height);
// Add the shortcutbitmap to the list // Add the shortcutbitmap to the list
bmList.Add(bm); bmList.Add(bm);
logger.Trace($"ShortcutItem/GetMeABitmapFromFile: Added new bitmap from the icon file {fileNameAndPath} using MultiIcon access method."); logger.Trace($"ShortcutItem/GetMeABitmapFromFile: Added new bitmap from the icon file {fileNameAndPath} using MultiIcon access method.");
@ -453,12 +444,7 @@ namespace DisplayMagician
Icon[] allIcons = ie.GetAllIcons(); Icon[] allIcons = ie.GetAllIcons();
foreach (Icon myExtractedIcon in allIcons) foreach (Icon myExtractedIcon in allIcons)
{ {
ShortcutBitmap bm = new ShortcutBitmap(); ShortcutBitmap bm = CreateShortcutBitmap(myExtractedIcon.ToBitmap(), fileNameOnly, fileNameAndPath, bmCount++);
bm.UUID = Guid.NewGuid().ToString("D");
bm.Order = bmCount++;
bm.Source = fileNameAndPath;
bm.Image = myExtractedIcon.ToBitmap();
bm.Size = new Size(bm.Image.Width, bm.Image.Height);
// Add the shortcutbitmap to the list // Add the shortcutbitmap to the list
bmList.Add(bm); bmList.Add(bm);
@ -492,12 +478,7 @@ namespace DisplayMagician
if (myIcon != null) if (myIcon != null)
{ {
ShortcutBitmap bm = new ShortcutBitmap(); ShortcutBitmap bm = CreateShortcutBitmap(myIcon.ToBitmap(),fileNameOnly,fileNameAndPath,bmCount++);
bm.UUID = Guid.NewGuid().ToString("D");
bm.Order = bmCount++;
bm.Source = fileNameAndPath;
bm.Image = myIcon.ToBitmap();
bm.Size = new Size(bm.Image.Width, bm.Image.Height);
// Add the shortcutbitmap to the list // Add the shortcutbitmap to the list
bmList.Add(bm); bmList.Add(bm);
@ -559,6 +540,17 @@ namespace DisplayMagician
} }
public static ShortcutBitmap CreateShortcutBitmap(Bitmap bitmap, string name = "", string source = "", int order = 0)
{
ShortcutBitmap sc = new ShortcutBitmap();
sc.UUID = Guid.NewGuid().ToString("D");
sc.Name = name;
sc.Order = order;
sc.Source = source;
sc.Image = bitmap;
sc.Size = new Size(sc.Image.Width, sc.Image.Height);
return sc;
}
public static bool ImagesAreEqual(Bitmap imageA, Bitmap imageB) public static bool ImagesAreEqual(Bitmap imageA, Bitmap imageB)
{ {

View File

@ -26,8 +26,8 @@ using System.Resources;
[assembly: Guid("e4ceaf5e-ad01-4695-b179-31168eb74c48")] [assembly: Guid("e4ceaf5e-ad01-4695-b179-31168eb74c48")]
// Version information // Version information
[assembly: AssemblyVersion("2.1.0.125")] [assembly: AssemblyVersion("2.1.0.132")]
[assembly: AssemblyFileVersion("2.1.0.125")] [assembly: AssemblyFileVersion("2.1.0.132")]
[assembly: NeutralResourcesLanguageAttribute( "en" )] [assembly: NeutralResourcesLanguageAttribute( "en" )]
[assembly: CLSCompliant(true)] [assembly: CLSCompliant(true)]

View File

@ -903,8 +903,9 @@ namespace DisplayMagician
_profileUuid = profile.UUID; _profileUuid = profile.UUID;
// We create the Bitmaps for the game // We create the Bitmaps for the game
//SetBitmapsForGame();
_originalBitmap = selectedImage.Image; _originalBitmap = selectedImage.Image;
// Now we use the originalBitmap or userBitmap, and create the shortcutBitmap from it
_shortcutBitmap = ImageUtils.ToBitmapOverlay(_originalBitmap, _profileToUse.ProfileTightestBitmap, 256, 256);
ReplaceShortcutIconInCache(); ReplaceShortcutIconInCache();
RefreshValidity(); RefreshValidity();
@ -972,8 +973,9 @@ namespace DisplayMagician
_profileUuid = profile.UUID; _profileUuid = profile.UUID;
// We create the Bitmaps for the executable // We create the Bitmaps for the executable
//SetBitmapsForExecutable();
_originalBitmap = selectedImage.Image; _originalBitmap = selectedImage.Image;
// Now we use the originalBitmap or userBitmap, and create the shortcutBitmap from it
_shortcutBitmap = ImageUtils.ToBitmapOverlay(_originalBitmap, _profileToUse.ProfileTightestBitmap, 256, 256);
ReplaceShortcutIconInCache(); ReplaceShortcutIconInCache();
RefreshValidity(); RefreshValidity();
@ -1087,98 +1089,6 @@ namespace DisplayMagician
} }
public void SetBitmapsForGame()
{
// Get the user icon bitmap if its set.
if (_userChoseOwnIcon)
{
logger.Trace($"ShortcutItem/ToBitmapOverlay: Using the user set icon as the game icon.");
_originalBitmap = _selectedImage.Image;
}
else
{
// Get the game icon bitmap if we can find it.
logger.Trace($"ShortcutItem/ToBitmapOverlay: Using the game executable icon as the game icon instead from {_originalIconPath}.");
// Find the game bitmap that matches the game name we just got
foreach (var aGame in GameLibraries.GameLibrary.AllInstalledGamesInAllLibraries)
{
if (aGame.Name.Equals(_gameName))
{
_selectedImage = aGame.GameBitmap;
_originalBitmap = aGame.GameBitmap.Image;
}
}
}
// If we can't find the game icon bitmap then we try the icons for the game libraries themselves
if (_originalBitmap == null)
{
if (_gameLibrary == SupportedGameLibraryType.Steam)
{
logger.Trace($"ShortcutItem/GetOriginalBitmapFromGame: Using the Steam icon as the icon instead.");
_originalBitmap = Properties.Resources.Steam;
}
else if (_gameLibrary == SupportedGameLibraryType.Uplay)
{
logger.Trace($"ShortcutItem/GetOriginalBitmapFromGame: Using the Uplay icon as the icon instead.");
_originalBitmap = Properties.Resources.Uplay;
}
else if (_gameLibrary == SupportedGameLibraryType.Origin)
{
logger.Trace($"ShortcutItem/GetOriginalBitmapFromGame: Using the Origin icon as the icon instead.");
_originalBitmap = Properties.Resources.Origin;
}
else if (_gameLibrary == SupportedGameLibraryType.Epic)
{
logger.Trace($"ShortcutItem/GetOriginalBitmapFromGame: Using the Epic icon as the icon instead.");
_originalBitmap = Properties.Resources.Epic;
}
else if (_gameLibrary == SupportedGameLibraryType.GOG)
{
logger.Trace($"ShortcutItem/GetOriginalBitmapFromGame: Using the GOG icon as the icon instead.");
_originalBitmap = Properties.Resources.GOG;
}
else
{
logger.Trace($"ShortcutItem/GetOriginalBitmapFromGame: Unknown Game Library, so using the DisplayMagician icon as the icon instead.");
_originalBitmap = Properties.Resources.DisplayMagician.ToBitmap();
}
}
// Now we use the originalBitmap or userBitmap, and create the shortcutBitmap from it
_shortcutBitmap = ImageUtils.ToBitmapOverlay(_originalBitmap, _profileToUse.ProfileTightestBitmap, 256, 256);
}
public void SetBitmapsForExecutable()
{
if (_userChoseOwnIcon)
{
logger.Trace($"ShortcutItem/ToBitmapOverlay: Using the user set icon as the game icon.");
_originalBitmap = _selectedImage.Image;
}
else
{
logger.Trace($"ShortcutItem/SetBitmapsForExecutable: Using the executable icon as the app icon instead from {_executableNameAndPath}.");
_availableImages = ImageUtils.GetMeAllBitmapsFromFile(_executableNameAndPath);
_selectedImage = ImageUtils.GetMeLargestAvailableBitmap(_availableImages);
_originalBitmap = _selectedImage.Image;
if (_originalBitmap == null)
{
logger.Trace($"ShortcutItem/SetBitmapsForExecutable: Unknown Game Library, so using the DisplayMagician icon as the icon instead.");
_originalBitmap = ImageUtils.ToBitmapOverlay(Properties.Resources.DisplayMagician.ToBitmap(), _profileToUse.ProfileIcon.ToBitmap(), 256, 256);
}
// Now we use the originalBitmap or userBitmap, and create the shortcutBitmap from it
_shortcutBitmap = ImageUtils.ToBitmapOverlay(_originalBitmap, _profileToUse.ProfileTightestBitmap, 256, 256);
}
}
public void RefreshValidity() public void RefreshValidity()
{ {
// Do some validation checks to make sure the shortcut is sensible // Do some validation checks to make sure the shortcut is sensible

View File

@ -22,6 +22,7 @@ namespace DisplayMagician.UIForms
private ProfileAdaptor _profileAdaptor; private ProfileAdaptor _profileAdaptor;
private GameAdaptor _gameAdaptor; private GameAdaptor _gameAdaptor;
private bool _editingExistingShortcut = false;
//private List<ProfileItem> _loadedProfiles = new List<ProfileItem>(); //private List<ProfileItem> _loadedProfiles = new List<ProfileItem>();
private ProfileItem _profileToUse = null; private ProfileItem _profileToUse = null;
private string _gameLauncher = ""; private string _gameLauncher = "";
@ -62,7 +63,7 @@ namespace DisplayMagician.UIForms
private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
public ShortcutForm(ShortcutItem shortcutToEdit) public ShortcutForm(ShortcutItem shortcutToEdit, bool editingExistingShortcut = false)
{ {
InitializeComponent(); InitializeComponent();
@ -73,6 +74,7 @@ namespace DisplayMagician.UIForms
_profileAdaptor = new ProfileAdaptor(); _profileAdaptor = new ProfileAdaptor();
_gameAdaptor = new GameAdaptor(); _gameAdaptor = new GameAdaptor();
_editingExistingShortcut = editingExistingShortcut;
_shortcutToEdit = shortcutToEdit; _shortcutToEdit = shortcutToEdit;
// Style the Saved Profiles list // Style the Saved Profiles list
@ -114,6 +116,11 @@ namespace DisplayMagician.UIForms
get => _shortcutToEdit; get => _shortcutToEdit;
} }
public bool EditingExistingShortcut
{
get => _editingExistingShortcut;
set => _editingExistingShortcut = value;
}
public SupportedGameLibraryType GameLibrary public SupportedGameLibraryType GameLibrary
{ {
@ -197,13 +204,6 @@ namespace DisplayMagician.UIForms
} }
} }
/*private static bool IsLowQuality(IconImage iconImage)
{
return iconImage.PixelFormat == System.Drawing.Imaging.PixelFormat.Format1bppIndexed ||
iconImage.PixelFormat == System.Drawing.Imaging.PixelFormat.Format4bppIndexed ||
iconImage.PixelFormat == System.Drawing.Imaging.PixelFormat.Format8bppIndexed;
}*/
private void btn_app_executable_Click(object sender, EventArgs e) private void btn_app_executable_Click(object sender, EventArgs e)
{ {
if (dialog_open.ShowDialog(this) == DialogResult.OK) if (dialog_open.ShowDialog(this) == DialogResult.OK)
@ -1175,15 +1175,13 @@ namespace DisplayMagician.UIForms
ImageListViewItem newItem = new ImageListViewItem(game, game.Name); ImageListViewItem newItem = new ImageListViewItem(game, game.Name);
//ilv_saved_profiles.Items.Add(newItem); //ilv_saved_profiles.Items.Add(newItem);
ilv_games.Items.Add(newItem, _gameAdaptor); ilv_games.Items.Add(newItem, _gameAdaptor);
if (game.Name.Equals(_shortcutToEdit.GameName)) if (_editingExistingShortcut && game.Name.Equals(_shortcutToEdit.GameName))
{ {
shortcutGame = game; shortcutGame = game;
} }
} }
if (_shortcutToEdit != null)
{
if (_shortcutToEdit.Category == ShortcutCategory.Game && _shortcutToEdit.GameAppId != null) if (_shortcutToEdit.Category == ShortcutCategory.Game && _shortcutToEdit.GameAppId != null)
{ {
bool gameStillInstalled = false; bool gameStillInstalled = false;
@ -1229,9 +1227,6 @@ namespace DisplayMagician.UIForms
} }
}
if (!foundChosenProfileInLoadedProfiles && !String.IsNullOrWhiteSpace(_shortcutToEdit.ProfileUUID)) if (!foundChosenProfileInLoadedProfiles && !String.IsNullOrWhiteSpace(_shortcutToEdit.ProfileUUID))
{ {
MessageBox.Show( MessageBox.Show(
@ -1310,13 +1305,12 @@ namespace DisplayMagician.UIForms
cb_wait_alternative_game.Checked = false; cb_wait_alternative_game.Checked = false;
} }
// Set the launcher items if we have them // Set the launcher items if we have them
if (_shortcutToEdit.GameLibrary.Equals(SupportedGameLibraryType.Unknown)) if (_shortcutToEdit.GameLibrary.Equals(SupportedGameLibraryType.Unknown))
{ {
if (DisplayMagician.GameLibraries.GameLibrary.AllInstalledGamesInAllLibraries.Count <= 0) if (DisplayMagician.GameLibraries.GameLibrary.AllInstalledGamesInAllLibraries.Count <= 0)
{ {
// Fill in the game library information to highliught there isn't one detected. // Fill in the game library information to highlight there isn't one detected.
_gameLauncher = "None detected"; _gameLauncher = "None detected";
txt_game_name.Text = "No supported game libraries detected"; txt_game_name.Text = "No supported game libraries detected";
txt_args_game.Text = ""; txt_args_game.Text = "";
@ -1346,6 +1340,7 @@ namespace DisplayMagician.UIForms
} }
} }
// Set the autoname checkbox
cb_autosuggest.Checked = _shortcutToEdit.AutoName; cb_autosuggest.Checked = _shortcutToEdit.AutoName;
// Set the executable items if we have them // Set the executable items if we have them
@ -1364,11 +1359,9 @@ namespace DisplayMagician.UIForms
if (_shortcutToEdit.ProcessNameToMonitorUsesExecutable) if (_shortcutToEdit.ProcessNameToMonitorUsesExecutable)
{ {
rb_wait_executable.Checked = true; rb_wait_executable.Checked = true;
//rb_wait_alternative_executable.Checked = false;
} }
else else
{ {
//rb_wait_executable.Checked = false;
rb_wait_alternative_executable.Checked = true; rb_wait_alternative_executable.Checked = true;
} }
txt_alternative_executable.Text = _shortcutToEdit.DifferentExecutableToMonitor; txt_alternative_executable.Text = _shortcutToEdit.DifferentExecutableToMonitor;
@ -1377,7 +1370,30 @@ namespace DisplayMagician.UIForms
txt_shortcut_save_name.Text = _shortcutToEdit.Name; txt_shortcut_save_name.Text = _shortcutToEdit.Name;
// Set the selected image and available images (originalBitmap is set during shortcut update) // Set the selected image and available images (originalBitmap is set during shortcut update)
if (_shortcutToEdit.OriginalLargeBitmap == null || ImageUtils.ImagesAreEqual(_shortcutToEdit.SelectedImage.Image, _shortcutToEdit.OriginalLargeBitmap))
if (_editingExistingShortcut)
{
ShortcutBitmap defaultBitmap = new ShortcutBitmap();
// Check if AvailableImages have been set, because if not, then we need to 'upgrade' the image structure
// To use this new way of working
if (_shortcutToEdit.AvailableImages.Count > 0)
{
_selectedImage = _shortcutToEdit.SelectedImage;
_availableImages = _shortcutToEdit.AvailableImages;
if (_shortcutToEdit.Category == ShortcutCategory.Game)
{
pb_game_icon.Image = _shortcutToEdit.SelectedImage.Image;
btn_choose_game_icon.Enabled = true;
}
else if (_shortcutToEdit.Category == ShortcutCategory.Application)
{
pb_exe_icon.Image = _shortcutToEdit.SelectedImage.Image;
btn_choose_exe_icon.Enabled = true;
}
}
else
{ {
// if there aren't any available images, then we need to find some! // if there aren't any available images, then we need to find some!
if (_shortcutToEdit.Category == ShortcutCategory.Game) if (_shortcutToEdit.Category == ShortcutCategory.Game)
@ -1396,6 +1412,48 @@ namespace DisplayMagician.UIForms
_availableImages.AddRange(ImageUtils.GetMeAllBitmapsFromFile(_shortcutToEdit.DifferentGameExeToMonitor)); _availableImages.AddRange(ImageUtils.GetMeAllBitmapsFromFile(_shortcutToEdit.DifferentGameExeToMonitor));
} }
// If we still don't have any availableImages, then we need to add some emergency replacements!
if (_availableImages.Count == 0)
{
if (_shortcutToEdit.GameLibrary == SupportedGameLibraryType.Steam)
{
logger.Trace($"ShortcutForm/ShortcutForm_Load: Using the Steam icon as the icon instead.");
ShortcutBitmap bm = ImageUtils.CreateShortcutBitmap(Properties.Resources.Steam, "Steam Icon", "", 0);
_availableImages.Add(bm);
}
else if (_shortcutToEdit.GameLibrary == SupportedGameLibraryType.Uplay)
{
logger.Trace($"ShortcutForm/ShortcutForm_Load: Using the Uplay icon as the icon instead.");
ShortcutBitmap bm = ImageUtils.CreateShortcutBitmap(Properties.Resources.Uplay, "Uplay Icon", "", 0);
_availableImages.Add(bm);
}
else if (_shortcutToEdit.GameLibrary == SupportedGameLibraryType.Origin)
{
logger.Trace($"ShortcutForm/ShortcutForm_Load: Using the Origin icon as the icon instead.");
ShortcutBitmap bm = ImageUtils.CreateShortcutBitmap(Properties.Resources.Origin, "Origin Icon", "", 0);
_availableImages.Add(bm);
}
else if (_shortcutToEdit.GameLibrary == SupportedGameLibraryType.Epic)
{
logger.Trace($"ShortcutForm/ShortcutForm_Load: Using the Epic icon as the icon instead.");
ShortcutBitmap bm = ImageUtils.CreateShortcutBitmap(Properties.Resources.Epic, "Epic Icon", "", 0);
_availableImages.Add(bm);
}
else if (_shortcutToEdit.GameLibrary == SupportedGameLibraryType.GOG)
{
logger.Trace($"ShortcutForm/ShortcutForm_Load: Using the GOG icon as the icon instead.");
ShortcutBitmap bm = ImageUtils.CreateShortcutBitmap(Properties.Resources.GOG, "GOG Icon", "", 0);
_availableImages.Add(bm);
}
else
{
logger.Trace($"ShortcutForm/ShortcutForm_Load: Unknown Game Library, so using the DisplayMagician icon as the icon instead.");
ShortcutBitmap bm = ImageUtils.CreateShortcutBitmap(Properties.Resources.DisplayMagician.ToBitmap(), "DisplayMagician Icon", "", 0);
_availableImages.Add(bm);
}
}
bool matchedImage = false; bool matchedImage = false;
if (_shortcutToEdit.OriginalLargeBitmap != null) if (_shortcutToEdit.OriginalLargeBitmap != null)
{ {
@ -1408,6 +1466,7 @@ namespace DisplayMagician.UIForms
_selectedImage = sc; _selectedImage = sc;
pb_game_icon.Image = _selectedImage.Image; pb_game_icon.Image = _selectedImage.Image;
matchedImage = true; matchedImage = true;
break;
} }
} }
} }
@ -1436,6 +1495,14 @@ namespace DisplayMagician.UIForms
_availableImages.AddRange(ImageUtils.GetMeAllBitmapsFromFile(_shortcutToEdit.DifferentExecutableToMonitor)); _availableImages.AddRange(ImageUtils.GetMeAllBitmapsFromFile(_shortcutToEdit.DifferentExecutableToMonitor));
} }
if (_availableImages.Count == 0)
{
logger.Trace($"ShortcutForm/ShortcutForm_Load: Unknown Game Library, so using the DisplayMagician icon as the icon instead.");
ShortcutBitmap bm = ImageUtils.CreateShortcutBitmap(Properties.Resources.DisplayMagician.ToBitmap(), "DisplayMagician Icon", "", 0);
_availableImages.Add(bm);
}
bool matchedImage = false; bool matchedImage = false;
if (_shortcutToEdit.OriginalLargeBitmap != null) if (_shortcutToEdit.OriginalLargeBitmap != null)
{ {
@ -1463,23 +1530,11 @@ namespace DisplayMagician.UIForms
btn_choose_exe_icon.Enabled = true; btn_choose_exe_icon.Enabled = true;
} }
} }
}
} }
else else
{ {
// This is the most common scenario // We're editing a new shortcut, so no game or anything selected
_selectedImage = _shortcutToEdit.SelectedImage;
_availableImages = _shortcutToEdit.AvailableImages;
if (_shortcutToEdit.Category == ShortcutCategory.Game)
{
pb_game_icon.Image = _shortcutToEdit.SelectedImage.Image;
btn_choose_game_icon.Enabled = true;
}
else if (_shortcutToEdit.Category == ShortcutCategory.Application)
{
pb_exe_icon.Image = _shortcutToEdit.SelectedImage.Image;
btn_choose_exe_icon.Enabled = true;
}
} }
// Set up the start programs // Set up the start programs

View File

@ -264,7 +264,7 @@ namespace DisplayMagician.UIForms
private void btn_new_Click(object sender, EventArgs e) private void btn_new_Click(object sender, EventArgs e)
{ {
this.Cursor = Cursors.WaitCursor; this.Cursor = Cursors.WaitCursor;
var shortcutForm = new ShortcutForm(new ShortcutItem()); var shortcutForm = new ShortcutForm(new ShortcutItem(),false);
//ShortcutRepository.IsValidRefresh(); //ShortcutRepository.IsValidRefresh();
shortcutForm.ShowDialog(this); shortcutForm.ShowDialog(this);
if (shortcutForm.DialogResult == DialogResult.OK) if (shortcutForm.DialogResult == DialogResult.OK)
@ -313,11 +313,7 @@ namespace DisplayMagician.UIForms
this.Cursor = Cursors.WaitCursor; this.Cursor = Cursors.WaitCursor;
// We need to stop ImageListView redrawing things before we're ready var shortcutForm = new ShortcutForm(_selectedShortcut,true);
// This stops an exception when ILV is just too keen!
var shortcutForm = new ShortcutForm(_selectedShortcut);
//ilv_saved_shortcuts.SuspendLayout(); //ilv_saved_shortcuts.SuspendLayout();
shortcutForm.ShowDialog(this); shortcutForm.ShowDialog(this);
if (shortcutForm.DialogResult == DialogResult.OK) if (shortcutForm.DialogResult == DialogResult.OK)