Fix unnecessary config writes

Fix #286
This commit is contained in:
SpoinkyNL committed 2017-01-23 15:27:15 +01:00
1 parent eaacba1be4
commit 4b3810628e
5 files changed
+13 -8

No files matched your search

+1 -1
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;
+5 -2
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)
+1 -1
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();
@@ -88,6 +88,8 @@ namespace Artemis.Modules.Abstract
/// </summary>
public ProfileModel ProfileModel { get; protected set; }
public bool IsGeneral => !IsOverlay && !IsBoundToProcess;
#endregion
#region Base methods
@@ -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);