Add launcher edit action
This commit is contained in:
@@ -40,6 +40,18 @@ public partial class MainWindow : Window
|
|||||||
RefreshView();
|
RefreshView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SelectItemForEdit(LauncherItem item)
|
||||||
|
{
|
||||||
|
if (controller is null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RefreshView(item);
|
||||||
|
Show();
|
||||||
|
Activate();
|
||||||
|
}
|
||||||
|
|
||||||
private void RefreshView(LauncherItem? itemToSelect = null)
|
private void RefreshView(LauncherItem? itemToSelect = null)
|
||||||
{
|
{
|
||||||
if (controller is null)
|
if (controller is null)
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ Download the compiled Windows release from:
|
|||||||
- Global hotkey, default `Ctrl+Alt+Space`
|
- Global hotkey, default `Ctrl+Alt+Space`
|
||||||
- Search/filter in the launcher popup
|
- Search/filter in the launcher popup
|
||||||
- Nested menus, drag/drop ordering, and drag/drop item creation in Settings
|
- Nested menus, drag/drop ordering, and drag/drop item creation in Settings
|
||||||
|
- Right-click launcher entries to edit them in Settings
|
||||||
- Right-click item duplication in Settings
|
- Right-click item duplication in Settings
|
||||||
- Per-item icon and display mode
|
- Per-item icon and display mode
|
||||||
- Automatic icon selection from app/folder targets
|
- Automatic icon selection from app/folder targets
|
||||||
|
|||||||
@@ -41,6 +41,12 @@ public sealed class LauncherController : IDisposable
|
|||||||
settingsWindow.Activate();
|
settingsWindow.Activate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ShowSettings(LauncherItem itemToEdit)
|
||||||
|
{
|
||||||
|
settingsWindow ??= new MainWindow(this);
|
||||||
|
settingsWindow.SelectItemForEdit(itemToEdit);
|
||||||
|
}
|
||||||
|
|
||||||
public void ShowAbout()
|
public void ShowAbout()
|
||||||
{
|
{
|
||||||
if (aboutWindow?.IsVisible == true)
|
if (aboutWindow?.IsVisible == true)
|
||||||
@@ -64,7 +70,7 @@ public sealed class LauncherController : IDisposable
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
popup = new LauncherPopup(Config, LaunchItem, OpenAllItems, ShowSettings);
|
popup = new LauncherPopup(Config, LaunchItem, OpenAllItems, ShowSettings, ShowSettings);
|
||||||
popup.Closed += (_, _) => popup = null;
|
popup.Closed += (_, _) => popup = null;
|
||||||
popup.ShowNearTaskbar();
|
popup.ShowNearTaskbar();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,8 +12,8 @@
|
|||||||
<Authors>Ray Berezowski</Authors>
|
<Authors>Ray Berezowski</Authors>
|
||||||
<ApplicationIcon>Assets\AppIcon.ico</ApplicationIcon>
|
<ApplicationIcon>Assets\AppIcon.ico</ApplicationIcon>
|
||||||
<Version>1.0.1</Version>
|
<Version>1.0.1</Version>
|
||||||
<AssemblyVersion>1.0.1.3</AssemblyVersion>
|
<AssemblyVersion>1.0.1.4</AssemblyVersion>
|
||||||
<FileVersion>1.0.1.3</FileVersion>
|
<FileVersion>1.0.1.4</FileVersion>
|
||||||
<InformationalVersion>1.0.1</InformationalVersion>
|
<InformationalVersion>1.0.1</InformationalVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
|||||||
@@ -19,14 +19,16 @@ public partial class LauncherPopup : Window
|
|||||||
private readonly Action<LauncherItem> launchItem;
|
private readonly Action<LauncherItem> launchItem;
|
||||||
private readonly Action<LauncherItem> openAllItems;
|
private readonly Action<LauncherItem> openAllItems;
|
||||||
private readonly Action showSettings;
|
private readonly Action showSettings;
|
||||||
|
private readonly Action<LauncherItem> editItem;
|
||||||
|
|
||||||
public LauncherPopup(LauncherConfig config, Action<LauncherItem> launchItem, Action<LauncherItem> openAllItems, Action showSettings)
|
public LauncherPopup(LauncherConfig config, Action<LauncherItem> launchItem, Action<LauncherItem> openAllItems, Action showSettings, Action<LauncherItem> editItem)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.launchItem = launchItem;
|
this.launchItem = launchItem;
|
||||||
this.openAllItems = openAllItems;
|
this.openAllItems = openAllItems;
|
||||||
this.showSettings = showSettings;
|
this.showSettings = showSettings;
|
||||||
|
this.editItem = editItem;
|
||||||
BuildItems();
|
BuildItems();
|
||||||
SizeChanged += (_, _) => QueueReposition();
|
SizeChanged += (_, _) => QueueReposition();
|
||||||
}
|
}
|
||||||
@@ -129,6 +131,7 @@ public partial class LauncherPopup : Window
|
|||||||
};
|
};
|
||||||
|
|
||||||
button.Click += (_, _) => launchItem(item);
|
button.Click += (_, _) => launchItem(item);
|
||||||
|
button.ContextMenu = CreateItemContextMenu(item);
|
||||||
button.KeyDown += (_, e) =>
|
button.KeyDown += (_, e) =>
|
||||||
{
|
{
|
||||||
if (e.Key == Key.Enter)
|
if (e.Key == Key.Enter)
|
||||||
@@ -161,6 +164,8 @@ public partial class LauncherPopup : Window
|
|||||||
|
|
||||||
System.Windows.Controls.ContextMenu contextMenu = new();
|
System.Windows.Controls.ContextMenu contextMenu = new();
|
||||||
contextMenu.Items.Add(openAllMenuItem);
|
contextMenu.Items.Add(openAllMenuItem);
|
||||||
|
contextMenu.Items.Add(new Separator());
|
||||||
|
contextMenu.Items.Add(CreateEditMenuItem(item));
|
||||||
|
|
||||||
return new TextBlock
|
return new TextBlock
|
||||||
{
|
{
|
||||||
@@ -169,6 +174,29 @@ public partial class LauncherPopup : Window
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private System.Windows.Controls.ContextMenu CreateItemContextMenu(LauncherItem item)
|
||||||
|
{
|
||||||
|
System.Windows.Controls.ContextMenu contextMenu = new();
|
||||||
|
contextMenu.Items.Add(CreateEditMenuItem(item));
|
||||||
|
return contextMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
private System.Windows.Controls.MenuItem CreateEditMenuItem(LauncherItem item)
|
||||||
|
{
|
||||||
|
System.Windows.Controls.MenuItem editMenuItem = new()
|
||||||
|
{
|
||||||
|
Header = "Edit in Settings"
|
||||||
|
};
|
||||||
|
editMenuItem.Click += (_, e) =>
|
||||||
|
{
|
||||||
|
editItem(item);
|
||||||
|
Close();
|
||||||
|
e.Handled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
return editMenuItem;
|
||||||
|
}
|
||||||
|
|
||||||
private static bool IsLaunchable(LauncherItem item)
|
private static bool IsLaunchable(LauncherItem item)
|
||||||
{
|
{
|
||||||
return item.Type != LauncherItemType.Menu && !string.IsNullOrWhiteSpace(item.Target);
|
return item.Type != LauncherItemType.Menu && !string.IsNullOrWhiteSpace(item.Target);
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ Install the **.NET Desktop Runtime** for **Windows x64**.
|
|||||||
2. Run `TaskbarLauncher.exe`.
|
2. Run `TaskbarLauncher.exe`.
|
||||||
3. The app appears in the system tray.
|
3. The app appears in the system tray.
|
||||||
4. Press `Ctrl+Alt+Space` to open the launcher.
|
4. Press `Ctrl+Alt+Space` to open the launcher.
|
||||||
|
5. Right-click a launcher entry and choose **Edit in Settings** to jump to that item.
|
||||||
|
|
||||||
## Configure
|
## Configure
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user