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 @@ + + +