Profiles - Fixed conditions triggering on profile load, closes #520

UI - Added logging startup argument, closes #532
Plugins - Added import button, closes #521
This commit is contained in:
SpoinkyNL committed 2021-02-03 19:21:04 +01:00
1 parent 1c10eb8aa4
commit f343b3d0f8
10 files changed
+134 -14

No files matched your search

@@ -14,25 +14,35 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Margin="0 15" MaxWidth="800" >
<Grid Margin="0 15" MinWidth="810" Width="{Binding Path=ActualWidth, ElementName=PluginsContainer}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" TextWrapping="Wrap">
The list below shows all loaded plugins. If you're missing something, view your logs folder.
The list below shows all loaded plugins. <LineBreak />
If you're missing something, view your logs folder.
</TextBlock>
<materialDesign:PackIcon Grid.Column="1" Kind="Search" VerticalAlignment="Top" Margin="15 5 0 0" />
<TextBox Grid.Column="2"
<TextBox Grid.Column="2"
materialDesign:TextFieldAssist.HasClearButton="True"
materialDesign:HintAssist.Hint="Search plugin"
VerticalAlignment="Top"
Margin="5 0"
Text="{Binding SearchPluginInput, Delay=300, UpdateSourceTrigger=PropertyChanged}"/>
Margin="5 0"
Text="{Binding SearchPluginInput, Delay=300, UpdateSourceTrigger=PropertyChanged}" />
<Button Grid.Column="3"
HorizontalAlignment="Right"
Style="{StaticResource MaterialDesignRaisedButton}"
Command="{s:Action ImportPlugin}"
Margin="15 0">
IMPORT PLUGIN
</Button>
</Grid>
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
<ItemsControl ItemsSource="{Binding Items}" Margin="15 0 15 15" HorizontalAlignment="Center" MaxWidth="1700">
<ItemsControl ItemsSource="{Binding Items}" Margin="15 0 15 15" HorizontalAlignment="Center" MaxWidth="1700" x:Name="PluginsContainer">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
@@ -2,8 +2,11 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Artemis.Core;
using Artemis.Core.Services;
using Artemis.UI.Ninject.Factories;
using Artemis.UI.Shared.Services;
using Ookii.Dialogs.Wpf;
using Stylet;
namespace Artemis.UI.Screens.Settings.Tabs.Plugins
@@ -11,15 +14,17 @@ namespace Artemis.UI.Screens.Settings.Tabs.Plugins
public class PluginSettingsTabViewModel : Conductor<PluginSettingsViewModel>.Collection.AllActive
{
private readonly IPluginManagementService _pluginManagementService;
private readonly IMessageService _messageService;
private readonly ISettingsVmFactory _settingsVmFactory;
private string _searchPluginInput;
private List<PluginSettingsViewModel> _instances;
public PluginSettingsTabViewModel(IPluginManagementService pluginManagementService, ISettingsVmFactory settingsVmFactory)
public PluginSettingsTabViewModel(IPluginManagementService pluginManagementService, IMessageService messageService, ISettingsVmFactory settingsVmFactory)
{
DisplayName = "PLUGINS";
_pluginManagementService = pluginManagementService;
_messageService = messageService;
_settingsVmFactory = settingsVmFactory;
}
@@ -63,5 +68,25 @@ namespace Artemis.UI.Screens.Settings.Tabs.Plugins
base.OnActivate();
}
public void ImportPlugin()
{
VistaOpenFileDialog dialog = new();
dialog.Filter = "ZIP files (*.zip)|*.zip";
dialog.Title = "Import Artemis plugin";
bool? result = dialog.ShowDialog();
if (result == true)
{
Plugin plugin = _pluginManagementService.ImportPlugin(dialog.FileName);
_instances = _pluginManagementService.GetAllPlugins()
.Select(p => _settingsVmFactory.CreatePluginSettingsViewModel(p))
.OrderBy(i => i.Plugin.Info.Name)
.ToList();
SearchPluginInput = plugin.Info.Name;
_messageService.ShowMessage($"Imported plugin: {plugin.Info.Name}");
}
}
}
}