private void AddGroupToMenu(ToolStripMenuItem Parent, PwGroup RootGroup)
{
if (!FOptions.foldersFirst)
AddItemsToMenu(Parent, RootGroup);
if (!is_searching) {
DateTime now = DateTime.Now;
foreach (PwGroup Group in RootGroup.Groups) {
ToolStripMenuItem Item = new ToolStripMenuItem();
Item.Tag = Group;
Item.Text = Group.Name;
Item.Name = Group.Name;
Item.DropDownOpening += miGroup_DropDownOpening;
PwIcon IconIndex = Group.IconId;
PwUuid CustomIconID = Group.CustomIconUuid;
if (CustomIconID != PwUuid.Zero)
Item.Image = Host.Database.GetCustomIcon(CustomIconID);
else
Item.Image = Host.MainWindow.ClientIcons.Images[(int)IconIndex];
if (Item.Image == null)
Item.Image = ilIcons.Images[4];
if (Group.Expires)
{
if (Group.ExpiryTime <= now)
{
Item.Image = ilIcons.Images[7];
Item.Font = new Font(Item.Font, Item.Font.Style | FontStyle.Strikeout);
}
Item.ToolTipText = KPRes.ExpiryTime + ": " + Group.ExpiryTime;
}
bool bIsRecycleBin = (Host.Database.RecycleBinEnabled && Group.Uuid.EqualsValue(Host.Database.RecycleBinUuid));
if (!bIsRecycleBin && Group.Entries.UCount + Group.Groups.UCount > 0) {
if (Parent == null)
pmPasswords.Items.Add(Item);
else
Parent.DropDownItems.Add(Item);
}
if ((Group.Groups.UCount > 0) || (Group.Entries.UCount > 0)) {
ToolStripMenuItem Dummy = new ToolStripMenuItem();
Dummy.Tag = null;
Dummy.Text = "dummy";
Dummy.Enabled = false;
Item.DropDownItems.Add(Dummy);
}
}
if (RootGroup.Groups.UCount != 0) {
ToolStripSeparator seperator = new ToolStripSeparator();
if (Parent == null)
pmPasswords.Items.Add(seperator);
else
Parent.DropDownItems.Add(seperator);
}
}
if (FOptions.foldersFirst)
AddItemsToMenu(Parent, RootGroup);
}