Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/LogExpert.Core/Classes/Persister/PersistenceData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ public class PersistenceData

public List<FilterTabData> FilterTabDataList { get; set; } = [];

/// <summary>
/// Selection mode for Cells
/// Default: false (FullRowSelect mode)
/// </summary>
public bool CellSelectMode { get; set; }

public int FirstDisplayedLine { get; set; } = -1;

public bool FollowTail { get; set; } = true;
Expand Down
4 changes: 3 additions & 1 deletion src/LogExpert.Persister.Tests/PersisterTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,8 @@ public void RoundTrip_WithApplicationStartupDir_PreservesAllData ()
MultiFile = true,
MultiFilePattern = "test*.log",
MultiFileMaxDays = 7,
LineCount = 1000
LineCount = 1000,
CellSelectMode = true
};

// Act
Expand All @@ -377,6 +378,7 @@ public void RoundTrip_WithApplicationStartupDir_PreservesAllData ()
Assert.That(loadedData.MultiFilePattern, Is.EqualTo(originalData.MultiFilePattern), "MultiFilePattern should match");
Assert.That(loadedData.MultiFileMaxDays, Is.EqualTo(originalData.MultiFileMaxDays), "MultiFileMaxDays should match");
Assert.That(loadedData.LineCount, Is.EqualTo(originalData.LineCount), "LineCount should match");
Assert.That(loadedData.CellSelectMode, Is.EqualTo(originalData.CellSelectMode), "CellSelectMode should match");
}

[Test]
Expand Down
14 changes: 13 additions & 1 deletion src/LogExpert.UI/Controls/LogWindow/LogWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2462,6 +2462,8 @@ private bool LoadPersistenceOptions ()
AdjustHighlightSplitterWidth();
SetCurrentHighlightGroup(persistenceData.HighlightGroupName);

SetCellSelectionMode(persistenceData.CellSelectMode, true);

if (persistenceData.MultiFileNames.Count > 0)
{
//_logger.Info($"Detected MultiFile name list in persistence options");
Expand Down Expand Up @@ -2571,6 +2573,8 @@ private void LoadPersistenceData ()
// FirstDisplayedScrollingRowIndex calculates sometimes the wrong scrolling ranges???
}

SetCellSelectionMode(persistenceData.CellSelectMode, true);

if (Preferences.SaveFilters)
{
RestoreFilters(persistenceData);
Expand Down Expand Up @@ -6293,11 +6297,14 @@ public PersistenceData GetPersistenceData ()
FilterAdvanced = !advancedFilterSplitContainer.Panel1Collapsed,
FilterPosition = splitContainerLogWindow.SplitterDistance,
FollowTail = _guiStateArgs.FollowTail,
CellSelectMode = _guiStateArgs.CellSelectMode,
FileName = FileName,
TabName = Text,
SessionFileName = SessionFileName,
Columnizer = CurrentColumnizer,
LineCount = _logFileReader.LineCount


};

_filterParams.IsFilterTail = filterTailCheckBox.Checked; // this option doesnt need a press on 'search'
Expand Down Expand Up @@ -7247,7 +7254,7 @@ public void LogWindowActivated ()
SendProgressBarUpdate();
}

public void SetCellSelectionMode (bool isCellMode)
public void SetCellSelectionMode (bool isCellMode, bool updateGUI = false)
{
if (isCellMode)
{
Expand All @@ -7260,6 +7267,11 @@ public void SetCellSelectionMode (bool isCellMode)
}

_guiStateArgs.CellSelectMode = isCellMode;

if (updateGUI)
{
SendGuiStateUpdate();
}
}

public void TimeshiftEnabled (bool isEnabled, string shiftValue)
Expand Down
34 changes: 17 additions & 17 deletions src/PluginRegistry/PluginHashGenerator.Generated.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,36 +10,36 @@ public static partial class PluginValidator
{
/// <summary>
/// Gets pre-calculated SHA256 hashes for built-in plugins.
/// Generated: 2026-03-03 14:51:13 UTC
/// Generated: 2026-03-03 15:31:13 UTC
/// Configuration: Release
/// Plugin count: 22
/// </summary>
public static Dictionary<string, string> GetBuiltInPluginHashes()
{
return new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
["AutoColumnizer.dll"] = "94A2870DD326A4B873BC627AE4BB06963D3B1906C6ADBB94597FE442AFAAA9ED",
["AutoColumnizer.dll"] = "22B0D8918CE8EC55B60E1C7F600CDE5346E84C850D0F101A708938C0A9D28B84",
["BouncyCastle.Cryptography.dll"] = "E5EEAF6D263C493619982FD3638E6135077311D08C961E1FE128F9107D29EBC6",
["BouncyCastle.Cryptography.dll (x86)"] = "E5EEAF6D263C493619982FD3638E6135077311D08C961E1FE128F9107D29EBC6",
["CsvColumnizer.dll"] = "4723E306C5148A3D74FDA1892B1F0EBF8838E08C87E75D7210F566FFE2C76784",
["CsvColumnizer.dll (x86)"] = "4723E306C5148A3D74FDA1892B1F0EBF8838E08C87E75D7210F566FFE2C76784",
["DefaultPlugins.dll"] = "19CE5C9F946A3741FFC388BF6FF49346B950B22FD7A78D456ECAD8E87A40AF9F",
["FlashIconHighlighter.dll"] = "FE12290FE581C9FEA1BA8DC6C8AB2FB5E73B6B3F9F4B2B663C06DEC6B157CDD1",
["GlassfishColumnizer.dll"] = "4EF6C6D0B0C4A861E87CBC69735B56AA139C4BE474D54AF5B72703E200AA50CA",
["JsonColumnizer.dll"] = "302C146435BA73D9D0C4DA408D88E5082D1528FF987CDBE54BC7B49EBA7B784D",
["JsonCompactColumnizer.dll"] = "ED6FF92F711F51B82C0269FF6967E5165AA781CDBFFFE73252840AF6345AF7B5",
["Log4jXmlColumnizer.dll"] = "FB3142052E4C952497D7340747CAC6CD0F631120C91850C3E27BC94FFD9BF0B4",
["LogExpert.Core.dll"] = "AFF90A430B5EB9D61B9C88DC7E15597D9407956EA4F926C77F76660BA23E694F",
["LogExpert.Resources.dll"] = "D629EE9BDDABFDD1C60D75F8EAA56D1CDDE62774BAB6DFB2DE316E53D6373ADC",
["CsvColumnizer.dll"] = "0F221FD603B46799D489B082715273EB9C3037127F0587EA3C2E64B4A55C79EF",
["CsvColumnizer.dll (x86)"] = "0F221FD603B46799D489B082715273EB9C3037127F0587EA3C2E64B4A55C79EF",
["DefaultPlugins.dll"] = "8DAB8BFB8A49F70721C056B528376BF5FA780984E867970D12D37F4ABEFA511D",
["FlashIconHighlighter.dll"] = "67743542678B2FCC7E640D62D7A37982511C35331A019B5512E3CD130DE36005",
["GlassfishColumnizer.dll"] = "FE72016523E48DED2AE02A0B8846237126A0EF737447BDE163DE6D7FA09D609A",
["JsonColumnizer.dll"] = "467AEFF4EF4C7316AD62EDA83EC61CE9D997868C728DAD565036A6DA5924503B",
["JsonCompactColumnizer.dll"] = "0941BC5EBC513895C4A3614ABF0BCA91C9F7178FEA9BFB456EBA73875E60F52F",
["Log4jXmlColumnizer.dll"] = "223F858848286A6E813674493DF4C5436DA150A22B3C0F3BDFB9F0C0645C4C2B",
["LogExpert.Core.dll"] = "1F9EE97286307D8DCAFE86B6CEE57B5E3A78D112CA6EFBD0A40BA9A0D66C7849",
["LogExpert.Resources.dll"] = "20421EBFAF11D184D7BC838D87376400D7BD2F6F6F6AAB40AA66A28359D27C61",
["Microsoft.Extensions.DependencyInjection.Abstractions.dll"] = "67FA4325000DB017DC0C35829B416F024F042D24EFB868BCF17A895EE6500A93",
["Microsoft.Extensions.DependencyInjection.Abstractions.dll (x86)"] = "67FA4325000DB017DC0C35829B416F024F042D24EFB868BCF17A895EE6500A93",
["Microsoft.Extensions.Logging.Abstractions.dll"] = "BB853130F5AFAF335BE7858D661F8212EC653835100F5A4E3AA2C66A4D4F685D",
["Microsoft.Extensions.Logging.Abstractions.dll (x86)"] = "BB853130F5AFAF335BE7858D661F8212EC653835100F5A4E3AA2C66A4D4F685D",
["RegexColumnizer.dll"] = "1AF8EF852B060D69EFD9B57BDE155EE70D9682AC220899DE773652BE6E74C2E7",
["SftpFileSystem.dll"] = "BE8143A21E46FAF8521B865FC4CBDE39D51B2BEB276901E78AE1C10FA6E24BE2",
["SftpFileSystem.dll (x86)"] = "8EAB50EB4A72A23726063F8935A916E9E96F3BB793A24E5AEB3336B127F7E69F",
["SftpFileSystem.Resources.dll"] = "54561A5E402D3C020CEB224E9E950208E1F9FC75AC06B421059FE8CC8784785E",
["SftpFileSystem.Resources.dll (x86)"] = "54561A5E402D3C020CEB224E9E950208E1F9FC75AC06B421059FE8CC8784785E",
["RegexColumnizer.dll"] = "8B0B6CCD1527203874D9AB3CC8213AFAB002183088478780816DB6A9A7360D69",
["SftpFileSystem.dll"] = "1D329D6B7CC40D91C3AE630E82A0EE8E3E07F2EC51C131C0B6C6B7D577E8AD93",
["SftpFileSystem.dll (x86)"] = "979E99CE684AE144605C4BD7E00EFD7D48A61BA82428DEE6F657C9BB0C4AE0CE",
["SftpFileSystem.Resources.dll"] = "21BB198D10368D23E18D103BC07092730C4231DEA66F2640FABD70E9C8FADFA9",
["SftpFileSystem.Resources.dll (x86)"] = "21BB198D10368D23E18D103BC07092730C4231DEA66F2640FABD70E9C8FADFA9",

};
}
Expand Down