Skip to content

Commit 1387142

Browse files
authored
Merge pull request #534 from LogExperts/518-allow-to-persist-cell-select-mode-per-file
518 allow to persist cell select mode per file
2 parents 3c30bc8 + edbd208 commit 1387142

4 files changed

Lines changed: 39 additions & 19 deletions

File tree

src/LogExpert.Core/Classes/Persister/PersistenceData.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ public class PersistenceData
4646

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

49+
/// <summary>
50+
/// Selection mode for Cells
51+
/// Default: false (FullRowSelect mode)
52+
/// </summary>
53+
public bool CellSelectMode { get; set; }
54+
4955
public int FirstDisplayedLine { get; set; } = -1;
5056

5157
public bool FollowTail { get; set; } = true;

src/LogExpert.Persister.Tests/PersisterTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,8 @@ public void RoundTrip_WithApplicationStartupDir_PreservesAllData ()
357357
MultiFile = true,
358358
MultiFilePattern = "test*.log",
359359
MultiFileMaxDays = 7,
360-
LineCount = 1000
360+
LineCount = 1000,
361+
CellSelectMode = true
361362
};
362363

363364
// Act
@@ -377,6 +378,7 @@ public void RoundTrip_WithApplicationStartupDir_PreservesAllData ()
377378
Assert.That(loadedData.MultiFilePattern, Is.EqualTo(originalData.MultiFilePattern), "MultiFilePattern should match");
378379
Assert.That(loadedData.MultiFileMaxDays, Is.EqualTo(originalData.MultiFileMaxDays), "MultiFileMaxDays should match");
379380
Assert.That(loadedData.LineCount, Is.EqualTo(originalData.LineCount), "LineCount should match");
381+
Assert.That(loadedData.CellSelectMode, Is.EqualTo(originalData.CellSelectMode), "CellSelectMode should match");
380382
}
381383

382384
[Test]

src/LogExpert.UI/Controls/LogWindow/LogWindow.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2462,6 +2462,8 @@ private bool LoadPersistenceOptions ()
24622462
AdjustHighlightSplitterWidth();
24632463
SetCurrentHighlightGroup(persistenceData.HighlightGroupName);
24642464

2465+
SetCellSelectionMode(persistenceData.CellSelectMode, true);
2466+
24652467
if (persistenceData.MultiFileNames.Count > 0)
24662468
{
24672469
//_logger.Info($"Detected MultiFile name list in persistence options");
@@ -2571,6 +2573,8 @@ private void LoadPersistenceData ()
25712573
// FirstDisplayedScrollingRowIndex calculates sometimes the wrong scrolling ranges???
25722574
}
25732575

2576+
SetCellSelectionMode(persistenceData.CellSelectMode, true);
2577+
25742578
if (Preferences.SaveFilters)
25752579
{
25762580
RestoreFilters(persistenceData);
@@ -6293,11 +6297,14 @@ public PersistenceData GetPersistenceData ()
62936297
FilterAdvanced = !advancedFilterSplitContainer.Panel1Collapsed,
62946298
FilterPosition = splitContainerLogWindow.SplitterDistance,
62956299
FollowTail = _guiStateArgs.FollowTail,
6300+
CellSelectMode = _guiStateArgs.CellSelectMode,
62966301
FileName = FileName,
62976302
TabName = Text,
62986303
SessionFileName = SessionFileName,
62996304
Columnizer = CurrentColumnizer,
63006305
LineCount = _logFileReader.LineCount
6306+
6307+
63016308
};
63026309

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

7250-
public void SetCellSelectionMode (bool isCellMode)
7257+
public void SetCellSelectionMode (bool isCellMode, bool updateGUI = false)
72517258
{
72527259
if (isCellMode)
72537260
{
@@ -7260,6 +7267,11 @@ public void SetCellSelectionMode (bool isCellMode)
72607267
}
72617268

72627269
_guiStateArgs.CellSelectMode = isCellMode;
7270+
7271+
if (updateGUI)
7272+
{
7273+
SendGuiStateUpdate();
7274+
}
72637275
}
72647276

72657277
public void TimeshiftEnabled (bool isEnabled, string shiftValue)

src/PluginRegistry/PluginHashGenerator.Generated.cs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,36 +10,36 @@ public static partial class PluginValidator
1010
{
1111
/// <summary>
1212
/// Gets pre-calculated SHA256 hashes for built-in plugins.
13-
/// Generated: 2026-03-03 14:51:13 UTC
13+
/// Generated: 2026-03-03 15:31:13 UTC
1414
/// Configuration: Release
1515
/// Plugin count: 22
1616
/// </summary>
1717
public static Dictionary<string, string> GetBuiltInPluginHashes()
1818
{
1919
return new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
2020
{
21-
["AutoColumnizer.dll"] = "94A2870DD326A4B873BC627AE4BB06963D3B1906C6ADBB94597FE442AFAAA9ED",
21+
["AutoColumnizer.dll"] = "22B0D8918CE8EC55B60E1C7F600CDE5346E84C850D0F101A708938C0A9D28B84",
2222
["BouncyCastle.Cryptography.dll"] = "E5EEAF6D263C493619982FD3638E6135077311D08C961E1FE128F9107D29EBC6",
2323
["BouncyCastle.Cryptography.dll (x86)"] = "E5EEAF6D263C493619982FD3638E6135077311D08C961E1FE128F9107D29EBC6",
24-
["CsvColumnizer.dll"] = "4723E306C5148A3D74FDA1892B1F0EBF8838E08C87E75D7210F566FFE2C76784",
25-
["CsvColumnizer.dll (x86)"] = "4723E306C5148A3D74FDA1892B1F0EBF8838E08C87E75D7210F566FFE2C76784",
26-
["DefaultPlugins.dll"] = "19CE5C9F946A3741FFC388BF6FF49346B950B22FD7A78D456ECAD8E87A40AF9F",
27-
["FlashIconHighlighter.dll"] = "FE12290FE581C9FEA1BA8DC6C8AB2FB5E73B6B3F9F4B2B663C06DEC6B157CDD1",
28-
["GlassfishColumnizer.dll"] = "4EF6C6D0B0C4A861E87CBC69735B56AA139C4BE474D54AF5B72703E200AA50CA",
29-
["JsonColumnizer.dll"] = "302C146435BA73D9D0C4DA408D88E5082D1528FF987CDBE54BC7B49EBA7B784D",
30-
["JsonCompactColumnizer.dll"] = "ED6FF92F711F51B82C0269FF6967E5165AA781CDBFFFE73252840AF6345AF7B5",
31-
["Log4jXmlColumnizer.dll"] = "FB3142052E4C952497D7340747CAC6CD0F631120C91850C3E27BC94FFD9BF0B4",
32-
["LogExpert.Core.dll"] = "AFF90A430B5EB9D61B9C88DC7E15597D9407956EA4F926C77F76660BA23E694F",
33-
["LogExpert.Resources.dll"] = "D629EE9BDDABFDD1C60D75F8EAA56D1CDDE62774BAB6DFB2DE316E53D6373ADC",
24+
["CsvColumnizer.dll"] = "0F221FD603B46799D489B082715273EB9C3037127F0587EA3C2E64B4A55C79EF",
25+
["CsvColumnizer.dll (x86)"] = "0F221FD603B46799D489B082715273EB9C3037127F0587EA3C2E64B4A55C79EF",
26+
["DefaultPlugins.dll"] = "8DAB8BFB8A49F70721C056B528376BF5FA780984E867970D12D37F4ABEFA511D",
27+
["FlashIconHighlighter.dll"] = "67743542678B2FCC7E640D62D7A37982511C35331A019B5512E3CD130DE36005",
28+
["GlassfishColumnizer.dll"] = "FE72016523E48DED2AE02A0B8846237126A0EF737447BDE163DE6D7FA09D609A",
29+
["JsonColumnizer.dll"] = "467AEFF4EF4C7316AD62EDA83EC61CE9D997868C728DAD565036A6DA5924503B",
30+
["JsonCompactColumnizer.dll"] = "0941BC5EBC513895C4A3614ABF0BCA91C9F7178FEA9BFB456EBA73875E60F52F",
31+
["Log4jXmlColumnizer.dll"] = "223F858848286A6E813674493DF4C5436DA150A22B3C0F3BDFB9F0C0645C4C2B",
32+
["LogExpert.Core.dll"] = "1F9EE97286307D8DCAFE86B6CEE57B5E3A78D112CA6EFBD0A40BA9A0D66C7849",
33+
["LogExpert.Resources.dll"] = "20421EBFAF11D184D7BC838D87376400D7BD2F6F6F6AAB40AA66A28359D27C61",
3434
["Microsoft.Extensions.DependencyInjection.Abstractions.dll"] = "67FA4325000DB017DC0C35829B416F024F042D24EFB868BCF17A895EE6500A93",
3535
["Microsoft.Extensions.DependencyInjection.Abstractions.dll (x86)"] = "67FA4325000DB017DC0C35829B416F024F042D24EFB868BCF17A895EE6500A93",
3636
["Microsoft.Extensions.Logging.Abstractions.dll"] = "BB853130F5AFAF335BE7858D661F8212EC653835100F5A4E3AA2C66A4D4F685D",
3737
["Microsoft.Extensions.Logging.Abstractions.dll (x86)"] = "BB853130F5AFAF335BE7858D661F8212EC653835100F5A4E3AA2C66A4D4F685D",
38-
["RegexColumnizer.dll"] = "1AF8EF852B060D69EFD9B57BDE155EE70D9682AC220899DE773652BE6E74C2E7",
39-
["SftpFileSystem.dll"] = "BE8143A21E46FAF8521B865FC4CBDE39D51B2BEB276901E78AE1C10FA6E24BE2",
40-
["SftpFileSystem.dll (x86)"] = "8EAB50EB4A72A23726063F8935A916E9E96F3BB793A24E5AEB3336B127F7E69F",
41-
["SftpFileSystem.Resources.dll"] = "54561A5E402D3C020CEB224E9E950208E1F9FC75AC06B421059FE8CC8784785E",
42-
["SftpFileSystem.Resources.dll (x86)"] = "54561A5E402D3C020CEB224E9E950208E1F9FC75AC06B421059FE8CC8784785E",
38+
["RegexColumnizer.dll"] = "8B0B6CCD1527203874D9AB3CC8213AFAB002183088478780816DB6A9A7360D69",
39+
["SftpFileSystem.dll"] = "1D329D6B7CC40D91C3AE630E82A0EE8E3E07F2EC51C131C0B6C6B7D577E8AD93",
40+
["SftpFileSystem.dll (x86)"] = "979E99CE684AE144605C4BD7E00EFD7D48A61BA82428DEE6F657C9BB0C4AE0CE",
41+
["SftpFileSystem.Resources.dll"] = "21BB198D10368D23E18D103BC07092730C4231DEA66F2640FABD70E9C8FADFA9",
42+
["SftpFileSystem.Resources.dll (x86)"] = "21BB198D10368D23E18D103BC07092730C4231DEA66F2640FABD70E9C8FADFA9",
4343

4444
};
4545
}

0 commit comments

Comments
 (0)