mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 11:56:30 +00:00
UI - Added sidebar pinning, this closes #493
UI - Wrap long tooltips, this closes #480
This commit is contained in:
1 parent
bc8ac61388
commit
47dffc0fa0
7 files changed
+138
-34
No files matched your search
@@ -23,6 +23,23 @@
|
||||
Source="/Resources/Images/Sidebar/sidebar-header.png"
|
||||
Stretch="UniformToFill"
|
||||
VerticalAlignment="Top" Height="120" />
|
||||
|
||||
<ToggleButton Grid.Row="0"
|
||||
Style="{StaticResource MaterialDesignSwitchLightToggleButton}"
|
||||
ToolTip="Pin sidebar"
|
||||
HorizontalAlignment="Right"
|
||||
IsChecked="{Binding PinSidebar.Value, Delay=300}"
|
||||
Margin="10 0">
|
||||
<materialDesign:PackIcon Kind="Pin" RenderTransformOrigin=".5,.5">
|
||||
<materialDesign:PackIcon.RenderTransform>
|
||||
<RotateTransform Angle="45" />
|
||||
</materialDesign:PackIcon.RenderTransform>
|
||||
</materialDesign:PackIcon>
|
||||
<materialDesign:ToggleButtonAssist.OnContent>
|
||||
<materialDesign:PackIcon Kind="Pin" />
|
||||
</materialDesign:ToggleButtonAssist.OnContent>
|
||||
</ToggleButton>
|
||||
|
||||
<TextBlock Grid.Row="1"
|
||||
Style="{StaticResource MaterialDesignHeadline6TextBlock}"
|
||||
Foreground="{StaticResource PrimaryHueDarkForegroundBrush}"
|
||||
|
||||
@@ -26,6 +26,7 @@ namespace Artemis.UI.Screens.Sidebar
|
||||
{
|
||||
private readonly Timer _activeModulesUpdateTimer;
|
||||
private readonly IKernel _kernel;
|
||||
private readonly ISettingsService _settingsService;
|
||||
private readonly IModuleVmFactory _moduleVmFactory;
|
||||
private readonly IPluginManagementService _pluginManagementService;
|
||||
private string _activeModules;
|
||||
@@ -34,14 +35,17 @@ namespace Artemis.UI.Screens.Sidebar
|
||||
private BindableCollection<INavigationItem> _sidebarItems;
|
||||
private Dictionary<INavigationItem, Module> _sidebarModules;
|
||||
|
||||
public SidebarViewModel(IKernel kernel, IEventAggregator eventAggregator, IModuleVmFactory moduleVmFactory, IPluginManagementService pluginManagementService)
|
||||
public SidebarViewModel(IKernel kernel, ISettingsService settingsService, IEventAggregator eventAggregator, IModuleVmFactory moduleVmFactory, IPluginManagementService pluginManagementService)
|
||||
{
|
||||
_kernel = kernel;
|
||||
_settingsService = settingsService;
|
||||
_moduleVmFactory = moduleVmFactory;
|
||||
_pluginManagementService = pluginManagementService;
|
||||
|
||||
SidebarModules = new Dictionary<INavigationItem, Module>();
|
||||
SidebarItems = new BindableCollection<INavigationItem>();
|
||||
PinSidebar = settingsService.GetSetting("UI.PinSidebar", false);
|
||||
PinSidebar.AutoSave = true;
|
||||
|
||||
_activeModulesUpdateTimer = new Timer(1000);
|
||||
_activeModulesUpdateTimer.Start();
|
||||
@@ -54,6 +58,8 @@ namespace Artemis.UI.Screens.Sidebar
|
||||
eventAggregator.Subscribe(this);
|
||||
}
|
||||
|
||||
public PluginSetting<bool> PinSidebar { get; }
|
||||
|
||||
public BindableCollection<INavigationItem> SidebarItems
|
||||
{
|
||||
get => _sidebarItems;
|
||||
@@ -108,6 +114,10 @@ namespace Artemis.UI.Screens.Sidebar
|
||||
foreach (Module module in modules)
|
||||
AddModule(module);
|
||||
|
||||
// Set the sidebar as open if it's pinned
|
||||
if (PinSidebar.Value)
|
||||
IsSidebarOpen = true;
|
||||
|
||||
// Select the top item, which will be one of the defaults
|
||||
Task.Run(() => SelectSidebarItem(SidebarItems[0]));
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user