disable context menu on all places (keep in settings back-end)

-> To be re-added as soon as new context menu in Dalamud is avialable.
This commit is contained in:
2022-05-29 09:06:04 +02:00
parent cab8de17f5
commit b43935fb7e
2 changed files with 65 additions and 65 deletions

View File

@@ -53,9 +53,9 @@ namespace PlayerTags.Configuration
{
if (ImGui.BeginTabItem(Strings.Loc_Static_General))
{
ImGui.Spacing();
ImGui.Spacing();
DrawCheckbox(nameof(m_PluginConfiguration.IsCustomTagsContextMenuEnabled), true, ref m_PluginConfiguration.IsCustomTagsContextMenuEnabled, () => m_PluginConfiguration.Save(m_PluginData));
//ImGui.Spacing();
//ImGui.Spacing();
//DrawCheckbox(nameof(m_PluginConfiguration.IsCustomTagsContextMenuEnabled), true, ref m_PluginConfiguration.IsCustomTagsContextMenuEnabled, () => m_PluginConfiguration.Save(m_PluginData));
ImGui.Spacing();

View File

@@ -33,83 +33,83 @@ namespace PlayerTags.Features
private PluginConfiguration m_PluginConfiguration;
private PluginData m_PluginData;
private ContextMenu? m_ContextMenu;
//private ContextMenu? m_ContextMenu;
public CustomTagsContextMenuFeature(PluginConfiguration pluginConfiguration, PluginData pluginData)
{
m_PluginConfiguration = pluginConfiguration;
m_PluginData = pluginData;
m_ContextMenu = new ContextMenu();
if (!m_ContextMenu.IsValid)
{
m_ContextMenu = null;
}
//m_ContextMenu = new ContextMenu();
//if (!m_ContextMenu.IsValid)
//{
// m_ContextMenu = null;
//}
if (m_ContextMenu != null)
{
m_ContextMenu.ContextMenuOpened += ContextMenuHooks_ContextMenuOpened;
}
//if (m_ContextMenu != null)
//{
// m_ContextMenu.ContextMenuOpened += ContextMenuHooks_ContextMenuOpened;
//}
}
public void Dispose()
{
if (m_ContextMenu != null)
{
m_ContextMenu.ContextMenuOpened -= ContextMenuHooks_ContextMenuOpened;
//if (m_ContextMenu != null)
//{
// m_ContextMenu.ContextMenuOpened -= ContextMenuHooks_ContextMenuOpened;
m_ContextMenu.Dispose();
m_ContextMenu = null;
}
// m_ContextMenu.Dispose();
// m_ContextMenu = null;
//}
}
private void ContextMenuHooks_ContextMenuOpened(ContextMenuOpenedArgs contextMenuOpenedArgs)
{
if (!m_PluginConfiguration.IsCustomTagsContextMenuEnabled
|| !SupportedAddonNames.Contains(contextMenuOpenedArgs.ParentAddonName))
{
return;
}
//private void ContextMenuHooks_ContextMenuOpened(ContextMenuOpenedArgs contextMenuOpenedArgs)
//{
// if (!m_PluginConfiguration.IsCustomTagsContextMenuEnabled
// || !SupportedAddonNames.Contains(contextMenuOpenedArgs.ParentAddonName))
// {
// return;
// }
Identity? identity = m_PluginData.GetIdentity(contextMenuOpenedArgs);
if (identity != null)
{
var notAddedTags = m_PluginData.CustomTags.Where(customTag => !identity.CustomTagIds.Contains(customTag.CustomId.Value));
if (notAddedTags.Any())
{
contextMenuOpenedArgs.Items.Add(new OpenSubContextMenuItem(Strings.Loc_Static_ContextMenu_AddTag, (subContextMenuOpenedArgs =>
{
List<ContextMenuItem> newContextMenuItems = new List<ContextMenuItem>();
foreach (var notAddedTag in notAddedTags)
{
newContextMenuItems.Add(new CustomContextMenuItem(notAddedTag.Text.Value, (args =>
{
m_PluginData.AddCustomTagToIdentity(notAddedTag, identity);
m_PluginConfiguration.Save(m_PluginData);
})));
}
subContextMenuOpenedArgs.Items.InsertRange(0, newContextMenuItems);
})));
}
// Identity? identity = m_PluginData.GetIdentity(contextMenuOpenedArgs);
// if (identity != null)
// {
// var notAddedTags = m_PluginData.CustomTags.Where(customTag => !identity.CustomTagIds.Contains(customTag.CustomId.Value));
// if (notAddedTags.Any())
// {
// contextMenuOpenedArgs.Items.Add(new OpenSubContextMenuItem(Strings.Loc_Static_ContextMenu_AddTag, (subContextMenuOpenedArgs =>
// {
// List<ContextMenuItem> newContextMenuItems = new List<ContextMenuItem>();
// foreach (var notAddedTag in notAddedTags)
// {
// newContextMenuItems.Add(new CustomContextMenuItem(notAddedTag.Text.Value, (args =>
// {
// m_PluginData.AddCustomTagToIdentity(notAddedTag, identity);
// m_PluginConfiguration.Save(m_PluginData);
// })));
// }
// subContextMenuOpenedArgs.Items.InsertRange(0, newContextMenuItems);
// })));
// }
var addedTags = m_PluginData.CustomTags.Where(customTag => identity.CustomTagIds.Contains(customTag.CustomId.Value));
if (addedTags.Any())
{
contextMenuOpenedArgs.Items.Add(new OpenSubContextMenuItem(Strings.Loc_Static_ContextMenu_RemoveTag, (subContextMenuOpenedArgs =>
{
List<ContextMenuItem> newContextMenuItems = new List<ContextMenuItem>();
foreach (var addedTag in addedTags)
{
newContextMenuItems.Add(new CustomContextMenuItem(addedTag.Text.Value, (args =>
{
m_PluginData.RemoveCustomTagFromIdentity(addedTag, identity);
m_PluginConfiguration.Save(m_PluginData);
})));
}
subContextMenuOpenedArgs.Items.InsertRange(0, newContextMenuItems);
})));
}
}
}
// var addedTags = m_PluginData.CustomTags.Where(customTag => identity.CustomTagIds.Contains(customTag.CustomId.Value));
// if (addedTags.Any())
// {
// contextMenuOpenedArgs.Items.Add(new OpenSubContextMenuItem(Strings.Loc_Static_ContextMenu_RemoveTag, (subContextMenuOpenedArgs =>
// {
// List<ContextMenuItem> newContextMenuItems = new List<ContextMenuItem>();
// foreach (var addedTag in addedTags)
// {
// newContextMenuItems.Add(new CustomContextMenuItem(addedTag.Text.Value, (args =>
// {
// m_PluginData.RemoveCustomTagFromIdentity(addedTag, identity);
// m_PluginConfiguration.Save(m_PluginData);
// })));
// }
// subContextMenuOpenedArgs.Items.InsertRange(0, newContextMenuItems);
// })));
// }
// }
//}
}
}