From a0008e165b3e717510a3860b304dabefb4752d95 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Mon, 6 Feb 2017 10:01:10 -0700 Subject: [PATCH] created classes that tie the logging options to the settings file --- mRemoteV1/App/MessageCollectorSetup.cs | 31 +++---------------- .../LogMessageTypeFilteringOptions.cs | 31 +++++++++++++++++++ ...otificationPanelMessageFilteringOptions.cs | 31 +++++++++++++++++++ ...ionPanelSwitchOnMessageFilteringOptions.cs | 31 +++++++++++++++++++ .../Messages/PopupMessageFilteringOptions.cs | 31 +++++++++++++++++++ .../Forms/OptionsPages/NotificationsPage.cs | 2 -- mRemoteV1/mRemoteV1.csproj | 4 +++ 7 files changed, 132 insertions(+), 29 deletions(-) create mode 100644 mRemoteV1/Messages/LogMessageTypeFilteringOptions.cs create mode 100644 mRemoteV1/Messages/NotificationPanelMessageFilteringOptions.cs create mode 100644 mRemoteV1/Messages/NotificationPanelSwitchOnMessageFilteringOptions.cs create mode 100644 mRemoteV1/Messages/PopupMessageFilteringOptions.cs diff --git a/mRemoteV1/App/MessageCollectorSetup.cs b/mRemoteV1/App/MessageCollectorSetup.cs index fa6ba458..51db0c36 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 00000000..2ff4cc7f --- /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 00000000..451a7c36 --- /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 00000000..7dc7b9d0 --- /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 00000000..c745dad5 --- /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 29c055c5..3168b177 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 0f2c33b8..ce051fde 100644 --- a/mRemoteV1/mRemoteV1.csproj +++ b/mRemoteV1/mRemoteV1.csproj @@ -218,6 +218,7 @@ + @@ -231,6 +232,9 @@ + + +