This commit is contained in:
parent
61bea1edc4
commit
bd2f521f73
@ -6,8 +6,15 @@ using System.Windows.Forms;
|
|||||||
|
|
||||||
namespace Volian.Controls.Library
|
namespace Volian.Controls.Library
|
||||||
{
|
{
|
||||||
|
public delegate void MostRecentItemEvent();
|
||||||
|
|
||||||
public class MostRecentItemList : List<MostRecentItem>
|
public class MostRecentItemList : List<MostRecentItem>
|
||||||
{
|
{
|
||||||
|
public event ItemInfoEvent AfterRemove;
|
||||||
|
internal void OnAfterRemove(object sender)
|
||||||
|
{
|
||||||
|
if (AfterRemove != null) AfterRemove(sender);
|
||||||
|
}
|
||||||
private int _MaxItems = 10;
|
private int _MaxItems = 10;
|
||||||
public int MaxItems
|
public int MaxItems
|
||||||
{
|
{
|
||||||
@ -23,13 +30,36 @@ namespace Volian.Controls.Library
|
|||||||
tmp = mri;
|
tmp = mri;
|
||||||
// If it exists - remove it
|
// If it exists - remove it
|
||||||
if (tmp != null)
|
if (tmp != null)
|
||||||
|
{
|
||||||
|
tmp.MyItemInfo.BeforeDelete -= new ItemInfoEvent(MyItemInfo_BeforeDelete);
|
||||||
Remove(tmp);
|
Remove(tmp);
|
||||||
|
}
|
||||||
// Insert it in the first place in the list
|
// Insert it in the first place in the list
|
||||||
Insert(0, myMRI);
|
Insert(0, myMRI);
|
||||||
// If more than MaxItems exist remove the items beyond MaxItems
|
// If more than MaxItems exist remove the items beyond MaxItems
|
||||||
while (Count > MaxItems) RemoveAt(MaxItems);
|
while (Count > MaxItems) RemoveAt(MaxItems);
|
||||||
|
myMRI.MyItemInfo.BeforeDelete += new ItemInfoEvent(MyItemInfo_BeforeDelete);
|
||||||
return myMRI;
|
return myMRI;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// delete the item from the most recently used list. This event gets handled
|
||||||
|
// when a delete item occurs.
|
||||||
|
void MyItemInfo_BeforeDelete(object sender)
|
||||||
|
{
|
||||||
|
ItemInfo ii = sender as ItemInfo;
|
||||||
|
if (ii != null)
|
||||||
|
{
|
||||||
|
MostRecentItem tmp = null;
|
||||||
|
// Look for the ItemID
|
||||||
|
foreach (MostRecentItem mri in this)
|
||||||
|
if (mri.ItemID == ii.ItemID)
|
||||||
|
tmp = mri;
|
||||||
|
// If it exists - remove it
|
||||||
|
if (tmp != null)
|
||||||
|
Remove(tmp);
|
||||||
|
OnAfterRemove(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
public MostRecentItem Add(int itemID)
|
public MostRecentItem Add(int itemID)
|
||||||
{
|
{
|
||||||
ItemInfo tmp = ItemInfo.Get(itemID);
|
ItemInfo tmp = ItemInfo.Get(itemID);
|
||||||
@ -156,7 +186,7 @@ namespace Volian.Controls.Library
|
|||||||
return null; // Path doesn't match
|
return null; // Path doesn't match
|
||||||
if (parts.Length > 2 && parts[2] != GetToolTip(item) && !RetainBadMRIs())
|
if (parts.Length > 2 && parts[2] != GetToolTip(item) && !RetainBadMRIs())
|
||||||
return null;// Tooltip doesn't match
|
return null;// Tooltip doesn't match
|
||||||
Console.WriteLine("{0},'{1}'", parts[0], parts[1]);
|
//Console.WriteLine("{0},'{1}'", parts[0], parts[1]);
|
||||||
return new MostRecentItem(item);
|
return new MostRecentItem(item);
|
||||||
}
|
}
|
||||||
private static int _RetainBadMRIs = 0;
|
private static int _RetainBadMRIs = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user