public void ImportButtons(EnumButtonImportMode importMode, List <ButtonExport> buttonExports) { var streamDeckButtons = buttonExports.Where(o => o.LayerName == _name).Select(m => m.Button).ToList(); if (streamDeckButtons.Count > 0) { ImportButtons(importMode, streamDeckButtons); } }
public void ImportButtons(EnumButtonImportMode importMode, List <ButtonExport> buttonExports) { var importLayerNames = buttonExports.Select(o => o.LayerName).Distinct().ToList(); foreach (var importLayerName in importLayerNames) { if (!LayerExists(importLayerName)) { var newLayer = new StreamDeckLayer { Name = importLayerName }; AddLayer(newLayer); } var layer = GetLayer(importLayerName); layer.ImportButtons(importMode, buttonExports); } }
public void ImportButtons(EnumButtonImportMode importMode, List <StreamDeckButton> newStreamDeckButtons) { var changesMade = false; foreach (var newStreamDeckButton in newStreamDeckButtons) { var found = false; newStreamDeckButton.StreamDeckPanelInstance = _streamDeckPanel; foreach (var oldStreamDeckButton in _streamDeckButtons) { if (oldStreamDeckButton.StreamDeckButtonName == newStreamDeckButton.StreamDeckButtonName) { found = true; if (importMode == EnumButtonImportMode.Replace) { oldStreamDeckButton.ClearConfiguration(); oldStreamDeckButton.Consume(true, newStreamDeckButton); // Let propagate down so it isn't null oldStreamDeckButton.StreamDeckPanelInstance = _streamDeckPanel; changesMade = true; } else if (importMode == EnumButtonImportMode.Overwrite) { oldStreamDeckButton.Consume(true, newStreamDeckButton); // Let propagate down so it isn't null oldStreamDeckButton.StreamDeckPanelInstance = _streamDeckPanel; changesMade = true; } else if (importMode == EnumButtonImportMode.None) { if (oldStreamDeckButton.Face == null && newStreamDeckButton.Face != null) { var face = newStreamDeckButton.Face.DeepClone(); face.AfterClone(); oldStreamDeckButton.Face = face; changesMade = true; } if (oldStreamDeckButton.ActionForPress == null && newStreamDeckButton.ActionForPress != null) { oldStreamDeckButton.ActionForPress = newStreamDeckButton.ActionForPress.DeepClone(); changesMade = true; } if (oldStreamDeckButton.ActionForRelease == null && newStreamDeckButton.ActionForRelease != null) { oldStreamDeckButton.ActionForRelease = newStreamDeckButton.ActionForRelease.DeepClone(); changesMade = true; } // Let propagate down so it isn't null oldStreamDeckButton.StreamDeckPanelInstance = _streamDeckPanel; } break; } } if (!found) { _streamDeckButtons.Add(newStreamDeckButton); changesMade = true; } } if (changesMade) { NotifyChanges(); } }
public void ImportButtons(EnumButtonImportMode importMode, List <ButtonExport> buttonExports) { _streamDeckLayerHandler.ImportButtons(importMode, buttonExports); }