1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

Fix unnecessary config writes

Fix #286
This commit is contained in:
SpoinkyNL 2017-01-23 15:27:15 +01:00
parent 03264fcee7
commit eeb5c8aa90
5 changed files with 13 additions and 8 deletions

View File

@ -98,7 +98,7 @@ namespace Artemis.Managers
if (_moduleManager.ActiveModule == null)
{
var lastModule = _moduleManager.GetLastModule();
if (lastModule == null)
if (lastModule == null || !lastModule.Settings.IsEnabled)
{
_logger.Debug("Cancel LoopManager start, no module");
return;

View File

@ -169,6 +169,8 @@ namespace Artemis.Managers
/// </summary>
public void DisableProcessBoundModule()
{
if (ActiveModule == null)
return;
if (!ActiveModule.IsBoundToProcess)
{
_logger.Warn("Active module {0} is not process bound but is being disabled as if it is.",
@ -176,10 +178,11 @@ namespace Artemis.Managers
return;
}
if (GetLastModule() == null)
var lastModule = GetLastModule();
if (lastModule == null || !lastModule.Settings.IsEnabled)
ClearActiveModule();
else
ChangeActiveModule(GetLastModule());
ChangeActiveModule(lastModule);
}
protected virtual void RaiseEffectChangedEvent(ModuleChangedEventArgs e)

View File

@ -82,7 +82,7 @@ namespace Artemis.Managers
activePreview?.ProfileEditor?.SaveSelectedProfile();
var lastModule = _moduleManager.GetLastModule();
if (lastModule != null)
if (lastModule != null && lastModule.Settings.IsEnabled)
_moduleManager.ChangeActiveModule(lastModule);
else
_moduleManager.ClearActiveModule();

View File

@ -88,6 +88,8 @@ namespace Artemis.Modules.Abstract
/// </summary>
public ProfileModel ProfileModel { get; protected set; }
public bool IsGeneral => !IsOverlay && !IsBoundToProcess;
#endregion
#region Base methods

View File

@ -28,7 +28,7 @@ namespace Artemis.Modules.Abstract
_mainManager.EnabledChanged += MainManagerOnEnabledChanged;
_moduleManager.EffectChanged += ModuleManagerOnModuleChanged;
// ReSharper disable once VirtualMemberCallInConstructor
if (!UsesProfileEditor)
return;
@ -68,7 +68,7 @@ namespace Artemis.Modules.Abstract
{
get
{
if (ModuleModel.IsBoundToProcess || ModuleModel.IsOverlay)
if (!ModuleModel.IsGeneral)
return Settings.IsEnabled;
return _generalSettings.LastModule == ModuleModel.Name;
}
@ -91,7 +91,7 @@ namespace Artemis.Modules.Abstract
private void UpdatedEnabledSetting()
{
if (ModuleModel.IsBoundToProcess || ModuleModel.IsOverlay)
if (!ModuleModel.IsGeneral || !_moduleManager.ActiveModule.IsGeneral || Settings.IsEnabled == IsModuleActive)
return;
Settings.IsEnabled = IsModuleActive;
@ -106,7 +106,7 @@ namespace Artemis.Modules.Abstract
NotifyOfPropertyChange(() => Settings);
// On process-bound modules, only set the module model
if (ModuleModel.IsBoundToProcess || ModuleModel.IsOverlay)
if (!ModuleModel.IsGeneral)
{
NotifyOfPropertyChange(() => IsModuleActive);
NotifyOfPropertyChange(() => IsModuleEnabled);