Skip to content

Commit

Permalink
Add links to hidden tags and labels below mod list
Browse files Browse the repository at this point in the history
  • Loading branch information
HebaruSan committed Dec 24, 2023
1 parent d7fc114 commit 7f09dee
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 10 deletions.
33 changes: 23 additions & 10 deletions GUI/Controls/ManageMods.Designer.cs

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

46 changes: 46 additions & 0 deletions GUI/Controls/ManageMods.cs
Expand Up @@ -324,6 +324,7 @@ private void labelMenuItem_Click(object sender, EventArgs e)
var registry = RegistryManager.Instance(Main.Instance.CurrentInstance, repoData).registry;
mainModList.ReapplyLabels(module, Conflicts?.ContainsKey(module) ?? false, inst.Name, inst.game, registry);
mainModList.ModuleLabels.Save(ModuleLabelList.DefaultPath);
UpdateHiddenTagsAndLabels();
}

private void editLabelsToolStripMenuItem_Click(object sender, EventArgs e)
Expand All @@ -338,6 +339,7 @@ private void editLabelsToolStripMenuItem_Click(object sender, EventArgs e)
{
mainModList.ReapplyLabels(module, Conflicts?.ContainsKey(module) ?? false, inst.Name, inst.game, registry);
}
UpdateHiddenTagsAndLabels();
}

#endregion
Expand Down Expand Up @@ -660,6 +662,7 @@ private void ModListHeaderContextMenuStrip_ItemClicked(object sender, ToolStripI
}
mainModList.ModuleTags.Save(ModuleTagList.DefaultPath);
UpdateFilters();
UpdateHiddenTagsAndLabels();
}
}

Expand Down Expand Up @@ -1306,6 +1309,8 @@ private bool _UpdateModsList(Dictionary<string, bool> old_modules = null)

Main.Instance.Wait.AddLogMessage(Properties.Resources.MainModListUpdatingTray);

UpdateHiddenTagsAndLabels();

Util.Invoke(this, () => ModGrid.Focus());
return true;
}
Expand Down Expand Up @@ -1556,6 +1561,47 @@ public void ParentMoved()
EditModSearches.ParentMoved();
}

#region Hidden tags and labels links

[ForbidGUICalls]
private void UpdateHiddenTagsAndLabels()
{
var inst = Main.Instance.CurrentInstance;
var registry = RegistryManager.Instance(inst, repoData).registry;
var tags = mainModList.ModuleTags.HiddenTags
.Intersect(registry.Tags.Keys)
.OrderByDescending(tagName => tagName)
.Select(tagName => registry.Tags[tagName])
.ToList();
var labels = mainModList.ModuleLabels.LabelsFor(inst.Name)
.Where(l => l.Hide && l.ModuleCount(inst.game) > 0)
.ToList();
hiddenTagsLabelsLinkList.UpdateTagsAndLabels(tags, labels);
Util.Invoke(hiddenTagsLabelsLinkList, () =>
{
hiddenTagsLabelsLinkList.Visible = tags.Count > 0 || labels.Count > 0;
if (tags.Count > 0 || labels.Count > 0)
{
hiddenTagsLabelsLinkList.Controls.Add(new Label()
{
Text = tags.Count == 0 ? Properties.Resources.ManageModsHiddenLabels
: labels.Count == 0 ? Properties.Resources.ManageModsHiddenTags
: Properties.Resources.ManageModsHiddenLabelsAndTags,
AutoSize = true,
Padding = new Padding(0),
Margin = new Padding(0, 2, 0, 2),
});
}
});
}

private void hiddenTagsLabelsLinkList_OnChangeFilter(SavedSearch search, bool merge)
{
Filter(search, merge);
}

#endregion

#region Navigation History

private void NavInit()
Expand Down
3 changes: 3 additions & 0 deletions GUI/Properties/Resources.resx
Expand Up @@ -426,6 +426,9 @@ Do you want to allow CKAN to do this? If you click no you won't see this message
<data name="EditModSearchTooltipExpandButton" xml:space="preserve"><value>Expand or collapse the detailed search fields (Ctrl-Shift-F)</value></data>
<data name="EditModSearchesTooltipAddSearchButton" xml:space="preserve"><value>Combine a new search with your current searches</value></data>
<data name="ManageModsInstallAllCheckboxTooltip" xml:space="preserve"><value>Uncheck to uninstall all mods, check to clear change set</value></data>
<data name="ManageModsHiddenLabels" xml:space="preserve"><value>Hidden labels:</value></data>
<data name="ManageModsHiddenTags" xml:space="preserve"><value>Hidden tags:</value></data>
<data name="ManageModsHiddenLabelsAndTags" xml:space="preserve"><value>Hidden labels and tags:</value></data>
<data name="TotalPlayTime" xml:space="preserve"><value>Total play time: {0} hours</value></data>
<data name="ChangeTypeNone" xml:space="preserve"><value>None</value></data>
<data name="ChangeTypeInstall" xml:space="preserve"><value>Install</value></data>
Expand Down

0 comments on commit 7f09dee

Please sign in to comment.