Skip to content

Commit

Permalink
Message viewer doesn't understand Linux-style new lines fix #1770
Browse files Browse the repository at this point in the history
  • Loading branch information
LiorBanai committed Aug 25, 2023
1 parent 91bb8d6 commit 2abe67f
Show file tree
Hide file tree
Showing 13 changed files with 75 additions and 23 deletions.
1 change: 1 addition & 0 deletions Analogy.Common/Interfaces/IUserSettingsManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ public interface IUserSettingsManager

bool ShowProcessedCounter { get; set; }
bool InlineJsonViewer { get; set; }
bool SupportLinuxFormatting { get; set; }
void Save();
void AddToRecentFiles(Guid iD, string file);
void AddToRecentFolders(Guid iD, string path);
Expand Down
2 changes: 2 additions & 0 deletions Analogy.Common/Managers/DefaultUserSettingsManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ public class DefaultUserSettingsManager : IUserSettingsManager
public bool ShowProcessedCounter { get; set; }
public bool InlineJsonViewer { get; set; }

public bool SupportLinuxFormatting { get; set; }

public void Save()
{
}
Expand Down
2 changes: 1 addition & 1 deletion Analogy.CommonControls/Forms/FormMessageDetails.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public FormMessageDetails()
public FormMessageDetails(AnalogyLogMessage msg, List<IAnalogyLogMessage> messages, string dataSource, IUserSettingsManager settings) : this()
{
Settings = settings;
MessageDetailsUC uc = new MessageDetailsUC(msg, messages, dataSource);
MessageDetailsUC uc = new MessageDetailsUC(msg, messages, dataSource, settings);
spltCMain.Panel1.Controls.Add(uc);
uc.Dock = DockStyle.Fill;
}
Expand Down
8 changes: 4 additions & 4 deletions Analogy.CommonControls/UserControls/LogMessagesUC.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2428,19 +2428,19 @@ private void LoadTextBoxes(AnalogyLogMessage m)
{
bbtnRawMessageViewer.Tag = m;
recMessageDetails.Tag = m;
recMessageDetails.Text = Utils.ProcessLinuxMessage(m.Text);
recMessageDetails.Text = Utils.ProcessLinuxMessage(m.Text, Settings.SupportLinuxFormatting);
meMessageDetails.Tag = m;
meMessageDetails.Text = Utils.ProcessLinuxMessage(m.Text); ;
meMessageDetails.Text = Utils.ProcessLinuxMessage(m.Text, Settings.SupportLinuxFormatting); ;
recMessageDetails.HtmlText = Markdown.ToHtml(m.Text, pipeline);
}));
}
else
{
bbtnRawMessageViewer.Tag = m;
recMessageDetails.Tag = m;
recMessageDetails.Text = Utils.ProcessLinuxMessage(m.Text); ;
recMessageDetails.Text = Utils.ProcessLinuxMessage(m.Text, Settings.SupportLinuxFormatting); ;
meMessageDetails.Tag = m;
meMessageDetails.Text = Utils.ProcessLinuxMessage(m.Text); ;
meMessageDetails.Text = Utils.ProcessLinuxMessage(m.Text, Settings.SupportLinuxFormatting); ;
recMessageDetails.HtmlText = Markdown.ToHtml(m.Text, pipeline);
}

Expand Down
7 changes: 4 additions & 3 deletions Analogy.CommonControls/UserControls/MessageDetailsUC.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,19 @@ public partial class MessageDetailsUC : XtraUserControl
private string DataSource { get; }
private MarkdownPipeline? Pipeline { get; set; }
private JsonTreeUC _jsonTreeView;

private IUserSettingsManager Settings { get; }
private MessageDetailsUC()
{
InitializeComponent();
Messages = new List<IAnalogyLogMessage>(0);
}

public MessageDetailsUC(AnalogyLogMessage msg, List<IAnalogyLogMessage> messages, string dataSource) : this()
public MessageDetailsUC(AnalogyLogMessage msg, List<IAnalogyLogMessage> messages, string dataSource, IUserSettingsManager settings) : this()
{
Message = msg;
Messages = messages;
DataSource = dataSource;
Settings = settings;
}

private async void UCMessageDetails_Load(object sender, EventArgs e)
Expand Down Expand Up @@ -82,7 +83,7 @@ public async Task LoadMessage()
Message.AdditionalProperties.Select(kv => $"{kv.Key}:{kv.Value}"));
}

memoText.Text =Utils.ProcessLinuxMessage(Message.Text);
memoText.Text =Utils.ProcessLinuxMessage(Message.Text, Settings.SupportLinuxFormatting);
txtbMachineName.Text = Message.MachineName;
txtID.Text = Message.Id.ToString();
txtbDataSource.Text = DataSource;
Expand Down
7 changes: 6 additions & 1 deletion Analogy.CommonControls/Utils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ public static string GetFileNameAsDataSource(string fileName)
string file = Path.GetFileName(fileName);
return fileName != null && fileName.Equals(file) ? fileName : $"{file} ({fileName})";
}

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static DataRow CreateRow(DataTable table, IAnalogyLogMessage message, string dataSource, TimeOffsetType timeOffsetType, TimeSpan customOffset)
{
Expand Down Expand Up @@ -262,8 +263,12 @@ public static SuperToolTip GetSuperTip(string title, string content)
return toolTip;
}

public static string ProcessLinuxMessage(string? msg)
public static string ProcessLinuxMessage(string? msg, bool supportLinuxFormatting)
{
if (!supportLinuxFormatting)
{
return msg ?? string.Empty;
}
if (msg == null)
{
return string.Empty;
Expand Down
3 changes: 3 additions & 0 deletions Analogy/App.config
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,9 @@
<setting name="WindowPositions" serializeAs="String">
<value />
</setting>
<setting name="SupportLinuxFormatting" serializeAs="String">
<value>True</value>
</setting>
</Analogy.Properties.Settings>
</userSettings>
</configuration>
17 changes: 17 additions & 0 deletions Analogy/ApplicationSettings/AdvancedSettingsUC.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion Analogy/ApplicationSettings/AdvancedSettingsUC.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,18 @@ public AdvancedSettingsUC(IAnalogyUserSettings settings)
InitializeComponent();
}

private void AdvancedSettingsUC_Load(object sender, EventArgs e)
private void AdvancedSettingsUC_Load(object sender, EventArgs arg)
{
tsEnabledAdvancedSettings.IsOn = Settings.AdvancedMode;
tsAdvancedModeAdditionalColumns.IsOn = Settings.AdvancedModeAdditionalFilteringColumnsEnabled;
tsAdvancedModeRawSQLFiltering.IsOn = Settings.AdvancedModeRawSQLFilterEnabled;
tsLinux.IsOn = Settings.SupportLinuxFormatting;

tsEnabledAdvancedSettings.IsOnChanged += (s, e) => Settings.AdvancedMode = tsEnabledAdvancedSettings.IsOn;
tsAdvancedModeAdditionalColumns.IsOnChanged += (s, e) => Settings.AdvancedModeAdditionalFilteringColumnsEnabled = tsAdvancedModeAdditionalColumns.IsOn;
tsAdvancedModeRawSQLFiltering.IsOnChanged += (s, e) => Settings.AdvancedModeRawSQLFilterEnabled = tsAdvancedModeRawSQLFiltering.IsOn;
tsLinux.IsOnChanged += (s, e) => Settings.SupportLinuxFormatting = tsLinux.IsOn;

}
}
}
3 changes: 2 additions & 1 deletion Analogy/DataTypes/UserSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ public class UserSettings
/// </summary>
public int FilePoolingDelayInterval { get; set; }
public bool EnableFilePoolingDelay { get; set; }
public bool InlineJsonViewer { get;set; }
public bool InlineJsonViewer { get; set; }
public bool SupportLinuxFormatting { get; set; }
public bool ShowProcessedCounter { get; set; }
public bool ShowAdvancedSettingsRawSQLPopup { get; set; }
public bool CombineOfflineProviders { get; set; }
Expand Down
26 changes: 15 additions & 11 deletions Analogy/Managers/UserSettingsManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,8 @@ public bool InlineJsonViewer
public bool ShowAdvancedSettingsRawSQLPopup { get; set; }
public bool CombineOfflineProviders { get; set; }
public bool CombineOnlineProviders { get; set; }
public bool SupportLinuxFormatting { get; set; }

private Dictionary<Guid , AnalogyPositionState> WindowPositions { get; set; }
public UserSettingsManager()
{
Expand Down Expand Up @@ -256,7 +258,8 @@ private void LoadPerUserSettings()
LastSearchesExclude = ParseSettings<List<string>>(Settings.Default.LastSearchesExclude);
AdvancedMode = Settings.Default.AdvancedMode;
AdvancedModeRawSQLFilterEnabled = Settings.Default.AdvancedModeRawSQLFilterEnabled;
AdvancedModeAdditionalFilteringColumnsEnabled = Settings.Default.AdvancedModeAdditionalFilteringColumnsEnabled;
AdvancedModeAdditionalFilteringColumnsEnabled =
Settings.Default.AdvancedModeAdditionalFilteringColumnsEnabled;
NumberOfLastSearches = Settings.Default.NumberOfLastSearches;
AdditionalProbingLocations = ParseSettings<List<string>>(Settings.Default.AdditionalProbingLocations);
SingleInstance = Settings.Default.SingleInstance;
Expand All @@ -275,10 +278,12 @@ private void LoadPerUserSettings()
{
ApplicationStyle = style;
}

if (Enum.TryParse(Settings.Default.LogLevelSelection, out LogLevelSelectionType type))
{
LogLevelSelection = type;
}

ApplicationSvgPaletteName = Settings.Default.ApplicationSvgPaletteName;
MinimizedToTrayBar = Settings.Default.MinimizedToTrayBar;
CheckAdditionalInformation = Settings.Default.CheckAdditionalInformation;
Expand Down Expand Up @@ -310,6 +315,7 @@ private void LoadPerUserSettings()
{
TimeOffsetType = timeOffsetTypeValue;
}

DefaultUserLogFolder = Settings.Default.DefaultUserLogFolder;
TimeOffset = TimeSpan.FromMilliseconds(Settings.Default.TimeOffset);
FilePoolingDelayInterval = Settings.Default.FilePoolingDelayInterval;
Expand All @@ -319,15 +325,10 @@ private void LoadPerUserSettings()
ShowAdvancedSettingsRawSQLPopup = Settings.Default.ShowAdvancedSettingsRawSQLPopup;
CombineOfflineProviders = Settings.Default.CombineOfflineProviders;
CombineOnlineProviders = Settings.Default.CombineOnlineProviders;
if (!string.IsNullOrEmpty(Settings.Default.WindowPositions))
{
WindowPositions = ParseSettings<Dictionary<Guid, AnalogyPositionState>>(Settings.Default.WindowPositions);
}
else
{
WindowPositions = new Dictionary<Guid, AnalogyPositionState>();
}

SupportLinuxFormatting = Settings.Default.SupportLinuxFormatting;
WindowPositions = !string.IsNullOrEmpty(Settings.Default.WindowPositions)
? ParseSettings<Dictionary<Guid, AnalogyPositionState>>(Settings.Default.WindowPositions)
: new Dictionary<Guid, AnalogyPositionState>();
}

private void ApplyLocalSettings(UserSettings settings)
Expand Down Expand Up @@ -416,6 +417,7 @@ private void ApplyLocalSettings(UserSettings settings)
CombineOfflineProviders = settings.CombineOfflineProviders;
CombineOnlineProviders = settings.CombineOnlineProviders;
WindowPositions = settings.WindowPositions;
SupportLinuxFormatting = settings.SupportLinuxFormatting;
}

private UserSettings CreateUserSettings()
Expand Down Expand Up @@ -503,7 +505,8 @@ private UserSettings CreateUserSettings()
ShowAdvancedSettingsRawSQLPopup = ShowAdvancedSettingsRawSQLPopup,
CombineOfflineProviders = CombineOfflineProviders,
CombineOnlineProviders = CombineOnlineProviders,
WindowPositions = WindowPositions
WindowPositions = WindowPositions,
SupportLinuxFormatting = SupportLinuxFormatting
};
return userSettings;
}
Expand Down Expand Up @@ -672,6 +675,7 @@ private void SavePerUserSettings()
Settings.Default.CombineOnlineProviders = CombineOfflineProviders;
Settings.Default.CombineOnlineProviders = CombineOnlineProviders;
Settings.Default.WindowPositions = JsonConvert.SerializeObject(WindowPositions);
Settings.Default.SupportLinuxFormatting = SupportLinuxFormatting;
Settings.Default.Save();
}

Expand Down
14 changes: 13 additions & 1 deletion Analogy/Properties/Settings.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Analogy/Properties/Settings.settings
Original file line number Diff line number Diff line change
Expand Up @@ -257,5 +257,8 @@
<Setting Name="WindowPositions" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SupportLinuxFormatting" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

0 comments on commit 2abe67f

Please sign in to comment.