diff --git a/mRemoteV1/App/MessageCollectorSetup.cs b/mRemoteV1/App/MessageCollectorSetup.cs
index fa6ba4588..51db0c366 100644
--- a/mRemoteV1/App/MessageCollectorSetup.cs
+++ b/mRemoteV1/App/MessageCollectorSetup.cs
@@ -36,13 +36,7 @@ namespace mRemoteNG.App
private static IMessageWriter BuildTextLogMessageWriter()
{
return new MessageTypeFilterDecorator(
- new MessageTypeFilteringOptions
- {
- AllowDebugMessages = Settings.Default.TextLogMessageWriterWriteDebugMsgs,
- AllowInfoMessages = Settings.Default.TextLogMessageWriterWriteInfoMsgs,
- AllowWarningMessages = Settings.Default.TextLogMessageWriterWriteWarningMsgs,
- AllowErrorMessages = Settings.Default.TextLogMessageWriterWriteErrorMsgs
- },
+ new LogMessageTypeFilteringOptions(),
new TextLogMessageWriter(Logger.Instance)
);
}
@@ -52,21 +46,10 @@ namespace mRemoteNG.App
return new OnlyLogMessageFilter(
new MessageTypeFilterDecorator(
- new MessageTypeFilteringOptions
- {
- AllowDebugMessages = Settings.Default.NotificationPanelWriterWriteDebugMsgs,
- AllowInfoMessages = Settings.Default.NotificationPanelWriterWriteInfoMsgs,
- AllowWarningMessages = Settings.Default.NotificationPanelWriterWriteWarningMsgs,
- AllowErrorMessages = Settings.Default.NotificationPanelWriterWriteErrorMsgs
- },
+ new NotificationPanelMessageFilteringOptions(),
new MessageFocusDecorator(
Windows.ErrorsForm,
- new MessageTypeFilteringOptions
- {
- AllowInfoMessages = Settings.Default.SwitchToMCOnInformation,
- AllowWarningMessages = Settings.Default.SwitchToMCOnWarning,
- AllowErrorMessages = Settings.Default.SwitchToMCOnError
- },
+ new NotificationPanelSwitchOnMessageFilteringOptions(),
new NotificationPanelMessageWriter(Windows.ErrorsForm)
)
)
@@ -77,13 +60,7 @@ namespace mRemoteNG.App
{
return new OnlyLogMessageFilter(
new MessageTypeFilterDecorator(
- new MessageTypeFilteringOptions
- {
- AllowDebugMessages = Settings.Default.PopupMessageWriterWriteDebugMsgs,
- AllowInfoMessages = Settings.Default.PopupMessageWriterWriteInfoMsgs,
- AllowWarningMessages = Settings.Default.PopupMessageWriterWriteWarningMsgs,
- AllowErrorMessages = Settings.Default.PopupMessageWriterWriteErrorMsgs
- },
+ new PopupMessageFilteringOptions(),
new PopupMessageWriter()
)
);
diff --git a/mRemoteV1/Messages/LogMessageTypeFilteringOptions.cs b/mRemoteV1/Messages/LogMessageTypeFilteringOptions.cs
new file mode 100644
index 000000000..2ff4cc7fe
--- /dev/null
+++ b/mRemoteV1/Messages/LogMessageTypeFilteringOptions.cs
@@ -0,0 +1,31 @@
+using mRemoteNG.Messages.MessageWriters;
+
+namespace mRemoteNG.Messages
+{
+ public class LogMessageTypeFilteringOptions : IMessageTypeFilteringOptions
+ {
+ public bool AllowDebugMessages
+ {
+ get { return Settings.Default.TextLogMessageWriterWriteDebugMsgs; }
+ set { Settings.Default.TextLogMessageWriterWriteDebugMsgs = value; }
+ }
+
+ public bool AllowInfoMessages
+ {
+ get { return Settings.Default.TextLogMessageWriterWriteInfoMsgs; }
+ set { Settings.Default.TextLogMessageWriterWriteInfoMsgs = value; }
+ }
+
+ public bool AllowWarningMessages
+ {
+ get { return Settings.Default.TextLogMessageWriterWriteWarningMsgs; }
+ set { Settings.Default.TextLogMessageWriterWriteWarningMsgs = value; }
+ }
+
+ public bool AllowErrorMessages
+ {
+ get { return Settings.Default.TextLogMessageWriterWriteErrorMsgs; }
+ set { Settings.Default.TextLogMessageWriterWriteErrorMsgs = value; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mRemoteV1/Messages/NotificationPanelMessageFilteringOptions.cs b/mRemoteV1/Messages/NotificationPanelMessageFilteringOptions.cs
new file mode 100644
index 000000000..451a7c36d
--- /dev/null
+++ b/mRemoteV1/Messages/NotificationPanelMessageFilteringOptions.cs
@@ -0,0 +1,31 @@
+using mRemoteNG.Messages.MessageWriters;
+
+namespace mRemoteNG.Messages
+{
+ public class NotificationPanelMessageFilteringOptions : IMessageTypeFilteringOptions
+ {
+ public bool AllowDebugMessages
+ {
+ get { return Settings.Default.NotificationPanelWriterWriteDebugMsgs; }
+ set { Settings.Default.NotificationPanelWriterWriteDebugMsgs = value; }
+ }
+
+ public bool AllowInfoMessages
+ {
+ get { return Settings.Default.NotificationPanelWriterWriteInfoMsgs; }
+ set { Settings.Default.NotificationPanelWriterWriteInfoMsgs = value; }
+ }
+
+ public bool AllowWarningMessages
+ {
+ get { return Settings.Default.NotificationPanelWriterWriteWarningMsgs; }
+ set { Settings.Default.NotificationPanelWriterWriteWarningMsgs = value; }
+ }
+
+ public bool AllowErrorMessages
+ {
+ get { return Settings.Default.NotificationPanelWriterWriteErrorMsgs; }
+ set { Settings.Default.NotificationPanelWriterWriteErrorMsgs = value; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mRemoteV1/Messages/NotificationPanelSwitchOnMessageFilteringOptions.cs b/mRemoteV1/Messages/NotificationPanelSwitchOnMessageFilteringOptions.cs
new file mode 100644
index 000000000..7dc7b9d0b
--- /dev/null
+++ b/mRemoteV1/Messages/NotificationPanelSwitchOnMessageFilteringOptions.cs
@@ -0,0 +1,31 @@
+using mRemoteNG.Messages.MessageWriters;
+
+namespace mRemoteNG.Messages
+{
+ public class NotificationPanelSwitchOnMessageFilteringOptions : IMessageTypeFilteringOptions
+ {
+ public bool AllowDebugMessages
+ {
+ get { return false; }
+ set { }
+ }
+
+ public bool AllowInfoMessages
+ {
+ get { return Settings.Default.SwitchToMCOnInformation; }
+ set { Settings.Default.SwitchToMCOnInformation = value; }
+ }
+
+ public bool AllowWarningMessages
+ {
+ get { return Settings.Default.SwitchToMCOnWarning; }
+ set { Settings.Default.SwitchToMCOnWarning = value; }
+ }
+
+ public bool AllowErrorMessages
+ {
+ get { return Settings.Default.SwitchToMCOnError; }
+ set { Settings.Default.SwitchToMCOnError = value; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mRemoteV1/Messages/PopupMessageFilteringOptions.cs b/mRemoteV1/Messages/PopupMessageFilteringOptions.cs
new file mode 100644
index 000000000..c745dad51
--- /dev/null
+++ b/mRemoteV1/Messages/PopupMessageFilteringOptions.cs
@@ -0,0 +1,31 @@
+using mRemoteNG.Messages.MessageWriters;
+
+namespace mRemoteNG.Messages
+{
+ public class PopupMessageFilteringOptions : IMessageTypeFilteringOptions
+ {
+ public bool AllowDebugMessages
+ {
+ get { return Settings.Default.PopupMessageWriterWriteDebugMsgs; }
+ set { Settings.Default.PopupMessageWriterWriteDebugMsgs = value; }
+ }
+
+ public bool AllowInfoMessages
+ {
+ get { return Settings.Default.PopupMessageWriterWriteInfoMsgs; }
+ set { Settings.Default.PopupMessageWriterWriteInfoMsgs = value; }
+ }
+
+ public bool AllowWarningMessages
+ {
+ get { return Settings.Default.PopupMessageWriterWriteWarningMsgs; }
+ set { Settings.Default.PopupMessageWriterWriteWarningMsgs = value; }
+ }
+
+ public bool AllowErrorMessages
+ {
+ get { return Settings.Default.PopupMessageWriterWriteErrorMsgs; }
+ set { Settings.Default.PopupMessageWriterWriteErrorMsgs = value; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mRemoteV1/UI/Forms/OptionsPages/NotificationsPage.cs b/mRemoteV1/UI/Forms/OptionsPages/NotificationsPage.cs
index 29c055c51..3168b1775 100644
--- a/mRemoteV1/UI/Forms/OptionsPages/NotificationsPage.cs
+++ b/mRemoteV1/UI/Forms/OptionsPages/NotificationsPage.cs
@@ -69,8 +69,6 @@ namespace mRemoteNG.UI.Forms.OptionsPages
SaveLoggingSettings();
SavePopupSettings();
Settings.Default.Save();
- Runtime.MessageWriters.Clear();
- MessageCollectorSetup.BuildMessageWritersFromSettings(Runtime.MessageWriters);
}
private void LoadNotificationPanelSettings()
diff --git a/mRemoteV1/mRemoteV1.csproj b/mRemoteV1/mRemoteV1.csproj
index 0f2c33b8e..ce051fde9 100644
--- a/mRemoteV1/mRemoteV1.csproj
+++ b/mRemoteV1/mRemoteV1.csproj
@@ -218,6 +218,7 @@
+
@@ -231,6 +232,9 @@
+
+
+