private void UpdateSubjects(bool disableAll = false) { if (disableAll) { _canUndo.OnNext(false); _canRedo.OnNext(false); _canClear.OnNext(false); _canRecord.OnNext(false); } else { var hasUndoEntries = StackUndo.Any(); var hasRedoEntries = StackRedo.Any(); _canUndo.OnNext(hasUndoEntries); _canRedo.OnNext(hasRedoEntries); _canClear.OnNext(hasUndoEntries || hasRedoEntries); _canRecord.OnNext(true); } }