mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-11 19:36:28 +00:00
Data model node - Fixed pins disconnecting after restart
Data model event node - Fixed pins disconnecting after restart Node editor - Fixed connecting already connected input pins to an output pin causing a crash Node editor - Added auto-save every 2 minutes while nodes are open (profiles are already auto-saved whenever you make a change, nodes will get the same treatment later)
This commit is contained in:
1 parent
0120f37c93
commit
88f01abe0d
10 files changed
+156
-99
No files matched your search
@@ -11,17 +11,15 @@ namespace Artemis.Core.Services;
|
||||
internal class ProcessMonitorService : IProcessMonitorService
|
||||
{
|
||||
private readonly ProcessComparer _comparer;
|
||||
private readonly ILogger _logger;
|
||||
private Process[] _lastScannedProcesses;
|
||||
|
||||
public ProcessMonitorService(ILogger logger)
|
||||
public ProcessMonitorService()
|
||||
{
|
||||
_logger = logger;
|
||||
_comparer = new ProcessComparer();
|
||||
_lastScannedProcesses = Process.GetProcesses();
|
||||
Timer processScanTimer = new(1000);
|
||||
processScanTimer.Elapsed += OnTimerElapsed;
|
||||
processScanTimer.Start();
|
||||
_comparer = new ProcessComparer();
|
||||
|
||||
ProcessActivationRequirement.ProcessMonitorService = this;
|
||||
}
|
||||
@@ -30,16 +28,9 @@ internal class ProcessMonitorService : IProcessMonitorService
|
||||
{
|
||||
Process[] newProcesses = Process.GetProcesses();
|
||||
foreach (Process startedProcess in newProcesses.Except(_lastScannedProcesses, _comparer))
|
||||
{
|
||||
ProcessStarted?.Invoke(this, new ProcessEventArgs(startedProcess));
|
||||
//_logger.Verbose("Started Process: {startedProcess}", startedProcess.ProcessName);
|
||||
}
|
||||
|
||||
foreach (Process stoppedProcess in _lastScannedProcesses.Except(newProcesses, _comparer))
|
||||
{
|
||||
ProcessStopped?.Invoke(this, new ProcessEventArgs(stoppedProcess));
|
||||
//_logger.Verbose("Stopped Process: {stoppedProcess}", stoppedProcess.ProcessName);
|
||||
}
|
||||
|
||||
_lastScannedProcesses = newProcesses;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Artemis.Core;
|
||||
/// <summary>
|
||||
/// Represents a node script
|
||||
/// </summary>
|
||||
public interface INodeScript : INotifyPropertyChanged, IDisposable
|
||||
public interface INodeScript : INotifyPropertyChanged, IDisposable, IStorageModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the name of the node script.
|
||||
@@ -66,6 +66,11 @@ public interface INodeScript : INotifyPropertyChanged, IDisposable
|
||||
/// </summary>
|
||||
/// <param name="node">The node to remove</param>
|
||||
void RemoveNode(INode node);
|
||||
|
||||
/// <summary>
|
||||
/// Loads missing connections between the nodes of this node script from storage
|
||||
/// </summary>
|
||||
void LoadConnections();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace Artemis.Core;
|
||||
/// <summary>
|
||||
/// Represents a node script
|
||||
/// </summary>
|
||||
public abstract class NodeScript : CorePropertyChanged, INodeScript, IStorageModel
|
||||
public abstract class NodeScript : CorePropertyChanged, INodeScript
|
||||
{
|
||||
private void NodeTypeStoreOnNodeTypeChanged(object? sender, NodeTypeStoreEvent e)
|
||||
{
|
||||
@@ -226,9 +226,7 @@ public abstract class NodeScript : CorePropertyChanged, INodeScript, IStorageMod
|
||||
return node;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Loads missing connections between the nodes of this node script from the <see cref="Entity" />
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public void LoadConnections()
|
||||
{
|
||||
List<INode> nodes = Nodes.ToList();
|
||||
|
||||
Reference in new issue
Block a user