1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-31 09:43:46 +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) if (_moduleManager.ActiveModule == null)
{ {
var lastModule = _moduleManager.GetLastModule(); var lastModule = _moduleManager.GetLastModule();
if (lastModule == null) if (lastModule == null || !lastModule.Settings.IsEnabled)
{ {
_logger.Debug("Cancel LoopManager start, no module"); _logger.Debug("Cancel LoopManager start, no module");
return; return;

View File

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

View File

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

View File

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

View File

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