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
10 changes: 2 additions & 8 deletions src/ColumnizerLib/ILogLineColumnizerCallback.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,12 @@ public interface ILogLineColumnizerCallback
#region Public methods

/// <summary>
/// This function returns the current line number. That is the line number of the log line
/// This property returns the current line number. That is the line number of the log line
/// a ILogLineColumnizer function is called for (e.g. the line that has to be painted).
/// </summary>
/// <returns>The current line number starting at 0</returns>
int GetLineNum ();
int LineNum { get; }

/// <summary>
/// This function sets the current line number. That is the line number of the log line
/// a ILogLineColumnizer function is called for (e.g. the line that has to be painted).
/// </summary>
/// <param name="lineNum">line number to be set</param>
void SetLineNum (int lineNum);
/// <summary>
/// Returns the full file name (path + name) of the current log file.
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion src/DefaultPlugins/ProcessLauncher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public void Execute (string keyword, string param, ILogExpertCallback callback,
parameters = parameters.Replace("%F", callback.GetFileName(), StringComparison.Ordinal);
parameters = parameters.Replace("%K", keyword, StringComparison.Ordinal);

var lineNumber = callback.GetLineNum(); //Line Numbers start at 0, but are displayed (+1)
var lineNumber = callback.LineNum; //Line Numbers start at 0, but are displayed (+1)
var logline = callback.GetLogLine(lineNumber).FullLine;
parameters = parameters.Replace("%L", string.Empty + lineNumber, System.StringComparison.Ordinal);
parameters = parameters.Replace("%T", callback.GetTabTitle(), StringComparison.Ordinal);
Expand Down
53 changes: 19 additions & 34 deletions src/LogExpert.Core/Callback/ColumnizerCallback.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,69 +2,54 @@

namespace LogExpert.Core.Callback;

public class ColumnizerCallback : ILogLineColumnizerCallback, IAutoLogLineColumnizerCallback
public class ColumnizerCallback(ILogWindow logWindow) : ILogLineColumnizerCallback, IAutoLogLineColumnizerCallback, ICloneable
{
#region cTor

public ColumnizerCallback (ILogWindow logWindow)
{
LogWindow = logWindow;
}

private ColumnizerCallback (ColumnizerCallback original)
{
LogWindow = original.LogWindow;
LineNum = original.GetLineNum();
}
#region Fields
private readonly ILogWindow _logWindow = logWindow;

#endregion

#region Properties

public int LineNum { get; set; }

protected ILogWindow LogWindow { get; set; }

protected IPluginRegistry PluginRegistry { get; set; }

#endregion

#region Public methods
#region cTor

public ColumnizerCallback CreateCopy ()
private ColumnizerCallback(ColumnizerCallback original) : this(original._logWindow)
{
return new ColumnizerCallback(this);
LineNum = original.LineNum;
}

public int GetLineNum ()
{
return LineNum;
}
#endregion

#region Public methods

public string GetFileName ()
public object Clone()
{
return LogWindow.GetCurrentFileName(GetLineNum());
return new ColumnizerCallback(this);
}

public ILogLine GetLogLine (int lineNum)
public string GetFileName()
{
return LogWindow.GetLine(lineNum);
return _logWindow.GetCurrentFileName(LineNum);
}

public IList<ILogLineColumnizer> GetRegisteredColumnizers ()
public ILogLine GetLogLine(int lineNum)
{
return PluginRegistry.RegisteredColumnizers;
return _logWindow.GetLine(lineNum);
}

public int GetLineCount ()
public int GetLineCount()
{
return LogWindow.LogFileReader.LineCount;
return _logWindow.LogFileReader.LineCount;
}

public void SetLineNum (int lineNum)
public void SetLineNum(int lineNum)
{
LineNum = lineNum;
}

#endregion
}
}
4 changes: 1 addition & 3 deletions src/LogExpert.Core/Classes/Filter/FilterStarter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,7 @@ private Filter DoWork (FilterParams filterParams, int startLine, int maxCount, P

// Give every thread own copies of ColumnizerCallback and FilterParams, because the state of the objects changes while filtering
FilterParams threadFilterParams = filterParams.CloneWithCurrentColumnizer();
ColumnizerCallback threadColumnizerCallback = _callback.CreateCopy();

Filter filter = new(threadColumnizerCallback);
Filter filter = new((ColumnizerCallback)_callback.Clone());
lock (_filterWorkerList)
{
_filterWorkerList.Add(filter);
Expand Down
2 changes: 1 addition & 1 deletion src/LogExpert.UI/Controls/LogWindow/ColumnCache.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ internal class ColumnCache

internal IColumnizedLogLine GetColumnsForLine (LogfileReader logFileReader, int lineNumber, ILogLineColumnizer columnizer, ColumnizerCallback columnizerCallback)
{
if (_lastColumnizer != columnizer || (_lastLineNumber != lineNumber && _cachedColumns != null) || columnizerCallback.GetLineNum() != lineNumber)
if (_lastColumnizer != columnizer || (_lastLineNumber != lineNumber && _cachedColumns != null) || columnizerCallback.LineNum != lineNumber)
{
_lastColumnizer = columnizer;
_lastLineNumber = lineNumber;
Expand Down
6 changes: 3 additions & 3 deletions src/LogExpert.UI/Controls/LogWindow/LogExpertCallback.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ internal class LogExpertCallback (LogWindow logWindow) : ColumnizerCallback(logW

public void AddTempFileTab (string fileName, string title)
{
LogWindow.AddTempFileTab(fileName, title);
logWindow.AddTempFileTab(fileName, title);
}

public void AddPipedTab (IList<LineEntry> lineEntryList, string title)
{
LogWindow.WritePipeTab(lineEntryList, title);
logWindow.WritePipeTab(lineEntryList, title);
}

public string GetTabTitle ()
{
return LogWindow.Text;
return logWindow.Text;
}

#endregion
Expand Down
Loading