Add disabled launcher items
This commit is contained in:
@@ -90,16 +90,23 @@ public partial class MainWindow : Window
|
||||
};
|
||||
pinMenuItem.Click += ToggleFavorite_Click;
|
||||
|
||||
var disableMenuItem = new System.Windows.Controls.MenuItem
|
||||
{
|
||||
Header = item.IsDisabled ? "Enable Item" : "Disable Item"
|
||||
};
|
||||
disableMenuItem.Click += ToggleDisabled_Click;
|
||||
|
||||
var duplicateMenuItem = new System.Windows.Controls.MenuItem { Header = "Duplicate Item" };
|
||||
duplicateMenuItem.Click += DuplicateItem_Click;
|
||||
|
||||
var treeItem = new TreeViewItem
|
||||
{
|
||||
Header = $"{(item.IsFavorite ? "[Pinned] " : "")}{item.Title} ({item.Type})",
|
||||
Header = $"{GetTreeStatusPrefix(item)}{item.Title} ({item.Type})",
|
||||
Tag = item,
|
||||
ContextMenu = new System.Windows.Controls.ContextMenu()
|
||||
};
|
||||
treeItem.ContextMenu.Items.Add(pinMenuItem);
|
||||
treeItem.ContextMenu.Items.Add(disableMenuItem);
|
||||
treeItem.ContextMenu.Items.Add(duplicateMenuItem);
|
||||
treeItem.PreviewMouseRightButtonDown += (_, e) =>
|
||||
{
|
||||
@@ -115,6 +122,22 @@ public partial class MainWindow : Window
|
||||
return treeItem;
|
||||
}
|
||||
|
||||
private static string GetTreeStatusPrefix(LauncherItem item)
|
||||
{
|
||||
List<string> parts = [];
|
||||
if (item.IsFavorite)
|
||||
{
|
||||
parts.Add("Pinned");
|
||||
}
|
||||
|
||||
if (item.IsDisabled)
|
||||
{
|
||||
parts.Add("Disabled");
|
||||
}
|
||||
|
||||
return parts.Count == 0 ? "" : $"[{string.Join(", ", parts)}] ";
|
||||
}
|
||||
|
||||
private bool SelectTreeItem(LauncherItem item)
|
||||
{
|
||||
foreach (object root in ItemsTree.Items)
|
||||
@@ -827,6 +850,23 @@ public partial class MainWindow : Window
|
||||
: $"Unpinned {itemToSelect.Title}. Click Save to keep it.";
|
||||
}
|
||||
|
||||
private void ToggleDisabled_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (controller is null || selectedItem is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ApplyCurrentItem();
|
||||
selectedItem.IsDisabled = !selectedItem.IsDisabled;
|
||||
LauncherItem itemToSelect = selectedItem;
|
||||
selectedPath = FindItemPath(itemToSelect);
|
||||
RefreshView(itemToSelect);
|
||||
StatusText.Text = itemToSelect.IsDisabled
|
||||
? $"Disabled {itemToSelect.Title}. Click Save to keep it."
|
||||
: $"Enabled {itemToSelect.Title}. Click Save to keep it.";
|
||||
}
|
||||
|
||||
private void DuplicateItem_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (controller is null || selectedItem is null)
|
||||
@@ -890,6 +930,7 @@ public partial class MainWindow : Window
|
||||
Arguments = item.Arguments,
|
||||
IconPath = item.IconPath,
|
||||
IsFavorite = item.IsFavorite,
|
||||
IsDisabled = item.IsDisabled,
|
||||
DisplayMode = item.DisplayMode,
|
||||
Children = item.Children.Select(child => DuplicateItem(child, renameRoot: false)).ToList()
|
||||
};
|
||||
@@ -1482,6 +1523,7 @@ public partial class MainWindow : Window
|
||||
Arguments = string.IsNullOrWhiteSpace(ArgumentsBox.Text) ? null : ArgumentsBox.Text.Trim(),
|
||||
IconPath = string.IsNullOrWhiteSpace(IconPathBox.Text) ? null : IconPathBox.Text.Trim(),
|
||||
IsFavorite = selectedItem.IsFavorite,
|
||||
IsDisabled = selectedItem.IsDisabled,
|
||||
DisplayMode = ItemDisplayModeBox.SelectedItem is LauncherDisplayMode mode
|
||||
? mode
|
||||
: selectedItem.DisplayMode
|
||||
|
||||
Reference in New Issue
Block a user