mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-11 19:36:28 +00:00
UI - Made module tabs uppercase since that's what we do
Modules - Finished module ordering
This commit is contained in:
1 parent
bfb122e95a
commit
babd862b40
20 files changed
+272
-208
No files matched your search
@@ -12,10 +12,11 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DocumentationFile>bin\x64\Debug\Artemis.Core.xml</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<NrtRevisionFormat>2.0-{chash:6}</NrtRevisionFormat>
|
||||
<NrtRevisionFormat>1.0-{chash:6}</NrtRevisionFormat>
|
||||
<NrtResolveSimpleAttributes>true</NrtResolveSimpleAttributes>
|
||||
<NrtResolveInformationalAttribute>true</NrtResolveInformationalAttribute>
|
||||
<NrtResolveCopyright>true</NrtResolveCopyright>
|
||||
@@ -24,8 +25,9 @@
|
||||
<NrtRequiredVcs>git</NrtRequiredVcs>
|
||||
<NrtShowRevision>true</NrtShowRevision>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||
<DocumentationFile>bin\AnyCPU\Release\Artemis.Core.xml</DocumentationFile>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<DocumentationFile>bin\x64\Release\Artemis.Core.xml</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Artemis.Storage\Artemis.Storage.csproj">
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Artemis.Core.Plugins.Modules
|
||||
protected ModuleViewModel(Module module, string displayName)
|
||||
{
|
||||
Module = module;
|
||||
DisplayName = displayName;
|
||||
DisplayName = displayName.ToUpper();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -176,7 +176,7 @@ namespace Artemis.Core.Services
|
||||
{
|
||||
modules = _modules.Where(m => m.IsActivated || m.InternalExpandsMainDataModel)
|
||||
.OrderBy(m => m.PriorityCategory)
|
||||
.ThenBy(m => m.Priority)
|
||||
.ThenByDescending(m => m.Priority)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ using Artemis.Core.Plugins.Exceptions;
|
||||
using Artemis.Core.Plugins.Modules;
|
||||
using Artemis.Core.Services.Interfaces;
|
||||
using Artemis.Core.Services.Storage.Interfaces;
|
||||
using Artemis.Storage.Entities.Module;
|
||||
using Artemis.Storage.Repositories.Interfaces;
|
||||
using Serilog;
|
||||
using Timer = System.Timers.Timer;
|
||||
@@ -37,7 +38,8 @@ namespace Artemis.Core.Services
|
||||
activationUpdateTimer.Start();
|
||||
activationUpdateTimer.Elapsed += ActivationUpdateTimerOnElapsed;
|
||||
|
||||
PopulatePriorities();
|
||||
foreach (var module in _pluginService.GetPluginsOfType<Module>())
|
||||
InitialiseOrApplyPriority(module);
|
||||
}
|
||||
|
||||
public Module ActiveModuleOverride { get; private set; }
|
||||
@@ -123,28 +125,28 @@ namespace Artemis.Core.Services
|
||||
|
||||
public void UpdateModulePriority(Module module, ModulePriorityCategory category, int priority)
|
||||
{
|
||||
var modules = _pluginService.GetPluginsOfType<Module>().Where(m => m.PriorityCategory == category).OrderBy(m => m.Priority).ToList();
|
||||
if (module.PriorityCategory == category && module.Priority == priority)
|
||||
return;
|
||||
|
||||
var modules = _pluginService.GetPluginsOfType<Module>().Where(m => m.PriorityCategory == category).OrderBy(m => m.Priority).ToList();
|
||||
if (modules.Contains(module))
|
||||
modules.Remove(module);
|
||||
|
||||
if (modules.Count == 0)
|
||||
priority = 0;
|
||||
else if (priority < 0)
|
||||
priority = 0;
|
||||
else if (priority > modules.Count)
|
||||
priority = modules.Count;
|
||||
|
||||
module.PriorityCategory = category;
|
||||
priority = Math.Min(modules.Count, Math.Max(0, priority));
|
||||
modules.Insert(priority, module);
|
||||
|
||||
module.PriorityCategory = category;
|
||||
for (var index = 0; index < modules.Count; index++)
|
||||
{
|
||||
var categoryModule = modules[index];
|
||||
categoryModule.Priority = index;
|
||||
categoryModule.ApplyToEntity();
|
||||
|
||||
_moduleRepository.Save(categoryModule.Entity);
|
||||
// Don't save modules whose priority hasn't been initialized yet
|
||||
if (categoryModule == module || categoryModule.Entity != null)
|
||||
{
|
||||
categoryModule.ApplyToEntity();
|
||||
_moduleRepository.Save(categoryModule.Entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,23 +189,6 @@ namespace Artemis.Core.Services
|
||||
}
|
||||
}
|
||||
|
||||
private void PopulatePriorities()
|
||||
{
|
||||
var modules = _pluginService.GetPluginsOfType<Module>().ToList();
|
||||
var moduleEntities = _moduleRepository.GetAll();
|
||||
|
||||
foreach (var module in modules)
|
||||
{
|
||||
var entity = moduleEntities.FirstOrDefault(e => e.PluginGuid == module.PluginInfo.Guid);
|
||||
if (entity != null)
|
||||
{
|
||||
module.Entity = entity;
|
||||
module.PriorityCategory = (ModulePriorityCategory) entity.PriorityCategory;
|
||||
module.Priority = entity.Priority;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PluginServiceOnPluginEnabled(object sender, PluginEventArgs e)
|
||||
{
|
||||
if (e.PluginInfo.Instance is Module module)
|
||||
@@ -212,15 +197,17 @@ namespace Artemis.Core.Services
|
||||
|
||||
private void InitialiseOrApplyPriority(Module module)
|
||||
{
|
||||
var entity = _moduleRepository.GetByPluginGuid(module.PluginInfo.Guid);
|
||||
if (entity != null)
|
||||
var category = module.DefaultPriorityCategory;
|
||||
var priority = 1;
|
||||
|
||||
module.Entity = _moduleRepository.GetByPluginGuid(module.PluginInfo.Guid);
|
||||
if (module.Entity != null)
|
||||
{
|
||||
module.Entity = entity;
|
||||
module.PriorityCategory = (ModulePriorityCategory) entity.PriorityCategory;
|
||||
module.Priority = entity.Priority;
|
||||
category = (ModulePriorityCategory) module.Entity.PriorityCategory;
|
||||
priority = module.Entity.Priority;
|
||||
}
|
||||
else
|
||||
UpdateModulePriority(module, module.DefaultPriorityCategory, 1);
|
||||
|
||||
UpdateModulePriority(module, category, priority);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user