diff --git a/TODOs.txt b/TODOs.txt deleted file mode 100644 index cf11bfa9..00000000 --- a/TODOs.txt +++ /dev/null @@ -1,2 +0,0 @@ -Add Copilot Instruction txt -Add Copilot HELP md for description what it does \ No newline at end of file diff --git a/build/Build.cs b/build/Build.cs index 0e700887..09c9a979 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -34,7 +34,7 @@ partial class Build : NukeBuild /// - JetBrains Rider https://nuke.build/rider /// - Microsoft VisualStudio https://nuke.build/visualstudio /// - Microsoft VSCode https://nuke.build/vscode - public static int Main() => Execute(x => x.Test); + public static int Main () => Execute(x => x.Test); [Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")] readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release; @@ -78,7 +78,7 @@ Version Version patch = AppVeyor.Instance.BuildNumber; } - return new Version(1, 12, 0, patch); + return new Version(1, 20, 0, patch); } } @@ -119,7 +119,7 @@ Version Version ChocolateyDirectory / $"logexpert.{VersionString}.nupkg" ]; - protected override void OnBuildInitialized() + protected override void OnBuildInitialized () { SetVariable("DOTNET_CLI_TELEMETRY_OPTOUT", "1"); @@ -479,7 +479,7 @@ protected override void OnBuildInitialized() logExpertDocuments.DeleteDirectory(); }); - private void ExecuteInnoSetup(AbsolutePath innoPath) + private void ExecuteInnoSetup (AbsolutePath innoPath) { Process proc = new(); @@ -501,12 +501,12 @@ private void ExecuteInnoSetup(AbsolutePath innoPath) } } - private string ReplaceVersionMatch(Match match, string replacement) + private string ReplaceVersionMatch (Match match, string replacement) { return $"{match.Groups[1]}{replacement}{match.Groups[3]}"; } - private void TransformTemplateFile(AbsolutePath path, bool deleteTemplate) + private void TransformTemplateFile (AbsolutePath path, bool deleteTemplate) { string text = path.ReadAllText(); text = text.Replace("##version##", VersionString); @@ -520,17 +520,17 @@ private void TransformTemplateFile(AbsolutePath path, bool deleteTemplate) } [GeneratedRegex(@"(\[assembly: AssemblyInformationalVersion\("")([^""]*)(""\)\])")] - private static partial Regex AssemblyInformationalVersion(); + private static partial Regex AssemblyInformationalVersion (); [GeneratedRegex(@"(\[assembly: AssemblyVersion\("")([^""]*)(""\)\])")] - private static partial Regex AssemblyVersion(); + private static partial Regex AssemblyVersion (); [GeneratedRegex(@"(\[assembly: AssemblyConfiguration\()(""[^""]*"")(\)\])")] - private static partial Regex AssemblyConfiguration(); + private static partial Regex AssemblyConfiguration (); [GeneratedRegex(@"(\[assembly: AssemblyFileVersion\("")([^""]*)(""\)\])")] - private static partial Regex AssemblyFileVersion(); + private static partial Regex AssemblyFileVersion (); [GeneratedRegex(@"\w\w{2}[_]p?[tso]?[erzliasx]+[_rhe]{5}", RegexOptions.IgnoreCase, "en-GB")] - private static partial Regex SFTPPlugin(); + private static partial Regex SFTPPlugin (); } diff --git a/src/ColumnizerLib/ColumnizerLib.nuspec b/src/ColumnizerLib/ColumnizerLib.nuspec index 0a242fbf..25392f89 100644 --- a/src/ColumnizerLib/ColumnizerLib.nuspec +++ b/src/ColumnizerLib/ColumnizerLib.nuspec @@ -6,13 +6,18 @@ LogExpert ColumnizerLib Zarunbal, Hagen Raab, Hirogen, RandallFlagg and others Zarunbal, Hirogen - MIT - https://github.com/LogExperts/LogExpert + + https://github.com/LogExperts/LogExpert + false https://github.com/LogExperts/LogExpert/issues - https://github.com/LogExperts/LogExpert/releases/tag/v$version$ + https://github.com/LogExperts/LogExpert/releases/tag/v.$version$ Columnizer Lib for Logexpert plugins + docs\README.md Copyright 2025 LogExpert Columnizer + + + \ No newline at end of file diff --git a/src/ColumnizerLib/IContextMenuEntry.cs b/src/ColumnizerLib/IContextMenuEntry.cs index bc59df1e..0239998a 100644 --- a/src/ColumnizerLib/IContextMenuEntry.cs +++ b/src/ColumnizerLib/IContextMenuEntry.cs @@ -1,6 +1,3 @@ -using System.Collections.Generic; - - namespace LogExpert; /// @@ -21,7 +18,7 @@ public interface IContextMenuEntry /// Your implementation can control whether LogExpert will show a menu entry by returning /// an appropriate value.

///
- /// A list containing all selected line numbers. + /// A list containing all selected line numbers. /// The currently selected Columnizer. You can use it to split log lines, /// if necessary. /// The callback interface implemented by LogExpert. You can use the functions @@ -35,23 +32,23 @@ public interface IContextMenuEntry ///
  • null: No menu entry is displayed.
  • /// /// - string GetMenuText(IList lines, ILogLineColumnizer columnizer, ILogExpertCallback callback); + string GetMenuText (IList loglines, ILogLineColumnizer columnizer, ILogExpertCallback callback); - string GetMenuText(int linesCount, ILogLineColumnizer columnizer, ILogLine line); + string GetMenuText (int linesCount, ILogLineColumnizer columnizer, ILogLine logline); /// /// This function is called from LogExpert if the menu entry is choosen by the user.

    /// Note that this function is called from the GUI thread. So try to avoid time consuming operations. ///
    - /// A list containing all selected line numbers. + /// A list containing all selected line numbers. /// The currently selected Columnizer. You can use it to split log lines, /// if necessary. /// The callback interface implemented by LogExpert. You can use the functions /// for retrieving log lines or pass it along to functions of the Columnizer if needed. - void MenuSelected(IList lines, ILogLineColumnizer columnizer, ILogExpertCallback callback); + void MenuSelected (IList loglines, ILogLineColumnizer columnizer, ILogExpertCallback callback); - void MenuSelected(int linesCount, ILogLineColumnizer columnizer, ILogLine line); + void MenuSelected (int linesCount, ILogLineColumnizer columnizer, ILogLine logline); #endregion } \ No newline at end of file diff --git a/src/CsvColumnizer/CsvColumnizer.csproj b/src/CsvColumnizer/CsvColumnizer.csproj index 4e54cc43..005a350a 100644 --- a/src/CsvColumnizer/CsvColumnizer.csproj +++ b/src/CsvColumnizer/CsvColumnizer.csproj @@ -19,4 +19,24 @@ + + + PublicResXFileCodeGenerator + Resources.Designer.cs + CsvColumnizer + + + + Resources.resx + + + + + + True + True + Resources.resx + + + diff --git a/src/CsvColumnizer/CsvColumnizerConfigDlg.cs b/src/CsvColumnizer/CsvColumnizerConfigDlg.cs index 61d421f9..919b23fc 100644 --- a/src/CsvColumnizer/CsvColumnizerConfigDlg.cs +++ b/src/CsvColumnizer/CsvColumnizerConfigDlg.cs @@ -1,7 +1,3 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - namespace CsvColumnizer; public partial class CsvColumnizerConfigDlg : Form @@ -14,7 +10,7 @@ public partial class CsvColumnizerConfigDlg : Form #region cTor - public CsvColumnizerConfigDlg(CsvColumnizerConfig config) + public CsvColumnizerConfigDlg (CsvColumnizerConfig config) { SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); @@ -22,15 +18,33 @@ public CsvColumnizerConfigDlg(CsvColumnizerConfig config) _config = config; InitializeComponent(); + + ApplyResources(); + FillValues(); ResumeLayout(); } + private void ApplyResources () + { + Text = Resources.CsvColumnizerConfigDlg_UI_Title; + label1.Text = Resources.CsvColumnizerConfigDlg_UI_Label_DelimiterChar; + labelQuoteChar.Text = Resources.CsvColumnizerConfigDlg_UI_Label_QuoteChar; + labelEscapeChar.Text = Resources.CsvColumnizerConfigDlg_UI_Label_EscapeChar; + checkBoxEscape.Text = Resources.CsvColumnizerConfigDlg_UI_CheckBox_UseEscapeChars; + labelCommentChar.Text = Resources.CsvColumnizerConfigDlg_UI_Label_CommentChar; + labelMinColumns.Text = Resources.CsvColumnizerConfigDlg_UI_Label_MinColumns; + labelMinColumnsNoCheck.Text = Resources.CsvColumnizerConfigDlg_UI_Label_MinColumnsInfo; + checkBoxFieldNames.Text = Resources.CsvColumnizerConfigDlg_UI_CheckBox_FirstLineFieldNames; + okButton.Text = Resources.CsvColumnizerConfigDlg_UI_Button_OK; + cancelButton.Text = Resources.CsvColumnizerConfigDlg_UI_Button_Cancel; + } + #endregion #region Private Methods - private void FillValues() + private void FillValues () { delimiterTextBox.Text = _config.DelimiterChar; textBoxQuoteChar.Text = _config.QuoteChar.ToString(); @@ -42,7 +56,7 @@ private void FillValues() numericUpDownMinColumns.Value = _config.MinColumns; } - private void RetrieveValues() + private void RetrieveValues () { _config.DelimiterChar = delimiterTextBox.Text; _config.QuoteChar = textBoxQuoteChar.Text[0]; @@ -56,12 +70,12 @@ private void RetrieveValues() #region Events handler - private void OnOkButtonClick(object sender, EventArgs e) + private void OnOkButtonClick (object sender, EventArgs e) { RetrieveValues(); } - private void OnEscapeCheckBoxCheckedChanged(object sender, EventArgs e) + private void OnEscapeCheckBoxCheckedChanged (object sender, EventArgs e) { textboxEscapeChar.Enabled = checkBoxEscape.Checked; } diff --git a/src/CsvColumnizer/Resources.Designer.cs b/src/CsvColumnizer/Resources.Designer.cs new file mode 100644 index 00000000..0c520c51 --- /dev/null +++ b/src/CsvColumnizer/Resources.Designer.cs @@ -0,0 +1,162 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CsvColumnizer { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LogExpert.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + public static string CsvColumnizerConfigDlg_UI_Button_Cancel { + get { + return ResourceManager.GetString("CsvColumnizerConfigDlg_UI_Button_Cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to OK. + /// + public static string CsvColumnizerConfigDlg_UI_Button_OK { + get { + return ResourceManager.GetString("CsvColumnizerConfigDlg_UI_Button_OK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to First line contains field names. + /// + public static string CsvColumnizerConfigDlg_UI_CheckBox_FirstLineFieldNames { + get { + return ResourceManager.GetString("CsvColumnizerConfigDlg_UI_CheckBox_FirstLineFieldNames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to use escape chars. + /// + public static string CsvColumnizerConfigDlg_UI_CheckBox_UseEscapeChars { + get { + return ResourceManager.GetString("CsvColumnizerConfigDlg_UI_CheckBox_UseEscapeChars", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Comment char:. + /// + public static string CsvColumnizerConfigDlg_UI_Label_CommentChar { + get { + return ResourceManager.GetString("CsvColumnizerConfigDlg_UI_Label_CommentChar", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delimiter char:. + /// + public static string CsvColumnizerConfigDlg_UI_Label_DelimiterChar { + get { + return ResourceManager.GetString("CsvColumnizerConfigDlg_UI_Label_DelimiterChar", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Escape char:. + /// + public static string CsvColumnizerConfigDlg_UI_Label_EscapeChar { + get { + return ResourceManager.GetString("CsvColumnizerConfigDlg_UI_Label_EscapeChar", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Min columns. + /// + public static string CsvColumnizerConfigDlg_UI_Label_MinColumns { + get { + return ResourceManager.GetString("CsvColumnizerConfigDlg_UI_Label_MinColumns", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to (0 = no minimum check). + /// + public static string CsvColumnizerConfigDlg_UI_Label_MinColumnsInfo { + get { + return ResourceManager.GetString("CsvColumnizerConfigDlg_UI_Label_MinColumnsInfo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Quote char:. + /// + public static string CsvColumnizerConfigDlg_UI_Label_QuoteChar { + get { + return ResourceManager.GetString("CsvColumnizerConfigDlg_UI_Label_QuoteChar", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CSV Columnizer Configuration. + /// + public static string CsvColumnizerConfigDlg_UI_Title { + get { + return ResourceManager.GetString("CsvColumnizerConfigDlg_UI_Title", resourceCulture); + } + } + } +} diff --git a/src/CsvColumnizer/Resources.de.resx b/src/CsvColumnizer/Resources.de.resx new file mode 100644 index 00000000..a0b3b097 --- /dev/null +++ b/src/CsvColumnizer/Resources.de.resx @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + CSV-Columnizer-Konfiguration + + + Trennzeichen: + + + Anfuehrungszeichen: + + + Escape-Zeichen: + + + Escape-Zeichen verwenden + + + Kommentarzeichen: + + + Min. Spalten + + + (0 = keine Mindestpruefung) + + + Erste Zeile enthaelt Feldnamen + + + OK + + + Abbrechen + + diff --git a/src/CsvColumnizer/Resources.resx b/src/CsvColumnizer/Resources.resx new file mode 100644 index 00000000..c6646cc4 --- /dev/null +++ b/src/CsvColumnizer/Resources.resx @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + CSV Columnizer Configuration + + + Delimiter char: + + + Quote char: + + + Escape char: + + + use escape chars + + + Comment char: + + + Min columns + + + (0 = no minimum check) + + + First line contains field names + + + OK + + + Cancel + + diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 76e48ec8..f76a1211 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -17,9 +17,17 @@ false true + https://github.com/LogExperts/LogExpert + https://github.com/LogExperts/LogExpert + LogExpert, Columnizer, Logging, Windows, Winforms + git + https://github.com/LogExperts/LogExpert/releases/tag/v.1.20.0 + 1.20.0.0 true LogExpert Copyright © LogExpert 2025 + MIT + README.md false false false @@ -49,6 +57,7 @@ + diff --git a/src/JsonCompactColumnizer/JsonCompactColumnizer.csproj b/src/JsonCompactColumnizer/JsonCompactColumnizer.csproj index 48c72fcc..bd18a3cc 100644 --- a/src/JsonCompactColumnizer/JsonCompactColumnizer.csproj +++ b/src/JsonCompactColumnizer/JsonCompactColumnizer.csproj @@ -8,11 +8,11 @@ - - + - + + diff --git a/src/Log4jXmlColumnizer/Log4jXmlColumnizer.csproj b/src/Log4jXmlColumnizer/Log4jXmlColumnizer.csproj index 3008beb6..88d38b28 100644 --- a/src/Log4jXmlColumnizer/Log4jXmlColumnizer.csproj +++ b/src/Log4jXmlColumnizer/Log4jXmlColumnizer.csproj @@ -19,4 +19,24 @@ + + + + PublicResXFileCodeGenerator + Resources.Designer.cs + Log4jXmlColumnizer + + + + Resources.resx + + + + + + True + True + Resources.resx + + diff --git a/src/Log4jXmlColumnizer/Resources.Designer.cs b/src/Log4jXmlColumnizer/Resources.Designer.cs new file mode 100644 index 00000000..bd491bb3 --- /dev/null +++ b/src/Log4jXmlColumnizer/Resources.Designer.cs @@ -0,0 +1,135 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Log4jXmlColumnizer { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LogExpert.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + public static string Log4jXmlColumnizerConfigDlg_UI_Button_Cancel { + get { + return ResourceManager.GetString("Log4jXmlColumnizerConfigDlg_UI_Button_Cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to OK. + /// + public static string Log4jXmlColumnizerConfigDlg_UI_Button_OK { + get { + return ResourceManager.GetString("Log4jXmlColumnizerConfigDlg_UI_Button_OK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Convert timestamps to local time zone. + /// + public static string Log4jXmlColumnizerConfigDlg_UI_CheckBox_LocalTime { + get { + return ResourceManager.GetString("Log4jXmlColumnizerConfigDlg_UI_CheckBox_LocalTime", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Column. + /// + public static string Log4jXmlColumnizerConfigDlg_UI_ColumnHeader_Column { + get { + return ResourceManager.GetString("Log4jXmlColumnizerConfigDlg_UI_ColumnHeader_Column", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max len. + /// + public static string Log4jXmlColumnizerConfigDlg_UI_ColumnHeader_MaxLen { + get { + return ResourceManager.GetString("Log4jXmlColumnizerConfigDlg_UI_ColumnHeader_MaxLen", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to . + /// + public static string Log4jXmlColumnizerConfigDlg_UI_ColumnHeader_Visible { + get { + return ResourceManager.GetString("Log4jXmlColumnizerConfigDlg_UI_ColumnHeader_Visible", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose columns to show:. + /// + public static string Log4jXmlColumnizerConfigDlg_UI_Label_ChooseColumns { + get { + return ResourceManager.GetString("Log4jXmlColumnizerConfigDlg_UI_Label_ChooseColumns", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Log4j XML Columnizer. + /// + public static string Log4jXmlColumnizerConfigDlg_UI_Title { + get { + return ResourceManager.GetString("Log4jXmlColumnizerConfigDlg_UI_Title", resourceCulture); + } + } + } +} diff --git a/src/Log4jXmlColumnizer/Resources.de.resx b/src/Log4jXmlColumnizer/Resources.de.resx new file mode 100644 index 00000000..0a002c13 --- /dev/null +++ b/src/Log4jXmlColumnizer/Resources.de.resx @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Log4j XML Columnizer + + + Spalten zum Anzeigen auswaehlen: + + + Zeitstempel in lokale Zeitzone konvertieren + + + + Leerstring fuer Checkbox-Spalte + + + Spalte + + + Max. Laenge + + + OK + + + Abbrechen + + diff --git a/src/Log4jXmlColumnizer/Resources.resx b/src/Log4jXmlColumnizer/Resources.resx new file mode 100644 index 00000000..ef6adf3a --- /dev/null +++ b/src/Log4jXmlColumnizer/Resources.resx @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Log4j XML Columnizer + + + Choose columns to show: + + + Convert timestamps to local time zone + + + + Empty string for checkbox column header + + + Column + + + Max len + + + OK + + + Cancel + + diff --git a/src/LogExpert.Core/Config/Preferences.cs b/src/LogExpert.Core/Config/Preferences.cs index fece418d..97c8d230 100644 --- a/src/LogExpert.Core/Config/Preferences.cs +++ b/src/LogExpert.Core/Config/Preferences.cs @@ -93,6 +93,8 @@ public class Preferences public string DefaultEncoding { get; set; } + public string DefaultLanguage { get; set; } = "en-US"; + public bool FilterSync { get; set; } = true; public bool FilterTail { get; set; } = true; diff --git a/src/LogExpert.Core/EventArguments/GuiStateArgs.cs b/src/LogExpert.Core/EventArguments/GuiStateEventArgs.cs similarity index 95% rename from src/LogExpert.Core/EventArguments/GuiStateArgs.cs rename to src/LogExpert.Core/EventArguments/GuiStateEventArgs.cs index 82ccc963..d323395c 100644 --- a/src/LogExpert.Core/EventArguments/GuiStateArgs.cs +++ b/src/LogExpert.Core/EventArguments/GuiStateEventArgs.cs @@ -2,7 +2,7 @@ namespace LogExpert.Core.EventArguments; -public class GuiStateArgs : System.EventArgs +public class GuiStateEventArgs : EventArgs { #region Properties diff --git a/src/LogExpert.Core/Interface/ILogTabWindow.cs b/src/LogExpert.Core/Interface/ILogTabWindow.cs index 822d464d..7b71d10f 100644 --- a/src/LogExpert.Core/Interface/ILogTabWindow.cs +++ b/src/LogExpert.Core/Interface/ILogTabWindow.cs @@ -1,14 +1,46 @@ namespace LogExpert.Core.Interface; -//TODO: Add documentation +/// +/// Represents a log tab window that can display and manage log files. +/// public interface ILogTabWindow { + /// + /// Gets or sets the proxy for communicating with the main LogExpert application. + /// ILogExpertProxy LogExpertProxy { get; set; } + + /// + /// Gets a value indicating whether this window has been disposed. + /// bool IsDisposed { get; } + /// + /// Activates the window and brings it to the foreground. + /// void Activate (); + + /// + /// Invokes the specified delegate on the thread that owns the window's underlying handle. + /// + /// The delegate to invoke. + /// Optional parameters to pass to the delegate. + /// The return value from the delegate being invoked. object Invoke (Delegate method, params object?[]? objects); + + /// + /// Loads the specified log files into the window. + /// + /// An array of file paths to load. void LoadFiles (string[] fileNames); + + /// + /// Sets the window to the foreground and gives it focus. + /// void SetForeground (); + + /// + /// Shows the window. + /// void Show (); } \ No newline at end of file diff --git a/src/LogExpert.Resources/LogExpert.Resources.csproj b/src/LogExpert.Resources/LogExpert.Resources.csproj index 553388a5..1337b7d9 100644 --- a/src/LogExpert.Resources/LogExpert.Resources.csproj +++ b/src/LogExpert.Resources/LogExpert.Resources.csproj @@ -2,6 +2,9 @@ net8.0 + True + False + ..\Solution Items\Key.snk @@ -23,6 +26,11 @@ + + Resources.de.resx + True + True + True True @@ -31,6 +39,10 @@ + + Resources.de.Designer.cs + PublicResXFileCodeGenerator + PublicResXFileCodeGenerator Resources.Designer.cs diff --git a/src/LogExpert.Resources/Resources.Designer.cs b/src/LogExpert.Resources/Resources.Designer.cs index fbcf8bd2..c1d20914 100644 --- a/src/LogExpert.Resources/Resources.Designer.cs +++ b/src/LogExpert.Resources/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace LogExpert { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class Resources { @@ -60,6 +60,51 @@ internal Resources() { } } + /// + /// Looks up a localized string similar to Copyright. + /// + public static string AboutBox_UI_Label_Copyright { + get { + return ResourceManager.GetString("AboutBox_UI_Label_Copyright", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Product Name. + /// + public static string AboutBox_UI_Label_ProductName { + get { + return ResourceManager.GetString("AboutBox_UI_Label_ProductName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Version. + /// + public static string AboutBox_UI_Label_Version { + get { + return ResourceManager.GetString("AboutBox_UI_Label_Version", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to https://github.com/LogExperts/LogExpert. + /// + public static string AboutBox_UI_LinkLabel_URL { + get { + return ResourceManager.GetString("AboutBox_UI_LinkLabel_URL", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AboutBox. + /// + public static string AboutBox_UI_Text { + get { + return ResourceManager.GetString("AboutBox_UI_Text", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -70,6 +115,24 @@ public static System.Drawing.Bitmap Add { } } + /// + /// Looks up a localized string similar to Show this message only once?. + /// + public static string AllowOnlyOneInstanceErrorDialog_UI_CheckBox_checkBoxIgnoreMessage { + get { + return ResourceManager.GetString("AllowOnlyOneInstanceErrorDialog_UI_CheckBox_checkBoxIgnoreMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Only one instance allowed, uncheck "View Settings => Allow only 1 Instances" to start multiple instances!. + /// + public static string AllowOnlyOneInstanceErrorDialog_UI_Label_labelErrorText { + get { + return ResourceManager.GetString("AllowOnlyOneInstanceErrorDialog_UI_Label_labelErrorText", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -180,6 +243,15 @@ public static System.Drawing.Bitmap Bookmark_remove { } } + /// + /// Looks up a localized string similar to Bookmark comment. + /// + public static string BookmarkCommentDlg_UI_Title { + get { + return ResourceManager.GetString("BookmarkCommentDlg_UI_Title", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -190,6 +262,78 @@ public static System.Drawing.Bitmap Bookmarks { } } + /// + /// Looks up a localized string similar to Show comment column. + /// + public static string BookmarkWindow_UI_CheckBox_ShowCommentColumn { + get { + return ResourceManager.GetString("BookmarkWindow_UI_CheckBox_ShowCommentColumn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bookmark Comment. + /// + public static string BookmarkWindow_UI_DataGridColumn_HeaderText { + get { + return ResourceManager.GetString("BookmarkWindow_UI_DataGridColumn_HeaderText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bookmark comment:. + /// + public static string BookmarkWindow_UI_Label_Comment { + get { + return ResourceManager.GetString("BookmarkWindow_UI_Label_Comment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delete bookmarks(s). + /// + public static string BookmarkWindow_UI_MenuItem_DeleteBookmarks { + get { + return ResourceManager.GetString("BookmarkWindow_UI_MenuItem_DeleteBookmarks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No bookmarks in current file. + /// + public static string BookmarkWindow_UI_NoBookmarksInCurrentFile { + get { + return ResourceManager.GetString("BookmarkWindow_UI_NoBookmarksInCurrentFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Really remove bookmark comments for selected lines?. + /// + public static string BookmarkWindow_UI_ReallyRemoveBookmarkCommentsForSelectedLines { + get { + return ResourceManager.GetString("BookmarkWindow_UI_ReallyRemoveBookmarkCommentsForSelectedLines", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bookmarks. + /// + public static string BookmarkWindow_UI_Title { + get { + return ResourceManager.GetString("BookmarkWindow_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove comment(s). + /// + public static string BookmarkWindow_UI_ToolStripMenuItem_RemoveComments { + get { + return ResourceManager.GetString("BookmarkWindow_UI_ToolStripMenuItem_RemoveComments", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -200,6 +344,24 @@ public static System.Drawing.Bitmap Check_circle { } } + /// + /// Looks up a localized string similar to Icon file.... + /// + public static string ChooseIconDialog_UI_Button_ChooseIconFile { + get { + return ResourceManager.GetString("ChooseIconDialog_UI_Button_ChooseIconFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose Icon. + /// + public static string ChooseIconDialog_UI_Text { + get { + return ResourceManager.GetString("ChooseIconDialog_UI_Text", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -210,6 +372,51 @@ public static System.Drawing.Bitmap Close { } } + /// + /// Looks up a localized string similar to Custom. + /// + public static string ColorComboBox_UI_ColorComboBox_Text_Custom { + get { + return ResourceManager.GetString("ColorComboBox_UI_ColorComboBox_Text_Custom", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Timestamp selector. + /// + public static string DateTimeDragControl_UI_ContextMenuStrip_TimestampSelector { + get { + return ResourceManager.GetString("DateTimeDragControl_UI_ContextMenuStrip_TimestampSelector", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Drag horizontal. + /// + public static string DateTimeDragControl_UI_ToolStripItem_toolStripItemHorizontalDrag { + get { + return ResourceManager.GetString("DateTimeDragControl_UI_ToolStripItem_toolStripItemHorizontalDrag", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Drag vertical inverted. + /// + public static string DateTimeDragControl_UI_ToolStripItem_toolStripItemInvertedDrag { + get { + return ResourceManager.GetString("DateTimeDragControl_UI_ToolStripItem_toolStripItemInvertedDrag", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Drag vertical. + /// + public static string DateTimeDragControl_UI_ToolStripItem_toolStripItemVerticalDrag { + get { + return ResourceManager.GetString("DateTimeDragControl_UI_ToolStripItem_toolStripItemVerticalDrag", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -230,6 +437,105 @@ public static System.Drawing.Bitmap Delete { } } + /// + /// Looks up a localized string similar to Cannot parse Java stack trace line. + /// + public static string Eminus_UI_CannotParseJavaStackTraceLine { + get { + return ResourceManager.GetString("Eminus_UI_CannotParseJavaStackTraceLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Load class in Eclipse. + /// + public static string Eminus_UI_GetMenuText_DISABLEDLoadClassInEclipse { + get { + return ResourceManager.GetString("Eminus_UI_GetMenuText_DISABLEDLoadClassInEclipse", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Load class in Eclipse. + /// + public static string Eminus_UI_GetMenuText_LoadClassInEclipse { + get { + return ResourceManager.GetString("Eminus_UI_GetMenuText_LoadClassInEclipse", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enter the host and the port where the Eclipse plugin is listening to. If a password is configured, enter the password too.. + /// + public static string EminusConfigDlg_UI_Label_Description { + get { + return ResourceManager.GetString("EminusConfigDlg_UI_Label_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Host. + /// + public static string EminusConfigDlg_UI_Label_Host { + get { + return ResourceManager.GetString("EminusConfigDlg_UI_Label_Host", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Password. + /// + public static string EminusConfigDlg_UI_Label_Password { + get { + return ResourceManager.GetString("EminusConfigDlg_UI_Label_Password", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Port. + /// + public static string EminusConfigDlg_UI_Label_Port { + get { + return ResourceManager.GetString("EminusConfigDlg_UI_Label_Port", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Eclipse Remote Navigation. + /// + public static string EminusConfigDlg_UI_Text { + get { + return ResourceManager.GetString("EminusConfigDlg_UI_Text", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy to clipboard. + /// + public static string ExceptionWindow_UI_Button_CopyToClipboard { + get { + return ResourceManager.GetString("ExceptionWindow_UI_Button_CopyToClipboard", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to An unhandled error has occurred. Please report to the developer.. + /// + public static string ExceptionWindow_UI_Label_ErrorMessage { + get { + return ResourceManager.GetString("ExceptionWindow_UI_Label_ErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to LogExpert Error. + /// + public static string ExceptionWindow_UI_Title { + get { + return ResourceManager.GetString("ExceptionWindow_UI_Title", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -271,72 +577,4761 @@ public static System.Drawing.Bitmap Filter { } /// - /// Looks up a localized resource of type System.Drawing.Bitmap. + /// Looks up a localized string similar to Exact match. /// - public static System.Drawing.Bitmap Folder_open { + public static string FilterColumnChooser_UI_CheckBox_ExactMatch { get { - object obj = ResourceManager.GetObject("Folder_open", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); + return ResourceManager.GetString("FilterColumnChooser_UI_CheckBox_ExactMatch", resourceCulture); } } /// - /// Looks up a localized resource of type System.Drawing.Bitmap. + /// Looks up a localized string similar to On empty columns. /// - public static System.Drawing.Bitmap LogLover { + public static string FilterColumnChooser_UI_GroupBox_OnEmptyColumns { get { - object obj = ResourceManager.GetObject("LogLover", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); + return ResourceManager.GetString("FilterColumnChooser_UI_GroupBox_OnEmptyColumns", resourceCulture); } } /// - /// Looks up a localized resource of type System.Drawing.Bitmap. + /// Looks up a localized string similar to No hit. /// - public static System.Drawing.Bitmap Pro_Filter { + public static string FilterColumnChooser_UI_RadioButton_NoHit { get { - object obj = ResourceManager.GetObject("Pro_Filter", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); + return ResourceManager.GetString("FilterColumnChooser_UI_RadioButton_NoHit", resourceCulture); } } /// - /// Looks up a localized resource of type System.Drawing.Bitmap. + /// Looks up a localized string similar to Search hit. /// - public static System.Drawing.Bitmap Restart_alt { + public static string FilterColumnChooser_UI_RadioButton_SearchHit { get { - object obj = ResourceManager.GetObject("Restart_alt", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); + return ResourceManager.GetString("FilterColumnChooser_UI_RadioButton_SearchHit", resourceCulture); } } /// - /// Looks up a localized resource of type System.Drawing.Bitmap. + /// Looks up a localized string similar to Use prev content. /// - public static System.Drawing.Bitmap Search { + public static string FilterColumnChooser_UI_RadioButton_UsePrevContent { get { - object obj = ResourceManager.GetObject("Search", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); + return ResourceManager.GetString("FilterColumnChooser_UI_RadioButton_UsePrevContent", resourceCulture); } } /// - /// Looks up a localized resource of type System.Drawing.Bitmap. + /// Looks up a localized string similar to Columns. /// - public static System.Drawing.Bitmap Settings { + public static string FilterColumnChooser_UI_Title { get { - object obj = ResourceManager.GetObject("Settings", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); + return ResourceManager.GetString("FilterColumnChooser_UI_Title", resourceCulture); } } /// - /// Looks up a localized resource of type System.Drawing.Bitmap. + /// Looks up a localized string similar to Choose one ore more columns to restrict the search operations to the selected columns.. /// - public static System.Drawing.Bitmap Star { + public static string FilterColumnChooser_UI_ToolTip_ColumnListBox { get { - object obj = ResourceManager.GetObject("Star", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); + return ResourceManager.GetString("FilterColumnChooser_UI_ToolTip_ColumnListBox", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If selected, the search string must match exactly (no substring search). + /// + public static string FilterColumnChooser_UI_ToolTip_ExactMatch { + get { + return ResourceManager.GetString("FilterColumnChooser_UI_ToolTip_ExactMatch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No search hit on empty columns. + /// + public static string FilterColumnChooser_UI_ToolTip_NoHit { + get { + return ResourceManager.GetString("FilterColumnChooser_UI_ToolTip_NoHit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to An empty column will always be a search hit. + /// + public static string FilterColumnChooser_UI_ToolTip_SearchHit { + get { + return ResourceManager.GetString("FilterColumnChooser_UI_ToolTip_SearchHit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Columns. + /// + public static string FilterColumnChooser_UI_ToolTip_Title_Columns { + get { + return ResourceManager.GetString("FilterColumnChooser_UI_ToolTip_Title_Columns", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to An empty column will be a search hit if the previous non-empty column was a search hit. + /// + public static string FilterColumnChooser_UI_ToolTip_UsePrevContent { + get { + return ResourceManager.GetString("FilterColumnChooser_UI_ToolTip_UsePrevContent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Config.... + /// + public static string FilterSelectorForm_UI_Button_Config { + get { + return ResourceManager.GetString("FilterSelectorForm_UI_Button_Config", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Apply to all open files. + /// + public static string FilterSelectorForm_UI_CheckBox_ApplyToAll { + get { + return ResourceManager.GetString("FilterSelectorForm_UI_CheckBox_ApplyToAll", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose a columnizer:. + /// + public static string FilterSelectorForm_UI_Label_ChooseColumnizer { + get { + return ResourceManager.GetString("FilterSelectorForm_UI_Label_ChooseColumnizer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to \r\nSupports timeshift: {0}. + /// + public static string FilterSelectorForm_UI_Text_SupportsTimeshift_Format { + get { + return ResourceManager.GetString("FilterSelectorForm_UI_Text_SupportsTimeshift_Format", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No. + /// + public static string FilterSelectorForm_UI_Text_SupportsTimeshift_No { + get { + return ResourceManager.GetString("FilterSelectorForm_UI_Text_SupportsTimeshift_No", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Yes. + /// + public static string FilterSelectorForm_UI_Text_SupportsTimeshift_Yes { + get { + return ResourceManager.GetString("FilterSelectorForm_UI_Text_SupportsTimeshift_Yes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Columnizer. + /// + public static string FilterSelectorForm_UI_Title { + get { + return ResourceManager.GetString("FilterSelectorForm_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Folder_open { + get { + object obj = ResourceManager.GetObject("Folder_open", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Line number:. + /// + public static string GotoLineDialog_UI_Label_LineNumber { + get { + return ResourceManager.GetString("GotoLineDialog_UI_Label_LineNumber", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Go to line. + /// + public static string GotoLineDialog_UI_Title { + get { + return ResourceManager.GetString("GotoLineDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Regex value is null or whitespace. + /// + public static string HighlightDialog_RegexError { + get { + return ResourceManager.GetString("HighlightDialog_RegexError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bookmark comment. + /// + public static string HighlightDialog_UI_Button_BookmarkComment { + get { + return ResourceManager.GetString("HighlightDialog_UI_Button_BookmarkComment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &Copy. + /// + public static string HighlightDialog_UI_Button_Copy { + get { + return ResourceManager.GetString("HighlightDialog_UI_Button_Copy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Background color. + /// + public static string HighlightDialog_UI_Button_CustomBackColor { + get { + return ResourceManager.GetString("HighlightDialog_UI_Button_CustomBackColor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Foreground color. + /// + public static string HighlightDialog_UI_Button_CustomForeColor { + get { + return ResourceManager.GetString("HighlightDialog_UI_Button_CustomForeColor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delete group. + /// + public static string HighlightDialog_UI_Button_DeleteGroup { + get { + return ResourceManager.GetString("HighlightDialog_UI_Button_DeleteGroup", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Down. + /// + public static string HighlightDialog_UI_Button_GroupDown { + get { + return ResourceManager.GetString("HighlightDialog_UI_Button_GroupDown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Up. + /// + public static string HighlightDialog_UI_Button_GroupUp { + get { + return ResourceManager.GetString("HighlightDialog_UI_Button_GroupUp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to New group. + /// + public static string HighlightDialog_UI_Button_NewGroup { + get { + return ResourceManager.GetString("HighlightDialog_UI_Button_NewGroup", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select.... + /// + public static string HighlightDialog_UI_Button_SelectPlugin { + get { + return ResourceManager.GetString("HighlightDialog_UI_Button_SelectPlugin", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bold. + /// + public static string HighlightDialog_UI_CheckBox_Bold { + get { + return ResourceManager.GetString("HighlightDialog_UI_CheckBox_Bold", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set bookmark. + /// + public static string HighlightDialog_UI_CheckBox_Bookmark { + get { + return ResourceManager.GetString("HighlightDialog_UI_CheckBox_Bookmark", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Case sensitive. + /// + public static string HighlightDialog_UI_CheckBox_CaseSensitive { + get { + return ResourceManager.GetString("HighlightDialog_UI_CheckBox_CaseSensitive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Don't lit dirty LED. + /// + public static string HighlightDialog_UI_CheckBox_DontDirtyLed { + get { + return ResourceManager.GetString("HighlightDialog_UI_CheckBox_DontDirtyLed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No Background. + /// + public static string HighlightDialog_UI_CheckBox_NoBackground { + get { + return ResourceManager.GetString("HighlightDialog_UI_CheckBox_NoBackground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Plugin. + /// + public static string HighlightDialog_UI_CheckBox_Plugin { + get { + return ResourceManager.GetString("HighlightDialog_UI_CheckBox_Plugin", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RegEx. + /// + public static string HighlightDialog_UI_CheckBox_RegEx { + get { + return ResourceManager.GetString("HighlightDialog_UI_CheckBox_RegEx", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stop Follow Tail. + /// + public static string HighlightDialog_UI_CheckBox_StopTail { + get { + return ResourceManager.GetString("HighlightDialog_UI_CheckBox_StopTail", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Word mode. + /// + public static string HighlightDialog_UI_CheckBox_WordMatch { + get { + return ResourceManager.GetString("HighlightDialog_UI_CheckBox_WordMatch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Default]. + /// + public static string HighlightDialog_UI_DefaultGroupName { + get { + return ResourceManager.GetString("HighlightDialog_UI_DefaultGroupName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error during add of entry. + ///{0}. + /// + public static string HighlightDialog_UI_ErrorDuringAddOfHighLightEntry { + get { + return ResourceManager.GetString("HighlightDialog_UI_ErrorDuringAddOfHighLightEntry", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error during save of entry.\r\n{0}. + /// + public static string HighlightDialog_UI_ErrorDuringSavingOfHighlightEntry { + get { + return ResourceManager.GetString("HighlightDialog_UI_ErrorDuringSavingOfHighlightEntry", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings (*.json)|*.json|All files (*.*). + /// + public static string HighlightDialog_UI_Export_Filter { + get { + return ResourceManager.GetString("HighlightDialog_UI_Export_Filter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Actions. + /// + public static string HighlightDialog_UI_GroupBox_Actions { + get { + return ResourceManager.GetString("HighlightDialog_UI_GroupBox_Actions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Coloring. + /// + public static string HighlightDialog_UI_GroupBox_Coloring { + get { + return ResourceManager.GetString("HighlightDialog_UI_GroupBox_Coloring", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Groups. + /// + public static string HighlightDialog_UI_GroupBox_Groups { + get { + return ResourceManager.GetString("HighlightDialog_UI_GroupBox_Groups", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Line match criteria. + /// + public static string HighlightDialog_UI_GroupBox_LineMatchCriteria { + get { + return ResourceManager.GetString("HighlightDialog_UI_GroupBox_LineMatchCriteria", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You can assign groups to file names in the settings.. + /// + public static string HighlightDialog_UI_Label_AssignNamesToGroups { + get { + return ResourceManager.GetString("HighlightDialog_UI_Label_AssignNamesToGroups", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Background color. + /// + public static string HighlightDialog_UI_Label_BackgroundColor { + get { + return ResourceManager.GetString("HighlightDialog_UI_Label_BackgroundColor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Foreground color. + /// + public static string HighlightDialog_UI_Label_ForegroundColor { + get { + return ResourceManager.GetString("HighlightDialog_UI_Label_ForegroundColor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search string:. + /// + public static string HighlightDialog_UI_Label_SearchString { + get { + return ResourceManager.GetString("HighlightDialog_UI_Label_SearchString", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to New group. + /// + public static string HighlightDialog_UI_NewGroup_BaseName { + get { + return ResourceManager.GetString("HighlightDialog_UI_NewGroup_BaseName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings could not be imported: {0}. + /// + public static string HighlightDialog_UI_SettingsCouldNotBeImported { + get { + return ResourceManager.GetString("HighlightDialog_UI_SettingsCouldNotBeImported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings imported. + /// + public static string HighlightDialog_UI_SettingsImported { + get { + return ResourceManager.GetString("HighlightDialog_UI_SettingsImported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy of. + /// + public static string HighlightDialog_UI_Snippet_CopyOf { + get { + return ResourceManager.GetString("HighlightDialog_UI_Snippet_CopyOf", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Highlighting and action triggers. + /// + public static string HighlightDialog_UI_Title { + get { + return ResourceManager.GetString("HighlightDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Export Settings to file. + /// + public static string HighlightDialog_UI_Title_ExportSettings { + get { + return ResourceManager.GetString("HighlightDialog_UI_Title_ExportSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose file.... + /// + public static string ImportSettingsDialog_UI_Button_ChooseFile { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_Button_ChooseFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Columnizer file masks. + /// + public static string ImportSettingsDialog_UI_CheckBox_ColumnizerFileMasks { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_CheckBox_ColumnizerFileMasks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to External tools. + /// + public static string ImportSettingsDialog_UI_CheckBox_ExternalTools { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_CheckBox_ExternalTools", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Highlight file masks. + /// + public static string ImportSettingsDialog_UI_CheckBox_HighlightFileMasks { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_CheckBox_HighlightFileMasks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Highlight settings. + /// + public static string ImportSettingsDialog_UI_CheckBox_HighlightSettings { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_CheckBox_HighlightSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keep existing settings. + /// + public static string ImportSettingsDialog_UI_CheckBox_KeepExistingSettings { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_CheckBox_KeepExistingSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Other. + /// + public static string ImportSettingsDialog_UI_CheckBox_Other { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_CheckBox_Other", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Import options. + /// + public static string ImportSettingsDialog_UI_GroupBox_ImportOptions { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_GroupBox_ImportOptions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings file to import:. + /// + public static string ImportSettingsDialog_UI_Label_SettingsFileToImport { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_Label_SettingsFileToImport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings (*.json)|*.json|All files (*.*)|*.*. + /// + public static string ImportSettingsDialog_UI_OpenFileDialog_Filter { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_OpenFileDialog_Filter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Load Settings from file. + /// + public static string ImportSettingsDialog_UI_OpenFileDialog_Title { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_OpenFileDialog_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Import Settings. + /// + public static string ImportSettingsDialog_UI_Title { + get { + return ResourceManager.GetString("ImportSettingsDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keyword action plugin:. + /// + public static string KeywordActionDlg_UI_Label_KeywordActionPlugin { + get { + return ResourceManager.GetString("KeywordActionDlg_UI_Label_KeywordActionPlugin", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parameter. + /// + public static string KeywordActionDlg_UI_Label_Parameter { + get { + return ResourceManager.GetString("KeywordActionDlg_UI_Label_Parameter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keyword Action. + /// + public static string KeywordActionDlg_UI_Title { + get { + return ResourceManager.GetString("KeywordActionDlg_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not begin restart session. Unable to determine file locker.. + /// + public static string Lockfinder_Exception_CouldNotBeginRestartSessionUnableToDetermineFileLocker { + get { + return ResourceManager.GetString("Lockfinder_Exception_CouldNotBeginRestartSessionUnableToDetermineFileLocker", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not list processes locking resource. + /// + public static string Lockfinder_Exception_CouldNotListProcessesLockingResource { + get { + return ResourceManager.GetString("Lockfinder_Exception_CouldNotListProcessesLockingResource", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not list processes locking resource. Failed to get size of result.. + /// + public static string Lockfinder_Exception_CouldNotListProcessesLockingResourceFailedToGetSizeOfResult { + get { + return ResourceManager.GetString("Lockfinder_Exception_CouldNotListProcessesLockingResourceFailedToGetSizeOfResult", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not register resource.. + /// + public static string Lockfinder_Exception_CouldNotRegisterResource { + get { + return ResourceManager.GetString("Lockfinder_Exception_CouldNotRegisterResource", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No processes are locking the path specified. + /// + public static string Lockfinder_Exception_NoProcessesAreLockingThePathSpecified { + get { + return ResourceManager.GetString("Lockfinder_Exception_NoProcessesAreLockingThePathSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RmEndSession: {0}. + /// + public static string Lockfinder_Trace_RmEndSessionNativeMethodsRmEndSessionHandle { + get { + return ResourceManager.GetString("Lockfinder_Trace_RmEndSessionNativeMethodsRmEndSessionHandle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error during {0} value {1}, min {2}, max {3}, visible {4}: {5}. + /// + public static string LogExpert_Common_Error_5Parameters_ErrorDuring0Value1Min2Max3Visible45 { + get { + return ResourceManager.GetString("LogExpert_Common_Error_5Parameters_ErrorDuring0Value1Min2Max3Visible45", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Insufficient rights {0}: {1} . + /// + public static string LogExpert_Common_Error_InsufficientRights_For_Parameter_ErrorMessage { + get { + return ResourceManager.GetString("LogExpert_Common_Error_InsufficientRights_For_Parameter_ErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &Add. + /// + public static string LogExpert_Common_UI_Button_Add { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Button_Add", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A&pply. + /// + public static string LogExpert_Common_UI_Button_Apply { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Button_Apply", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &Cancel. + /// + public static string LogExpert_Common_UI_Button_Cancel { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Button_Cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &Delete. + /// + public static string LogExpert_Common_UI_Button_Delete { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Button_Delete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Export.... + /// + public static string LogExpert_Common_UI_Button_Export { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Button_Export", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &Help. + /// + public static string LogExpert_Common_UI_Button_Help { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Button_Help", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &Import.... + /// + public static string LogExpert_Common_UI_Button_Import { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Button_Import", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Down. + /// + public static string LogExpert_Common_UI_Button_MoveDown { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Button_MoveDown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Up. + /// + public static string LogExpert_Common_UI_Button_MoveUp { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Button_MoveUp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &OK. + /// + public static string LogExpert_Common_UI_Button_OK { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Button_OK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deserialize. + /// + public static string LogExpert_Common_UI_Title_Deserialize { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Title_Deserialize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to LogExpert Error. + /// + public static string LogExpert_Common_UI_Title_Error { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Title_Error", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to LogExpert. + /// + public static string LogExpert_Common_UI_Title_LogExpert { + get { + return ResourceManager.GetString("LogExpert_Common_UI_Title_LogExpert", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error in {0}: {1}. + /// + public static string Logger_Error_In_Function { + get { + return ResourceManager.GetString("Logger_Error_In_Function", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap LogLover { + get { + object obj = ResourceManager.GetObject("LogLover", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to LogExpert.chm. + /// + public static string LogTabWindow_HelpFile { + get { + return ResourceManager.GetString("LogTabWindow_HelpFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This is a test exception thrown by the GUI thread. + /// + public static string LogTabWindow_OnThrowTestExceptionGUIThread_ThisIsATestExceptionThrownByTheGUIThread { + get { + return ResourceManager.GetString("LogTabWindow_OnThrowTestExceptionGUIThread_ThisIsATestExceptionThrownByTheGUIThre" + + "ad", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to lines. + /// + public static string LogTabWindow_StatusLineText_lowerCase_Lines { + get { + return ResourceManager.GetString("LogTabWindow_StatusLineText_lowerCase_Lines", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Line:. + /// + public static string LogTabWindow_StatusLineText_UpperCase_Lines { + get { + return ResourceManager.GetString("LogTabWindow_StatusLineText_UpperCase_Lines", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This is a test exception thrown by an async delegate. + /// + public static string LogTabWindow_ThrowTestException_ThisIsATestExceptionThrownByAnAsyncDelegate { + get { + return ResourceManager.GetString("LogTabWindow_ThrowTestException_ThisIsATestExceptionThrownByAnAsyncDelegate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This is a test exception thrown by a background thread. + /// + public static string LogTabWindow_ThrowTestExceptionThread_ThisIsATestExceptionThrownByABackgroundThread { + get { + return ResourceManager.GetString("LogTabWindow_ThrowTestExceptionThread_ThisIsATestExceptionThrownByABackgroundThre" + + "ad", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Follow tail. + /// + public static string LogTabWindow_UI_CheckBox_checkBoxFollowTail { + get { + return ResourceManager.GetString("LogTabWindow_UI_CheckBox_checkBoxFollowTail", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Follow tail. + /// + public static string LogTabWindow_UI_CheckBox_Host { + get { + return ResourceManager.GetString("LogTabWindow_UI_CheckBox_Host", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to host. + /// + public static string LogTabWindow_UI_CheckBox_ToolTip_checkBoxHost { + get { + return ResourceManager.GetString("LogTabWindow_UI_CheckBox_ToolTip_checkBoxHost", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to L:. + /// + public static string LogTabWindow_UI_Label_labelCurrentLine { + get { + return ResourceManager.GetString("LogTabWindow_UI_Label_labelCurrentLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 0. + /// + public static string LogTabWindow_UI_Label_labelLines { + get { + return ResourceManager.GetString("LogTabWindow_UI_Label_labelLines", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 0. + /// + public static string LogTabWindow_UI_Label_labelSize { + get { + return ResourceManager.GetString("LogTabWindow_UI_Label_labelSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ready. + /// + public static string LogTabWindow_UI_Label_labelStatus { + get { + return ResourceManager.GetString("LogTabWindow_UI_Label_labelStatus", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ->E. + /// + public static string LogTabWindow_UI_LogWindow_Title_ExternalStartTool_Suffix { + get { + return ResourceManager.GetString("LogTabWindow_UI_LogWindow_Title_ExternalStartTool_Suffix", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Clipboard. + /// + public static string LogTabWindow_UI_LogWindow_Title_Text_From_Clipboard { + get { + return ResourceManager.GetString("LogTabWindow_UI_LogWindow_Title_Text_From_Clipboard", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Pasted on {0}. + /// + public static string LogTabWindow_UI_LogWindow_Title_ToolTip_PastedOn { + get { + return ResourceManager.GetString("LogTabWindow_UI_LogWindow_Title_ToolTip_PastedOn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Column restrict. + /// + public static string LogTabWindow_UI_LogWindow_Tooltip_ColumnRestrict { + get { + return ResourceManager.GetString("LogTabWindow_UI_LogWindow_Tooltip_ColumnRestrict", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filter: {0} {1}{2}. + /// + public static string LogTabWindow_UI_LogWindow_ToolTip_Filter { + get { + return ResourceManager.GetString("LogTabWindow_UI_LogWindow_ToolTip_Filter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to (Invert match). + /// + public static string LogTabWindow_UI_LogWindow_ToolTip_InvertMatch { + get { + return ResourceManager.GetString("LogTabWindow_UI_LogWindow_ToolTip_InvertMatch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to menuStrip1. + /// + public static string LogTabWindow_UI_MenuStrip_mainMenuStrip { + get { + return ResourceManager.GetString("LogTabWindow_UI_MenuStrip_mainMenuStrip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to LogExpert session {0}. + /// + public static string LogTabWindow_UI_Project_Session_Default_Filter { + get { + return ResourceManager.GetString("LogTabWindow_UI_Project_Session_Default_Filter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to statusStrip1. + /// + public static string LogTabWindow_UI_StatusStrip_StatusStrip { + get { + return ResourceManager.GetString("LogTabWindow_UI_StatusStrip_StatusStrip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enable MultiFile. + /// + public static string LogTabWindow_UI_StripMenuItem_multiFileEnabledStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_StripMenuItem_multiFileEnabledStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toggle Bookmark. + /// + public static string LogTabWindow_UI_ToolStripButton_toolStripButtonBookmark { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_toolStripButtonBookmark", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show bookmark bubbles. + /// + public static string LogTabWindow_UI_ToolStripButton_toolStripButtonBubbles { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_toolStripButtonBubbles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Next Bookmark. + /// + public static string LogTabWindow_UI_ToolStripButton_toolStripButtonDown { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_toolStripButtonDown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filter. + /// + public static string LogTabWindow_UI_ToolStripButton_toolStripButtonFilter { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_toolStripButtonFilter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open File. + /// + public static string LogTabWindow_UI_ToolStripButton_toolStripButtonOpen { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_toolStripButtonOpen", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search. + /// + public static string LogTabWindow_UI_ToolStripButton_toolStripButtonSearch { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_toolStripButtonSearch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to tail. + /// + public static string LogTabWindow_UI_ToolStripButton_toolStripButtonTail { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_toolStripButtonTail", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Previous Bookmark. + /// + public static string LogTabWindow_UI_ToolStripButton_toolStripButtonUp { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_toolStripButtonUp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toggle bookmark. + /// + public static string LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonBookmark { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonBookmark", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Go to next bookmark. + /// + public static string LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonDown { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonDown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filter window. + /// + public static string LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonFilter { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonFilter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open file. + /// + public static string LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonOpen { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonOpen", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search. + /// + public static string LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonSearch { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonSearch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Go to previous bookmark. + /// + public static string LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonUp { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonUp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select the current highlight settings for the log file (right-click to open highlight settings). + /// + public static string LogTabWindow_UI_ToolStripComboBox_ToolTip_highlightGroupsToolStripComboBox { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripComboBox_ToolTip_highlightGroupsToolStripComboBox", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to toolStripContainer1. + /// + public static string LogTabWindow_UI_ToolStripContainer_toolStripContainer { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripContainer_toolStripContainer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to About. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_aboutToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_aboutToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Always on top. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_alwaysOnTopToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_alwaysOnTopToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bookmarks. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_bookmarksToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_bookmarksToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cell select mode. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_cellSelectModeToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_cellSelectModeToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close all tabs. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_closeAllTabsToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_closeAllTabsToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close File. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_closeFileToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_closeFileToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close other tabs. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_closeOtherTabsToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_closeOtherTabsToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close this tab. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_closeThisTabToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_closeThisTabToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Column finder. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_columnFinderToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_columnFinderToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Columnizer.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_columnizerToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_columnizerToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configure.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_configureToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_configureToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy to Tab. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_copyMarkedLinesIntoNewTabToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_copyMarkedLinesIntoNewTabToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy path to clipboard. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_copyPathToClipboardToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_copyPathToClipboardToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Debug. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_debugToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_debugToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Debug. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_debugToolStripMenuItem1 { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_debugToolStripMenuItem1", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disable word highlight mode. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_disableWordHighlightModeToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_disableWordHighlightModeToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Dump buffer diagnostic. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_dumpBufferDiagnosticToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_dumpBufferDiagnosticToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Dump LogBuffer info. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_dumpLogBufferInfoToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_dumpLogBufferInfoToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ANSI. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_encodingANSIToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_encodingANSIToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASCII. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_encodingASCIIToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_encodingASCIIToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ISO-8859-1. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_encodingISO88591toolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_encodingISO88591toolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Encoding. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_encodingToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_encodingToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unicode. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_encodingUTF16toolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_encodingUTF16toolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to UTF8. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_encodingUTF8toolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_encodingUTF8toolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Exit. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_exitToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_exitToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Export bookmarks.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_exportBookmarksToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_exportBookmarksToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_fileToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_fileToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filter. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_filterToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_filterToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Find in Explorer. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_findInExplorerToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_findInExplorerToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Dump GC info. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_gCInfoToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_gCInfoToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Go to line.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_goToLineToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_goToLineToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Help. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_helpToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_helpToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hide line column. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_hideLineColumnToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_hideLineColumnToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Highlighting and triggers.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_hilightingToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_hilightingToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Info. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_infoToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_infoToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Jump to next. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_jumpToNextToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_jumpToNextToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Jump to prev. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_jumpToPrevToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_jumpToPrevToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Last used. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_lastUsedToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_lastUsedToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Load session.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_loadProjectToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_loadProjectToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Lock instance. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_lockInstanceToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_lockInstanceToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Loglevel. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_loglevelToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_loglevelToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File name mask.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_multifileMaskToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_multifileMaskToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to MultiFile. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_multiFileToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_multiFileToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to New tab from clipboard. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_newFromClipboardToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_newFromClipboardToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_openToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_openToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open URL.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_openURIToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_openURIToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Options. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_optionToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_optionToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Reload. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_reloadToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_reloadToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Run GC. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_runGCToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_runGCToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Save session.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_saveProjectToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_saveProjectToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_searchToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_searchToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_settingsToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_settingsToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bookmark list. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_showBookmarkListToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_showBookmarkListToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show help. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_showHelpToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_showHelpToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tab color.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_tabColorToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_tabColorToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tab rename.... + /// + public static string LogTabWindow_UI_ToolStripMenuItem_tabRenameToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_tabRenameToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Throw exception (background thread). + /// + public static string LogTabWindow_UI_ToolStripMenuItem_throwExceptionBackgroundThreadToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_throwExceptionBackgroundThreadToolStripMenuItem" + + "", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Throw exception (Async delegate). + /// + public static string LogTabWindow_UI_ToolStripMenuItem_throwExceptionbackgroundThToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_throwExceptionbackgroundThToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Throw exception (GUI Thread). + /// + public static string LogTabWindow_UI_ToolStripMenuItem_throwExceptionGUIThreadToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_throwExceptionGUIThreadToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Timeshift. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_timeshiftToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_timeshiftToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toggle Bookmark. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_toggleBookmarkToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_toggleBookmarkToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tools. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_toolsToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_toolsToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Switches between foll row selection and single cell selection mode. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_cellSelectModeToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_cellSelectModeToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close all tabs. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_closeAllTabsToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_closeAllTabsToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close all tabs except of this one. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_closeOtherTabsToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_closeOtherTabsToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Splits various kinds of logfiles into fixed columns. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_columnizerToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_columnizerToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copies all selected lines into a new tab page. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_copyMarkedLinesIntoNewTabToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_copyMarkedLinesIntoNewTabToolStripMenuI" + + "tem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The complete file name (incl. path) is copied to clipboard. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_copyPathToClipboardToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_copyPathToClipboardToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Opens an Explorer window and selects the log file. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_findInExplorerToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_findInExplorerToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Load a saved session (list of log files). + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_loadProjectToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_loadProjectToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to When enabled all new launched LogExpert instances will redirect to this window. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_lockInstanceToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_lockInstanceToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Treat multiple files as one large file (e.g. data.log, data.log.1, data.log.2,...). + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_multiFileToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_multiFileToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Creates a new tab with content from clipboard. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_newFromClipboardToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_newFromClipboardToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Opens a file by entering a URL which is supported by a file system plugin. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_openURIToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_openURIToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Save a session (all open tabs). + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_saveProjectToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_saveProjectToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sets the tab color. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_tabColorToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_tabColorToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set the text which is shown on the tab. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_tabRenameToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_tabRenameToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If supported by the columnizer, you can set an offset to the displayed log time. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_timeshiftToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_timeshiftToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time offset (hh:mm:ss.fff). + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_timeshiftToolStripTextBox { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_timeshiftToolStripTextBox", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Launch external tools (configure in the settings). + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_toolsToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_toolsToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Try to truncate the file opened in tab. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_ToolTip_truncateFileToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_ToolTip_truncateFileToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Truncate File. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_truncateFileToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_truncateFileToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to View/Navigate. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_viewNavigateToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_viewNavigateToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Warn. + /// + public static string LogTabWindow_UI_ToolStripMenuItem_warnToolStripMenuItem { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripMenuItem_warnToolStripMenuItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to +00:00:00.000. + /// + public static string LogTabWindow_UI_ToolStripTextBox_timeshiftToolStripTextBox { + get { + return ResourceManager.GetString("LogTabWindow_UI_ToolStripTextBox_timeshiftToolStripTextBox", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Columns.... + /// + public static string LogWindow_UI_Button_Column { + get { + return ResourceManager.GetString("LogWindow_UI_Button_Column", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delete. + /// + public static string LogWindow_UI_Button_Delete { + get { + return ResourceManager.GetString("LogWindow_UI_Button_Delete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filter to Tab. + /// + public static string LogWindow_UI_Button_FilterToTab { + get { + return ResourceManager.GetString("LogWindow_UI_Button_FilterToTab", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Save filter. + /// + public static string LogWindow_UI_Button_SaveFilter { + get { + return ResourceManager.GetString("LogWindow_UI_Button_SaveFilter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search. + /// + public static string LogWindow_UI_Button_Search { + get { + return ResourceManager.GetString("LogWindow_UI_Button_Search", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show advanced.... + /// + public static string LogWindow_UI_Button_ShowAdvanced { + get { + return ResourceManager.GetString("LogWindow_UI_Button_ShowAdvanced", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose columns for 'Column restrict'. + /// + public static string LogWindow_UI_Button_ToolTip_Column { + get { + return ResourceManager.GetString("LogWindow_UI_Button_ToolTip_Column", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Move the selected entry down in the list. + /// + public static string LogWindow_UI_Button_ToolTip_FilterDown { + get { + return ResourceManager.GetString("LogWindow_UI_Button_ToolTip_FilterDown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Launch a new tab with filtered content. + /// + public static string LogWindow_UI_Button_ToolTip_FilterToTab { + get { + return ResourceManager.GetString("LogWindow_UI_Button_ToolTip_FilterToTab", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Move the selected entry up in the list. + /// + public static string LogWindow_UI_Button_ToolTip_FilterUp { + get { + return ResourceManager.GetString("LogWindow_UI_Button_ToolTip_FilterUp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start the filter search. + /// + public static string LogWindow_UI_Button_ToolTip_Search { + get { + return ResourceManager.GetString("LogWindow_UI_Button_ToolTip_Search", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toggel the advanced filter options panel. + /// + public static string LogWindow_UI_Button_ToolTip_ShowAdvanced { + get { + return ResourceManager.GetString("LogWindow_UI_Button_ToolTip_ShowAdvanced", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open or close a list with saved filters. + /// + public static string LogWindow_UI_Button_ToolTip_ToggleHighlightPanel { + get { + return ResourceManager.GetString("LogWindow_UI_Button_ToolTip_ToggleHighlightPanel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Auto hide. + /// + public static string LogWindow_UI_CheckBox_AutoHide { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_AutoHide", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Column restrict. + /// + public static string LogWindow_UI_CheckBox_ColumnRestrict { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_ColumnRestrict", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Case sensitive. + /// + public static string LogWindow_UI_CheckBox_FilterCaseSensitive { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_FilterCaseSensitive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Auto start. + /// + public static string LogWindow_UI_CheckBox_FilterOnLoad { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_FilterOnLoad", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Regex. + /// + public static string LogWindow_UI_CheckBox_FilterRegex { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_FilterRegex", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sync. + /// + public static string LogWindow_UI_CheckBox_FilterSync { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_FilterSync", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filter tail. + /// + public static string LogWindow_UI_CheckBox_FilterTail { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_FilterTail", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invert Match. + /// + public static string LogWindow_UI_CheckBox_InvertMatch { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_InvertMatch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Range search. + /// + public static string LogWindow_UI_CheckBox_RangeSearch { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_RangeSearch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hides the filter list after loading a filter. + /// + public static string LogWindow_UI_CheckBox_ToolTip_AutoHide { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_ToolTip_AutoHide", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Restrict search to columns. + /// + public static string LogWindow_UI_CheckBox_ToolTip_ColumnRestrict { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_ToolTip_ColumnRestrict", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Makes the filter case sensitive. + /// + public static string LogWindow_UI_CheckBox_ToolTip_FilterCaseSensitive { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_ToolTip_FilterCaseSensitive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start immediate filtering after loading a saved filter. + /// + public static string LogWindow_UI_CheckBox_ToolTip_FilterOnLoad { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_ToolTip_FilterOnLoad", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use regular expressions. (right-click for RegEx helper window). + /// + public static string LogWindow_UI_CheckBox_ToolTip_FilterRegex { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_ToolTip_FilterRegex", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sync the current selected line in the filter view to the selection in the log file view. + /// + public static string LogWindow_UI_CheckBox_ToolTip_FilterSync { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_ToolTip_FilterSync", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filter tailed file content (keeps filter view up to date on file changes). + /// + public static string LogWindow_UI_CheckBox_ToolTip_FilterTail { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_ToolTip_FilterTail", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invert the search result. + /// + public static string LogWindow_UI_CheckBox_ToolTip_InvertMatch { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_ToolTip_InvertMatch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enable a special search mode which filters all content between the 2 given search terms.. + /// + public static string LogWindow_UI_CheckBox_ToolTip_RangeSearch { + get { + return ResourceManager.GetString("LogWindow_UI_CheckBox_ToolTip_RangeSearch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select column to scroll to. + /// + public static string LogWindow_UI_ColumnComboBox_ToolTip { + get { + return ResourceManager.GetString("LogWindow_UI_ColumnComboBox_ToolTip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search string for the filter. + /// + public static string LogWindow_UI_ComboBox_ToolTip_Filter { + get { + return ResourceManager.GetString("LogWindow_UI_ComboBox_ToolTip_Filter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 2nd search string ('end string') when using the range search. + /// + public static string LogWindow_UI_ComboBox_ToolTip_FilterRange { + get { + return ResourceManager.GetString("LogWindow_UI_ComboBox_ToolTip_FilterRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 0. + /// + public static string LogWindow_UI_Common_ZeroValue { + get { + return ResourceManager.GetString("LogWindow_UI_Common_ZeroValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}->Clip. + /// + public static string LogWindow_UI_CopyMarkedLinesToTab_Clip { + get { + return ResourceManager.GetString("LogWindow_UI_CopyMarkedLinesToTab_Clip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}->C. + /// + public static string LogWindow_UI_CopyMarkedLinesToTab_Copy { + get { + return ResourceManager.GetString("LogWindow_UI_CopyMarkedLinesToTab_Copy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error occured while clearing filter list: {0}. + /// + public static string LogWindow_UI_Error_ClearFilterList_WhileClearingFilterList { + get { + return ResourceManager.GetString("LogWindow_UI_Error_ClearFilterList_WhileClearingFilterList", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error while exporting bookmark list: {0}. + /// + public static string LogWindow_UI_ErrorWhileExportingBookmarkList { + get { + return ResourceManager.GetString("LogWindow_UI_ErrorWhileExportingBookmarkList", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error while importing bookmark list: {0}. + /// + public static string LogWindow_UI_ErrorWhileImportingBookmarkList { + get { + return ResourceManager.GetString("LogWindow_UI_ErrorWhileImportingBookmarkList", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Exception while filtering. Please report to developer: + ///{0} + ///{1}. + /// + public static string LogWindow_UI_Filter_ExceptionWhileFiltering { + get { + return ResourceManager.GetString("LogWindow_UI_Filter_ExceptionWhileFiltering", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CSV file (*.csv)|*.csv|Bookmark file (*.bmk)|*.bmk. + /// + public static string LogWindow_UI_ImportExportBookmarkList_Filter { + get { + return ResourceManager.GetString("LogWindow_UI_ImportExportBookmarkList_Filter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add preceding lines to search result (Drag up/down, press Shift for finer pitch). + /// + public static string LogWindow_UI_KnobControl_FilterBackSpread { + get { + return ResourceManager.GetString("LogWindow_UI_KnobControl_FilterBackSpread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add following lines to search result (Drag up/down, press Shift for finer pitch). + /// + public static string LogWindow_UI_KnobControl_FilterForeSpread { + get { + return ResourceManager.GetString("LogWindow_UI_KnobControl_FilterForeSpread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fuzzy search level (0 = fuzzy off). + /// + public static string LogWindow_UI_KnobControl_Fuzzy { + get { + return ResourceManager.GetString("LogWindow_UI_KnobControl_Fuzzy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Back Spread. + /// + public static string LogWindow_UI_Label_BackSpread { + get { + return ResourceManager.GetString("LogWindow_UI_Label_BackSpread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Column name:. + /// + public static string LogWindow_UI_Label_ColumnName { + get { + return ResourceManager.GetString("LogWindow_UI_Label_ColumnName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to column names. + /// + public static string LogWindow_UI_Label_ColumnNames { + get { + return ResourceManager.GetString("LogWindow_UI_Label_ColumnNames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fore Spread. + /// + public static string LogWindow_UI_Label_ForeSpread { + get { + return ResourceManager.GetString("LogWindow_UI_Label_ForeSpread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fuzzyness. + /// + public static string LogWindow_UI_Label_Fuzzyness { + get { + return ResourceManager.GetString("LogWindow_UI_Label_Fuzzyness", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Text &filter:. + /// + public static string LogWindow_UI_Label_TextFilter { + get { + return ResourceManager.GetString("LogWindow_UI_Label_TextFilter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Doubleclick to load a saved filter. + /// + public static string LogWindow_UI_ListBox_ToolTip_Filter { + get { + return ResourceManager.GetString("LogWindow_UI_ListBox_ToolTip_Filter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot load file + ///{0}. + /// + public static string LogWindow_UI_LoadFile_CannotLoadFile { + get { + return ResourceManager.GetString("LogWindow_UI_LoadFile_CannotLoadFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unexpected error while saving persistence: {0}. + /// + public static string LogWindow_UI_SavePersistenceData_ErrorWhileSaving { + get { + return ResourceManager.GetString("LogWindow_UI_SavePersistenceData_ErrorWhileSaving", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search result not found. + /// + public static string LogWindow_UI_SelectLine_SearchResultNotFound { + get { + return ResourceManager.GetString("LogWindow_UI_SelectLine_SearchResultNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid regular expression. + /// + public static string LogWindow_UI_StatusLineError_InvalidRegularExpression { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineError_InvalidRegularExpression", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Not found: {0}. + /// + public static string LogWindow_UI_StatusLineError_NotFound { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineError_NotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Started from beginning of file. + /// + public static string LogWindow_UI_StatusLineError_StartedFromBeginningOfFile { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineError_StartedFromBeginningOfFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Started from end of file. + /// + public static string LogWindow_UI_StatusLineError_StartedFromEndOfFile { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineError_StartedFromEndOfFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File not found. + /// + public static string LogWindow_UI_StatusLineText_FileNotFound { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineText_FileNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filter duration: {0} ms.. + /// + public static string LogWindow_UI_StatusLineText_Filter_FilterDurationMs { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineText_Filter_FilterDurationMs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filtering... Press ESC to cancel.. + /// + public static string LogWindow_UI_StatusLineText_FilterSearch_Filtering { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineText_FilterSearch_Filtering", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Searching... Press ESC to cancel.. + /// + public static string LogWindow_UI_StatusLineText_SearchingPressESCToCancel { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineText_SearchingPressESCToCancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} selected lines. + /// + public static string LogWindow_UI_StatusLineText_SelCountSelectedLines { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineText_SelCountSelectedLines", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time diff is {0}. + /// + public static string LogWindow_UI_StatusLineText_TimeDiff { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineText_TimeDiff", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Truncate failed: file is locked by {0}. + /// + public static string LogWindow_UI_StatusLineText_TruncateFailedFileIsLockedByName { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineText_TruncateFailedFileIsLockedByName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unexpected issue truncating file. + /// + public static string LogWindow_UI_StatusLineText_UnexpectedIssueTruncatingFile { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineText_UnexpectedIssueTruncatingFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}. + /// + public static string LogWindow_UI_StatusLineText_UpdateEditColumnDisplay { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineText_UpdateEditColumnDisplay", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Writing to temp file... Press ESC to cancel.. + /// + public static string LogWindow_UI_StatusLineText_WritePipeToTab_WritingToTempFile { + get { + return ResourceManager.GetString("LogWindow_UI_StatusLineText_WritePipeToTab_WritingToTempFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Loading file.... + /// + public static string LogWindow_UI_StatusText_LoadingFile { + get { + return ResourceManager.GetString("LogWindow_UI_StatusText_LoadingFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Loading {0}. + /// + public static string LogWindow_UI_StatusText_LoadingWithParameter { + get { + return ResourceManager.GetString("LogWindow_UI_StatusText_LoadingWithParameter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sure to close?. + /// + public static string LogWindow_UI_SureToClose { + get { + return ResourceManager.GetString("LogWindow_UI_SureToClose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Freeze left columns until here ({0}). + /// + public static string LogWindow_UI_Text_FreezeLeftColumnsUntilHereGridViewColumns_selectedColHeaderText { + get { + return ResourceManager.GetString("LogWindow_UI_Text_FreezeLeftColumnsUntilHereGridViewColumns_selectedColHeaderText" + + "", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Frozen. + /// + public static string LogWindow_UI_Text_Frozen { + get { + return ResourceManager.GetString("LogWindow_UI_Text_Frozen", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hide advanced.... + /// + public static string LogWindow_UI_Text_ShowAdvancedFilterPanel_HideAdvanced { + get { + return ResourceManager.GetString("LogWindow_UI_Text_ShowAdvancedFilterPanel_HideAdvanced", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show advanced.... + /// + public static string LogWindow_UI_Text_ShowAdvancedFilterPanel_ShowAdvanced { + get { + return ResourceManager.GetString("LogWindow_UI_Text_ShowAdvancedFilterPanel_ShowAdvanced", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There are some comments in the bookmarks. Really remove bookmarks?. + /// + public static string LogWindow_UI_ThereAreSomeCommentsInTheBookmarksReallyRemoveBookmarks { + get { + return ResourceManager.GetString("LogWindow_UI_ThereAreSomeCommentsInTheBookmarksReallyRemoveBookmarks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose a file to save bookmarks into. + /// + public static string LogWindow_UI_Title_ExportBookMarkList { + get { + return ResourceManager.GetString("LogWindow_UI_Title_ExportBookMarkList", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose a file to load bookmarks from. + /// + public static string LogWindow_UI_Title_ImportBookmarkList { + get { + return ResourceManager.GetString("LogWindow_UI_Title_ImportBookmarkList", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There's a comment attached to the bookmark. Really remove the bookmark?. + /// + public static string LogWindow_UI_ToggleBookmark_ThereCommentAttachedRemoveIt { + get { + return ResourceManager.GetString("LogWindow_UI_ToggleBookmark_ThereCommentAttachedRemoveIt", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bookmark comment.... + /// + public static string LogWindow_UI_ToolStripMenuItem_BookmarkComment { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_BookmarkComment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Color.... + /// + public static string LogWindow_UI_ToolStripMenuItem_Color { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_Color", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy. + /// + public static string LogWindow_UI_ToolStripMenuItem_Copy { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_Copy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy to clipboard. + /// + public static string LogWindow_UI_ToolStripMenuItem_CopyToClipboard { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_CopyToClipboard", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy to new tab. + /// + public static string LogWindow_UI_ToolStripMenuItem_CopyToNewTab { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_CopyToNewTab", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filter for selection. + /// + public static string LogWindow_UI_ToolStripMenuItem_FilterForSelection { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_FilterForSelection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filter to new tab. + /// + public static string LogWindow_UI_ToolStripMenuItem_FilterToNewTab { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_FilterToNewTab", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Free this window from time sync. + /// + public static string LogWindow_UI_ToolStripMenuItem_FreeThisWindowFromTimeSync { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_FreeThisWindowFromTimeSync", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Freeze left columns until here. + /// + public static string LogWindow_UI_ToolStripMenuItem_FreezeLeftColumnsUntilHere { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_FreezeLeftColumnsUntilHere", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hide column. + /// + public static string LogWindow_UI_ToolStripMenuItem_HideColumn { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_HideColumn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Highlight selection in log file (full line). + /// + public static string LogWindow_UI_ToolStripMenuItem_HighlightSelectionInLogFileFullLine { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_HighlightSelectionInLogFileFullLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Highlight selection in log file (word mode). + /// + public static string LogWindow_UI_ToolStripMenuItem_HighlightSelectionInLogFileWordMode { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_HighlightSelectionInLogFileWordMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Locate filtered line in original file. + /// + public static string LogWindow_UI_ToolStripMenuItem_LocateFilteredLineInOriginalFile { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_LocateFilteredLineInOriginalFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Make all permanent. + /// + public static string LogWindow_UI_ToolStripMenuItem_MakeAllPermanent { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_MakeAllPermanent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mark current filter range. + /// + public static string LogWindow_UI_ToolStripMenuItem_MarkCurrentFilterRange { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_MarkCurrentFilterRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mark/Edit-Mode. + /// + public static string LogWindow_UI_ToolStripMenuItem_MarkEditMode { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_MarkEditMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mark filter hits in log view. + /// + public static string LogWindow_UI_ToolStripMenuItem_MarkFilterHitsInLogView { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_MarkFilterHitsInLogView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Move left. + /// + public static string LogWindow_UI_ToolStripMenuItem_MoveLeft { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_MoveLeft", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Move right. + /// + public static string LogWindow_UI_ToolStripMenuItem_MoveRight { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_MoveRight", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Move to last column. + /// + public static string LogWindow_UI_ToolStripMenuItem_MoveToLastColumn { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_MoveToLastColumn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove all. + /// + public static string LogWindow_UI_ToolStripMenuItem_RemoveAll { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_RemoveAll", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Restore columns. + /// + public static string LogWindow_UI_ToolStripMenuItem_RestoreColumns { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_RestoreColumns", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Scroll all tabs to current timestamp. + /// + public static string LogWindow_UI_ToolStripMenuItem_ScrollAllTabsToCurrentTimestamp { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_ScrollAllTabsToCurrentTimestamp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Scroll to column.... + /// + public static string LogWindow_UI_ToolStripMenuItem_ScrollToColumn { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_ScrollToColumn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set bookmarks on selected lines. + /// + public static string LogWindow_UI_ToolStripMenuItem_SetBookmarksOnSelectedLines { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_SetBookmarksOnSelectedLines", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set selected text as bookmark comment. + /// + public static string LogWindow_UI_ToolStripMenuItem_SetSelectedTextAsBookmarkComment { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_SetSelectedTextAsBookmarkComment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Temp Highlights. + /// + public static string LogWindow_UI_ToolStripMenuItem_TempHighlights { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_TempHighlights", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time synced files. + /// + public static string LogWindow_UI_ToolStripMenuItem_TimeSyncedFiles { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_TimeSyncedFiles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toggle Boomark. + /// + public static string LogWindow_UI_ToolStripMenuItem_ToggleBoomark { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_ToggleBoomark", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Edit the comment for a bookmark. + /// + public static string LogWindow_UI_ToolStripMenuItem_ToolTip_BookmarkComment { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_ToolTip_BookmarkComment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy marked lines into a new tab window. + /// + public static string LogWindow_UI_ToolStripMenuItem_ToolTip_CopyToNewTab { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_ToolTip_CopyToNewTab", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hide this column. + /// + public static string LogWindow_UI_ToolStripMenuItem_ToolTip_HideColumn { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_ToolTip_HideColumn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Move this column to the last position. + /// + public static string LogWindow_UI_ToolStripMenuItem_ToolTip_MoveToLastColumn { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_ToolTip_MoveToLastColumn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Scolls all open tabs to the selected timestamp, if possible. + /// + public static string LogWindow_UI_ToolStripMenuItem_ToolTip_ScrollAllTabsToCurrentTimestamp { + get { + return ResourceManager.GetString("LogWindow_UI_ToolStripMenuItem_ToolTip_ScrollAllTabsToCurrentTimestamp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ->F. + /// + public static string LogWindow_UI_WriteFilterToTab_NamePrefix_ForFilter { + get { + return ResourceManager.GetString("LogWindow_UI_WriteFilterToTab_NamePrefix_ForFilter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File name pattern:. + /// + public static string MultiFileMaskDialog_UI_Label_FileNamePattern { + get { + return ResourceManager.GetString("MultiFileMaskDialog_UI_Label_FileNamePattern", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max days:. + /// + public static string MultiFileMaskDialog_UI_Label_MaxDays { + get { + return ResourceManager.GetString("MultiFileMaskDialog_UI_Label_MaxDays", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to MultiFile settings for:. + /// + public static string MultiFileMaskDialog_UI_Label_SettingsFor { + get { + return ResourceManager.GetString("MultiFileMaskDialog_UI_Label_SettingsFor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Pattern syntax: + /// + ///* = any characters (wildcard) + ///$D(&lt;date&gt;) = Date pattern + ///$I = File index number + ///$J = File index number, hidden when zero + ///$J(&lt;prefix&gt;) = Like $J, but adding &lt;prefix&gt; when non-zero + /// + ///&lt;date&gt;: + ///DD = day + ///MM = month + ///YY[YY] = year + ///all other chars will be used as given. + /// + public static string MultiFileMaskDialog_UI_Label_SyntaxHelp { + get { + return ResourceManager.GetString("MultiFileMaskDialog_UI_Label_SyntaxHelp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to MultiFile settings. + /// + public static string MultiFileMaskDialog_UI_Title { + get { + return ResourceManager.GetString("MultiFileMaskDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Multi file. + /// + public static string MultiLoadRequestDialog_UI_Button_MultiFile { + get { + return ResourceManager.GetString("MultiLoadRequestDialog_UI_Button_MultiFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Single files. + /// + public static string MultiLoadRequestDialog_UI_Button_SingleFiles { + get { + return ResourceManager.GetString("MultiLoadRequestDialog_UI_Button_SingleFiles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose loading mode:. + /// + public static string MultiLoadRequestDialog_UI_Label_ChooseLoadingMode { + get { + return ResourceManager.GetString("MultiLoadRequestDialog_UI_Label_ChooseLoadingMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Loading multiple files. + /// + public static string MultiLoadRequestDialog_UI_Title { + get { + return ResourceManager.GetString("MultiLoadRequestDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open URL. + /// + public static string OpenUriDialog_UI_Dialog_Text { + get { + return ResourceManager.GetString("OpenUriDialog_UI_Dialog_Text", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enter a URL which is supported by an installed file system plugin (e.g. file:// or sftp://). + /// + public static string OpenUriDialog_UI_Label_Explaination { + get { + return ResourceManager.GetString("OpenUriDialog_UI_Label_Explaination", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to URL:. + /// + public static string OpenUriDialog_UI_Label_URL { + get { + return ResourceManager.GetString("OpenUriDialog_UI_Label_URL", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Line. + /// + public static string PaintHelper_HeaderText_LineNumberColumn { + get { + return ResourceManager.GetString("PaintHelper_HeaderText_LineNumberColumn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Value for parameter:. + /// + public static string ParamRequesterDialog_UI_Label_ValueForParameter { + get { + return ResourceManager.GetString("ParamRequesterDialog_UI_Label_ValueForParameter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tool parameter. + /// + public static string ParamRequesterDialog_UI_Title { + get { + return ResourceManager.GetString("ParamRequesterDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Recalc. + /// + public static string PatternWindow_UI_Button_Recalc { + get { + return ResourceManager.GetString("PatternWindow_UI_Button_Recalc", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set range. + /// + public static string PatternWindow_UI_Button_SetRange { + get { + return ResourceManager.GetString("PatternWindow_UI_Button_SetRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Block lines:. + /// + public static string PatternWindow_UI_Label_BlockLines { + get { + return ResourceManager.GetString("PatternWindow_UI_Label_BlockLines", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This feature is pre-beta and does not work :)\r\nUsage: Select a range in the log window and press \"Recalc\". \r\nThis will search for text ranges similar to the selected one.. + /// + public static string PatternWindow_UI_Label_FeatureDescription { + get { + return ResourceManager.GetString("PatternWindow_UI_Label_FeatureDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fuzzy. + /// + public static string PatternWindow_UI_Label_Fuzzy { + get { + return ResourceManager.GetString("PatternWindow_UI_Label_Fuzzy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max diff. + /// + public static string PatternWindow_UI_Label_MaxDiff { + get { + return ResourceManager.GetString("PatternWindow_UI_Label_MaxDiff", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max misses. + /// + public static string PatternWindow_UI_Label_MaxMisses { + get { + return ResourceManager.GetString("PatternWindow_UI_Label_MaxMisses", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to (no range set). + /// + public static string PatternWindow_UI_Label_NoRangeSet { + get { + return ResourceManager.GetString("PatternWindow_UI_Label_NoRangeSet", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Number of blocks (pattern variants):. + /// + public static string PatternWindow_UI_Label_NumberOfBlocks { + get { + return ResourceManager.GetString("PatternWindow_UI_Label_NumberOfBlocks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start: {0}\nEnd: {1}. + /// + public static string PatternWindow_UI_Label_RangeFormat { + get { + return ResourceManager.GetString("PatternWindow_UI_Label_RangeFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Weigth. + /// + public static string PatternWindow_UI_Label_Weight { + get { + return ResourceManager.GetString("PatternWindow_UI_Label_Weight", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Patterns. + /// + public static string PatternWindow_UI_Title { + get { + return ResourceManager.GetString("PatternWindow_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Pro_Filter { + get { + object obj = ResourceManager.GetObject("Pro_Filter", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Config file not found. + /// + public static string Program_UI_Error_ConfigFileNotFound { + get { + return ResourceManager.GetString("Program_UI_Error_ConfigFileNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Insufficient system rights for LogExpert. Maybe you have started it from a network drive. Please start LogExpert from a local drive.\n ({0}). + /// + public static string Program_UI_Error_InsufficientRights { + get { + return ResourceManager.GetString("Program_UI_Error_InsufficientRights", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot open connection to first instance ({0}). + /// + public static string Program_UI_Error_Pipe_CannotConnectToFirstInstance { + get { + return ResourceManager.GetString("Program_UI_Error_Pipe_CannotConnectToFirstInstance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close existing tabs. + /// + public static string ProjectLoadDlg_UI_Button_CloseTabs { + get { + return ResourceManager.GetString("ProjectLoadDlg_UI_Button_CloseTabs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ignore layout data. + /// + public static string ProjectLoadDlg_UI_Button_Ignore { + get { + return ResourceManager.GetString("ProjectLoadDlg_UI_Button_Ignore", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open new window. + /// + public static string ProjectLoadDlg_UI_Button_NewWindow { + get { + return ResourceManager.GetString("ProjectLoadDlg_UI_Button_NewWindow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please choose how to proceed:. + /// + public static string ProjectLoadDlg_UI_Label_ChooseHowToProceed { + get { + return ResourceManager.GetString("ProjectLoadDlg_UI_Label_ChooseHowToProceed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Restoring layout requires an empty workbench.\n\n. + /// + public static string ProjectLoadDlg_UI_Label_Informational { + get { + return ResourceManager.GetString("ProjectLoadDlg_UI_Label_Informational", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Loading Session. + /// + public static string ProjectLoadDlg_UI_Title { + get { + return ResourceManager.GetString("ProjectLoadDlg_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RegEx.htm. + /// + public static string RegexHelperDialog_Help_Chapter { + get { + return ResourceManager.GetString("RegexHelperDialog_Help_Chapter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Case sensitive. + /// + public static string RegexHelperDialog_UI_CheckBox_CaseSensitive { + get { + return ResourceManager.GetString("RegexHelperDialog_UI_CheckBox_CaseSensitive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Matches:. + /// + public static string RegexHelperDialog_UI_Label_Matches { + get { + return ResourceManager.GetString("RegexHelperDialog_UI_Label_Matches", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Regular Expression:. + /// + public static string RegexHelperDialog_UI_Label_Regex { + get { + return ResourceManager.GetString("RegexHelperDialog_UI_Label_Regex", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test text:. + /// + public static string RegexHelperDialog_UI_Label_TestText { + get { + return ResourceManager.GetString("RegexHelperDialog_UI_Label_TestText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No valid regex pattern. + /// + public static string RegexHelperDialog_UI_TextBox_Matches_NoValidRegexPattern { + get { + return ResourceManager.GetString("RegexHelperDialog_UI_TextBox_Matches_NoValidRegexPattern", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Regex-Helper. + /// + public static string RegexHelperDialog_UI_Title { + get { + return ResourceManager.GetString("RegexHelperDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Restart_alt { + get { + object obj = ResourceManager.GetObject("Restart_alt", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Search { + get { + object obj = ResourceManager.GetObject("Search", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Regex-&Helper. + /// + public static string SearchDialog_UI_Button_RegexHelper { + get { + return ResourceManager.GetString("SearchDialog_UI_Button_RegexHelper", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &Case sensitive. + /// + public static string SearchDialog_UI_CheckBox_CaseSensitive { + get { + return ResourceManager.GetString("SearchDialog_UI_CheckBox_CaseSensitive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &Regular expression. + /// + public static string SearchDialog_UI_CheckBox_RegularExpression { + get { + return ResourceManager.GetString("SearchDialog_UI_CheckBox_RegularExpression", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error during creation of search parameter\r\n{0}. + /// + public static string SearchDialog_UI_Error_CreatingSearchParameter { + get { + return ResourceManager.GetString("SearchDialog_UI_Error_CreatingSearchParameter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search text is empty. + /// + public static string SearchDialog_UI_Error_SearchTextEmpty { + get { + return ResourceManager.GetString("SearchDialog_UI_Error_SearchTextEmpty", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Direction. + /// + public static string SearchDialog_UI_GroupBox_Direction { + get { + return ResourceManager.GetString("SearchDialog_UI_GroupBox_Direction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Options. + /// + public static string SearchDialog_UI_GroupBox_Options { + get { + return ResourceManager.GetString("SearchDialog_UI_GroupBox_Options", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search start. + /// + public static string SearchDialog_UI_GroupBox_SearchStart { + get { + return ResourceManager.GetString("SearchDialog_UI_GroupBox_SearchStart", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &Search for:. + /// + public static string SearchDialog_UI_Label_SearchFor { + get { + return ResourceManager.GetString("SearchDialog_UI_Label_SearchFor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Backward. + /// + public static string SearchDialog_UI_RadioButton_Backward { + get { + return ResourceManager.GetString("SearchDialog_UI_RadioButton_Backward", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Forward. + /// + public static string SearchDialog_UI_RadioButton_Forward { + get { + return ResourceManager.GetString("SearchDialog_UI_RadioButton_Forward", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to From selected line. + /// + public static string SearchDialog_UI_RadioButton_FromSelectedLine { + get { + return ResourceManager.GetString("SearchDialog_UI_RadioButton_FromSelectedLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to From top. + /// + public static string SearchDialog_UI_RadioButton_FromTop { + get { + return ResourceManager.GetString("SearchDialog_UI_RadioButton_FromTop", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search. + /// + public static string SearchDialog_UI_Title { + get { + return ResourceManager.GetString("SearchDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cancel search. + /// + public static string SearchProgressDialog_UI_Button_CancelSearch { + get { + return ResourceManager.GetString("SearchProgressDialog_UI_Button_CancelSearch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Searching in progress.... + /// + public static string SearchProgressDialog_UI_Label_SearchingInProgress { + get { + return ResourceManager.GetString("SearchProgressDialog_UI_Label_SearchingInProgress", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Searching.... + /// + public static string SearchProgressDialog_UI_Title { + get { + return ResourceManager.GetString("SearchProgressDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Settings { + get { + object obj = ResourceManager.GetObject("Settings", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Settings. + /// + public static string SettingsDialog_Form_Text { + get { + return ResourceManager.GetString("SettingsDialog_Form_Text", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Activate Portable Mode. + /// + public static string SettingsDialog_UI_ActivatePortableMode { + get { + return ResourceManager.GetString("SettingsDialog_UI_ActivatePortableMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to .... + /// + public static string SettingsDialog_UI_Button_buttonArguments { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonArguments", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Change.... + /// + public static string SettingsDialog_UI_Button_buttonChangeFont { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonChangeFont", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configure.... + /// + public static string SettingsDialog_UI_Button_buttonConfigPlugin { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonConfigPlugin", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delete. + /// + public static string SettingsDialog_UI_Button_buttonDelete { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonDelete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Icon.... + /// + public static string SettingsDialog_UI_Button_buttonIcon { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonIcon", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to .... + /// + public static string SettingsDialog_UI_Button_buttonSessionSaveDir { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonSessionSaveDir", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Color.... + /// + public static string SettingsDialog_UI_Button_buttonTailColor { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonTailColor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Color.... + /// + public static string SettingsDialog_UI_Button_buttonTimespreadColor { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonTimespreadColor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to .... + /// + public static string SettingsDialog_UI_Button_buttonTool { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonTool", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add new. + /// + public static string SettingsDialog_UI_Button_buttonToolAdd { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonToolAdd", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove. + /// + public static string SettingsDialog_UI_Button_buttonToolDelete { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonToolDelete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Down. + /// + public static string SettingsDialog_UI_Button_buttonToolDown { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonToolDown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Up. + /// + public static string SettingsDialog_UI_Button_buttonToolUp { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonToolUp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to .... + /// + public static string SettingsDialog_UI_Button_buttonWorkingDir { + get { + return ResourceManager.GetString("SettingsDialog_UI_Button_buttonWorkingDir", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ask before closing tabs. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxAskCloseTabs { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxAskCloseTabs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Automatically pick for new files. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxAutoPick { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxAutoPick", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show column finder. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxColumnFinder { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxColumnFinder", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set last column width. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxColumnSize { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxColumnSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Dark Mode (restart required). + /// + public static string SettingsDialog_UI_CheckBox_checkBoxDarkMode { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxDarkMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Filter tail enabled. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxFilterTail { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxFilterTail", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Follow tail enabled. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxFollowTail { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxFollowTail", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use legacy file reader (slower). + /// + public static string SettingsDialog_UI_CheckBox_checkBoxLegacyReader { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxLegacyReader", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mask has priority before history. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxMaskPrio { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxMaskPrio", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Multi threaded filter. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxMultiThread { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxMultiThread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Re-open last used files. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxOpenLastFiles { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxOpenLastFiles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Activate Portable Mode. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxPortableMode { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxPortableMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Reverse alpha. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxReverseAlpha { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxReverseAlpha", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Save and restore filter and filter tabs. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxSaveFilter { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxSaveFilter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Automatically save persistence files (.lxp). + /// + public static string SettingsDialog_UI_CheckBox_checkBoxSaveSessions { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxSaveSessions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show Error Message?. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxShowErrorMessageOnlyOneInstance { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxShowErrorMessageOnlyOneInstance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Allow only 1 Instance. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxSingleInstance { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxSingleInstance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sync filter list enabled. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxSyncFilter { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxSyncFilter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Pipe sysout to tab. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxSysout { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxSysout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show tail state on tabs. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxTailState { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxTailState", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show time spread. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxTimeSpread { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxTimeSpread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show timestamp control, if supported by columnizer. + /// + public static string SettingsDialog_UI_CheckBox_checkBoxTimestamp { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_checkBoxTimestamp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Slower but more compatible with strange linefeeds and encodings. + /// + public static string SettingsDialog_UI_CheckBox_ToolTip_toolTipLegacyReader { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_ToolTip_toolTipLegacyReader", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If this mode is activated, the save file will be loaded from the Executable Location. + /// + public static string SettingsDialog_UI_CheckBox_ToolTip_toolTipPortableMode { + get { + return ResourceManager.GetString("SettingsDialog_UI_CheckBox_ToolTip_toolTipPortableMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to HeaderName. + /// + public static string SettingsDialog_UI_ComboBox_Encoding_ValueMember_HeaderName { + get { + return ResourceManager.GetString("SettingsDialog_UI_ComboBox_Encoding_ValueMember_HeaderName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Encoding to be used when no BOM header and no persistence data is available.. + /// + public static string SettingsDialog_UI_ComboBox_ToolTip_toolTipEncoding { + get { + return ResourceManager.GetString("SettingsDialog_UI_ComboBox_ToolTip_toolTipEncoding", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Userinterface language. + /// + public static string SettingsDialog_UI_ComboBox_ToolTip_toolTipLanguage { + get { + return ResourceManager.GetString("SettingsDialog_UI_ComboBox_ToolTip_toolTipLanguage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not create / delete marker for Portable Mode: {0}. + /// + public static string SettingsDialog_UI_CouldNotCreatePortableMode { + get { + return ResourceManager.GetString("SettingsDialog_UI_CouldNotCreatePortableMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Columnizer. + /// + public static string SettingsDialog_UI_DataGridViewComboBoxColumn_Columnizer { + get { + return ResourceManager.GetString("SettingsDialog_UI_DataGridViewComboBoxColumn_Columnizer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Highlight group. + /// + public static string SettingsDialog_UI_DataGridViewComboBoxColumn_HighlightGroup { + get { + return ResourceManager.GetString("SettingsDialog_UI_DataGridViewComboBoxColumn_HighlightGroup", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File name mask (RegEx). + /// + public static string SettingsDialog_UI_DataGridViewTextBoxColumn_FileMask { + get { + return ResourceManager.GetString("SettingsDialog_UI_DataGridViewTextBoxColumn_FileMask", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File name mask (RegEx). + /// + public static string SettingsDialog_UI_DataGridViewTextBoxColumn_FileName { + get { + return ResourceManager.GetString("SettingsDialog_UI_DataGridViewTextBoxColumn_FileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deactivate Portable Mode. + /// + public static string SettingsDialog_UI_DeActivatePortableMode { + get { + return ResourceManager.GetString("SettingsDialog_UI_DeActivatePortableMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings could not be imported: {0}. + /// + public static string SettingsDialog_UI_Error_SettingsCouldNotBeImported { + get { + return ResourceManager.GetString("SettingsDialog_UI_Error_SettingsCouldNotBeImported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings {0}|All files {1}. + /// + public static string SettingsDialog_UI_Filter_ExportSettings { + get { + return ResourceManager.GetString("SettingsDialog_UI_Filter_ExportSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose folder for LogExpert's session files. + /// + public static string SettingsDialog_UI_FolderBrowser_folderBrowserSessionSaveDir { + get { + return ResourceManager.GetString("SettingsDialog_UI_FolderBrowser_folderBrowserSessionSaveDir", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select a working directory. + /// + public static string SettingsDialog_UI_FolderBrowser_folderBrowserWorkingDir { + get { + return ResourceManager.GetString("SettingsDialog_UI_FolderBrowser_folderBrowserWorkingDir", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CPU and stuff. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxCPUAndStuff { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxCPUAndStuff", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Default filename pattern. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxDefaultFileNamePattern { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxDefaultFileNamePattern", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Defaults. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxDefaults { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxDefaults", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Display mode. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxDisplayMode { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxDisplayMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Font. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxFont { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxFont", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Line buffer usage. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxLineBufferUsage { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxLineBufferUsage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Misc. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxMisc { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxMisc", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mouse Drag Default. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxMouseDragDefaults { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxMouseDragDefaults", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Persistence file location. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxPersistantFileLocation { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxPersistantFileLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Plugins. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxPlugins { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxPlugins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxSettings { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time spread display. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxTimeSpreadDisplay { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxTimeSpreadDisplay", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Timestamp navigation control. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxTimeStampNavigationControl { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxTimeStampNavigationControl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tool settings. + /// + public static string SettingsDialog_UI_GroupBox_groupBoxToolSettings { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxToolSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to When opening multiple files.... + /// + public static string SettingsDialog_UI_GroupBox_groupBoxWhenOpeningMultiFile { + get { + return ResourceManager.GetString("SettingsDialog_UI_GroupBox_groupBoxWhenOpeningMultiFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Arguments:. + /// + public static string SettingsDialog_UI_Label_labelArguments { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelArguments", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Default encoding. + /// + public static string SettingsDialog_UI_Label_labelDefaultEncoding { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelDefaultEncoding", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File polling interval (ms):. + /// + public static string SettingsDialog_UI_Label_labelFilePollingInterval { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelFilePollingInterval", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Font. + /// + public static string SettingsDialog_UI_Label_labelFont { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelFont", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hint: Pressing the Shift key while dropping files onto LogExpert will switch the behaviour from single to multi and vice versa.. + /// + public static string SettingsDialog_UI_Label_labelHintMultiFile { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelHintMultiFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Changes will take effect on next file load. + /// + public static string SettingsDialog_UI_Label_labelInfo { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelInfo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Language (requires restart):. + /// + public static string SettingsDialog_UI_Label_labelLanguage { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelLanguage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Lines/block. + /// + public static string SettingsDialog_UI_Label_labelLinesPerBlock { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelLinesPerBlock", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max days:. + /// + public static string SettingsDialog_UI_Label_labelMaxDays { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelMaxDays", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum filter entries. + /// + public static string SettingsDialog_UI_Label_labelMaximumFilterEntries { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelMaximumFilterEntries", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum filter entries displayed. + /// + public static string SettingsDialog_UI_Label_labelMaximumFilterEntriesDisplayed { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelMaximumFilterEntriesDisplayed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Line Length (restart required). + /// + public static string SettingsDialog_UI_Label_labelMaximumLineLength { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelMaximumLineLength", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note: You can always load your logfiles as MultiFile automatically if the files names follow the MultiFile naming rule (<filename>, <filename>.1, <filename>.2, ...). Simply choose 'MultiFile' from the File menu after loading the first file.. + /// + public static string SettingsDialog_UI_Label_labelNoteMultiFile { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelNoteMultiFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Number of blocks. + /// + public static string SettingsDialog_UI_Label_labelNumberOfBlocks { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelNumberOfBlocks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Pattern:. + /// + public static string SettingsDialog_UI_Label_labelPattern { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelPattern", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Place Holder Text, this will be replaced programmatically. + /// + public static string SettingsDialog_UI_Label_labelSessionSaveOwnDir { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelSessionSaveOwnDir", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Program:. + /// + public static string SettingsDialog_UI_Label_labelTool { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelTool", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Columnizer for output:. + /// + public static string SettingsDialog_UI_Label_labelToolColumnizerForOutput { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelToolColumnizerForOutput", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Name:. + /// + public static string SettingsDialog_UI_Label_labelToolName { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelToolName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You can configure as many tools as you want. + ///Checked tools will appear in the icon bar. All other tools are available in the tools menu.. + /// + public static string SettingsDialog_UI_Label_labelToolsDescription { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelToolsDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ! Changing the Maximum Line Length can impact performance and is not recommended !. + /// + public static string SettingsDialog_UI_Label_labelWarningMaximumLineLength { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelWarningMaximumLineLength", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Working dir:. + /// + public static string SettingsDialog_UI_Label_labelWorkingDir { + get { + return ResourceManager.GetString("SettingsDialog_UI_Label_labelWorkingDir", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ask what to do. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonAskWhatToDo { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonAskWhatToDo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Horizontal. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonHorizMouseDrag { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonHorizMouseDrag", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Line view. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonLineView { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonLineView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Load every file into a separate tab. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonLoadEveryFileIntoSeperatedTab { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonLoadEveryFileIntoSeperatedTab", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Application startup directory. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonSessionApplicationStartupDir { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonSessionApplicationStartupDir", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Same directory as log file. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonSessionSameDir { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonSessionSameDir", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to MyDocuments/LogExpert. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonsessionSaveDocuments { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonsessionSaveDocuments", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Own directory. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonSessionSaveOwn { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonSessionSaveOwn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time view. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonTimeView { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonTimeView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Treat all files as one MultiFile. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonTreatAllFilesAsOneMultifile { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonTreatAllFilesAsOneMultifile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vertical. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonVerticalMouseDrag { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonVerticalMouseDrag", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vertical Inverted. + /// + public static string SettingsDialog_UI_RadioButton_radioButtonVerticalMouseDragInverted { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_radioButtonVerticalMouseDragInverted", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This path is based on the executable and where it has been started from.. + /// + public static string SettingsDialog_UI_RadioButton_ToolTip_toolTipSessionApplicationStartupDir { + get { + return ResourceManager.GetString("SettingsDialog_UI_RadioButton_ToolTip_toolTipSessionApplicationStartupDir", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings imported. + /// + public static string SettingsDialog_UI_SettingsImported { + get { + return ResourceManager.GetString("SettingsDialog_UI_SettingsImported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Columnizers. + /// + public static string SettingsDialog_UI_TabPage_tabPageColumnizers { + get { + return ResourceManager.GetString("SettingsDialog_UI_TabPage_tabPageColumnizers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to External Tools. + /// + public static string SettingsDialog_UI_TabPage_tabPageExternalTools { + get { + return ResourceManager.GetString("SettingsDialog_UI_TabPage_tabPageExternalTools", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Highlight. + /// + public static string SettingsDialog_UI_TabPage_tabPageHighlightMask { + get { + return ResourceManager.GetString("SettingsDialog_UI_TabPage_tabPageHighlightMask", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Memory/CPU. + /// + public static string SettingsDialog_UI_TabPage_tabPageMemory { + get { + return ResourceManager.GetString("SettingsDialog_UI_TabPage_tabPageMemory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to MultiFile. + /// + public static string SettingsDialog_UI_TabPage_tabPageMultiFile { + get { + return ResourceManager.GetString("SettingsDialog_UI_TabPage_tabPageMultiFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Plugins. + /// + public static string SettingsDialog_UI_TabPage_tabPagePlugins { + get { + return ResourceManager.GetString("SettingsDialog_UI_TabPage_tabPagePlugins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Persistence. + /// + public static string SettingsDialog_UI_TabPage_tabPageSessions { + get { + return ResourceManager.GetString("SettingsDialog_UI_TabPage_tabPageSessions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Timestamp features. + /// + public static string SettingsDialog_UI_TabPage_tabPageTimeStampFeatures { + get { + return ResourceManager.GetString("SettingsDialog_UI_TabPage_tabPageTimeStampFeatures", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to View settings. + /// + public static string SettingsDialog_UI_TabPage_tabPageViewSettings { + get { + return ResourceManager.GetString("SettingsDialog_UI_TabPage_tabPageViewSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Export Settings to file. + /// + public static string SettingsDialog_UI_Title_ExportSettings { + get { + return ResourceManager.GetString("SettingsDialog_UI_Title_ExportSettings", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Star { + get { + object obj = ResourceManager.GetObject("Star", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Name:. + /// + public static string TabRenameDialog_UI_Label_Name { + get { + return ResourceManager.GetString("TabRenameDialog_UI_Label_Name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rename Tab. + /// + public static string TabRenameDialog_UI_Title { + get { + return ResourceManager.GetString("TabRenameDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Calculating time spread view.... + /// + public static string TimeSpreadingControl_UI_GFX_OnTimeSpreadCalcStartCalc_CalculatingTimeSpreadView { + get { + return ResourceManager.GetString("TimeSpreadingControl_UI_GFX_OnTimeSpreadCalcStartCalc_CalculatingTimeSpreadView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Line {0} + ///{1}. + /// + public static string TimeSpreadingControl_UI_ToolTip { + get { + return ResourceManager.GetString("TimeSpreadingControl_UI_ToolTip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RegEx Help. + /// + public static string ToolArgsDialog_UI_Button_RegexHelp { + get { + return ResourceManager.GetString("ToolArgsDialog_UI_Button_RegexHelp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test. + /// + public static string ToolArgsDialog_UI_Button_Test { + get { + return ResourceManager.GetString("ToolArgsDialog_UI_Button_Test", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to %L = Current line number + ///%N = Current log file name without path + ///%P = Path (directory) of current log file + ///%F = Full name (incl. path) of log file + ///%E = Extension of log file name (e.g. 'txt') + ///%M = Name of log file without extension + ///%S = User (from URI) + ///%R = Path (from URI) + ///%H = Host (from URI) + ///%T = Port (from URI) + ///?\"<name>\" = variable parameter 'name' + ///?\"<name>\"(def1,def2,...) = variable parameter with predefined values + ///{<regex>}{<replace>}: + ///Regex search/replace on current selected line. + /// + public static string ToolArgsDialog_UI_HelpText { + get { + return ResourceManager.GetString("ToolArgsDialog_UI_HelpText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enter command line:. + /// + public static string ToolArgsDialog_UI_Label_EnterCommandLine { + get { + return ResourceManager.GetString("ToolArgsDialog_UI_Label_EnterCommandLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tool Arguments Help. + /// + public static string ToolArgsDialog_UI_Title { + get { + return ResourceManager.GetString("ToolArgsDialog_UI_Title", resourceCulture); } } } diff --git a/src/LogExpert.Resources/Resources.de.Designer.cs b/src/LogExpert.Resources/Resources.de.Designer.cs new file mode 100644 index 00000000..7bb1227c --- /dev/null +++ b/src/LogExpert.Resources/Resources.de.Designer.cs @@ -0,0 +1,343 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace LogExpert { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources___Copy { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources___Copy() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LogExpert.Resources - Copy", typeof(Resources___Copy).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Add { + get { + object obj = ResourceManager.GetObject("Add", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Arrow_menu_close { + get { + object obj = ResourceManager.GetObject("Arrow_menu_close", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Arrow_menu_open { + get { + object obj = ResourceManager.GetObject("Arrow_menu_open", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap ArrowDown { + get { + object obj = ResourceManager.GetObject("ArrowDown", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap ArrowLeft { + get { + object obj = ResourceManager.GetObject("ArrowLeft", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap ArrowRight { + get { + object obj = ResourceManager.GetObject("ArrowRight", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap ArrowUp { + get { + object obj = ResourceManager.GetObject("ArrowUp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Bookmark_add { + get { + object obj = ResourceManager.GetObject("Bookmark_add", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Bookmark_added { + get { + object obj = ResourceManager.GetObject("Bookmark_added", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap bookmark_bubbles { + get { + object obj = ResourceManager.GetObject("bookmark_bubbles", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Bookmark_manager { + get { + object obj = ResourceManager.GetObject("Bookmark_manager", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Bookmark_remove { + get { + object obj = ResourceManager.GetObject("Bookmark_remove", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Bookmarks { + get { + object obj = ResourceManager.GetObject("Bookmarks", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Check_circle { + get { + object obj = ResourceManager.GetObject("Check_circle", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Close { + get { + object obj = ResourceManager.GetObject("Close", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Deceased { + get { + object obj = ResourceManager.GetObject("Deceased", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Delete { + get { + object obj = ResourceManager.GetObject("Delete", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Exit { + get { + object obj = ResourceManager.GetObject("Exit", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Favorite { + get { + object obj = ResourceManager.GetObject("Favorite", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap File_open { + get { + object obj = ResourceManager.GetObject("File_open", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Filter { + get { + object obj = ResourceManager.GetObject("Filter", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Folder_open { + get { + object obj = ResourceManager.GetObject("Folder_open", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap LogLover { + get { + object obj = ResourceManager.GetObject("LogLover", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Pro_Filter { + get { + object obj = ResourceManager.GetObject("Pro_Filter", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Restart_alt { + get { + object obj = ResourceManager.GetObject("Restart_alt", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Search { + get { + object obj = ResourceManager.GetObject("Search", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Settings { + get { + object obj = ResourceManager.GetObject("Settings", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Star { + get { + object obj = ResourceManager.GetObject("Star", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/src/LogExpert.Resources/Resources.de.resx b/src/LogExpert.Resources/Resources.de.resx new file mode 100644 index 00000000..a9aa6dbc --- /dev/null +++ b/src/LogExpert.Resources/Resources.de.resx @@ -0,0 +1,2135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + images\png\48\Add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Add + + + images\png\48\ArrowDown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ArrowDown + + + images\png\48\ArrowLeft.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\ArrowRight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\ArrowUp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Arrow_menu_close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Arrow_menu_close + + + images\png\48\Arrow_menu_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Arrow_menu_open + + + images\png\48\Bookmarks.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Bookmark_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Bookmark_added.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\bookmark_bubbles.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Bookmark_manager.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Bookmark_remove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Check_circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Deceased.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Exit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Favorite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\File_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Filter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Folder_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + LogExpert + + + images\gif\LogLover.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Logexpert Logo + + + Konfigurationsdatei konnte nicht gefunden werden + + + images\bmp\Pro_Filter.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Restart_alt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Search.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Settings Logo + + + images\png\48\Star.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + LogExpert Fehler + + + Die Verbindung zur ersten Instanz kann nicht geöffnet werden: {0} + + + Einstellungen importiert + + + Einstellungen konnte nicht importiert werden: {0} + + + Exportieren der Einstellungen in eine Datei + + + Einstellungen (*.json)|*.json|Alle Dateien (*.*) + + + Kopie von + + + Neue Gruppe + + + Fehler während des Hinzufügens eines Highlighteintrages. +{0} + + + Die Regex ist "null" oder besteht nur aus Leerzeichen + + + [Default] + + + Während des Speichern des Highlighteintrages ist ein Fehler aufgetreten: {0} + + + Zeile + + + RmEndSession: {0} + + + Die Liste der Prozesse, die, die Ressource sperren, kann nicht angezeigt werden. Die Länge des Resultats konnte nicht gefunden werden. + + + Die Liste der Prozesse, die, die Ressource sperren, kann nicht angezeigt werden + + + Die Ressource kann nicht registriert werden. + + + Die Session konnte nicht neu gestartet werden. Die Dateisperre konnte nicht festgestellt werden. + + + Kein Prozess sperrt den angegebenen Pfad + + + ->F + + + 0 + + + {0}->C + + + {0}->Clip + + + Löschen + + + In Tab filtern + + + Filter speichern + + + Suchen + + + Erweiterung anzeigen... + + + Starten des Filters + + + Automatisch verstecken + + + Regex + + + Sync + + + Ende Filtern + + + Match invertieren + + + Bereich durchsuchen + + + Rückstreuung + + + Vorwärtsstreuung + + + Fuzzyness + + + Spaltenname: + + + Spaltenamen + + + Text & Filter: + + + {0} + + + Datei wird geladen... + + + Laden {0} + + + Wirklich schließen? + + + Eingefroren + + + Erweiterung verstecken... + + + Erweiterung anzeigen... + + + Farbe... + + + Kopieren + + + Fehler in {0}: {1} + + + Spalten... + + + Spalten, für die Restriktion, auswählen + + + Ausgewählten Eintrag nach unten verschieben + + + Alle Tabs werden auf den selektierten Zeitstempel verschoben, sofern möglich + + + Verschiebe diese Spalte an die letzte Position + + + Verstecke diese Spalte + + + Kopieren der markierten Zeilen in einen neuen Tab + + + Editieren des Lesezeichenkommentars + + + Umschalter Lesezeichen + + + Zeitsynchronisierte Dateien + + + Temp Highlights + + + Den markierten Text als Lesezeichenkommentar setzen + + + Lesezeichen auf markierte Zeile setzen + + + Zur Spalte scrollen... + + + Alle Tabs zum aktuellen Zeitstempel scrollen + + + Spalten wiederherstellen + + + Alle entfernen + + + Verschieben zur letzten Spalte + + + Verschieben nach rechts + + + Verschieben nach links + + + Markiere die getroffenen Filter in der Loganzeige + + + Markier/Editier Modus + + + Markiere den derzeitigen Filterbereich + + + Alles permanent machen + + + Lokalisiere die gefilterten Zeilen in der originalen Datei + + + Markiere die Selektion in der Logdatei (Wörter Modus) + + + Markiere die Selektion in der Logdatei (Zeilen Modus) + + + Verstecke Spalte + + + Friere alle Spalten von der links markieren bis hier her + + + Befreie das Fenster von der Zeitsynchronisierung + + + Filtere in einen neuen Tab + + + Filter die Markierung + + + In einen neuen Tab kopieren + + + In die Zwischenablage kopieren + + + Lesezeichenkommentar... + + + An diesem Lesezeichen hängt ein Kommentar. Soll es wirklich gelöscht werden? + + + Wähle eine Datei, aus der die Lesezeichen geladen werden sollen + + + Wähle eine Datei, in die, die Lesezeichen gespeichert werden sollen + + + Es gibt einige Kommentare in den Lesezeichen. Sollen diese wirklich gelöscht werden? + + + Friere alle Spalten von der links markieren bis hier her ({0}) + + + Schreiben der Temporären Datei.... ESC drücken um diesen Vorgang abzubrechen. + + + Unbekanntes Problem beim abschneiden der Datei + + + Abschneiden der Datei ist fehlgeschlagen: Datei ist gesperrt von {0} + + + Zeitdifferenz ist {0} + + + {0} ausgewählte Zeilen + + + Suche... ESC drücken um diesen Vorgang abzubrechen. + + + Filterung... ESC drücken um diesen Vorgang abzubrechen. + + + Filterzeit: {0} ms. + + + Datei nicht gefunden + + + Gestartet vom Ende der Datei + + + Gestartet vom Anfang der Datei + + + Nicht gefunden: {0} + + + Ungültige Regular Expression + + + Suchresultat nicht gefunden + + + Unbekannter Fehler beim Speichern der Persistenten Daten: {0} + + + Kann die Datei nicht laden +{0} + + + Doppelklick um den gespeicherten Filter zu laden + + + Fuzzy Suchlevel (0 = fuzzy aus) + + + Hinzufügen der nachfolgenden Zeilen zum Suchresultat (Nach ob/unten ziehen, Shift drücken für eine feiner Einstellung) + + + Hinzufügen der vorausfolgenden Zeilen zum Suchresultat (Nach ob/unten ziehen, Shift drücken für eine feiner Einstellung) + + + CSV Datei (*.csv)|*.csv|Lesezeichen Datei (*.bmk)|*.bmk + + + Ausnahmefehler während der Filterung. Bitte an den Entwickler weiterleiten: +{0} +{1} + + + Fehler während des Imports der Lesezeichenliste: {0} + + + Fehler während des Exports der Lesezeichenliste: {0} + + + zweiter Suchtext ('End Text') wenn ein Suchbereich benutzt wird + + + Suchtext für den Filter + + + Auswahl der Spalte zu der gesprungen werden soll + + + Aktiviere einen speziellen Suchmodus in welchem alles zwischen zwei gegebenen Suchtermen gefiltert wird. + + + Invertieren des Suchresultats + + + Filterung des Dateiendes (dadurch wird die Filteranzeige aktuelle gehalten, wenn Dateiänderungen stattfinden) + + + Synchronisierung der ausgewählten Zeile in der Filteranzeige zu der Zeile in der Loganzeige + + + Benutzen eines regulären Ausdrucks (rechts klick für den RegeEx-Helfer Dialog) + + + Sofortiges Filtern nachdem ein gespeicherter Filter geladen wurde + + + Macht den Filter Schreibempfindlich (Groß/Kleinschreibung wird beachtet) + + + Schränke die Suche auf die Spalten ein + + + Versteckt die Filterliste nachdem die Filter geladen wurden + + + Autostart + + + Groß-/Kleinschreibung + + + Spaltenrestriktion + + + Öffnen oder Schließen einer Liste mit gespeicherten Filter + + + Aktivieren/Deaktivieren der Erweiterten Filteranzeige + + + Verschiebe den selektierten Eintrag nach oben + + + Öffne einen neuen Tab mit dem gefilterten Bereich + + + Fehler während des Löschens der Filterliste: {0} + + + (Invertiere Match) + + + Spalten restriktion + + + Filter: {0} {1}{2} + + + Zwischenablage + + + Eingfügt am {0} + + + Unzureichende Rechte {0}: {1} + + + Fehler während {0} value {1}, min {2}, max {3}, visible {4}: {5} + + + linien + + + Linien: + + + ->E + + + Das ist eine Test Fehlermeldung, geworfen durch einen Async Delegate + + + Das ist eine Test Fehlermeldung, geworfen durch einen Hintergrund Thread + + + LogExpert Session {0} + + + Das ist eine Test Fehlermeldung, geworfen durch den GUI Thread + + + Maximale Anzahl an Filtereinträge die angezeigt werden + + + Maximale Zeilenlänge (neustart benötigt) + + + ! Ändern der Maximalen Zeilenlänge kann Probleme bei der Performance auslösen und sollte daher nicht durchgeführt werden ! + + + Maximale Anzahl an Filtereinträgen + + + Default Encoding + + + Entfernen + + + Farbe... + + + Ändern... + + + Farbe... + + + Zeilen/Block + + + Anzahl an Blöcken + + + Schriftart + + + Datei Polling Interval (ms): + + + Änderungen treten nach dem nächsten Laden der Datei in Kraft + + + Pattern: + + + Maximale Tage: + + + Argumente: + + + Programm: + + + Columnizer für den Output: + + + Name: + + + Arbeitsverzeichnis: + + + ... + + + ... + + + ... + + + &Ok + + + &Abbrechen + + + &Importieren... + + + Standard Dateinamen Pattern + + + Misc + + + Standards + + + Schriftart + + + Anzeige Modus + + + Tool Einstellungen + + + Speichern und wiederherstellen der Filter und Filtertabs + + + Automatisches Speichern der Persistierten Dateien (.lxp) + + + Applikationsstartupverzeichnis + + + Dateinamenmaske (Regex) + + + Dateinamenmaske (Regex) + + + Columnizer + + + Highlightgruppe + + + Einstellungen + + + Kopfname + + + Arbeitsverzeichnis auswählen + + + Einstellungen {0}|Alle Dateien {1} + + + Gleiches Verzeichnis wie die Logdatei + + + Einstellungen konnte nicht importiert werden: {0} + + + Meine Dokumente/LogExpert + + + Eigenes Verzeichnis + + + Plugins + + + Neues hinzufügen + + + Runter + + + Rauf + + + ... + + + Behandle alle Dateien als Multidateien + + + Nachfragen wie sie zu behandeln sind + + + Vertikal + + + Horizontal + + + Vertikal invertiert + + + Zeitanzeige + + + Zeilenanzeige + + + Speicher/CPU + + + Lade jede Datei in einen separaten Tab + + + Peristierte Einstellungen + + + Multidatei + + + Highlight + + + Columnizers + + + Externe Tools + + + Zeitstempel Einstellungen + + + Anzeige Einstellungen + + + Multithreadfilter + + + Benutze den Legacydateiverarbeitung (langsam) + + + Exportiere die Einstellungen in eine Datei + + + Portierbarer Modus konnte nicht erstellt werden: {0} + + + Deaktiveren des portierbaren Modus + + + Aktiveren des portierbaren Modus + + + Wähle ein Verzeichnis für die LogExpert Sessiondateien + + + Langsamer dafür mehr kompatible mit unbekannten Zeilenfeeds und Encodings + + + Bei Aktivierung des Modus, wird die gespeicherte Datei aus dem Verzeichnis der Executable geladen + + + Encoding welches benutzt wird, wenn kein BOM Header oder keine persistierten Daten vorhanden sind. + + + Der Pfad der Executable und wo das Verzeichnis aus dem Programm gestartet wird. + + + Maske hat Priorität bevor Historie + + + Standard Mausdrag verhalten + + + Zeitstempelnavigationsdialog + + + Zeitstreuanzeige + + + Konfigurieren... + + + Löschen + + + Icon... + + + Exportieren... + + + Wenn multiple Dateien geöffnet werden... + + + Plugins + + + Einstellungen + + + Automatisch für neue Dateien auswählen + + + Pipe sysout zu Tab + + + Anzeigen des Zeitstempel Dialogs, sofern der Columnizer dieses unterstützt + + + Anzeigen Zeitstreudialog + + + Alpha rückwärts + + + das Ende filtern aktivieren + + + Synchronisierung der Filter aktivieren + + + Anzeigen der Spaltensuche + + + Dem Ende folgen aktivieren + + + Dark Mode (neustart benötigt) + + + Fragen vor dem schließen des Tabs + + + Nur 1 Instanz erlauben + + + Wiederöffnen der letzten benutzten Dateien + + + Anzeige des "Ende-Folgen"-Status auf dem Tab + + + Letzte Spaltenbreite setzen + + + Anzeigen der Fehlermeldung? + + + Zeilenbufferbenutzung + + + CPU und ähnliches + + + Verzeichnis der Persitierteneinstellungsdatei + + + Portierbaren Modus aktivieren + + + Einstellungen importiert + + + Sie können so viele Tools konfigurieren wie Sie möchten. +Ein ausgewähltes Tool erscheint in der Iconbar. Alle anderen verfügbaren Tools werden im Toolsmenu angezeigt. + + + Place Holder Text, this will be replaced programmatically + + + Hinweis: Mit der Taste Shift kann während die Dateien mittels Drag&Drop auf das LogExpert Fenster gezogen werden, das Verhalten von Einzel- zu Multidatei gewechselt werden und vice versa. + + + Notiz: Sie können immer alle Dateien als Multifile automatisch laden wenn die Dateien die Multidateien Namensregeln folgen (<dateiname>, <dateiname>.1, <dateiname>.2, ...). Wählen Sie hierfür 'Multidatei' vom Dateimenü aus nachdem die erste Datei geladen wurde. + + + Sprache (benötigt neustart): + + + Sprache des Userinterfaces + + + Java Stacktrace Zeile kann nicht geparsed werden + + + Klasse in Eclipse laden + + + {0}Klasse in Eclipse laden + + + Deserialisieren + + + Eclipse Remote Navigation + + + Host + + + Port + + + Passwort + + + Eingabe des Hosts und Ports auf den das Eclipseplugin hört. Sollte ein Password konfiguriert sein, dies bitte auch eingeben. + + + Copyright + + + Version + + + Produktname + + + Information + + + LogExpert besitzt nicht alle Systemrechte. Vielleicht wurde LogExpert aus einem Netzwerklaufwerk gestartet. Bitte LogExpert von einem lokalen Laufwerk starten!\n ({0}) + + + Horizontal verschieben + + + Vertical verschieben + + + Vertical invertiert verschieben + + + Zeitstempel selektieren + + + Info + + + Debug + + + Warn + + + Loglevel + + + Exception werfen (Hintergrundthread) + + + Exception werfen (Async delegate) + + + Exception werfen (GUIthread) + + + Dump GC info + + + GC starten + + + Dump buffer Diagnostik + + + Dump LogBuffer Info + + + Debug + + + Information + + + Hilfe + + + Hilfe anzeigen + + + Tools + + + Konfigurieren... + + + Instanz sperren + + + Zeilenspalte verstecken + + + Immer oben + + + Zellenselektiermodus + + + Einstellungen... + + + Columnizer... + + + Optionen + + + Zu Tab kopieren + + + Berechne Zeitstreuungsanzeige... + + + Zeile{0} +{1} + + + Custom + + + statusStrip1 + + + 0 + + + 0 + + + L: + + + Bereit + + + menuStrip1 + + + Datei + + + Öffnen... + + + URL öffnen... + + + Datei schließen + + + Neuladen + + + Neuer Tab aus der Zwischenablage + + + Multidatei + + + Aktiviere Multidatei + + + Dateinamenmaske... + + + Session laden... + + + Session speichern... + + + Zuletzt benutzt + + + Exit + + + Anzeige/Navigation + + + Gehe zu Zeile... + + + Suche... + + + Filter + + + Lesezeichen + + + Lesezeichenschalter + + + Springe zum nächsten + + + Springe zum vorherigen + + + Lesezeichenliste + + + Spaltenfinder + + + Zeitverschiebung + + + Highlight und Trigger... + + + Ausschalten des Highlightwortmodus + + + Folge dem Ende + + + Datei öffnen + + + Suche + + + Filter + + + Lesezeichenschalter + + + Vorheriges Lesezeichen + + + Nächstes Lesezeichen + + + Anzeigen der Lesezeichenblasen + + + Ende + + + Folge dem Ende + + + diesen Tab schließen + + + Alle anderen Tabs schließen + + + Alle Tabs schließen + + + Tabfarbe... + + + Tab umbenennen... + + + Kopiere den Pfad in die Zwischenablage + + + Im Explorer finden + + + Datei abschneiden + + + Encoding + + + ASCII + + + ANSI + + + ISO-8859-1 + + + UTF8 + + + Unicode + + + +00:00:00.000 + + + Host + + + Zeitoffset (hh:mm:ss.fff) + + + Öffnet eine Datei mittels URL, welche durch das FileSystemPlugin unterstützt wird + + + Erstellt einen neuen Tab mit dem Inhalt der Zwischenablage + + + Behandelt multiple Dateien als eine große Datei (Beispiel: data.log, data.log.1, data.log.2,....) + + + Laden einer gespeicherte Session (Liste der Dateien die geladen werden) + + + Speichern einer Session (alle offenen Tabs) + + + Wenn durch den Columnizer unterstützt, kann ein Offset konfiguriert werden, welches bei der Zeit angezeigt wird + + + Kopiert alle selektierten Zeilen in einen neuen Tab + + + Splittet diverse Logdateien in fixierte Spalten + + + Wechselt zwischen dem Modus eine ganze Reihe zu selektieren oder einzelne Zellen + + + Wenn aktiviert, werden alle neuen LogExpertinstanzen in diese umgeleitet + + + Starten von externen Tools (konfigurierbar in den Einstellungen) + + + Suche + + + Datei öffnen + + + Gehe zum nächsten Lesezeichen + + + Gehe zum vorherigen Lesezeichen + + + Lesezeichenschalter + + + Filterdialog + + + Selektiert die derzeitigen Higlighteinstellungen für die Logdatei (rechts klick um die Highlight Einstellungen zu öffnen) + + + Setzt den Text der am Tab angezeigt wird + + + Alle Tabs schließen + + + Alle Tabs, bis auf diesen, schließen + + + Setzt die Farbe des Tabs + + + Öffnet ein Explorer Fenster und selektiert die Logdatei + + + Der komplette Dateiname (inklusive Pfad) wird in die Zwischenablage kopiert + + + Versucht die Datei im offenen Tab ab zu schneiden + + + Nur eine Instanz ist erlaubt. Deaktivieren von "Anzeigen Setteings => Nur eine Instanz erlauben" um mutliple Instanzen zu starten! + + + Diese Meldung nur einmal zeigen? + + + Lesezeichenkommentar + + + Entferne Kommentar(e) + + + Anzeigen Kommentar Spalte + + + Lesezeichen + + + Lesezeichenkommentar: + + + Wirklich das Lesezeichenkommentar für die selektierten Spalten entfernen? + + + Keine Lesezeichen für die aktuelle Zeile + + + Lesezeichenkommentar + + + Icon datei... + + + Icon Auswählen + + + LogExpert.chm + + + URL Öffnen + + + URL: + + + Geben Sie eine URL ein, die von einem installierten Dateisystem-Plugin unterstützt wird (z. B. file:// oder sftp://) + + + &Suchen nach: + + + &Groß-/Kleinschreibung + + + &Regularexpression + + + Regex-&Hilfe + + + Von oben + + + Von der ausgewählten Zeile + + + Start der Suche + + + Optionen + + + Richtung + + + Rückwärts + + + Vorwärts + + + Suche + + + Suchtext ist leer + + + Fehler beim Erstellen des Suchparameters\r\n{0} + + + Ü&bernehmen + + + &Hinzufügen + + + &Hilfe + + + &Löschen + + + Nach oben + + + Nach unten + + + Hintergrundfarbe + + + Vordergrundfarbe + + + Lesezeichen Kommentar + + + Kopieren + + + Gruppe löschen + + + Nach unten + + + Nach oben + + + Neue Gruppe + + + Wählen... + + + Sie können in den Einstellungen Gruppen zu Dateinamen zuweisen. + + + Hintergrundfarbe + + + Vordergrundfarbe + + + Suchbegriff: + + + Hervorhebungen und Aktionsauslöser + + + RegEx + + + Nicht das "dirty LED" aktivieren + + + Kein Hintergrund + + + Plugin + + + Fett + + + Lesezeichen setzen + + + Wort modus + + + "Follow tail' Funktion deaktivieren + + + Groß-/Kleinschreibung + + + Aktionen + + + Farben + + + Gruppen + + + Kriterien für die Zeilenübereinstimmung + + + Lesezeichen löschen + + + https://github.com/LogExperts/LogExpert + + + RegEx.htm + + + Groß-/Kleinschreibung + + + Regular Expression: + + + Testtext: + + + Regex ist nicht valide + + + Regex-Helfer + + + Matches: + + + Zeilennummer: + + + Gehe zu Zeile + + + Name: + + + Umbenennungstab + + + LogExpert Error + + + In die Zwischenablage kopieren + + + Ein unbehandelter Fehler ist aufgetreten. Bitte melden Sie dies dem Entwickler. + + + Muster + + + Anzahl der Blöcke (Mustervarianten): + + + Block Zeilen: + + + Diese Funktion befindet sich in der Pre-Beta-Phase und funktioniert nicht :)\r\nVerwendung: Wählen Sie einen Bereich im Protokollfenster aus und klicken Sie auf „Recalc“. \r\nDadurch wird nach Textbereichen gesucht, die dem ausgewählten Bereich ähneln. + + + Fuzzy + + + Max diff + + + Max misses + + + Gewichtung + + + (keine Reichweite gesetzt) + + + Neuberechnen + + + Bereich setzen + + + Start: {0}\nEnde: {1} + + + Sitzung laden + + + Das Wiederherstellen des Layouts erfordert eine leere Arbeitsfläche.\n\n + + + Bitte wählen Sie, wie Sie fortfahren möchten: + + + Vorhandene Tabs schließen + + + Neues Fenster öffnen + + + Layoutdaten ignorieren + + + Multidatei Einstellungen + + + Multidatei Einstellungen für: + + + Dateinamemuster: + + + Max Tage: + + + Muster syntax: + +* = alle Zeichen (wildcard) +$D(&lt;date&gt;) = Datumsmuster +$I = Dateiindexnummer +$J = Dateiindexnummer, versteckt wenn 09 +$J(&lt;prefix&gt;) = Wie $J, jedoch wird ein &lt;prefix&gt; hinzugefügt when es nicht 0 ist + +&lt;date&gt;: +DD = Tag +MM = Monat +YY[YY] = Jahr +Alle anderen Zeichen werden benutzt wie sie angegeben sind + + + Spalten + + + Bei leeren Spalten + + + Exakte Übereinstimmung + + + Kein Treffer + + + Such treffer + + + Benutzer vorherigen Inhalt + + + Spalten + + + Wählen Sie eine oder mehrere Spalten aus, um die Suchvorgänge auf die ausgewählten Spalten zu beschränken. + + + Eine leere Spalte ist immer ein Suchtreffer + + + Eine leere Spalte ist ein Suchtreffer, wenn die vorherige nicht leere Spalte ein Suchtreffer war + + + Wenn ausgewählt, muss die Suchzeichenfolge genau übereinstimmen (keine Teilzeichenfolgensuche) + + + Keine Treffer bei leeren Spalten + + + Columnizer + + + Wählen Sie einen Columnizer: + + + Auf alle geöffneten Dateien anwenden + + + Konfigurieren... + + + \r\nUnterstützt Zeitverschiebung: {0} + + + Ja + + + Nein + + + Einstellungen importieren + + + Zu importierende Einstellungsdatei: + + + Datei wählen... + + + Importoptionen + + + Hervorhebungseinstellungen + + + Hervorhebungsdateimasken + + + Columnizer-Dateimasken + + + Externe Tools + + + Andere + + + Bestehende Einstellungen beibehalten + + + Einstellungen aus Datei laden + + + Einstellungen (*.json)|*.json|Alle Dateien (*.*)|*.* + + + Schlüsselwort-Aktion + + + Schlüsselwort-Aktion-Plugin: + + + Parameter + + + Mehrere Dateien laden + + + Lademodus wählen: + + + Einzelne Dateien + + + Multi-Datei + + + Suche... + + + Suche läuft... + + + Suche abbrechen + + + Tool Arguments Hilfe + + + Regex Hilfe + + + Befehlszeile eingeben: + + + Test + + + %L = Aktuelle Zeilennummer +%N = Aktueller Name der Protokolldatei ohne Pfad +%P = Pfad (Verzeichnis) der aktuellen Protokolldatei +%F = Vollständiger Name (inkl. Pfad) der Protokolldatei +%E = Erweiterung des Namens der Protokolldatei (z. B. „txt”) +%M = Name der Protokolldatei ohne Erweiterung +%S = Benutzer (aus URI) +%R = Pfad (aus URI) +%H = Host (aus URI) +%T = Port (aus URI) +?\„<name>\“ = variabler Parameter „name” +?\„<name>\“(def1,def2,...) = variabler Parameter mit vordefinierten Werten +{<regex>}{<replace>}: +Regex-Suche/Ersetzen in der aktuell ausgewählten Zeile + + + Tool-Parameter + + + Wert für Parameter: + + + Datei + + + Öffnen... + + + URL öffnen... + + + Datei schließen + + + Neu laden + + + Neuer Tab aus Zwischenablage + + + Mehrere Dateien + + + Mehrere Dateien aktivieren + + + Dateinamensmaske... + + + Sitzung laden... + + + Sitzung speichern... + + + Lesezeichen exportieren... + + + Zuletzt verwendet + + + Beenden + + + Ansicht/Navigation + + + Gehe zu Zeile... + + + Suchen... + + + Filter + + + Lesezeichen + + + Lesezeichen umschalten + + + Zum nächsten springen + + + Zum vorherigen springen + + + Lesezeichenliste + + + Spaltensuche + + + Kodierung + + + ASCII + + + ANSI + + + ISO-8859-1 + + + UTF8 + + + Unicode + + + Zeitverschiebung + + + +00:00:00.000 + + + In Tab kopieren + + + Optionen + + + Spaltenparser... + + + Hervorhebung und Trigger... + + + Einstellungen... + + + Zellenauswahlmodus + + + Immer im Vordergrund + + + Zeilenspalte ausblenden + + + Instanz sperren + + + Werkzeuge + + + Konfigurieren... + + + Hilfe + + + Hilfe anzeigen + + + Über + + + Debuggen + + + LogBuffer-Info ausgeben + + + Puffer-Diagnose ausgeben + + + Garbage Collection ausführen + + + GC-Info ausgeben + + + Exception werfen (GUI-Thread) + + + Exception werfen (Asynchroner Delegat) + + + Exception werfen (Hintergrund-Thread) + + + Protokollstufe + + + Warnung + + + Info + + + Debug + + + Wort-Hervorhebungsmodus deaktivieren + + + 0 + + + 0 + + + Z: + + + Bereit + + + Ende folgen + + + toolStripContainer1 + + + Datei öffnen + + + Suchen + + + Filter + + + Lesezeichen umschalten + + + Vorheriges Lesezeichen + + + Nächstes Lesezeichen + + + Lesezeichen-Blasen anzeigen + + + Ende + + + Ende folgen + + + Diesen Tab schließen + + + Andere Tabs schließen + + + Alle Tabs schließen + + + Tab-Farbe... + + + Tab umbenennen... + + + Pfad in Zwischenablage kopieren + + + Im Explorer suchen + + + Datei kürzen + + \ No newline at end of file diff --git a/src/LogExpert.Resources/Resources.resx b/src/LogExpert.Resources/Resources.resx index e9b5affe..14690c95 100644 --- a/src/LogExpert.Resources/Resources.resx +++ b/src/LogExpert.Resources/Resources.resx @@ -1,17 +1,17 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - images\png\48\Add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - Add - - - images\png\48\ArrowDown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ArrowDown - - - images\png\48\ArrowLeft.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\ArrowRight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\ArrowUp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Arrow_menu_close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - Arrow_menu_close - - - images\png\48\Arrow_menu_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - Arrow_menu_open - - - images\png\48\Bookmarks.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Bookmark_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Bookmark_added.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\bookmark_bubbles.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Bookmark_manager.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Bookmark_remove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Check_circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Deceased.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Exit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Favorite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\File_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Filter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Folder_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\gif\LogLover.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - Logexpert Logo - - - images\bmp\Pro_Filter.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Restart_alt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Search.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - images\png\48\Settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - Settings Logo - - - images\png\48\Star.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + images\png\48\Add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Add + + + images\png\48\ArrowDown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ArrowDown + + + images\png\48\ArrowLeft.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\ArrowRight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\ArrowUp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Arrow_menu_close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Arrow_menu_close + + + images\png\48\Arrow_menu_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Arrow_menu_open + + + images\png\48\Bookmarks.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Bookmark_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Bookmark_added.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\bookmark_bubbles.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Bookmark_manager.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Bookmark_remove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Check_circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Deceased.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Exit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Favorite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\File_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Filter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Folder_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + LogExpert + LogExpert + + + images\gif\LogLover.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Logexpert Logo + + + Config file not found + + + Insufficient system rights for LogExpert. Maybe you have started it from a network drive. Please start LogExpert from a local drive.\n ({0}) + + + images\bmp\Pro_Filter.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Restart_alt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Search.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + images\png\48\Settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Settings Logo + + + images\png\48\Star.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + LogExpert Error + LogExpert Error Title + + + Cannot open connection to first instance ({0}) + + + Settings imported + + + Settings could not be imported: {0} + + + Export Settings to file + + + Settings (*.json)|*.json|All files (*.*) + + + Copy of + + + New group + + + Error during add of entry. +{0} + + + Regex value is null or whitespace + + + [Default] + + + Error during save of entry.\r\n{0} + + + No processes are locking the path specified + + + Could not begin restart session. Unable to determine file locker. + + + Could not register resource. + + + Could not list processes locking resource + + + Could not list processes locking resource. Failed to get size of result. + + + RmEndSession: {0} + + + Line + + + Sure to close? + + + {0} selected lines + + + Frozen + + + Freeze left columns until here ({0}) + + + Invalid regular expression + + + Loading file... + + + File not found + + + Loading {0} + + + Error in {0}: {1} + + + Time diff is {0} + + + Not found: {0} + + + Started from beginning of file + + + Started from end of file + + + Searching... Press ESC to cancel. + + + There are some comments in the bookmarks. Really remove bookmarks? + + + Error while importing bookmark list: {0} + + + Choose a file to load bookmarks from + + + CSV file (*.csv)|*.csv|Bookmark file (*.bmk)|*.bmk + + + Error while exporting bookmark list: {0} + + + Choose a file to save bookmarks into + + + {0}->Clip + + + {0}->C + + + There's a comment attached to the bookmark. Really remove the bookmark? + + + Unexpected issue truncating file + + + Truncate failed: file is locked by {0} + + + Unexpected error while saving persistence: {0} + + + Cannot load file +{0} + + + Writing to temp file... Press ESC to cancel. + + + ->F + + + Hide advanced... + + + Show advanced... + + + Error occured while clearing filter list: {0} + + + 0 + + + Search result not found + + + Exception while filtering. Please report to developer: +{0} +{1} + + + Filter duration: {0} ms. + + + Filtering... Press ESC to cancel. + + + {0} + + + Select column to scroll to + + + Column name: + + + Copy to clipboard + + + Copy to new tab + + + Copy marked lines into a new tab window + + + Scroll all tabs to current timestamp + + + Scolls all open tabs to the selected timestamp, if possible + + + Time synced files + + + Free this window from time sync + + + Locate filtered line in original file + + + Toggle Boomark + + + Bookmark comment... + + + Mark/Edit-Mode + + + Temp Highlights + + + Remove all + + + Make all permanent + + + Mark current filter range + + + Color... + + + Move to last column + + + Freeze left columns until here + + + Move left + + + Move right + + + Hide column + + + Restore columns + + + Scroll to column... + + + Copy + + + Highlight selection in log file (full line) + + + Highlight selection in log file (word mode) + + + Filter for selection + + + Set selected text as bookmark comment + + + Mark filter hits in log view + + + Set bookmarks on selected lines + + + Hide this column + + + Move this column to the last position + + + Edit the comment for a bookmark + + + Columns... + + + Save filter + + + Delete + + + Show advanced... + + + Search + + + Start the filter search + + + Toggel the advanced filter options panel + + + Choose columns for 'Column restrict' + + + Move the selected entry down in the list + + + Move the selected entry up in the list + + + Column restrict + + + Range search + + + Invert Match + + + Auto hide + + + Auto start + + + Sync + + + Filter tail + + + Regex + + + Case sensitive + + + Restrict search to columns + + + Enable a special search mode which filters all content between the 2 given search terms. + + + Invert the search result + + + Hides the filter list after loading a filter + + + Start immediate filtering after loading a saved filter + + + Sync the current selected line in the filter view to the selection in the log file view + + + Filter tailed file content (keeps filter view up to date on file changes) + + + Use regular expressions. (right-click for RegEx helper window) + + + Makes the filter case sensitive + + + 2nd search string ('end string') when using the range search + + + column names + + + Text &filter: + + + Fuzzyness + + + Back Spread + + + Fore Spread + + + Fuzzy search level (0 = fuzzy off) + + + Add preceding lines to search result (Drag up/down, press Shift for finer pitch) + + + Add following lines to search result (Drag up/down, press Shift for finer pitch) + + + Filter to new tab + + + Filter to Tab + + + Launch a new tab with filtered content + + + Open or close a list with saved filters + + + Doubleclick to load a saved filter + + + Search string for the filter + + + (Invert match) + + + Column restrict + + + Filter: {0} {1}{2} + + + Clipboard + + + Pasted on {0} + + + Insufficient rights {0}: {1} + + + Error during {0} value {1}, min {2}, max {3}, visible {4}: {5} + + + lines + + + Line: + + + ->E + + + This is a test exception thrown by an async delegate + + + This is a test exception thrown by a background thread + + + LogExpert session {0} + + + This is a test exception thrown by the GUI thread + + + ! Changing the Maximum Line Length can impact performance and is not recommended ! + + + Maximum Line Length (restart required) + + + Maximum filter entries displayed + + + Maximum filter entries + + + Default encoding + + + Font + + + You can configure as many tools as you want. +Checked tools will appear in the icon bar. All other tools are available in the tools menu. + + + Working dir: + + + Name: + + + Columnizer for output: + + + Program: + + + Arguments: + + + Max days: + + + Pattern: + + + Hint: Pressing the Shift key while dropping files onto LogExpert will switch the behaviour from single to multi and vice versa. + + + Note: You can always load your logfiles as MultiFile automatically if the files names follow the MultiFile naming rule (<filename>, <filename>.1, <filename>.2, ...). Simply choose 'MultiFile' from the File menu after loading the first file. + + + Place Holder Text, this will be replaced programmatically + + + File polling interval (ms): + + + Changes will take effect on next file load + + + Number of blocks + + + Lines/block + + + Color... + + + Change... + + + Color... + + + Remove + + + Add new + + + Down + + + Up + + + ... + + + Icon... + + + ... + + + ... + + + Delete + + + Configure... + + + ... + + + &Cancel + + + &OK + + + Export... + + + &Import... + + + Misc + + + Defaults + + + Font + + + Time spread display + + + Display mode + + + Timestamp navigation control + + + Mouse Drag Default + + + Tool settings + + + Default filename pattern + + + When opening multiple files... + + + Plugins + + + Settings + + + Persistence file location + + + CPU and stuff + + + Line buffer usage + + + Show Error Message? + + + Set last column width + + + Show tail state on tabs + + + Re-open last used files + + + Allow only 1 Instance + + + Ask before closing tabs + + + Dark Mode (restart required) + + + Follow tail enabled + + + Show column finder + + + Sync filter list enabled + + + Filter tail enabled + + + Reverse alpha + + + Show time spread + + + Show timestamp control, if supported by columnizer + + + Pipe sysout to tab + + + Automatically pick for new files + + + Mask has priority before history + + + Activate Portable Mode + + + Save and restore filter and filter tabs + + + Automatically save persistence files (.lxp) + + + Use legacy file reader (slower) + + + Multi threaded filter + + + View settings + + + Timestamp features + + + External Tools + + + Columnizers + + + Highlight + + + MultiFile + + + Plugins + + + Persistence + + + Memory/CPU + + + Line view + + + Time view + + + Vertical Inverted + + + Horizontal + + + Vertical + + + Ask what to do + + + Treat all files as one MultiFile + + + Load every file into a separate tab + + + Own directory + + + MyDocuments/LogExpert + + + Same directory as log file + + + Application startup directory + + + This path is based on the executable and where it has been started from. + + + File name mask (RegEx) + + + File name mask (RegEx) + + + Columnizer + + + Highlight group + + + Encoding to be used when no BOM header and no persistence data is available. + + + If this mode is activated, the save file will be loaded from the Executable Location + + + Slower but more compatible with strange linefeeds and encodings + + + Settings + + + Select a working directory + + + HeaderName + + + Choose folder for LogExpert's session files + + + Activate Portable Mode + + + Deactivate Portable Mode + + + Could not create / delete marker for Portable Mode: {0} + + + Export Settings to file + + + Settings {0}|All files {1} + + + Settings could not be imported: {0} + + + Settings imported + + + Language (requires restart): + + + Userinterface language + + + Cannot parse Java stack trace line + + + Load class in Eclipse + + + {0}Load class in Eclipse + + + Deserialize + + + Eclipse Remote Navigation + + + Host + + + Port + + + Password + + + Enter the host and the port where the Eclipse plugin is listening to. If a password is configured, enter the password too. + + + Copyright + + + Version + + + Product Name + + + AboutBox + + + Drag horizontal + + + Drag vertical + + + Drag vertical inverted + + + Timestamp selector + + + Calculating time spread view... + + + Line {0} +{1} + + + Custom + + + statusStrip1 + + + 0 + + + 0 + + + L: + + + Ready + + + menuStrip1 + + + File + + + Open... + + + Open URL... + + + Close File + + + Reload + + + New tab from clipboard + + + MultiFile + + + Enable MultiFile + + + File name mask... + + + Load session... + + + Save session... + + + Last used + + + Exit + + + View/Navigate + + + Go to line... + + + Search... + + + Filter + + + Bookmarks + + + Toggle Bookmark + + + Jump to next + + + Jump to prev + + + Bookmark list + + + Column finder + + + Timeshift + + + Copy to Tab + + + Options + + + Columnizer... + + + Highlighting and triggers... + + + Settings... + + + Cell select mode + + + Always on top + + + Hide line column + + + Lock instance + + + Tools + + + Configure... + + + Help + + + Show help + + + About + + + Debug + + + Dump LogBuffer info + + + Dump buffer diagnostic + + + Run GC + + + Dump GC info + + + Throw exception (GUI Thread) + + + Throw exception (Async delegate) + + + Throw exception (background thread) + + + Loglevel + + + Warn + + + Info + + + Debug + + + Disable word highlight mode + + + Follow tail + + + Open File + + + Search + + + Filter + + + Toggle Bookmark + + + Previous Bookmark + + + Next Bookmark + + + Show bookmark bubbles + + + tail + + + Follow tail + + + Close this tab + + + Close other tabs + + + Close all tabs + + + Tab color... + + + Tab rename... + + + Copy path to clipboard + + + Find in Explorer + + + Truncate File + + + Encoding + + + ASCII + + + ANSI + + + ISO-8859-1 + + + UTF8 + + + Unicode + + + +00:00:00.000 + + + host + + + Time offset (hh:mm:ss.fff) + + + Opens a file by entering a URL which is supported by a file system plugin + + + Creates a new tab with content from clipboard + + + Treat multiple files as one large file (e.g. data.log, data.log.1, data.log.2,...) + + + Load a saved session (list of log files) + + + Save a session (all open tabs) + + + If supported by the columnizer, you can set an offset to the displayed log time + + + Copies all selected lines into a new tab page + + + Splits various kinds of logfiles into fixed columns + + + Switches between foll row selection and single cell selection mode + + + When enabled all new launched LogExpert instances will redirect to this window + + + Launch external tools (configure in the settings) + + + Search + + + Open file + + + Go to next bookmark + + + Go to previous bookmark + + + Toggle bookmark + + + Filter window + + + Select the current highlight settings for the log file (right-click to open highlight settings) + + + Set the text which is shown on the tab + + + Close all tabs + + + Close all tabs except of this one + + + Sets the tab color + + + Opens an Explorer window and selects the log file + + + The complete file name (incl. path) is copied to clipboard + + + Try to truncate the file opened in tab + + + Only one instance allowed, uncheck "View Settings => Allow only 1 Instances" to start multiple instances! + + + Show this message only once? + + + Bookmark comment + + + Remove comment(s) + + + Show comment column + + + Bookmarks + + + Bookmark comment: + + + Really remove bookmark comments for selected lines? + + + No bookmarks in current file + + + Bookmark Comment + + + Icon file... + + + Choose Icon + + + LogExpert.chm + + + Open URL + + + URL: + + + Enter a URL which is supported by an installed file system plugin (e.g. file:// or sftp://) + + + https://github.com/LogExperts/LogExpert + + + &Help + + + Regular Expression: + + + Test text: + + + Matches: + + + Case sensitive + + + No valid regex pattern + + + RegEx.htm + + + Regex-Helper + + + &Search for: + + + &Case sensitive + + + &Regular expression + + + Regex-&Helper + + + From top + + + From selected line + + + Search start + + + Options + + + Direction + + + Backward + + + Forward + + + Search + + + Error during creation of search parameter\r\n{0} + + + Search text is empty + + + Highlighting and action triggers + + + &Add + + + &Delete + + + Up + + + Down + + + A&pply + + + Foreground color + + + Background color + + + Bookmark comment + + + Select... + + + Down + + + Up + + + &Copy + + + Delete group + + + New group + + + Foreground color + + + Background color + + + Search string: + + + You can assign groups to file names in the settings. + + + RegEx + + + Case sensitive + + + Don't lit dirty LED + + + Set bookmark + + + Stop Follow Tail + + + Plugin + + + Word mode + + + Bold + + + No Background + + + Line match criteria + + + Coloring + + + Actions + + + Groups + + + Delete bookmarks(s) + + + Go to line + + + Line number: + + + Rename Tab + + + Name: + + + LogExpert Error + + + An unhandled error has occurred. Please report to the developer. + + + Copy to clipboard + + + Patterns + + + Number of blocks (pattern variants): + + + Block lines: + + + This feature is pre-beta and does not work :)\r\nUsage: Select a range in the log window and press \"Recalc\". \r\nThis will search for text ranges similar to the selected one. + + + Fuzzy + + + Max diff + + + Max misses + + + Weigth + + + (no range set) + + + Recalc + + + Set range + + + Start: {0}\nEnd: {1} + + + Loading Session + + + Restoring layout requires an empty workbench.\n\n + + + Please choose how to proceed: + + + Close existing tabs + + + Open new window + + + Ignore layout data + + + MultiFile settings + + + MultiFile settings for: + + + File name pattern: + + + Max days: + + + Pattern syntax: + +* = any characters (wildcard) +$D(&lt;date&gt;) = Date pattern +$I = File index number +$J = File index number, hidden when zero +$J(&lt;prefix&gt;) = Like $J, but adding &lt;prefix&gt; when non-zero + +&lt;date&gt;: +DD = day +MM = month +YY[YY] = year +all other chars will be used as given + + + Columns + + + On empty columns + + + Exact match + + + No hit + + + Search hit + + + Use prev content + + + Columns + + + Choose one ore more columns to restrict the search operations to the selected columns. + + + No search hit on empty columns + + + An empty column will always be a search hit + + + An empty column will be a search hit if the previous non-empty column was a search hit + + + If selected, the search string must match exactly (no substring search) + + + Columnizer + + + Choose a columnizer: + + + Apply to all open files + + + Config... + + + \r\nSupports timeshift: {0} + + + Yes + + + No + + + Import Settings + + + Settings file to import: + + + Choose file... + + + Import options + + + Highlight settings + + + Highlight file masks + + + Columnizer file masks + + + External tools + + + Other + + + Keep existing settings + + + Load Settings from file + + + Settings (*.json)|*.json|All files (*.*)|*.* + File filter format: Description|Pattern|Description|Pattern + + + Keyword Action + + + Keyword action plugin: + + + Parameter + + + Loading multiple files + + + Choose loading mode: + + + Single files + + + Multi file + + + Searching... + + + Searching in progress... + + + Cancel search + + + Tool Arguments Help + + + Enter command line: + + + Test + + + RegEx Help + + + %L = Current line number +%N = Current log file name without path +%P = Path (directory) of current log file +%F = Full name (incl. path) of log file +%E = Extension of log file name (e.g. 'txt') +%M = Name of log file without extension +%S = User (from URI) +%R = Path (from URI) +%H = Host (from URI) +%T = Port (from URI) +?\"<name>\" = variable parameter 'name' +?\"<name>\"(def1,def2,...) = variable parameter with predefined values +{<regex>}{<replace>}: +Regex search/replace on current selected line + + + Tool parameter + + + Value for parameter: + + + File + + + Open... + + + Open URL... + + + Close File + + + Reload + + + New tab from clipboard + + + MultiFile + + + Enable MultiFile + + + File name mask... + + + Load session... + + + Save session... + + + Export bookmarks... + + + Last used + + + Exit + + + View/Navigate + + + Go to line... + + + Search... + + + Filter + + + Bookmarks + + + Toggle Bookmark + + + Jump to next + + + Jump to prev + + + Bookmark list + + + Column finder + + + Encoding + + + ASCII + + + ANSI + + + ISO-8859-1 + + + UTF8 + + + Unicode + + + Timeshift + + + +00:00:00.000 + + + Copy to Tab + + + Options + + + Columnizer... + + + Highlighting and triggers... + + + Settings... + + + Cell select mode + + + Always on top + + + Hide line column + + + Lock instance + + + Tools + + + Configure... + + + Help + + + Show help + + + About + + + Debug + + + Dump LogBuffer info + + + Dump buffer diagnostic + + + Run GC + + + Dump GC info + + + Throw exception (GUI Thread) + + + Throw exception (Async delegate) + + + Throw exception (background thread) + + + Loglevel + + + Warn + + + Info + + + Debug + + + Disable word highlight mode + + + 0 + + + 0 + + + L: + + + Ready + + + Follow tail + + + toolStripContainer1 + + + Open File + + + Search + + + Filter + + + Toggle Bookmark + + + Previous Bookmark + + + Next Bookmark + + + Show bookmark bubbles + + + tail + + + Follow tail + + + Close this tab + + + Close other tabs + + + Close all tabs + + + Tab color... + + + Tab rename... + + + Copy path to clipboard + + + Find in Explorer + + + Truncate File + \ No newline at end of file diff --git a/src/LogExpert.UI/Controls/BufferedDataGridView.cs b/src/LogExpert.UI/Controls/BufferedDataGridView.cs index 563cacdd..d2f557da 100644 --- a/src/LogExpert.UI/Controls/BufferedDataGridView.cs +++ b/src/LogExpert.UI/Controls/BufferedDataGridView.cs @@ -1,5 +1,4 @@ using System.Drawing.Drawing2D; -using System.Globalization; using System.Runtime.Versioning; using LogExpert.Core.Entities; @@ -260,7 +259,7 @@ private void PaintOverlays (PaintEventArgs e) if (_logger.IsDebugEnabled) { - _logger.Debug(CultureInfo.InvariantCulture, $"ClipRgn: {myBuffer.Graphics.ClipBounds.Left},{myBuffer.Graphics.ClipBounds.Top},{myBuffer.Graphics.ClipBounds.Width},{myBuffer.Graphics.ClipBounds.Height}"); + _logger.Debug($"### PaintOverlays: {myBuffer.Graphics.ClipBounds.Left},{myBuffer.Graphics.ClipBounds.Top},{myBuffer.Graphics.ClipBounds.Width},{myBuffer.Graphics.ClipBounds.Height}"); } } } @@ -319,10 +318,10 @@ private void OnControlKeyDown (object sender, KeyEventArgs e) editControl.EditingControlDataGridView.HorizontalScrollingOffset = scrollIndex; e.Handled = true; } - else - { - _logger.Warn(CultureInfo.InvariantCulture, "Edit control was null, to be checked"); - } + //else + //{ + // _logger.Warn($"Edit control was null, to be checked"); + //} } } } diff --git a/src/LogExpert.UI/Controls/ColorComboBox.cs b/src/LogExpert.UI/Controls/ColorComboBox.cs index 112f479e..ecafb2a1 100644 --- a/src/LogExpert.UI/Controls/ColorComboBox.cs +++ b/src/LogExpert.UI/Controls/ColorComboBox.cs @@ -78,13 +78,11 @@ private void OnColorComboBoxDrawItem (object sender, DrawItemEventArgs e) if (e.Index == 0) { - e.Graphics.DrawString("Custom", e.Font, Brushes.Black, - new PointF(42, e.Bounds.Top + 2)); + e.Graphics.DrawString(Resources.ColorComboBox_UI_ColorComboBox_Text_Custom, e.Font, Brushes.Black, new PointF(42, e.Bounds.Top + 2)); } else { - e.Graphics.DrawString(((Color)Items[e.Index]).Name, e.Font, Brushes.Black, - new PointF(42, e.Bounds.Top + 2)); + e.Graphics.DrawString(((Color)Items[e.Index]).Name, e.Font, Brushes.Black, new PointF(42, e.Bounds.Top + 2)); } if (!Enabled) diff --git a/src/LogExpert.UI/Controls/DateTimeDragControl.Designer.cs b/src/LogExpert.UI/Controls/DateTimeDragControl.Designer.cs index 8f98bac0..09f71c16 100644 --- a/src/LogExpert.UI/Controls/DateTimeDragControl.Designer.cs +++ b/src/LogExpert.UI/Controls/DateTimeDragControl.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert.Dialogs +namespace LogExpert.Dialogs { partial class DateTimeDragControl { @@ -35,9 +35,9 @@ private void InitializeComponent() this.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Name = "DateTimeDragControl"; this.Size = new System.Drawing.Size(142, 57); - this.Load += new System.EventHandler(this.DateTimeDragControl_Load); - this.MouseLeave += new System.EventHandler(this.DateTimeDragControl_MouseLeave); - this.Resize += new System.EventHandler(this.DateTimeDragControl_Resize); + this.Load += new System.EventHandler(this.OnDateTimeDragControlLoad); + this.MouseLeave += new System.EventHandler(this.OnDateTimeDragControlMouseLeave); + this.Resize += new System.EventHandler(this.OnDateTimeDragControlResize); this.ResumeLayout(false); } diff --git a/src/LogExpert.UI/Controls/DateTimeDragControl.cs b/src/LogExpert.UI/Controls/DateTimeDragControl.cs index 5856c746..dc6ca00d 100644 --- a/src/LogExpert.UI/Controls/DateTimeDragControl.cs +++ b/src/LogExpert.UI/Controls/DateTimeDragControl.cs @@ -35,8 +35,6 @@ internal partial class DateTimeDragControl : UserControl private readonly ToolStripItem toolStripItemVerticalDrag = new ToolStripMenuItem(); private readonly ToolStripItem toolStripItemVerticalInvertedDrag = new ToolStripMenuItem(); - private int _oldValue; - private string[] _dateParts; private int _startMouseX; @@ -46,47 +44,49 @@ internal partial class DateTimeDragControl : UserControl #region cTor - /// - /// Default Constructor - /// public DateTimeDragControl () { - InitializeComponent(); + SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); + _digitsFormat.LineAlignment = StringAlignment.Center; _digitsFormat.Alignment = StringAlignment.Near; _digitsFormat.Trimming = StringTrimming.None; _digitsFormat.FormatFlags = StringFormatFlags.FitBlackBox | StringFormatFlags.NoClip | StringFormatFlags.NoWrap; _draggedDigit = NO_DIGIT_DRAGGED; - } - - #endregion - - #region Delegates - public delegate void ValueChangedEventHandler (object sender, EventArgs e); - - public delegate void ValueDraggedEventHandler (object sender, EventArgs e); + ResumeLayout(); + } #endregion #region Events - public event ValueChangedEventHandler ValueChanged; - public event ValueDraggedEventHandler ValueDragged; + public event EventHandler ValueChanged; + public event EventHandler ValueDragged; #endregion #region Properties + /// + /// Gets or sets the minimum allowable date and time value. + /// public DateTime MinDateTime { get; set; } = DateTime.MinValue; + /// + /// Gets or sets the maximum allowable date and time value. + /// public DateTime MaxDateTime { get; set; } = DateTime.MaxValue; + /// + /// Gets or sets the orientation for drag operations. + /// public DragOrientations DragOrientation { get => _dragOrientation; @@ -97,8 +97,14 @@ public DragOrientations DragOrientation } } + /// + /// Gets or sets the color used to highlight an element when the mouse hovers over it. + /// public Color HoverColor { get; set; } + /// + /// Gets or sets the date and time value, adjusted to exclude milliseconds. + /// public DateTime DateTime { get => _dateTime.Subtract(TimeSpan.FromMilliseconds(_dateTime.Millisecond)); @@ -122,7 +128,12 @@ public DateTime DateTime #region Private Methods - // Returns the index of the rectangle (digitRects) under the mouse cursor + /// + /// Determines the index of the digit rectangle under the mouse cursor. + /// + /// The mouse event arguments containing the location of the cursor. + /// The index of the rectangle in _digitRects that contains the cursor location and corresponds to a date + /// part; otherwise, returns NO_DIGIT_DRAGGED if no such rectangle is found. private int DetermineDraggedDigit (MouseEventArgs e) { for (var i = 0; i < _digitRects.Count; ++i) @@ -136,41 +147,42 @@ private int DetermineDraggedDigit (MouseEventArgs e) return NO_DIGIT_DRAGGED; } - // Return the value corresponding to current dragged digit + /// + /// Retrieves the value of the date or time component currently being dragged. + /// + /// The integer value of the date or time component corresponding to the dragged digit. Returns the year, month, + /// day, hour, minute, or second based on the dragged component. If no valid component is being dragged, returns a + /// sentinel value indicating no digit is dragged. private int GetDraggedValue () { var datePart = _dateParts[_draggedDigit]; - if (datePart.StartsWith('y')) - { - return _dateTime.Year; - } - - if (datePart.StartsWith('M')) - { - return _dateTime.Month; - } - - if (datePart.StartsWith('d')) - { - return _dateTime.Day; - } - - if (datePart.StartsWith('h')) - { - return _dateTime.Hour; - } - - if (datePart.StartsWith('m')) - { - return _dateTime.Minute; - } - - return datePart.StartsWith('s') - ? _dateTime.Second - : NO_DIGIT_DRAGGED; + return datePart.StartsWith('y') + ? _dateTime.Year + : datePart.StartsWith('M') + ? _dateTime.Month + : datePart.StartsWith('d') + ? _dateTime.Day + : datePart.StartsWith('h') + ? _dateTime.Hour + : datePart.StartsWith('m') + ? _dateTime.Minute + : datePart.StartsWith('s') + ? _dateTime.Second + : NO_DIGIT_DRAGGED; } + /// + /// Adjusts the current date and time by a specified delta based on the dragged digit. + /// + /// The adjustment is applied to the date part corresponding to the currently dragged digit, + /// which can be a year, month, day, hour, minute, or second. If the resulting date and time exceed the defined + /// MaxDateTime or fall below MinDateTime, the date and time are clamped to these limits, and the + /// method returns . + /// The amount by which to adjust the date and time. Positive values increase the date/time, while negative values + /// decrease it. + /// if the date and time were successfully adjusted within the allowed range; otherwise, . private bool SetDraggedValue (int delta) { if (_draggedDigit == NO_DIGIT_DRAGGED) @@ -208,7 +220,7 @@ private bool SetDraggedValue (int delta) _dateTime = _dateTime.AddSeconds(delta); } } - catch (Exception) + catch (Exception e) when (e is ArgumentOutOfRangeException) { // invalid value dragged } @@ -228,12 +240,18 @@ private bool SetDraggedValue (int delta) return changed; } + /// + /// Initializes custom rectangles for each part of the date section. + /// + /// This method calculates the width of each date part based on the available client rectangle + /// width and adjusts the rectangles accordingly. It clears any existing rectangles before initializing new + /// ones. + /// The section containing date parts to be formatted and measured. private void InitCustomRects (Section dateSection) { - _dateParts = dateSection + _dateParts = [.. dateSection .GeneralTextDateDurationParts - .Select(DateFormatPartAdjuster.AdjustDateTimeFormatPart) - .ToArray(); + .Select(DateFormatPartAdjuster.AdjustDateTimeFormatPart)]; var oneCharWidth = ClientRectangle.Width / _dateParts.Sum(s => s.Length); var left = ClientRectangle.Left; @@ -246,9 +264,14 @@ private void InitCustomRects (Section dateSection) _digitRects.Add(new Rectangle(left, ClientRectangle.Top, s, ClientRectangle.Height)); left += s; } - } + /// + /// Initializes the digit rectangles based on the current culture's date and time format. + /// + /// This method attempts to parse the current culture's short date and long time pattern to + /// determine the sections for digit rectangles. If parsing fails, it defaults to a standard format of "dd.MM.yyyy + /// HH:mm:ss". private void InitDigitRects () { var culture = CultureInfo.CurrentCulture; @@ -271,7 +294,12 @@ private void InitDigitRects () #region Events handler - private void DateTimeDragControl_Load (object sender, EventArgs e) + /// + /// Handles the load event for the DateTime drag control. + /// + /// The source of the event. + /// An that contains the event data. + private void OnDateTimeDragControlLoad (object sender, EventArgs e) { InitDigitRects(); @@ -280,11 +308,23 @@ private void DateTimeDragControl_Load (object sender, EventArgs e) #endregion + /// + /// Raises the event. + /// + /// This method is called to notify subscribers that the value has changed. It invokes the event handler, if it is not null. + /// An object that contains the event data. protected void OnValueChanged (EventArgs e) { ValueChanged?.Invoke(this, e); } + /// + /// Raises the event. + /// + /// This method is called to notify subscribers that a value has been dragged. Override this + /// method in a derived class to handle the event without attaching a delegate. + /// An that contains the event data. protected void OnValueDragged (EventArgs e) { ValueDragged?.Invoke(this, e); @@ -292,31 +332,42 @@ protected void OnValueDragged (EventArgs e) #region Contextual Menu + /// + /// Builds and initializes the contextual menu for timestamp selection. + /// + /// This method sets up the contextual menu with options for horizontal, vertical, and inverted + /// vertical drag actions. It assigns click event handlers to each menu item and updates the menu with the current + /// state. private void BuildContextualMenu () { ContextMenuStrip = new ContextMenuStrip { - Name = "Timestamp selector" + Name = Resources.DateTimeDragControl_UI_ContextMenuStrip_TimestampSelector }; - ContextMenuStrip.Items.Add(toolStripItemHorizontalDrag); - ContextMenuStrip.Items.Add(toolStripItemVerticalDrag); - ContextMenuStrip.Items.Add(toolStripItemVerticalInvertedDrag); + _ = ContextMenuStrip.Items.Add(toolStripItemHorizontalDrag); + _ = ContextMenuStrip.Items.Add(toolStripItemVerticalDrag); + _ = ContextMenuStrip.Items.Add(toolStripItemVerticalInvertedDrag); toolStripItemHorizontalDrag.Click += OnToolStripItemHorizontalDragClick; - toolStripItemHorizontalDrag.Text = "Drag horizontal"; + toolStripItemHorizontalDrag.Text = Resources.DateTimeDragControl_UI_ToolStripItem_toolStripItemHorizontalDrag; toolStripItemVerticalDrag.Click += OnToolStripItemVerticalDragClick; - toolStripItemVerticalDrag.Text = "Drag vertical"; + toolStripItemVerticalDrag.Text = Resources.DateTimeDragControl_UI_ToolStripItem_toolStripItemVerticalDrag; toolStripItemVerticalInvertedDrag.Click += OnToolStripItemVerticalInvertedDragClick; - toolStripItemVerticalInvertedDrag.Text = "Drag vertical inverted"; + toolStripItemVerticalInvertedDrag.Text = Resources.DateTimeDragControl_UI_ToolStripItem_toolStripItemInvertedDrag; ContextMenuStrip.Opening += OnContextMenuStripOpening; UpdateContextMenu(); } + /// + /// Updates the state of the context menu items based on the current drag orientation. + /// + /// This method enables or disables specific context menu items to reflect the current drag + /// orientation. The menu items are adjusted so that only the relevant drag options are enabled. private void UpdateContextMenu () { toolStripItemHorizontalDrag.Enabled = DragOrientation != DragOrientations.Horizontal; @@ -324,6 +375,13 @@ private void UpdateContextMenu () toolStripItemVerticalInvertedDrag.Enabled = DragOrientation != DragOrientations.InvertedVertical; } + /// + /// Handles the event when the context menu strip is about to open. + /// + /// Cancels the opening of the context menu strip if the control is currently capturing + /// input. + /// The source of the event. + /// A that contains the event data. private void OnContextMenuStripOpening (object sender, CancelEventArgs e) { if (Capture) @@ -332,6 +390,13 @@ private void OnContextMenuStripOpening (object sender, CancelEventArgs e) } } + /// + /// Handles the click event for the horizontal drag ToolStrip item, setting the drag orientation to horizontal. + /// + /// This method disables the horizontal drag ToolStrip item and enables the vertical and vertical + /// inverted drag ToolStrip items. + /// The source of the event, typically the ToolStrip item that was clicked. + /// An that contains the event data. private void OnToolStripItemHorizontalDragClick (object sender, EventArgs e) { DragOrientation = DragOrientations.Horizontal; @@ -340,6 +405,11 @@ private void OnToolStripItemHorizontalDragClick (object sender, EventArgs e) toolStripItemVerticalInvertedDrag.Enabled = true; } + /// + /// Handles the click event for enabling vertical drag orientation on a ToolStrip item. + /// + /// The source of the event, typically the ToolStrip item that was clicked. + /// An that contains the event data. private void OnToolStripItemVerticalDragClick (object sender, EventArgs e) { DragOrientation = DragOrientations.Vertical; @@ -348,6 +418,13 @@ private void OnToolStripItemVerticalDragClick (object sender, EventArgs e) toolStripItemVerticalInvertedDrag.Enabled = true; } + /// + /// Handles the click event for the vertical inverted drag ToolStrip item. + /// + /// This method sets the drag orientation to inverted vertical and updates the enabled state of + /// related ToolStrip items. + /// The source of the event, typically the ToolStrip item that was clicked. + /// An that contains the event data. private void OnToolStripItemVerticalInvertedDragClick (object sender, EventArgs e) { DragOrientation = DragOrientations.InvertedVertical; @@ -360,6 +437,15 @@ private void OnToolStripItemVerticalInvertedDragClick (object sender, EventArgs #region Rendering + /// + /// Handles the painting of the control, rendering the current date and time values with a user-defined format and + /// highlighting any dragged digit. + /// + /// This method overrides the base method to provide custom + /// rendering logic. It highlights a dragged digit, if any, and displays the current date and time using a specified + /// format. The method ensures that the date parts are formatted correctly and handles any exceptions that may arise + /// from invalid date formats. + /// A that contains the event data. protected override void OnPaint (PaintEventArgs e) { base.OnPaint(e); @@ -385,10 +471,11 @@ protected override void OnPaint (PaintEventArgs e) { try { - value = _dateTime.ToString("-" + datePart + "-"); + value = _dateTime.ToString("-" + datePart + "-", CultureInfo.InvariantCulture); value = value[1..^1]; } - catch + catch (Exception ex) when (ex is FormatException + or ArgumentOutOfRangeException) { value = datePart; } @@ -402,7 +489,12 @@ protected override void OnPaint (PaintEventArgs e) } } - private void DateTimeDragControl_Resize (object sender, EventArgs e) + /// + /// Handles the resize event of the DateTimeDragControl. + /// + /// The source of the event, typically the control being resized. + /// An that contains the event data. + private void OnDateTimeDragControlResize (object sender, EventArgs e) { InitDigitRects(); } @@ -411,6 +503,14 @@ private void DateTimeDragControl_Resize (object sender, EventArgs e) #region Mouse callbacks + /// + /// Handles the mouse down event for the control, initiating a drag operation if the left mouse button is pressed. + /// + /// If the left mouse button is pressed, the method determines which digit is being dragged and + /// starts the drag operation. If the right mouse button is pressed while a drag operation is in progress, the drag + /// is canceled and any changes are undone. The control is invalidated to trigger a repaint, reflecting the current + /// state. + /// A that contains the event data. protected override void OnMouseDown (MouseEventArgs e) { base.OnMouseDown(e); @@ -426,18 +526,24 @@ protected override void OnMouseDown (MouseEventArgs e) Capture = true; _startMouseY = e.Y; _startMouseX = e.X; - _oldValue = GetDraggedValue(); _addedValue = 0; } else if (e.Button == MouseButtons.Right && Capture) { Capture = false; - SetDraggedValue(0); //undo + _ = SetDraggedValue(0); //undo } Invalidate(); // repaint with the selected item (or none) } + /// + /// Handles the mouse button release event for the control. + /// + /// This method is called when the mouse button is released over the control. It stops capturing + /// the mouse, resets the dragged digit state, and triggers a repaint of the control. It also raises the event. + /// A that contains the event data. protected override void OnMouseUp (MouseEventArgs e) { if (!Capture) @@ -454,6 +560,14 @@ protected override void OnMouseUp (MouseEventArgs e) OnValueChanged(EventArgs.Empty); } + /// + /// Handles the mouse move event to update the dragged value based on the mouse movement. + /// + /// This method calculates the difference in mouse position based on the specified drag + /// orientation and updates the dragged value accordingly. It only processes the event if the mouse capture is + /// active. The method invalidates the control to trigger a repaint and raises the OnValueDragged event if + /// the dragged value is successfully updated. + /// The containing the event data. protected override void OnMouseMove (MouseEventArgs e) { base.OnMouseMove(e); @@ -476,6 +590,7 @@ protected override void OnMouseMove (MouseEventArgs e) diff = _startMouseY + e.Y; break; } + case DragOrientations.Horizontal: default: { diff = e.X - _startMouseX; @@ -500,7 +615,14 @@ protected override void OnMouseMove (MouseEventArgs e) OnValueDragged(EventArgs.Empty); } - private void DateTimeDragControl_MouseLeave (object sender, EventArgs e) + /// + /// Handles the event for the date-time drag control. + /// + /// Resets the dragged digit state and refreshes the control when the mouse leaves the control + /// area, unless the control is currently capturing the mouse. + /// The source of the event. + /// An that contains the event data. + private void OnDateTimeDragControlMouseLeave (object sender, EventArgs e) { if (Capture) { @@ -512,4 +634,4 @@ private void DateTimeDragControl_MouseLeave (object sender, EventArgs e) } #endregion -} +} \ No newline at end of file diff --git a/src/LogExpert.UI/Controls/KnobControl.cs b/src/LogExpert.UI/Controls/KnobControl.cs index d75c2394..c816e4ad 100644 --- a/src/LogExpert.UI/Controls/KnobControl.cs +++ b/src/LogExpert.UI/Controls/KnobControl.cs @@ -1,6 +1,3 @@ -using NLog; - -using System.Globalization; using System.Runtime.Versioning; namespace LogExpert.UI.Controls; @@ -10,9 +7,6 @@ internal partial class KnobControl : UserControl { #region Fields - private static readonly ILogger _logger = LogManager.GetCurrentClassLogger(); - - private readonly StringFormat _stringFormat = new(); private bool _isShiftPressed; @@ -25,7 +19,7 @@ internal partial class KnobControl : UserControl #region cTor - public KnobControl() + public KnobControl () { InitializeComponent(); _stringFormat.LineAlignment = StringAlignment.Far; @@ -34,15 +28,9 @@ public KnobControl() #endregion - #region Delegates - - public delegate void ValueChangedEventHandler(object sender, EventArgs e); - - #endregion - #region Events - public event ValueChangedEventHandler ValueChanged; + public event EventHandler ValueChanged; #endregion @@ -71,7 +59,7 @@ public int Value #region Overrides - protected override void OnPaint(PaintEventArgs e) + protected override void OnPaint (PaintEventArgs e) { base.OnPaint(e); @@ -94,20 +82,20 @@ protected override void OnPaint(PaintEventArgs e) //rect = this.ClientRectangle; rect.Inflate(-2, -2); - var startAngle = 135.0F + 270F * ((float)_value / (float)Range); + var startAngle = 135.0F + (270F * (_value / (float)Range)); var sweepAngle = 0.1F; e.Graphics.DrawPie(blackPen, rect, startAngle, sweepAngle); Brush brush = new SolidBrush(foregroundColor); RectangleF rectF = new(0, 0, ClientRectangle.Width, ClientRectangle.Height); - e.Graphics.DrawString("" + _value, Font, brush, rectF, _stringFormat); + e.Graphics.DrawString(string.Empty + _value, Font, brush, rectF, _stringFormat); blackPen.Dispose(); greyPen.Dispose(); brush.Dispose(); } - protected override void OnMouseDown(MouseEventArgs e) + protected override void OnMouseDown (MouseEventArgs e) { base.OnMouseDown(e); @@ -126,7 +114,7 @@ protected override void OnMouseDown(MouseEventArgs e) } } - protected override void OnMouseUp(MouseEventArgs e) + protected override void OnMouseUp (MouseEventArgs e) { base.OnMouseUp(e); Capture = false; @@ -134,12 +122,12 @@ protected override void OnMouseUp(MouseEventArgs e) OnValueChanged(new EventArgs()); } - protected void OnValueChanged(EventArgs e) + protected void OnValueChanged (EventArgs e) { ValueChanged?.Invoke(this, e); } - protected override void OnMouseMove(MouseEventArgs e) + protected override void OnMouseMove (MouseEventArgs e) { base.OnMouseMove(e); if (!Capture) @@ -150,9 +138,7 @@ protected override void OnMouseMove(MouseEventArgs e) var sense = _isShiftPressed ? DragSensitivity * 2 : DragSensitivity; var diff = _startMouseY - e.Y; - _logger.Debug(CultureInfo.InvariantCulture, "KnobDiff: {0}", diff); - var range = MaxValue - MinValue; - _value = _oldValue + diff / sense; + _value = _oldValue + (diff / sense); if (_value < MinValue) { @@ -167,13 +153,13 @@ protected override void OnMouseMove(MouseEventArgs e) Invalidate(); } - protected override void OnKeyDown(KeyEventArgs e) + protected override void OnKeyDown (KeyEventArgs e) { _isShiftPressed = e.Shift; base.OnKeyDown(e); } - protected override void OnKeyUp(KeyEventArgs e) + protected override void OnKeyUp (KeyEventArgs e) { _isShiftPressed = e.Shift; base.OnKeyUp(e); diff --git a/src/LogExpert.UI/Controls/LogCellEditingControl.cs b/src/LogExpert.UI/Controls/LogCellEditingControl.cs index 024bd30c..62226119 100644 --- a/src/LogExpert.UI/Controls/LogCellEditingControl.cs +++ b/src/LogExpert.UI/Controls/LogCellEditingControl.cs @@ -1,4 +1,4 @@ -using System.Runtime.Versioning; +using System.Runtime.Versioning; namespace LogExpert.UI.Controls; @@ -7,7 +7,7 @@ internal class LogCellEditingControl : DataGridViewTextBoxEditingControl { #region Public methods - public override bool EditingControlWantsInputKey(Keys key, bool dataGridViewWantsInputKey) + public override bool EditingControlWantsInputKey (Keys key, bool dataGridViewWantsInputKey) { switch (key & Keys.KeyCode) { @@ -22,6 +22,348 @@ public override bool EditingControlWantsInputKey(Keys key, bool dataGridViewWant { return true; } + + //intentional fall-through for all other keys + case Keys.KeyCode: + break; + case Keys.Modifiers: + break; + case Keys.None: + break; + case Keys.LButton: + break; + case Keys.RButton: + break; + case Keys.Cancel: + break; + case Keys.MButton: + break; + case Keys.XButton1: + break; + case Keys.XButton2: + break; + case Keys.Back: + break; + case Keys.Tab: + break; + case Keys.LineFeed: + break; + case Keys.Clear: + break; + case Keys.Return: + break; + case Keys.ShiftKey: + break; + case Keys.ControlKey: + break; + case Keys.Menu: + break; + case Keys.Pause: + break; + case Keys.Capital: + break; + case Keys.KanaMode: + break; + case Keys.JunjaMode: + break; + case Keys.FinalMode: + break; + case Keys.HanjaMode: + break; + case Keys.Escape: + break; + case Keys.IMEConvert: + break; + case Keys.IMENonconvert: + break; + case Keys.IMEAccept: + break; + case Keys.IMEModeChange: + break; + case Keys.Space: + break; + case Keys.Select: + break; + case Keys.Print: + break; + case Keys.Execute: + break; + case Keys.Snapshot: + break; + case Keys.Insert: + break; + case Keys.Delete: + break; + case Keys.Help: + break; + case Keys.D0: + break; + case Keys.D1: + break; + case Keys.D2: + break; + case Keys.D3: + break; + case Keys.D4: + break; + case Keys.D5: + break; + case Keys.D6: + break; + case Keys.D7: + break; + case Keys.D8: + break; + case Keys.D9: + break; + case Keys.A: + break; + case Keys.B: + break; + case Keys.C: + break; + case Keys.D: + break; + case Keys.E: + break; + case Keys.F: + break; + case Keys.G: + break; + case Keys.H: + break; + case Keys.I: + break; + case Keys.J: + break; + case Keys.K: + break; + case Keys.L: + break; + case Keys.M: + break; + case Keys.N: + break; + case Keys.O: + break; + case Keys.P: + break; + case Keys.Q: + break; + case Keys.R: + break; + case Keys.S: + break; + case Keys.T: + break; + case Keys.U: + break; + case Keys.V: + break; + case Keys.W: + break; + case Keys.X: + break; + case Keys.Y: + break; + case Keys.Z: + break; + case Keys.LWin: + break; + case Keys.RWin: + break; + case Keys.Apps: + break; + case Keys.Sleep: + break; + case Keys.NumPad0: + break; + case Keys.NumPad1: + break; + case Keys.NumPad2: + break; + case Keys.NumPad3: + break; + case Keys.NumPad4: + break; + case Keys.NumPad5: + break; + case Keys.NumPad6: + break; + case Keys.NumPad7: + break; + case Keys.NumPad8: + break; + case Keys.NumPad9: + break; + case Keys.Multiply: + break; + case Keys.Add: + break; + case Keys.Separator: + break; + case Keys.Subtract: + break; + case Keys.Decimal: + break; + case Keys.Divide: + break; + case Keys.F1: + break; + case Keys.F2: + break; + case Keys.F3: + break; + case Keys.F4: + break; + case Keys.F5: + break; + case Keys.F6: + break; + case Keys.F7: + break; + case Keys.F8: + break; + case Keys.F9: + break; + case Keys.F10: + break; + case Keys.F11: + break; + case Keys.F12: + break; + case Keys.F13: + break; + case Keys.F14: + break; + case Keys.F15: + break; + case Keys.F16: + break; + case Keys.F17: + break; + case Keys.F18: + break; + case Keys.F19: + break; + case Keys.F20: + break; + case Keys.F21: + break; + case Keys.F22: + break; + case Keys.F23: + break; + case Keys.F24: + break; + case Keys.NumLock: + break; + case Keys.Scroll: + break; + case Keys.LShiftKey: + break; + case Keys.RShiftKey: + break; + case Keys.LControlKey: + break; + case Keys.RControlKey: + break; + case Keys.LMenu: + break; + case Keys.RMenu: + break; + case Keys.BrowserBack: + break; + case Keys.BrowserForward: + break; + case Keys.BrowserRefresh: + break; + case Keys.BrowserStop: + break; + case Keys.BrowserSearch: + break; + case Keys.BrowserFavorites: + break; + case Keys.BrowserHome: + break; + case Keys.VolumeMute: + break; + case Keys.VolumeDown: + break; + case Keys.VolumeUp: + break; + case Keys.MediaNextTrack: + break; + case Keys.MediaPreviousTrack: + break; + case Keys.MediaStop: + break; + case Keys.MediaPlayPause: + break; + case Keys.LaunchMail: + break; + case Keys.SelectMedia: + break; + case Keys.LaunchApplication1: + break; + case Keys.LaunchApplication2: + break; + case Keys.OemSemicolon: + break; + case Keys.Oemplus: + break; + case Keys.Oemcomma: + break; + case Keys.OemMinus: + break; + case Keys.OemPeriod: + break; + case Keys.OemQuestion: + break; + case Keys.Oemtilde: + break; + case Keys.OemOpenBrackets: + break; + case Keys.OemPipe: + break; + case Keys.OemCloseBrackets: + break; + case Keys.OemQuotes: + break; + case Keys.Oem8: + break; + case Keys.OemBackslash: + break; + case Keys.ProcessKey: + break; + case Keys.Packet: + break; + case Keys.Attn: + break; + case Keys.Crsel: + break; + case Keys.Exsel: + break; + case Keys.EraseEof: + break; + case Keys.Play: + break; + case Keys.Zoom: + break; + case Keys.NoName: + break; + case Keys.Pa1: + break; + case Keys.OemClear: + break; + case Keys.Shift: + break; + case Keys.Control: + break; + case Keys.Alt: + break; + default: + break; } return !dataGridViewWantsInputKey; diff --git a/src/LogExpert.UI/Controls/LogTabControl.cs b/src/LogExpert.UI/Controls/LogTabControl.cs index 611d9fe5..01228da1 100644 --- a/src/LogExpert.UI/Controls/LogTabControl.cs +++ b/src/LogExpert.UI/Controls/LogTabControl.cs @@ -13,7 +13,7 @@ internal class LogTabControl : TabControl #region cTor - public LogTabControl() : base() + public LogTabControl () : base() { //SetStyle(ControlStyles.AllPaintingInWmPaint, true); //SetStyle(ControlStyles.UserPaint, true); @@ -24,7 +24,7 @@ public LogTabControl() : base() #region Overrides - protected override void OnPaint(PaintEventArgs e) + protected override void OnPaint (PaintEventArgs e) { BufferedGraphicsContext currentContext; currentContext = BufferedGraphicsManager.Current; diff --git a/src/LogExpert.UI/Controls/LogTextColumn.cs b/src/LogExpert.UI/Controls/LogTextColumn.cs index c0054b30..235b0900 100644 --- a/src/LogExpert.UI/Controls/LogTextColumn.cs +++ b/src/LogExpert.UI/Controls/LogTextColumn.cs @@ -2,14 +2,8 @@ namespace LogExpert.UI.Controls; -internal class LogTextColumn : DataGridViewColumn +[method: SupportedOSPlatform("windows")] +internal class LogTextColumn () : DataGridViewColumn(new LogGridCell()) { - #region cTor - [SupportedOSPlatform("windows")] - public LogTextColumn () : base(new LogGridCell()) - { - } - - #endregion } diff --git a/src/LogExpert.UI/Controls/LogWindow/LogWindow.cs b/src/LogExpert.UI/Controls/LogWindow/LogWindow.cs index 071e5740..417830cc 100644 --- a/src/LogExpert.UI/Controls/LogWindow/LogWindow.cs +++ b/src/LogExpert.UI/Controls/LogWindow/LogWindow.cs @@ -40,6 +40,10 @@ internal partial class LogWindow : DockContent, ILogPaintContextUI, ILogView, IL private const int SPREAD_MAX = 99; private const int PROGRESS_BAR_MODULO = 1000; private const int FILTER_ADVANCED_SPLITTER_DISTANCE = 110; + private const int WAIT_TIME = 500; + private const int OVERSCAN = 20; + private const string FONT_COURIER_NEW = "Courier New"; + private const string FONT_VERDANA = "Verdana"; private static readonly Logger _logger = LogManager.GetCurrentClassLogger(); private readonly Image _advancedButtonImage; @@ -57,7 +61,7 @@ internal partial class LogWindow : DockContent, ILogPaintContextUI, ILogView, IL private readonly IList _filterPipeList = []; private readonly Dictionary _freezeStateMap = []; - private readonly GuiStateArgs _guiStateArgs = new(); + private readonly GuiStateEventArgs _guiStateArgs = new(); private readonly List _lineHashList = []; @@ -153,6 +157,8 @@ public LogWindow (LogTabWindow.LogTabWindow parent, string fileName, bool isTemp InitializeComponent(); + SetResources(); + CreateDefaultViewStyle(); columnNamesLabel.Text = string.Empty; // no filtering on columns by default @@ -171,8 +177,8 @@ public LogWindow (LogTabWindow.LogTabWindow parent, string fileName, bool isTemp filterGridView.CellValueNeeded += OnFilterGridViewCellValueNeeded; filterGridView.CellPainting += OnFilterGridViewCellPainting; - filterListBox.DrawMode = DrawMode.OwnerDrawVariable; - filterListBox.MeasureItem += MeasureItem; + listBoxFilter.DrawMode = DrawMode.OwnerDrawVariable; + listBoxFilter.MeasureItem += MeasureItem; Closing += OnLogWindowClosing; Disposed += OnLogWindowDisposed; @@ -224,7 +230,7 @@ public LogWindow (LogTabWindow.LogTabWindow parent, string fileName, bool isTemp //this.filterUpdateThread = new Thread(new ThreadStart(this.FilterUpdateWorker)); //this.filterUpdateThread.Start(); - _advancedButtonImage = advancedButton.Image; + _advancedButtonImage = btnAdvanced.Image; _searchButtonImage = filterSearchButton.Image; filterSearchButton.Image = null; @@ -245,14 +251,14 @@ public LogWindow (LogTabWindow.LogTabWindow parent, string fileName, bool isTemp dataGridView.Enabled = false; dataGridView.ColumnDividerDoubleClick += OnDataGridViewColumnDividerDoubleClick; ShowAdvancedFilterPanel(false); - filterKnobBackSpread.MinValue = 0; - filterKnobBackSpread.MaxValue = SPREAD_MAX; - filterKnobBackSpread.ValueChanged += OnFilterKnobControlValueChanged; - filterKnobForeSpread.MinValue = 0; - filterKnobForeSpread.MaxValue = SPREAD_MAX; - filterKnobForeSpread.ValueChanged += OnFilterKnobControlValueChanged; - fuzzyKnobControl.MinValue = 0; - fuzzyKnobControl.MaxValue = 10; + knobControlFilterBackSpread.MinValue = 0; + knobControlFilterBackSpread.MaxValue = SPREAD_MAX; + knobControlFilterBackSpread.ValueChanged += OnFilterKnobControlValueChanged; + knobControlFilterForeSpread.MinValue = 0; + knobControlFilterForeSpread.MaxValue = SPREAD_MAX; + knobControlFilterForeSpread.ValueChanged += OnFilterKnobControlValueChanged; + knobControlFuzzy.MinValue = 0; + knobControlFuzzy.MaxValue = 10; //PreferencesChanged(settings.preferences, true); AdjustHighlightSplitterWidth(); ToggleHighlightPanel(false); // hidden @@ -287,7 +293,7 @@ public LogWindow (LogTabWindow.LogTabWindow parent, string fileName, bool isTemp public event EventHandler StatusLineEvent; - public event EventHandler GuiStateUpdate; + public event EventHandler GuiStateUpdate; public event TailFollowedEventHandler TailFollowed; @@ -323,7 +329,7 @@ private set lock (_currentColumnizerLock) { _currentColumnizer = value; - _logger.Debug($"Setting columnizer {_currentColumnizer.GetName()} "); + _logger.Debug($"Setting columnizer {_currentColumnizer.GetName()}"); } } } @@ -357,7 +363,7 @@ public bool IsMultiFile private readonly IConfigManager ConfigManager; - public string TempTitleName { get; set; } = ""; + public string TempTitleName { get; set; } = string.Empty; internal FilterPipe FilterPipe { get; set; } @@ -444,6 +450,118 @@ internal IColumnizedLogLine GetColumnsForLine (int lineNumber) //} } + #region Apply Resources + + private void SetResources () + { + ApplyButtonResources(); + ApplyLabelResources(); + ApplyCheckBoxResources(); + ApplyToolStripMenuItemResources(); + ApplyToolTipsResources(); + } + + private void ApplyCheckBoxResources () + { + columnRestrictCheckBox.Text = Resources.LogWindow_UI_CheckBox_ColumnRestrict; + invertFilterCheckBox.Text = Resources.LogWindow_UI_CheckBox_InvertMatch; + rangeCheckBox.Text = Resources.LogWindow_UI_CheckBox_RangeSearch; + hideFilterListOnLoadCheckBox.Text = Resources.LogWindow_UI_CheckBox_AutoHide; + filterOnLoadCheckBox.Text = Resources.LogWindow_UI_CheckBox_FilterOnLoad; + syncFilterCheckBox.Text = Resources.LogWindow_UI_CheckBox_FilterSync; + filterTailCheckBox.Text = Resources.LogWindow_UI_CheckBox_FilterTail; + filterRegexCheckBox.Text = Resources.LogWindow_UI_CheckBox_FilterRegex; + filterCaseSensitiveCheckBox.Text = Resources.LogWindow_UI_CheckBox_FilterCaseSensitive; + } + + private void ApplyLabelResources () + { + lblColumnName.Text = Resources.LogWindow_UI_Label_ColumnName; + columnNamesLabel.Text = Resources.LogWindow_UI_Label_ColumnNames; + lblfuzzy.Text = Resources.LogWindow_UI_Label_Fuzzyness; + lblBackSpread.Text = Resources.LogWindow_UI_Label_BackSpread; + lblForeSpread.Text = Resources.LogWindow_UI_Label_ForeSpread; + lblTextFilter.Text = Resources.LogWindow_UI_Label_TextFilter; + lblFilterCount.Text = Resources.LogWindow_UI_Common_ZeroValue; + } + + private void ApplyButtonResources () + { + btnColumn.Text = Resources.LogWindow_UI_Button_Column; + btnFilterToTab.Text = Resources.LogWindow_UI_Button_FilterToTab; + bntSaveFilter.Text = Resources.LogWindow_UI_Button_SaveFilter; + btnDeleteFilter.Text = Resources.LogWindow_UI_Button_Delete; + btnAdvanced.Text = Resources.LogWindow_UI_Button_ShowAdvanced; + filterSearchButton.Text = Resources.LogWindow_UI_Button_Search; + } + + private void ApplyToolStripMenuItemResources () + { + copyToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_CopyToClipboard; + copyToTabToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_CopyToNewTab; + copyToTabToolStripMenuItem.ToolTipText = Resources.LogWindow_UI_ToolStripMenuItem_ToolTip_CopyToNewTab; + scrollAllTabsToTimestampToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_ScrollAllTabsToCurrentTimestamp; + scrollAllTabsToTimestampToolStripMenuItem.ToolTipText = Resources.LogWindow_UI_ToolStripMenuItem_ToolTip_ScrollAllTabsToCurrentTimestamp; + syncTimestampsToToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_TimeSyncedFiles; + freeThisWindowFromTimeSyncToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_FreeThisWindowFromTimeSync; + locateLineInOriginalFileToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_LocateFilteredLineInOriginalFile; + toggleBoomarkToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_ToggleBoomark; + bookmarkCommentToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_BookmarkComment; + bookmarkCommentToolStripMenuItem.ToolTipText = Resources.LogWindow_UI_ToolStripMenuItem_ToolTip_BookmarkComment; + markEditModeToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_MarkEditMode; + tempHighlightsToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_TempHighlights; + removeAllToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_RemoveAll; + makePermanentToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_MakeAllPermanent; + markCurrentFilterRangeToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_MarkCurrentFilterRange; + setBookmarksOnSelectedLinesToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_SetBookmarksOnSelectedLines; + filterToTabToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_FilterToNewTab; + markFilterHitsInLogViewToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_MarkFilterHitsInLogView; + colorToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_Color; + freezeLeftColumnsUntilHereToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_FreezeLeftColumnsUntilHere; + moveToLastColumnToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_MoveToLastColumn; + moveToLastColumnToolStripMenuItem.ToolTipText = Resources.LogWindow_UI_ToolStripMenuItem_ToolTip_MoveToLastColumn; + moveLeftToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_MoveLeft; + moveRightToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_MoveRight; + hideColumnToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_HideColumn; + hideColumnToolStripMenuItem.ToolTipText = Resources.LogWindow_UI_ToolStripMenuItem_ToolTip_HideColumn; + restoreColumnsToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_RestoreColumns; + allColumnsToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_ScrollToColumn; + editModecopyToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_Copy; + highlightSelectionInLogFileToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_HighlightSelectionInLogFileFullLine; + highlightSelectionInLogFilewordModeToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_HighlightSelectionInLogFileWordMode; + filterForSelectionToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_FilterForSelection; + setSelectedTextAsBookmarkCommentToolStripMenuItem.Text = Resources.LogWindow_UI_ToolStripMenuItem_SetSelectedTextAsBookmarkComment; + } + + private void ApplyToolTipsResources () + { + helpToolTip.SetToolTip(btnColumn, Resources.LogWindow_UI_Button_ToolTip_Column); + helpToolTip.SetToolTip(columnRestrictCheckBox, Resources.LogWindow_UI_CheckBox_ToolTip_ColumnRestrict); + helpToolTip.SetToolTip(knobControlFuzzy, Resources.LogWindow_UI_KnobControl_Fuzzy); + helpToolTip.SetToolTip(invertFilterCheckBox, Resources.LogWindow_UI_CheckBox_ToolTip_InvertMatch); + helpToolTip.SetToolTip(knobControlFilterBackSpread, Resources.LogWindow_UI_KnobControl_FilterBackSpread); + helpToolTip.SetToolTip(knobControlFilterForeSpread, Resources.LogWindow_UI_KnobControl_FilterForeSpread); + helpToolTip.SetToolTip(rangeCheckBox, Resources.LogWindow_UI_CheckBox_ToolTip_RangeSearch); + helpToolTip.SetToolTip(filterRangeComboBox, Resources.LogWindow_UI_ComboBox_ToolTip_FilterRange); + helpToolTip.SetToolTip(btnFilterToTab, Resources.LogWindow_UI_Button_ToolTip_FilterToTab); + helpToolTip.SetToolTip(btnToggleHighlightPanel, Resources.LogWindow_UI_Button_ToolTip_ToggleHighlightPanel); + helpToolTip.SetToolTip(filterOnLoadCheckBox, Resources.LogWindow_UI_CheckBox_ToolTip_FilterOnLoad); + helpToolTip.SetToolTip(hideFilterListOnLoadCheckBox, Resources.LogWindow_UI_CheckBox_ToolTip_AutoHide); + helpToolTip.SetToolTip(btnFilterDown, Resources.LogWindow_UI_Button_ToolTip_FilterDown); + helpToolTip.SetToolTip(btnFilterUp, Resources.LogWindow_UI_Button_ToolTip_FilterUp); + helpToolTip.SetToolTip(listBoxFilter, Resources.LogWindow_UI_ListBox_ToolTip_Filter); + helpToolTip.SetToolTip(filterComboBox, Resources.LogWindow_UI_ComboBox_ToolTip_Filter); + helpToolTip.SetToolTip(btnAdvanced, Resources.LogWindow_UI_Button_ToolTip_ShowAdvanced); + helpToolTip.SetToolTip(syncFilterCheckBox, Resources.LogWindow_UI_CheckBox_ToolTip_FilterSync); + helpToolTip.SetToolTip(filterTailCheckBox, Resources.LogWindow_UI_CheckBox_ToolTip_FilterTail); + helpToolTip.SetToolTip(filterRegexCheckBox, Resources.LogWindow_UI_CheckBox_ToolTip_FilterRegex); + helpToolTip.SetToolTip(filterCaseSensitiveCheckBox, Resources.LogWindow_UI_CheckBox_ToolTip_FilterCaseSensitive); + helpToolTip.SetToolTip(filterSearchButton, Resources.LogWindow_UI_Button_ToolTip_Search); + helpToolTip.SetToolTip(columnComboBox, Resources.LogWindow_UI_ColumnComboBox_ToolTip); + } + + #endregion + [SupportedOSPlatform("windows")] internal void RefreshAllGrids () { @@ -598,7 +716,7 @@ protected void OnStatusLine (StatusLineEventArgs e) StatusLineEvent?.Invoke(this, e); } - protected void OnGuiState (GuiStateArgs e) + protected void OnGuiState (GuiStateEventArgs e) { GuiStateUpdate?.Invoke(this, e); } @@ -695,7 +813,7 @@ private void OnLogFileReaderLoadingStarted (object sender, LoadFileEventArgs e) private void OnLogFileReaderFinishedLoading (object sender, EventArgs e) { //Thread.CurrentThread.Name = "FinishedLoading event thread"; - _logger.Info(CultureInfo.InvariantCulture, "Finished loading."); + //_logger.Info($"Finished loading."); _isLoading = false; _isDeadFile = false; if (!_waitingForClose) @@ -714,7 +832,7 @@ private void OnLogFileReaderFinishedLoading (object sender, EventArgs e) if (filterTailCheckBox.Checked) { - _logger.Info(CultureInfo.InvariantCulture, "Refreshing filter view because of reload."); + //_logger.Info("Refreshing filter view because of reload."); _ = Invoke(new MethodInvoker(FilterSearch)); // call on proper thread } @@ -729,7 +847,7 @@ private void OnLogFileReaderFileNotFound (object sender, EventArgs e) { if (!IsDisposed && !Disposing) { - _logger.Info(CultureInfo.InvariantCulture, "Handling file not found event."); + //_logger.Info($"Handling file not found event."); _isDeadFile = true; _ = BeginInvoke(new MethodInvoker(LogfileDead)); } @@ -746,14 +864,14 @@ private void OnLogWindowClosing (object sender, CancelEventArgs e) { if (Preferences.AskForClose) { - if (MessageBox.Show("Sure to close?", "LogExpert", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) + if (MessageBox.Show(Resources.LogWindow_UI_SureToClose, Resources.LogExpert_Common_UI_Title_LogExpert, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { e.Cancel = true; return; } } - _ = SavePersistenceData(false); + SavePersistenceData(false); CloseLogWindow(); } @@ -772,7 +890,7 @@ private void OnLogFileReaderLoadFile (object sender, LoadFileEventArgs e) { if (e.NewFile) { - _logger.Info(CultureInfo.InvariantCulture, "File created anew."); + //_logger.Info("OnLogFileReaderLoadFile: New File created."); // File was new created (e.g. rollover) _isDeadFile = false; @@ -782,7 +900,7 @@ private void OnLogFileReaderLoadFile (object sender, LoadFileEventArgs e) _ = BeginInvoke(invoker); //Thread loadThread = new Thread(new ThreadStart(ReloadNewFile)); //loadThread.Start(); - _logger.Debug(CultureInfo.InvariantCulture, "Reloading invoked."); + //_logger.Debug("OnLogFileReaderLoadFile: Reloading invoked."); } else if (_isLoading) { @@ -793,7 +911,7 @@ private void OnLogFileReaderLoadFile (object sender, LoadFileEventArgs e) private void OnFileSizeChanged (object sender, LogEventArgs e) { //OnFileSizeChanged(e); // now done in UpdateGrid() - _logger.Info(CultureInfo.InvariantCulture, "Got FileSizeChanged event. prevLines:{0}, curr lines: {1}", e.PrevLineCount, e.LineCount); + //_logger.Info($"Got FileSizeChanged event. prevLines:{e.PrevLineCount}, curr lines: {e.LineCount}"); // - now done in the thread that works on the event args list //if (e.IsRollover) @@ -1155,11 +1273,11 @@ private void OnSelectionChangedTriggerSignal (object sender, EventArgs e) var selCount = 0; try { - _logger.Debug(CultureInfo.InvariantCulture, "Selection changed trigger"); + //_logger.Debug("OnSelectionChangedTriggerSignal: Selection changed trigger"); selCount = dataGridView.SelectedRows.Count; if (selCount > 1) { - StatusLineText(selCount + " selected lines"); + StatusLineText(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_StatusLineText_SelCountSelectedLines, selCount)); } else { @@ -1170,13 +1288,13 @@ private void OnSelectionChangedTriggerSignal (object sender, EventArgs e) } else { - StatusLineText(""); + StatusLineText(string.Empty); } } } catch (Exception ex) { - _logger.Error(ex, "Error in selectionChangedTrigger_Signal selcount {0}", selCount); + _logger.Error($"Error in selectionChangedTrigger_Signal selcount {selCount}, Exception: {ex}"); } } @@ -1337,7 +1455,7 @@ private void OnDataGridContextMenuStripOpening (object sender, CancelEventArgs e // enable/disable Temp Highlight item tempHighlightsToolStripMenuItem.Enabled = _tempHighlightEntryList.Count > 0; - markCurrentFilterRangeToolStripMenuItem.Enabled = string.IsNullOrEmpty(filterRangeComboBox.Text) == false; + markCurrentFilterRangeToolStripMenuItem.Enabled = !string.IsNullOrEmpty(filterRangeComboBox.Text); if (CurrentColumnizer.IsTimeshiftImplemented()) { @@ -1470,7 +1588,7 @@ private void OnLogWindowSizeChanged (object sender, EventArgs e) [SupportedOSPlatform("windows")] private void OnColumnRestrictCheckBoxCheckedChanged (object sender, EventArgs e) { - columnButton.Enabled = columnRestrictCheckBox.Checked; + btnColumn.Enabled = columnRestrictCheckBox.Checked; if (columnRestrictCheckBox.Checked) // disable when nothing to filter { columnNamesLabel.Visible = true; @@ -1496,7 +1614,7 @@ private void OnColumnButtonClick (object sender, EventArgs e) //CheckForFilterDirty(); //!!!GBro: Indicate to redo the search if search columns were changed filterSearchButton.Image = _searchButtonImage; - saveFilterButton.Enabled = false; + bntSaveFilter.Enabled = false; } } @@ -1560,13 +1678,13 @@ private void OnColumnContextMenuStripOpening (object sender, CancelEventArgs e) if (frozen) { - freezeLeftColumnsUntilHereToolStripMenuItem.Text = "Frozen"; + freezeLeftColumnsUntilHereToolStripMenuItem.Text = Resources.LogWindow_UI_Text_Frozen; } else { if (ctl is BufferedDataGridView) { - freezeLeftColumnsUntilHereToolStripMenuItem.Text = $"Freeze left columns until here ({gridView.Columns[_selectedCol].HeaderText})"; + freezeLeftColumnsUntilHereToolStripMenuItem.Text = string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_Text_FreezeLeftColumnsUntilHereGridViewColumns_selectedColHeaderText, gridView.Columns[_selectedCol].HeaderText); } } @@ -1768,7 +1886,7 @@ private void OnEditModeCopyToolStripMenuItemClick (object sender, EventArgs e) { if (dataGridView.EditingControl is DataGridViewTextBoxEditingControl ctl) { - if (Util.IsNull(ctl.SelectedText) == false) + if (!Util.IsNull(ctl.SelectedText)) { Clipboard.SetText(ctl.SelectedText); } @@ -1889,15 +2007,15 @@ private void OnSaveFilterButtonClick (object sender, EventArgs e) [SupportedOSPlatform("windows")] private void OnDeleteFilterButtonClick (object sender, EventArgs e) { - var index = filterListBox.SelectedIndex; + var index = listBoxFilter.SelectedIndex; if (index >= 0) { - var filterParams = (FilterParams)filterListBox.Items[index]; + var filterParams = (FilterParams)listBoxFilter.Items[index]; _ = ConfigManager.Settings.FilterList.Remove(filterParams); OnFilterListChanged(this); - if (filterListBox.Items.Count > 0) + if (listBoxFilter.Items.Count > 0) { - filterListBox.SelectedIndex = filterListBox.Items.Count - 1; + listBoxFilter.SelectedIndex = listBoxFilter.Items.Count - 1; } } } @@ -1905,44 +2023,44 @@ private void OnDeleteFilterButtonClick (object sender, EventArgs e) [SupportedOSPlatform("windows")] private void OnFilterUpButtonClick (object sender, EventArgs e) { - var i = filterListBox.SelectedIndex; + var i = listBoxFilter.SelectedIndex; if (i > 0) { - var filterParams = (FilterParams)filterListBox.Items[i]; + var filterParams = (FilterParams)listBoxFilter.Items[i]; ConfigManager.Settings.FilterList.RemoveAt(i); i--; ConfigManager.Settings.FilterList.Insert(i, filterParams); OnFilterListChanged(this); - filterListBox.SelectedIndex = i; + listBoxFilter.SelectedIndex = i; } } [SupportedOSPlatform("windows")] private void OnFilterDownButtonClick (object sender, EventArgs e) { - var i = filterListBox.SelectedIndex; + var i = listBoxFilter.SelectedIndex; if (i < 0) { return; } - if (i < filterListBox.Items.Count - 1) + if (i < listBoxFilter.Items.Count - 1) { - var filterParams = (FilterParams)filterListBox.Items[i]; + var filterParams = (FilterParams)listBoxFilter.Items[i]; ConfigManager.Settings.FilterList.RemoveAt(i); i++; ConfigManager.Settings.FilterList.Insert(i, filterParams); OnFilterListChanged(this); - filterListBox.SelectedIndex = i; + listBoxFilter.SelectedIndex = i; } } [SupportedOSPlatform("windows")] private void OnFilterListBoxMouseDoubleClick (object sender, MouseEventArgs e) { - if (filterListBox.SelectedIndex >= 0) + if (listBoxFilter.SelectedIndex >= 0) { - var filterParams = (FilterParams)filterListBox.Items[filterListBox.SelectedIndex]; + var filterParams = (FilterParams)listBoxFilter.Items[listBoxFilter.SelectedIndex]; var newParams = filterParams.Clone(); //newParams.historyList = ConfigManager.Settings.filterHistoryList; _filterParams = newParams; @@ -1951,7 +2069,7 @@ private void OnFilterListBoxMouseDoubleClick (object sender, MouseEventArgs e) CheckForAdvancedButtonDirty(); CheckForFilterDirty(); filterSearchButton.Image = _searchButtonImage; - saveFilterButton.Enabled = false; + bntSaveFilter.Enabled = false; if (hideFilterListOnLoadCheckBox.Checked) { ToggleHighlightPanel(false); @@ -1970,11 +2088,11 @@ private void OnFilterListBoxDrawItem (object sender, DrawItemEventArgs e) e.DrawBackground(); if (e.Index >= 0) { - var filterParams = (FilterParams)filterListBox.Items[e.Index]; + var filterParams = (FilterParams)listBoxFilter.Items[e.Index]; Rectangle rectangle = new(0, e.Bounds.Top, e.Bounds.Width, e.Bounds.Height); using var brush = (e.State & DrawItemState.Selected) == DrawItemState.Selected - ? new SolidBrush(filterListBox.BackColor) + ? new SolidBrush(listBoxFilter.BackColor) : new SolidBrush(filterParams.Color); e.Graphics.DrawString(filterParams.SearchText, e.Font, brush, new PointF(rectangle.Left, rectangle.Top)); @@ -1986,10 +2104,10 @@ private void OnFilterListBoxDrawItem (object sender, DrawItemEventArgs e) // Color for filter list entry private void OnColorToolStripMenuItemClick (object sender, EventArgs e) { - var i = filterListBox.SelectedIndex; - if (i < filterListBox.Items.Count && i >= 0) + var i = listBoxFilter.SelectedIndex; + if (i < listBoxFilter.Items.Count && i >= 0) { - var filterParams = (FilterParams)filterListBox.Items[i]; + var filterParams = (FilterParams)listBoxFilter.Items[i]; ColorDialog dlg = new() { CustomColors = [filterParams.Color.ToArgb()], @@ -1999,7 +2117,7 @@ private void OnColorToolStripMenuItemClick (object sender, EventArgs e) if (dlg.ShowDialog() == DialogResult.OK) { filterParams.Color = dlg.Color; - filterListBox.Refresh(); + listBoxFilter.Refresh(); } } } @@ -2013,8 +2131,8 @@ private void OnFilterCaseSensitiveCheckBoxCheckedChanged (object sender, EventAr [SupportedOSPlatform("windows")] private void OnFilterRegexCheckBoxCheckedChanged (object sender, EventArgs e) { - fuzzyKnobControl.Enabled = !filterRegexCheckBox.Checked; - fuzzyLabel.Enabled = !filterRegexCheckBox.Checked; + knobControlFuzzy.Enabled = !filterRegexCheckBox.Checked; + lblfuzzy.Enabled = !filterRegexCheckBox.Checked; CheckForFilterDirty(); } @@ -2201,7 +2319,7 @@ private void OnDataGridViewRowUnshared (object sender, DataGridViewRowEventArgs [SupportedOSPlatform("windows")] private void MeasureItem (object sender, MeasureItemEventArgs e) { - e.ItemHeight = filterListBox.Font.Height; + e.ItemHeight = listBoxFilter.Font.Height; } #endregion @@ -2243,6 +2361,7 @@ private void UnRegisterLogFileReaderEvents () } [SupportedOSPlatform("windows")] + //TODO This should be part of the Persister private bool LoadPersistenceOptions () { if (InvokeRequired) @@ -2263,7 +2382,7 @@ private bool LoadPersistenceOptions () if (persistenceData == null) { - _logger.Info($"No persistence data for {FileName} found."); + //_logger.Info($"No persistence data for {FileName} found."); return false; } @@ -2300,7 +2419,7 @@ private bool LoadPersistenceOptions () if (persistenceData.MultiFileNames.Count > 0) { - _logger.Info(CultureInfo.InvariantCulture, "Detected MultiFile name list in persistence options"); + //_logger.Info($"Detected MultiFile name list in persistence options"); _fileNames = new string[persistenceData.MultiFileNames.Count]; persistenceData.MultiFileNames.CopyTo(_fileNames); } @@ -2313,9 +2432,9 @@ private bool LoadPersistenceOptions () SetExplicitEncoding(persistenceData.Encoding); return true; } - catch (Exception ex) + catch (Exception e) { - _logger.Error(ex, "Error loading persistence data: "); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(LoadPersistenceOptions), e)); return false; } } @@ -2330,6 +2449,7 @@ private void SetDefaultsFromPrefs () } [SupportedOSPlatform("windows")] + //TODO This should be part of the Persister private void LoadPersistenceData () { if (InvokeRequired) @@ -2362,7 +2482,7 @@ private void LoadPersistenceData () { // outdated persistence data (logfile rollover) // MessageBox.Show(this, "Persistence data for " + this.FileName + " is outdated. It was discarded.", "Log Expert"); - _logger.Info($"Persistence data for {FileName} is outdated. It was discarded."); + //_logger.Info($"Persistence data for {FileName} is outdated. It was discarded.")); _ = LoadPersistenceOptions(); return; } @@ -2405,10 +2525,10 @@ private void LoadPersistenceData () RestoreFilters(persistenceData); } } - catch (IOException ex) + catch (IOException e) { SetDefaultsFromPrefs(); - _logger.Error(ex, "Error loading bookmarks: "); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(LoadPersistenceData), e)); } } @@ -2421,8 +2541,9 @@ private void RestoreFilters (PersistenceData persistenceData) ReInitFilterParams(_filterParams); } - ApplyFilterParams(); // re-loaded filter settingss + ApplyFilterParams(); // re-loaded filter settings _ = BeginInvoke(new MethodInvoker(FilterSearch)); + try { splitContainerLogWindow.SplitterDistance = persistenceData.FilterPosition; @@ -2430,7 +2551,7 @@ private void RestoreFilters (PersistenceData persistenceData) } catch (InvalidOperationException e) { - _logger.Error(e, "Error setting splitter distance: "); + _logger.Error($"Error setting splitter distance: {e}"); } ShowAdvancedFilterPanel(persistenceData.FilterAdvanced); @@ -2458,7 +2579,7 @@ private void RestoreFilterTabs (PersistenceData persistenceData) private void ReInitFilterParams (FilterParams filterParams) { filterParams.SearchText = filterParams.SearchText; // init "lowerSearchText" - filterParams.RangeSearchText = filterParams.RangeSearchText; // init "lowerRangesearchText" + filterParams.RangeSearchText = filterParams.RangeSearchText; // init "lowerRangeSearchText" filterParams.CurrentColumnizer = CurrentColumnizer; if (filterParams.IsRegex) { @@ -2468,22 +2589,20 @@ private void ReInitFilterParams (FilterParams filterParams) } catch (ArgumentException) { - StatusLineError("Invalid regular expression"); + StatusLineError(Resources.LogWindow_UI_StatusLineError_InvalidRegularExpression); } } } private void EnterLoadFileStatus () { - _logger.Debug(CultureInfo.InvariantCulture, "EnterLoadFileStatus begin"); - if (InvokeRequired) { _ = Invoke(new MethodInvoker(EnterLoadFileStatus)); return; } - _statusEventArgs.StatusText = "Loading file..."; + _statusEventArgs.StatusText = Resources.LogWindow_UI_StatusText_LoadingFile; _statusEventArgs.LineCount = 0; _statusEventArgs.FileSize = 0; SendStatusLineUpdate(); @@ -2500,7 +2619,6 @@ private void EnterLoadFileStatus () ClearBookmarkList(); dataGridView.ClearSelection(); dataGridView.RowCount = 0; - _logger.Debug(CultureInfo.InvariantCulture, "EnterLoadFileStatus end"); } [SupportedOSPlatform("windows")] @@ -2520,7 +2638,6 @@ private void PositionAfterReload (ReloadMemento reloadMemento) [SupportedOSPlatform("windows")] private void LogfileDead () { - _logger.Info(CultureInfo.InvariantCulture, "File not found."); _isDeadFile = true; //this.logFileReader.FileSizeChanged -= this.FileSizeChangedHandler; @@ -2540,17 +2657,17 @@ private void LogfileDead () ClearFilterList(); ClearBookmarkList(); - StatusLineText("File not found"); + StatusLineText(Resources.LogWindow_UI_StatusLineText_FileNotFound); OnFileNotFound(EventArgs.Empty); } [SupportedOSPlatform("windows")] private void LogfileRespawned () { - _logger.Info(CultureInfo.InvariantCulture, "LogfileDead(): Reloading file because it has been respawned."); + //_logger.Info($"Reloading file because it has been respawned."); _isDeadFile = false; dataGridView.Enabled = true; - StatusLineText(""); + StatusLineText(string.Empty); OnFileRespawned(EventArgs.Empty); Reload(); } @@ -2646,10 +2763,10 @@ private void ReloadNewFile () lock (_reloadLock) { _reloadOverloadCounter++; - _logger.Info($"ReloadNewFile(): counter = {_reloadOverloadCounter}"); + //_logger.Info($"ReloadNewFile(): counter = {_reloadOverloadCounter}"); if (_reloadOverloadCounter <= 1) { - _ = SavePersistenceData(false); + SavePersistenceData(false); _ = _loadingFinishedEvent.Reset(); _ = _externaLoadingFinishedEvent.Reset(); Thread reloadFinishedThread = new(ReloadFinishedThreadFx) @@ -2660,21 +2777,21 @@ private void ReloadNewFile () LoadFile(FileName, EncodingOptions); ClearBookmarkList(); - _ = SavePersistenceData(false); + SavePersistenceData(false); //if (this.filterTailCheckBox.Checked) //{ - // _logger.logDebug("Waiting for loading to be complete."); + // _logger.Debug($"Waiting for loading to be complete."); // loadingFinishedEvent.WaitOne(); - // _logger.logDebug("Refreshing filter view because of reload."); + // _logger.Debug($"Refreshing filter view because of reload."); // FilterSearch(); //} //LoadFilterPipes(); } - else - { - _logger.Debug(CultureInfo.InvariantCulture, "Preventing reload because of recursive calls."); - } + //else + //{ + // //_logger.Debug($"Preventing reload because of recursive calls."); + //} _reloadOverloadCounter--; } @@ -2683,59 +2800,59 @@ private void ReloadNewFile () [SupportedOSPlatform("windows")] private void ReloadFinishedThreadFx () { - _logger.Info(CultureInfo.InvariantCulture, "Waiting for loading to be complete."); + //_logger.Info($"Waiting for loading to be complete."); _ = _loadingFinishedEvent.WaitOne(); - _logger.Info(CultureInfo.InvariantCulture, "Refreshing filter view because of reload."); + //_logger.Info("Refreshing filter view because of reload."); _ = Invoke(new MethodInvoker(FilterSearch)); LoadFilterPipes(); } - private void UpdateProgress (LoadFileEventArgs e) + private void UpdateProgress (LoadFileEventArgs loadFileEventArgs) { try { - if (e.ReadPos >= e.FileSize) + if (loadFileEventArgs.ReadPos >= loadFileEventArgs.FileSize) { //_logger.Warn(CultureInfo.InvariantCulture, "UpdateProgress(): ReadPos (" + e.ReadPos + ") is greater than file size (" + e.FileSize + "). Aborting Update"); return; } - _statusEventArgs.FileSize = e.ReadPos; + _statusEventArgs.FileSize = loadFileEventArgs.ReadPos; //this.progressEventArgs.Visible = true; - _progressEventArgs.MaxValue = (int)e.FileSize; - _progressEventArgs.Value = (int)e.ReadPos; + _progressEventArgs.MaxValue = (int)loadFileEventArgs.FileSize; + _progressEventArgs.Value = (int)loadFileEventArgs.ReadPos; SendProgressBarUpdate(); SendStatusLineUpdate(); } - catch (Exception ex) + catch (Exception e) { - _logger.Error(ex, "UpdateProgress(): "); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(UpdateProgress), e)); } } - private void LoadingStarted (LoadFileEventArgs e) + private void LoadingStarted (LoadFileEventArgs loadFileEventArgs) { try { - _statusEventArgs.FileSize = e.ReadPos; - _statusEventArgs.StatusText = "Loading " + Util.GetNameFromPath(e.FileName); + _statusEventArgs.FileSize = loadFileEventArgs.ReadPos; + _statusEventArgs.StatusText = string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_StatusText_LoadingWithParameter, Util.GetNameFromPath(loadFileEventArgs.FileName)); _progressEventArgs.Visible = true; - _progressEventArgs.MaxValue = (int)e.FileSize; - _progressEventArgs.Value = (int)e.ReadPos; + _progressEventArgs.MaxValue = (int)loadFileEventArgs.FileSize; + _progressEventArgs.Value = (int)loadFileEventArgs.ReadPos; SendProgressBarUpdate(); SendStatusLineUpdate(); } - catch (Exception ex) + catch (Exception e) { - _logger.Error(ex, "LoadingStarted(): "); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(LoadingStarted), e)); } } private void LoadingFinished () { - _logger.Info(CultureInfo.InvariantCulture, "File loading complete."); + //_logger.Info($"File loading complete."); - StatusLineText(""); + StatusLineText(string.Empty); _logFileReader.FileSizeChanged += OnFileSizeChanged; _isLoading = false; _shouldCancel = false; @@ -2773,16 +2890,16 @@ private void LogEventWorker () Thread.CurrentThread.Name = "LogEventWorker"; while (true) { - _logger.Debug(CultureInfo.InvariantCulture, "Waiting for signal"); + //_logger.Debug($"Waiting for signal"); _ = _logEventArgsEvent.WaitOne(); - _logger.Debug(CultureInfo.InvariantCulture, "Wakeup signal received."); + //_logger.Debug($"Wakeup signal received."); while (true) { LogEventArgs e; - var lastLineCount = 0; + //var lastLineCount = 0; lock (_logEventArgsList) { - _logger.Info(CultureInfo.InvariantCulture, "{0} events in queue", _logEventArgsList.Count); + //_logger.Info($"{_logEventArgsList.Count} events in queue"); if (_logEventArgsList.Count == 0) { _ = _logEventArgsEvent.Reset(); @@ -2798,15 +2915,15 @@ private void LogEventWorker () ShiftBookmarks(e.RolloverOffset); ShiftRowHeightList(e.RolloverOffset); ShiftFilterPipes(e.RolloverOffset); - lastLineCount = 0; - } - else - { - if (e.LineCount < lastLineCount) - { - _logger.Error("Line count of event is: {0}, should be greater than last line count: {1}", e.LineCount, lastLineCount); - } + //lastLineCount = 0; } + //else + //{ + // if (e.LineCount < lastLineCount) + // { + // _logger.Error($"Line count of event is: {e.LineCount}, should be greater than last line count: {lastLineCount}")); + // } + //} _ = Invoke(UpdateGrid, [e]); CheckFilterAndHighlight(e); @@ -2823,17 +2940,17 @@ private void StopLogEventWorkerThread () //_logEventHandlerThread.Join(); } - private void OnFileSizeChanged (LogEventArgs e) + private void OnFileSizeChanged (LogEventArgs logEventArgs) { - FileSizeChanged?.Invoke(this, e); + FileSizeChanged?.Invoke(this, logEventArgs); } - private void UpdateGrid (LogEventArgs e) + private void UpdateGrid (LogEventArgs logEventArgs) { var oldRowCount = dataGridView.RowCount; var firstDisplayedLine = dataGridView.FirstDisplayedScrollingRowIndex; - if (dataGridView.CurrentCellAddress.Y >= e.LineCount) + if (dataGridView.CurrentCellAddress.Y >= logEventArgs.LineCount) { //this.dataGridView.Rows[this.dataGridView.CurrentCellAddress.Y].Selected = false; //this.dataGridView.CurrentCell = this.dataGridView.Rows[0].Cells[0]; @@ -2841,12 +2958,12 @@ private void UpdateGrid (LogEventArgs e) try { - if (dataGridView.RowCount > e.LineCount) + if (dataGridView.RowCount > logEventArgs.LineCount) { var currentLineNum = dataGridView.CurrentCellAddress.Y; dataGridView.RowCount = 0; - dataGridView.RowCount = e.LineCount; - if (_guiStateArgs.FollowTail == false) + dataGridView.RowCount = logEventArgs.LineCount; + if (!_guiStateArgs.FollowTail) { if (currentLineNum >= dataGridView.RowCount) { @@ -2858,26 +2975,26 @@ private void UpdateGrid (LogEventArgs e) } else { - dataGridView.RowCount = e.LineCount; + dataGridView.RowCount = logEventArgs.LineCount; } - _logger.Debug(CultureInfo.InvariantCulture, "UpdateGrid(): new RowCount={0}", dataGridView.RowCount); + //_logger.Debug($"UpdateGrid(): new RowCount={dataGridView.RowCount}"); - if (e.IsRollover) + if (logEventArgs.IsRollover) { // Multifile rollover // keep selection and view range, if no follow tail mode if (!_guiStateArgs.FollowTail) { var currentLineNum = dataGridView.CurrentCellAddress.Y; - currentLineNum -= e.RolloverOffset; + currentLineNum -= logEventArgs.RolloverOffset; if (currentLineNum < 0) { currentLineNum = 0; } - _logger.Debug(CultureInfo.InvariantCulture, "UpdateGrid(): Rollover=true, Rollover offset={0}, currLineNum was {1}, new currLineNum={2}", e.RolloverOffset, dataGridView.CurrentCellAddress.Y, currentLineNum); - firstDisplayedLine -= e.RolloverOffset; + //_logger.Debug($"UpdateGrid(): Rollover=true, Rollover offset={logEventArgs.RolloverOffset}, currLineNum was {dataGridView.CurrentCellAddress.Y}, new currLineNum={currentLineNum}"); + firstDisplayedLine -= logEventArgs.RolloverOffset; if (firstDisplayedLine < 0) { firstDisplayedLine = 0; @@ -2889,8 +3006,8 @@ private void UpdateGrid (LogEventArgs e) } } - _statusEventArgs.LineCount = e.LineCount; - StatusLineFileSize(e.FileSize); + _statusEventArgs.LineCount = logEventArgs.LineCount; + StatusLineFileSize(logEventArgs.FileSize); if (!_isLoading) { @@ -2913,9 +3030,9 @@ private void UpdateGrid (LogEventArgs e) SetTimestampLimits(); } } - catch (Exception ex) + catch (Exception e) { - _logger.Error(ex, "Fehler bei UpdateGrid(): "); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(UpdateGrid), e)); } //this.dataGridView.Refresh(); @@ -2925,10 +3042,6 @@ private void UpdateGrid (LogEventArgs e) private void CheckFilterAndHighlight (LogEventArgs e) { var noLed = true; - bool suppressLed; - bool setBookmark; - bool stopTail; - string bookmarkComment; if (filterTailCheckBox.Checked || _filterPipeList.Count > 0) { @@ -2968,7 +3081,7 @@ private void CheckFilterAndHighlight (LogEventArgs e) var matchingList = FindMatchingHilightEntries(line); LaunchHighlightPlugins(matchingList, i); - GetHighlightActions(matchingList, out suppressLed, out stopTail, out setBookmark, out bookmarkComment); + var (suppressLed, stopTail, setBookmark, bookmarkComment) = GetHighlightActions(matchingList); if (setBookmark) { SetBookmarkFx fx = SetBookmarkFromTrigger; @@ -3016,8 +3129,7 @@ private void CheckFilterAndHighlight (LogEventArgs e) { var matchingList = FindMatchingHilightEntries(line); LaunchHighlightPlugins(matchingList, i); - GetHighlightActions(matchingList, out suppressLed, out stopTail, out setBookmark, - out bookmarkComment); + var (suppressLed, stopTail, setBookmark, bookmarkComment) = GetHighlightActions(matchingList); if (setBookmark) { SetBookmarkFx fx = SetBookmarkFromTrigger; @@ -3097,7 +3209,7 @@ private void SetColumnizer (ILogLineColumnizer columnizer) private void SetColumnizerInternal (ILogLineColumnizer columnizer) { - _logger.Info(CultureInfo.InvariantCulture, "SetColumnizerInternal(): {0}", columnizer.GetName()); + //_logger.Info($"SetColumnizerInternal(): {columnizer.GetName()}"); var oldColumnizer = CurrentColumnizer; var oldColumnizerIsXmlType = CurrentColumnizer is ILogLineXmlColumnizer; @@ -3257,7 +3369,7 @@ private void AutoResizeColumns (BufferedDataGridView gridView) // possible solution => https://stackoverflow.com/questions/36287553/nullreferenceexception-when-trying-to-set-datagridview-column-width-brings-th // There are some rare situations with null ref exceptions when resizing columns and on filter finished // So catch them here. Better than crashing. - _logger.Error(e, "Error while resizing columns: "); + _logger.Error($"Error while resizing columns: {e}"); } } @@ -3379,7 +3491,7 @@ private void PaintHighlightedCell (DataGridViewCellPaintingEventArgs e, Highligh /// List of all highlight matches for the current cell /// The entry that is used as the default. /// List of HighlightMatchEntry objects. The list spans over the whole cell and contains color infos for every substring. - private IList MergeHighlightMatchEntries (IList matchList, HighlightMatchEntry groundEntry) + private static IList MergeHighlightMatchEntries (IList matchList, HighlightMatchEntry groundEntry) { // Fill an area with lenth of whole text with a default hilight entry var entryArray = new HighlightEntry[groundEntry.Length]; @@ -3446,19 +3558,19 @@ private IList MergeHighlightMatchEntries (IList - /// Returns the first HilightEntry that matches the given line + /// Returns the first HighlightEntry that matches the given line /// - private HighlightEntry FindHilightEntry (ITextValue line) + private HighlightEntry FindHighlightEntry (ITextValue line) { return FindHighlightEntry(line, false); } - private HighlightEntry FindFirstNoWordMatchHilightEntry (ITextValue line) + private HighlightEntry FindFirstNoWordMatchHighlightEntry (ITextValue line) { return FindHighlightEntry(line, true); } - private bool CheckHighlightEntryMatch (HighlightEntry entry, ITextValue column) + private static bool CheckHighlightEntryMatch (HighlightEntry entry, ITextValue column) { if (entry.IsRegex) { @@ -3512,7 +3624,7 @@ private IList FindMatchingHilightEntries (ITextValue line) return resultList; } - private void GetHighlightEntryMatches (ITextValue line, IList hilightEntryList, IList resultList) + private static void GetHighlightEntryMatches (ITextValue line, IList hilightEntryList, IList resultList) { foreach (var entry in hilightEntryList) { @@ -3548,10 +3660,12 @@ private void GetHighlightEntryMatches (ITextValue line, IList hi } } - private void GetHighlightActions (IList matchingList, out bool noLed, out bool stopTail, out bool setBookmark, out string bookmarkComment) + private static (bool NoLed, bool StopTail, bool SetBookmark, string BookmarkComment) GetHighlightActions (IList matchingList) { - noLed = stopTail = setBookmark = false; - bookmarkComment = string.Empty; + var noLed = false; + var stopTail = false; + var setBookmark = false; + var bookmarkComment = string.Empty; foreach (var entry in matchingList) { @@ -3576,6 +3690,8 @@ private void GetHighlightActions (IList matchingList, out bool n } bookmarkComment = bookmarkComment.TrimEnd(['\r', '\n']); + + return (noLed, stopTail, setBookmark, bookmarkComment); } private void StopTimespreadThread () @@ -3615,7 +3731,6 @@ private void SyncTimestampDisplay (int lineNum) [SupportedOSPlatform("windows")] private void SyncTimestampDisplayWorker () { - const int WAIT_TIME = 500; Thread.CurrentThread.Name = "SyncTimestampDisplayWorker"; _shouldTimestampDisplaySyncingCancel = false; _isTimestampDisplaySyncing = true; @@ -3679,7 +3794,7 @@ private void SyncTimestampDisplayWorker () ? new DateTime(timeStamp1.Ticks - timeStamp2.Ticks) : new DateTime(timeStamp2.Ticks - timeStamp1.Ticks); - StatusLineText($"Time diff is {diff:HH:mm:ss.fff}"); + StatusLineText(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_StatusLineText_TimeDiff, $"{diff:HH:mm:ss.fff}")); } else { @@ -3715,7 +3830,7 @@ private void SyncFilterGridPos () } catch (Exception e) { - _logger.Error(e, "SyncFilterGridPos(): "); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(SyncFilterGridPos), e)); } } @@ -3737,7 +3852,7 @@ private int Search (SearchParams searchParams) ? 0 : searchParams.CurrentLine; - var lowerSearchText = searchParams.SearchText.ToLowerInvariant(); + var lowerSearchText = searchParams.SearchText.ToUpperInvariant(); var count = 0; var hasWrapped = false; @@ -3749,14 +3864,14 @@ private int Search (SearchParams searchParams) { if (hasWrapped) { - StatusLineError("Not found: " + searchParams.SearchText); + StatusLineError(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_StatusLineError_NotFound, searchParams.SearchText)); return -1; } lineNum = 0; count = 0; hasWrapped = true; - StatusLineError("Started from beginning of file"); + StatusLineError(Resources.LogWindow_UI_StatusLineError_StartedFromBeginningOfFile); } } else @@ -3765,14 +3880,14 @@ private int Search (SearchParams searchParams) { if (hasWrapped) { - StatusLineError("Not found: " + searchParams.SearchText); + StatusLineError(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_StatusLineError_NotFound, searchParams.SearchText)); return -1; } count = 0; lineNum = _logFileReader.LineCount - 1; hasWrapped = true; - StatusLineError("Started from end of file"); + StatusLineError(Resources.LogWindow_UI_StatusLineError_StartedFromEndOfFile); } } @@ -3784,7 +3899,9 @@ private int Search (SearchParams searchParams) if (searchParams.IsRegex) { - Regex rex = new(searchParams.SearchText, searchParams.IsCaseSensitive ? RegexOptions.None : RegexOptions.IgnoreCase); + Regex rex = new(searchParams.SearchText, searchParams.IsCaseSensitive + ? RegexOptions.None + : RegexOptions.IgnoreCase); if (rex.IsMatch(line.FullLine)) { return lineNum; @@ -3866,7 +3983,7 @@ private void SelectLine (int lineNum, bool triggerSyncCall, bool shouldScroll) if (lineNum == -1) { // Hmm... is that experimental code from early days? - _ = MessageBox.Show(this, "Not found:", "Search result"); + _ = MessageBox.Show(this, Resources.LogWindow_UI_SelectLine_SearchResultNotFound, Resources.LogExpert_Common_UI_Title_LogExpert); return; } @@ -3886,12 +4003,12 @@ private void SelectLine (int lineNum, bool triggerSyncCall, bool shouldScroll) } catch (ArgumentOutOfRangeException e) { - _logger.Error(e, "Error while selecting line: "); + _logger.Error($"### SelectLine: Error while selecting line: {e}"); } catch (IndexOutOfRangeException e) { - // Occures sometimes (but cannot reproduce) - _logger.Error(e, "Error while selecting line: "); + // Occurs sometimes (but cannot reproduce) + _logger.Error($"### SelectLine: Error while selecting line: {e}"); } } @@ -3912,10 +4029,10 @@ private void StartEditMode () dataGridView.CellEndEdit += OnDataGridViewCellEndEdit; editControl.SelectionStart = 0; } - else - { - _logger.Warn(CultureInfo.InvariantCulture, "Edit control in logWindow was null"); - } + //else + //{ + // _logger.Warn($"Edit control in logWindow was null"); + //} } } } @@ -3927,8 +4044,8 @@ private void UpdateEditColumnDisplay (DataGridViewTextBoxEditingControl editCont if (dataGridView.EditingControl != null) { var pos = editControl.SelectionStart + editControl.SelectionLength; - StatusLineText(" " + pos); - _logger.Debug(CultureInfo.InvariantCulture, "SelStart: {0}, SelLen: {1}", editControl.SelectionStart, editControl.SelectionLength); + StatusLineText(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_StatusLineText_UpdateEditColumnDisplay, pos)); + //_logger.Debug($"### UpdateEditColumnDisplay: SelStart: {editControl.SelectionStart}, SelLen: {editControl.SelectionLength}")); } } @@ -3942,7 +4059,7 @@ private void SelectPrevHighlightLine () var line = _logFileReader.GetLogLine(lineNum); if (line != null) { - var entry = FindHilightEntry(line); + var entry = FindHighlightEntry(line); if (entry != null) { SelectLine(lineNum, false, true); @@ -3962,7 +4079,7 @@ private void SelectNextHighlightLine () var line = _logFileReader.GetLogLine(lineNum); if (line != null) { - var entry = FindHilightEntry(line); + var entry = FindHighlightEntry(line); if (entry != null) { SelectLine(lineNum, false, true); @@ -4078,11 +4195,11 @@ private void ApplyFilterParams () filterRegexCheckBox.Checked = _filterParams.IsRegex; filterTailCheckBox.Checked = _filterParams.IsFilterTail; invertFilterCheckBox.Checked = _filterParams.IsInvert; - filterKnobBackSpread.Value = _filterParams.SpreadBefore; - filterKnobForeSpread.Value = _filterParams.SpreadBehind; + knobControlFilterBackSpread.Value = _filterParams.SpreadBefore; + knobControlFilterForeSpread.Value = _filterParams.SpreadBehind; rangeCheckBox.Checked = _filterParams.IsRangeSearch; columnRestrictCheckBox.Checked = _filterParams.ColumnRestrict; - fuzzyKnobControl.Value = _filterParams.FuzzyValue; + knobControlFuzzy.Value = _filterParams.FuzzyValue; filterRangeComboBox.Text = _filterParams.RangeSearchText; } @@ -4094,11 +4211,11 @@ private void ResetFilterControls () filterRegexCheckBox.Checked = false; //this.filterTailCheckBox.Checked = this.Preferences.filterTail; invertFilterCheckBox.Checked = false; - filterKnobBackSpread.Value = 0; - filterKnobForeSpread.Value = 0; + knobControlFilterBackSpread.Value = 0; + knobControlFilterForeSpread.Value = 0; rangeCheckBox.Checked = false; columnRestrictCheckBox.Checked = false; - fuzzyKnobControl.Value = 0; + knobControlFuzzy.Value = 0; filterRangeComboBox.Text = ""; } @@ -4112,7 +4229,7 @@ private void FilterSearch () ClearFilterList(); filterSearchButton.Image = null; ResetFilterControls(); - saveFilterButton.Enabled = false; + bntSaveFilter.Enabled = false; return; } @@ -4174,14 +4291,14 @@ private async void FilterSearch (string text) } catch (ArgumentException) { - StatusLineError("Invalid regular expression"); + StatusLineError(Resources.LogWindow_UI_StatusLineError_InvalidRegularExpression); return; } } - _filterParams.FuzzyValue = fuzzyKnobControl.Value; - _filterParams.SpreadBefore = filterKnobBackSpread.Value; - _filterParams.SpreadBehind = filterKnobForeSpread.Value; + _filterParams.FuzzyValue = knobControlFuzzy.Value; + _filterParams.SpreadBefore = knobControlFilterBackSpread.Value; + _filterParams.SpreadBehind = knobControlFilterForeSpread.Value; _filterParams.ColumnRestrict = columnRestrictCheckBox.Checked; //ConfigManager.SaveFilterParams(this.filterParams); @@ -4189,7 +4306,7 @@ private async void FilterSearch (string text) _shouldCancel = false; _isSearching = true; - StatusLineText("Filtering... Press ESC to cancel"); + StatusLineText(Resources.LogWindow_UI_StatusLineText_FilterSearch_Filtering); filterSearchButton.Enabled = false; ClearFilterList(); @@ -4205,13 +4322,14 @@ private async void FilterSearch (string text) FilterFxAction = settings.Preferences.MultiThreadFilter ? MultiThreadedFilter : Filter; //Task.Run(() => fx.Invoke(_filterParams, _filterResultList, _lastFilterLinesList, _filterHitList)); - var filterFxActionTask = Task.Run(() => Filter(_filterParams, _filterResultList, _lastFilterLinesList, _filterHitList)); + var filterFxActionTask = Task.Run(() => Filter(_filterParams, _filterResultList, _lastFilterLinesList, _filterHitList)).ConfigureAwait(false); await filterFxActionTask; FilterComplete(); //fx.BeginInvoke(_filterParams, _filterResultList, _lastFilterLinesList, _filterHitList, FilterComplete, null); - CheckForFilterDirty(); + //This needs to be invoked, because there is a potential CrossThreadException + _ = BeginInvoke(CheckForFilterDirty); } private void MultiThreadedFilter (FilterParams filterParams, List filterResultLines, List lastFilterLinesList, List filterHitList) @@ -4233,10 +4351,10 @@ private void MultiThreadedFilter (FilterParams filterParams, List filterRes long endTime = Environment.TickCount; - _logger.Debug($"Multi threaded filter duration: {endTime - startTime} ms."); + //_logger.Debug($"Multi threaded filter duration: {endTime - startTime} ms.")); OnDeRegisterCancelHandler(cancelHandler); - StatusLineText("Filter duration: " + (endTime - startTime) + " ms."); + StatusLineText(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_StatusLineText_Filter_FilterDurationMs, endTime - startTime)); } private void FilterProgressCallback (int lineCount) @@ -4283,15 +4401,14 @@ private void Filter (FilterParams filterParams, List filterResultLines, Lis } catch (Exception ex) { - _logger.Error(ex, "Exception while filtering. Please report to developer: "); - _ = MessageBox.Show(null, $"Exception while filtering. Please report to developer: \n\n{ex}\n\n{ex.StackTrace}", "LogExpert"); + _ = MessageBox.Show(null, string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_Filter_ExceptionWhileFiltering, ex, ex.StackTrace), Resources.LogExpert_Common_UI_Title_Error); } long endTime = Environment.TickCount; - _logger.Info($"Single threaded filter duration: {endTime - startTime} ms."); + //_logger.Info($"Single threaded filter duration: {endTime - startTime} ms.")); - StatusLineText("Filter duration: " + (endTime - startTime) + " ms."); + StatusLineText(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_StatusLineText_Filter_FilterDurationMs, endTime - startTime)); } /// @@ -4447,7 +4564,7 @@ private void AddFilterLineGuiUpdate () { lock (_filterResultList) { - lblFilterCount.Text = "" + _filterResultList.Count; + lblFilterCount.Text = string.Empty + _filterResultList.Count; if (filterGridView.RowCount > _filterResultList.Count) { filterGridView.RowCount = 0; // helps to prevent hang ? @@ -4469,7 +4586,7 @@ private void AddFilterLineGuiUpdate () } catch (Exception e) { - _logger.Error(e, "AddFilterLineGuiUpdate(): "); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(AddFilterLineGuiUpdate), e)); } } @@ -4494,15 +4611,6 @@ private void FilterComplete () } } - [SupportedOSPlatform("windows")] - private void FilterComplete (IAsyncResult result) - { - if (!IsDisposed && !_waitingForClose && !Disposing) - { - _ = Invoke(new MethodInvoker(ResetStatusAfterFilter)); - } - } - [SupportedOSPlatform("windows")] private void ResetStatusAfterFilter () { @@ -4516,7 +4624,7 @@ private void ResetStatusAfterFilter () filterGridView.RowCount = _filterResultList.Count; //this.filterGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells); AutoResizeColumns(filterGridView); - lblFilterCount.Text = "" + _filterResultList.Count; + lblFilterCount.Text = string.Empty + _filterResultList.Count; if (filterGridView.RowCount > 0) { _ = filterGridView.Focus(); @@ -4529,7 +4637,7 @@ private void ResetStatusAfterFilter () // See https://connect.microsoft.com/VisualStudio/feedback/details/366943/autoresizecolumns-in-datagridview-throws-nullreferenceexception // There are some rare situations with null ref exceptions when resizing columns and on filter finished // So catch them here. Better than crashing. - _logger.Error(e, "Error: "); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(ResetStatusAfterFilter), e)); } } @@ -4543,7 +4651,7 @@ private void ClearFilterList () { filterGridView.SuspendLayout(); filterGridView.RowCount = 0; - lblFilterCount.Text = "0"; + lblFilterCount.Text = Resources.LogWindow_UI_Common_ZeroValue; _filterResultList = []; _lastFilterLinesList = []; _filterHitList = []; @@ -4551,11 +4659,11 @@ private void ClearFilterList () filterGridView.ResumeLayout(); } } - catch (Exception ex) + catch (Exception e) { - _logger.Error(ex, "Wieder dieser sporadische Fehler: "); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(ClearFilterList), e)); - _ = MessageBox.Show(null, ex.StackTrace, "Wieder dieser sporadische Fehler:"); + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_Error_ClearFilterList_WhileClearingFilterList, e), Resources.LogExpert_Common_UI_Title_Error); } } @@ -4618,12 +4726,12 @@ private void CheckForFilterDirty () if (IsFilterSearchDirty(_filterParams)) { filterSearchButton.Image = _searchButtonImage; - saveFilterButton.Enabled = false; + bntSaveFilter.Enabled = false; } else { filterSearchButton.Image = null; - saveFilterButton.Enabled = true; + bntSaveFilter.Enabled = true; } } @@ -4660,17 +4768,17 @@ private bool IsFilterSearchDirty (FilterParams filterParams) return true; } - if (filterParams.SpreadBefore != filterKnobBackSpread.Value) + if (filterParams.SpreadBefore != knobControlFilterBackSpread.Value) { return true; } - if (filterParams.SpreadBehind != filterKnobForeSpread.Value) + if (filterParams.SpreadBehind != knobControlFilterForeSpread.Value) { return true; } - if (filterParams.FuzzyValue != fuzzyKnobControl.Value) + if (filterParams.FuzzyValue != knobControlFuzzy.Value) { return true; } @@ -4703,7 +4811,7 @@ private void AdjustMinimumGridWith () } [SupportedOSPlatform("windows")] - private void InvalidateCurrentRow (BufferedDataGridView gridView) + private static void InvalidateCurrentRow (BufferedDataGridView gridView) { if (gridView.CurrentCellAddress.Y > -1) { @@ -4783,7 +4891,7 @@ private void StatusLineError (string text) private void RemoveStatusLineError () { - StatusLineText(""); + StatusLineText(string.Empty); _isErrorShowing = false; } @@ -4807,12 +4915,12 @@ private void ShowAdvancedFilterPanel (bool show) { if (show) { - advancedButton.Text = "Hide advanced..."; - advancedButton.Image = null; + btnAdvanced.Text = Resources.LogWindow_UI_Text_ShowAdvancedFilterPanel_HideAdvanced; + btnAdvanced.Image = null; } else { - advancedButton.Text = "Show advanced..."; + btnAdvanced.Text = Resources.LogWindow_UI_Text_ShowAdvancedFilterPanel_ShowAdvanced; CheckForAdvancedButtonDirty(); } @@ -4824,7 +4932,7 @@ private void ShowAdvancedFilterPanel (bool show) [SupportedOSPlatform("windows")] private void CheckForAdvancedButtonDirty () { - advancedButton.Image = IsAdvancedOptionActive() && !_showAdvanced + btnAdvanced.Image = IsAdvancedOptionActive() && !_showAdvanced ? _advancedButtonImage : null; } @@ -4833,7 +4941,7 @@ private void CheckForAdvancedButtonDirty () private void FilterToTab () { filterSearchButton.Enabled = false; - _ = Task.Run(() => WriteFilterToTab()); + _ = Task.Run(WriteFilterToTab); } [SupportedOSPlatform("windows")] @@ -4842,7 +4950,7 @@ private void WriteFilterToTab () FilterPipe pipe = new(_filterParams.Clone(), this); lock (_filterResultList) { - var namePrefix = "->F"; + var namePrefix = Resources.LogWindow_UI_WriteFilterToTab_NamePrefix_ForFilter; var title = IsTempFile ? TempTitleName + namePrefix + ++_filterPipeNameCounter : Util.GetNameFromPath(FileName) + namePrefix + ++_filterPipeNameCounter; @@ -4854,8 +4962,7 @@ private void WriteFilterToTab () [SupportedOSPlatform("windows")] private void WritePipeToTab (FilterPipe pipe, List lineNumberList, string name, PersistenceData persistenceData) { - _logger.Info(CultureInfo.InvariantCulture, "WritePipeToTab(): {0} lines.", lineNumberList.Count); - StatusLineText("Writing to temp file... Press ESC to cancel."); + StatusLineText(Resources.LogWindow_UI_StatusLineText_WritePipeToTab_WritingToTempFile); _guiStateArgs.MenuEnabled = false; SendGuiStateUpdate(); _progressEventArgs.MinValue = 0; @@ -4875,6 +4982,7 @@ private void WritePipeToTab (FilterPipe pipe, List lineNumberList, string n var count = 0; pipe.OpenFile(); LogExpertCallback callback = new(this); + foreach (var i in lineNumberList) { if (_shouldCancel) @@ -4898,7 +5006,6 @@ private void WritePipeToTab (FilterPipe pipe, List lineNumberList, string n } pipe.CloseFile(); - _logger.Info(CultureInfo.InvariantCulture, "WritePipeToTab(): finished"); _ = Invoke(new WriteFilterToTabFinishedFx(WriteFilterToTabFinished), pipe, name, persistenceData); } @@ -4958,20 +5065,20 @@ internal void WritePipeTab (IList lineEntryList, string title) } [SupportedOSPlatform("windows")] - private void FilterRestore (LogWindow newWin, PersistenceData persistenceData) + private static void FilterRestore (LogWindow newWin, PersistenceData persistenceData) { newWin.WaitForLoadingFinished(); - var columnizer = ColumnizerPicker.FindColumnizerByName(persistenceData.ColumnizerName, - PluginRegistry.PluginRegistry.Instance.RegisteredColumnizers); + var columnizer = ColumnizerPicker.FindColumnizerByName(persistenceData.ColumnizerName, PluginRegistry.PluginRegistry.Instance.RegisteredColumnizers); + if (columnizer != null) { SetColumnizerFx fx = newWin.ForceColumnizer; _ = newWin.Invoke(fx, [columnizer]); } - else - { - _logger.Warn($"FilterRestore(): Columnizer {persistenceData.ColumnizerName} not found"); - } + //else + //{ + // _logger.Warn($"FilterRestore(): Columnizer {persistenceData.ColumnizerName} not found")); + //} _ = newWin.BeginInvoke(new RestoreFiltersFx(newWin.RestoreFilters), [persistenceData]); } @@ -4989,6 +5096,7 @@ private void ProcessFilterPipes (int lineNum) { LineNum = lineNum }; + IList deleteList = []; lock (_filterPipeList) { @@ -5058,12 +5166,10 @@ private void CopyMarkedLinesToClipboard () StringBuilder clipText = new(); LogExpertCallback callback = new(this); - var xmlColumnizer = _currentColumnizer as ILogLineXmlColumnizer; - foreach (var lineNum in lineNumList) { var line = _logFileReader.GetLogLine(lineNum); - if (xmlColumnizer != null) + if (_currentColumnizer is ILogLineXmlColumnizer xmlColumnizer) { callback.LineNum = lineNum; line = xmlColumnizer.GetLineTextForClipboard(line, callback); @@ -5114,7 +5220,7 @@ private void ApplyDataGridViewPrefs (BufferedDataGridView dataGridView, bool set } [SupportedOSPlatform("windows")] - private IList GetSelectedContent () + private List GetSelectedContent () { if (dataGridView.SelectionMode == DataGridViewSelectionMode.FullRowSelect) { @@ -5154,7 +5260,8 @@ private void SetTimestampLimits () SendGuiStateUpdate(); } - private void AdjustHighlightSplitterWidth () + //TODO Reimplement + private static void AdjustHighlightSplitterWidth () { //int size = this.editHighlightsSplitContainer.Panel2Collapsed ? 600 : 660; //int distance = this.highlightSplitContainer.Width - size; @@ -5200,8 +5307,8 @@ private string CalculateColumnNames (FilterParams filter) names += ", "; } - names += dataGridView.Columns[2 + colIndex] - .HeaderText; // skip first two columns: marker + line number + // skip first two columns: marker + line number + names += dataGridView.Columns[2 + colIndex].HeaderText; } } } @@ -5221,7 +5328,7 @@ private void ApplyFrozenState (BufferedDataGridView gridView) foreach (var col in dict.Values) { col.Frozen = _freezeStateMap.ContainsKey(gridView) && _freezeStateMap[gridView]; - var sel = col.HeaderCell.Selected; + if (col.Index == _selectedCol) { break; @@ -5263,7 +5370,7 @@ private void InitPatternWindow () private void TestStatistic (PatternArgs patternArgs) { var beginLine = patternArgs.StartLine; - _logger.Info($"TestStatistics() called with start line {beginLine}"); + //_logger.Info($"### TestStatistics: called with start line {beginLine}"); _patternArgs = patternArgs; @@ -5294,17 +5401,21 @@ private void TestStatistic (PatternArgs patternArgs) PatternBlock block; var maxBlockLen = patternArgs.EndLine - patternArgs.StartLine; //int searchLine = i + 1; - _logger.Debug(CultureInfo.InvariantCulture, "TestStatistic(): i={0} searchLine={1}", i, searchLine); + //_logger.Debug($"TestStatistic(): i={i} searchLine={searchLine}"); //bool firstBlock = true; searchLine++; UpdateProgressBar(searchLine); while (!_shouldCancel && (block = - DetectBlock(i, searchLine, maxBlockLen, _patternArgs.MaxDiffInBlock, - _patternArgs.MaxMisses, - processedLinesDict)) != null) - { - _logger.Debug(CultureInfo.InvariantCulture, "Found block: {0}", block); + DetectBlock(i, + searchLine, + maxBlockLen, + _patternArgs.MaxDiffInBlock, + _patternArgs.MaxMisses, + processedLinesDict) + ) != null) + { + //_logger.Debug($"Found block: {block}"); if (block.Weigth >= _patternArgs.MinWeight) { //PatternBlock existingBlock = FindExistingBlock(block, blockList); @@ -5351,10 +5462,9 @@ private void TestStatistic (PatternArgs patternArgs) // this.Invoke(new MethodInvoker(CreatePatternWindow)); //} _patternWindow.SetBlockList(blockList, _patternArgs); - _logger.Info(CultureInfo.InvariantCulture, "TestStatistics() ended"); } - private void AddBlockTargetLinesToDict (Dictionary dict, PatternBlock block) + private static void AddBlockTargetLinesToDict (Dictionary dict, PatternBlock block) { foreach (var lineNum in block.TargetLines.Keys) { @@ -5363,7 +5473,7 @@ private void AddBlockTargetLinesToDict (Dictionary dict, PatternBlock } //Well keep this for the moment because there is some other commented code which calls this one - private PatternBlock FindExistingBlock (PatternBlock block, List blockList) + private static PatternBlock FindExistingBlock (PatternBlock block, List blockList) { foreach (var searchBlock in blockList) { @@ -5521,6 +5631,7 @@ private void PrepareDict () } } + //TODO Reimplement private int FindSimilarLine (int srcLine, int startLine) { var value = _lineHashList[srcLine]; @@ -5537,9 +5648,9 @@ private int FindSimilarLine (int srcLine, int startLine) return -1; } + //TODO Reimplement this cache to speed up the similar line search // int[,] similarCache; - - private void ResetCache (int num) + private static void ResetCache (int num) { //this.similarCache = new int[num, num]; //for (int i = 0; i < num; ++i) @@ -5710,6 +5821,7 @@ private void AddBookmarkComment (string text) { var lineNum = dataGridView.CurrentCellAddress.Y; Bookmark bookmark; + if (!_bookmarkProvider.IsBookmarkAtLine(lineNum)) { _bookmarkProvider.AddBookmark(bookmark = new Bookmark(lineNum)); @@ -5786,13 +5898,14 @@ private void SetBookmarksForSelectedFilterLines () private void SetDefaultHighlightGroup () { var group = _parentLogTabWin.FindHighlightGroupByFileMask(FileName); + if (group != null) { SetCurrentHighlightGroup(group.GroupName); } else { - SetCurrentHighlightGroup("[Default]"); + SetCurrentHighlightGroup(Resources.HighlightDialog_UI_DefaultGroupName); } } @@ -5856,7 +5969,7 @@ private void AddSlaveToTimesync (LogWindow slave) OnSyncModeChanged(); } - private void FreeSlaveFromTimesync (LogWindow slave) + private static void FreeSlaveFromTimesync (LogWindow slave) { slave.FreeFromTimeSync(); } @@ -5914,7 +6027,7 @@ private void RemoveAllSearchHighlightEntries () } [SupportedOSPlatform("windows")] - private DataGridViewColumn GetColumnByName (BufferedDataGridView dataGridView, string name) + private static DataGridViewColumn GetColumnByName (BufferedDataGridView dataGridView, string name) { foreach (DataGridViewColumn col in dataGridView.Columns) { @@ -6013,8 +6126,8 @@ public void LoadFile (string fileName, EncodingOptions encodingOptions) } catch (LogFileException lfe) { - _logger.Error(lfe); - _ = MessageBox.Show($"Cannot load file\n{lfe.Message}", "LogExpert"); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(LoadFile), lfe)); + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_LoadFile_CannotLoadFile, lfe.Message), Resources.LogExpert_Common_UI_Title_LogExpert); _ = BeginInvoke(new FunctionWith1BoolParam(Close), true); _isLoadError = true; return; @@ -6034,7 +6147,7 @@ public void LoadFile (string fileName, EncodingOptions encodingOptions) _logFileReader.PreProcessColumnizer = CurrentColumnizer is IPreProcessColumnizer processColumnizer ? processColumnizer : null; RegisterLogFileReaderEvents(); - _logger.Info($"Loading logfile: {fileName}"); + //_logger.Info($"Loading logfile: {fileName}"); _logFileReader.StartMonitoring(); if (isUsingDefaultColumnizer) @@ -6045,7 +6158,7 @@ public void LoadFile (string fileName, EncodingOptions encodingOptions) if (newColumnizer != null) { - _logger.Debug($"Picked new columnizer '{newColumnizer}'"); + //_logger.Debug($"Picked new columnizer {newColumnizer.GetName()}"); PreSelectColumnizer(newColumnizer); } @@ -6056,14 +6169,12 @@ public void LoadFile (string fileName, EncodingOptions encodingOptions) public void LoadFilesAsMulti (string[] fileNames, EncodingOptions encodingOptions) { - _logger.Info("Loading given files as MultiFile:"); - EnterLoadFileStatus(); - foreach (var name in fileNames) - { - _logger.Info($"File: {name}"); - } + //foreach (var name in fileNames) + //{ + // //_logger.Info($"LoadFilesAsMulti: File: {name}"); + //} if (_logFileReader != null) { @@ -6087,7 +6198,8 @@ public void LoadFilesAsMulti (string[] fileNames, EncodingOptions encodingOption // this.Text = Util.GetNameFromPath(this.FileName); } - public string SavePersistenceData (bool force) + //TODO move to Persister class + public string SavePersistenceDataAndReturnFileName (bool force) { if (!force) { @@ -6110,18 +6222,23 @@ public string SavePersistenceData (bool force) ? Persister.SavePersistenceData(FileName, persistenceData, Preferences) : Persister.SavePersistenceDataWithFixedName(ForcedPersistenceFileName, persistenceData); } - catch (IOException ex) + catch (IOException e) { - _logger.Error(ex, "Error saving persistence: "); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(SavePersistenceDataAndReturnFileName), e)); } catch (Exception e) { - _ = MessageBox.Show($"Unexpected error while saving persistence: {e.Message}"); + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_SavePersistenceData_ErrorWhileSaving, e), Resources.LogExpert_Common_UI_Title_Error); } return null; } + public void SavePersistenceData (bool force) + { + _ = SavePersistenceDataAndReturnFileName(force); + } + public PersistenceData GetPersistenceData () { PersistenceData persistenceData = new() @@ -6207,7 +6324,7 @@ public void CloseLogWindow () if (IsTempFile) { - _logger.Info($"Deleting temp file {FileName}"); + //_logger.Info($"Deleting temp file {FileName}"); try { @@ -6215,7 +6332,7 @@ public void CloseLogWindow () } catch (IOException e) { - _logger.Error(e, $"Error while deleting temp file {FileName}: {e}"); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(CloseLogWindow), e)); } } @@ -6327,7 +6444,7 @@ public void CellPainting (bool focused, int rowIndex, int columnIndex, bool isFi if (line != null) { - var entry = FindFirstNoWordMatchHilightEntry(line); + var entry = FindFirstNoWordMatchHighlightEntry(line); e.Graphics.SetClip(e.CellBounds); if (e.State.HasFlag(DataGridViewElementStates.Selected)) @@ -6372,7 +6489,7 @@ public void CellPainting (bool focused, int rowIndex, int columnIndex, bool isFi }; //Todo Add this as a Settings Option - var fontName = isFilteredGridView ? "Verdana" : "Courier New"; + var fontName = isFilteredGridView ? FONT_VERDANA : FONT_COURIER_NEW; var stringToDraw = isFilteredGridView ? "!" : "i"; using var brush2 = new SolidBrush(Color.FromArgb(255, 190, 100, 0)); //dark orange @@ -6482,17 +6599,17 @@ public void TryToTruncate () if (LockFinder.CheckIfFileIsLocked(Title)) { var name = LockFinder.FindLockedProcessName(Title); - StatusLineText($"Truncate failed: file is locked by {name}"); + StatusLineText(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_StatusLineText_TruncateFailedFileIsLockedByName, name)); } else { - File.WriteAllText(Title, ""); + File.WriteAllText(Title, string.Empty); } } - catch (Exception ex) + catch (Exception) { - _logger.Warn($"Unexpected issue truncating file: {ex.Message}"); - StatusLineText("Unexpected issue truncating file"); + //_logger.Warn($"Unexpected issue truncating file: {ex.Message}"); + StatusLineText(Resources.LogWindow_UI_StatusLineText_UnexpectedIssueTruncatingFile); throw; } } @@ -6528,7 +6645,7 @@ public void StartSearch () _isSearching = true; _shouldCancel = false; - StatusLineText("Searching... Press ESC to cancel."); + StatusLineText(Resources.LogWindow_UI_StatusLineText_SearchingPressESCToCancel); _progressEventArgs.MinValue = 0; _progressEventArgs.MaxValue = dataGridView.RowCount; @@ -6536,7 +6653,7 @@ public void StartSearch () _progressEventArgs.Visible = true; SendProgressBarUpdate(); - _ = Task.Run(() => Search(searchParams)).ContinueWith(SearchComplete); + _ = Task.Run(() => Search(searchParams)).ContinueWith(SearchComplete, TaskScheduler.Default); RemoveAllSearchHighlightEntries(); AddSearchHitHighlightEntry(searchParams); @@ -6568,9 +6685,9 @@ private void SearchComplete (Task task) } } - public void SelectLogLine (int line) + public void SelectLogLine (int lineNumber) { - _ = Invoke(new SelectLineFx((line1, triggerSyncCall) => SelectLine(line1, triggerSyncCall, true)), line, true); + _ = Invoke(new SelectLineFx((line1, triggerSyncCall) => SelectLine(line1, triggerSyncCall, true)), lineNumber, true); } public void SelectAndEnsureVisible (int line, bool triggerSyncCall) @@ -6600,7 +6717,7 @@ public void SelectAndEnsureVisible (int line, bool triggerSyncCall) { // In rare situations there seems to be an invalid argument exceptions (or something like this). Concrete location isn't visible in stack // trace because use of Invoke(). So catch it, and log (better than crashing the app). - _logger.Error(e); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(SelectAndEnsureVisible), e)); } } @@ -6705,8 +6822,6 @@ public void OnLogWindowKeyDown (object sender, KeyEventArgs e) public void AddBookmarkOverlays () { - const int OVERSCAN = 20; - var firstLine = dataGridView.FirstDisplayedScrollingRowIndex; if (firstLine < 0) { @@ -6777,7 +6892,7 @@ public void AddBookmarkOverlays () if (_logger.IsDebugEnabled) { - _logger.Debug($"AddBookmarkOverlay() r.Location={r.Location.X}, width={r.Width}, scroll_offset={dataGridView.HorizontalScrollingOffset}"); + _logger.Debug($"### AddBookmarkOverlay: r.Location={r.Location.X}, width={r.Width}, scroll_offset={dataGridView.HorizontalScrollingOffset}"); } overlay.Position = r.Location - new Size(dataGridView.HorizontalScrollingOffset, 0); @@ -6823,9 +6938,9 @@ public void ToggleBookmark (int lineNum) { var bookmark = _bookmarkProvider.GetBookmarkForLine(lineNum); - if (string.IsNullOrEmpty(bookmark.Text) == false) + if (!string.IsNullOrEmpty(bookmark.Text)) { - if (DialogResult.No == MessageBox.Show("There's a comment attached to the bookmark. Really remove the bookmark?", "LogExpert", MessageBoxButtons.YesNo)) + if (MessageBox.Show(Resources.LogWindow_UI_ToggleBookmark_ThereCommentAttachedRemoveIt, Resources.LogExpert_Common_UI_Title_LogExpert, MessageBoxButtons.YesNo) == DialogResult.No) { return; } @@ -6848,12 +6963,14 @@ public void SetBookmarkFromTrigger (int lineNum, string comment) lock (_bookmarkLock) { var line = _logFileReader.GetLogLine(lineNum); + if (line == null) { return; } var paramParser = new ParamParser(comment); + try { comment = paramParser.ReplaceParams(line, lineNum, FileName); @@ -6938,9 +7055,11 @@ public void JumpPrevBookmark () var startIndex = index; var wrapped = false; + while (true) { var lineNum = _bookmarkProvider.Bookmarks[index].LineNum; + if (_filterResultList.Contains(lineNum)) { var filterLine = _filterResultList.IndexOf(lineNum); @@ -6950,6 +7069,7 @@ public void JumpPrevBookmark () } index--; + if (index < 0) { index = _bookmarkProvider.Bookmarks.Count - 1; @@ -6994,7 +7114,9 @@ public void DeleteBookmarks (List lineNumList) if (bookmarksPresent) { if ( - MessageBox.Show("There are some comments in the bookmarks. Really remove bookmarks?", "LogExpert", + MessageBox.Show( + Resources.LogWindow_UI_ThereAreSomeCommentsInTheBookmarksReallyRemoveBookmarks, + Resources.LogExpert_Common_UI_Title_LogExpert, MessageBoxButtons.YesNo) == DialogResult.No) { return; @@ -7017,16 +7139,18 @@ public void SetTimeshiftValue (string value) try { var text = _guiStateArgs.TimeshiftText; - if (text.StartsWith("+")) + if (text.StartsWith('+')) { - text = text.Substring(1); + text = text[1..]; } - var timeSpan = TimeSpan.Parse(text); + var timeSpan = TimeSpan.Parse(text, CultureInfo.InvariantCulture); var diff = (int)(timeSpan.Ticks / TimeSpan.TicksPerMillisecond); CurrentColumnizer.SetTimeOffset(diff); } - catch (Exception) + catch (Exception ex) when (ex is FormatException + or ArgumentOutOfRangeException + or OverflowException) { CurrentColumnizer.SetTimeOffset(0); } @@ -7044,9 +7168,9 @@ public void SetTimeshiftValue (string value) SyncTimestampDisplay(); } } - catch (FormatException ex) + catch (FormatException e) { - _logger.Error(ex); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.Logger_Error_In_Function, nameof(SetTimeshiftValue), e)); } } } @@ -7054,14 +7178,9 @@ public void SetTimeshiftValue (string value) public void ToggleFilterPanel () { splitContainerLogWindow.Panel2Collapsed = !splitContainerLogWindow.Panel2Collapsed; - if (!splitContainerLogWindow.Panel2Collapsed) - { - _ = filterComboBox.Focus(); - } - else - { - _ = dataGridView.Focus(); - } + _ = !splitContainerLogWindow.Panel2Collapsed + ? filterComboBox.Focus() + : dataGridView.Focus(); } public void LogWindowActivated () @@ -7126,7 +7245,9 @@ public void CopyMarkedLinesToTab () { IsStopped = true }; - WritePipeToTab(pipe, lineNumList, Text + "->C", null); + + var name = string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_CopyMarkedLinesToTab_Copy, Text); + WritePipeToTab(pipe, lineNumList, name, null); } else { @@ -7139,7 +7260,7 @@ public void CopyMarkedLinesToTab () writer.Write(text); writer.Close(); - var title = Util.GetNameFromPath(FileName) + "->Clip"; + var title = string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_CopyMarkedLinesToTab_Clip, Util.GetNameFromPath(FileName)); _ = _parentLogTabWin.AddTempFileTab(fileName, title); } } @@ -7168,13 +7289,14 @@ public void ChangeEncoding (Encoding encoding) public void Reload () { - _ = SavePersistenceData(false); + SavePersistenceData(false); _reloadMemento = new ReloadMemento { CurrentLine = dataGridView.CurrentCellAddress.Y, FirstDisplayedLine = dataGridView.FirstDisplayedScrollingRowIndex }; + _forcedColumnizerForLoading = CurrentColumnizer; if (_fileNames == null || !IsMultiFile) @@ -7185,6 +7307,7 @@ public void Reload () { LoadFilesAsMulti(_fileNames, EncodingOptions); } + //if (currentLine < this.dataGridView.RowCount && currentLine >= 0) // this.dataGridView.CurrentCell = this.dataGridView.Rows[currentLine].Cells[0]; //if (firstDisplayedLine < this.dataGridView.RowCount && firstDisplayedLine >= 0) @@ -7203,7 +7326,7 @@ public void PreferencesChanged (string fontName, float fontSize, bool setLastCol { NormalFont = new Font(new FontFamily(fontName), fontSize); BoldFont = new Font(NormalFont, FontStyle.Bold); - MonospacedFont = new Font("Courier New", Preferences.FontSize, FontStyle.Bold); + MonospacedFont = new Font(FONT_COURIER_NEW, Preferences.FontSize, FontStyle.Bold); var lineSpacing = NormalFont.FontFamily.GetLineSpacing(FontStyle.Regular); var lineSpacingPixel = NormalFont.Size * lineSpacing / NormalFont.FontFamily.GetEmHeight(FontStyle.Regular); @@ -7292,6 +7415,7 @@ public bool ScrollToTimestampWorker (DateTime timestamp, bool roundToSeconds, bo SelectAndEnsureVisible(foundLine, triggerSyncCall); hasScrolled = true; } + //this.Cursor = Cursors.Default; return hasScrolled; } @@ -7299,10 +7423,12 @@ public bool ScrollToTimestampWorker (DateTime timestamp, bool roundToSeconds, bo public int FindTimestampLine (int lineNum, DateTime timestamp, bool roundToSeconds) { var foundLine = FindTimestampLineInternal(lineNum, 0, dataGridView.RowCount - 1, timestamp, roundToSeconds); + if (foundLine >= 0) { // go backwards to the first occurence of the hit var foundTimestamp = GetTimestampForLine(ref foundLine, roundToSeconds); + while (foundTimestamp.CompareTo(timestamp) == 0 && foundLine >= 0) { foundLine--; @@ -7324,7 +7450,6 @@ public int FindTimestampLine (int lineNum, DateTime timestamp, bool roundToSecon public int FindTimestampLineInternal (int lineNum, int rangeStart, int rangeEnd, DateTime timestamp, bool roundToSeconds) { - _logger.Debug($"FindTimestampLine_Internal(): timestamp={timestamp}, lineNum={lineNum}, rangeStart={rangeStart}, rangeEnd={rangeEnd}"); var refLine = lineNum; var currentTimestamp = GetTimestampForLine(ref refLine, roundToSeconds); if (currentTimestamp.CompareTo(timestamp) == 0) @@ -7373,7 +7498,7 @@ public int FindTimestampLineInternal (int lineNum, int rangeStart, int rangeEnd, * has no timestamp, the previous line will be checked until a * timestamp is found. */ - public DateTime GetTimestampForLine (ref int lineNum, bool roundToSeconds) + public DateTime GetTimestampForLine (ref int lastLineNum, bool roundToSeconds) { lock (_currentColumnizerLock) { @@ -7382,12 +7507,16 @@ public DateTime GetTimestampForLine (ref int lineNum, bool roundToSeconds) return DateTime.MinValue; } - _logger.Debug($"GetTimestampForLine({lineNum}) enter"); + if (_logger.IsDebugEnabled) + { + _logger.Debug($"### GetTimestampForLine: leave with lineNum={lastLineNum}"); + } + var timeStamp = DateTime.MinValue; var lookBack = false; - if (lineNum >= 0 && lineNum < dataGridView.RowCount) + if (lastLineNum >= 0 && lastLineNum < dataGridView.RowCount) { - while (timeStamp.CompareTo(DateTime.MinValue) == 0 && lineNum >= 0) + while (timeStamp.CompareTo(DateTime.MinValue) == 0 && lastLineNum >= 0) { if (_isTimestampDisplaySyncing && _shouldTimestampDisplaySyncingCancel) { @@ -7395,29 +7524,33 @@ public DateTime GetTimestampForLine (ref int lineNum, bool roundToSeconds) } lookBack = true; - var logLine = _logFileReader.GetLogLine(lineNum); + var logLine = _logFileReader.GetLogLine(lastLineNum); if (logLine == null) { return DateTime.MinValue; } - ColumnizerCallbackObject.LineNum = lineNum; + ColumnizerCallbackObject.LineNum = lastLineNum; timeStamp = CurrentColumnizer.GetTimestamp(ColumnizerCallbackObject, logLine); if (roundToSeconds) { timeStamp = timeStamp.Subtract(TimeSpan.FromMilliseconds(timeStamp.Millisecond)); } - lineNum--; + lastLineNum--; } } if (lookBack) { - lineNum++; + lastLineNum++; + } + + if (_logger.IsDebugEnabled) + { + _logger.Debug($"### GetTimestampForLine: found timestamp={timeStamp}"); } - _logger.Debug($"GetTimestampForLine() leave with lineNum={lineNum}"); return timeStamp; } } @@ -7573,10 +7706,10 @@ public void ExportBookmarkList () { SaveFileDialog dlg = new() { - Title = "Choose a file to save bookmarks into", + Title = Resources.LogWindow_UI_Title_ExportBookMarkList, AddExtension = true, DefaultExt = "csv", - Filter = "CSV file (*.csv)|*.csv|Bookmark file (*.bmk)|*.bmk", + Filter = Resources.LogWindow_UI_ImportExportBookmarkList_Filter, FilterIndex = 1, FileName = Path.GetFileNameWithoutExtension(FileName) }; @@ -7590,8 +7723,7 @@ public void ExportBookmarkList () } catch (IOException e) { - _logger.Error(e); - _ = MessageBox.Show("Error while exporting bookmark list: " + e.Message, "LogExpert"); + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_ErrorWhileExportingBookmarkList, e.Message), Resources.LogExpert_Common_UI_Title_LogExpert); } } } @@ -7600,10 +7732,10 @@ public void ImportBookmarkList () { OpenFileDialog dlg = new() { - Title = "Choose a file to load bookmarks from", + Title = Resources.LogWindow_UI_Title_ImportBookmarkList, AddExtension = true, DefaultExt = "csv", - Filter = "CSV file (*.csv)|*.csv|Bookmark file (*.bmk)|*.bmk", + Filter = Resources.LogWindow_UI_ImportExportBookmarkList_Filter, FilterIndex = 1, FileName = Path.GetFileNameWithoutExtension(FileName) }; @@ -7628,8 +7760,8 @@ public void ImportBookmarkList () else { var existingBookmark = _bookmarkProvider.BookmarkList[b.LineNum]; - existingBookmark.Text = - b.Text; // replace existing bookmark for that line, preserving the overlay + // replace existing bookmark for that line, preserving the overlay + existingBookmark.Text = b.Text; OnBookmarkTextChanged(b); } } @@ -7645,8 +7777,7 @@ public void ImportBookmarkList () } catch (IOException e) { - _logger.Error(e); - _ = MessageBox.Show($"Error while importing bookmark list: {e.Message}", "LogExpert"); + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.LogWindow_UI_ErrorWhileImportingBookmarkList, e.Message), Resources.LogExpert_Common_UI_Title_LogExpert); } } } @@ -7654,9 +7785,9 @@ public void ImportBookmarkList () public bool IsAdvancedOptionActive () { return rangeCheckBox.Checked || - fuzzyKnobControl.Value > 0 || - filterKnobBackSpread.Value > 0 || - filterKnobForeSpread.Value > 0 || + knobControlFuzzy.Value > 0 || + knobControlFilterBackSpread.Value > 0 || + knobControlFilterForeSpread.Value > 0 || invertFilterCheckBox.Checked || columnRestrictCheckBox.Checked; } @@ -7668,17 +7799,17 @@ public void HandleChangedFilterList () public void HandleChangedFilterListWorker () { - var index = filterListBox.SelectedIndex; - filterListBox.Items.Clear(); + var index = listBoxFilter.SelectedIndex; + listBoxFilter.Items.Clear(); foreach (var filterParam in ConfigManager.Settings.FilterList) { - _ = filterListBox.Items.Add(filterParam); + _ = listBoxFilter.Items.Add(filterParam); } - filterListBox.Refresh(); - if (index >= 0 && index < filterListBox.Items.Count) + listBoxFilter.Refresh(); + if (index >= 0 && index < listBoxFilter.Items.Count) { - filterListBox.SelectedIndex = index; + listBoxFilter.SelectedIndex = index; } filterOnLoadCheckBox.Checked = Preferences.IsFilterOnLoad; @@ -7731,7 +7862,11 @@ public void AddOtherWindowToTimesync (LogWindow other) public void AddToTimeSync (LogWindow master) { - _logger.Info($"Syncing window for {Util.GetNameFromPath(FileName)} to {Util.GetNameFromPath(master.FileName)}"); + //if (_logger.IsInfoEnabled) + //{ + // _logger.Info($"Syncing window for {Util.GetNameFromPath(FileName)} to {Util.GetNameFromPath(master.FileName)}"); + //} + lock (_timeSyncListLock) { if (IsTimeSynced && master.TimeSyncList != TimeSyncList) @@ -7754,7 +7889,11 @@ public void FreeFromTimeSync () { if (TimeSyncList != null) { - _logger.Info($"De-Syncing window for {Util.GetNameFromPath(FileName)}"); + //if (_logger.IsInfoEnabled) + //{ + // _logger.Info($"De-Syncing window for {Util.GetNameFromPath(FileName)}"); + //} + TimeSyncList.WindowRemoved -= OnTimeSyncListWindowRemoved; TimeSyncList.RemoveWindow(this); TimeSyncList = null; diff --git a/src/LogExpert.UI/Controls/LogWindow/LogWindow.designer.cs b/src/LogExpert.UI/Controls/LogWindow/LogWindow.designer.cs index 2e032551..692e28c7 100644 --- a/src/LogExpert.UI/Controls/LogWindow/LogWindow.designer.cs +++ b/src/LogExpert.UI/Controls/LogWindow/LogWindow.designer.cs @@ -6,25 +6,25 @@ namespace LogExpert.UI.Controls.LogWindow { - partial class LogWindow - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; + partial class LogWindow + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } #region Windows Form Designer generated code @@ -64,19 +64,19 @@ private void InitializeComponent () advancedBackPanel = new Panel(); advancedFilterSplitContainer = new SplitContainer(); pnlProFilter = new Panel(); - columnButton = new Button(); + btnColumn = new Button(); columnRestrictCheckBox = new CheckBox(); rangeCheckBox = new CheckBox(); filterRangeComboBox = new ComboBox(); columnNamesLabel = new Label(); - fuzzyLabel = new Label(); - fuzzyKnobControl = new KnobControl(); + lblfuzzy = new Label(); + knobControlFuzzy = new KnobControl(); invertFilterCheckBox = new CheckBox(); pnlProFilterLabel = new Panel(); lblBackSpread = new Label(); - filterKnobBackSpread = new KnobControl(); + knobControlFilterBackSpread = new KnobControl(); lblForeSpread = new Label(); - filterKnobForeSpread = new KnobControl(); + knobControlFilterForeSpread = new KnobControl(); btnFilterToTab = new Button(); panelBackgroundAdvancedFilterSplitContainer = new Panel(); btnToggleHighlightPanel = new Button(); @@ -88,19 +88,19 @@ private void InitializeComponent () markFilterHitsInLogViewToolStripMenuItem = new ToolStripMenuItem(); highlightSplitContainerBackPanel = new Panel(); hideFilterListOnLoadCheckBox = new CheckBox(); - filterDownButton = new Button(); - filterUpButton = new Button(); + btnFilterDown = new Button(); + btnFilterUp = new Button(); filterOnLoadCheckBox = new CheckBox(); - saveFilterButton = new Button(); - deleteFilterButton = new Button(); - filterListBox = new ListBox(); + bntSaveFilter = new Button(); + btnDeleteFilter = new Button(); + listBoxFilter = new ListBox(); filterListContextMenuStrip = new ContextMenuStrip(components); colorToolStripMenuItem = new ToolStripMenuItem(); pnlFilterInput = new Panel(); filterSplitContainer = new SplitContainer(); filterComboBox = new ComboBox(); lblTextFilter = new Label(); - advancedButton = new Button(); + btnAdvanced = new Button(); syncFilterCheckBox = new CheckBox(); lblFilterCount = new Label(); filterTailCheckBox = new CheckBox(); @@ -222,7 +222,6 @@ private void InitializeComponent () columnComboBox.Name = "columnComboBox"; columnComboBox.Size = new Size(181, 21); columnComboBox.TabIndex = 1; - helpToolTip.SetToolTip(columnComboBox, "Select column to scroll to"); columnComboBox.SelectionChangeCommitted += OnColumnComboBoxSelectionChangeCommitted; columnComboBox.KeyDown += OnColumnComboBoxKeyDown; columnComboBox.PreviewKeyDown += OnColumnComboBoxPreviewKeyDown; @@ -462,19 +461,19 @@ private void InitializeComponent () // pnlProFilter // pnlProFilter.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - pnlProFilter.Controls.Add(columnButton); + pnlProFilter.Controls.Add(btnColumn); pnlProFilter.Controls.Add(columnRestrictCheckBox); pnlProFilter.Controls.Add(rangeCheckBox); pnlProFilter.Controls.Add(filterRangeComboBox); pnlProFilter.Controls.Add(columnNamesLabel); - pnlProFilter.Controls.Add(fuzzyLabel); - pnlProFilter.Controls.Add(fuzzyKnobControl); + pnlProFilter.Controls.Add(lblfuzzy); + pnlProFilter.Controls.Add(knobControlFuzzy); pnlProFilter.Controls.Add(invertFilterCheckBox); pnlProFilter.Controls.Add(pnlProFilterLabel); pnlProFilter.Controls.Add(lblBackSpread); - pnlProFilter.Controls.Add(filterKnobBackSpread); + pnlProFilter.Controls.Add(knobControlFilterBackSpread); pnlProFilter.Controls.Add(lblForeSpread); - pnlProFilter.Controls.Add(filterKnobForeSpread); + pnlProFilter.Controls.Add(knobControlFilterForeSpread); pnlProFilter.Controls.Add(btnFilterToTab); pnlProFilter.Location = new Point(0, 3); pnlProFilter.Name = "pnlProFilter"; @@ -483,15 +482,15 @@ private void InitializeComponent () // // columnButton // - columnButton.Enabled = false; - columnButton.Location = new Point(750, 41); - columnButton.Name = "columnButton"; - columnButton.Size = new Size(85, 35); - columnButton.TabIndex = 15; - columnButton.Text = "Columns..."; - helpToolTip.SetToolTip(columnButton, "Choose columns for 'Column restrict'"); - columnButton.UseVisualStyleBackColor = true; - columnButton.Click += OnColumnButtonClick; + btnColumn.Enabled = false; + btnColumn.Location = new Point(750, 41); + btnColumn.Name = "columnButton"; + btnColumn.Size = new Size(85, 35); + btnColumn.TabIndex = 15; + btnColumn.Text = "Columns..."; + helpToolTip.SetToolTip(btnColumn, "Choose columns for 'Column restrict'"); + btnColumn.UseVisualStyleBackColor = true; + btnColumn.Click += OnColumnButtonClick; // // columnRestrictCheckBox // @@ -539,27 +538,27 @@ private void InitializeComponent () // // fuzzyLabel // - fuzzyLabel.AutoSize = true; - fuzzyLabel.Location = new Point(502, 38); - fuzzyLabel.Name = "fuzzyLabel"; - fuzzyLabel.Size = new Size(56, 13); - fuzzyLabel.TabIndex = 11; - fuzzyLabel.Text = "Fuzzyness"; + lblfuzzy.AutoSize = true; + lblfuzzy.Location = new Point(502, 38); + lblfuzzy.Name = "fuzzyLabel"; + lblfuzzy.Size = new Size(56, 13); + lblfuzzy.TabIndex = 11; + lblfuzzy.Text = "Fuzzyness"; // // fuzzyKnobControl // - fuzzyKnobControl.DragSensitivity = 6; - fuzzyKnobControl.Font = new Font("Verdana", 6F, FontStyle.Regular, GraphicsUnit.Point, 0); - fuzzyKnobControl.Location = new Point(521, 7); - fuzzyKnobControl.Margin = new Padding(2); - fuzzyKnobControl.MaxValue = 0; - fuzzyKnobControl.MinValue = 0; - fuzzyKnobControl.Name = "fuzzyKnobControl"; - fuzzyKnobControl.Size = new Size(17, 29); - fuzzyKnobControl.TabIndex = 10; - helpToolTip.SetToolTip(fuzzyKnobControl, "Fuzzy search level (0 = fuzzy off)"); - fuzzyKnobControl.Value = 0; - fuzzyKnobControl.ValueChanged += OnFuzzyKnobControlValueChanged; + knobControlFuzzy.DragSensitivity = 6; + knobControlFuzzy.Font = new Font("Verdana", 6F, FontStyle.Regular, GraphicsUnit.Point, 0); + knobControlFuzzy.Location = new Point(521, 7); + knobControlFuzzy.Margin = new Padding(2); + knobControlFuzzy.MaxValue = 0; + knobControlFuzzy.MinValue = 0; + knobControlFuzzy.Name = "fuzzyKnobControl"; + knobControlFuzzy.Size = new Size(17, 29); + knobControlFuzzy.TabIndex = 10; + helpToolTip.SetToolTip(knobControlFuzzy, "Fuzzy search level (0 = fuzzy off)"); + knobControlFuzzy.Value = 0; + knobControlFuzzy.ValueChanged += OnFuzzyKnobControlValueChanged; // // invertFilterCheckBox // @@ -593,17 +592,17 @@ private void InitializeComponent () // // filterKnobBackSpread // - filterKnobBackSpread.DragSensitivity = 3; - filterKnobBackSpread.Font = new Font("Verdana", 6F, FontStyle.Regular, GraphicsUnit.Point, 0); - filterKnobBackSpread.Location = new Point(313, 7); - filterKnobBackSpread.Margin = new Padding(2); - filterKnobBackSpread.MaxValue = 0; - filterKnobBackSpread.MinValue = 0; - filterKnobBackSpread.Name = "filterKnobBackSpread"; - filterKnobBackSpread.Size = new Size(17, 29); - filterKnobBackSpread.TabIndex = 5; - helpToolTip.SetToolTip(filterKnobBackSpread, "Add preceding lines to search result (Drag up/down, press Shift for finer pitch)"); - filterKnobBackSpread.Value = 0; + knobControlFilterBackSpread.DragSensitivity = 3; + knobControlFilterBackSpread.Font = new Font("Verdana", 6F, FontStyle.Regular, GraphicsUnit.Point, 0); + knobControlFilterBackSpread.Location = new Point(313, 7); + knobControlFilterBackSpread.Margin = new Padding(2); + knobControlFilterBackSpread.MaxValue = 0; + knobControlFilterBackSpread.MinValue = 0; + knobControlFilterBackSpread.Name = "filterKnobBackSpread"; + knobControlFilterBackSpread.Size = new Size(17, 29); + knobControlFilterBackSpread.TabIndex = 5; + helpToolTip.SetToolTip(knobControlFilterBackSpread, "Add preceding lines to search result (Drag up/down, press Shift for finer pitch)"); + knobControlFilterBackSpread.Value = 0; // // lblForeSpread // @@ -616,17 +615,17 @@ private void InitializeComponent () // // filterKnobForeSpread // - filterKnobForeSpread.DragSensitivity = 3; - filterKnobForeSpread.Font = new Font("Verdana", 6F, FontStyle.Regular, GraphicsUnit.Point, 0); - filterKnobForeSpread.Location = new Point(420, 7); - filterKnobForeSpread.Margin = new Padding(2); - filterKnobForeSpread.MaxValue = 0; - filterKnobForeSpread.MinValue = 0; - filterKnobForeSpread.Name = "filterKnobForeSpread"; - filterKnobForeSpread.Size = new Size(17, 29); - filterKnobForeSpread.TabIndex = 1; - helpToolTip.SetToolTip(filterKnobForeSpread, "Add following lines to search result (Drag up/down, press Shift for finer pitch)"); - filterKnobForeSpread.Value = 0; + knobControlFilterForeSpread.DragSensitivity = 3; + knobControlFilterForeSpread.Font = new Font("Verdana", 6F, FontStyle.Regular, GraphicsUnit.Point, 0); + knobControlFilterForeSpread.Location = new Point(420, 7); + knobControlFilterForeSpread.Margin = new Padding(2); + knobControlFilterForeSpread.MaxValue = 0; + knobControlFilterForeSpread.MinValue = 0; + knobControlFilterForeSpread.Name = "filterKnobForeSpread"; + knobControlFilterForeSpread.Size = new Size(17, 29); + knobControlFilterForeSpread.TabIndex = 1; + helpToolTip.SetToolTip(knobControlFilterForeSpread, "Add following lines to search result (Drag up/down, press Shift for finer pitch)"); + knobControlFilterForeSpread.Value = 0; // // btnFilterToTab // @@ -756,12 +755,12 @@ private void InitializeComponent () // highlightSplitContainerBackPanel // highlightSplitContainerBackPanel.Controls.Add(hideFilterListOnLoadCheckBox); - highlightSplitContainerBackPanel.Controls.Add(filterDownButton); - highlightSplitContainerBackPanel.Controls.Add(filterUpButton); + highlightSplitContainerBackPanel.Controls.Add(btnFilterDown); + highlightSplitContainerBackPanel.Controls.Add(btnFilterUp); highlightSplitContainerBackPanel.Controls.Add(filterOnLoadCheckBox); - highlightSplitContainerBackPanel.Controls.Add(saveFilterButton); - highlightSplitContainerBackPanel.Controls.Add(deleteFilterButton); - highlightSplitContainerBackPanel.Controls.Add(filterListBox); + highlightSplitContainerBackPanel.Controls.Add(bntSaveFilter); + highlightSplitContainerBackPanel.Controls.Add(btnDeleteFilter); + highlightSplitContainerBackPanel.Controls.Add(listBoxFilter); highlightSplitContainerBackPanel.Dock = DockStyle.Fill; highlightSplitContainerBackPanel.Location = new Point(0, 0); highlightSplitContainerBackPanel.Name = "highlightSplitContainerBackPanel"; @@ -782,29 +781,29 @@ private void InitializeComponent () // // filterDownButton // - filterDownButton.BackgroundImage = LogExpert.Resources.ArrowDown; - filterDownButton.BackgroundImageLayout = ImageLayout.Stretch; - filterDownButton.Location = new Point(296, 85); - filterDownButton.Name = "filterDownButton"; - filterDownButton.Size = new Size(35, 35); - filterDownButton.TabIndex = 19; - helpToolTip.SetToolTip(filterDownButton, "Move the selected entry down in the list"); - filterDownButton.UseVisualStyleBackColor = true; - filterDownButton.SizeChanged += OnButtonSizeChanged; - filterDownButton.Click += OnFilterDownButtonClick; + btnFilterDown.BackgroundImage = LogExpert.Resources.ArrowDown; + btnFilterDown.BackgroundImageLayout = ImageLayout.Stretch; + btnFilterDown.Location = new Point(296, 85); + btnFilterDown.Name = "filterDownButton"; + btnFilterDown.Size = new Size(35, 35); + btnFilterDown.TabIndex = 19; + helpToolTip.SetToolTip(btnFilterDown, "Move the selected entry down in the list"); + btnFilterDown.UseVisualStyleBackColor = true; + btnFilterDown.SizeChanged += OnButtonSizeChanged; + btnFilterDown.Click += OnFilterDownButtonClick; // // filterUpButton // - filterUpButton.BackgroundImage = LogExpert.Resources.ArrowUp; - filterUpButton.BackgroundImageLayout = ImageLayout.Stretch; - filterUpButton.Location = new Point(258, 85); - filterUpButton.Name = "filterUpButton"; - filterUpButton.Size = new Size(35, 35); - filterUpButton.TabIndex = 18; - helpToolTip.SetToolTip(filterUpButton, "Move the selected entry up in the list"); - filterUpButton.UseVisualStyleBackColor = true; - filterUpButton.SizeChanged += OnButtonSizeChanged; - filterUpButton.Click += OnFilterUpButtonClick; + btnFilterUp.BackgroundImage = LogExpert.Resources.ArrowUp; + btnFilterUp.BackgroundImageLayout = ImageLayout.Stretch; + btnFilterUp.Location = new Point(258, 85); + btnFilterUp.Name = "filterUpButton"; + btnFilterUp.Size = new Size(35, 35); + btnFilterUp.TabIndex = 18; + helpToolTip.SetToolTip(btnFilterUp, "Move the selected entry up in the list"); + btnFilterUp.UseVisualStyleBackColor = true; + btnFilterUp.SizeChanged += OnButtonSizeChanged; + btnFilterUp.Click += OnFilterUpButtonClick; // // filterOnLoadCheckBox // @@ -821,40 +820,40 @@ private void InitializeComponent () // // saveFilterButton // - saveFilterButton.Location = new Point(258, 11); - saveFilterButton.Name = "saveFilterButton"; - saveFilterButton.Size = new Size(75, 35); - saveFilterButton.TabIndex = 16; - saveFilterButton.Text = "Save filter"; - saveFilterButton.UseVisualStyleBackColor = true; - saveFilterButton.Click += OnSaveFilterButtonClick; + bntSaveFilter.Location = new Point(258, 11); + bntSaveFilter.Name = "saveFilterButton"; + bntSaveFilter.Size = new Size(75, 35); + bntSaveFilter.TabIndex = 16; + bntSaveFilter.Text = "Save filter"; + bntSaveFilter.UseVisualStyleBackColor = true; + bntSaveFilter.Click += OnSaveFilterButtonClick; // // deleteFilterButton // - deleteFilterButton.Location = new Point(258, 47); - deleteFilterButton.Name = "deleteFilterButton"; - deleteFilterButton.Size = new Size(75, 35); - deleteFilterButton.TabIndex = 3; - deleteFilterButton.Text = "Delete"; - deleteFilterButton.UseVisualStyleBackColor = true; - deleteFilterButton.Click += OnDeleteFilterButtonClick; + btnDeleteFilter.Location = new Point(258, 47); + btnDeleteFilter.Name = "deleteFilterButton"; + btnDeleteFilter.Size = new Size(75, 35); + btnDeleteFilter.TabIndex = 3; + btnDeleteFilter.Text = "Delete"; + btnDeleteFilter.UseVisualStyleBackColor = true; + btnDeleteFilter.Click += OnDeleteFilterButtonClick; // // filterListBox // - filterListBox.ContextMenuStrip = filterListContextMenuStrip; - filterListBox.Dock = DockStyle.Left; - filterListBox.DrawMode = DrawMode.OwnerDrawFixed; - filterListBox.Font = new Font("Courier New", 12F, FontStyle.Regular, GraphicsUnit.Point, 0); - filterListBox.FormattingEnabled = true; - filterListBox.IntegralHeight = false; - filterListBox.ItemHeight = 25; - filterListBox.Location = new Point(0, 0); - filterListBox.Name = "filterListBox"; - filterListBox.Size = new Size(252, 469); - filterListBox.TabIndex = 0; - helpToolTip.SetToolTip(filterListBox, "Doubleclick to load a saved filter"); - filterListBox.DrawItem += OnFilterListBoxDrawItem; - filterListBox.MouseDoubleClick += OnFilterListBoxMouseDoubleClick; + listBoxFilter.ContextMenuStrip = filterListContextMenuStrip; + listBoxFilter.Dock = DockStyle.Left; + listBoxFilter.DrawMode = DrawMode.OwnerDrawFixed; + listBoxFilter.Font = new Font("Courier New", 12F, FontStyle.Regular, GraphicsUnit.Point, 0); + listBoxFilter.FormattingEnabled = true; + listBoxFilter.IntegralHeight = false; + listBoxFilter.ItemHeight = 25; + listBoxFilter.Location = new Point(0, 0); + listBoxFilter.Name = "filterListBox"; + listBoxFilter.Size = new Size(252, 469); + listBoxFilter.TabIndex = 0; + helpToolTip.SetToolTip(listBoxFilter, "Doubleclick to load a saved filter"); + listBoxFilter.DrawItem += OnFilterListBoxDrawItem; + listBoxFilter.MouseDoubleClick += OnFilterListBoxMouseDoubleClick; // // filterListContextMenuStrip // @@ -893,7 +892,7 @@ private void InitializeComponent () // // filterSplitContainer.Panel2 // - filterSplitContainer.Panel2.Controls.Add(advancedButton); + filterSplitContainer.Panel2.Controls.Add(btnAdvanced); filterSplitContainer.Panel2.Controls.Add(syncFilterCheckBox); filterSplitContainer.Panel2.Controls.Add(lblFilterCount); filterSplitContainer.Panel2.Controls.Add(filterTailCheckBox); @@ -933,17 +932,17 @@ private void InitializeComponent () // // advancedButton // - advancedButton.DialogResult = DialogResult.Cancel; - advancedButton.Image = (Image)resources.GetObject("advancedButton.Image"); - advancedButton.ImageAlign = ContentAlignment.MiddleRight; - advancedButton.Location = new Point(539, 5); - advancedButton.Name = "advancedButton"; - advancedButton.Size = new Size(110, 35); - advancedButton.TabIndex = 17; - advancedButton.Text = "Show advanced..."; - helpToolTip.SetToolTip(advancedButton, "Toggel the advanced filter options panel"); - advancedButton.UseVisualStyleBackColor = true; - advancedButton.Click += OnAdvancedButtonClick; + btnAdvanced.DialogResult = DialogResult.Cancel; + btnAdvanced.Image = (Image)resources.GetObject("advancedButton.Image"); + btnAdvanced.ImageAlign = ContentAlignment.MiddleRight; + btnAdvanced.Location = new Point(539, 5); + btnAdvanced.Name = "advancedButton"; + btnAdvanced.Size = new Size(110, 35); + btnAdvanced.TabIndex = 17; + btnAdvanced.Text = "Show advanced..."; + helpToolTip.SetToolTip(btnAdvanced, "Toggel the advanced filter options panel"); + btnAdvanced.UseVisualStyleBackColor = true; + btnAdvanced.Click += OnAdvancedButtonClick; // // syncFilterCheckBox // @@ -1210,82 +1209,82 @@ private void InitializeComponent () #endregion private System.Windows.Forms.SplitContainer splitContainerLogWindow; - private System.Windows.Forms.Panel pnlFilterInput; - private BufferedDataGridView dataGridView; - private BufferedDataGridView filterGridView; - private System.Windows.Forms.SplitContainer advancedFilterSplitContainer; - private System.Windows.Forms.Panel pnlProFilter; - private System.Windows.Forms.Button btnFilterToTab; - private KnobControl filterKnobForeSpread; - private System.Windows.Forms.Label lblForeSpread; - private KnobControl filterKnobBackSpread; - private System.Windows.Forms.Label lblBackSpread; - private System.Windows.Forms.Panel pnlProFilterLabel; - private System.Windows.Forms.CheckBox invertFilterCheckBox; - private System.Windows.Forms.Label fuzzyLabel; - private KnobControl fuzzyKnobControl; - private System.Windows.Forms.CheckBox rangeCheckBox; - private System.Windows.Forms.ComboBox filterRangeComboBox; - private System.Windows.Forms.ContextMenuStrip dataGridContextMenuStrip; - private System.Windows.Forms.ToolStripMenuItem copyToTabToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem scrollAllTabsToTimestampToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem locateLineInOriginalFileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem toggleBoomarkToolStripMenuItem; + private System.Windows.Forms.Panel pnlFilterInput; + private BufferedDataGridView dataGridView; + private BufferedDataGridView filterGridView; + private System.Windows.Forms.SplitContainer advancedFilterSplitContainer; + private System.Windows.Forms.Panel pnlProFilter; + private System.Windows.Forms.Button btnFilterToTab; + private KnobControl knobControlFilterForeSpread; + private System.Windows.Forms.Label lblForeSpread; + private KnobControl knobControlFilterBackSpread; + private System.Windows.Forms.Label lblBackSpread; + private System.Windows.Forms.Panel pnlProFilterLabel; + private System.Windows.Forms.CheckBox invertFilterCheckBox; + private System.Windows.Forms.Label lblfuzzy; + private KnobControl knobControlFuzzy; + private System.Windows.Forms.CheckBox rangeCheckBox; + private System.Windows.Forms.ComboBox filterRangeComboBox; + private System.Windows.Forms.ContextMenuStrip dataGridContextMenuStrip; + private System.Windows.Forms.ToolStripMenuItem copyToTabToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem scrollAllTabsToTimestampToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem locateLineInOriginalFileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem toggleBoomarkToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem markEditModeToolStripMenuItem; - private System.Windows.Forms.ContextMenuStrip bookmarkContextMenuStrip; - private System.Windows.Forms.ToolStripMenuItem deleteBookmarksToolStripMenuItem; - private System.Windows.Forms.CheckBox columnRestrictCheckBox; - private System.Windows.Forms.Button columnButton; - private System.Windows.Forms.ContextMenuStrip columnContextMenuStrip; - private System.Windows.Forms.ToolStripMenuItem freezeLeftColumnsUntilHereToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem moveToLastColumnToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem moveLeftToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem moveRightToolStripMenuItem; - private TimeSpreadingControl timeSpreadingControl; + private System.Windows.Forms.ContextMenuStrip bookmarkContextMenuStrip; + private System.Windows.Forms.ToolStripMenuItem deleteBookmarksToolStripMenuItem; + private System.Windows.Forms.CheckBox columnRestrictCheckBox; + private System.Windows.Forms.Button btnColumn; + private System.Windows.Forms.ContextMenuStrip columnContextMenuStrip; + private System.Windows.Forms.ToolStripMenuItem freezeLeftColumnsUntilHereToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem moveToLastColumnToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem moveLeftToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem moveRightToolStripMenuItem; + private TimeSpreadingControl timeSpreadingControl; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.ToolStripMenuItem bookmarkCommentToolStripMenuItem; - private System.Windows.Forms.ContextMenuStrip editModeContextMenuStrip; - private System.Windows.Forms.ToolStripMenuItem highlightSelectionInLogFileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem editModecopyToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem tempHighlightsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem removeAllToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem makePermanentToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem filterForSelectionToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem setSelectedTextAsBookmarkCommentToolStripMenuItem; - private System.Windows.Forms.ToolTip helpToolTip; - private System.Windows.Forms.SplitContainer highlightSplitContainer; - private System.Windows.Forms.Button btnToggleHighlightPanel; - private System.Windows.Forms.Panel highlightSplitContainerBackPanel; - private System.Windows.Forms.Button saveFilterButton; - private System.Windows.Forms.Button deleteFilterButton; - private System.Windows.Forms.ListBox filterListBox; - private System.Windows.Forms.ContextMenuStrip filterContextMenuStrip; - private System.Windows.Forms.ToolStripMenuItem setBookmarksOnSelectedLinesToolStripMenuItem; - private System.Windows.Forms.CheckBox filterOnLoadCheckBox; - private System.Windows.Forms.ToolStripMenuItem markCurrentFilterRangeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem syncTimestampsToToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem freeThisWindowFromTimeSyncToolStripMenuItem; - private System.Windows.Forms.Button filterDownButton; - private System.Windows.Forms.Button filterUpButton; - private System.Windows.Forms.ContextMenuStrip filterListContextMenuStrip; - private System.Windows.Forms.ToolStripMenuItem colorToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem filterToTabToolStripMenuItem; - private System.Windows.Forms.CheckBox hideFilterListOnLoadCheckBox; - private System.Windows.Forms.Panel advancedBackPanel; - private System.Windows.Forms.ToolStripMenuItem markFilterHitsInLogViewToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem highlightSelectionInLogFilewordModeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem hideColumnToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreColumnsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem allColumnsToolStripMenuItem; - private System.Windows.Forms.Label columnNamesLabel; - private System.Windows.Forms.Panel columnFinderPanel; - private System.Windows.Forms.ComboBox columnComboBox; - private System.Windows.Forms.Label lblColumnName; + private System.Windows.Forms.ToolStripMenuItem bookmarkCommentToolStripMenuItem; + private System.Windows.Forms.ContextMenuStrip editModeContextMenuStrip; + private System.Windows.Forms.ToolStripMenuItem highlightSelectionInLogFileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem editModecopyToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem tempHighlightsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem removeAllToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem makePermanentToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem filterForSelectionToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem setSelectedTextAsBookmarkCommentToolStripMenuItem; + private System.Windows.Forms.ToolTip helpToolTip; + private System.Windows.Forms.SplitContainer highlightSplitContainer; + private System.Windows.Forms.Button btnToggleHighlightPanel; + private System.Windows.Forms.Panel highlightSplitContainerBackPanel; + private System.Windows.Forms.Button bntSaveFilter; + private System.Windows.Forms.Button btnDeleteFilter; + private System.Windows.Forms.ListBox listBoxFilter; + private System.Windows.Forms.ContextMenuStrip filterContextMenuStrip; + private System.Windows.Forms.ToolStripMenuItem setBookmarksOnSelectedLinesToolStripMenuItem; + private System.Windows.Forms.CheckBox filterOnLoadCheckBox; + private System.Windows.Forms.ToolStripMenuItem markCurrentFilterRangeToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem syncTimestampsToToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem freeThisWindowFromTimeSyncToolStripMenuItem; + private System.Windows.Forms.Button btnFilterDown; + private System.Windows.Forms.Button btnFilterUp; + private System.Windows.Forms.ContextMenuStrip filterListContextMenuStrip; + private System.Windows.Forms.ToolStripMenuItem colorToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem filterToTabToolStripMenuItem; + private System.Windows.Forms.CheckBox hideFilterListOnLoadCheckBox; + private System.Windows.Forms.Panel advancedBackPanel; + private System.Windows.Forms.ToolStripMenuItem markFilterHitsInLogViewToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem highlightSelectionInLogFilewordModeToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem hideColumnToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem restoreColumnsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem allColumnsToolStripMenuItem; + private System.Windows.Forms.Label columnNamesLabel; + private System.Windows.Forms.Panel columnFinderPanel; + private System.Windows.Forms.ComboBox columnComboBox; + private System.Windows.Forms.Label lblColumnName; private System.Windows.Forms.SplitContainer filterSplitContainer; private System.Windows.Forms.Label lblTextFilter; private System.Windows.Forms.ComboBox filterComboBox; - private System.Windows.Forms.Button advancedButton; + private System.Windows.Forms.Button btnAdvanced; private System.Windows.Forms.CheckBox syncFilterCheckBox; private System.Windows.Forms.Label lblFilterCount; private System.Windows.Forms.CheckBox filterTailCheckBox; diff --git a/src/LogExpert.UI/Controls/LogWindow/PatternWindow.Designer.cs b/src/LogExpert.UI/Controls/LogWindow/PatternWindow.Designer.cs index a40a078f..baf03142 100644 --- a/src/LogExpert.UI/Controls/LogWindow/PatternWindow.Designer.cs +++ b/src/LogExpert.UI/Controls/LogWindow/PatternWindow.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert.UI.Controls.LogWindow +namespace LogExpert.UI.Controls.LogWindow { partial class PatternWindow { @@ -34,19 +34,19 @@ private void InitializeComponent() this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.panel2 = new System.Windows.Forms.Panel(); this.blockCountLabel = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); + this.labelNumberOfBlocks = new System.Windows.Forms.Label(); this.panel1 = new System.Windows.Forms.Panel(); - this.label2 = new System.Windows.Forms.Label(); + this.labelBlockLines = new System.Windows.Forms.Label(); this.blockLinesLabel = new System.Windows.Forms.Label(); this.panel4 = new System.Windows.Forms.Panel(); - this.setRangeButton = new System.Windows.Forms.Button(); - this.label7 = new System.Windows.Forms.Label(); - this.recalcButton = new System.Windows.Forms.Button(); - this.label6 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.rangeLabel = new System.Windows.Forms.Label(); + this.buttonSetRange = new System.Windows.Forms.Button(); + this.labelWeight = new System.Windows.Forms.Label(); + this.buttonRecalculate = new System.Windows.Forms.Button(); + this.labelMaxMisses = new System.Windows.Forms.Label(); + this.labelMaxDiff = new System.Windows.Forms.Label(); + this.labelFuzzy = new System.Windows.Forms.Label(); + this.labelFeatureDescription = new System.Windows.Forms.Label(); + this.labelNoRangeSet = new System.Windows.Forms.Label(); this.weigthKnobControl = new KnobControl(); this.maxMissesKnobControl = new KnobControl(); this.maxDiffKnobControl = new KnobControl(); @@ -119,7 +119,7 @@ private void InitializeComponent() // panel2 // this.panel2.Controls.Add(this.blockCountLabel); - this.panel2.Controls.Add(this.label1); + this.panel2.Controls.Add(this.labelNumberOfBlocks); this.panel2.Controls.Add(this.patternHitsDataGridView); this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; this.panel2.Location = new System.Drawing.Point(0, 0); @@ -139,17 +139,17 @@ private void InitializeComponent() // // label1 // - this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(0, 89); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(175, 13); - this.label1.TabIndex = 2; - this.label1.Text = "Number of blocks (pattern variants):"; + this.labelNumberOfBlocks.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labelNumberOfBlocks.AutoSize = true; + this.labelNumberOfBlocks.Location = new System.Drawing.Point(0, 89); + this.labelNumberOfBlocks.Name = "label1"; + this.labelNumberOfBlocks.Size = new System.Drawing.Size(175, 13); + this.labelNumberOfBlocks.TabIndex = 2; + this.labelNumberOfBlocks.Text = "Number of blocks (pattern variants):"; // // panel1 // - this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.labelBlockLines); this.panel1.Controls.Add(this.blockLinesLabel); this.panel1.Controls.Add(this.contentDataGridView); this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; @@ -160,13 +160,13 @@ private void InitializeComponent() // // label2 // - this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(3, 89); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(61, 13); - this.label2.TabIndex = 2; - this.label2.Text = "Block lines:"; + this.labelBlockLines.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labelBlockLines.AutoSize = true; + this.labelBlockLines.Location = new System.Drawing.Point(3, 89); + this.labelBlockLines.Name = "label2"; + this.labelBlockLines.Size = new System.Drawing.Size(61, 13); + this.labelBlockLines.TabIndex = 2; + this.labelBlockLines.Text = "Block lines:"; // // blockLinesLabel // @@ -180,15 +180,15 @@ private void InitializeComponent() // panel4 // this.panel4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.panel4.Controls.Add(this.setRangeButton); - this.panel4.Controls.Add(this.label7); - this.panel4.Controls.Add(this.recalcButton); + this.panel4.Controls.Add(this.buttonSetRange); + this.panel4.Controls.Add(this.labelWeight); + this.panel4.Controls.Add(this.buttonRecalculate); this.panel4.Controls.Add(this.weigthKnobControl); - this.panel4.Controls.Add(this.label6); + this.panel4.Controls.Add(this.labelMaxMisses); this.panel4.Controls.Add(this.maxMissesKnobControl); - this.panel4.Controls.Add(this.label5); + this.panel4.Controls.Add(this.labelMaxDiff); this.panel4.Controls.Add(this.maxDiffKnobControl); - this.panel4.Controls.Add(this.label4); + this.panel4.Controls.Add(this.labelFuzzy); this.panel4.Controls.Add(this.fuzzyKnobControl); this.panel4.Location = new System.Drawing.Point(3, 106); this.panel4.Name = "panel4"; @@ -197,81 +197,81 @@ private void InitializeComponent() // // setRangeButton // - this.setRangeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.setRangeButton.Location = new System.Drawing.Point(267, 5); - this.setRangeButton.Name = "setRangeButton"; - this.setRangeButton.Size = new System.Drawing.Size(75, 23); - this.setRangeButton.TabIndex = 12; - this.setRangeButton.Text = "Set range"; - this.setRangeButton.UseVisualStyleBackColor = true; - this.setRangeButton.Click += new System.EventHandler(this.OnSetRangeButtonClick); + this.buttonSetRange.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonSetRange.Location = new System.Drawing.Point(267, 5); + this.buttonSetRange.Name = "setRangeButton"; + this.buttonSetRange.Size = new System.Drawing.Size(75, 23); + this.buttonSetRange.TabIndex = 12; + this.buttonSetRange.Text = "Set range"; + this.buttonSetRange.UseVisualStyleBackColor = true; + this.buttonSetRange.Click += new System.EventHandler(this.OnSetRangeButtonClick); // // label7 // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(192, 41); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(41, 13); - this.label7.TabIndex = 11; - this.label7.Text = "Weigth"; + this.labelWeight.AutoSize = true; + this.labelWeight.Location = new System.Drawing.Point(192, 41); + this.labelWeight.Name = "label7"; + this.labelWeight.Size = new System.Drawing.Size(41, 13); + this.labelWeight.TabIndex = 11; + this.labelWeight.Text = "Weigth"; // // recalcButton // - this.recalcButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.recalcButton.Location = new System.Drawing.Point(267, 30); - this.recalcButton.Name = "recalcButton"; - this.recalcButton.Size = new System.Drawing.Size(75, 23); - this.recalcButton.TabIndex = 6; - this.recalcButton.Text = "Recalc"; - this.recalcButton.UseVisualStyleBackColor = true; - this.recalcButton.Click += new System.EventHandler(this.OnRecalcButtonClick); + this.buttonRecalculate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonRecalculate.Location = new System.Drawing.Point(267, 30); + this.buttonRecalculate.Name = "recalcButton"; + this.buttonRecalculate.Size = new System.Drawing.Size(75, 23); + this.buttonRecalculate.TabIndex = 6; + this.buttonRecalculate.Text = "Recalc"; + this.buttonRecalculate.UseVisualStyleBackColor = true; + this.buttonRecalculate.Click += new System.EventHandler(this.OnRecalcButtonClick); // // label6 // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(113, 41); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(61, 13); - this.label6.TabIndex = 9; - this.label6.Text = "Max misses"; + this.labelMaxMisses.AutoSize = true; + this.labelMaxMisses.Location = new System.Drawing.Point(113, 41); + this.labelMaxMisses.Name = "label6"; + this.labelMaxMisses.Size = new System.Drawing.Size(61, 13); + this.labelMaxMisses.TabIndex = 9; + this.labelMaxMisses.Text = "Max misses"; // // label5 // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(57, 41); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(44, 13); - this.label5.TabIndex = 7; - this.label5.Text = "Max diff"; + this.labelMaxDiff.AutoSize = true; + this.labelMaxDiff.Location = new System.Drawing.Point(57, 41); + this.labelMaxDiff.Name = "label5"; + this.labelMaxDiff.Size = new System.Drawing.Size(44, 13); + this.labelMaxDiff.TabIndex = 7; + this.labelMaxDiff.Text = "Max diff"; // // label4 // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(6, 41); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(34, 13); - this.label4.TabIndex = 5; - this.label4.Text = "Fuzzy"; + this.labelFuzzy.AutoSize = true; + this.labelFuzzy.Location = new System.Drawing.Point(6, 41); + this.labelFuzzy.Name = "label4"; + this.labelFuzzy.Size = new System.Drawing.Size(34, 13); + this.labelFuzzy.TabIndex = 5; + this.labelFuzzy.Text = "Fuzzy"; // // label3 // - this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.label3.Location = new System.Drawing.Point(483, 110); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(303, 49); - this.label3.TabIndex = 12; - this.label3.Text = "This feature is pre-beta and does not work :)\r\nUsage: Select a range in the log w" + + this.labelFeatureDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.labelFeatureDescription.Location = new System.Drawing.Point(483, 110); + this.labelFeatureDescription.Name = "label3"; + this.labelFeatureDescription.Size = new System.Drawing.Size(303, 49); + this.labelFeatureDescription.TabIndex = 12; + this.labelFeatureDescription.Text = "This feature is pre-beta and does not work :)\r\nUsage: Select a range in the log w" + "indow and press \"Recalc\". \r\nThis will search for text ranges similar to the sele" + "cted one."; // // rangeLabel // - this.rangeLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.rangeLabel.Location = new System.Drawing.Point(352, 114); - this.rangeLabel.Name = "rangeLabel"; - this.rangeLabel.Size = new System.Drawing.Size(125, 42); - this.rangeLabel.TabIndex = 13; - this.rangeLabel.Text = "(no range set)"; + this.labelNoRangeSet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labelNoRangeSet.Location = new System.Drawing.Point(352, 114); + this.labelNoRangeSet.Name = "rangeLabel"; + this.labelNoRangeSet.Size = new System.Drawing.Size(125, 42); + this.labelNoRangeSet.TabIndex = 13; + this.labelNoRangeSet.Text = "(no range set)"; // // weigthKnobControl // @@ -373,8 +373,8 @@ private void InitializeComponent() // PatternWindow // this.ClientSize = new System.Drawing.Size(798, 165); - this.Controls.Add(this.rangeLabel); - this.Controls.Add(this.label3); + this.Controls.Add(this.labelNoRangeSet); + this.Controls.Add(this.labelFeatureDescription); this.Controls.Add(this.panel4); this.Controls.Add(this.splitContainer1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; @@ -407,24 +407,24 @@ private void InitializeComponent() private System.Windows.Forms.SplitContainer splitContainer2; private LogExpert.Dialogs.BufferedDataGridView contentDataGridView; private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labelBlockLines; private System.Windows.Forms.Label blockLinesLabel; private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label labelNumberOfBlocks; private System.Windows.Forms.Label blockCountLabel; private System.Windows.Forms.Panel panel3; private KnobControl fuzzyKnobControl; private System.Windows.Forms.Panel panel4; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label labelFuzzy; + private System.Windows.Forms.Label labelMaxDiff; private KnobControl maxDiffKnobControl; - private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label labelMaxMisses; private KnobControl maxMissesKnobControl; - private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label labelWeight; private KnobControl weigthKnobControl; - private System.Windows.Forms.Button recalcButton; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Button setRangeButton; - private System.Windows.Forms.Label rangeLabel; + private System.Windows.Forms.Button buttonRecalculate; + private System.Windows.Forms.Label labelFeatureDescription; + private System.Windows.Forms.Button buttonSetRange; + private System.Windows.Forms.Label labelNoRangeSet; } } \ No newline at end of file diff --git a/src/LogExpert.UI/Controls/LogWindow/PatternWindow.cs b/src/LogExpert.UI/Controls/LogWindow/PatternWindow.cs index 7e784b6d..5a5cfe3e 100644 --- a/src/LogExpert.UI/Controls/LogWindow/PatternWindow.cs +++ b/src/LogExpert.UI/Controls/LogWindow/PatternWindow.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Runtime.Versioning; using LogExpert.Core.Classes; @@ -24,14 +25,32 @@ internal partial class PatternWindow : Form //TODO: Can this be changed to UserC public PatternWindow () { + SuspendLayout(); + + AutoScaleDimensions = new SizeF(96F, 96F); + AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); + ApplyResources(); + + ResumeLayout(); } public PatternWindow (LogWindow logWindow) { + SuspendLayout(); + + AutoScaleDimensions = new SizeF(96F, 96F); + AutoScaleMode = AutoScaleMode.Dpi; + _logWindow = logWindow; + InitializeComponent(); - recalcButton.Enabled = false; + ApplyResources(); + + buttonRecalculate.Enabled = false; + + ResumeLayout(); } #endregion @@ -64,6 +83,30 @@ public int Weight #endregion + #region Private Methods + + private void ApplyResources () + { + // Form title + Text = Resources.PatternWindow_UI_Title; + + // Labels + labelNumberOfBlocks.Text = Resources.PatternWindow_UI_Label_NumberOfBlocks; + labelBlockLines.Text = Resources.PatternWindow_UI_Label_BlockLines; + labelFeatureDescription.Text = Resources.PatternWindow_UI_Label_FeatureDescription; + labelFuzzy.Text = Resources.PatternWindow_UI_Label_Fuzzy; + labelMaxDiff.Text = Resources.PatternWindow_UI_Label_MaxDiff; + labelMaxMisses.Text = Resources.PatternWindow_UI_Label_MaxMisses; + labelWeight.Text = Resources.PatternWindow_UI_Label_Weight; + labelNoRangeSet.Text = Resources.PatternWindow_UI_Label_NoRangeSet; + + // Buttons + buttonRecalculate.Text = Resources.PatternWindow_UI_Button_Recalc; + buttonSetRange.Text = Resources.PatternWindow_UI_Button_SetRange; + } + + #endregion + #region Public methods public void SetBlockList (List flatBlockList, PatternArgs patternArgs) @@ -151,11 +194,11 @@ public void SetFont (string fontName, float fontSize) private void SetBlockListGuiStuff () { patternHitsDataGridView.RowCount = 0; - blockCountLabel.Text = "0"; + blockCountLabel.Text = Resources.LogWindow_UI_Common_ZeroValue; contentDataGridView.RowCount = 0; - blockLinesLabel.Text = "0"; - recalcButton.Enabled = true; - setRangeButton.Enabled = true; + blockLinesLabel.Text = Resources.LogWindow_UI_Common_ZeroValue; + buttonRecalculate.Enabled = true; + buttonSetRange.Enabled = true; if (_blockList.Count > 0) { SetCurrentList(_blockList[0]); @@ -336,8 +379,8 @@ private void OnRecalcButtonClick (object sender, EventArgs e) _patternArgs.MaxMisses = maxMissesKnobControl.Value; _patternArgs.MinWeight = weigthKnobControl.Value; _logWindow.PatternStatistic(_patternArgs); - recalcButton.Enabled = false; - setRangeButton.Enabled = false; + buttonRecalculate.Enabled = false; + buttonSetRange.Enabled = false; } private void OnCloseButtonClick (object sender, EventArgs e) @@ -360,8 +403,11 @@ private void OnPatternHitsDataGridViewColumnDividerDoubleClick (object sender, D private void OnSetRangeButtonClick (object sender, EventArgs e) { _logWindow.PatternStatisticSelectRange(_patternArgs); - recalcButton.Enabled = true; - rangeLabel.Text = $"Start: {_patternArgs.StartLine}\nEnd: {_patternArgs.EndLine}"; + buttonRecalculate.Enabled = true; + labelNoRangeSet.Text = string.Format(CultureInfo.InvariantCulture, + Resources.PatternWindow_UI_Label_RangeFormat, + _patternArgs.StartLine, + _patternArgs.EndLine); } #endregion diff --git a/src/LogExpert.UI/Controls/LogWindow/RangeFinder.cs b/src/LogExpert.UI/Controls/LogWindow/RangeFinder.cs index cc9333b6..a952c287 100644 --- a/src/LogExpert.UI/Controls/LogWindow/RangeFinder.cs +++ b/src/LogExpert.UI/Controls/LogWindow/RangeFinder.cs @@ -1,43 +1,44 @@ -using System.Globalization; - using LogExpert.Core.Callback; using LogExpert.Core.Classes; using LogExpert.Core.Classes.Filter; -using LogExpert.Core.Entities; - -using NLog; using Range = LogExpert.Core.Entities.Range; namespace LogExpert.UI.Controls.LogWindow; /// +/// Provides functionality to find a range of lines in a log based on specified search criteria. /// Delivers the range (from..to) that matches the current range filter settings starting from a given line. /// -internal class RangeFinder(FilterParams filterParams, ColumnizerCallback callback) +/// The class is used to locate a contiguous block of log lines that match +/// specified search criteria. It utilizes a callback mechanism to interact with the log data and determine the start +/// and end of the range. The search is performed by evaluating filter conditions on each line, starting from a +/// specified line number and searching both forwards and backwards as necessary. +/// +/// +internal class RangeFinder (FilterParams filterParams, ColumnizerCallback callback) { #region Fields - private static readonly ILogger _logger = LogManager.GetCurrentClassLogger(); private readonly FilterParams _filterParams = filterParams.CloneWithCurrentColumnizer(); #endregion #region Public methods - public Range FindRange(int startLine) + public Range FindRange (int startLine) { - _logger.Info($"Starting range search for {_filterParams.SearchText} ... {_filterParams.RangeSearchText}"); + //_logger.Info($"Starting range search for {_filterParams.SearchText} ... {_filterParams.RangeSearchText}"); if (_filterParams.RangeSearchText == null || _filterParams.RangeSearchText.Trim().Length == 0) { - _logger.Info(CultureInfo.InvariantCulture, "Range search text not set. Cancelling range search."); + //_logger.Info("Search text not set. Cancelling range search."); return null; } if (_filterParams.SearchText == null || _filterParams.SearchText.Trim().Length == 0) { - _logger.Info(CultureInfo.InvariantCulture, "Search text not set. Cancelling range search."); + //_logger.Info("Range search text not set. Cancelling range search."); return null; } @@ -78,7 +79,7 @@ public Range FindRange(int startLine) if (!foundStartLine) { - _logger.Info(CultureInfo.InvariantCulture, "Range start not found"); + //_logger.Info("Range start not found"); return null; } @@ -91,6 +92,7 @@ public Range FindRange(int startLine) { line = callback.GetLogLine(lineNum); callback.LineNum = lineNum; + if (!Util.TestFilterCondition(_filterParams, line, callback)) { break; @@ -102,7 +104,7 @@ public Range FindRange(int startLine) lineNum--; range.EndLine = lineNum; - _logger.Info($"Range search finished. Found {range.EndLine - range.StartLine} lines"); + //_logger.Info($"Range search finished. Found {range.EndLine - range.StartLine} lines"); return range; } diff --git a/src/LogExpert.UI/Controls/LogWindow/TimeSpreadCalculator.cs b/src/LogExpert.UI/Controls/LogWindow/TimeSpreadCalculator.cs index 9318141c..0d8add67 100644 --- a/src/LogExpert.UI/Controls/LogWindow/TimeSpreadCalculator.cs +++ b/src/LogExpert.UI/Controls/LogWindow/TimeSpreadCalculator.cs @@ -1,5 +1,3 @@ -using System.Globalization; - using LogExpert.Core.Callback; using LogExpert.Core.Classes; using LogExpert.Core.Interface; @@ -175,14 +173,12 @@ private void WorkerFx () while (!_shouldStop) { // wait for unbusy moments - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator: wait for unbusy moments"); var signaled = _calcEvent.WaitOne(INACTIVITY_TIME, false); - if (signaled == false) + if (!signaled) { - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator: unbusy. starting calc."); if (TimeMode) { - DoCalc_via_Time(); + DoCalcViaTime(); } else { @@ -192,7 +188,6 @@ private void WorkerFx () break; } - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator: signalled. no calc."); _ = _calcEvent.Reset(); } @@ -203,12 +198,10 @@ private void WorkerFx () private void DoCalc () { OnStartCalc(EventArgs.Empty); - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator.DoCalc() begin"); if (_callback.GetLineCount() < 1) { OnCalcDone(EventArgs.Empty); - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator.DoCalc() end because of line count < 1"); return; } @@ -229,7 +222,7 @@ private void DoCalc () ? (int)Math.Round(_lineCount / (double)_displayHeight) : 1; - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator.DoCalc() collecting data for {0} lines with step size {1}", lastLineNum, step); + //_logger.Debug($"Collecting data for {lastLineNum} lines with step size {step}")); List newDiffList = []; List maxList = []; @@ -246,7 +239,6 @@ private void DoCalc () timePerLineSum += (int)(span.Ticks / TimeSpan.TicksPerMillisecond); newDiffList.Add(new SpreadEntry(i, 0, time)); oldTime = time; - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator.DoCalc() time diff {0}", span); } } @@ -261,21 +253,19 @@ private void DoCalc () _timePerLine = (int)Math.Round(timePerLineSum / ((double)(lastLineNum + 1) / step)); _ = CalcValuesViaLines(_timePerLine); OnCalcDone(EventArgs.Empty); - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator.DoCalc() end"); } } } //TODO Refactor this method - private void DoCalc_via_Time () + private void DoCalcViaTime () { OnStartCalc(EventArgs.Empty); - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator.DoCalc_via_Time() begin"); if (_callback.GetLineCount() < 1) { OnCalcDone(EventArgs.Empty); - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator.DoCalc() end because of line count < 1"); + //_logger.Debug($"End because of line count < 1"); return; } @@ -292,7 +282,7 @@ private void DoCalc_via_Time () var step = overallSpanMillis > _displayHeight ? (long)Math.Round(overallSpanMillis / (double)_displayHeight) : 1; - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator.DoCalc_via_Time() time range is {0} ms", overallSpanMillis); + //_logger.Debug($"Time range is {overallSpanMillis} ms"); lineNum = 0; var searchTimeStamp = _startTimestamp; @@ -314,7 +304,8 @@ private void DoCalc_via_Time () var lineDiff = lineNum - oldLineNum; - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator.DoCalc_via_Time() test time {0:HH:mm:ss.fff} line diff={1}", searchTimeStamp, lineDiff); + var timestamp = $"{searchTimeStamp:HH:mm:ss.fff}"; + //_logger.Debug($"Test time {timestamp} line diff={lineDiff}")); if (lineDiff >= 0) { @@ -348,7 +339,7 @@ private void DoCalc_via_Time () _average = lineDiffSum / (double)loopCount; //double average = maxList[maxList.Count / 2]; - _logger.Debug(CultureInfo.InvariantCulture, "Average diff={0} minDiff={1} maxDiff={2}", _average, minDiff, _maxDiff); + //_logger.Debug($"Average diff={_average} minDiff={minDiff} maxDiff={_maxDiff}"); lock (_diffListLock) { @@ -365,7 +356,6 @@ private void DoCalc_via_Time () DiffList = newDiffList; CalcValuesViaTime(_maxDiff, _average); OnCalcDone(EventArgs.Empty); - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator.DoCalc_via_Time() end"); } } } @@ -401,7 +391,7 @@ private void CalcValuesViaTime (int maxDiff, double average) { foreach (var entry in DiffList) { - var lineDiff = entry.Diff; + //var lineDiff = entry.Diff; var diffFromAverage = entry.Diff - average; if (diffFromAverage < 0) @@ -412,7 +402,8 @@ private void CalcValuesViaTime (int maxDiff, double average) var value = (int)(diffFromAverage / maxDiff * _contrast); entry.Value = 255 - value; - _logger.Debug(CultureInfo.InvariantCulture, "TimeSpreadCalculator.DoCalc() test time {0:HH:mm:ss.fff} line diff={1} value={2}", entry.Timestamp, lineDiff, value); + //var timestamp = $"{entry.Timestamp:HH:mm:ss.fff}"; + //_logger.Debug($"Test time {timestamp} line diff={lineDiff} value={value}")); } } diff --git a/src/LogExpert.UI/Controls/LogWindow/TimeSpreadigControl.cs b/src/LogExpert.UI/Controls/LogWindow/TimeSpreadigControl.cs index 41c94c8d..2a13a311 100644 --- a/src/LogExpert.UI/Controls/LogWindow/TimeSpreadigControl.cs +++ b/src/LogExpert.UI/Controls/LogWindow/TimeSpreadigControl.cs @@ -5,15 +5,11 @@ using LogExpert.Core.EventArguments; using LogExpert.UI.Extensions; -using NLog; - namespace LogExpert.UI.Controls.LogWindow; [SupportedOSPlatform("windows")] internal partial class TimeSpreadingControl : UserControl { - private static readonly Logger _logger = LogManager.GetCurrentClassLogger(); - #region Fields private Bitmap _bitmap = new(1, 1); @@ -32,6 +28,11 @@ internal partial class TimeSpreadingControl : UserControl public TimeSpreadingControl () { + SuspendLayout(); + + AutoScaleDimensions = new SizeF(96F, 96F); + AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); _toolTip = new ToolTip(); Font = new Font("Courier New", 8.25F, FontStyle.Regular, GraphicsUnit.Point, 0); @@ -39,6 +40,8 @@ public TimeSpreadingControl () _toolTip.ReshowDelay = 0; _toolTip.ShowAlways = true; DoubleBuffered = false; + + ResumeLayout(); } #endregion @@ -144,8 +147,6 @@ private void OnLineSelected (SelectLineEventArgs e) private void OnTimeSpreadCalcCalcDone (object sender, EventArgs e) { - _logger.Debug(CultureInfo.InvariantCulture, "timeSpreadCalc_CalcDone()"); - lock (_monitor) { Invalidate(); @@ -202,7 +203,7 @@ private void OnTimeSpreadCalcCalcDone (object sender, EventArgs e) } } - BeginInvoke(new MethodInvoker(Refresh)); + _ = BeginInvoke(new MethodInvoker(Refresh)); } private void OnTimeSpreadCalcStartCalc (object sender, EventArgs e) @@ -233,10 +234,10 @@ private void OnTimeSpreadCalcStartCalc (object sender, EventArgs e) RectangleF rectf = new(rect.Left, rect.Top, rect.Width, rect.Height); - gfx.DrawString("Calculating time spread view...", Font, fgBrush, rectf, format); + gfx.DrawString(Resources.TimeSpreadingControl_UI_GFX_OnTimeSpreadCalcStartCalc_CalculatingTimeSpreadView, Font, fgBrush, rectf, format); } - BeginInvoke(new MethodInvoker(Refresh)); + _ = BeginInvoke(new MethodInvoker(Refresh)); } private void OnTimeSpreadingControlSizeChanged (object sender, EventArgs e) @@ -298,7 +299,7 @@ private void OnTimeSpreadingControlMouseMove (object sender, MouseEventArgs e) _lastMouseY = e.Y; var dts = $"{entry.Timestamp:dd.MM.yyyy HH:mm:ss}"; - _toolTip.SetToolTip(this, "Line " + (entry.LineNum + 1) + "\n" + dts); + _toolTip.SetToolTip(this, string.Format(CultureInfo.InvariantCulture, Resources.TimeSpreadingControl_UI_ToolTip, entry.LineNum, dts)); } #endregion diff --git a/src/LogExpert.UI/Controls/LogWindow/TimeSyncList.cs b/src/LogExpert.UI/Controls/LogWindow/TimeSyncList.cs index 3a522678..8faa997e 100644 --- a/src/LogExpert.UI/Controls/LogWindow/TimeSyncList.cs +++ b/src/LogExpert.UI/Controls/LogWindow/TimeSyncList.cs @@ -13,15 +13,9 @@ internal class TimeSyncList #endregion - #region Delegates - - public delegate void WindowRemovedEventHandler (object sender, EventArgs e); - - #endregion - #region Events - public event WindowRemovedEventHandler WindowRemoved; + public event EventHandler WindowRemoved; #endregion @@ -53,7 +47,7 @@ public void RemoveWindow (LogWindow logWindow) { lock (logWindowList) { - logWindowList.Remove(logWindow); + _ = logWindowList.Remove(logWindow); } OnWindowRemoved(); @@ -75,7 +69,7 @@ public void NavigateToTimestamp (DateTime timestamp, LogWindow sender) { if (sender != logWindow) { - logWindow.ScrollToTimestamp(timestamp, false, false); + _ = logWindow.ScrollToTimestamp(timestamp, false, false); } } } diff --git a/src/LogExpert.UI/Dialogs/AboutBox.cs b/src/LogExpert.UI/Dialogs/AboutBox.cs index 55ba7a03..d262d3ff 100644 --- a/src/LogExpert.UI/Dialogs/AboutBox.cs +++ b/src/LogExpert.UI/Dialogs/AboutBox.cs @@ -21,36 +21,45 @@ internal partial class AboutBox : Form public AboutBox () { + SuspendLayout(); + + AutoScaleDimensions = new SizeF(96F, 96F); + AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); - LoadResources(); usedComponentsDataGrid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; _assembly = Assembly.GetExecutingAssembly(); - Text = $@"About {AssemblyTitle}"; - labelProductName.Text = AssemblyProduct; - labelVersion.Text = AssemblyVersion; - labelCopyright.Text = AssemblyCopyright; + //resources need the assembly to be set + ApplyResources(); + var link = "https://github.com/LogExperts/LogExpert"; _ = linkLabelURL.Links.Add(new LinkLabel.Link(0, link.Length, link)); LoadUsedComponents(); + + ResumeLayout(); } + //TODO Jsons should be serialized on a central place and not in every UI component //Name, Version, License, Download, Source - private void LoadUsedComponents () { var json = File.ReadAllText($"{Application.StartupPath}files\\json\\usedComponents.json"); var usedComponents = JsonConvert.DeserializeObject(json); usedComponents = usedComponents?.OrderBy(x => x.PackageId).ToArray(); usedComponentsDataGrid.DataSource = usedComponents; - } - - private void LoadResources () + private void ApplyResources () { logoPictureBox.Image = Resources.LogLover; + labelProductName.Text = AssemblyProduct; + labelVersion.Text = AssemblyVersion; + labelCopyright.Text = AssemblyCopyright; + linkLabelURL.Text = Resources.AboutBox_UI_LinkLabel_URL; + okButton.Text = Resources.LogExpert_Common_UI_Button_OK; + Text = $"{Resources.AboutBox_UI_Text} {AssemblyTitle}"; } #endregion @@ -85,7 +94,6 @@ public string AssemblyVersion ? $"{assembly.Version.Major}.{assembly.Version.Minor}.{assembly.Version.Build}.{assembly.Version.Revision}" : "0.0.0.0"; } - } public string AssemblyDescription diff --git a/src/LogExpert.UI/Dialogs/AllowOnlyOneInstanceErrorDialog.cs b/src/LogExpert.UI/Dialogs/AllowOnlyOneInstanceErrorDialog.cs index 3c046848..fe38205e 100644 --- a/src/LogExpert.UI/Dialogs/AllowOnlyOneInstanceErrorDialog.cs +++ b/src/LogExpert.UI/Dialogs/AllowOnlyOneInstanceErrorDialog.cs @@ -9,16 +9,26 @@ public partial class AllowOnlyOneInstanceErrorDialog : Form public AllowOnlyOneInstanceErrorDialog () { + SuspendLayout(); + + AutoScaleDimensions = new SizeF(96F, 96F); + AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); - SetText(); + + ApplyResources(); + + ResumeLayout(); } - private void SetText () + private void ApplyResources () { - labelErrorText.Text = @"Only one instance allowed, uncheck ""View Settings => Allow only 1 Instances"" to start multiple instances!"; + labelErrorText.Text = Resources.AllowOnlyOneInstanceErrorDialog_UI_Label_labelErrorText; + checkBoxIgnoreMessage.Text = Resources.AllowOnlyOneInstanceErrorDialog_UI_CheckBox_checkBoxIgnoreMessage; + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; } - private void OnButtonOkClick (object sender, System.EventArgs e) + private void OnButtonOkClick (object sender, EventArgs e) { DoNotShowThisMessageAgain = checkBoxIgnoreMessage.Checked; } diff --git a/src/LogExpert.UI/Dialogs/BookmarkCommentDlg.Designer.cs b/src/LogExpert.UI/Dialogs/BookmarkCommentDlg.Designer.cs index 06aa2968..eeae3f77 100644 --- a/src/LogExpert.UI/Dialogs/BookmarkCommentDlg.Designer.cs +++ b/src/LogExpert.UI/Dialogs/BookmarkCommentDlg.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert.Dialogs; +namespace LogExpert.Dialogs; partial class BookmarkCommentDlg { @@ -29,48 +29,48 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BookmarkCommentDlg)); - this.okButton = new System.Windows.Forms.Button(); - this.cancelButton = new System.Windows.Forms.Button(); - this.commentTextBox = new System.Windows.Forms.TextBox(); + this.buttonOk = new System.Windows.Forms.Button(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.textBoxComment = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // okButton // - this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.okButton.Location = new System.Drawing.Point(150, 86); - this.okButton.Name = "okButton"; - this.okButton.Size = new System.Drawing.Size(75, 23); - this.okButton.TabIndex = 1; - this.okButton.Text = "OK"; - this.okButton.UseVisualStyleBackColor = true; + this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK; + this.buttonOk.Location = new System.Drawing.Point(150, 86); + this.buttonOk.Name = "buttonOk"; + this.buttonOk.Size = new System.Drawing.Size(75, 23); + this.buttonOk.TabIndex = 1; + this.buttonOk.Text = "&OK"; + this.buttonOk.UseVisualStyleBackColor = true; // // cancelButton // - this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancelButton.Location = new System.Drawing.Point(241, 86); - this.cancelButton.Name = "cancelButton"; - this.cancelButton.Size = new System.Drawing.Size(75, 23); - this.cancelButton.TabIndex = 2; - this.cancelButton.Text = "&Cancel"; - this.cancelButton.UseVisualStyleBackColor = true; + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(241, 86); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(75, 23); + this.buttonCancel.TabIndex = 2; + this.buttonCancel.Text = "&Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; // // commentTextBox // - this.commentTextBox.Dock = System.Windows.Forms.DockStyle.Top; - this.commentTextBox.Location = new System.Drawing.Point(0, 0); - this.commentTextBox.Multiline = true; - this.commentTextBox.Name = "commentTextBox"; - this.commentTextBox.Size = new System.Drawing.Size(324, 80); - this.commentTextBox.TabIndex = 0; + this.textBoxComment.Dock = System.Windows.Forms.DockStyle.Top; + this.textBoxComment.Location = new System.Drawing.Point(0, 0); + this.textBoxComment.Multiline = true; + this.textBoxComment.Name = "textBoxComment"; + this.textBoxComment.Size = new System.Drawing.Size(324, 80); + this.textBoxComment.TabIndex = 0; // // BookmarkCommentDlg // - this.AcceptButton = this.okButton; - this.CancelButton = this.cancelButton; + this.AcceptButton = this.buttonOk; + this.CancelButton = this.buttonCancel; this.ClientSize = new System.Drawing.Size(324, 115); - this.Controls.Add(this.commentTextBox); - this.Controls.Add(this.cancelButton); - this.Controls.Add(this.okButton); + this.Controls.Add(this.textBoxComment); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.buttonOk); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "BookmarkCommentDlg"; @@ -83,7 +83,7 @@ private void InitializeComponent() #endregion -private System.Windows.Forms.Button okButton; -private System.Windows.Forms.Button cancelButton; -private System.Windows.Forms.TextBox commentTextBox; +private System.Windows.Forms.Button buttonOk; +private System.Windows.Forms.Button buttonCancel; +private System.Windows.Forms.TextBox textBoxComment; } \ No newline at end of file diff --git a/src/LogExpert.UI/Dialogs/BookmarkCommentDlg.cs b/src/LogExpert.UI/Dialogs/BookmarkCommentDlg.cs index 7949c604..ae55621f 100644 --- a/src/LogExpert.UI/Dialogs/BookmarkCommentDlg.cs +++ b/src/LogExpert.UI/Dialogs/BookmarkCommentDlg.cs @@ -7,12 +7,24 @@ internal partial class BookmarkCommentDlg : Form { #region cTor - public BookmarkCommentDlg() + public BookmarkCommentDlg () { + SuspendLayout(); + AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; InitializeComponent(); + ApplyResources(); + + ResumeLayout(); + } + + private void ApplyResources () + { + Text = Resources.BookmarkCommentDlg_UI_Title; + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; } #endregion @@ -21,8 +33,8 @@ public BookmarkCommentDlg() public string Comment { - set => commentTextBox.Text = value; - get => commentTextBox.Text; + set => textBoxComment.Text = value; + get => textBoxComment.Text; } #endregion diff --git a/src/LogExpert.UI/Dialogs/BookmarkWindow.Designer.cs b/src/LogExpert.UI/Dialogs/BookmarkWindow.Designer.cs index 9467414c..3cac63d1 100644 --- a/src/LogExpert.UI/Dialogs/BookmarkWindow.Designer.cs +++ b/src/LogExpert.UI/Dialogs/BookmarkWindow.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert.Dialogs; +namespace LogExpert.Dialogs; partial class BookmarkWindow { /// /// Required designer variable. @@ -31,8 +31,8 @@ private void InitializeComponent() { this.bookmarkTextBox = new System.Windows.Forms.TextBox(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.bookmarkDataGridView = new LogExpert.Dialogs.BufferedDataGridView(); - this.commentColumnCheckBox = new System.Windows.Forms.CheckBox(); - this.label1 = new System.Windows.Forms.Label(); + this.checkBoxCommentColumn = new System.Windows.Forms.CheckBox(); + this.labelComment = new System.Windows.Forms.Label(); this.contextMenuStrip1.SuspendLayout(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -88,8 +88,8 @@ private void InitializeComponent() { // // splitContainer1.Panel2 // - this.splitContainer1.Panel2.Controls.Add(this.commentColumnCheckBox); - this.splitContainer1.Panel2.Controls.Add(this.label1); + this.splitContainer1.Panel2.Controls.Add(this.checkBoxCommentColumn); + this.splitContainer1.Panel2.Controls.Add(this.labelComment); this.splitContainer1.Panel2.Controls.Add(this.bookmarkTextBox); this.splitContainer1.Size = new System.Drawing.Size(717, 158); this.splitContainer1.SplitterDistance = 517; @@ -133,24 +133,24 @@ private void InitializeComponent() { // // commentColumnCheckBox // - this.commentColumnCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.commentColumnCheckBox.AutoSize = true; - this.commentColumnCheckBox.Location = new System.Drawing.Point(7, 138); - this.commentColumnCheckBox.Name = "commentColumnCheckBox"; - this.commentColumnCheckBox.Size = new System.Drawing.Size(136, 17); - this.commentColumnCheckBox.TabIndex = 8; - this.commentColumnCheckBox.Text = "Show comment column"; - this.commentColumnCheckBox.UseVisualStyleBackColor = true; - this.commentColumnCheckBox.CheckedChanged += new System.EventHandler(this.OnCommentColumnCheckBoxCheckedChanged); + this.checkBoxCommentColumn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.checkBoxCommentColumn.AutoSize = true; + this.checkBoxCommentColumn.Location = new System.Drawing.Point(7, 138); + this.checkBoxCommentColumn.Name = "checkBoxCommentColumn"; + this.checkBoxCommentColumn.Size = new System.Drawing.Size(136, 17); + this.checkBoxCommentColumn.TabIndex = 8; + this.checkBoxCommentColumn.Text = "Show comment column"; + this.checkBoxCommentColumn.UseVisualStyleBackColor = true; + this.checkBoxCommentColumn.CheckedChanged += new System.EventHandler(this.OnCommentColumnCheckBoxCheckedChanged); // // label1 // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(4, 4); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(104, 13); - this.label1.TabIndex = 7; - this.label1.Text = "Bookmark comment:"; + this.labelComment.AutoSize = true; + this.labelComment.Location = new System.Drawing.Point(4, 4); + this.labelComment.Name = "labelComment"; + this.labelComment.Size = new System.Drawing.Size(104, 13); + this.labelComment.TabIndex = 7; + this.labelComment.Text = "Bookmark comment:"; // // BookmarkWindow // @@ -189,7 +189,7 @@ private void InitializeComponent() { private System.Windows.Forms.ToolStripMenuItem deleteBookmarkssToolStripMenuItem; private System.Windows.Forms.TextBox bookmarkTextBox; private System.Windows.Forms.SplitContainer splitContainer1; -private System.Windows.Forms.Label label1; +private System.Windows.Forms.Label labelComment; private System.Windows.Forms.ToolStripMenuItem removeCommentsToolStripMenuItem; -private System.Windows.Forms.CheckBox commentColumnCheckBox; +private System.Windows.Forms.CheckBox checkBoxCommentColumn; } \ No newline at end of file diff --git a/src/LogExpert.UI/Dialogs/BookmarkWindow.cs b/src/LogExpert.UI/Dialogs/BookmarkWindow.cs index 6b08cef7..8124461f 100644 --- a/src/LogExpert.UI/Dialogs/BookmarkWindow.cs +++ b/src/LogExpert.UI/Dialogs/BookmarkWindow.cs @@ -13,7 +13,6 @@ namespace LogExpert.Dialogs; -//TODO can be moved to Logexpert.UI if the PaintHelper has been refactored [SupportedOSPlatform("windows")] internal partial class BookmarkWindow : DockContent, ISharedToolWindow, IBookmarkView { @@ -32,12 +31,33 @@ internal partial class BookmarkWindow : DockContent, ISharedToolWindow, IBookmar public BookmarkWindow () { - InitializeComponent(); + SuspendLayout(); + AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); + + bookmarkDataGridView.CellValueNeeded += OnBoomarkDataGridViewCellValueNeeded; bookmarkDataGridView.CellPainting += OnBoomarkDataGridViewCellPainting; + + ApplyResources(); + + ResumeLayout(); + } + + private void ApplyResources () + { + // Dialog title + Text = Resources.BookmarkWindow_UI_Title; + + labelComment.Text = Resources.BookmarkWindow_UI_Label_Comment; + + checkBoxCommentColumn.Text = Resources.BookmarkWindow_UI_CheckBox_ShowCommentColumn; + + deleteBookmarkssToolStripMenuItem.Text = Resources.BookmarkWindow_UI_MenuItem_DeleteBookmarks; + removeCommentsToolStripMenuItem.Text = Resources.BookmarkWindow_UI_ToolStripMenuItem_RemoveComments; } #endregion @@ -51,10 +71,10 @@ public bool LineColumnVisible public bool ShowBookmarkCommentColumn { - get => commentColumnCheckBox.Checked; + get => checkBoxCommentColumn.Checked; set { - commentColumnCheckBox.Checked = value; + checkBoxCommentColumn.Checked = value; ShowCommentColumn(value); } } @@ -74,7 +94,7 @@ public void SetColumnizer (ILogLineColumnizer columnizer) DataGridViewTextBoxColumn commentColumn = new() { - HeaderText = "Bookmark Comment", + HeaderText = Resources.BookmarkWindow_UI_DataGridColumn_HeaderText, AutoSizeMode = DataGridViewAutoSizeColumnMode.None, Resizable = DataGridViewTriState.NotSet, DividerWidth = 1, @@ -84,7 +104,7 @@ public void SetColumnizer (ILogLineColumnizer columnizer) }; bookmarkDataGridView.Columns.Insert(1, commentColumn); - ShowCommentColumn(commentColumnCheckBox.Checked); + ShowCommentColumn(checkBoxCommentColumn.Checked); ResizeColumns(); } @@ -212,7 +232,7 @@ protected override void OnPaint (PaintEventArgs e) LineAlignment = StringAlignment.Center }; - e.Graphics.DrawString("No bookmarks in current file", SystemFonts.DialogFont, SystemBrushes.WindowText, ClientRectangle, sf); + e.Graphics.DrawString(Resources.BookmarkWindow_UI_NoBookmarksInCurrentFile, SystemFonts.DialogFont, SystemBrushes.WindowText, ClientRectangle, sf); } else { @@ -402,7 +422,7 @@ private void OnBookmarkGridViewKeyDown (object sender, KeyEventArgs e) { if (bookmarkDataGridView.Focused) { - bookmarkTextBox.Focus(); + _ = bookmarkTextBox.Focus(); e.Handled = true; } } @@ -537,7 +557,7 @@ private void OnBookmarkDataGridViewCellDoubleClick (object sender, DataGridViewC private void OnRemoveCommentsToolStripMenuItemClick (object sender, EventArgs e) { - if (MessageBox.Show("Really remove bookmark comments for selected lines?", "LogExpert", MessageBoxButtons.YesNo) == DialogResult.Yes) + if (MessageBox.Show(Resources.BookmarkWindow_UI_ReallyRemoveBookmarkCommentsForSelectedLines, Resources.LogExpert_Common_UI_Title_LogExpert, MessageBoxButtons.YesNo) == DialogResult.Yes) { foreach (DataGridViewRow row in bookmarkDataGridView.SelectedRows) { @@ -555,7 +575,7 @@ private void OnRemoveCommentsToolStripMenuItemClick (object sender, EventArgs e) private void OnCommentColumnCheckBoxCheckedChanged (object sender, EventArgs e) { - ShowCommentColumn(commentColumnCheckBox.Checked); + ShowCommentColumn(checkBoxCommentColumn.Checked); } private void BookmarkWindow_ClientSizeChanged (object sender, EventArgs e) diff --git a/src/LogExpert.UI/Dialogs/ChooseIconDlg.Designer.cs b/src/LogExpert.UI/Dialogs/ChooseIconDlg.Designer.cs index 6700865c..3e68a24f 100644 --- a/src/LogExpert.UI/Dialogs/ChooseIconDlg.Designer.cs +++ b/src/LogExpert.UI/Dialogs/ChooseIconDlg.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert.UI.Dialogs; +namespace LogExpert.UI.Dialogs; partial class ChooseIconDlg { @@ -32,8 +32,8 @@ private void InitializeComponent() this.iconListView = new System.Windows.Forms.ListView(); this.iconFileLabel = new System.Windows.Forms.Label(); this.buttonChooseIconFile = new System.Windows.Forms.Button(); - this.okButton = new System.Windows.Forms.Button(); - this.cancelButton = new System.Windows.Forms.Button(); + this.buttonOk = new System.Windows.Forms.Button(); + this.buttonCancel = new System.Windows.Forms.Button(); this.SuspendLayout(); // // iconListView @@ -58,7 +58,7 @@ private void InitializeComponent() this.iconFileLabel.Name = "iconFileLabel"; this.iconFileLabel.Size = new System.Drawing.Size(411, 35); this.iconFileLabel.TabIndex = 1; - this.iconFileLabel.Text = "label1"; + this.iconFileLabel.Text = "IconFileLabel"; // // buttonChooseIconFile // @@ -73,32 +73,32 @@ private void InitializeComponent() // // okButton // - this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.okButton.Location = new System.Drawing.Point(316, 226); - this.okButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.okButton.Name = "okButton"; - this.okButton.Size = new System.Drawing.Size(112, 35); - this.okButton.TabIndex = 3; - this.okButton.Text = "OK"; - this.okButton.UseVisualStyleBackColor = true; - this.okButton.Click += new System.EventHandler(this.OnOkButtonClick); + this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK; + this.buttonOk.Location = new System.Drawing.Point(316, 226); + this.buttonOk.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.buttonOk.Name = "okButton"; + this.buttonOk.Size = new System.Drawing.Size(112, 35); + this.buttonOk.TabIndex = 3; + this.buttonOk.Text = "OK"; + this.buttonOk.UseVisualStyleBackColor = true; + this.buttonOk.Click += new System.EventHandler(this.OnOkButtonClick); // // cancelButton // - this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancelButton.Location = new System.Drawing.Point(440, 226); - this.cancelButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.cancelButton.Name = "cancelButton"; - this.cancelButton.Size = new System.Drawing.Size(112, 35); - this.cancelButton.TabIndex = 4; - this.cancelButton.Text = "Cancel"; - this.cancelButton.UseVisualStyleBackColor = true; + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(440, 226); + this.buttonCancel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.buttonCancel.Name = "cancelButton"; + this.buttonCancel.Size = new System.Drawing.Size(112, 35); + this.buttonCancel.TabIndex = 4; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; // // ChooseIconDlg // this.ClientSize = new System.Drawing.Size(568, 278); - this.Controls.Add(this.cancelButton); - this.Controls.Add(this.okButton); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.buttonOk); this.Controls.Add(this.buttonChooseIconFile); this.Controls.Add(this.iconFileLabel); this.Controls.Add(this.iconListView); @@ -119,6 +119,6 @@ private void InitializeComponent() private System.Windows.Forms.ListView iconListView; private System.Windows.Forms.Label iconFileLabel; private System.Windows.Forms.Button buttonChooseIconFile; -private System.Windows.Forms.Button okButton; -private System.Windows.Forms.Button cancelButton; +private System.Windows.Forms.Button buttonOk; +private System.Windows.Forms.Button buttonCancel; } \ No newline at end of file diff --git a/src/LogExpert.UI/Dialogs/ChooseIconDlg.cs b/src/LogExpert.UI/Dialogs/ChooseIconDlg.cs index c1900fe6..f8be593b 100644 --- a/src/LogExpert.UI/Dialogs/ChooseIconDlg.cs +++ b/src/LogExpert.UI/Dialogs/ChooseIconDlg.cs @@ -1,6 +1,7 @@ -using LogExpert.UI.Extensions; using System.Runtime.Versioning; +using LogExpert.UI.Extensions; + namespace LogExpert.UI.Dialogs; [SupportedOSPlatform("windows")] @@ -12,7 +13,7 @@ internal partial class ChooseIconDlg : Form #region cTor - public ChooseIconDlg(string fileName) + public ChooseIconDlg (string fileName) { InitializeComponent(); @@ -20,6 +21,16 @@ public ChooseIconDlg(string fileName) AutoScaleMode = AutoScaleMode.Dpi; FileName = fileName; + + ApplyResources(); + } + + private void ApplyResources () + { + Text = Resources.ChooseIconDialog_UI_Text; + buttonChooseIconFile.Text = Resources.ChooseIconDialog_UI_Button_ChooseIconFile; + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; } #endregion @@ -34,7 +45,7 @@ public ChooseIconDlg(string fileName) #region Private Methods - private void FillIconList() + private void FillIconList () { iconListView.Items.Clear(); @@ -59,12 +70,13 @@ private void FillIconList() { ImageIndex = i }; - iconListView.Items.Add(item); + + _ = iconListView.Items.Add(item); } } } - private void DisposeIcons() + private void DisposeIcons () { var imageList = iconListView.LargeImageList; iconListView.LargeImageList = null; @@ -78,13 +90,13 @@ private void DisposeIcons() #region Events handler - private void ChooseIconDlg_Load(object sender, EventArgs e) + private void ChooseIconDlg_Load (object sender, EventArgs e) { FillIconList(); iconFileLabel.Text = FileName; } - private void OnButtonChooseIconFileClick(object sender, EventArgs e) + private void OnButtonChooseIconFileClick (object sender, EventArgs e) { OpenFileDialog dlg = new() { @@ -108,7 +120,7 @@ private void OnButtonChooseIconFileClick(object sender, EventArgs e) } } - private void OnOkButtonClick(object sender, EventArgs e) + private void OnOkButtonClick (object sender, EventArgs e) { IconIndex = iconListView.SelectedIndices.Count > 0 ? iconListView.SelectedIndices[0] : -1; diff --git a/src/LogExpert.UI/Dialogs/Eminus/Eminus.cs b/src/LogExpert.UI/Dialogs/Eminus/Eminus.cs index e16d7a78..40c8f4e2 100644 --- a/src/LogExpert.UI/Dialogs/Eminus/Eminus.cs +++ b/src/LogExpert.UI/Dialogs/Eminus/Eminus.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Net.Sockets; using System.Runtime.Serialization; using System.Runtime.Versioning; @@ -7,7 +8,7 @@ using Newtonsoft.Json; -//TODO: This whole Eminus folder is not in use. Can be deleted? What is it? +//See Logexpert Help Eminus Plugin for more information //[assembly: SupportedOSPlatform("windows")] namespace LogExpert.UI.Dialogs.Eminus; @@ -19,6 +20,10 @@ internal class Eminus : IContextMenuEntry, ILogExpertPluginConfigurator private const string DOT = "."; private const string DOUBLE_DOT = ":"; private const string DISABLED = "_"; + private const string AT = "at "; + private const string CREATED_IN = "created in "; + private const string NESTED = "Nested:"; + private const string EXCEPTION_OF_TYPE = "Exception of type"; private EminusConfig _config = new(); private EminusConfigDlg dlg; @@ -39,18 +44,18 @@ private XmlDocument BuildParam (ILogLine line) { var fullLogLine = line.FullLine; // no Java stacktrace but some special logging of our applications at work: - if (fullLogLine.Contains("Exception of type", StringComparison.CurrentCulture) || - fullLogLine.Contains("Nested:", StringComparison.CurrentCulture)) + if (fullLogLine.Contains(EXCEPTION_OF_TYPE, StringComparison.CurrentCulture) || + fullLogLine.Contains(NESTED, StringComparison.CurrentCulture)) { - var pos = fullLogLine.IndexOf("created in "); + var pos = fullLogLine.IndexOf(CREATED_IN, StringComparison.OrdinalIgnoreCase); if (pos == -1) { return null; } - pos += "created in ".Length; - var endPos = fullLogLine.IndexOf(DOT, pos); + pos += CREATED_IN.Length; + var endPos = fullLogLine.IndexOf(DOT, pos, StringComparison.OrdinalIgnoreCase); if (endPos == -1) { @@ -58,7 +63,7 @@ private XmlDocument BuildParam (ILogLine line) } var className = fullLogLine[pos..endPos]; - pos = fullLogLine.IndexOf(DOUBLE_DOT, pos); + pos = fullLogLine.IndexOf(DOUBLE_DOT, pos, StringComparison.OrdinalIgnoreCase); if (pos == -1) { @@ -70,12 +75,12 @@ private XmlDocument BuildParam (ILogLine line) return doc; } - if (fullLogLine.Contains("at ", StringComparison.CurrentCulture)) + if (fullLogLine.Contains(AT, StringComparison.OrdinalIgnoreCase)) { var str = fullLogLine.Trim(); string className = null; string lineNum = null; - var pos = str.IndexOf("at ") + 3; + var pos = str.IndexOf(AT, StringComparison.OrdinalIgnoreCase) + 3; str = str[pos..]; // remove 'at ' var idx = str.IndexOfAny(['(', '$', '<']); @@ -87,7 +92,7 @@ private XmlDocument BuildParam (ILogLine line) } else { - pos = str.LastIndexOf(DOT, idx); + pos = str.LastIndexOf(DOT, idx, StringComparison.OrdinalIgnoreCase); if (pos == -1) { return null; @@ -96,7 +101,7 @@ private XmlDocument BuildParam (ILogLine line) className = str[..pos]; } - idx = str.LastIndexOf(DOUBLE_DOT); + idx = str.LastIndexOf(DOUBLE_DOT, StringComparison.OrdinalIgnoreCase); if (idx == -1) { @@ -133,21 +138,21 @@ private XmlDocument BuildParam (ILogLine line) private XmlDocument BuildXmlDocument (string className, string lineNum) { XmlDocument xmlDoc = new(); - xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "yes"); + _ = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "yes"); var rootElement = xmlDoc.CreateElement("eminus"); - xmlDoc.AppendChild(rootElement); + _ = xmlDoc.AppendChild(rootElement); rootElement.SetAttribute("authKey", _config.Password); var loadElement = xmlDoc.CreateElement("loadclass"); loadElement.SetAttribute("mode", "dialog"); - rootElement.AppendChild(loadElement); + _ = rootElement.AppendChild(loadElement); var elemClassName = xmlDoc.CreateElement("classname"); var elemLineNum = xmlDoc.CreateElement("linenumber"); elemClassName.InnerText = className; elemLineNum.InnerText = lineNum; - loadElement.AppendChild(elemClassName); - loadElement.AppendChild(elemLineNum); + _ = loadElement.AppendChild(elemClassName); + _ = loadElement.AppendChild(elemLineNum); return xmlDoc; } @@ -155,29 +160,29 @@ private XmlDocument BuildXmlDocument (string className, string lineNum) #region IContextMenuEntry Member - public string GetMenuText (IList logLines, ILogLineColumnizer columnizer, ILogExpertCallback callback) + public string GetMenuText (IList loglines, ILogLineColumnizer columnizer, ILogExpertCallback callback) { //not used return string.Empty; } [SupportedOSPlatform("windows")] - public string GetMenuText (int logLinesCount, ILogLineColumnizer columnizer, ILogLine logline) + public string GetMenuText (int linesCount, ILogLineColumnizer columnizer, ILogLine logline) { - return logLinesCount == 1 && BuildParam(logline) != null - ? "Load class in Eclipse" - : $"{DISABLED}Load class in Eclipse"; + return linesCount == 1 && BuildParam(logline) != null + ? Resources.Eminus_UI_GetMenuText_LoadClassInEclipse + : string.Format(CultureInfo.InvariantCulture, Resources.Eminus_UI_GetMenuText_DISABLEDLoadClassInEclipse, DISABLED); } - public void MenuSelected (IList logLines, ILogLineColumnizer columnizer, ILogExpertCallback callback) + public void MenuSelected (IList loglines, ILogLineColumnizer columnizer, ILogExpertCallback callback) { //Not used } [SupportedOSPlatform("windows")] - public void MenuSelected (int logLinesCount, ILogLineColumnizer columnizer, ILogLine logline) + public void MenuSelected (int linesCount, ILogLineColumnizer columnizer, ILogLine logline) { - if (logLinesCount != 1) + if (linesCount != 1) { return; } @@ -186,25 +191,25 @@ public void MenuSelected (int logLinesCount, ILogLineColumnizer columnizer, ILog if (doc == null) { - MessageBox.Show("Cannot parse Java stack trace line", "LogExpert"); + _ = MessageBox.Show(Resources.Eminus_UI_CannotParseJavaStackTraceLine, Resources.LogExpert_Common_UI_Title_LogExpert); } else { try { - TcpClient client = new(_config.Host, _config.Port); - var stream = client.GetStream(); - StreamWriter writer = new(stream); + using TcpClient client = new(_config.Host, _config.Port); + using var stream = client.GetStream(); + using StreamWriter writer = new(stream); doc.Save(writer); - writer.Flush(); - stream.Flush(); - writer.Close(); - stream.Close(500); - client.Close(); } - catch (Exception e) + catch (Exception e) when (e is SocketException + or ArgumentNullException + or ArgumentOutOfRangeException + or InvalidOperationException + or ObjectDisposedException + or XmlException) { - MessageBox.Show(e.Message, "LogExpert"); + _ = MessageBox.Show(e.Message, Resources.LogExpert_Common_UI_Title_LogExpert); } } } @@ -232,7 +237,7 @@ public void LoadConfig (string configDir) } catch (SerializationException e) { - MessageBox.Show(e.Message, "Deserialize"); + _ = MessageBox.Show(e.Message, Resources.LogExpert_Common_UI_Title_Deserialize); _config = new EminusConfig(); } } @@ -258,11 +263,11 @@ public bool HasEmbeddedForm () } [SupportedOSPlatform("windows")] - public void ShowConfigForm (object panel) + public void ShowConfigForm (object parentPanel) { dlg = new EminusConfigDlg(tmpConfig) { - Parent = (Panel)panel + Parent = (Panel)parentPanel }; dlg.Show(); } @@ -281,7 +286,7 @@ public void ShowConfigDialog (object owner) Owner = (Form)owner }; - dlg.ShowDialog(); + _ = dlg.ShowDialog(); dlg.ApplyChanges(); } diff --git a/src/LogExpert.UI/Dialogs/Eminus/EminusConfigDlg.Designer.cs b/src/LogExpert.UI/Dialogs/Eminus/EminusConfigDlg.Designer.cs index 267dc40d..f37c02b4 100644 --- a/src/LogExpert.UI/Dialogs/Eminus/EminusConfigDlg.Designer.cs +++ b/src/LogExpert.UI/Dialogs/Eminus/EminusConfigDlg.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert +namespace LogExpert { partial class EminusConfigDlg { @@ -31,10 +31,10 @@ private void InitializeComponent() System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EminusConfigDlg)); this.hostTextBox = new System.Windows.Forms.TextBox(); this.passwordTextBox = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); + this.labelHost = new System.Windows.Forms.Label(); + this.labelPort = new System.Windows.Forms.Label(); + this.labelPassword = new System.Windows.Forms.Label(); + this.labelDescription = new System.Windows.Forms.Label(); this.portTextBox = new System.Windows.Forms.MaskedTextBox(); this.SuspendLayout(); // @@ -55,45 +55,45 @@ private void InitializeComponent() // // label1 // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(17, 72); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(29, 13); - this.label1.TabIndex = 5; - this.label1.Text = "Host"; + this.labelHost.AutoSize = true; + this.labelHost.Location = new System.Drawing.Point(17, 72); + this.labelHost.Name = "host"; + this.labelHost.Size = new System.Drawing.Size(29, 13); + this.labelHost.TabIndex = 5; + this.labelHost.Text = "Host"; // // label2 // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(17, 99); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(26, 13); - this.label2.TabIndex = 6; - this.label2.Text = "Port"; + this.labelPort.AutoSize = true; + this.labelPort.Location = new System.Drawing.Point(17, 99); + this.labelPort.Name = "port"; + this.labelPort.Size = new System.Drawing.Size(26, 13); + this.labelPort.TabIndex = 6; + this.labelPort.Text = "Port"; // // label3 // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(17, 126); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(53, 13); - this.label3.TabIndex = 7; - this.label3.Text = "Password"; + this.labelPassword.AutoSize = true; + this.labelPassword.Location = new System.Drawing.Point(17, 126); + this.labelPassword.Name = "password"; + this.labelPassword.Size = new System.Drawing.Size(53, 13); + this.labelPassword.TabIndex = 7; + this.labelPassword.Text = "Password"; // // label4 // - this.label4.Location = new System.Drawing.Point(13, 13); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(276, 41); - this.label4.TabIndex = 8; - this.label4.Text = "Enter the host and the port where the Eclipse plugin is listening to. If a passwo" + + this.labelDescription.Location = new System.Drawing.Point(13, 13); + this.labelDescription.Name = "description"; + this.labelDescription.Size = new System.Drawing.Size(276, 41); + this.labelDescription.TabIndex = 8; + this.labelDescription.Text = "Enter the host and the port where the Eclipse plugin is listening to. If a passwo" + "rd is configured, enter the password too."; // // portTextBox // this.portTextBox.Location = new System.Drawing.Point(76, 96); this.portTextBox.Mask = "99999"; - this.portTextBox.Name = "portTextBox"; + this.portTextBox.Name = "port"; this.portTextBox.Size = new System.Drawing.Size(100, 20); this.portTextBox.TabIndex = 1; // @@ -102,10 +102,10 @@ private void InitializeComponent() this.ClientSize = new System.Drawing.Size(295, 187); this.ControlBox = false; this.Controls.Add(this.portTextBox); - this.Controls.Add(this.label4); - this.Controls.Add(this.label3); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); + this.Controls.Add(this.labelDescription); + this.Controls.Add(this.labelPassword); + this.Controls.Add(this.labelPort); + this.Controls.Add(this.labelHost); this.Controls.Add(this.passwordTextBox); this.Controls.Add(this.hostTextBox); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; @@ -126,10 +126,10 @@ private void InitializeComponent() private System.Windows.Forms.TextBox hostTextBox; private System.Windows.Forms.TextBox passwordTextBox; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label labelHost; + private System.Windows.Forms.Label labelPort; + private System.Windows.Forms.Label labelPassword; + private System.Windows.Forms.Label labelDescription; private System.Windows.Forms.MaskedTextBox portTextBox; } } \ No newline at end of file diff --git a/src/LogExpert.UI/Dialogs/Eminus/EminusConfigDlg.cs b/src/LogExpert.UI/Dialogs/Eminus/EminusConfigDlg.cs index 841a340a..ffb56c4d 100644 --- a/src/LogExpert.UI/Dialogs/Eminus/EminusConfigDlg.cs +++ b/src/LogExpert.UI/Dialogs/Eminus/EminusConfigDlg.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Runtime.Versioning; using LogExpert.UI.Dialogs.Eminus; @@ -7,10 +8,6 @@ namespace LogExpert; [SupportedOSPlatform("windows")] internal partial class EminusConfigDlg : Form { - #region Fields - - #endregion - #region cTor public EminusConfigDlg (EminusConfig config) @@ -21,6 +18,7 @@ public EminusConfigDlg (EminusConfig config) AutoScaleMode = AutoScaleMode.Dpi; InitializeComponent(); + LoadResources(); TopLevel = false; Config = config; @@ -32,6 +30,15 @@ public EminusConfigDlg (EminusConfig config) ResumeLayout(); } + private void LoadResources () + { + Text = Resources.EminusConfigDlg_UI_Text; + labelHost.Text = Resources.EminusConfigDlg_UI_Label_Host; + labelPort.Text = Resources.EminusConfigDlg_UI_Label_Port; + labelPassword.Text = Resources.EminusConfigDlg_UI_Label_Password; + labelDescription.Text = Resources.EminusConfigDlg_UI_Label_Description; + } + #endregion #region Properties @@ -47,7 +54,7 @@ public void ApplyChanges () Config.Host = hostTextBox.Text; try { - Config.Port = short.Parse(portTextBox.Text); + Config.Port = short.Parse(portTextBox.Text, NumberStyles.None, CultureInfo.InvariantCulture); } catch (FormatException) { diff --git a/src/LogExpert.UI/Dialogs/ExceptionWindow.Designer.cs b/src/LogExpert.UI/Dialogs/ExceptionWindow.Designer.cs index 7c7b4c72..d765d20b 100644 --- a/src/LogExpert.UI/Dialogs/ExceptionWindow.Designer.cs +++ b/src/LogExpert.UI/Dialogs/ExceptionWindow.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert.UI.Dialogs; +namespace LogExpert.UI.Dialogs; partial class ExceptionWindow { @@ -30,7 +30,7 @@ private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ExceptionWindow)); this.stackTraceTextBox = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); + this.labelErrorMessage = new System.Windows.Forms.Label(); this.okButton = new System.Windows.Forms.Button(); this.copyButton = new System.Windows.Forms.Button(); this.SuspendLayout(); @@ -50,12 +50,12 @@ private void InitializeComponent() // // label1 // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(13, 13); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(310, 13); - this.label1.TabIndex = 1; - this.label1.Text = "An unhandled error has occured. Please report to the developer."; + this.labelErrorMessage.AutoSize = true; + this.labelErrorMessage.Location = new System.Drawing.Point(13, 13); + this.labelErrorMessage.Name = "label1"; + this.labelErrorMessage.Size = new System.Drawing.Size(310, 13); + this.labelErrorMessage.TabIndex = 1; + this.labelErrorMessage.Text = "An unhandled error has occured. Please report to the developer."; // // okButton // @@ -65,7 +65,7 @@ private void InitializeComponent() this.okButton.Name = "okButton"; this.okButton.Size = new System.Drawing.Size(75, 23); this.okButton.TabIndex = 2; - this.okButton.Text = "Close"; + this.okButton.Text = "&Close"; this.okButton.UseVisualStyleBackColor = true; // // copyButton @@ -77,7 +77,7 @@ private void InitializeComponent() this.copyButton.TabIndex = 4; this.copyButton.Text = "Copy to clipboard"; this.copyButton.UseVisualStyleBackColor = true; - this.copyButton.Click += new System.EventHandler(this.copyButton_Click); + this.copyButton.Click += new System.EventHandler(this.OnCopyButtonClick); // // ExceptionWindow // @@ -85,7 +85,7 @@ private void InitializeComponent() this.ClientSize = new System.Drawing.Size(464, 300); this.Controls.Add(this.copyButton); this.Controls.Add(this.okButton); - this.Controls.Add(this.label1); + this.Controls.Add(this.labelErrorMessage); this.Controls.Add(this.stackTraceTextBox); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; @@ -101,7 +101,7 @@ private void InitializeComponent() #endregion private System.Windows.Forms.TextBox stackTraceTextBox; -private System.Windows.Forms.Label label1; +private System.Windows.Forms.Label labelErrorMessage; private System.Windows.Forms.Button okButton; private System.Windows.Forms.Button copyButton; } \ No newline at end of file diff --git a/src/LogExpert.UI/Dialogs/ExceptionWindow.cs b/src/LogExpert.UI/Dialogs/ExceptionWindow.cs index 486f68b0..7e283d33 100644 --- a/src/LogExpert.UI/Dialogs/ExceptionWindow.cs +++ b/src/LogExpert.UI/Dialogs/ExceptionWindow.cs @@ -18,19 +18,33 @@ public partial class ExceptionWindow : Form public ExceptionWindow (string errorText, string stackTrace) { SuspendLayout(); - InitializeComponent(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); + ApplyResources(); + _errorText = errorText; _stackTrace = stackTrace; stackTraceTextBox.Text = _errorText + @"\n\n" + _stackTrace; stackTraceTextBox.Select(0, 0); + ResumeLayout(); } + private void ApplyResources () + { + // Dialog title + Text = Resources.ExceptionWindow_UI_Title; + + labelErrorMessage.Text = Resources.ExceptionWindow_UI_Label_ErrorMessage; + + okButton.Text = Resources.LogExpert_Common_UI_Button_OK; + copyButton.Text = Resources.ExceptionWindow_UI_Button_CopyToClipboard; + } + #endregion #region Private Methods @@ -44,7 +58,7 @@ private void CopyToClipboard () #region Events handler - private void copyButton_Click (object sender, EventArgs e) + private void OnCopyButtonClick (object sender, EventArgs e) { CopyToClipboard(); } diff --git a/src/LogExpert.UI/Dialogs/FilterColumnChooser.cs b/src/LogExpert.UI/Dialogs/FilterColumnChooser.cs index 1aea2b15..271ec7b1 100644 --- a/src/LogExpert.UI/Dialogs/FilterColumnChooser.cs +++ b/src/LogExpert.UI/Dialogs/FilterColumnChooser.cs @@ -1,7 +1,7 @@ -using LogExpert.Core.Classes.Filter; - using System.Runtime.Versioning; +using LogExpert.Core.Classes.Filter; + namespace LogExpert.UI.Dialogs; [SupportedOSPlatform("windows")] @@ -16,39 +16,66 @@ internal partial class FilterColumnChooser : Form #region cTor - //TODO: add Suspend and ResumeLayout() - public FilterColumnChooser(FilterParams filterParams) + public FilterColumnChooser (FilterParams filterParams) { + SuspendLayout(); + InitializeComponent(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + ApplyResources(); + columnListBox.ItemHeight = columnListBox.Font.Height; _columnizer = filterParams.CurrentColumnizer; _filterParams = filterParams; + ResumeLayout(); + Init(); } + private void ApplyResources () + { + Text = Resources.FilterColumnChooser_UI_Title; + + groupBox1.Text = Resources.FilterColumnChooser_UI_GroupBox_OnEmptyColumns; + + checkBoxExactMatch.Text = Resources.FilterColumnChooser_UI_CheckBox_ExactMatch; + + emptyColumnNoHitRadioButton.Text = Resources.FilterColumnChooser_UI_RadioButton_NoHit; + emptyColumnHitRadioButton.Text = Resources.FilterColumnChooser_UI_RadioButton_SearchHit; + emptyColumnUsePrevRadioButton.Text = Resources.FilterColumnChooser_UI_RadioButton_UsePrevContent; + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; + + toolTipListBox.ToolTipTitle = Resources.FilterColumnChooser_UI_ToolTip_Title_Columns; + toolTipListBox.SetToolTip(columnListBox, Resources.FilterColumnChooser_UI_ToolTip_ColumnListBox); + toolTipEmptyColumnNoHit.SetToolTip(emptyColumnNoHitRadioButton, Resources.FilterColumnChooser_UI_ToolTip_NoHit); + toolTipSearchHit.SetToolTip(emptyColumnHitRadioButton, Resources.FilterColumnChooser_UI_ToolTip_SearchHit); + toolTipPrevContent.SetToolTip(emptyColumnUsePrevRadioButton, Resources.FilterColumnChooser_UI_ToolTip_UsePrevContent); + toolTipExactMatch.SetToolTip(checkBoxExactMatch, Resources.FilterColumnChooser_UI_ToolTip_ExactMatch); + } + #endregion #region Private Methods - private void Init() + private void Init () { var count = _columnizer.GetColumnCount(); var names = _columnizer.GetColumnNames(); for (var i = 0; i < count; ++i) { - columnListBox.Items.Add(names[i], _filterParams.ColumnList.Contains(i)); + _ = columnListBox.Items.Add(names[i], _filterParams.ColumnList.Contains(i)); } emptyColumnUsePrevRadioButton.Checked = _filterParams.EmptyColumnUsePrev; emptyColumnHitRadioButton.Checked = _filterParams.EmptyColumnHit; - emptyColumnNoHitRadioButton.Checked = _filterParams.EmptyColumnHit == false && _filterParams.EmptyColumnUsePrev == false; + emptyColumnNoHitRadioButton.Checked = !_filterParams.EmptyColumnHit && !_filterParams.EmptyColumnUsePrev; checkBoxExactMatch.Checked = _filterParams.ExactColumnMatch; } @@ -56,7 +83,7 @@ private void Init() #region Events handler - private void OnOkButtonClick(object sender, EventArgs e) + private void OnOkButtonClick (object sender, EventArgs e) { _filterParams.ColumnList.Clear(); diff --git a/src/LogExpert.UI/Dialogs/FilterSelectorForm.cs b/src/LogExpert.UI/Dialogs/FilterSelectorForm.cs index feba7797..e813aa0a 100644 --- a/src/LogExpert.UI/Dialogs/FilterSelectorForm.cs +++ b/src/LogExpert.UI/Dialogs/FilterSelectorForm.cs @@ -18,21 +18,25 @@ internal partial class FilterSelectorForm : Form //TODO: Can this be changed to public FilterSelectorForm (IList existingColumnizerList, ILogLineColumnizer currentColumnizer, ILogLineColumnizerCallback callback, IConfigManager configManager) { + SuspendLayout(); + SelectedColumnizer = currentColumnizer; _callback = callback; InitializeComponent(); - ConfigManager = configManager; - AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + ApplyResources(); + + ConfigManager = configManager; + filterComboBox.SelectedIndexChanged += OnFilterComboBoxSelectedIndexChanged; // for the currently selected columnizer use the current instance and not the template instance from // columnizer registry. This ensures that changes made in columnizer config dialogs // will apply to the current instance - _columnizerList = new List(); + _columnizerList = []; foreach (var col in existingColumnizerList) { @@ -41,7 +45,7 @@ public FilterSelectorForm (IList existingColumnizerList, ILo foreach (var col in _columnizerList) { - filterComboBox.Items.Add(col); + _ = filterComboBox.Items.Add(col); } foreach (var columnizer in _columnizerList) @@ -52,6 +56,18 @@ public FilterSelectorForm (IList existingColumnizerList, ILo break; } } + + ResumeLayout(); + } + + private void ApplyResources () + { + Text = Resources.FilterSelectorForm_UI_Title; + label1.Text = Resources.FilterSelectorForm_UI_Label_ChooseColumnizer; + applyToAllCheckBox.Text = Resources.FilterSelectorForm_UI_CheckBox_ApplyToAll; + configButton.Text = Resources.FilterSelectorForm_UI_Button_Config; + okButton.Text = Resources.LogExpert_Common_UI_Button_OK; + cancelButton.Text = Resources.LogExpert_Common_UI_Button_Cancel; } #endregion @@ -74,7 +90,12 @@ private void OnFilterComboBoxSelectedIndexChanged (object sender, EventArgs e) var col = _columnizerList[filterComboBox.SelectedIndex]; SelectedColumnizer = col; var description = col.GetDescription(); - description += "\r\nSupports timeshift: " + (SelectedColumnizer.IsTimeshiftImplemented() ? "Yes" : "No"); + var timeshiftSupported = SelectedColumnizer.IsTimeshiftImplemented() + ? Resources.FilterSelectorForm_UI_Text_SupportsTimeshift_Yes + : Resources.FilterSelectorForm_UI_Text_SupportsTimeshift_No; + description += string.Format(System.Globalization.CultureInfo.CurrentCulture, + Resources.FilterSelectorForm_UI_Text_SupportsTimeshift_Format, + timeshiftSupported); commentTextBox.Text = description; configButton.Enabled = SelectedColumnizer is IColumnizerConfigurator; } diff --git a/src/LogExpert.UI/Dialogs/GotoLineDialog.Designer.cs b/src/LogExpert.UI/Dialogs/GotoLineDialog.Designer.cs index 799a964e..759ded2a 100644 --- a/src/LogExpert.UI/Dialogs/GotoLineDialog.Designer.cs +++ b/src/LogExpert.UI/Dialogs/GotoLineDialog.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert.UI.Dialogs; +namespace LogExpert.UI.Dialogs; partial class GotoLineDialog { @@ -52,9 +52,9 @@ private void InitializeComponent() this.buttonOk.Name = "buttonOk"; this.buttonOk.Size = new System.Drawing.Size(75, 30); this.buttonOk.TabIndex = 2; - this.buttonOk.Text = "OK"; + this.buttonOk.Text = "&OK"; this.buttonOk.UseVisualStyleBackColor = true; - this.buttonOk.Click += new System.EventHandler(this.okButton_Click); + this.buttonOk.Click += new System.EventHandler(this.OnOkButtonClick); // // buttonCancel // @@ -65,7 +65,7 @@ private void InitializeComponent() this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(75, 30); this.buttonCancel.TabIndex = 3; - this.buttonCancel.Text = "Cancel"; + this.buttonCancel.Text = "&Cancel"; this.buttonCancel.UseVisualStyleBackColor = true; // // lineNumberTextBox diff --git a/src/LogExpert.UI/Dialogs/GotoLineDialog.cs b/src/LogExpert.UI/Dialogs/GotoLineDialog.cs index 8b7d0b36..c6de8082 100644 --- a/src/LogExpert.UI/Dialogs/GotoLineDialog.cs +++ b/src/LogExpert.UI/Dialogs/GotoLineDialog.cs @@ -5,24 +5,36 @@ namespace LogExpert.UI.Dialogs; [SupportedOSPlatform("windows")] internal partial class GotoLineDialog : Form { - #region Fields - - #endregion - #region cTor - public GotoLineDialog(Form parent) + public GotoLineDialog (Form parent) { - InitializeComponent(); + SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); + ApplyResources(); + Owner = parent; + + ResumeLayout(); } #endregion + private void ApplyResources () + { + // Dialog title + Text = Resources.GotoLineDialog_UI_Title; + + labelLineNumber.Text = Resources.GotoLineDialog_UI_Label_LineNumber; + + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; + } + #region Properties public int Line { get; private set; } @@ -31,20 +43,15 @@ public GotoLineDialog(Form parent) #region Events handler - private void GotoLineDialog_Load(object sender, EventArgs e) + private void GotoLineDialog_Load (object sender, EventArgs e) { } - private void okButton_Click(object sender, EventArgs e) + private void OnOkButtonClick (object sender, EventArgs e) { - try - { - Line = int.Parse(lineNumberTextBox.Text); - } - catch (Exception) - { - Line = -1; - } + Line = int.TryParse(lineNumberTextBox.Text, out int line) + ? line + : -1; } #endregion diff --git a/src/LogExpert.UI/Dialogs/HighlightDialog.Designer.cs b/src/LogExpert.UI/Dialogs/HighlightDialog.Designer.cs index d14b2bdd..b729c003 100644 --- a/src/LogExpert.UI/Dialogs/HighlightDialog.Designer.cs +++ b/src/LogExpert.UI/Dialogs/HighlightDialog.Designer.cs @@ -65,7 +65,7 @@ private void InitializeComponent () checkBoxStopTail = new CheckBox(); checkBoxBookmark = new CheckBox(); helpProvider = new HelpProvider(); - groupBox4 = new GroupBox(); + groupBoxGroups = new GroupBox(); btnImportGroup = new Button(); btnExportGroup = new Button(); btnMoveGroupDown = new Button(); @@ -80,7 +80,7 @@ private void InitializeComponent () groupBoxLineMatchCriteria.SuspendLayout(); groupBoxColoring.SuspendLayout(); groupBoxActions.SuspendLayout(); - groupBox4.SuspendLayout(); + groupBoxGroups.SuspendLayout(); pnlBackground.SuspendLayout(); SuspendLayout(); // @@ -490,24 +490,24 @@ private void InitializeComponent () // // groupBox4 // - groupBox4.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - groupBox4.Controls.Add(btnImportGroup); - groupBox4.Controls.Add(btnExportGroup); - groupBox4.Controls.Add(btnMoveGroupDown); - groupBox4.Controls.Add(btnMoveGroupUp); - groupBox4.Controls.Add(labelAssignNamesToGroups); - groupBox4.Controls.Add(btnCopyGroup); - groupBox4.Controls.Add(btnDeleteGroup); - groupBox4.Controls.Add(btnNewGroup); - groupBox4.Controls.Add(comboBoxGroups); - groupBox4.Location = new Point(18, 5); - groupBox4.Margin = new Padding(4, 5, 4, 5); - groupBox4.Name = "groupBox4"; - groupBox4.Padding = new Padding(4, 5, 4, 5); - groupBox4.Size = new Size(607, 114); - groupBox4.TabIndex = 22; - groupBox4.TabStop = false; - groupBox4.Text = "Groups"; + groupBoxGroups.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + groupBoxGroups.Controls.Add(btnImportGroup); + groupBoxGroups.Controls.Add(btnExportGroup); + groupBoxGroups.Controls.Add(btnMoveGroupDown); + groupBoxGroups.Controls.Add(btnMoveGroupUp); + groupBoxGroups.Controls.Add(labelAssignNamesToGroups); + groupBoxGroups.Controls.Add(btnCopyGroup); + groupBoxGroups.Controls.Add(btnDeleteGroup); + groupBoxGroups.Controls.Add(btnNewGroup); + groupBoxGroups.Controls.Add(comboBoxGroups); + groupBoxGroups.Location = new Point(18, 5); + groupBoxGroups.Margin = new Padding(4, 5, 4, 5); + groupBoxGroups.Name = "groupBox4"; + groupBoxGroups.Padding = new Padding(4, 5, 4, 5); + groupBoxGroups.Size = new Size(607, 114); + groupBoxGroups.TabIndex = 22; + groupBoxGroups.TabStop = false; + groupBoxGroups.Text = "Groups"; // // btnImportGroup // @@ -641,7 +641,7 @@ private void InitializeComponent () pnlBackground.Controls.Add(groupBoxLineMatchCriteria); pnlBackground.Controls.Add(groupBoxColoring); pnlBackground.Controls.Add(groupBoxActions); - pnlBackground.Controls.Add(groupBox4); + pnlBackground.Controls.Add(groupBoxGroups); pnlBackground.Dock = DockStyle.Fill; pnlBackground.Location = new Point(0, 0); pnlBackground.Name = "pnlBackground"; @@ -674,8 +674,8 @@ private void InitializeComponent () groupBoxColoring.PerformLayout(); groupBoxActions.ResumeLayout(false); groupBoxActions.PerformLayout(); - groupBox4.ResumeLayout(false); - groupBox4.PerformLayout(); + groupBoxGroups.ResumeLayout(false); + groupBoxGroups.PerformLayout(); pnlBackground.ResumeLayout(false); ResumeLayout(false); } @@ -710,7 +710,7 @@ private void InitializeComponent () private System.Windows.Forms.CheckBox checkBoxPlugin; private System.Windows.Forms.Button btnSelectPlugin; private System.Windows.Forms.Button btnBookmarkComment; - private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.GroupBox groupBoxGroups; private System.Windows.Forms.ComboBox comboBoxGroups; private System.Windows.Forms.Button btnDeleteGroup; private System.Windows.Forms.Button btnNewGroup; diff --git a/src/LogExpert.UI/Dialogs/HighlightDialog.cs b/src/LogExpert.UI/Dialogs/HighlightDialog.cs index 14438680..ce596646 100644 --- a/src/LogExpert.UI/Dialogs/HighlightDialog.cs +++ b/src/LogExpert.UI/Dialogs/HighlightDialog.cs @@ -1,4 +1,6 @@ +using System.Globalization; using System.Runtime.Versioning; +using System.Security; using System.Text.RegularExpressions; using LogExpert.Core.Classes.Highlight; @@ -8,15 +10,11 @@ using LogExpert.UI.Dialogs; using LogExpert.UI.Entities; -using NLog; - namespace LogExpert.Dialogs; [SupportedOSPlatform("windows")] internal partial class HighlightDialog : Form { - private static readonly ILogger _logger = LogManager.GetCurrentClassLogger(); - #region Private Fields private readonly Image _applyButtonImage; @@ -31,15 +29,67 @@ internal partial class HighlightDialog : Form public HighlightDialog (IConfigManager configManager) { - InitializeComponent(); + SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + + InitializeComponent(); + + ApplyResources(); + ConfigManager = configManager; Load += OnHighlightDialogLoad; listBoxHighlight.DrawItem += OnHighlightListBoxDrawItem; _applyButtonImage = btnApply.Image; btnApply.Image = null; + + ResumeLayout(); + } + + private void ApplyResources () + { + // Dialog + Text = Resources.HighlightDialog_UI_Title; + + btnOk.Text = Resources.LogExpert_Common_UI_Button_OK; + btnCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; + btnAdd.Text = Resources.LogExpert_Common_UI_Button_Add; + btnDelete.Text = Resources.LogExpert_Common_UI_Button_Delete; + btnMoveUp.Text = Resources.LogExpert_Common_UI_Button_MoveUp; + btnMoveDown.Text = Resources.LogExpert_Common_UI_Button_MoveDown; + btnApply.Text = Resources.LogExpert_Common_UI_Button_Apply; + btnCustomForeColor.Text = Resources.HighlightDialog_UI_Button_CustomForeColor; + btnCustomBackColor.Text = Resources.HighlightDialog_UI_Button_CustomBackColor; + btnBookmarkComment.Text = Resources.HighlightDialog_UI_Button_BookmarkComment; + btnSelectPlugin.Text = Resources.HighlightDialog_UI_Button_SelectPlugin; + btnImportGroup.Text = Resources.LogExpert_Common_UI_Button_Import; + btnExportGroup.Text = Resources.LogExpert_Common_UI_Button_Export; + btnMoveGroupDown.Text = Resources.HighlightDialog_UI_Button_GroupDown; + btnMoveGroupUp.Text = Resources.HighlightDialog_UI_Button_GroupUp; + btnCopyGroup.Text = Resources.HighlightDialog_UI_Button_Copy; + btnDeleteGroup.Text = Resources.HighlightDialog_UI_Button_DeleteGroup; + btnNewGroup.Text = Resources.HighlightDialog_UI_Button_NewGroup; + + labelForgroundColor.Text = Resources.HighlightDialog_UI_Label_ForegroundColor; + labelBackgroundColor.Text = Resources.HighlightDialog_UI_Label_BackgroundColor; + labelSearchString.Text = Resources.HighlightDialog_UI_Label_SearchString; + labelAssignNamesToGroups.Text = Resources.HighlightDialog_UI_Label_AssignNamesToGroups; + + checkBoxRegex.Text = Resources.HighlightDialog_UI_CheckBox_RegEx; + checkBoxCaseSensitive.Text = Resources.HighlightDialog_UI_CheckBox_CaseSensitive; + checkBoxDontDirtyLed.Text = Resources.HighlightDialog_UI_CheckBox_DontDirtyLed; + checkBoxBookmark.Text = Resources.HighlightDialog_UI_CheckBox_Bookmark; + checkBoxStopTail.Text = Resources.HighlightDialog_UI_CheckBox_StopTail; + checkBoxPlugin.Text = Resources.HighlightDialog_UI_CheckBox_Plugin; + checkBoxWordMatch.Text = Resources.HighlightDialog_UI_CheckBox_WordMatch; + checkBoxBold.Text = Resources.HighlightDialog_UI_CheckBox_Bold; + checkBoxNoBackground.Text = Resources.HighlightDialog_UI_CheckBox_NoBackground; + + groupBoxLineMatchCriteria.Text = Resources.HighlightDialog_UI_GroupBox_LineMatchCriteria; + groupBoxColoring.Text = Resources.HighlightDialog_UI_GroupBox_Coloring; + groupBoxActions.Text = Resources.HighlightDialog_UI_GroupBox_Actions; + groupBoxGroups.Text = Resources.HighlightDialog_UI_GroupBox_Groups; } #endregion @@ -85,8 +135,11 @@ private void OnBtnApplyClick (object sender, EventArgs e) private void OnBtnBookmarkCommentClick (object sender, EventArgs e) { - BookmarkCommentDlg dlg = new(); - dlg.Comment = _bookmarkComment; + BookmarkCommentDlg dlg = new() + { + Comment = _bookmarkComment + }; + if (dlg.ShowDialog() == DialogResult.OK) { _bookmarkComment = dlg.Comment; @@ -99,7 +152,7 @@ private void OnBtnCopyGroupClick (object sender, EventArgs e) if (comboBoxGroups.SelectedIndex >= 0 && comboBoxGroups.SelectedIndex < HighlightGroupList.Count) { var newGroup = (HighlightGroup)HighlightGroupList[comboBoxGroups.SelectedIndex].Clone(); - newGroup.GroupName = "Copy of " + newGroup.GroupName; + newGroup.GroupName = $"{Resources.HighlightDialog_UI_Snippet_CopyOf} {newGroup.GroupName}"; HighlightGroupList.Add(newGroup); FillGroupComboBox(); @@ -148,10 +201,10 @@ private void OnBtnExportGroupClick (object sender, EventArgs e) { SaveFileDialog dlg = new() { - Title = @"Export Settings to file", + Title = Resources.HighlightDialog_UI_Title_ExportSettings, DefaultExt = "json", AddExtension = true, - Filter = @"Settings (*.json)|*.json|All files (*.*)|*.*" + Filter = Resources.HighlightDialog_UI_Export_Filter }; if (dlg.ShowDialog() == DialogResult.OK) @@ -218,10 +271,14 @@ private void OnBtnImportGroupClick (object sender, EventArgs e) { fileInfo = new FileInfo(dlg.FileName); } - catch (Exception ex) + catch (Exception ex) when (ex is ArgumentNullException + or SecurityException + or ArgumentException + or UnauthorizedAccessException + or PathTooLongException + or NotSupportedException) { - MessageBox.Show(this, $@"Settings could not be imported: {ex}", @"LogExpert"); - _logger.Error($"Error while trying to access file: {dlg.FileName}: {ex}"); + _ = MessageBox.Show(this, Resources.HighlightDialog_UI_SettingsCouldNotBeImported, Resources.LogExpert_Common_UI_Title_LogExpert); return; } @@ -232,7 +289,8 @@ private void OnBtnImportGroupClick (object sender, EventArgs e) FillGroupComboBox(); - MessageBox.Show(this, @"Settings imported", @"LogExpert"); + _ = MessageBox.Show(this, Resources.HighlightDialog_UI_SettingsImported, Resources.LogExpert_Common_UI_Title_LogExpert); + } private void OnBtnMoveDownClick (object sender, EventArgs e) @@ -265,7 +323,7 @@ private void OnBtnMoveUpClick (object sender, EventArgs e) private void OnBtnNewGroupClick (object sender, EventArgs e) { // Propose a unique name - const string baseName = "New group"; + var baseName = Resources.HighlightDialog_UI_NewGroup_BaseName; var name = baseName; var uniqueName = false; var i = 1; @@ -479,16 +537,22 @@ private void AddNewEntry () NoBackground = checkBoxNoBackground.Checked }; - listBoxHighlight.Items.Add(entry); + _ = listBoxHighlight.Items.Add(entry); // Select the newly created item _currentGroup.HighlightEntryList.Add(entry); listBoxHighlight.SelectedItem = entry; } - catch (Exception ex) + catch (Exception ex) when (ex is ArgumentException + or RegexMatchTimeoutException + or ArgumentNullException + or InvalidOperationException + or SystemException) { - _logger.Error(ex, "Error during add of highlight entry"); - MessageBox.Show($"Error during add of entry.\r\n{ex.Message}"); + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.HighlightDialog_UI_ErrorDuringAddOfHighLightEntry, ex.Message), + Resources.LogExpert_Common_UI_Title_Error, + MessageBoxButtons.OK, + MessageBoxIcon.Error); } } } @@ -504,20 +568,22 @@ private void CheckRegex () { if (string.IsNullOrWhiteSpace(textBoxSearchString.Text)) { - throw new ArgumentException("Regex value is null or whitespace"); + throw new ArgumentException(Resources.HighlightDialog_RegexError); } - // ReSharper disable once ReturnValueOfPureMethodIsNotUsed - Regex.IsMatch("", textBoxSearchString.Text); + _ = Regex.IsMatch(string.Empty, textBoxSearchString.Text); } } - private void ChooseColor (ColorComboBox comboBox) + private static void ChooseColor (ColorComboBox comboBox) { - ColorDialog colorDialog = new(); - colorDialog.AllowFullOpen = true; - colorDialog.ShowHelp = false; - colorDialog.Color = comboBox.CustomColor; + ColorDialog colorDialog = new() + { + AllowFullOpen = true, + ShowHelp = false, + Color = comboBox.CustomColor + }; + if (colorDialog.ShowDialog() == DialogResult.OK) { comboBox.CustomColor = colorDialog.Color; @@ -545,7 +611,7 @@ private void FillGroupComboBox () foreach (var group in HighlightGroupList) { - comboBoxGroups.Items.Add(group); + _ = comboBoxGroups.Items.Add(group); } ReEvaluateGroupButtonStates(); @@ -558,21 +624,20 @@ private void FillHighlightListBox () { foreach (var entry in _currentGroup.HighlightEntryList) { - listBoxHighlight.Items.Add(entry); + _ = listBoxHighlight.Items.Add(entry); } } } private void InitData () { - const string def = "[Default]"; HighlightGroupList ??= []; if (HighlightGroupList.Count == 0) { HighlightGroup highlightGroup = new() { - GroupName = def, + GroupName = Resources.HighlightDialog_UI_DefaultGroupName, HighlightEntryList = [] }; @@ -585,7 +650,7 @@ private void InitData () var groupToSelect = PreSelectedGroupName; if (string.IsNullOrEmpty(groupToSelect)) { - groupToSelect = def; + groupToSelect = Resources.HighlightDialog_UI_DefaultGroupName; } foreach (var group in HighlightGroupList) @@ -657,10 +722,13 @@ private void SaveEntry () entry.NoBackground = checkBoxNoBackground.Checked; listBoxHighlight.Refresh(); } - catch (Exception ex) + catch (Exception ex) when (ex is ArgumentException + or RegexMatchTimeoutException + or ArgumentNullException + or InvalidOperationException + or SystemException) { - _logger.Error(ex, "Error during save of save highlight entry"); - MessageBox.Show($"Error during save of entry.\r\n{ex.Message}"); + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.HighlightDialog_UI_ErrorDuringSavingOfHighlightEntry, ex.Message), Resources.LogExpert_Common_UI_Title_Error); } } diff --git a/src/LogExpert.UI/Dialogs/ImportSettingsDialog.cs b/src/LogExpert.UI/Dialogs/ImportSettingsDialog.cs index e7200fb4..7f7aab9c 100644 --- a/src/LogExpert.UI/Dialogs/ImportSettingsDialog.cs +++ b/src/LogExpert.UI/Dialogs/ImportSettingsDialog.cs @@ -1,7 +1,7 @@ -using LogExpert.Core.Config; - using System.Runtime.Versioning; +using LogExpert.Core.Config; + namespace LogExpert.UI.Dialogs; [SupportedOSPlatform("windows")] @@ -9,13 +9,17 @@ internal partial class ImportSettingsDialog : Form { #region cTor - public ImportSettingsDialog(ExportImportFlags importFlags) + public ImportSettingsDialog (ExportImportFlags importFlags) { - InitializeComponent(); SuspendLayout(); + + InitializeComponent(); + AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + ApplyResources(); + ImportFlags = importFlags; FileName = string.Empty; @@ -36,6 +40,22 @@ public ImportSettingsDialog(ExportImportFlags importFlags) ResumeLayout(); } + private void ApplyResources () + { + Text = Resources.ImportSettingsDialog_UI_Title; + labelSettingsFileToImport.Text = Resources.ImportSettingsDialog_UI_Label_SettingsFileToImport; + buttonFile.Text = Resources.ImportSettingsDialog_UI_Button_ChooseFile; + groupBoxImportOptions.Text = Resources.ImportSettingsDialog_UI_GroupBox_ImportOptions; + checkBoxHighlightSettings.Text = Resources.ImportSettingsDialog_UI_CheckBox_HighlightSettings; + checkBoxHighlightFileMasks.Text = Resources.ImportSettingsDialog_UI_CheckBox_HighlightFileMasks; + checkBoxColumnizerFileMasks.Text = Resources.ImportSettingsDialog_UI_CheckBox_ColumnizerFileMasks; + checkBoxExternalTools.Text = Resources.ImportSettingsDialog_UI_CheckBox_ExternalTools; + checkBoxOther.Text = Resources.ImportSettingsDialog_UI_CheckBox_Other; + checkBoxKeepExistingSettings.Text = Resources.ImportSettingsDialog_UI_CheckBox_KeepExistingSettings; + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; + } + #endregion #region Properties @@ -48,18 +68,18 @@ public ImportSettingsDialog(ExportImportFlags importFlags) #region Events handler - private void OnImportSettingsDialogLoad(object sender, EventArgs e) + private void OnImportSettingsDialogLoad (object sender, EventArgs e) { } - private void OnFileButtonClick(object sender, EventArgs e) + private void OnFileButtonClick (object sender, EventArgs e) { OpenFileDialog dlg = new() { - Title = "Load Settings from file", + Title = Resources.ImportSettingsDialog_UI_OpenFileDialog_Title, DefaultExt = "json", AddExtension = false, - Filter = "Settings (*.json)|*.json|All files (*.*)|*.*" + Filter = Resources.ImportSettingsDialog_UI_OpenFileDialog_Filter }; if (dlg.ShowDialog() == DialogResult.OK) @@ -68,7 +88,7 @@ private void OnFileButtonClick(object sender, EventArgs e) } } - private void OnOkButtonClick(object sender, EventArgs e) + private void OnOkButtonClick (object sender, EventArgs e) { FileName = textBoxFileName.Text; diff --git a/src/LogExpert.UI/Dialogs/KeywordActionDlg.cs b/src/LogExpert.UI/Dialogs/KeywordActionDlg.cs index b6a11c20..879fe278 100644 --- a/src/LogExpert.UI/Dialogs/KeywordActionDlg.cs +++ b/src/LogExpert.UI/Dialogs/KeywordActionDlg.cs @@ -1,7 +1,7 @@ -using LogExpert.Core.Classes.Highlight; - using System.Runtime.Versioning; +using LogExpert.Core.Classes.Highlight; + namespace LogExpert.UI.Dialogs; [SupportedOSPlatform("windows")] @@ -11,14 +11,16 @@ internal partial class KeywordActionDlg : Form private readonly IDictionary _actionDict = new Dictionary(); - private IList _keywordActionList; + private readonly IList _keywordActionList; #endregion #region cTor - public KeywordActionDlg(ActionEntry entry, IList actionList) + public KeywordActionDlg (ActionEntry entry, IList actionList) { + SuspendLayout(); + _keywordActionList = actionList; ActionEntry = entry; @@ -27,11 +29,13 @@ public KeywordActionDlg(ActionEntry entry, IList actionList) AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + ApplyResources(); + actionComboBox.Items.Clear(); - foreach (var action in actionList) + foreach (var action in _keywordActionList) { - actionComboBox.Items.Add(action.GetName()); + _ = actionComboBox.Items.Add(action.GetName()); _actionDict[action.GetName()] = action; } @@ -48,6 +52,17 @@ public KeywordActionDlg(ActionEntry entry, IList actionList) } parameterTextBox.Text = ActionEntry.ActionParam; + + ResumeLayout(); + } + + private void ApplyResources () + { + Text = Resources.KeywordActionDlg_UI_Title; + label1.Text = Resources.KeywordActionDlg_UI_Label_KeywordActionPlugin; + label2.Text = Resources.KeywordActionDlg_UI_Label_Parameter; + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; } #endregion @@ -60,7 +75,7 @@ public KeywordActionDlg(ActionEntry entry, IList actionList) #region Events handler - private void OnOkButtonClick(object sender, EventArgs e) + private void OnOkButtonClick (object sender, EventArgs e) { ActionEntry = new ActionEntry { @@ -73,7 +88,7 @@ private void OnOkButtonClick(object sender, EventArgs e) } } - private void OnActionComboBoxSelectedIndexChanged(object sender, EventArgs e) + private void OnActionComboBoxSelectedIndexChanged (object sender, EventArgs e) { commentTextBox.Text = _actionDict[(string)actionComboBox.SelectedItem].GetDescription(); } diff --git a/src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.cs b/src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.cs index c99a075e..24f2eb0f 100644 --- a/src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.cs +++ b/src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.cs @@ -95,6 +95,8 @@ public LogTabWindow (string[] fileNames, int instanceNumber, bool showInstanceNu InitializeComponent(); + ApplyTextResources(); + ConfigManager = configManager; //Fix MainMenu and externalToolsToolStrip.Location, if the location has unintentionally been changed in the designer @@ -141,18 +143,19 @@ public LogTabWindow (string[] fileNames, int instanceNumber, bool showInstanceNu _tabStringFormat.LineAlignment = StringAlignment.Center; _tabStringFormat.Alignment = StringAlignment.Near; - ToolStripControlHost host = new(checkBoxFollowTail); - - host.Padding = new Padding(20, 0, 0, 0); - host.BackColor = Color.FromKnownColor(KnownColor.Transparent); + ToolStripControlHost host = new(checkBoxFollowTail) + { + Padding = new Padding(20, 0, 0, 0), + BackColor = Color.FromKnownColor(KnownColor.Transparent) + }; var index = buttonToolStrip.Items.IndexOfKey("toolStripButtonTail"); - toolStripEncodingASCIIItem.Text = Encoding.ASCII.HeaderName; - toolStripEncodingANSIItem.Text = Encoding.Default.HeaderName; - toolStripEncodingISO88591Item.Text = Encoding.GetEncoding("iso-8859-1").HeaderName; - toolStripEncodingUTF8Item.Text = Encoding.UTF8.HeaderName; - toolStripEncodingUTF16Item.Text = Encoding.Unicode.HeaderName; + encodingASCIIToolStripMenuItem.Text = Encoding.ASCII.HeaderName; + encodingANSIToolStripMenuItem.Text = Encoding.Default.HeaderName; + encodingISO88591toolStripMenuItem.Text = Encoding.GetEncoding("iso-8859-1").HeaderName; + encodingUTF8toolStripMenuItem.Text = Encoding.UTF8.HeaderName; + encodingUTF16toolStripMenuItem.Text = Encoding.Unicode.HeaderName; if (index != -1) { @@ -289,6 +292,185 @@ public LogWindow.LogWindow AddTempFileTab (string fileName, string title) return AddFileTab(fileName, true, title, false, null); } + private void ApplyTextResources () + { + + mainMenuStrip.Text = "menuStrip1"; + Text = "LogExpert"; + checkBoxHost.AccessibleName = Resources.LogTabWindow_UI_CheckBox_ToolTip_checkBoxHost; + + ApplyStatusStripResources(); + ApplyContextMenuResources(); + ApplyToolStripResources(); + ApplyTabContextMenuResources(); + + ApplyToolTips(); + } + + private void ApplyTabContextMenuResources () + { + closeThisTabToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_closeThisTabToolStripMenuItem; + closeOtherTabsToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_closeOtherTabsToolStripMenuItem; + closeAllTabsToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_closeAllTabsToolStripMenuItem; + tabColorToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_tabColorToolStripMenuItem; + tabRenameToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_tabRenameToolStripMenuItem; + copyPathToClipboardToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_copyPathToClipboardToolStripMenuItem; + findInExplorerToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_findInExplorerToolStripMenuItem; + truncateFileToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_truncateFileToolStripMenuItem; + } + + private void ApplyToolStripResources () + { + checkBoxHost.Text = Resources.LogTabWindow_UI_CheckBox_Host; + toolStripContainer.Text = Resources.LogTabWindow_UI_ToolStripContainer_toolStripContainer; + toolStripButtonOpen.Text = Resources.LogTabWindow_UI_ToolStripButton_toolStripButtonOpen; + toolStripButtonSearch.Text = Resources.LogTabWindow_UI_ToolStripButton_toolStripButtonSearch; + toolStripButtonFilter.Text = Resources.LogTabWindow_UI_ToolStripButton_toolStripButtonFilter; + toolStripButtonBookmark.Text = Resources.LogTabWindow_UI_ToolStripButton_toolStripButtonBookmark; + toolStripButtonUp.Text = Resources.LogTabWindow_UI_ToolStripButton_toolStripButtonUp; + toolStripButtonDown.Text = Resources.LogTabWindow_UI_ToolStripButton_toolStripButtonDown; + toolStripButtonBubbles.Text = Resources.LogTabWindow_UI_ToolStripButton_toolStripButtonBubbles; + toolStripButtonTail.Text = Resources.LogTabWindow_UI_ToolStripButton_toolStripButtonTail; + checkBoxFollowTail.Text = Resources.LogTabWindow_UI_CheckBox_checkBoxFollowTail; + } + + private void ApplyContextMenuResources () + { + //File menu + fileToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_fileToolStripMenuItem; + openToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_openToolStripMenuItem; + openURIToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_openURIToolStripMenuItem; + closeFileToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_closeFileToolStripMenuItem; + reloadToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_reloadToolStripMenuItem; + newFromClipboardToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_newFromClipboardToolStripMenuItem; + multiFileToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_multiFileToolStripMenuItem; + multiFileEnabledStripMenuItem.Text = Resources.LogTabWindow_UI_StripMenuItem_multiFileEnabledStripMenuItem; + multifileMaskToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_multifileMaskToolStripMenuItem; + loadProjectToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_loadProjectToolStripMenuItem; + saveProjectToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_saveProjectToolStripMenuItem; + exportBookmarksToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_exportBookmarksToolStripMenuItem; + lastUsedToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_lastUsedToolStripMenuItem; + exitToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_exitToolStripMenuItem; + + //View/Navigate menu + viewNavigateToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_viewNavigateToolStripMenuItem; + goToLineToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_goToLineToolStripMenuItem; + searchToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_searchToolStripMenuItem; + filterToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_filterToolStripMenuItem; + bookmarksToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_bookmarksToolStripMenuItem; + toggleBookmarkToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_toggleBookmarkToolStripMenuItem; + jumpToNextToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_jumpToNextToolStripMenuItem; + jumpToPrevToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_jumpToPrevToolStripMenuItem; + showBookmarkListToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_showBookmarkListToolStripMenuItem; + columnFinderToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_columnFinderToolStripMenuItem; + encodingToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_encodingToolStripMenuItem; + encodingASCIIToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_encodingASCIIToolStripMenuItem; + encodingANSIToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_encodingANSIToolStripMenuItem; + encodingISO88591toolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_encodingISO88591toolStripMenuItem; + encodingUTF8toolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_encodingUTF8toolStripMenuItem; + encodingUTF16toolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_encodingUTF16toolStripMenuItem; + timeshiftToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_timeshiftToolStripMenuItem; + timeshiftToolStripTextBox.Text = Resources.LogTabWindow_UI_ToolStripTextBox_timeshiftToolStripTextBox; + copyMarkedLinesIntoNewTabToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_copyMarkedLinesIntoNewTabToolStripMenuItem; + + //Options menu + optionToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_optionToolStripMenuItem; + columnizerToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_columnizerToolStripMenuItem; + hilightingToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_hilightingToolStripMenuItem; + settingsToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_settingsToolStripMenuItem; + cellSelectModeToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_cellSelectModeToolStripMenuItem; + alwaysOnTopToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_alwaysOnTopToolStripMenuItem; + hideLineColumnToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_hideLineColumnToolStripMenuItem; + lockInstanceToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_lockInstanceToolStripMenuItem; + + //Tools Menu + toolsToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_toolsToolStripMenuItem; + configureToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_configureToolStripMenuItem; + + //Help Menu + helpToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_helpToolStripMenuItem; + showHelpToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_showHelpToolStripMenuItem; + aboutToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_aboutToolStripMenuItem; + + //Debug Menu + debugToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_debugToolStripMenuItem; + dumpLogBufferInfoToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_dumpLogBufferInfoToolStripMenuItem; + dumpBufferDiagnosticToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_dumpBufferDiagnosticToolStripMenuItem; + runGCToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_runGCToolStripMenuItem; + gCInfoToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_gCInfoToolStripMenuItem; + throwExceptionGUIThreadToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_throwExceptionGUIThreadToolStripMenuItem; + throwExceptionbackgroundThToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_throwExceptionbackgroundThToolStripMenuItem; + throwExceptionBackgroundThreadToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_throwExceptionBackgroundThreadToolStripMenuItem; + loglevelToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_loglevelToolStripMenuItem; + warnToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_warnToolStripMenuItem; + infoToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_infoToolStripMenuItem; + debugToolStripMenuItem1.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_debugToolStripMenuItem1; + disableWordHighlightModeToolStripMenuItem.Text = Resources.LogTabWindow_UI_ToolStripMenuItem_disableWordHighlightModeToolStripMenuItem; + } + + private void ApplyStatusStripResources () + { + labelLines.Text = Resources.LogTabWindow_UI_Label_labelLines; + labelSize.Text = Resources.LogTabWindow_UI_Label_labelSize; + labelCurrentLine.Text = Resources.LogTabWindow_UI_Label_labelCurrentLine; + labelStatus.Text = Resources.LogTabWindow_UI_Label_labelStatus; + } + + #region Resources Map + + private void ApplyToolTips () + { + //TODO use ToolTip class instead of ToolTipText + timeshiftToolStripTextBox.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_timeshiftToolStripTextBox; + openURIToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_openURIToolStripMenuItem; + newFromClipboardToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_newFromClipboardToolStripMenuItem; + multiFileToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_multiFileToolStripMenuItem; + loadProjectToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_loadProjectToolStripMenuItem; + saveProjectToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_saveProjectToolStripMenuItem; + timeshiftToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_timeshiftToolStripMenuItem; + copyMarkedLinesIntoNewTabToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_copyMarkedLinesIntoNewTabToolStripMenuItem; + columnizerToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_columnizerToolStripMenuItem; + cellSelectModeToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_cellSelectModeToolStripMenuItem; + lockInstanceToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_lockInstanceToolStripMenuItem; + toolsToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_toolsToolStripMenuItem; + toolStripButtonSearch.ToolTipText = Resources.LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonSearch; + toolStripButtonOpen.ToolTipText = Resources.LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonOpen; + toolStripButtonDown.ToolTipText = Resources.LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonDown; + toolStripButtonUp.ToolTipText = Resources.LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonUp; + toolStripButtonBookmark.ToolTipText = Resources.LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonBookmark; + toolStripButtonFilter.ToolTipText = Resources.LogTabWindow_UI_ToolStripButton_ToolTip_toolStripButtonFilter; + highlightGroupsToolStripComboBox.ToolTipText = Resources.LogTabWindow_UI_ToolStripComboBox_ToolTip_highlightGroupsToolStripComboBox; + tabRenameToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_tabRenameToolStripMenuItem; + closeAllTabsToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_closeAllTabsToolStripMenuItem; + closeOtherTabsToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_closeOtherTabsToolStripMenuItem; + tabColorToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_tabColorToolStripMenuItem; + findInExplorerToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_findInExplorerToolStripMenuItem; + copyPathToClipboardToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_copyPathToClipboardToolStripMenuItem; + truncateFileToolStripMenuItem.ToolTipText = Resources.LogTabWindow_UI_ToolStripMenuItem_ToolTip_truncateFileToolStripMenuItem; + } + + /// + /// Creates a mapping of UI controls to their corresponding tooltip text. + /// + /// This method initializes a dictionary with predefined tooltips for specific UI controls. + /// Additional tooltips can be added to the dictionary as needed. + /// A where the keys are objects and the values are + /// strings representing the tooltip text for each control. + //private Dictionary GetToolTipMap () + //{ + + // return new Dictionary + // { + // { comboBoxLanguage, Resources.SettingsDialog_UI_ComboBox_ToolTip_toolTipLanguage }, + // { comboBoxEncoding, Resources.SettingsDialog_UI_ComboBox_ToolTip_toolTipEncoding }, + // { checkBoxPortableMode, Resources.SettingsDialog_UI_CheckBox_ToolTip_toolTipPortableMode }, + // { radioButtonSessionApplicationStartupDir, Resources.SettingsDialog_UI_RadioButton_ToolTip_toolTipSessionApplicationStartupDir }, + // { checkBoxLegacyReader, Resources.SettingsDialog_UI_CheckBox_ToolTip_toolTipLegacyReader } + // }; + //} + + #endregion + [SupportedOSPlatform("windows")] public LogWindow.LogWindow AddFilterTab (FilterPipe pipe, string title, ILogLineColumnizer preProcessColumnizer) { @@ -297,12 +479,10 @@ public LogWindow.LogWindow AddFilterTab (FilterPipe pipe, string title, ILogLine { ToolTip tip = new(components); - tip.SetToolTip(logWin, - "Filter: \"" + pipe.FilterParams.SearchText + "\"" + - (pipe.FilterParams.IsInvert ? " (Invert match)" : "") + - (pipe.FilterParams.ColumnRestrict ? "\nColumn restrict" : "") - ); - + //Resources.LogTabWindow_UI_LogWindow_ToolTip_Filter + var isInvertText = pipe.FilterParams.IsInvert ? Resources.LogTabWindow_UI_LogWindow_ToolTip_InvertMatch : string.Empty; + var isColumnRestrictText = pipe.FilterParams.ColumnRestrict ? Resources.LogTabWindow_UI_LogWindow_Tooltip_ColumnRestrict : string.Empty; + tip.SetToolTip(logWin, string.Format(CultureInfo.InvariantCulture, Resources.LogTabWindow_UI_LogWindow_ToolTip_Filter, pipe.FilterParams.SearchText, isInvertText, isColumnRestrictText)); tip.AutomaticDelay = 10; tip.AutoPopDelay = 5000; var data = logWin.Tag as LogWindowData; @@ -520,8 +700,7 @@ public ILogLineColumnizer FindColumnizerByFileMask (string fileName) } catch (ArgumentException e) { - _logger.Error(e, "RegEx-error while finding columnizer: "); - // occurs on invalid regex patterns + _logger.Error($"RegEx-error while finding columnizer: {e}"); } } } @@ -545,8 +724,7 @@ public HighlightGroup FindHighlightGroupByFileMask (string fileName) } catch (ArgumentException e) { - _logger.Error(e, "RegEx-error while finding columnizer: "); - // occurs on invalid regex patterns + _logger.Error($"RegEx-error while finding columnizer: {e}"); } } } @@ -565,14 +743,9 @@ public void SetForeground () _ = NativeMethods.SetForegroundWindow(Handle); if (WindowState == FormWindowState.Minimized) { - if (_wasMaximized) - { - WindowState = FormWindowState.Maximized; - } - else - { - WindowState = FormWindowState.Normal; - } + WindowState = _wasMaximized + ? FormWindowState.Maximized + : FormWindowState.Normal; } } @@ -585,14 +758,11 @@ public void FollowTailChanged (LogWindow.LogWindow logWindow, bool isEnabled, bo return; } - if (isEnabled) - { - data.TailState = 0; - } - else - { - data.TailState = offByTrigger ? 2 : 1; - } + data.TailState = isEnabled + ? 0 + : offByTrigger + ? 2 + : 1; if (Preferences.ShowTailState) { @@ -646,11 +816,11 @@ private void PasteFromClipboard () writer.Close(); } - var title = "Clipboard"; + var title = Resources.LogTabWindow_UI_LogWindow_Title_Text_From_Clipboard; var logWindow = AddTempFileTab(fileName, title); - if (logWindow.Tag is LogWindowData data) + if (logWindow.Tag is LogWindowData) { - SetTooltipText(logWindow, "Pasted on " + DateTime.Now); + SetTooltipText(logWindow, string.Format(CultureInfo.InvariantCulture, Resources.LogTabWindow_UI_LogWindow_Title_ToolTip_PastedOn, DateTime.Now)); } } } @@ -743,7 +913,8 @@ private void FillDefaultEncodingFromSettings (EncodingOptions encodingOptions) } catch (ArgumentException) { - _logger.Warn(CultureInfo.InvariantCulture, "Encoding " + ConfigManager.Settings.Preferences.DefaultEncoding + " is not a valid encoding"); + //ConfigManager.Settings.Preferences.DefaultEncoding + _logger.Warn($"### FillDefaultEncodingFromSettings: Encoding {ConfigManager.Settings.Preferences.DefaultEncoding} is not a valid encoding"); encodingOptions.DefaultEncoding = null; } } @@ -756,7 +927,7 @@ private void AddFileTabs (string[] fileNames) { if (!string.IsNullOrEmpty(fileName)) { - if (fileName.EndsWith(".lxj")) + if (fileName.EndsWith(".lxj", StringComparison.OrdinalIgnoreCase)) { LoadProject(fileName, false); } @@ -875,7 +1046,7 @@ private LogWindow.LogWindow FindWindowForFile (string fileName) /// private string FindFilenameForSettings (string fileName) { - if (fileName.EndsWith(".lxp", StringComparison.InvariantCulture)) + if (fileName.EndsWith(".lxp")) { var persistenceData = Persister.Load(fileName); if (persistenceData == null) @@ -916,6 +1087,7 @@ private void FillHistoryMenu () { ToolStripItem item = new ToolStripMenuItem(file); _ = strip.Items.Add(item); + } strip.ItemClicked += OnHistoryItemClicked; @@ -959,7 +1131,7 @@ private void ShowHighlightSettingsDialog () Owner = this, TopMost = TopMost, HighlightGroupList = HighlightGroupList, - PreSelectedGroupName = groupsComboBoxHighlightGroups.Text + PreSelectedGroupName = highlightGroupsToolStripComboBox.Text }; var res = dlg.ShowDialog(); @@ -977,14 +1149,14 @@ private void ShowHighlightSettingsDialog () [SupportedOSPlatform("windows")] private void FillHighlightComboBox () { - var currentGroupName = groupsComboBoxHighlightGroups.Text; - groupsComboBoxHighlightGroups.Items.Clear(); + var currentGroupName = highlightGroupsToolStripComboBox.Text; + highlightGroupsToolStripComboBox.Items.Clear(); foreach (var group in HighlightGroupList) { - _ = groupsComboBoxHighlightGroups.Items.Add(group.GroupName); + _ = highlightGroupsToolStripComboBox.Items.Add(group.GroupName); if (group.GroupName.Equals(currentGroupName, StringComparison.Ordinal)) { - groupsComboBoxHighlightGroups.Text = group.GroupName; + highlightGroupsToolStripComboBox.Text = group.GroupName; } } } @@ -1013,7 +1185,7 @@ private void OpenFileDialog () } catch (SecurityException e) { - _logger.Warn(e, "Insufficient rights for GetFolderPath(): "); + _logger.Warn(string.Format(CultureInfo.InvariantCulture, Resources.LogExpert_Common_Error_InsufficientRights_For_Parameter_ErrorMessage, nameof(Environment.GetFolderPath), e)); // no initial directory if insufficient rights } } @@ -1044,7 +1216,7 @@ private void LoadFiles (string[] names, bool invertLogic) if (names.Length == 1) { - if (names[0].EndsWith(".lxj")) + if (names[0].EndsWith(".lxj", StringComparison.OrdinalIgnoreCase)) { LoadProject(names[0], true); return; @@ -1192,8 +1364,8 @@ private void ChangeCurrentLogWindow (LogWindow.LogWindow newLogWindow) mainMenuStrip.Enabled = true; timeshiftToolStripMenuItem.Enabled = false; timeshiftToolStripMenuItem.Checked = false; - timeshiftMenuTextBox.Text = ""; - timeshiftMenuTextBox.Enabled = false; + timeshiftToolStripTextBox.Text = string.Empty; + timeshiftToolStripTextBox.Enabled = false; multiFileToolStripMenuItem.Enabled = false; cellSelectModeToolStripMenuItem.Checked = false; cellSelectModeToolStripMenuItem.Enabled = false; @@ -1222,6 +1394,7 @@ private void DisconnectToolWindows (LogWindow.LogWindow logWindow) DisconnectBookmarkWindow(logWindow); } + //TODO Find out if logwindow is necessary here private void DisconnectBookmarkWindow (LogWindow.LogWindow logWindow) { _bookmarkWindow.SetBookmarkData(null); @@ -1229,15 +1402,15 @@ private void DisconnectBookmarkWindow (LogWindow.LogWindow logWindow) } [SupportedOSPlatform("windows")] - private void GuiStateUpdateWorker (GuiStateArgs e) + private void GuiStateUpdateWorker (GuiStateEventArgs e) { _skipEvents = true; checkBoxFollowTail.Checked = e.FollowTail; mainMenuStrip.Enabled = e.MenuEnabled; timeshiftToolStripMenuItem.Enabled = e.TimeshiftPossible; timeshiftToolStripMenuItem.Checked = e.TimeshiftEnabled; - timeshiftMenuTextBox.Text = e.TimeshiftText; - timeshiftMenuTextBox.Enabled = e.TimeshiftEnabled; + timeshiftToolStripTextBox.Text = e.TimeshiftText; + timeshiftToolStripTextBox.Enabled = e.TimeshiftEnabled; multiFileToolStripMenuItem.Enabled = e.MultiFileEnabled; // disabled for temp files multiFileToolStripMenuItem.Checked = e.IsMultiFileActive; multiFileEnabledStripMenuItem.Checked = e.IsMultiFileActive; @@ -1260,7 +1433,7 @@ private void GuiStateUpdateWorker (GuiStateArgs e) } toolStripButtonBubbles.Checked = e.ShowBookmarkBubbles; - groupsComboBoxHighlightGroups.Text = e.HighlightGroupName; + highlightGroupsToolStripComboBox.Text = e.HighlightGroupName; columnFinderToolStripMenuItem.Checked = e.ColumnFinderVisible; _skipEvents = false; @@ -1280,7 +1453,7 @@ private void ProgressBarUpdateWorker (ProgressEventArgs e) } catch (Exception ex) { - _logger.Error(ex, "Error during ProgressBarUpdateWorker value {0}, min {1}, max {2}, visible {3}", e.Value, e.MinValue, e.MaxValue, e.Visible); + _logger.Error(string.Format(CultureInfo.InvariantCulture, Resources.LogExpert_Common_Error_5Parameters_ErrorDuring0Value1Min2Max3Visible45, e.Value, e.MinValue, e.MaxValue, e.Visible, ex)); } _ = Invoke(new System.Windows.Forms.MethodInvoker(statusStrip.Refresh)); @@ -1296,11 +1469,11 @@ private void StatusLineEventWorker (StatusLineEventArgs e) //_logger.logDebug("StatusLineEvent: text = " + e.StatusText); labelStatus.Text = e.StatusText; labelStatus.Size = TextRenderer.MeasureText(labelStatus.Text, labelStatus.Font); - labelLines.Text = $" {e.LineCount} lines"; + labelLines.Text = $"{e.LineCount} {Resources.LogTabWindow_StatusLineText_lowerCase_Lines}"; labelLines.Size = TextRenderer.MeasureText(labelLines.Text, labelLines.Font); labelSize.Text = Util.GetFileSizeAsText(e.FileSize); labelSize.Size = TextRenderer.MeasureText(labelSize.Text, labelSize.Font); - labelCurrentLine.Text = $"Line: {e.CurrentLineNum}"; + labelCurrentLine.Text = $"{Resources.LogTabWindow_StatusLineText_UpperCase_Lines} {e.CurrentLineNum}"; labelCurrentLine.Size = TextRenderer.MeasureText(labelCurrentLine.Text, labelCurrentLine.Font); if (statusStrip.InvokeRequired) { @@ -1518,11 +1691,11 @@ private Icon GetIcon (int diff, LogWindowData data) [SupportedOSPlatform("windows")] private void RefreshEncodingMenuBar (Encoding encoding) { - toolStripEncodingASCIIItem.Checked = false; - toolStripEncodingANSIItem.Checked = false; - toolStripEncodingUTF8Item.Checked = false; - toolStripEncodingUTF16Item.Checked = false; - toolStripEncodingISO88591Item.Checked = false; + encodingASCIIToolStripMenuItem.Checked = false; + encodingANSIToolStripMenuItem.Checked = false; + encodingUTF8toolStripMenuItem.Checked = false; + encodingUTF16toolStripMenuItem.Checked = false; + encodingISO88591toolStripMenuItem.Checked = false; if (encoding == null) { @@ -1531,26 +1704,26 @@ private void RefreshEncodingMenuBar (Encoding encoding) if (encoding is ASCIIEncoding) { - toolStripEncodingASCIIItem.Checked = true; + encodingASCIIToolStripMenuItem.Checked = true; } else if (encoding.Equals(Encoding.Default)) { - toolStripEncodingANSIItem.Checked = true; + encodingANSIToolStripMenuItem.Checked = true; } else if (encoding is UTF8Encoding) { - toolStripEncodingUTF8Item.Checked = true; + encodingUTF8toolStripMenuItem.Checked = true; } else if (encoding is UnicodeEncoding) { - toolStripEncodingUTF16Item.Checked = true; + encodingUTF16toolStripMenuItem.Checked = true; } else if (encoding.Equals(Encoding.GetEncoding("iso-8859-1"))) { - toolStripEncodingISO88591Item.Checked = true; + encodingISO88591toolStripMenuItem.Checked = true; } - toolStripEncodingANSIItem.Text = Encoding.Default.HeaderName; + encodingANSIToolStripMenuItem.Text = Encoding.Default.HeaderName; } [SupportedOSPlatform("windows")] @@ -1572,7 +1745,6 @@ private void OpenSettings (int tabToOpen) [SupportedOSPlatform("windows")] private void NotifyWindowsForChangedPrefs (SettingsFlags flags) { - _logger.Info(CultureInfo.InvariantCulture, "The preferences have changed"); ApplySettings(ConfigManager.Settings, flags); var setLastColumnWidth = ConfigManager.Settings.Preferences.SetLastColumnWidth; @@ -1715,7 +1887,7 @@ private void StartTool (string cmd, string args, bool sysoutPipe, string columni { var columnizer = ColumnizerPicker.DecideColumnizerByName(columnizerName, PluginRegistry.PluginRegistry.Instance.RegisteredColumnizers); - _logger.Info(CultureInfo.InvariantCulture, "Starting external tool with sysout redirection: {0} {1}", cmd, args); + //_logger.Info($"Starting external tool with sysout redirection: {cmd} {args}")); startInfo.UseShellExecute = false; startInfo.RedirectStandardOutput = true; //process.OutputDataReceived += pipe.DataReceivedEventHandler; @@ -1723,10 +1895,13 @@ private void StartTool (string cmd, string args, bool sysoutPipe, string columni { _ = process.Start(); } - catch (Win32Exception e) + catch (Exception e) when (e is Win32Exception or + InvalidOperationException or + ObjectDisposedException or + PlatformNotSupportedException) { _logger.Error(e); - _ = MessageBox.Show(e.Message); + _ = MessageBox.Show(e.Message, Resources.LogExpert_Common_UI_Title_LogExpert); return; } @@ -1735,7 +1910,7 @@ private void StartTool (string cmd, string args, bool sysoutPipe, string columni var logWin = AddTempFileTab(pipe.FileName, CurrentLogWindow.IsTempFile ? CurrentLogWindow.TempTitleName - : Util.GetNameFromPath(CurrentLogWindow.FileName) + "->E"); + : $"{Util.GetNameFromPath(CurrentLogWindow.FileName)}{Resources.LogTabWindow_UI_LogWindow_Title_ExternalStartTool_Suffix}"); logWin.ForceColumnizer(columnizer); process.Exited += pipe.ProcessExitedEventHandler; @@ -1743,17 +1918,18 @@ private void StartTool (string cmd, string args, bool sysoutPipe, string columni } else { - _logger.Info(CultureInfo.InvariantCulture, "Starting external tool: {0} {1}", cmd, args); - try { startInfo.UseShellExecute = false; _ = process.Start(); } - catch (Exception e) + catch (Exception e) when (e is Win32Exception or + InvalidOperationException or + ObjectDisposedException or + PlatformNotSupportedException) { _logger.Error(e); - _ = MessageBox.Show(e.Message); + _ = MessageBox.Show(e.Message, Resources.LogExpert_Common_UI_Title_LogExpert); } } } @@ -1764,7 +1940,7 @@ private void CloseAllTabs () IList
    closeList = []; lock (_logWindowList) { - foreach (DockContent content in dockPanel.Contents) + foreach (var content in dockPanel.Contents.Cast()) { if (content is LogWindow.LogWindow window) { @@ -1779,7 +1955,7 @@ private void CloseAllTabs () } } - //TODO Reimplement + //TODO Reimplementation needs a new UI Framework since, DockpanelSuite has no easy way to change TabColor private void SetTabColor (LogWindow.LogWindow logWindow, Color color) { //tabPage.BackLowColor = color; @@ -1838,7 +2014,7 @@ private void LoadProject (string projectFileName, bool restoreLayout) [SupportedOSPlatform("windows")] private void ApplySelectedHighlightGroup () { - var groupName = groupsComboBoxHighlightGroups.Text; + var groupName = highlightGroupsToolStripComboBox.Text; CurrentLogWindow?.SetCurrentHighlightGroup(groupName); } @@ -1905,12 +2081,12 @@ private void DumpGCInfo () private void ThrowExceptionFx () { - throw new Exception("This is a test exception thrown by an async delegate"); + throw new Exception(Resources.LogTabWindow_ThrowTestException_ThisIsATestExceptionThrownByAnAsyncDelegate); } private void ThrowExceptionThreadFx () { - throw new Exception("This is a test exception thrown by a background thread"); + throw new Exception(Resources.LogTabWindow_ThrowTestExceptionThread_ThisIsATestExceptionThrownByABackgroundThread); } private string SaveLayout () @@ -1948,7 +2124,7 @@ private IDockContent DeserializeDockContent (string persistString) return _bookmarkWindow; } - if (persistString.StartsWith(WindowTypes.LogWindow.ToString())) + if (persistString.StartsWith(WindowTypes.LogWindow.ToString(), StringComparison.OrdinalIgnoreCase)) { var fileName = persistString[(WindowTypes.LogWindow.ToString().Length + 1)..]; var win = FindWindowForFile(fileName); @@ -1957,7 +2133,7 @@ private IDockContent DeserializeDockContent (string persistString) return win; } - _logger.Warn($"Layout data contains non-existing LogWindow for {fileName}"); + //_logger.Warn("Layout data contains non-existing LogWindow for {fileName}")); } return null; @@ -2000,7 +2176,7 @@ private void OnLogTabWindowLoad (object sender, EventArgs e) foreach (var name in tmpList) { - if (string.IsNullOrEmpty(name) == false) + if (!string.IsNullOrEmpty(name)) { AddFileTab(name, false, null, false, null); } @@ -2020,6 +2196,8 @@ private void OnLogTabWindowLoad (object sender, EventArgs e) FillHighlightComboBox(); FillToolLauncherBar(); + + //TODO Change to Debug and true #if !DEBUG debugToolStripMenuItem.Visible = false; #endif @@ -2071,7 +2249,7 @@ private void OnStripMouseUp (object sender, MouseEventArgs e) private void OnHistoryItemClicked (object sender, ToolStripItemClickedEventArgs e) { - if (string.IsNullOrEmpty(e.ClickedItem.Text) == false) + if (!string.IsNullOrEmpty(e.ClickedItem.Text)) { _ = AddFileTab(e.ClickedItem.Text, false, null, false, null); } @@ -2200,7 +2378,7 @@ private void OnLogTabWindowDragEnter (object sender, DragEventArgs e) { #if DEBUG var formats = e.Data.GetFormats(); - var s = "Dragging something over LogExpert. Formats: "; + var s = "Dragging something over LogExpert. Formats: "; foreach (var format in formats) { s += format; @@ -2228,7 +2406,7 @@ private void OnLogWindowDragDrop (object sender, DragEventArgs e) { #if DEBUG var formats = e.Data.GetFormats(); - var s = "Dropped formats: "; + var s = "Dropped formats: "; foreach (var format in formats) { s += format; @@ -2256,10 +2434,10 @@ private void OnTimeShiftToolStripMenuItemCheckStateChanged (object sender, Event { if (!_skipEvents && CurrentLogWindow != null) { - CurrentLogWindow.SetTimeshiftValue(timeshiftMenuTextBox.Text); - timeshiftMenuTextBox.Enabled = timeshiftToolStripMenuItem.Checked; + CurrentLogWindow.SetTimeshiftValue(timeshiftToolStripTextBox.Text); + timeshiftToolStripTextBox.Enabled = timeshiftToolStripMenuItem.Checked; CurrentLogWindow.TimeshiftEnabled(timeshiftToolStripMenuItem.Checked, - timeshiftMenuTextBox.Text); + timeshiftToolStripTextBox.Text); } } @@ -2287,7 +2465,7 @@ private void OnMultiFileToolStripMenuItemClick (object sender, EventArgs e) } [SupportedOSPlatform("windows")] - private void OnGuiStateUpdate (object sender, GuiStateArgs e) + private void OnGuiStateUpdate (object sender, GuiStateEventArgs e) { _ = BeginInvoke(GuiStateUpdateWorker, e); } @@ -2369,7 +2547,7 @@ private void OnTimeShiftMenuTextBoxKeyDown (object sender, KeyEventArgs e) if (e.KeyCode == Keys.Enter) { e.Handled = true; - CurrentLogWindow.SetTimeshiftValue(timeshiftMenuTextBox.Text); + CurrentLogWindow.SetTimeshiftValue(timeshiftToolStripTextBox.Text); } } @@ -2476,10 +2654,10 @@ private void OnLogWindowSyncModeChanged (object sender, SyncModeEventArgs e) var icon = GetIcon(data.DiffSum, data); _ = BeginInvoke(new SetTabIconDelegate(SetTabIcon), (LogWindow.LogWindow)sender, icon); } - else - { - _logger.Warn(CultureInfo.InvariantCulture, "Received SyncModeChanged event while disposing. Event ignored."); - } + //else + //{ + // _logger.Warn("Received SyncModeChanged event while disposing. Event ignored."); + //} } [SupportedOSPlatform("windows")] @@ -2560,7 +2738,7 @@ private void OnDateTimeDragControlValueDragged (object sender, EventArgs e) [SupportedOSPlatform("windows")] private void OnDateTimeDragControlValueChanged (object sender, EventArgs e) { - _ = (CurrentLogWindow?.ScrollToTimestamp(dragControlDateTime.DateTime, true, true)); + _ = CurrentLogWindow?.ScrollToTimestamp(dragControlDateTime.DateTime, true, true); } [SupportedOSPlatform("windows")] @@ -2634,12 +2812,13 @@ private void OnToolStripButtonDownClick (object sender, EventArgs e) [SupportedOSPlatform("windows")] private void OnShowHelpToolStripMenuItemClick (object sender, EventArgs e) { - Help.ShowHelp(this, "LogExpert.chm"); + Help.ShowHelp(this, Resources.LogTabWindow_HelpFile); } private void OnHideLineColumnToolStripMenuItemClick (object sender, EventArgs e) { ConfigManager.Settings.HideLineColumn = hideLineColumnToolStripMenuItem.Checked; + lock (_logWindowList) { foreach (var logWin in _logWindowList) @@ -2740,7 +2919,7 @@ private void OnSaveProjectToolStripMenuItemClick (object sender, EventArgs e) SaveFileDialog dlg = new() { DefaultExt = "lxj", - Filter = @"LogExpert session (*.lxj)|*.lxj" + Filter = string.Format(CultureInfo.InvariantCulture, Resources.LogTabWindow_UI_Project_Session_Default_Filter, "(*.lxj)|*.lxj") }; if (dlg.ShowDialog() == DialogResult.OK) @@ -2752,7 +2931,7 @@ private void OnSaveProjectToolStripMenuItemClick (object sender, EventArgs e) { foreach (var logWindow in dockPanel.Contents.OfType()) { - var persistenceFileName = logWindow?.SavePersistenceData(true); + var persistenceFileName = logWindow?.SavePersistenceDataAndReturnFileName(true); if (persistenceFileName != null) { fileNames.Add(persistenceFileName); @@ -2776,7 +2955,7 @@ private void OnLoadProjectToolStripMenuItemClick (object sender, EventArgs e) OpenFileDialog dlg = new() { DefaultExt = "lxj", - Filter = @"LogExpert sessions (*.lxj)|*.lxj" + Filter = string.Format(CultureInfo.InvariantCulture, Resources.LogTabWindow_UI_Project_Session_Default_Filter, "(*.lxj)|*.lxj") }; if (dlg.ShowDialog() == DialogResult.OK) @@ -2902,7 +3081,7 @@ private void OnConfigureToolStripMenuItemClick (object sender, EventArgs e) private void OnThrowExceptionGUIThreadToolStripMenuItemClick (object sender, EventArgs e) { - throw new Exception("This is a test exception thrown by the GUI thread"); + throw new Exception(Resources.LogTabWindow_OnThrowTestExceptionGUIThread_ThisIsATestExceptionThrownByTheGUIThread); } private void OnThrowExceptionBackgroundThToolStripMenuItemClick (object sender, EventArgs e) diff --git a/src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.designer.cs b/src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.designer.cs index 59eb0f7d..ce4d87ea 100644 --- a/src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.designer.cs +++ b/src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.designer.cs @@ -5,25 +5,25 @@ namespace LogExpert.UI.Controls.LogTabWindow { - partial class LogTabWindow - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; + partial class LogTabWindow + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } #region Windows Form Designer generated code @@ -84,20 +84,20 @@ private void InitializeComponent() showBookmarkListToolStripMenuItem = new ToolStripMenuItem(); columnFinderToolStripMenuItem = new ToolStripMenuItem(); ToolStripSeparator5 = new ToolStripSeparator(); - toolStripEncodingMenuItem = new ToolStripMenuItem(); - toolStripEncodingASCIIItem = new ToolStripMenuItem(); - toolStripEncodingANSIItem = new ToolStripMenuItem(); - toolStripEncodingISO88591Item = new ToolStripMenuItem(); - toolStripEncodingUTF8Item = new ToolStripMenuItem(); - toolStripEncodingUTF16Item = new ToolStripMenuItem(); + encodingToolStripMenuItem = new ToolStripMenuItem(); + encodingASCIIToolStripMenuItem = new ToolStripMenuItem(); + encodingANSIToolStripMenuItem = new ToolStripMenuItem(); + encodingISO88591toolStripMenuItem = new ToolStripMenuItem(); + encodingUTF8toolStripMenuItem = new ToolStripMenuItem(); + encodingUTF16toolStripMenuItem = new ToolStripMenuItem(); ToolStripSeparator6 = new ToolStripSeparator(); timeshiftToolStripMenuItem = new ToolStripMenuItem(); - timeshiftMenuTextBox = new ToolStripTextBox(); + timeshiftToolStripTextBox = new ToolStripTextBox(); ToolStripSeparator4 = new ToolStripSeparator(); copyMarkedLinesIntoNewTabToolStripMenuItem = new ToolStripMenuItem(); optionToolStripMenuItem = new ToolStripMenuItem(); columnizerToolStripMenuItem = new ToolStripMenuItem(); - hilightingToolStripMenuItem1 = new ToolStripMenuItem(); + hilightingToolStripMenuItem = new ToolStripMenuItem(); ToolStripSeparator7 = new ToolStripSeparator(); settingsToolStripMenuItem = new ToolStripMenuItem(); ToolStripSeparator9 = new ToolStripSeparator(); @@ -126,7 +126,7 @@ private void InitializeComponent() infoToolStripMenuItem = new ToolStripMenuItem(); debugToolStripMenuItem1 = new ToolStripMenuItem(); disableWordHighlightModeToolStripMenuItem = new ToolStripMenuItem(); - host = new CheckBox(); + checkBoxHost = new CheckBox(); toolStripContainer = new ToolStripContainer(); dockPanel = new DockPanel(); externalToolsToolStrip = new ToolStrip(); @@ -144,7 +144,7 @@ private void InitializeComponent() lineToolStripSeparatorExtension4 = new ToolStripSeparator(); toolStripButtonTail = new ToolStripButton(); lineToolStripSeparatorExtension5 = new ToolStripSeparator(); - groupsComboBoxHighlightGroups = new ToolStripComboBox(); + highlightGroupsToolStripComboBox = new ToolStripComboBox(); checkBoxFollowTail = new CheckBox(); tabContextMenuStrip = new ContextMenuStrip(components); closeThisTabToolStripMenuItem = new ToolStripMenuItem(); @@ -368,7 +368,7 @@ private void InitializeComponent() // // viewNavigateToolStripMenuItem // - viewNavigateToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { goToLineToolStripMenuItem, searchToolStripMenuItem, filterToolStripMenuItem, bookmarksToolStripMenuItem, columnFinderToolStripMenuItem, ToolStripSeparator5, toolStripEncodingMenuItem, ToolStripSeparator6, timeshiftToolStripMenuItem, timeshiftMenuTextBox, ToolStripSeparator4, copyMarkedLinesIntoNewTabToolStripMenuItem }); + viewNavigateToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { goToLineToolStripMenuItem, searchToolStripMenuItem, filterToolStripMenuItem, bookmarksToolStripMenuItem, columnFinderToolStripMenuItem, ToolStripSeparator5, encodingToolStripMenuItem, ToolStripSeparator6, timeshiftToolStripMenuItem, timeshiftToolStripTextBox, ToolStripSeparator4, copyMarkedLinesIntoNewTabToolStripMenuItem }); viewNavigateToolStripMenuItem.Name = "viewNavigateToolStripMenuItem"; viewNavigateToolStripMenuItem.Size = new System.Drawing.Size(96, 19); viewNavigateToolStripMenuItem.Text = "View/Navigate"; @@ -464,57 +464,56 @@ private void InitializeComponent() // // toolStripEncodingMenuItem // - toolStripEncodingMenuItem.DropDownItems.AddRange(new ToolStripItem[] { toolStripEncodingASCIIItem, toolStripEncodingANSIItem, toolStripEncodingISO88591Item, toolStripEncodingUTF8Item, toolStripEncodingUTF16Item }); - toolStripEncodingMenuItem.Name = "toolStripEncodingMenuItem"; - toolStripEncodingMenuItem.Size = new System.Drawing.Size(189, 30); - toolStripEncodingMenuItem.Text = "Encoding"; + encodingToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { encodingASCIIToolStripMenuItem, encodingANSIToolStripMenuItem, encodingISO88591toolStripMenuItem, encodingUTF8toolStripMenuItem, encodingUTF16toolStripMenuItem }); + encodingToolStripMenuItem.Name = "encodingToolStripMenuItem"; + encodingToolStripMenuItem.Size = new System.Drawing.Size(189, 30); + encodingToolStripMenuItem.Text = "Encoding"; // // toolStripEncodingASCIIItem // - toolStripEncodingASCIIItem.BackColor = System.Drawing.SystemColors.Control; - toolStripEncodingASCIIItem.ForeColor = System.Drawing.SystemColors.ControlDarkDark; - toolStripEncodingASCIIItem.Name = "toolStripEncodingASCIIItem"; - toolStripEncodingASCIIItem.Size = new System.Drawing.Size(132, 22); - toolStripEncodingASCIIItem.Tag = ""; - toolStripEncodingASCIIItem.Text = "ASCII"; - toolStripEncodingASCIIItem.Click += OnASCIIToolStripMenuItemClick; + encodingASCIIToolStripMenuItem.BackColor = System.Drawing.SystemColors.Control; + encodingASCIIToolStripMenuItem.ForeColor = System.Drawing.SystemColors.ControlDarkDark; + encodingASCIIToolStripMenuItem.Name = "encodingASCIIToolStripMenuItem"; + encodingASCIIToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + encodingASCIIToolStripMenuItem.Text = "ASCII"; + encodingASCIIToolStripMenuItem.Click += OnASCIIToolStripMenuItemClick; // // toolStripEncodingANSIItem // - toolStripEncodingANSIItem.BackColor = System.Drawing.SystemColors.Control; - toolStripEncodingANSIItem.ForeColor = System.Drawing.SystemColors.ControlDarkDark; - toolStripEncodingANSIItem.Name = "toolStripEncodingANSIItem"; - toolStripEncodingANSIItem.Size = new System.Drawing.Size(132, 22); - toolStripEncodingANSIItem.Tag = ""; - toolStripEncodingANSIItem.Text = "ANSI"; - toolStripEncodingANSIItem.Click += OnANSIToolStripMenuItemClick; + encodingANSIToolStripMenuItem.BackColor = System.Drawing.SystemColors.Control; + encodingANSIToolStripMenuItem.ForeColor = System.Drawing.SystemColors.ControlDarkDark; + encodingANSIToolStripMenuItem.Name = "toolStripEncodingANSIItem"; + encodingANSIToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + encodingANSIToolStripMenuItem.Tag = ""; + encodingANSIToolStripMenuItem.Text = "ANSI"; + encodingANSIToolStripMenuItem.Click += OnANSIToolStripMenuItemClick; // // toolStripEncodingISO88591Item // - toolStripEncodingISO88591Item.BackColor = System.Drawing.SystemColors.Control; - toolStripEncodingISO88591Item.ForeColor = System.Drawing.SystemColors.ControlDarkDark; - toolStripEncodingISO88591Item.Name = "toolStripEncodingISO88591Item"; - toolStripEncodingISO88591Item.Size = new System.Drawing.Size(132, 22); - toolStripEncodingISO88591Item.Text = "ISO-8859-1"; - toolStripEncodingISO88591Item.Click += OnISO88591ToolStripMenuItemClick; + encodingISO88591toolStripMenuItem.BackColor = System.Drawing.SystemColors.Control; + encodingISO88591toolStripMenuItem.ForeColor = System.Drawing.SystemColors.ControlDarkDark; + encodingISO88591toolStripMenuItem.Name = "encodingISO88591toolStripMenuItem"; + encodingISO88591toolStripMenuItem.Size = new System.Drawing.Size(132, 22); + encodingISO88591toolStripMenuItem.Text = "ISO-8859-1"; + encodingISO88591toolStripMenuItem.Click += OnISO88591ToolStripMenuItemClick; // // toolStripEncodingUTF8Item // - toolStripEncodingUTF8Item.BackColor = System.Drawing.SystemColors.Control; - toolStripEncodingUTF8Item.ForeColor = System.Drawing.SystemColors.ControlDarkDark; - toolStripEncodingUTF8Item.Name = "toolStripEncodingUTF8Item"; - toolStripEncodingUTF8Item.Size = new System.Drawing.Size(132, 22); - toolStripEncodingUTF8Item.Text = "UTF8"; - toolStripEncodingUTF8Item.Click += OnUTF8ToolStripMenuItemClick; + encodingUTF8toolStripMenuItem.BackColor = System.Drawing.SystemColors.Control; + encodingUTF8toolStripMenuItem.ForeColor = System.Drawing.SystemColors.ControlDarkDark; + encodingUTF8toolStripMenuItem.Name = "encodingUTF8toolStripMenuItem"; + encodingUTF8toolStripMenuItem.Size = new System.Drawing.Size(132, 22); + encodingUTF8toolStripMenuItem.Text = "UTF8"; + encodingUTF8toolStripMenuItem.Click += OnUTF8ToolStripMenuItemClick; // // toolStripEncodingUTF16Item // - toolStripEncodingUTF16Item.BackColor = System.Drawing.SystemColors.Control; - toolStripEncodingUTF16Item.ForeColor = System.Drawing.SystemColors.ControlDarkDark; - toolStripEncodingUTF16Item.Name = "toolStripEncodingUTF16Item"; - toolStripEncodingUTF16Item.Size = new System.Drawing.Size(132, 22); - toolStripEncodingUTF16Item.Text = "Unicode"; - toolStripEncodingUTF16Item.Click += OnUTF16ToolStripMenuItemClick; + encodingUTF16toolStripMenuItem.BackColor = System.Drawing.SystemColors.Control; + encodingUTF16toolStripMenuItem.ForeColor = System.Drawing.SystemColors.ControlDarkDark; + encodingUTF16toolStripMenuItem.Name = "encodingUTF16toolStripMenuItem"; + encodingUTF16toolStripMenuItem.Size = new System.Drawing.Size(132, 22); + encodingUTF16toolStripMenuItem.Text = "Unicode"; + encodingUTF16toolStripMenuItem.Click += OnUTF16ToolStripMenuItemClick; // // ToolStripSeparator6 // @@ -532,14 +531,14 @@ private void InitializeComponent() // // timeshiftMenuTextBox // - timeshiftMenuTextBox.BorderStyle = BorderStyle.FixedSingle; - timeshiftMenuTextBox.Enabled = false; - timeshiftMenuTextBox.Font = new System.Drawing.Font("Segoe UI", 9F); - timeshiftMenuTextBox.Name = "timeshiftMenuTextBox"; - timeshiftMenuTextBox.Size = new System.Drawing.Size(100, 23); - timeshiftMenuTextBox.Text = "+00:00:00.000"; - timeshiftMenuTextBox.ToolTipText = "Time offset (hh:mm:ss.fff)"; - timeshiftMenuTextBox.KeyDown += OnTimeShiftMenuTextBoxKeyDown; + timeshiftToolStripTextBox.BorderStyle = BorderStyle.FixedSingle; + timeshiftToolStripTextBox.Enabled = false; + timeshiftToolStripTextBox.Font = new System.Drawing.Font("Segoe UI", 9F); + timeshiftToolStripTextBox.Name = "timeshiftMenuTextBox"; + timeshiftToolStripTextBox.Size = new System.Drawing.Size(100, 23); + timeshiftToolStripTextBox.Text = "+00:00:00.000"; + timeshiftToolStripTextBox.ToolTipText = "Time offset (hh:mm:ss.fff)"; + timeshiftToolStripTextBox.KeyDown += OnTimeShiftMenuTextBoxKeyDown; // // ToolStripSeparator4 // @@ -557,7 +556,7 @@ private void InitializeComponent() // // optionToolStripMenuItem // - optionToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { columnizerToolStripMenuItem, hilightingToolStripMenuItem1, ToolStripSeparator7, settingsToolStripMenuItem, ToolStripSeparator9, cellSelectModeToolStripMenuItem, alwaysOnTopToolStripMenuItem, hideLineColumnToolStripMenuItem, ToolStripSeparator8, lockInstanceToolStripMenuItem }); + optionToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { columnizerToolStripMenuItem, hilightingToolStripMenuItem, ToolStripSeparator7, settingsToolStripMenuItem, ToolStripSeparator9, cellSelectModeToolStripMenuItem, alwaysOnTopToolStripMenuItem, hideLineColumnToolStripMenuItem, ToolStripSeparator8, lockInstanceToolStripMenuItem }); optionToolStripMenuItem.Name = "optionToolStripMenuItem"; optionToolStripMenuItem.Size = new System.Drawing.Size(61, 19); optionToolStripMenuItem.Text = "Options"; @@ -573,10 +572,10 @@ private void InitializeComponent() // // hilightingToolStripMenuItem1 // - hilightingToolStripMenuItem1.Name = "hilightingToolStripMenuItem1"; - hilightingToolStripMenuItem1.Size = new System.Drawing.Size(224, 30); - hilightingToolStripMenuItem1.Text = "Highlighting and triggers..."; - hilightingToolStripMenuItem1.Click += OnHighlightingToolStripMenuItemClick; + hilightingToolStripMenuItem.Name = "hilightingToolStripMenuItem1"; + hilightingToolStripMenuItem.Size = new System.Drawing.Size(224, 30); + hilightingToolStripMenuItem.Text = "Highlighting and triggers..."; + hilightingToolStripMenuItem.Click += OnHighlightingToolStripMenuItemClick; // // ToolStripSeparator7 // @@ -779,15 +778,15 @@ private void InitializeComponent() // // host // - host.AccessibleName = "host"; - host.AutoSize = true; - host.BackColor = System.Drawing.Color.Transparent; - host.Location = new System.Drawing.Point(9, 1); - host.Name = "host"; - host.Size = new System.Drawing.Size(80, 22); - host.TabIndex = 7; - host.Text = "Follow tail"; - host.UseVisualStyleBackColor = false; + checkBoxHost.AccessibleName = "host"; + checkBoxHost.AutoSize = true; + checkBoxHost.BackColor = System.Drawing.Color.Transparent; + checkBoxHost.Location = new System.Drawing.Point(9, 1); + checkBoxHost.Name = "checkboxHost"; + checkBoxHost.Size = new System.Drawing.Size(80, 22); + checkBoxHost.TabIndex = 7; + checkBoxHost.Text = "Follow tail"; + checkBoxHost.UseVisualStyleBackColor = false; // // toolStripContainer // @@ -904,7 +903,7 @@ private void InitializeComponent() buttonToolStrip.AllowMerge = false; buttonToolStrip.Dock = DockStyle.None; buttonToolStrip.ImageScalingSize = new System.Drawing.Size(24, 24); - buttonToolStrip.Items.AddRange(new ToolStripItem[] { toolStripButtonOpen, lineToolStripSeparatorExtension1, toolStripButtonSearch, toolStripButtonFilter, lineToolStripSeparatorExtension2, toolStripButtonBookmark, toolStripButtonUp, toolStripButtonDown, lineToolStripSeparatorExtension3, toolStripButtonBubbles, lineToolStripSeparatorExtension4, toolStripButtonTail, lineToolStripSeparatorExtension5, groupsComboBoxHighlightGroups }); + buttonToolStrip.Items.AddRange(new ToolStripItem[] { toolStripButtonOpen, lineToolStripSeparatorExtension1, toolStripButtonSearch, toolStripButtonFilter, lineToolStripSeparatorExtension2, toolStripButtonBookmark, toolStripButtonUp, toolStripButtonDown, lineToolStripSeparatorExtension3, toolStripButtonBubbles, lineToolStripSeparatorExtension4, toolStripButtonTail, lineToolStripSeparatorExtension5, highlightGroupsToolStripComboBox }); buttonToolStrip.LayoutStyle = ToolStripLayoutStyle.Flow; buttonToolStrip.Location = new System.Drawing.Point(3, 42); buttonToolStrip.Name = "buttonToolStrip"; @@ -1026,15 +1025,15 @@ private void InitializeComponent() // // groupsComboBoxHighlightGroups // - groupsComboBoxHighlightGroups.DropDownStyle = ComboBoxStyle.DropDownList; - groupsComboBoxHighlightGroups.DropDownWidth = 250; - groupsComboBoxHighlightGroups.FlatStyle = FlatStyle.Standard; - groupsComboBoxHighlightGroups.Name = "groupsComboBoxHighlightGroups"; - groupsComboBoxHighlightGroups.Size = new System.Drawing.Size(150, 23); - groupsComboBoxHighlightGroups.ToolTipText = "Select the current highlight settings for the log file (right-click to open highlight settings)"; - groupsComboBoxHighlightGroups.DropDownClosed += OnHighlightGroupsComboBoxDropDownClosed; - groupsComboBoxHighlightGroups.SelectedIndexChanged += OnHighlightGroupsComboBoxSelectedIndexChanged; - groupsComboBoxHighlightGroups.MouseUp += OnHighlightGroupsComboBoxMouseUp; + highlightGroupsToolStripComboBox.DropDownStyle = ComboBoxStyle.DropDownList; + highlightGroupsToolStripComboBox.DropDownWidth = 250; + highlightGroupsToolStripComboBox.FlatStyle = FlatStyle.Standard; + highlightGroupsToolStripComboBox.Name = "highlightGroupsToolStripComboBox"; + highlightGroupsToolStripComboBox.Size = new System.Drawing.Size(150, 23); + highlightGroupsToolStripComboBox.ToolTipText = "Select the current highlight settings for the log file (right-click to open highlight settings)"; + highlightGroupsToolStripComboBox.DropDownClosed += OnHighlightGroupsComboBoxDropDownClosed; + highlightGroupsToolStripComboBox.SelectedIndexChanged += OnHighlightGroupsComboBoxSelectedIndexChanged; + highlightGroupsToolStripComboBox.MouseUp += OnHighlightGroupsComboBoxMouseUp; // // checkBoxFollowTail // @@ -1202,19 +1201,19 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem filterToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem copyMarkedLinesIntoNewTabToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem optionToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem hilightingToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem hilightingToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem cellSelectModeToolStripMenuItem; - private System.Windows.Forms.ToolStripTextBox timeshiftMenuTextBox; + private System.Windows.Forms.ToolStripTextBox timeshiftToolStripTextBox; private System.Windows.Forms.ToolStripMenuItem alwaysOnTopToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem bookmarksToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem toggleBookmarkToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem jumpToNextToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem jumpToPrevToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem toolStripEncodingMenuItem; - private System.Windows.Forms.ToolStripMenuItem toolStripEncodingASCIIItem; - private System.Windows.Forms.ToolStripMenuItem toolStripEncodingANSIItem; - private System.Windows.Forms.ToolStripMenuItem toolStripEncodingUTF8Item; - private System.Windows.Forms.ToolStripMenuItem toolStripEncodingUTF16Item; + private System.Windows.Forms.ToolStripMenuItem encodingToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem encodingASCIIToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem encodingANSIToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem encodingUTF8toolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem encodingUTF16toolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem reloadToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem columnizerToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem; @@ -1227,7 +1226,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripButton toolStripButtonBookmark; private System.Windows.Forms.ToolStripButton toolStripButtonUp; private System.Windows.Forms.ToolStripButton toolStripButtonDown; - private CheckBox host; + private CheckBox checkBoxHost; private CheckBox checkBoxFollowTail; private ToolStripButton toolStripButtonTail; private ToolStripMenuItem showHelpToolStripMenuItem; @@ -1245,7 +1244,7 @@ private void InitializeComponent() private ToolStripMenuItem findInExplorerToolStripMenuItem; private ToolStripMenuItem truncateFileToolStripMenuItem; private ToolStripMenuItem exportBookmarksToolStripMenuItem; - private ToolStripComboBox groupsComboBoxHighlightGroups; + private ToolStripComboBox highlightGroupsToolStripComboBox; private ToolStripMenuItem debugToolStripMenuItem; private ToolStripMenuItem dumpLogBufferInfoToolStripMenuItem; private ToolStripMenuItem dumpBufferDiagnosticToolStripMenuItem; @@ -1264,7 +1263,7 @@ private void InitializeComponent() private ToolStripMenuItem disableWordHighlightModeToolStripMenuItem; private ToolStripMenuItem multifileMaskToolStripMenuItem; private ToolStripMenuItem multiFileEnabledStripMenuItem; - private ToolStripMenuItem toolStripEncodingISO88591Item; + private ToolStripMenuItem encodingISO88591toolStripMenuItem; private ToolStripMenuItem lockInstanceToolStripMenuItem; private ToolStripMenuItem newFromClipboardToolStripMenuItem; private ToolStripMenuItem openURIToolStripMenuItem; diff --git a/src/LogExpert.UI/Dialogs/MultiFileMaskDialog.cs b/src/LogExpert.UI/Dialogs/MultiFileMaskDialog.cs index 6bbf4b12..13edef11 100644 --- a/src/LogExpert.UI/Dialogs/MultiFileMaskDialog.cs +++ b/src/LogExpert.UI/Dialogs/MultiFileMaskDialog.cs @@ -11,27 +11,33 @@ internal partial class MultiFileMaskDialog : Form #region cTor - public MultiFileMaskDialog(Form parent, string fileName) + public MultiFileMaskDialog (Form parent, string fileName) { - InitializeComponent(); + SuspendLayout(); + + Parent = parent; AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; - syntaxHelpLabel.Text = "" + - "Pattern syntax:\n\n" + - "* = any characters (wildcard)\n" + - "$D() = Date pattern\n" + - "$I = File index number\n" + - "$J = File index number, hidden when zero\n" + - "$J() = Like $J, but adding when non-zero\n" + - "\n" + - ":\n" + - "DD = day\n" + - "MM = month\n" + - "YY[YY] = year\n" + - "all other chars will be used as given"; + InitializeComponent(); + + ApplyResources(); + labelFileName.Text = fileName; + + ResumeLayout(); + } + + private void ApplyResources () + { + Text = Resources.MultiFileMaskDialog_UI_Title; + labelMultiSettingsFor.Text = Resources.MultiFileMaskDialog_UI_Label_SettingsFor; + labelFileNamePattern.Text = Resources.MultiFileMaskDialog_UI_Label_FileNamePattern; + labelMaxDays.Text = Resources.MultiFileMaskDialog_UI_Label_MaxDays; + syntaxHelpLabel.Text = Resources.MultiFileMaskDialog_UI_Label_SyntaxHelp; + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; } #endregion @@ -46,13 +52,13 @@ public MultiFileMaskDialog(Form parent, string fileName) #region Events handler - private void OnButtonOKClick(object sender, EventArgs e) + private void OnButtonOKClick (object sender, EventArgs e) { FileNamePattern = fileNamePatternTextBox.Text; MaxDays = (int)upDownMaxDays.Value; } - private void OnMultiFileMaskDialogLoad(object sender, EventArgs e) + private void OnMultiFileMaskDialogLoad (object sender, EventArgs e) { fileNamePatternTextBox.Text = FileNamePattern; upDownMaxDays.Value = MaxDays; diff --git a/src/LogExpert.UI/Dialogs/MultiLoadRequestDialog.cs b/src/LogExpert.UI/Dialogs/MultiLoadRequestDialog.cs index 0e311a0e..6e1d80df 100644 --- a/src/LogExpert.UI/Dialogs/MultiLoadRequestDialog.cs +++ b/src/LogExpert.UI/Dialogs/MultiLoadRequestDialog.cs @@ -7,12 +7,26 @@ internal partial class MultiLoadRequestDialog : Form { #region cTor - public MultiLoadRequestDialog() + public MultiLoadRequestDialog () { + SuspendLayout(); + InitializeComponent(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + + ApplyResources(); + + ResumeLayout(); + } + + private void ApplyResources () + { + Text = Resources.MultiLoadRequestDialog_UI_Title; + labelChooseLoadingMode.Text = Resources.MultiLoadRequestDialog_UI_Label_ChooseLoadingMode; + buttonSingleMode.Text = Resources.MultiLoadRequestDialog_UI_Button_SingleFiles; + buttonMultiMode.Text = Resources.MultiLoadRequestDialog_UI_Button_MultiFile; } #endregion diff --git a/src/LogExpert.UI/Dialogs/OpenUriDialog.Designer.cs b/src/LogExpert.UI/Dialogs/OpenUriDialog.Designer.cs index 0f54eb31..c6759528 100644 --- a/src/LogExpert.UI/Dialogs/OpenUriDialog.Designer.cs +++ b/src/LogExpert.UI/Dialogs/OpenUriDialog.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert.UI.Dialogs; +namespace LogExpert.UI.Dialogs; partial class OpenUriDialog { @@ -30,10 +30,10 @@ private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OpenUriDialog)); this.cmbUri = new System.Windows.Forms.ComboBox(); - this.label1 = new System.Windows.Forms.Label(); + this.labelUrl = new System.Windows.Forms.Label(); this.okButton = new System.Windows.Forms.Button(); this.cancelButton = new System.Windows.Forms.Button(); - this.label2 = new System.Windows.Forms.Label(); + this.labelExplaination = new System.Windows.Forms.Label(); this.SuspendLayout(); // // uriComboBox @@ -48,12 +48,12 @@ private void InitializeComponent() // // label1 // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 21); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(32, 13); - this.label1.TabIndex = 1; - this.label1.Text = "URL:"; + this.labelUrl.AutoSize = true; + this.labelUrl.Location = new System.Drawing.Point(12, 21); + this.labelUrl.Name = "label1"; + this.labelUrl.Size = new System.Drawing.Size(32, 13); + this.labelUrl.TabIndex = 1; + this.labelUrl.Text = "URL:"; // // okButton // @@ -80,12 +80,12 @@ private void InitializeComponent() // // label2 // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 84); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(410, 13); - this.label2.TabIndex = 4; - this.label2.Text = "Enter a URL which is supported by an installed file system plugin (e.g. file:// o" + + this.labelExplaination.AutoSize = true; + this.labelExplaination.Location = new System.Drawing.Point(12, 84); + this.labelExplaination.Name = "label2"; + this.labelExplaination.Size = new System.Drawing.Size(410, 13); + this.labelExplaination.TabIndex = 4; + this.labelExplaination.Text = "Enter a URL which is supported by an installed file system plugin (e.g. file:// o" + "r sftp://)"; // // OpenUriDialog @@ -93,10 +93,10 @@ private void InitializeComponent() this.AcceptButton = this.okButton; this.CancelButton = this.cancelButton; this.ClientSize = new System.Drawing.Size(475, 162); - this.Controls.Add(this.label2); + this.Controls.Add(this.labelExplaination); this.Controls.Add(this.cancelButton); this.Controls.Add(this.okButton); - this.Controls.Add(this.label1); + this.Controls.Add(this.labelUrl); this.Controls.Add(this.cmbUri); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; @@ -114,8 +114,8 @@ private void InitializeComponent() #endregion private System.Windows.Forms.ComboBox cmbUri; -private System.Windows.Forms.Label label1; +private System.Windows.Forms.Label labelUrl; private System.Windows.Forms.Button okButton; private System.Windows.Forms.Button cancelButton; -private System.Windows.Forms.Label label2; +private System.Windows.Forms.Label labelExplaination; } \ No newline at end of file diff --git a/src/LogExpert.UI/Dialogs/OpenUriDialog.cs b/src/LogExpert.UI/Dialogs/OpenUriDialog.cs index 06bb7fa8..0172d8ef 100644 --- a/src/LogExpert.UI/Dialogs/OpenUriDialog.cs +++ b/src/LogExpert.UI/Dialogs/OpenUriDialog.cs @@ -11,14 +11,17 @@ internal partial class OpenUriDialog : Form #region cTor - public OpenUriDialog() + public OpenUriDialog () { SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); + ApplyResources(); + ResumeLayout(); } @@ -26,6 +29,7 @@ public OpenUriDialog() #region Properties + //TODO Convert to System.Uri public string Uri => cmbUri.Text; public IList UriHistory { get; set; } @@ -34,19 +38,29 @@ public OpenUriDialog() #region Events handler - private void OnOpenUriDialogLoad(object sender, EventArgs e) + private void ApplyResources () + { + Text = Resources.OpenUriDialog_UI_Dialog_Text; + labelUrl.Text = Resources.OpenUriDialog_UI_Label_URL; + okButton.Text = Resources.LogExpert_Common_UI_Button_OK; + cancelButton.Text = Resources.LogExpert_Common_UI_Button_Cancel; + labelExplaination.Text = Resources.OpenUriDialog_UI_Label_Explaination; + + } + + private void OnOpenUriDialogLoad (object sender, EventArgs e) { if (UriHistory != null) { cmbUri.Items.Clear(); foreach (var uri in UriHistory) { - cmbUri.Items.Add(uri); + _ = cmbUri.Items.Add(uri); } } } - private void OnBtnOkClick(object sender, EventArgs e) + private void OnBtnOkClick (object sender, EventArgs e) { UriHistory = []; @@ -57,7 +71,8 @@ private void OnBtnOkClick(object sender, EventArgs e) if (UriHistory.Contains(cmbUri.Text)) { - UriHistory.Remove(cmbUri.Text); + _ = UriHistory.Remove(cmbUri.Text); + } UriHistory.Insert(0, cmbUri.Text); diff --git a/src/LogExpert.UI/Dialogs/ParamRequesterDialog.Designer.cs b/src/LogExpert.UI/Dialogs/ParamRequesterDialog.Designer.cs index a42f5b83..d2cc5037 100644 --- a/src/LogExpert.UI/Dialogs/ParamRequesterDialog.Designer.cs +++ b/src/LogExpert.UI/Dialogs/ParamRequesterDialog.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert.Dialogs; +namespace LogExpert.Dialogs; partial class ParamRequesterDialog { @@ -89,7 +89,7 @@ private void InitializeComponent() this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Tool parameter"; - this.Shown += new System.EventHandler(this.ParamRequesterDialog_Shown); + this.Shown += new System.EventHandler(this.OnParamRequesterDialogShown); this.ResumeLayout(false); this.PerformLayout(); diff --git a/src/LogExpert.UI/Dialogs/ParamRequesterDialog.cs b/src/LogExpert.UI/Dialogs/ParamRequesterDialog.cs index 263a8a71..a8ec5cc7 100644 --- a/src/LogExpert.UI/Dialogs/ParamRequesterDialog.cs +++ b/src/LogExpert.UI/Dialogs/ParamRequesterDialog.cs @@ -7,41 +7,59 @@ internal partial class ParamRequesterDialog : Form { #region Fields + private readonly string[] _values; + private readonly string _paramName; + #endregion #region cTor - public ParamRequesterDialog () + public ParamRequesterDialog (string parameterName, string[] values) { - InitializeComponent(); + SuspendLayout(); + + _values = values; + _paramName = parameterName; AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + + InitializeComponent(); + ApplyResources(); + + ResumeLayout(); + } + + private void ApplyResources () + { + Text = Resources.ParamRequesterDialog_UI_Title; + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; + + //Fallback + if (string.IsNullOrEmpty(_paramName)) + { + labelValueForParameter.Text = Resources.ParamRequesterDialog_UI_Label_ValueForParameter; + } } #endregion #region Properties - public string ParamName { get; set; } - public string ParamValue { get; set; } - public string[] Values { get; set; } - #endregion #region Events handler - private void ParamRequesterDialog_Shown (object sender, EventArgs e) + private void OnParamRequesterDialogShown (object sender, EventArgs e) { - labelValueForParameter.Text = ParamName; - - if (Values != null) + if (_values != null) { - foreach (var value in Values) + foreach (var value in _values) { - comboBoxValue.Items.Add(value); + _ = comboBoxValue.Items.Add(value); } comboBoxValue.SelectedIndex = 0; diff --git a/src/LogExpert.UI/Dialogs/ProjectLoadDlg.cs b/src/LogExpert.UI/Dialogs/ProjectLoadDlg.cs index 5d268884..1b77b0a6 100644 --- a/src/LogExpert.UI/Dialogs/ProjectLoadDlg.cs +++ b/src/LogExpert.UI/Dialogs/ProjectLoadDlg.cs @@ -1,7 +1,7 @@ -using LogExpert.Core.Enums; - using System.Runtime.Versioning; +using LogExpert.Core.Enums; + namespace LogExpert.Dialogs; [SupportedOSPlatform("windows")] @@ -13,12 +13,28 @@ internal partial class ProjectLoadDlg : Form #region cTor - public ProjectLoadDlg() + public ProjectLoadDlg () { - InitializeComponent(); + SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + + InitializeComponent(); + + ApplyResources(); + + ResumeLayout(); + } + + private void ApplyResources () + { + Text = Resources.ProjectLoadDlg_UI_Title; + labelInformational.Text = Resources.ProjectLoadDlg_UI_Label_Informational; + labelChooseHowToProceed.Text = Resources.ProjectLoadDlg_UI_Label_ChooseHowToProceed; + buttonCloseTabs.Text = Resources.ProjectLoadDlg_UI_Button_CloseTabs; + buttonNewWindow.Text = Resources.ProjectLoadDlg_UI_Button_NewWindow; + buttonIgnore.Text = Resources.ProjectLoadDlg_UI_Button_Ignore; } #endregion @@ -31,19 +47,19 @@ public ProjectLoadDlg() #region Events handler - private void OnButtonCloseTabsClick(object sender, EventArgs e) + private void OnButtonCloseTabsClick (object sender, EventArgs e) { ProjectLoadResult = ProjectLoadDlgResult.CloseTabs; Close(); } - private void OnButtonNewWindowClick(object sender, EventArgs e) + private void OnButtonNewWindowClick (object sender, EventArgs e) { ProjectLoadResult = ProjectLoadDlgResult.NewWindow; Close(); } - private void OnButtonIgnoreClick(object sender, EventArgs e) + private void OnButtonIgnoreClick (object sender, EventArgs e) { ProjectLoadResult = ProjectLoadDlgResult.IgnoreLayout; Close(); diff --git a/src/LogExpert.UI/Dialogs/RegexHelperDialog.cs b/src/LogExpert.UI/Dialogs/RegexHelperDialog.cs index ac401d8b..9d17ba78 100644 --- a/src/LogExpert.UI/Dialogs/RegexHelperDialog.cs +++ b/src/LogExpert.UI/Dialogs/RegexHelperDialog.cs @@ -10,8 +10,6 @@ internal partial class RegexHelperDialog : Form private const int MAX_HISTORY = 30; private bool _caseSensitive; - private List _expressionHistoryList = []; - private List _testtextHistoryList = []; #endregion @@ -19,12 +17,30 @@ internal partial class RegexHelperDialog : Form public RegexHelperDialog () { - InitializeComponent(); + SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); + + ApplyResources(); + Load += OnRegexHelperDialogLoad; + + ResumeLayout(); + } + + private void ApplyResources () + { + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; + labelRegex.Text = Resources.RegexHelperDialog_UI_Label_Regex; + labelTestText.Text = Resources.RegexHelperDialog_UI_Label_TestText; + labelMatches.Text = Resources.RegexHelperDialog_UI_Label_Matches; + checkBoxCaseSensitive.Text = Resources.RegexHelperDialog_UI_CheckBox_CaseSensitive; + buttonHelp.Text = Resources.LogExpert_Common_UI_Button_Help; + Text = Resources.RegexHelperDialog_UI_Title; } #endregion @@ -47,17 +63,9 @@ public string Pattern set => comboBoxRegex.Text = value; } - public List ExpressionHistoryList - { - get => _expressionHistoryList; - set => _expressionHistoryList = value; - } + public List ExpressionHistoryList { get; set; } = []; - public List TesttextHistoryList - { - get => _testtextHistoryList; - set => _testtextHistoryList = value; - } + public List TesttextHistoryList { get; set; } = []; #endregion @@ -65,7 +73,7 @@ public List TesttextHistoryList private void UpdateMatches () { - textBoxMatches.Text = ""; + textBoxMatches.Text = string.Empty; try { Regex rex = new(comboBoxRegex.Text, _caseSensitive ? RegexOptions.None : RegexOptions.IgnoreCase); @@ -78,17 +86,17 @@ private void UpdateMatches () } catch (ArgumentException) { - textBoxMatches.Text = "No valid regex pattern"; + textBoxMatches.Text = Resources.RegexHelperDialog_UI_TextBox_Matches_NoValidRegexPattern; } } private void LoadHistory () { comboBoxRegex.Items.Clear(); - comboBoxRegex.DataSource = _expressionHistoryList; + comboBoxRegex.DataSource = ExpressionHistoryList; comboBoxTestText.Items.Clear(); - comboBoxTestText.DataSource = _testtextHistoryList; + comboBoxTestText.DataSource = TesttextHistoryList; } #endregion @@ -139,7 +147,7 @@ private void OnComboBoxTestTextTextChanged (object sender, EventArgs e) private void OnButtonHelpClick (object sender, EventArgs e) { - Help.ShowHelp(this, "LogExpert.chm", HelpNavigator.Topic, "RegEx.htm"); + Help.ShowHelp(this, Resources.LogTabWindow_HelpFile, HelpNavigator.Topic, Resources.RegexHelperDialog_Help_Chapter); } #endregion diff --git a/src/LogExpert.UI/Dialogs/SearchDialog.cs b/src/LogExpert.UI/Dialogs/SearchDialog.cs index a12294ed..62f6ba13 100644 --- a/src/LogExpert.UI/Dialogs/SearchDialog.cs +++ b/src/LogExpert.UI/Dialogs/SearchDialog.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Runtime.Versioning; using System.Text.RegularExpressions; @@ -19,12 +20,36 @@ internal partial class SearchDialog : Form public SearchDialog () { - InitializeComponent(); + SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); + + ApplyResources(); + Load += OnSearchDialogLoad; + + ResumeLayout(); + } + + private void ApplyResources () + { + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; + labelSearchFor.Text = Resources.SearchDialog_UI_Label_SearchFor; + checkBoxCaseSensitive.Text = Resources.SearchDialog_UI_CheckBox_CaseSensitive; + checkBoxRegex.Text = Resources.SearchDialog_UI_CheckBox_RegularExpression; + buttonRegexHelper.Text = Resources.SearchDialog_UI_Button_RegexHelper; + radioButtonFromTop.Text = Resources.SearchDialog_UI_RadioButton_FromTop; + radioButtonFromSelected.Text = Resources.SearchDialog_UI_RadioButton_FromSelectedLine; + groupBoxSearchStart.Text = Resources.SearchDialog_UI_GroupBox_SearchStart; + groupBoxOptions.Text = Resources.SearchDialog_UI_GroupBox_Options; + groupBoxDirection.Text = Resources.SearchDialog_UI_GroupBox_Direction; + radioButtonBackward.Text = Resources.SearchDialog_UI_RadioButton_Backward; + radioButtonForward.Text = Resources.SearchDialog_UI_RadioButton_Forward; + Text = Resources.SearchDialog_UI_Title; } #endregion @@ -63,7 +88,7 @@ private void OnSearchDialogLoad (object? sender, EventArgs e) checkBoxCaseSensitive.Checked = SearchParams.IsCaseSensitive; foreach (var item in SearchParams.HistoryList) { - comboBoxSearchFor.Items.Add(item); + _ = comboBoxSearchFor.Items.Add(item); } if (comboBoxSearchFor.Items.Count > 0) @@ -103,10 +128,10 @@ private void OnButtonOkClick (object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(comboBoxSearchFor.Text)) { - throw new ArgumentException("Search text is empty"); + throw new ArgumentException(Resources.SearchDialog_UI_Error_SearchTextEmpty); } - Regex.IsMatch("", comboBoxSearchFor.Text); + _ = Regex.IsMatch("", comboBoxSearchFor.Text); } SearchParams.SearchText = comboBoxSearchFor.Text; @@ -114,7 +139,7 @@ private void OnButtonOkClick (object sender, EventArgs e) SearchParams.IsForward = radioButtonForward.Checked; SearchParams.IsFromTop = radioButtonFromTop.Checked; SearchParams.IsRegex = checkBoxRegex.Checked; - SearchParams.HistoryList.Remove(comboBoxSearchFor.Text); + _ = SearchParams.HistoryList.Remove(comboBoxSearchFor.Text); SearchParams.HistoryList.Insert(0, comboBoxSearchFor.Text); if (SearchParams.HistoryList.Count > MAX_HISTORY) @@ -124,14 +149,14 @@ private void OnButtonOkClick (object sender, EventArgs e) } catch (Exception ex) { - MessageBox.Show($"Error during creation of search parameter\r\n{ex.Message}"); + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.SearchDialog_UI_Error_CreatingSearchParameter, ex.Message)); } } - #endregion - private void OnButtonCancelClick (object sender, EventArgs e) { Close(); } + + #endregion } \ No newline at end of file diff --git a/src/LogExpert.UI/Dialogs/SearchProgressDialog.cs b/src/LogExpert.UI/Dialogs/SearchProgressDialog.cs index 5d1f8deb..d37df025 100644 --- a/src/LogExpert.UI/Dialogs/SearchProgressDialog.cs +++ b/src/LogExpert.UI/Dialogs/SearchProgressDialog.cs @@ -5,20 +5,29 @@ namespace LogExpert.UI.Dialogs; [SupportedOSPlatform("windows")] internal partial class SearchProgressDialog : Form { - #region Fields - - #endregion - #region cTor - public SearchProgressDialog() + public SearchProgressDialog () { + SuspendLayout(); + InitializeComponent(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + ApplyResources(); + ShouldStop = false; + + ResumeLayout(); + } + + private void ApplyResources () + { + Text = Resources.SearchProgressDialog_UI_Title; + labelSearchProgress.Text = Resources.SearchProgressDialog_UI_Label_SearchingInProgress; + buttonCancel.Text = Resources.SearchProgressDialog_UI_Button_CancelSearch; } #endregion @@ -31,7 +40,7 @@ public SearchProgressDialog() #region Events handler - private void OnButtonCancelClick(object sender, EventArgs e) + private void OnButtonCancelClick (object sender, EventArgs e) { ShouldStop = true; } diff --git a/src/LogExpert.UI/Dialogs/SettingsDialog.Designer.cs b/src/LogExpert.UI/Dialogs/SettingsDialog.Designer.cs index b4d5bad8..2f853806 100644 --- a/src/LogExpert.UI/Dialogs/SettingsDialog.Designer.cs +++ b/src/LogExpert.UI/Dialogs/SettingsDialog.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert.Dialogs; +namespace LogExpert.Dialogs; partial class SettingsDialog { @@ -26,136 +26,135 @@ protected override void Dispose(bool disposing) /// Required method for Designer support - do not modify /// the contents of this method with the code editor. ///
    - private void InitializeComponent() + private void InitializeComponent () { components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsDialog)); - tabControlSettings = new System.Windows.Forms.TabControl(); - tabPageViewSettings = new System.Windows.Forms.TabPage(); - labelWarningMaximumLineLenght = new System.Windows.Forms.Label(); - upDownMaximumLineLength = new System.Windows.Forms.NumericUpDown(); - labelMaximumLineLength = new System.Windows.Forms.Label(); - upDownMaximumFilterEntriesDisplayed = new System.Windows.Forms.NumericUpDown(); - labelMaximumFilterEntriesDisplayed = new System.Windows.Forms.Label(); - upDownMaximumFilterEntries = new System.Windows.Forms.NumericUpDown(); - labelMaximumFilterEntries = new System.Windows.Forms.Label(); - labelDefaultEncoding = new System.Windows.Forms.Label(); - comboBoxEncoding = new System.Windows.Forms.ComboBox(); - groupBoxMisc = new System.Windows.Forms.GroupBox(); - checkBoxShowErrorMessageOnlyOneInstance = new System.Windows.Forms.CheckBox(); - cpDownColumnWidth = new System.Windows.Forms.NumericUpDown(); - checkBoxColumnSize = new System.Windows.Forms.CheckBox(); - buttonTailColor = new System.Windows.Forms.Button(); - checkBoxTailState = new System.Windows.Forms.CheckBox(); - checkBoxOpenLastFiles = new System.Windows.Forms.CheckBox(); - checkBoxSingleInstance = new System.Windows.Forms.CheckBox(); - checkBoxAskCloseTabs = new System.Windows.Forms.CheckBox(); - groupBoxDefaults = new System.Windows.Forms.GroupBox(); - checkBoxDarkMode = new System.Windows.Forms.CheckBox(); - checkBoxFollowTail = new System.Windows.Forms.CheckBox(); - checkBoxColumnFinder = new System.Windows.Forms.CheckBox(); - checkBoxSyncFilter = new System.Windows.Forms.CheckBox(); - checkBoxFilterTail = new System.Windows.Forms.CheckBox(); - groupBoxFont = new System.Windows.Forms.GroupBox(); - buttonChangeFont = new System.Windows.Forms.Button(); - labelFont = new System.Windows.Forms.Label(); - tabPageTimeStampFeatures = new System.Windows.Forms.TabPage(); - groupBoxTimeSpreadDisplay = new System.Windows.Forms.GroupBox(); - groupBoxDisplayMode = new System.Windows.Forms.GroupBox(); - radioButtonLineView = new System.Windows.Forms.RadioButton(); - radioButtonTimeView = new System.Windows.Forms.RadioButton(); - checkBoxReverseAlpha = new System.Windows.Forms.CheckBox(); - buttonTimespreadColor = new System.Windows.Forms.Button(); - checkBoxTimeSpread = new System.Windows.Forms.CheckBox(); - groupBoxTimeStampNavigationControl = new System.Windows.Forms.GroupBox(); - checkBoxTimestamp = new System.Windows.Forms.CheckBox(); - groupBoxMouseDragDefaults = new System.Windows.Forms.GroupBox(); - radioButtonVerticalMouseDragInverted = new System.Windows.Forms.RadioButton(); - radioButtonHorizMouseDrag = new System.Windows.Forms.RadioButton(); - radioButtonVerticalMouseDrag = new System.Windows.Forms.RadioButton(); - tabPageExternalTools = new System.Windows.Forms.TabPage(); - labelToolsDescription = new System.Windows.Forms.Label(); - buttonToolDelete = new System.Windows.Forms.Button(); - buttonToolAdd = new System.Windows.Forms.Button(); - buttonToolDown = new System.Windows.Forms.Button(); - buttonToolUp = new System.Windows.Forms.Button(); - listBoxTools = new System.Windows.Forms.CheckedListBox(); - groupBoxToolSettings = new System.Windows.Forms.GroupBox(); - labelWorkingDir = new System.Windows.Forms.Label(); - buttonWorkingDir = new System.Windows.Forms.Button(); - textBoxWorkingDir = new System.Windows.Forms.TextBox(); - buttonIcon = new System.Windows.Forms.Button(); - labelToolName = new System.Windows.Forms.Label(); - labelToolColumnizerForOutput = new System.Windows.Forms.Label(); - comboBoxColumnizer = new System.Windows.Forms.ComboBox(); - textBoxToolName = new System.Windows.Forms.TextBox(); - checkBoxSysout = new System.Windows.Forms.CheckBox(); - buttonArguments = new System.Windows.Forms.Button(); - labelTool = new System.Windows.Forms.Label(); - buttonTool = new System.Windows.Forms.Button(); - textBoxTool = new System.Windows.Forms.TextBox(); - labelArguments = new System.Windows.Forms.Label(); - textBoxArguments = new System.Windows.Forms.TextBox(); - tabPageColumnizers = new System.Windows.Forms.TabPage(); - checkBoxAutoPick = new System.Windows.Forms.CheckBox(); - checkBoxMaskPrio = new System.Windows.Forms.CheckBox(); - buttonDelete = new System.Windows.Forms.Button(); - dataGridViewColumnizer = new System.Windows.Forms.DataGridView(); - columnFileMask = new System.Windows.Forms.DataGridViewTextBoxColumn(); - columnColumnizer = new System.Windows.Forms.DataGridViewComboBoxColumn(); - tabPageHighlightMask = new System.Windows.Forms.TabPage(); - dataGridViewHighlightMask = new System.Windows.Forms.DataGridView(); - columnFileName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - columnHighlightGroup = new System.Windows.Forms.DataGridViewComboBoxColumn(); - tabPageMultiFile = new System.Windows.Forms.TabPage(); - groupBoxDefaultFileNamePattern = new System.Windows.Forms.GroupBox(); - labelMaxDays = new System.Windows.Forms.Label(); - labelPattern = new System.Windows.Forms.Label(); - upDownMultifileDays = new System.Windows.Forms.NumericUpDown(); - textBoxMultifilePattern = new System.Windows.Forms.TextBox(); - labelHintMultiFile = new System.Windows.Forms.Label(); - labelNoteMultiFile = new System.Windows.Forms.Label(); - groupBoxWhenOpeningMultiFile = new System.Windows.Forms.GroupBox(); - radioButtonAskWhatToDo = new System.Windows.Forms.RadioButton(); - radioButtonTreatAllFilesAsOneMultifile = new System.Windows.Forms.RadioButton(); - radioButtonLoadEveryFileIntoSeperatedTab = new System.Windows.Forms.RadioButton(); - tabPagePlugins = new System.Windows.Forms.TabPage(); - groupBoxPlugins = new System.Windows.Forms.GroupBox(); - listBoxPlugin = new System.Windows.Forms.ListBox(); - groupBoxSettings = new System.Windows.Forms.GroupBox(); - panelPlugin = new System.Windows.Forms.Panel(); - buttonConfigPlugin = new System.Windows.Forms.Button(); - tabPageSessions = new System.Windows.Forms.TabPage(); - checkBoxPortableMode = new System.Windows.Forms.CheckBox(); - checkBoxSaveFilter = new System.Windows.Forms.CheckBox(); - groupBoxPersistantFileLocation = new System.Windows.Forms.GroupBox(); - labelSessionSaveOwnDir = new System.Windows.Forms.Label(); - buttonSessionSaveDir = new System.Windows.Forms.Button(); - radioButtonSessionSaveOwn = new System.Windows.Forms.RadioButton(); - radioButtonsessionSaveDocuments = new System.Windows.Forms.RadioButton(); - radioButtonSessionSameDir = new System.Windows.Forms.RadioButton(); - radioButtonSessionApplicationStartupDir = new System.Windows.Forms.RadioButton(); - checkBoxSaveSessions = new System.Windows.Forms.CheckBox(); - tabPageMemory = new System.Windows.Forms.TabPage(); - groupBoxCPUAndStuff = new System.Windows.Forms.GroupBox(); - checkBoxLegacyReader = new System.Windows.Forms.CheckBox(); - checkBoxMultiThread = new System.Windows.Forms.CheckBox(); - labelFilePollingInterval = new System.Windows.Forms.Label(); - upDownPollingInterval = new System.Windows.Forms.NumericUpDown(); - groupBoxLineBufferUsage = new System.Windows.Forms.GroupBox(); - labelInfo = new System.Windows.Forms.Label(); - labelNumberOfBlocks = new System.Windows.Forms.Label(); - upDownLinesPerBlock = new System.Windows.Forms.NumericUpDown(); - upDownBlockCount = new System.Windows.Forms.NumericUpDown(); - labelLinesPerBlock = new System.Windows.Forms.Label(); - buttonCancel = new System.Windows.Forms.Button(); - buttonOk = new System.Windows.Forms.Button(); - helpProvider = new System.Windows.Forms.HelpProvider(); - toolTip = new System.Windows.Forms.ToolTip(components); - buttonExport = new System.Windows.Forms.Button(); - buttonImport = new System.Windows.Forms.Button(); - dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + tabControlSettings = new TabControl(); + tabPageViewSettings = new TabPage(); + labelWarningMaximumLineLength = new Label(); + upDownMaximumLineLength = new NumericUpDown(); + labelMaximumLineLength = new Label(); + upDownMaximumFilterEntriesDisplayed = new NumericUpDown(); + labelMaximumFilterEntriesDisplayed = new Label(); + upDownMaximumFilterEntries = new NumericUpDown(); + labelMaximumFilterEntries = new Label(); + labelDefaultEncoding = new Label(); + comboBoxEncoding = new ComboBox(); + groupBoxMisc = new GroupBox(); + checkBoxShowErrorMessageOnlyOneInstance = new CheckBox(); + cpDownColumnWidth = new NumericUpDown(); + checkBoxColumnSize = new CheckBox(); + buttonTailColor = new Button(); + checkBoxTailState = new CheckBox(); + checkBoxOpenLastFiles = new CheckBox(); + checkBoxSingleInstance = new CheckBox(); + checkBoxAskCloseTabs = new CheckBox(); + groupBoxDefaults = new GroupBox(); + labelLanguage = new Label(); + comboBoxLanguage = new ComboBox(); + checkBoxDarkMode = new CheckBox(); + checkBoxFollowTail = new CheckBox(); + checkBoxColumnFinder = new CheckBox(); + checkBoxSyncFilter = new CheckBox(); + checkBoxFilterTail = new CheckBox(); + groupBoxFont = new GroupBox(); + buttonChangeFont = new Button(); + labelFont = new Label(); + tabPageTimeStampFeatures = new TabPage(); + groupBoxTimeSpreadDisplay = new GroupBox(); + groupBoxDisplayMode = new GroupBox(); + radioButtonLineView = new RadioButton(); + radioButtonTimeView = new RadioButton(); + checkBoxReverseAlpha = new CheckBox(); + buttonTimespreadColor = new Button(); + checkBoxTimeSpread = new CheckBox(); + groupBoxTimeStampNavigationControl = new GroupBox(); + checkBoxTimestamp = new CheckBox(); + groupBoxMouseDragDefaults = new GroupBox(); + radioButtonVerticalMouseDragInverted = new RadioButton(); + radioButtonHorizMouseDrag = new RadioButton(); + radioButtonVerticalMouseDrag = new RadioButton(); + tabPageExternalTools = new TabPage(); + labelToolsDescription = new Label(); + buttonToolDelete = new Button(); + buttonToolAdd = new Button(); + buttonToolDown = new Button(); + buttonToolUp = new Button(); + listBoxTools = new CheckedListBox(); + groupBoxToolSettings = new GroupBox(); + labelWorkingDir = new Label(); + buttonWorkingDir = new Button(); + textBoxWorkingDir = new TextBox(); + buttonIcon = new Button(); + labelToolName = new Label(); + labelToolColumnizerForOutput = new Label(); + comboBoxColumnizer = new ComboBox(); + textBoxToolName = new TextBox(); + checkBoxSysout = new CheckBox(); + buttonArguments = new Button(); + labelTool = new Label(); + buttonTool = new Button(); + textBoxTool = new TextBox(); + labelArguments = new Label(); + textBoxArguments = new TextBox(); + tabPageColumnizers = new TabPage(); + checkBoxAutoPick = new CheckBox(); + checkBoxMaskPrio = new CheckBox(); + buttonDelete = new Button(); + dataGridViewColumnizer = new DataGridView(); + dataGridViewTextBoxColumnFileMask = new DataGridViewTextBoxColumn(); + dataGridViewComboBoxColumnColumnizer = new DataGridViewComboBoxColumn(); + tabPageHighlightMask = new TabPage(); + dataGridViewHighlightMask = new DataGridView(); + dataGridViewTextBoxColumnFileName = new DataGridViewTextBoxColumn(); + dataGridViewComboBoxColumnHighlightGroup = new DataGridViewComboBoxColumn(); + tabPageMultiFile = new TabPage(); + groupBoxDefaultFileNamePattern = new GroupBox(); + labelMaxDays = new Label(); + labelPattern = new Label(); + upDownMultifileDays = new NumericUpDown(); + textBoxMultifilePattern = new TextBox(); + labelHintMultiFile = new Label(); + labelNoteMultiFile = new Label(); + groupBoxWhenOpeningMultiFile = new GroupBox(); + radioButtonAskWhatToDo = new RadioButton(); + radioButtonTreatAllFilesAsOneMultifile = new RadioButton(); + radioButtonLoadEveryFileIntoSeperatedTab = new RadioButton(); + tabPagePlugins = new TabPage(); + groupBoxPlugins = new GroupBox(); + listBoxPlugin = new ListBox(); + groupBoxSettings = new GroupBox(); + panelPlugin = new Panel(); + buttonConfigPlugin = new Button(); + tabPageSessions = new TabPage(); + checkBoxPortableMode = new CheckBox(); + checkBoxSaveFilter = new CheckBox(); + groupBoxPersistantFileLocation = new GroupBox(); + labelSessionSaveOwnDir = new Label(); + buttonSessionSaveDir = new Button(); + radioButtonSessionSaveOwn = new RadioButton(); + radioButtonsessionSaveDocuments = new RadioButton(); + radioButtonSessionSameDir = new RadioButton(); + radioButtonSessionApplicationStartupDir = new RadioButton(); + checkBoxSaveSessions = new CheckBox(); + tabPageMemory = new TabPage(); + groupBoxCPUAndStuff = new GroupBox(); + checkBoxLegacyReader = new CheckBox(); + checkBoxMultiThread = new CheckBox(); + labelFilePollingInterval = new Label(); + upDownPollingInterval = new NumericUpDown(); + groupBoxLineBufferUsage = new GroupBox(); + labelInfo = new Label(); + labelNumberOfBlocks = new Label(); + upDownLinesPerBlock = new NumericUpDown(); + upDownBlockCount = new NumericUpDown(); + labelLinesPerBlock = new Label(); + buttonCancel = new Button(); + buttonOk = new Button(); + helpProvider = new HelpProvider(); + toolTip = new ToolTip(components); + buttonExport = new Button(); + buttonImport = new Button(); tabControlSettings.SuspendLayout(); tabPageViewSettings.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)upDownMaximumLineLength).BeginInit(); @@ -205,16 +204,16 @@ private void InitializeComponent() tabControlSettings.Controls.Add(tabPagePlugins); tabControlSettings.Controls.Add(tabPageSessions); tabControlSettings.Controls.Add(tabPageMemory); - tabControlSettings.Location = new System.Drawing.Point(2, 3); - tabControlSettings.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + tabControlSettings.Location = new Point(2, 3); + tabControlSettings.Margin = new Padding(4, 5, 4, 5); tabControlSettings.Name = "tabControlSettings"; tabControlSettings.SelectedIndex = 0; - tabControlSettings.Size = new System.Drawing.Size(950, 468); + tabControlSettings.Size = new Size(950, 468); tabControlSettings.TabIndex = 0; // // tabPageViewSettings // - tabPageViewSettings.Controls.Add(labelWarningMaximumLineLenght); + tabPageViewSettings.Controls.Add(labelWarningMaximumLineLength); tabPageViewSettings.Controls.Add(upDownMaximumLineLength); tabPageViewSettings.Controls.Add(labelMaximumLineLength); tabPageViewSettings.Controls.Add(upDownMaximumFilterEntriesDisplayed); @@ -226,104 +225,104 @@ private void InitializeComponent() tabPageViewSettings.Controls.Add(groupBoxMisc); tabPageViewSettings.Controls.Add(groupBoxDefaults); tabPageViewSettings.Controls.Add(groupBoxFont); - tabPageViewSettings.Location = new System.Drawing.Point(4, 24); - tabPageViewSettings.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + tabPageViewSettings.Location = new Point(4, 24); + tabPageViewSettings.Margin = new Padding(4, 5, 4, 5); tabPageViewSettings.Name = "tabPageViewSettings"; - tabPageViewSettings.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - tabPageViewSettings.Size = new System.Drawing.Size(942, 440); + tabPageViewSettings.Padding = new Padding(4, 5, 4, 5); + tabPageViewSettings.Size = new Size(942, 440); tabPageViewSettings.TabIndex = 0; tabPageViewSettings.Text = "View settings"; tabPageViewSettings.UseVisualStyleBackColor = true; // - // labelWarningMaximumLineLenght + // labelWarningMaximumLineLength // - labelWarningMaximumLineLenght.AutoSize = true; - labelWarningMaximumLineLenght.Location = new System.Drawing.Point(446, 118); - labelWarningMaximumLineLenght.Name = "labelWarningMaximumLineLenght"; - labelWarningMaximumLineLenght.Size = new System.Drawing.Size(482, 15); - labelWarningMaximumLineLenght.TabIndex = 16; - labelWarningMaximumLineLenght.Text = "! Changing the Maximum Line Length can impact performance and is not recommended !"; + labelWarningMaximumLineLength.AutoSize = true; + labelWarningMaximumLineLength.Location = new Point(446, 118); + labelWarningMaximumLineLength.Name = "labelWarningMaximumLineLength"; + labelWarningMaximumLineLength.Size = new Size(483, 15); + labelWarningMaximumLineLength.TabIndex = 16; + labelWarningMaximumLineLength.Text = "! Changing the Maximum Line Length can impact performance and is not recommended !"; // // upDownMaximumLineLength // - upDownMaximumLineLength.Location = new System.Drawing.Point(762, 138); - upDownMaximumLineLength.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + upDownMaximumLineLength.Location = new Point(762, 138); + upDownMaximumLineLength.Margin = new Padding(4, 5, 4, 5); upDownMaximumLineLength.Maximum = new decimal(new int[] { 1000000, 0, 0, 0 }); upDownMaximumLineLength.Minimum = new decimal(new int[] { 20000, 0, 0, 0 }); upDownMaximumLineLength.Name = "upDownMaximumLineLength"; - upDownMaximumLineLength.Size = new System.Drawing.Size(106, 23); + upDownMaximumLineLength.Size = new Size(106, 23); upDownMaximumLineLength.TabIndex = 15; upDownMaximumLineLength.Value = new decimal(new int[] { 20000, 0, 0, 0 }); // // labelMaximumLineLength // labelMaximumLineLength.AutoSize = true; - labelMaximumLineLength.Location = new System.Drawing.Point(467, 140); - labelMaximumLineLength.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelMaximumLineLength.Location = new Point(467, 140); + labelMaximumLineLength.Margin = new Padding(4, 0, 4, 0); labelMaximumLineLength.Name = "labelMaximumLineLength"; - labelMaximumLineLength.Size = new System.Drawing.Size(217, 15); + labelMaximumLineLength.Size = new Size(218, 15); labelMaximumLineLength.TabIndex = 14; labelMaximumLineLength.Text = "Maximum Line Length (restart required)"; // // upDownMaximumFilterEntriesDisplayed // - upDownMaximumFilterEntriesDisplayed.Location = new System.Drawing.Point(762, 86); - upDownMaximumFilterEntriesDisplayed.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + upDownMaximumFilterEntriesDisplayed.Location = new Point(762, 86); + upDownMaximumFilterEntriesDisplayed.Margin = new Padding(4, 5, 4, 5); upDownMaximumFilterEntriesDisplayed.Maximum = new decimal(new int[] { 30, 0, 0, 0 }); upDownMaximumFilterEntriesDisplayed.Minimum = new decimal(new int[] { 10, 0, 0, 0 }); upDownMaximumFilterEntriesDisplayed.Name = "upDownMaximumFilterEntriesDisplayed"; - upDownMaximumFilterEntriesDisplayed.Size = new System.Drawing.Size(106, 23); + upDownMaximumFilterEntriesDisplayed.Size = new Size(106, 23); upDownMaximumFilterEntriesDisplayed.TabIndex = 13; upDownMaximumFilterEntriesDisplayed.Value = new decimal(new int[] { 20, 0, 0, 0 }); // // labelMaximumFilterEntriesDisplayed // labelMaximumFilterEntriesDisplayed.AutoSize = true; - labelMaximumFilterEntriesDisplayed.Location = new System.Drawing.Point(467, 88); - labelMaximumFilterEntriesDisplayed.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelMaximumFilterEntriesDisplayed.Location = new Point(467, 88); + labelMaximumFilterEntriesDisplayed.Margin = new Padding(4, 0, 4, 0); labelMaximumFilterEntriesDisplayed.Name = "labelMaximumFilterEntriesDisplayed"; - labelMaximumFilterEntriesDisplayed.Size = new System.Drawing.Size(179, 15); + labelMaximumFilterEntriesDisplayed.Size = new Size(180, 15); labelMaximumFilterEntriesDisplayed.TabIndex = 12; labelMaximumFilterEntriesDisplayed.Text = "Maximum filter entries displayed"; // // upDownMaximumFilterEntries // - upDownMaximumFilterEntries.Location = new System.Drawing.Point(762, 59); - upDownMaximumFilterEntries.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + upDownMaximumFilterEntries.Location = new Point(762, 59); + upDownMaximumFilterEntries.Margin = new Padding(4, 5, 4, 5); upDownMaximumFilterEntries.Minimum = new decimal(new int[] { 10, 0, 0, 0 }); upDownMaximumFilterEntries.Name = "upDownMaximumFilterEntries"; - upDownMaximumFilterEntries.Size = new System.Drawing.Size(106, 23); + upDownMaximumFilterEntries.Size = new Size(106, 23); upDownMaximumFilterEntries.TabIndex = 11; upDownMaximumFilterEntries.Value = new decimal(new int[] { 30, 0, 0, 0 }); // // labelMaximumFilterEntries // labelMaximumFilterEntries.AutoSize = true; - labelMaximumFilterEntries.Location = new System.Drawing.Point(467, 61); - labelMaximumFilterEntries.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelMaximumFilterEntries.Location = new Point(467, 61); + labelMaximumFilterEntries.Margin = new Padding(4, 0, 4, 0); labelMaximumFilterEntries.Name = "labelMaximumFilterEntries"; - labelMaximumFilterEntries.Size = new System.Drawing.Size(126, 15); + labelMaximumFilterEntries.Size = new Size(127, 15); labelMaximumFilterEntries.TabIndex = 10; labelMaximumFilterEntries.Text = "Maximum filter entries"; // // labelDefaultEncoding // labelDefaultEncoding.AutoSize = true; - labelDefaultEncoding.Location = new System.Drawing.Point(467, 34); - labelDefaultEncoding.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelDefaultEncoding.Location = new Point(467, 34); + labelDefaultEncoding.Margin = new Padding(4, 0, 4, 0); labelDefaultEncoding.Name = "labelDefaultEncoding"; - labelDefaultEncoding.Size = new System.Drawing.Size(98, 15); + labelDefaultEncoding.Size = new Size(98, 15); labelDefaultEncoding.TabIndex = 9; labelDefaultEncoding.Text = "Default encoding"; // // comboBoxEncoding // - comboBoxEncoding.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + comboBoxEncoding.DropDownStyle = ComboBoxStyle.DropDownList; comboBoxEncoding.FormattingEnabled = true; - comboBoxEncoding.Location = new System.Drawing.Point(691, 26); - comboBoxEncoding.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + comboBoxEncoding.Location = new Point(691, 26); + comboBoxEncoding.Margin = new Padding(4, 5, 4, 5); comboBoxEncoding.Name = "comboBoxEncoding"; - comboBoxEncoding.Size = new System.Drawing.Size(177, 23); + comboBoxEncoding.Size = new Size(177, 23); comboBoxEncoding.TabIndex = 8; toolTip.SetToolTip(comboBoxEncoding, "Encoding to be used when no BOM header and no persistence data is available."); // @@ -337,11 +336,11 @@ private void InitializeComponent() groupBoxMisc.Controls.Add(checkBoxOpenLastFiles); groupBoxMisc.Controls.Add(checkBoxSingleInstance); groupBoxMisc.Controls.Add(checkBoxAskCloseTabs); - groupBoxMisc.Location = new System.Drawing.Point(458, 171); - groupBoxMisc.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxMisc.Location = new Point(458, 171); + groupBoxMisc.Margin = new Padding(4, 5, 4, 5); groupBoxMisc.Name = "groupBoxMisc"; - groupBoxMisc.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxMisc.Size = new System.Drawing.Size(410, 226); + groupBoxMisc.Padding = new Padding(4, 5, 4, 5); + groupBoxMisc.Size = new Size(410, 226); groupBoxMisc.TabIndex = 7; groupBoxMisc.TabStop = false; groupBoxMisc.Text = "Misc"; @@ -349,32 +348,32 @@ private void InitializeComponent() // checkBoxShowErrorMessageOnlyOneInstance // checkBoxShowErrorMessageOnlyOneInstance.AutoSize = true; - checkBoxShowErrorMessageOnlyOneInstance.Location = new System.Drawing.Point(210, 66); - checkBoxShowErrorMessageOnlyOneInstance.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxShowErrorMessageOnlyOneInstance.Location = new Point(210, 66); + checkBoxShowErrorMessageOnlyOneInstance.Margin = new Padding(4, 5, 4, 5); checkBoxShowErrorMessageOnlyOneInstance.Name = "checkBoxShowErrorMessageOnlyOneInstance"; - checkBoxShowErrorMessageOnlyOneInstance.Size = new System.Drawing.Size(137, 19); + checkBoxShowErrorMessageOnlyOneInstance.Size = new Size(137, 19); checkBoxShowErrorMessageOnlyOneInstance.TabIndex = 7; checkBoxShowErrorMessageOnlyOneInstance.Text = "Show Error Message?"; checkBoxShowErrorMessageOnlyOneInstance.UseVisualStyleBackColor = true; // // cpDownColumnWidth // - cpDownColumnWidth.Location = new System.Drawing.Point(304, 175); - cpDownColumnWidth.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + cpDownColumnWidth.Location = new Point(304, 175); + cpDownColumnWidth.Margin = new Padding(4, 5, 4, 5); cpDownColumnWidth.Maximum = new decimal(new int[] { 9000, 0, 0, 0 }); cpDownColumnWidth.Minimum = new decimal(new int[] { 300, 0, 0, 0 }); cpDownColumnWidth.Name = "cpDownColumnWidth"; - cpDownColumnWidth.Size = new System.Drawing.Size(84, 23); + cpDownColumnWidth.Size = new Size(84, 23); cpDownColumnWidth.TabIndex = 6; cpDownColumnWidth.Value = new decimal(new int[] { 2000, 0, 0, 0 }); // // checkBoxColumnSize // checkBoxColumnSize.AutoSize = true; - checkBoxColumnSize.Location = new System.Drawing.Point(9, 177); - checkBoxColumnSize.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxColumnSize.Location = new Point(9, 177); + checkBoxColumnSize.Margin = new Padding(4, 5, 4, 5); checkBoxColumnSize.Name = "checkBoxColumnSize"; - checkBoxColumnSize.Size = new System.Drawing.Size(140, 19); + checkBoxColumnSize.Size = new Size(140, 19); checkBoxColumnSize.TabIndex = 5; checkBoxColumnSize.Text = "Set last column width"; checkBoxColumnSize.UseVisualStyleBackColor = true; @@ -382,10 +381,10 @@ private void InitializeComponent() // // buttonTailColor // - buttonTailColor.Location = new System.Drawing.Point(304, 135); - buttonTailColor.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonTailColor.Location = new Point(304, 135); + buttonTailColor.Margin = new Padding(4, 5, 4, 5); buttonTailColor.Name = "buttonTailColor"; - buttonTailColor.Size = new System.Drawing.Size(84, 32); + buttonTailColor.Size = new Size(84, 32); buttonTailColor.TabIndex = 4; buttonTailColor.Text = "Color..."; buttonTailColor.UseVisualStyleBackColor = true; @@ -394,10 +393,10 @@ private void InitializeComponent() // checkBoxTailState // checkBoxTailState.AutoSize = true; - checkBoxTailState.Location = new System.Drawing.Point(9, 140); - checkBoxTailState.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxTailState.Location = new Point(9, 140); + checkBoxTailState.Margin = new Padding(4, 5, 4, 5); checkBoxTailState.Name = "checkBoxTailState"; - checkBoxTailState.Size = new System.Drawing.Size(144, 19); + checkBoxTailState.Size = new Size(144, 19); checkBoxTailState.TabIndex = 3; checkBoxTailState.Text = "Show tail state on tabs"; checkBoxTailState.UseVisualStyleBackColor = true; @@ -405,10 +404,10 @@ private void InitializeComponent() // checkBoxOpenLastFiles // checkBoxOpenLastFiles.AutoSize = true; - checkBoxOpenLastFiles.Location = new System.Drawing.Point(9, 103); - checkBoxOpenLastFiles.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxOpenLastFiles.Location = new Point(9, 103); + checkBoxOpenLastFiles.Margin = new Padding(4, 5, 4, 5); checkBoxOpenLastFiles.Name = "checkBoxOpenLastFiles"; - checkBoxOpenLastFiles.Size = new System.Drawing.Size(144, 19); + checkBoxOpenLastFiles.Size = new Size(144, 19); checkBoxOpenLastFiles.TabIndex = 2; checkBoxOpenLastFiles.Text = "Re-open last used files"; checkBoxOpenLastFiles.UseVisualStyleBackColor = true; @@ -416,10 +415,10 @@ private void InitializeComponent() // checkBoxSingleInstance // checkBoxSingleInstance.AutoSize = true; - checkBoxSingleInstance.Location = new System.Drawing.Point(9, 66); - checkBoxSingleInstance.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxSingleInstance.Location = new Point(9, 66); + checkBoxSingleInstance.Margin = new Padding(4, 5, 4, 5); checkBoxSingleInstance.Name = "checkBoxSingleInstance"; - checkBoxSingleInstance.Size = new System.Drawing.Size(138, 19); + checkBoxSingleInstance.Size = new Size(138, 19); checkBoxSingleInstance.TabIndex = 1; checkBoxSingleInstance.Text = "Allow only 1 Instance"; checkBoxSingleInstance.UseVisualStyleBackColor = true; @@ -427,37 +426,60 @@ private void InitializeComponent() // checkBoxAskCloseTabs // checkBoxAskCloseTabs.AutoSize = true; - checkBoxAskCloseTabs.Location = new System.Drawing.Point(9, 29); - checkBoxAskCloseTabs.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxAskCloseTabs.Location = new Point(9, 29); + checkBoxAskCloseTabs.Margin = new Padding(4, 5, 4, 5); checkBoxAskCloseTabs.Name = "checkBoxAskCloseTabs"; - checkBoxAskCloseTabs.Size = new System.Drawing.Size(148, 19); + checkBoxAskCloseTabs.Size = new Size(148, 19); checkBoxAskCloseTabs.TabIndex = 0; checkBoxAskCloseTabs.Text = "Ask before closing tabs"; checkBoxAskCloseTabs.UseVisualStyleBackColor = true; // // groupBoxDefaults // + groupBoxDefaults.Controls.Add(labelLanguage); + groupBoxDefaults.Controls.Add(comboBoxLanguage); groupBoxDefaults.Controls.Add(checkBoxDarkMode); groupBoxDefaults.Controls.Add(checkBoxFollowTail); groupBoxDefaults.Controls.Add(checkBoxColumnFinder); groupBoxDefaults.Controls.Add(checkBoxSyncFilter); groupBoxDefaults.Controls.Add(checkBoxFilterTail); - groupBoxDefaults.Location = new System.Drawing.Point(10, 171); - groupBoxDefaults.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxDefaults.Location = new Point(10, 171); + groupBoxDefaults.Margin = new Padding(4, 5, 4, 5); groupBoxDefaults.Name = "groupBoxDefaults"; - groupBoxDefaults.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxDefaults.Size = new System.Drawing.Size(411, 226); + groupBoxDefaults.Padding = new Padding(4, 5, 4, 5); + groupBoxDefaults.Size = new Size(411, 226); groupBoxDefaults.TabIndex = 6; groupBoxDefaults.TabStop = false; groupBoxDefaults.Text = "Defaults"; // + // labelLanguage + // + labelLanguage.AutoSize = true; + labelLanguage.Location = new Point(9, 175); + labelLanguage.Margin = new Padding(4, 0, 4, 0); + labelLanguage.Name = "labelLanguage"; + labelLanguage.Size = new Size(187, 15); + labelLanguage.TabIndex = 17; + labelLanguage.Text = "Default encoding (requires restart)"; + // + // comboBoxLanguage + // + comboBoxLanguage.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxLanguage.FormattingEnabled = true; + comboBoxLanguage.Location = new Point(204, 172); + comboBoxLanguage.Margin = new Padding(4, 5, 4, 5); + comboBoxLanguage.Name = "comboBoxLanguage"; + comboBoxLanguage.Size = new Size(177, 23); + comboBoxLanguage.TabIndex = 9; + toolTip.SetToolTip(comboBoxLanguage, "Userinterface language"); + // // checkBoxDarkMode // checkBoxDarkMode.AutoSize = true; - checkBoxDarkMode.Location = new System.Drawing.Point(7, 141); - checkBoxDarkMode.Margin = new System.Windows.Forms.Padding(4); + checkBoxDarkMode.Location = new Point(9, 144); + checkBoxDarkMode.Margin = new Padding(4); checkBoxDarkMode.Name = "checkBoxDarkMode"; - checkBoxDarkMode.Size = new System.Drawing.Size(175, 19); + checkBoxDarkMode.Size = new Size(175, 19); checkBoxDarkMode.TabIndex = 6; checkBoxDarkMode.Text = "Dark Mode (restart required)"; checkBoxDarkMode.UseVisualStyleBackColor = true; @@ -465,10 +487,10 @@ private void InitializeComponent() // checkBoxFollowTail // checkBoxFollowTail.AutoSize = true; - checkBoxFollowTail.Location = new System.Drawing.Point(9, 29); - checkBoxFollowTail.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxFollowTail.Location = new Point(9, 29); + checkBoxFollowTail.Margin = new Padding(4, 5, 4, 5); checkBoxFollowTail.Name = "checkBoxFollowTail"; - checkBoxFollowTail.Size = new System.Drawing.Size(125, 19); + checkBoxFollowTail.Size = new Size(125, 19); checkBoxFollowTail.TabIndex = 3; checkBoxFollowTail.Text = "Follow tail enabled"; checkBoxFollowTail.UseVisualStyleBackColor = true; @@ -476,10 +498,10 @@ private void InitializeComponent() // checkBoxColumnFinder // checkBoxColumnFinder.AutoSize = true; - checkBoxColumnFinder.Location = new System.Drawing.Point(9, 140); - checkBoxColumnFinder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxColumnFinder.Location = new Point(9, 116); + checkBoxColumnFinder.Margin = new Padding(4, 5, 4, 5); checkBoxColumnFinder.Name = "checkBoxColumnFinder"; - checkBoxColumnFinder.Size = new System.Drawing.Size(133, 19); + checkBoxColumnFinder.Size = new Size(133, 19); checkBoxColumnFinder.TabIndex = 5; checkBoxColumnFinder.Text = "Show column finder"; checkBoxColumnFinder.UseVisualStyleBackColor = true; @@ -487,10 +509,10 @@ private void InitializeComponent() // checkBoxSyncFilter // checkBoxSyncFilter.AutoSize = true; - checkBoxSyncFilter.Location = new System.Drawing.Point(9, 103); - checkBoxSyncFilter.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxSyncFilter.Location = new Point(9, 87); + checkBoxSyncFilter.Margin = new Padding(4, 5, 4, 5); checkBoxSyncFilter.Name = "checkBoxSyncFilter"; - checkBoxSyncFilter.Size = new System.Drawing.Size(141, 19); + checkBoxSyncFilter.Size = new Size(141, 19); checkBoxSyncFilter.TabIndex = 5; checkBoxSyncFilter.Text = "Sync filter list enabled"; checkBoxSyncFilter.UseVisualStyleBackColor = true; @@ -498,10 +520,10 @@ private void InitializeComponent() // checkBoxFilterTail // checkBoxFilterTail.AutoSize = true; - checkBoxFilterTail.Location = new System.Drawing.Point(9, 66); - checkBoxFilterTail.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxFilterTail.Location = new Point(9, 58); + checkBoxFilterTail.Margin = new Padding(4, 5, 4, 5); checkBoxFilterTail.Name = "checkBoxFilterTail"; - checkBoxFilterTail.Size = new System.Drawing.Size(116, 19); + checkBoxFilterTail.Size = new Size(116, 19); checkBoxFilterTail.TabIndex = 4; checkBoxFilterTail.Text = "Filter tail enabled"; checkBoxFilterTail.UseVisualStyleBackColor = true; @@ -510,21 +532,21 @@ private void InitializeComponent() // groupBoxFont.Controls.Add(buttonChangeFont); groupBoxFont.Controls.Add(labelFont); - groupBoxFont.Location = new System.Drawing.Point(10, 9); - groupBoxFont.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxFont.Location = new Point(10, 9); + groupBoxFont.Margin = new Padding(4, 5, 4, 5); groupBoxFont.Name = "groupBoxFont"; - groupBoxFont.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxFont.Size = new System.Drawing.Size(408, 128); + groupBoxFont.Padding = new Padding(4, 5, 4, 5); + groupBoxFont.Size = new Size(408, 128); groupBoxFont.TabIndex = 1; groupBoxFont.TabStop = false; groupBoxFont.Text = "Font"; // // buttonChangeFont // - buttonChangeFont.Location = new System.Drawing.Point(9, 77); - buttonChangeFont.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonChangeFont.Location = new Point(9, 77); + buttonChangeFont.Margin = new Padding(4, 5, 4, 5); buttonChangeFont.Name = "buttonChangeFont"; - buttonChangeFont.Size = new System.Drawing.Size(112, 35); + buttonChangeFont.Size = new Size(112, 35); buttonChangeFont.TabIndex = 1; buttonChangeFont.Text = "Change..."; buttonChangeFont.UseVisualStyleBackColor = true; @@ -532,23 +554,23 @@ private void InitializeComponent() // // labelFont // - labelFont.Location = new System.Drawing.Point(9, 25); - labelFont.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelFont.Location = new Point(9, 25); + labelFont.Margin = new Padding(4, 0, 4, 0); labelFont.Name = "labelFont"; - labelFont.Size = new System.Drawing.Size(312, 48); + labelFont.Size = new Size(312, 48); labelFont.TabIndex = 0; labelFont.Text = "Font"; - labelFont.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + labelFont.TextAlign = ContentAlignment.MiddleLeft; // // tabPageTimeStampFeatures // tabPageTimeStampFeatures.Controls.Add(groupBoxTimeSpreadDisplay); tabPageTimeStampFeatures.Controls.Add(groupBoxTimeStampNavigationControl); - tabPageTimeStampFeatures.Location = new System.Drawing.Point(4, 24); - tabPageTimeStampFeatures.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + tabPageTimeStampFeatures.Location = new Point(4, 24); + tabPageTimeStampFeatures.Margin = new Padding(4, 5, 4, 5); tabPageTimeStampFeatures.Name = "tabPageTimeStampFeatures"; - tabPageTimeStampFeatures.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - tabPageTimeStampFeatures.Size = new System.Drawing.Size(942, 440); + tabPageTimeStampFeatures.Padding = new Padding(4, 5, 4, 5); + tabPageTimeStampFeatures.Size = new Size(942, 440); tabPageTimeStampFeatures.TabIndex = 1; tabPageTimeStampFeatures.Text = "Timestamp features"; tabPageTimeStampFeatures.UseVisualStyleBackColor = true; @@ -559,11 +581,11 @@ private void InitializeComponent() groupBoxTimeSpreadDisplay.Controls.Add(checkBoxReverseAlpha); groupBoxTimeSpreadDisplay.Controls.Add(buttonTimespreadColor); groupBoxTimeSpreadDisplay.Controls.Add(checkBoxTimeSpread); - groupBoxTimeSpreadDisplay.Location = new System.Drawing.Point(490, 25); - groupBoxTimeSpreadDisplay.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxTimeSpreadDisplay.Location = new Point(490, 25); + groupBoxTimeSpreadDisplay.Margin = new Padding(4, 5, 4, 5); groupBoxTimeSpreadDisplay.Name = "groupBoxTimeSpreadDisplay"; - groupBoxTimeSpreadDisplay.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxTimeSpreadDisplay.Size = new System.Drawing.Size(300, 246); + groupBoxTimeSpreadDisplay.Padding = new Padding(4, 5, 4, 5); + groupBoxTimeSpreadDisplay.Size = new Size(300, 246); groupBoxTimeSpreadDisplay.TabIndex = 8; groupBoxTimeSpreadDisplay.TabStop = false; groupBoxTimeSpreadDisplay.Text = "Time spread display"; @@ -572,11 +594,11 @@ private void InitializeComponent() // groupBoxDisplayMode.Controls.Add(radioButtonLineView); groupBoxDisplayMode.Controls.Add(radioButtonTimeView); - groupBoxDisplayMode.Location = new System.Drawing.Point(22, 109); - groupBoxDisplayMode.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxDisplayMode.Location = new Point(22, 109); + groupBoxDisplayMode.Margin = new Padding(4, 5, 4, 5); groupBoxDisplayMode.Name = "groupBoxDisplayMode"; - groupBoxDisplayMode.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxDisplayMode.Size = new System.Drawing.Size(188, 118); + groupBoxDisplayMode.Padding = new Padding(4, 5, 4, 5); + groupBoxDisplayMode.Size = new Size(188, 118); groupBoxDisplayMode.TabIndex = 11; groupBoxDisplayMode.TabStop = false; groupBoxDisplayMode.Text = "Display mode"; @@ -584,10 +606,10 @@ private void InitializeComponent() // radioButtonLineView // radioButtonLineView.AutoSize = true; - radioButtonLineView.Location = new System.Drawing.Point(9, 65); - radioButtonLineView.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonLineView.Location = new Point(9, 65); + radioButtonLineView.Margin = new Padding(4, 5, 4, 5); radioButtonLineView.Name = "radioButtonLineView"; - radioButtonLineView.Size = new System.Drawing.Size(74, 19); + radioButtonLineView.Size = new Size(74, 19); radioButtonLineView.TabIndex = 9; radioButtonLineView.TabStop = true; radioButtonLineView.Text = "Line view"; @@ -596,10 +618,10 @@ private void InitializeComponent() // radioButtonTimeView // radioButtonTimeView.AutoSize = true; - radioButtonTimeView.Location = new System.Drawing.Point(9, 29); - radioButtonTimeView.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonTimeView.Location = new Point(9, 29); + radioButtonTimeView.Margin = new Padding(4, 5, 4, 5); radioButtonTimeView.Name = "radioButtonTimeView"; - radioButtonTimeView.Size = new System.Drawing.Size(79, 19); + radioButtonTimeView.Size = new Size(78, 19); radioButtonTimeView.TabIndex = 10; radioButtonTimeView.TabStop = true; radioButtonTimeView.Text = "Time view"; @@ -608,20 +630,20 @@ private void InitializeComponent() // checkBoxReverseAlpha // checkBoxReverseAlpha.AutoSize = true; - checkBoxReverseAlpha.Location = new System.Drawing.Point(22, 74); - checkBoxReverseAlpha.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxReverseAlpha.Location = new Point(22, 74); + checkBoxReverseAlpha.Margin = new Padding(4, 5, 4, 5); checkBoxReverseAlpha.Name = "checkBoxReverseAlpha"; - checkBoxReverseAlpha.Size = new System.Drawing.Size(98, 19); + checkBoxReverseAlpha.Size = new Size(98, 19); checkBoxReverseAlpha.TabIndex = 8; checkBoxReverseAlpha.Text = "Reverse alpha"; checkBoxReverseAlpha.UseVisualStyleBackColor = true; // // buttonTimespreadColor // - buttonTimespreadColor.Location = new System.Drawing.Point(207, 32); - buttonTimespreadColor.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonTimespreadColor.Location = new Point(207, 32); + buttonTimespreadColor.Margin = new Padding(4, 5, 4, 5); buttonTimespreadColor.Name = "buttonTimespreadColor"; - buttonTimespreadColor.Size = new System.Drawing.Size(84, 32); + buttonTimespreadColor.Size = new Size(84, 32); buttonTimespreadColor.TabIndex = 7; buttonTimespreadColor.Text = "Color..."; buttonTimespreadColor.UseVisualStyleBackColor = true; @@ -630,10 +652,10 @@ private void InitializeComponent() // checkBoxTimeSpread // checkBoxTimeSpread.AutoSize = true; - checkBoxTimeSpread.Location = new System.Drawing.Point(22, 37); - checkBoxTimeSpread.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxTimeSpread.Location = new Point(22, 37); + checkBoxTimeSpread.Margin = new Padding(4, 5, 4, 5); checkBoxTimeSpread.Name = "checkBoxTimeSpread"; - checkBoxTimeSpread.Size = new System.Drawing.Size(120, 19); + checkBoxTimeSpread.Size = new Size(120, 19); checkBoxTimeSpread.TabIndex = 6; checkBoxTimeSpread.Text = "Show time spread"; checkBoxTimeSpread.UseVisualStyleBackColor = true; @@ -642,11 +664,11 @@ private void InitializeComponent() // groupBoxTimeStampNavigationControl.Controls.Add(checkBoxTimestamp); groupBoxTimeStampNavigationControl.Controls.Add(groupBoxMouseDragDefaults); - groupBoxTimeStampNavigationControl.Location = new System.Drawing.Point(10, 25); - groupBoxTimeStampNavigationControl.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxTimeStampNavigationControl.Location = new Point(10, 25); + groupBoxTimeStampNavigationControl.Margin = new Padding(4, 5, 4, 5); groupBoxTimeStampNavigationControl.Name = "groupBoxTimeStampNavigationControl"; - groupBoxTimeStampNavigationControl.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxTimeStampNavigationControl.Size = new System.Drawing.Size(450, 246); + groupBoxTimeStampNavigationControl.Padding = new Padding(4, 5, 4, 5); + groupBoxTimeStampNavigationControl.Size = new Size(450, 246); groupBoxTimeStampNavigationControl.TabIndex = 7; groupBoxTimeStampNavigationControl.TabStop = false; groupBoxTimeStampNavigationControl.Text = "Timestamp navigation control"; @@ -654,10 +676,10 @@ private void InitializeComponent() // checkBoxTimestamp // checkBoxTimestamp.AutoSize = true; - checkBoxTimestamp.Location = new System.Drawing.Point(27, 37); - checkBoxTimestamp.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxTimestamp.Location = new Point(27, 37); + checkBoxTimestamp.Margin = new Padding(4, 5, 4, 5); checkBoxTimestamp.Name = "checkBoxTimestamp"; - checkBoxTimestamp.Size = new System.Drawing.Size(304, 19); + checkBoxTimestamp.Size = new Size(304, 19); checkBoxTimestamp.TabIndex = 3; checkBoxTimestamp.Text = "Show timestamp control, if supported by columnizer"; checkBoxTimestamp.UseVisualStyleBackColor = true; @@ -667,11 +689,11 @@ private void InitializeComponent() groupBoxMouseDragDefaults.Controls.Add(radioButtonVerticalMouseDragInverted); groupBoxMouseDragDefaults.Controls.Add(radioButtonHorizMouseDrag); groupBoxMouseDragDefaults.Controls.Add(radioButtonVerticalMouseDrag); - groupBoxMouseDragDefaults.Location = new System.Drawing.Point(27, 80); - groupBoxMouseDragDefaults.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxMouseDragDefaults.Location = new Point(27, 80); + groupBoxMouseDragDefaults.Margin = new Padding(4, 5, 4, 5); groupBoxMouseDragDefaults.Name = "groupBoxMouseDragDefaults"; - groupBoxMouseDragDefaults.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxMouseDragDefaults.Size = new System.Drawing.Size(186, 148); + groupBoxMouseDragDefaults.Padding = new Padding(4, 5, 4, 5); + groupBoxMouseDragDefaults.Size = new Size(186, 148); groupBoxMouseDragDefaults.TabIndex = 5; groupBoxMouseDragDefaults.TabStop = false; groupBoxMouseDragDefaults.Text = "Mouse Drag Default"; @@ -679,10 +701,10 @@ private void InitializeComponent() // radioButtonVerticalMouseDragInverted // radioButtonVerticalMouseDragInverted.AutoSize = true; - radioButtonVerticalMouseDragInverted.Location = new System.Drawing.Point(9, 102); - radioButtonVerticalMouseDragInverted.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonVerticalMouseDragInverted.Location = new Point(9, 102); + radioButtonVerticalMouseDragInverted.Margin = new Padding(4, 5, 4, 5); radioButtonVerticalMouseDragInverted.Name = "radioButtonVerticalMouseDragInverted"; - radioButtonVerticalMouseDragInverted.Size = new System.Drawing.Size(109, 19); + radioButtonVerticalMouseDragInverted.Size = new Size(109, 19); radioButtonVerticalMouseDragInverted.TabIndex = 6; radioButtonVerticalMouseDragInverted.TabStop = true; radioButtonVerticalMouseDragInverted.Text = "Vertical Inverted"; @@ -691,10 +713,10 @@ private void InitializeComponent() // radioButtonHorizMouseDrag // radioButtonHorizMouseDrag.AutoSize = true; - radioButtonHorizMouseDrag.Location = new System.Drawing.Point(9, 29); - radioButtonHorizMouseDrag.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonHorizMouseDrag.Location = new Point(9, 29); + radioButtonHorizMouseDrag.Margin = new Padding(4, 5, 4, 5); radioButtonHorizMouseDrag.Name = "radioButtonHorizMouseDrag"; - radioButtonHorizMouseDrag.Size = new System.Drawing.Size(80, 19); + radioButtonHorizMouseDrag.Size = new Size(80, 19); radioButtonHorizMouseDrag.TabIndex = 5; radioButtonHorizMouseDrag.TabStop = true; radioButtonHorizMouseDrag.Text = "Horizontal"; @@ -703,10 +725,10 @@ private void InitializeComponent() // radioButtonVerticalMouseDrag // radioButtonVerticalMouseDrag.AutoSize = true; - radioButtonVerticalMouseDrag.Location = new System.Drawing.Point(9, 65); - radioButtonVerticalMouseDrag.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonVerticalMouseDrag.Location = new Point(9, 65); + radioButtonVerticalMouseDrag.Margin = new Padding(4, 5, 4, 5); radioButtonVerticalMouseDrag.Name = "radioButtonVerticalMouseDrag"; - radioButtonVerticalMouseDrag.Size = new System.Drawing.Size(63, 19); + radioButtonVerticalMouseDrag.Size = new Size(63, 19); radioButtonVerticalMouseDrag.TabIndex = 4; radioButtonVerticalMouseDrag.TabStop = true; radioButtonVerticalMouseDrag.Text = "Vertical"; @@ -721,30 +743,30 @@ private void InitializeComponent() tabPageExternalTools.Controls.Add(buttonToolUp); tabPageExternalTools.Controls.Add(listBoxTools); tabPageExternalTools.Controls.Add(groupBoxToolSettings); - tabPageExternalTools.Location = new System.Drawing.Point(4, 24); - tabPageExternalTools.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + tabPageExternalTools.Location = new Point(4, 24); + tabPageExternalTools.Margin = new Padding(4, 5, 4, 5); tabPageExternalTools.Name = "tabPageExternalTools"; - tabPageExternalTools.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - tabPageExternalTools.Size = new System.Drawing.Size(942, 440); + tabPageExternalTools.Padding = new Padding(4, 5, 4, 5); + tabPageExternalTools.Size = new Size(942, 440); tabPageExternalTools.TabIndex = 2; tabPageExternalTools.Text = "External Tools"; tabPageExternalTools.UseVisualStyleBackColor = true; // // labelToolsDescription // - labelToolsDescription.Location = new System.Drawing.Point(546, 102); - labelToolsDescription.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelToolsDescription.Location = new Point(546, 102); + labelToolsDescription.Margin = new Padding(4, 0, 4, 0); labelToolsDescription.Name = "labelToolsDescription"; - labelToolsDescription.Size = new System.Drawing.Size(376, 80); + labelToolsDescription.Size = new Size(376, 80); labelToolsDescription.TabIndex = 6; labelToolsDescription.Text = "You can configure as many tools as you want. \r\nChecked tools will appear in the icon bar. All other tools are available in the tools menu."; // // buttonToolDelete // - buttonToolDelete.Location = new System.Drawing.Point(550, 14); - buttonToolDelete.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonToolDelete.Location = new Point(550, 14); + buttonToolDelete.Margin = new Padding(4, 5, 4, 5); buttonToolDelete.Name = "buttonToolDelete"; - buttonToolDelete.Size = new System.Drawing.Size(112, 35); + buttonToolDelete.Size = new Size(112, 35); buttonToolDelete.TabIndex = 2; buttonToolDelete.Text = "Remove"; buttonToolDelete.UseVisualStyleBackColor = true; @@ -752,10 +774,10 @@ private void InitializeComponent() // // buttonToolAdd // - buttonToolAdd.Location = new System.Drawing.Point(429, 14); - buttonToolAdd.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonToolAdd.Location = new Point(429, 14); + buttonToolAdd.Margin = new Padding(4, 5, 4, 5); buttonToolAdd.Name = "buttonToolAdd"; - buttonToolAdd.Size = new System.Drawing.Size(112, 35); + buttonToolAdd.Size = new Size(112, 35); buttonToolAdd.TabIndex = 1; buttonToolAdd.Text = "Add new"; buttonToolAdd.UseVisualStyleBackColor = true; @@ -763,10 +785,10 @@ private void InitializeComponent() // // buttonToolDown // - buttonToolDown.Location = new System.Drawing.Point(429, 146); - buttonToolDown.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonToolDown.Location = new Point(429, 146); + buttonToolDown.Margin = new Padding(4, 5, 4, 5); buttonToolDown.Name = "buttonToolDown"; - buttonToolDown.Size = new System.Drawing.Size(64, 35); + buttonToolDown.Size = new Size(64, 35); buttonToolDown.TabIndex = 4; buttonToolDown.Text = "Down"; buttonToolDown.UseVisualStyleBackColor = true; @@ -774,10 +796,10 @@ private void InitializeComponent() // // buttonToolUp // - buttonToolUp.Location = new System.Drawing.Point(429, 102); - buttonToolUp.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonToolUp.Location = new Point(429, 102); + buttonToolUp.Margin = new Padding(4, 5, 4, 5); buttonToolUp.Name = "buttonToolUp"; - buttonToolUp.Size = new System.Drawing.Size(64, 35); + buttonToolUp.Size = new Size(64, 35); buttonToolUp.TabIndex = 3; buttonToolUp.Text = "Up"; buttonToolUp.UseVisualStyleBackColor = true; @@ -786,10 +808,10 @@ private void InitializeComponent() // listBoxTools // listBoxTools.FormattingEnabled = true; - listBoxTools.Location = new System.Drawing.Point(10, 14); - listBoxTools.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + listBoxTools.Location = new Point(10, 14); + listBoxTools.Margin = new Padding(4, 5, 4, 5); listBoxTools.Name = "listBoxTools"; - listBoxTools.Size = new System.Drawing.Size(406, 148); + listBoxTools.Size = new Size(406, 148); listBoxTools.TabIndex = 0; listBoxTools.SelectedIndexChanged += OnListBoxToolSelectedIndexChanged; // @@ -810,11 +832,11 @@ private void InitializeComponent() groupBoxToolSettings.Controls.Add(textBoxTool); groupBoxToolSettings.Controls.Add(labelArguments); groupBoxToolSettings.Controls.Add(textBoxArguments); - groupBoxToolSettings.Location = new System.Drawing.Point(10, 191); - groupBoxToolSettings.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxToolSettings.Location = new Point(10, 191); + groupBoxToolSettings.Margin = new Padding(4, 5, 4, 5); groupBoxToolSettings.Name = "groupBoxToolSettings"; - groupBoxToolSettings.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxToolSettings.Size = new System.Drawing.Size(912, 228); + groupBoxToolSettings.Padding = new Padding(4, 5, 4, 5); + groupBoxToolSettings.Size = new Size(912, 228); groupBoxToolSettings.TabIndex = 0; groupBoxToolSettings.TabStop = false; groupBoxToolSettings.Text = "Tool settings"; @@ -822,19 +844,19 @@ private void InitializeComponent() // labelWorkingDir // labelWorkingDir.AutoSize = true; - labelWorkingDir.Location = new System.Drawing.Point(474, 86); - labelWorkingDir.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelWorkingDir.Location = new Point(474, 86); + labelWorkingDir.Margin = new Padding(4, 0, 4, 0); labelWorkingDir.Name = "labelWorkingDir"; - labelWorkingDir.Size = new System.Drawing.Size(72, 15); + labelWorkingDir.Size = new Size(72, 15); labelWorkingDir.TabIndex = 11; labelWorkingDir.Text = "Working dir:"; // // buttonWorkingDir // - buttonWorkingDir.Location = new System.Drawing.Point(856, 80); - buttonWorkingDir.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonWorkingDir.Location = new Point(856, 80); + buttonWorkingDir.Margin = new Padding(4, 5, 4, 5); buttonWorkingDir.Name = "buttonWorkingDir"; - buttonWorkingDir.Size = new System.Drawing.Size(45, 31); + buttonWorkingDir.Size = new Size(45, 31); buttonWorkingDir.TabIndex = 10; buttonWorkingDir.Text = "..."; buttonWorkingDir.UseVisualStyleBackColor = true; @@ -842,69 +864,69 @@ private void InitializeComponent() // // textBoxWorkingDir // - textBoxWorkingDir.Location = new System.Drawing.Point(576, 82); - textBoxWorkingDir.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + textBoxWorkingDir.Location = new Point(576, 82); + textBoxWorkingDir.Margin = new Padding(4, 5, 4, 5); textBoxWorkingDir.Name = "textBoxWorkingDir"; - textBoxWorkingDir.Size = new System.Drawing.Size(270, 23); + textBoxWorkingDir.Size = new Size(270, 23); textBoxWorkingDir.TabIndex = 9; // // buttonIcon // - buttonIcon.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - buttonIcon.Location = new System.Drawing.Point(418, 26); - buttonIcon.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonIcon.ImageAlign = ContentAlignment.MiddleLeft; + buttonIcon.Location = new Point(418, 26); + buttonIcon.Margin = new Padding(4, 5, 4, 5); buttonIcon.Name = "buttonIcon"; - buttonIcon.Size = new System.Drawing.Size(112, 35); + buttonIcon.Size = new Size(112, 35); buttonIcon.TabIndex = 1; buttonIcon.Text = " Icon..."; - buttonIcon.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + buttonIcon.TextImageRelation = TextImageRelation.ImageBeforeText; buttonIcon.UseVisualStyleBackColor = true; buttonIcon.Click += OnBtnIconClick; // // labelToolName // labelToolName.AutoSize = true; - labelToolName.Location = new System.Drawing.Point(9, 34); - labelToolName.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelToolName.Location = new Point(9, 34); + labelToolName.Margin = new Padding(4, 0, 4, 0); labelToolName.Name = "labelToolName"; - labelToolName.Size = new System.Drawing.Size(42, 15); + labelToolName.Size = new Size(42, 15); labelToolName.TabIndex = 8; labelToolName.Text = "Name:"; // // labelToolColumnizerForOutput // labelToolColumnizerForOutput.AutoSize = true; - labelToolColumnizerForOutput.Location = new System.Drawing.Point(404, 185); - labelToolColumnizerForOutput.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelToolColumnizerForOutput.Location = new Point(404, 185); + labelToolColumnizerForOutput.Margin = new Padding(4, 0, 4, 0); labelToolColumnizerForOutput.Name = "labelToolColumnizerForOutput"; - labelToolColumnizerForOutput.Size = new System.Drawing.Size(128, 15); + labelToolColumnizerForOutput.Size = new Size(128, 15); labelToolColumnizerForOutput.TabIndex = 6; labelToolColumnizerForOutput.Text = "Columnizer for output:"; // // comboBoxColumnizer // comboBoxColumnizer.FormattingEnabled = true; - comboBoxColumnizer.Location = new System.Drawing.Point(576, 180); - comboBoxColumnizer.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + comboBoxColumnizer.Location = new Point(576, 180); + comboBoxColumnizer.Margin = new Padding(4, 5, 4, 5); comboBoxColumnizer.Name = "comboBoxColumnizer"; - comboBoxColumnizer.Size = new System.Drawing.Size(270, 23); + comboBoxColumnizer.Size = new Size(270, 23); comboBoxColumnizer.TabIndex = 7; // // textBoxToolName // - textBoxToolName.Location = new System.Drawing.Point(108, 29); - textBoxToolName.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + textBoxToolName.Location = new Point(108, 29); + textBoxToolName.Margin = new Padding(4, 5, 4, 5); textBoxToolName.Name = "textBoxToolName"; - textBoxToolName.Size = new System.Drawing.Size(298, 23); + textBoxToolName.Size = new Size(298, 23); textBoxToolName.TabIndex = 0; // // checkBoxSysout // checkBoxSysout.AutoSize = true; - checkBoxSysout.Location = new System.Drawing.Point(108, 183); - checkBoxSysout.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxSysout.Location = new Point(108, 183); + checkBoxSysout.Margin = new Padding(4, 5, 4, 5); checkBoxSysout.Name = "checkBoxSysout"; - checkBoxSysout.Size = new System.Drawing.Size(120, 19); + checkBoxSysout.Size = new Size(120, 19); checkBoxSysout.TabIndex = 6; checkBoxSysout.Text = "Pipe sysout to tab"; checkBoxSysout.UseVisualStyleBackColor = true; @@ -912,10 +934,10 @@ private void InitializeComponent() // // buttonArguments // - buttonArguments.Location = new System.Drawing.Point(856, 128); - buttonArguments.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonArguments.Location = new Point(856, 128); + buttonArguments.Margin = new Padding(4, 5, 4, 5); buttonArguments.Name = "buttonArguments"; - buttonArguments.Size = new System.Drawing.Size(46, 32); + buttonArguments.Size = new Size(46, 32); buttonArguments.TabIndex = 5; buttonArguments.Text = "..."; buttonArguments.UseVisualStyleBackColor = true; @@ -924,19 +946,19 @@ private void InitializeComponent() // labelTool // labelTool.AutoSize = true; - labelTool.Location = new System.Drawing.Point(9, 86); - labelTool.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelTool.Location = new Point(9, 86); + labelTool.Margin = new Padding(4, 0, 4, 0); labelTool.Name = "labelTool"; - labelTool.Size = new System.Drawing.Size(56, 15); + labelTool.Size = new Size(56, 15); labelTool.TabIndex = 4; labelTool.Text = "Program:"; // // buttonTool // - buttonTool.Location = new System.Drawing.Point(418, 78); - buttonTool.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonTool.Location = new Point(418, 78); + buttonTool.Margin = new Padding(4, 5, 4, 5); buttonTool.Name = "buttonTool"; - buttonTool.Size = new System.Drawing.Size(45, 31); + buttonTool.Size = new Size(45, 31); buttonTool.TabIndex = 3; buttonTool.Text = "..."; buttonTool.UseVisualStyleBackColor = true; @@ -944,28 +966,28 @@ private void InitializeComponent() // // textBoxTool // - textBoxTool.Location = new System.Drawing.Point(108, 80); - textBoxTool.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + textBoxTool.Location = new Point(108, 80); + textBoxTool.Margin = new Padding(4, 5, 4, 5); textBoxTool.Name = "textBoxTool"; - textBoxTool.Size = new System.Drawing.Size(298, 23); + textBoxTool.Size = new Size(298, 23); textBoxTool.TabIndex = 2; // // labelArguments // labelArguments.AutoSize = true; - labelArguments.Location = new System.Drawing.Point(9, 134); - labelArguments.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelArguments.Location = new Point(9, 134); + labelArguments.Margin = new Padding(4, 0, 4, 0); labelArguments.Name = "labelArguments"; - labelArguments.Size = new System.Drawing.Size(69, 15); + labelArguments.Size = new Size(69, 15); labelArguments.TabIndex = 1; labelArguments.Text = "Arguments:"; // // textBoxArguments // - textBoxArguments.Location = new System.Drawing.Point(108, 129); - textBoxArguments.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + textBoxArguments.Location = new Point(108, 129); + textBoxArguments.Margin = new Padding(4, 5, 4, 5); textBoxArguments.Name = "textBoxArguments"; - textBoxArguments.Size = new System.Drawing.Size(738, 23); + textBoxArguments.Size = new Size(738, 23); textBoxArguments.TabIndex = 4; // // tabPageColumnizers @@ -974,11 +996,11 @@ private void InitializeComponent() tabPageColumnizers.Controls.Add(checkBoxMaskPrio); tabPageColumnizers.Controls.Add(buttonDelete); tabPageColumnizers.Controls.Add(dataGridViewColumnizer); - tabPageColumnizers.Location = new System.Drawing.Point(4, 24); - tabPageColumnizers.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + tabPageColumnizers.Location = new Point(4, 24); + tabPageColumnizers.Margin = new Padding(4, 5, 4, 5); tabPageColumnizers.Name = "tabPageColumnizers"; - tabPageColumnizers.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - tabPageColumnizers.Size = new System.Drawing.Size(942, 440); + tabPageColumnizers.Padding = new Padding(4, 5, 4, 5); + tabPageColumnizers.Size = new Size(942, 440); tabPageColumnizers.TabIndex = 3; tabPageColumnizers.Text = "Columnizers"; tabPageColumnizers.UseVisualStyleBackColor = true; @@ -987,11 +1009,11 @@ private void InitializeComponent() // checkBoxAutoPick.AutoSize = true; checkBoxAutoPick.Checked = true; - checkBoxAutoPick.CheckState = System.Windows.Forms.CheckState.Checked; - checkBoxAutoPick.Location = new System.Drawing.Point(530, 386); - checkBoxAutoPick.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxAutoPick.CheckState = CheckState.Checked; + checkBoxAutoPick.Location = new Point(530, 386); + checkBoxAutoPick.Margin = new Padding(4, 5, 4, 5); checkBoxAutoPick.Name = "checkBoxAutoPick"; - checkBoxAutoPick.Size = new System.Drawing.Size(192, 19); + checkBoxAutoPick.Size = new Size(192, 19); checkBoxAutoPick.TabIndex = 5; checkBoxAutoPick.Text = "Automatically pick for new files"; checkBoxAutoPick.UseVisualStyleBackColor = true; @@ -999,20 +1021,20 @@ private void InitializeComponent() // checkBoxMaskPrio // checkBoxMaskPrio.AutoSize = true; - checkBoxMaskPrio.Location = new System.Drawing.Point(213, 388); - checkBoxMaskPrio.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxMaskPrio.Location = new Point(213, 388); + checkBoxMaskPrio.Margin = new Padding(4, 5, 4, 5); checkBoxMaskPrio.Name = "checkBoxMaskPrio"; - checkBoxMaskPrio.Size = new System.Drawing.Size(192, 19); + checkBoxMaskPrio.Size = new Size(192, 19); checkBoxMaskPrio.TabIndex = 4; checkBoxMaskPrio.Text = "Mask has priority before history"; checkBoxMaskPrio.UseVisualStyleBackColor = true; // // buttonDelete // - buttonDelete.Location = new System.Drawing.Point(12, 380); - buttonDelete.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonDelete.Location = new Point(12, 380); + buttonDelete.Margin = new Padding(4, 5, 4, 5); buttonDelete.Name = "buttonDelete"; - buttonDelete.Size = new System.Drawing.Size(112, 35); + buttonDelete.Size = new Size(112, 35); buttonDelete.TabIndex = 3; buttonDelete.Text = "Delete"; buttonDelete.UseVisualStyleBackColor = true; @@ -1021,68 +1043,68 @@ private void InitializeComponent() // dataGridViewColumnizer // dataGridViewColumnizer.AllowUserToResizeRows = false; - dataGridViewColumnizer.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; - dataGridViewColumnizer.BackgroundColor = System.Drawing.SystemColors.ControlLight; - dataGridViewColumnizer.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - dataGridViewColumnizer.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { columnFileMask, columnColumnizer }); - dataGridViewColumnizer.Dock = System.Windows.Forms.DockStyle.Top; - dataGridViewColumnizer.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter; - dataGridViewColumnizer.Location = new System.Drawing.Point(4, 5); - dataGridViewColumnizer.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + dataGridViewColumnizer.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewColumnizer.BackgroundColor = SystemColors.ControlLight; + dataGridViewColumnizer.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewColumnizer.Columns.AddRange(new DataGridViewColumn[] { dataGridViewTextBoxColumnFileMask, dataGridViewComboBoxColumnColumnizer }); + dataGridViewColumnizer.Dock = DockStyle.Top; + dataGridViewColumnizer.EditMode = DataGridViewEditMode.EditOnEnter; + dataGridViewColumnizer.Location = new Point(4, 5); + dataGridViewColumnizer.Margin = new Padding(4, 5, 4, 5); dataGridViewColumnizer.Name = "dataGridViewColumnizer"; dataGridViewColumnizer.RowHeadersWidth = 62; - dataGridViewColumnizer.Size = new System.Drawing.Size(934, 365); + dataGridViewColumnizer.Size = new Size(934, 365); dataGridViewColumnizer.TabIndex = 2; dataGridViewColumnizer.RowsAdded += OnDataGridViewColumnizerRowsAdded; // - // columnFileMask + // dataGridViewTextBoxColumnFileMask // - columnFileMask.HeaderText = "File name mask (RegEx)"; - columnFileMask.MinimumWidth = 40; - columnFileMask.Name = "columnFileMask"; + dataGridViewTextBoxColumnFileMask.HeaderText = "File name mask (RegEx)"; + dataGridViewTextBoxColumnFileMask.MinimumWidth = 40; + dataGridViewTextBoxColumnFileMask.Name = "dataGridViewTextBoxColumnFileMask"; // - // columnColumnizer + // dataGridViewComboBoxColumnColumnizer // - columnColumnizer.HeaderText = "Columnizer"; - columnColumnizer.MinimumWidth = 230; - columnColumnizer.Name = "columnColumnizer"; + dataGridViewComboBoxColumnColumnizer.HeaderText = "Columnizer"; + dataGridViewComboBoxColumnColumnizer.MinimumWidth = 230; + dataGridViewComboBoxColumnColumnizer.Name = "dataGridViewComboBoxColumnColumnizer"; // // tabPageHighlightMask // tabPageHighlightMask.Controls.Add(dataGridViewHighlightMask); - tabPageHighlightMask.Location = new System.Drawing.Point(4, 24); - tabPageHighlightMask.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + tabPageHighlightMask.Location = new Point(4, 24); + tabPageHighlightMask.Margin = new Padding(4, 5, 4, 5); tabPageHighlightMask.Name = "tabPageHighlightMask"; - tabPageHighlightMask.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - tabPageHighlightMask.Size = new System.Drawing.Size(942, 440); + tabPageHighlightMask.Padding = new Padding(4, 5, 4, 5); + tabPageHighlightMask.Size = new Size(942, 440); tabPageHighlightMask.TabIndex = 8; tabPageHighlightMask.Text = "Highlight"; tabPageHighlightMask.UseVisualStyleBackColor = true; // // dataGridViewHighlightMask // - dataGridViewHighlightMask.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; - dataGridViewHighlightMask.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - dataGridViewHighlightMask.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { columnFileName, columnHighlightGroup }); - dataGridViewHighlightMask.Dock = System.Windows.Forms.DockStyle.Fill; - dataGridViewHighlightMask.Location = new System.Drawing.Point(4, 5); - dataGridViewHighlightMask.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + dataGridViewHighlightMask.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewHighlightMask.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewHighlightMask.Columns.AddRange(new DataGridViewColumn[] { dataGridViewTextBoxColumnFileName, dataGridViewComboBoxColumnHighlightGroup }); + dataGridViewHighlightMask.Dock = DockStyle.Fill; + dataGridViewHighlightMask.Location = new Point(4, 5); + dataGridViewHighlightMask.Margin = new Padding(4, 5, 4, 5); dataGridViewHighlightMask.Name = "dataGridViewHighlightMask"; dataGridViewHighlightMask.RowHeadersWidth = 62; - dataGridViewHighlightMask.Size = new System.Drawing.Size(934, 430); + dataGridViewHighlightMask.Size = new Size(934, 430); dataGridViewHighlightMask.TabIndex = 0; // - // columnFileName + // dataGridViewTextBoxColumnFileName // - columnFileName.HeaderText = "File name mask (RegEx)"; - columnFileName.MinimumWidth = 40; - columnFileName.Name = "columnFileName"; + dataGridViewTextBoxColumnFileName.HeaderText = "File name mask (RegEx)"; + dataGridViewTextBoxColumnFileName.MinimumWidth = 40; + dataGridViewTextBoxColumnFileName.Name = "dataGridViewTextBoxColumnFileName"; // - // columnHighlightGroup + // dataGridViewComboBoxColumnHighlightGroup // - columnHighlightGroup.HeaderText = "Highlight group"; - columnHighlightGroup.MinimumWidth = 50; - columnHighlightGroup.Name = "columnHighlightGroup"; + dataGridViewComboBoxColumnHighlightGroup.HeaderText = "Highlight group"; + dataGridViewComboBoxColumnHighlightGroup.MinimumWidth = 50; + dataGridViewComboBoxColumnHighlightGroup.Name = "dataGridViewComboBoxColumnHighlightGroup"; // // tabPageMultiFile // @@ -1090,11 +1112,11 @@ private void InitializeComponent() tabPageMultiFile.Controls.Add(labelHintMultiFile); tabPageMultiFile.Controls.Add(labelNoteMultiFile); tabPageMultiFile.Controls.Add(groupBoxWhenOpeningMultiFile); - tabPageMultiFile.Location = new System.Drawing.Point(4, 24); - tabPageMultiFile.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + tabPageMultiFile.Location = new Point(4, 24); + tabPageMultiFile.Margin = new Padding(4, 5, 4, 5); tabPageMultiFile.Name = "tabPageMultiFile"; - tabPageMultiFile.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - tabPageMultiFile.Size = new System.Drawing.Size(942, 440); + tabPageMultiFile.Padding = new Padding(4, 5, 4, 5); + tabPageMultiFile.Size = new Size(942, 440); tabPageMultiFile.TabIndex = 4; tabPageMultiFile.Text = "MultiFile"; tabPageMultiFile.UseVisualStyleBackColor = true; @@ -1105,11 +1127,11 @@ private void InitializeComponent() groupBoxDefaultFileNamePattern.Controls.Add(labelPattern); groupBoxDefaultFileNamePattern.Controls.Add(upDownMultifileDays); groupBoxDefaultFileNamePattern.Controls.Add(textBoxMultifilePattern); - groupBoxDefaultFileNamePattern.Location = new System.Drawing.Point(364, 28); - groupBoxDefaultFileNamePattern.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxDefaultFileNamePattern.Location = new Point(364, 28); + groupBoxDefaultFileNamePattern.Margin = new Padding(4, 5, 4, 5); groupBoxDefaultFileNamePattern.Name = "groupBoxDefaultFileNamePattern"; - groupBoxDefaultFileNamePattern.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxDefaultFileNamePattern.Size = new System.Drawing.Size(436, 154); + groupBoxDefaultFileNamePattern.Padding = new Padding(4, 5, 4, 5); + groupBoxDefaultFileNamePattern.Size = new Size(436, 154); groupBoxDefaultFileNamePattern.TabIndex = 3; groupBoxDefaultFileNamePattern.TabStop = false; groupBoxDefaultFileNamePattern.Text = "Default filename pattern"; @@ -1117,71 +1139,71 @@ private void InitializeComponent() // labelMaxDays // labelMaxDays.AutoSize = true; - labelMaxDays.Location = new System.Drawing.Point(10, 75); - labelMaxDays.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelMaxDays.Location = new Point(10, 75); + labelMaxDays.Margin = new Padding(4, 0, 4, 0); labelMaxDays.Name = "labelMaxDays"; - labelMaxDays.Size = new System.Drawing.Size(59, 15); + labelMaxDays.Size = new Size(60, 15); labelMaxDays.TabIndex = 3; labelMaxDays.Text = "Max days:"; // // labelPattern // labelPattern.AutoSize = true; - labelPattern.Location = new System.Drawing.Point(10, 37); - labelPattern.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelPattern.Location = new Point(10, 37); + labelPattern.Margin = new Padding(4, 0, 4, 0); labelPattern.Name = "labelPattern"; - labelPattern.Size = new System.Drawing.Size(48, 15); + labelPattern.Size = new Size(48, 15); labelPattern.TabIndex = 2; labelPattern.Text = "Pattern:"; // // upDownMultifileDays // - upDownMultifileDays.Location = new System.Drawing.Point(102, 72); - upDownMultifileDays.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + upDownMultifileDays.Location = new Point(102, 72); + upDownMultifileDays.Margin = new Padding(4, 5, 4, 5); upDownMultifileDays.Maximum = new decimal(new int[] { 40, 0, 0, 0 }); upDownMultifileDays.Name = "upDownMultifileDays"; helpProvider.SetShowHelp(upDownMultifileDays, false); - upDownMultifileDays.Size = new System.Drawing.Size(92, 23); + upDownMultifileDays.Size = new Size(92, 23); upDownMultifileDays.TabIndex = 1; upDownMultifileDays.Value = new decimal(new int[] { 1, 0, 0, 0 }); // // textBoxMultifilePattern // - textBoxMultifilePattern.Location = new System.Drawing.Point(102, 32); - textBoxMultifilePattern.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + textBoxMultifilePattern.Location = new Point(102, 32); + textBoxMultifilePattern.Margin = new Padding(4, 5, 4, 5); textBoxMultifilePattern.Name = "textBoxMultifilePattern"; - textBoxMultifilePattern.Size = new System.Drawing.Size(278, 23); + textBoxMultifilePattern.Size = new Size(278, 23); textBoxMultifilePattern.TabIndex = 0; textBoxMultifilePattern.TextChanged += OnMultiFilePatternTextChanged; // // labelHintMultiFile // - labelHintMultiFile.Location = new System.Drawing.Point(6, 203); - labelHintMultiFile.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelHintMultiFile.Location = new Point(6, 203); + labelHintMultiFile.Margin = new Padding(4, 0, 4, 0); labelHintMultiFile.Name = "labelHintMultiFile"; - labelHintMultiFile.Size = new System.Drawing.Size(304, 111); + labelHintMultiFile.Size = new Size(304, 111); labelHintMultiFile.TabIndex = 2; labelHintMultiFile.Text = "Hint: Pressing the Shift key while dropping files onto LogExpert will switch the behaviour from single to multi and vice versa."; // // labelNoteMultiFile // - labelNoteMultiFile.Location = new System.Drawing.Point(6, 314); - labelNoteMultiFile.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelNoteMultiFile.Location = new Point(6, 314); + labelNoteMultiFile.Margin = new Padding(4, 0, 4, 0); labelNoteMultiFile.Name = "labelNoteMultiFile"; - labelNoteMultiFile.Size = new System.Drawing.Size(705, 82); + labelNoteMultiFile.Size = new Size(705, 82); labelNoteMultiFile.TabIndex = 1; - labelNoteMultiFile.Text = resources.GetString("labelNoteMultiFile.Text"); + labelNoteMultiFile.Text = "Note: You can always load your logfiles as MultiFile automatically if the files names follow the MultiFile naming rule (, .1, .2, ...). Simply choose 'MultiFile' from the File menu after loading the first file."; // // groupBoxWhenOpeningMultiFile // groupBoxWhenOpeningMultiFile.Controls.Add(radioButtonAskWhatToDo); groupBoxWhenOpeningMultiFile.Controls.Add(radioButtonTreatAllFilesAsOneMultifile); groupBoxWhenOpeningMultiFile.Controls.Add(radioButtonLoadEveryFileIntoSeperatedTab); - groupBoxWhenOpeningMultiFile.Location = new System.Drawing.Point(10, 28); - groupBoxWhenOpeningMultiFile.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxWhenOpeningMultiFile.Location = new Point(10, 28); + groupBoxWhenOpeningMultiFile.Margin = new Padding(4, 5, 4, 5); groupBoxWhenOpeningMultiFile.Name = "groupBoxWhenOpeningMultiFile"; - groupBoxWhenOpeningMultiFile.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxWhenOpeningMultiFile.Size = new System.Drawing.Size(300, 154); + groupBoxWhenOpeningMultiFile.Padding = new Padding(4, 5, 4, 5); + groupBoxWhenOpeningMultiFile.Size = new Size(300, 154); groupBoxWhenOpeningMultiFile.TabIndex = 0; groupBoxWhenOpeningMultiFile.TabStop = false; groupBoxWhenOpeningMultiFile.Text = "When opening multiple files..."; @@ -1189,10 +1211,10 @@ private void InitializeComponent() // radioButtonAskWhatToDo // radioButtonAskWhatToDo.AutoSize = true; - radioButtonAskWhatToDo.Location = new System.Drawing.Point(10, 105); - radioButtonAskWhatToDo.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonAskWhatToDo.Location = new Point(10, 105); + radioButtonAskWhatToDo.Margin = new Padding(4, 5, 4, 5); radioButtonAskWhatToDo.Name = "radioButtonAskWhatToDo"; - radioButtonAskWhatToDo.Size = new System.Drawing.Size(104, 19); + radioButtonAskWhatToDo.Size = new Size(104, 19); radioButtonAskWhatToDo.TabIndex = 2; radioButtonAskWhatToDo.TabStop = true; radioButtonAskWhatToDo.Text = "Ask what to do"; @@ -1201,10 +1223,10 @@ private void InitializeComponent() // radioButtonTreatAllFilesAsOneMultifile // radioButtonTreatAllFilesAsOneMultifile.AutoSize = true; - radioButtonTreatAllFilesAsOneMultifile.Location = new System.Drawing.Point(10, 68); - radioButtonTreatAllFilesAsOneMultifile.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonTreatAllFilesAsOneMultifile.Location = new Point(10, 68); + radioButtonTreatAllFilesAsOneMultifile.Margin = new Padding(4, 5, 4, 5); radioButtonTreatAllFilesAsOneMultifile.Name = "radioButtonTreatAllFilesAsOneMultifile"; - radioButtonTreatAllFilesAsOneMultifile.Size = new System.Drawing.Size(182, 19); + radioButtonTreatAllFilesAsOneMultifile.Size = new Size(181, 19); radioButtonTreatAllFilesAsOneMultifile.TabIndex = 1; radioButtonTreatAllFilesAsOneMultifile.TabStop = true; radioButtonTreatAllFilesAsOneMultifile.Text = "Treat all files as one 'MultiFile'"; @@ -1213,10 +1235,10 @@ private void InitializeComponent() // radioButtonLoadEveryFileIntoSeperatedTab // radioButtonLoadEveryFileIntoSeperatedTab.AutoSize = true; - radioButtonLoadEveryFileIntoSeperatedTab.Location = new System.Drawing.Point(10, 31); - radioButtonLoadEveryFileIntoSeperatedTab.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonLoadEveryFileIntoSeperatedTab.Location = new Point(10, 31); + radioButtonLoadEveryFileIntoSeperatedTab.Margin = new Padding(4, 5, 4, 5); radioButtonLoadEveryFileIntoSeperatedTab.Name = "radioButtonLoadEveryFileIntoSeperatedTab"; - radioButtonLoadEveryFileIntoSeperatedTab.Size = new System.Drawing.Size(201, 19); + radioButtonLoadEveryFileIntoSeperatedTab.Size = new Size(201, 19); radioButtonLoadEveryFileIntoSeperatedTab.TabIndex = 0; radioButtonLoadEveryFileIntoSeperatedTab.TabStop = true; radioButtonLoadEveryFileIntoSeperatedTab.Text = "Load every file into a separate tab"; @@ -1226,72 +1248,72 @@ private void InitializeComponent() // tabPagePlugins.Controls.Add(groupBoxPlugins); tabPagePlugins.Controls.Add(groupBoxSettings); - tabPagePlugins.Location = new System.Drawing.Point(4, 24); - tabPagePlugins.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + tabPagePlugins.Location = new Point(4, 24); + tabPagePlugins.Margin = new Padding(4, 5, 4, 5); tabPagePlugins.Name = "tabPagePlugins"; - tabPagePlugins.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - tabPagePlugins.Size = new System.Drawing.Size(942, 440); + tabPagePlugins.Padding = new Padding(4, 5, 4, 5); + tabPagePlugins.Size = new Size(942, 440); tabPagePlugins.TabIndex = 5; tabPagePlugins.Text = "Plugins"; tabPagePlugins.UseVisualStyleBackColor = true; // // groupBoxPlugins // - groupBoxPlugins.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; + groupBoxPlugins.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; groupBoxPlugins.Controls.Add(listBoxPlugin); - groupBoxPlugins.Location = new System.Drawing.Point(10, 23); - groupBoxPlugins.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxPlugins.Location = new Point(10, 23); + groupBoxPlugins.Margin = new Padding(4, 5, 4, 5); groupBoxPlugins.Name = "groupBoxPlugins"; - groupBoxPlugins.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxPlugins.Size = new System.Drawing.Size(342, 400); + groupBoxPlugins.Padding = new Padding(4, 5, 4, 5); + groupBoxPlugins.Size = new Size(342, 400); groupBoxPlugins.TabIndex = 3; groupBoxPlugins.TabStop = false; groupBoxPlugins.Text = "Plugins"; // // listBoxPlugin // - listBoxPlugin.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; + listBoxPlugin.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; listBoxPlugin.DisplayMember = "Text"; listBoxPlugin.FormattingEnabled = true; listBoxPlugin.ItemHeight = 15; - listBoxPlugin.Location = new System.Drawing.Point(9, 29); - listBoxPlugin.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + listBoxPlugin.Location = new Point(9, 29); + listBoxPlugin.Margin = new Padding(4, 5, 4, 5); listBoxPlugin.Name = "listBoxPlugin"; - listBoxPlugin.Size = new System.Drawing.Size(322, 349); + listBoxPlugin.Size = new Size(322, 349); listBoxPlugin.TabIndex = 0; listBoxPlugin.ValueMember = "Text"; listBoxPlugin.SelectedIndexChanged += OnListBoxPluginSelectedIndexChanged; // // groupBoxSettings // - groupBoxSettings.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; + groupBoxSettings.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; groupBoxSettings.Controls.Add(panelPlugin); - groupBoxSettings.Location = new System.Drawing.Point(362, 23); - groupBoxSettings.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxSettings.Location = new Point(362, 23); + groupBoxSettings.Margin = new Padding(4, 5, 4, 5); groupBoxSettings.Name = "groupBoxSettings"; - groupBoxSettings.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxSettings.Size = new System.Drawing.Size(567, 400); + groupBoxSettings.Padding = new Padding(4, 5, 4, 5); + groupBoxSettings.Size = new Size(567, 400); groupBoxSettings.TabIndex = 2; groupBoxSettings.TabStop = false; groupBoxSettings.Text = "Settings"; // // panelPlugin // - panelPlugin.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; + panelPlugin.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; panelPlugin.AutoScroll = true; panelPlugin.Controls.Add(buttonConfigPlugin); - panelPlugin.Location = new System.Drawing.Point(9, 29); - panelPlugin.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + panelPlugin.Location = new Point(9, 29); + panelPlugin.Margin = new Padding(4, 5, 4, 5); panelPlugin.Name = "panelPlugin"; - panelPlugin.Size = new System.Drawing.Size(549, 362); + panelPlugin.Size = new Size(549, 362); panelPlugin.TabIndex = 1; // // buttonConfigPlugin // - buttonConfigPlugin.Location = new System.Drawing.Point(164, 163); - buttonConfigPlugin.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonConfigPlugin.Location = new Point(164, 163); + buttonConfigPlugin.Margin = new Padding(4, 5, 4, 5); buttonConfigPlugin.Name = "buttonConfigPlugin"; - buttonConfigPlugin.Size = new System.Drawing.Size(170, 35); + buttonConfigPlugin.Size = new Size(170, 35); buttonConfigPlugin.TabIndex = 0; buttonConfigPlugin.Text = "Configure..."; buttonConfigPlugin.UseVisualStyleBackColor = true; @@ -1303,11 +1325,11 @@ private void InitializeComponent() tabPageSessions.Controls.Add(checkBoxSaveFilter); tabPageSessions.Controls.Add(groupBoxPersistantFileLocation); tabPageSessions.Controls.Add(checkBoxSaveSessions); - tabPageSessions.Location = new System.Drawing.Point(4, 24); - tabPageSessions.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + tabPageSessions.Location = new Point(4, 24); + tabPageSessions.Margin = new Padding(4, 5, 4, 5); tabPageSessions.Name = "tabPageSessions"; - tabPageSessions.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - tabPageSessions.Size = new System.Drawing.Size(942, 440); + tabPageSessions.Padding = new Padding(4, 5, 4, 5); + tabPageSessions.Size = new Size(942, 440); tabPageSessions.TabIndex = 6; tabPageSessions.Text = "Persistence"; tabPageSessions.UseVisualStyleBackColor = true; @@ -1315,10 +1337,10 @@ private void InitializeComponent() // checkBoxPortableMode // checkBoxPortableMode.AutoSize = true; - checkBoxPortableMode.Location = new System.Drawing.Point(35, 110); - checkBoxPortableMode.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxPortableMode.Location = new Point(35, 110); + checkBoxPortableMode.Margin = new Padding(4, 5, 4, 5); checkBoxPortableMode.Name = "checkBoxPortableMode"; - checkBoxPortableMode.Size = new System.Drawing.Size(150, 19); + checkBoxPortableMode.Size = new Size(150, 19); checkBoxPortableMode.TabIndex = 3; checkBoxPortableMode.Text = "Activate Portable Mode"; toolTip.SetToolTip(checkBoxPortableMode, "If this mode is activated, the save file will be loaded from the Executable Location"); @@ -1328,10 +1350,10 @@ private void InitializeComponent() // checkBoxSaveFilter // checkBoxSaveFilter.AutoSize = true; - checkBoxSaveFilter.Location = new System.Drawing.Point(35, 75); - checkBoxSaveFilter.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxSaveFilter.Location = new Point(35, 75); + checkBoxSaveFilter.Margin = new Padding(4, 5, 4, 5); checkBoxSaveFilter.Name = "checkBoxSaveFilter"; - checkBoxSaveFilter.Size = new System.Drawing.Size(217, 19); + checkBoxSaveFilter.Size = new Size(217, 19); checkBoxSaveFilter.TabIndex = 2; checkBoxSaveFilter.Text = " Save and restore filter and filter tabs"; checkBoxSaveFilter.UseVisualStyleBackColor = true; @@ -1344,30 +1366,30 @@ private void InitializeComponent() groupBoxPersistantFileLocation.Controls.Add(radioButtonsessionSaveDocuments); groupBoxPersistantFileLocation.Controls.Add(radioButtonSessionSameDir); groupBoxPersistantFileLocation.Controls.Add(radioButtonSessionApplicationStartupDir); - groupBoxPersistantFileLocation.Location = new System.Drawing.Point(34, 145); - groupBoxPersistantFileLocation.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxPersistantFileLocation.Location = new Point(34, 145); + groupBoxPersistantFileLocation.Margin = new Padding(4, 5, 4, 5); groupBoxPersistantFileLocation.Name = "groupBoxPersistantFileLocation"; - groupBoxPersistantFileLocation.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxPersistantFileLocation.Size = new System.Drawing.Size(411, 190); + groupBoxPersistantFileLocation.Padding = new Padding(4, 5, 4, 5); + groupBoxPersistantFileLocation.Size = new Size(411, 190); groupBoxPersistantFileLocation.TabIndex = 1; groupBoxPersistantFileLocation.TabStop = false; groupBoxPersistantFileLocation.Text = "Persistence file location"; // // labelSessionSaveOwnDir // - labelSessionSaveOwnDir.Location = new System.Drawing.Point(27, 160); - labelSessionSaveOwnDir.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelSessionSaveOwnDir.Location = new Point(27, 160); + labelSessionSaveOwnDir.Margin = new Padding(4, 0, 4, 0); labelSessionSaveOwnDir.Name = "labelSessionSaveOwnDir"; - labelSessionSaveOwnDir.Size = new System.Drawing.Size(252, 31); + labelSessionSaveOwnDir.Size = new Size(252, 31); labelSessionSaveOwnDir.TabIndex = 4; labelSessionSaveOwnDir.Text = "sessionSaveOwnDirLabel"; // // buttonSessionSaveDir // - buttonSessionSaveDir.Location = new System.Drawing.Point(358, 135); - buttonSessionSaveDir.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonSessionSaveDir.Location = new Point(358, 135); + buttonSessionSaveDir.Margin = new Padding(4, 5, 4, 5); buttonSessionSaveDir.Name = "buttonSessionSaveDir"; - buttonSessionSaveDir.Size = new System.Drawing.Size(45, 19); + buttonSessionSaveDir.Size = new Size(45, 19); buttonSessionSaveDir.TabIndex = 3; buttonSessionSaveDir.Text = "..."; buttonSessionSaveDir.UseVisualStyleBackColor = true; @@ -1376,10 +1398,10 @@ private void InitializeComponent() // radioButtonSessionSaveOwn // radioButtonSessionSaveOwn.AutoSize = true; - radioButtonSessionSaveOwn.Location = new System.Drawing.Point(10, 135); - radioButtonSessionSaveOwn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonSessionSaveOwn.Location = new Point(10, 135); + radioButtonSessionSaveOwn.Margin = new Padding(4, 5, 4, 5); radioButtonSessionSaveOwn.Name = "radioButtonSessionSaveOwn"; - radioButtonSessionSaveOwn.Size = new System.Drawing.Size(100, 19); + radioButtonSessionSaveOwn.Size = new Size(100, 19); radioButtonSessionSaveOwn.TabIndex = 2; radioButtonSessionSaveOwn.TabStop = true; radioButtonSessionSaveOwn.Text = "Own directory"; @@ -1388,10 +1410,10 @@ private void InitializeComponent() // radioButtonsessionSaveDocuments // radioButtonsessionSaveDocuments.AutoSize = true; - radioButtonsessionSaveDocuments.Location = new System.Drawing.Point(10, 65); - radioButtonsessionSaveDocuments.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonsessionSaveDocuments.Location = new Point(10, 65); + radioButtonsessionSaveDocuments.Margin = new Padding(4, 5, 4, 5); radioButtonsessionSaveDocuments.Name = "radioButtonsessionSaveDocuments"; - radioButtonsessionSaveDocuments.Size = new System.Drawing.Size(160, 19); + radioButtonsessionSaveDocuments.Size = new Size(161, 19); radioButtonsessionSaveDocuments.TabIndex = 1; radioButtonsessionSaveDocuments.TabStop = true; radioButtonsessionSaveDocuments.Text = "MyDocuments/LogExpert"; @@ -1400,10 +1422,10 @@ private void InitializeComponent() // radioButtonSessionSameDir // radioButtonSessionSameDir.AutoSize = true; - radioButtonSessionSameDir.Location = new System.Drawing.Point(10, 30); - radioButtonSessionSameDir.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonSessionSameDir.Location = new Point(10, 30); + radioButtonSessionSameDir.Margin = new Padding(4, 5, 4, 5); radioButtonSessionSameDir.Name = "radioButtonSessionSameDir"; - radioButtonSessionSameDir.Size = new System.Drawing.Size(157, 19); + radioButtonSessionSameDir.Size = new Size(157, 19); radioButtonSessionSameDir.TabIndex = 0; radioButtonSessionSameDir.TabStop = true; radioButtonSessionSameDir.Text = "Same directory as log file"; @@ -1412,10 +1434,10 @@ private void InitializeComponent() // radioButtonSessionApplicationStartupDir // radioButtonSessionApplicationStartupDir.AutoSize = true; - radioButtonSessionApplicationStartupDir.Location = new System.Drawing.Point(10, 100); - radioButtonSessionApplicationStartupDir.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + radioButtonSessionApplicationStartupDir.Location = new Point(10, 100); + radioButtonSessionApplicationStartupDir.Margin = new Padding(4, 5, 4, 5); radioButtonSessionApplicationStartupDir.Name = "radioButtonSessionApplicationStartupDir"; - radioButtonSessionApplicationStartupDir.Size = new System.Drawing.Size(176, 19); + radioButtonSessionApplicationStartupDir.Size = new Size(176, 19); radioButtonSessionApplicationStartupDir.TabIndex = 5; radioButtonSessionApplicationStartupDir.TabStop = true; radioButtonSessionApplicationStartupDir.Text = "Application startup directory"; @@ -1425,10 +1447,10 @@ private void InitializeComponent() // checkBoxSaveSessions // checkBoxSaveSessions.AutoSize = true; - checkBoxSaveSessions.Location = new System.Drawing.Point(35, 40); - checkBoxSaveSessions.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxSaveSessions.Location = new Point(35, 40); + checkBoxSaveSessions.Margin = new Padding(4, 5, 4, 5); checkBoxSaveSessions.Name = "checkBoxSaveSessions"; - checkBoxSaveSessions.Size = new System.Drawing.Size(241, 19); + checkBoxSaveSessions.Size = new Size(242, 19); checkBoxSaveSessions.TabIndex = 0; checkBoxSaveSessions.Text = "Automatically save persistence files (.lxp)"; checkBoxSaveSessions.UseVisualStyleBackColor = true; @@ -1437,11 +1459,11 @@ private void InitializeComponent() // tabPageMemory.Controls.Add(groupBoxCPUAndStuff); tabPageMemory.Controls.Add(groupBoxLineBufferUsage); - tabPageMemory.Location = new System.Drawing.Point(4, 24); - tabPageMemory.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + tabPageMemory.Location = new Point(4, 24); + tabPageMemory.Margin = new Padding(4, 5, 4, 5); tabPageMemory.Name = "tabPageMemory"; - tabPageMemory.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - tabPageMemory.Size = new System.Drawing.Size(942, 440); + tabPageMemory.Padding = new Padding(4, 5, 4, 5); + tabPageMemory.Size = new Size(942, 440); tabPageMemory.TabIndex = 7; tabPageMemory.Text = "Memory/CPU"; tabPageMemory.UseVisualStyleBackColor = true; @@ -1452,11 +1474,11 @@ private void InitializeComponent() groupBoxCPUAndStuff.Controls.Add(checkBoxMultiThread); groupBoxCPUAndStuff.Controls.Add(labelFilePollingInterval); groupBoxCPUAndStuff.Controls.Add(upDownPollingInterval); - groupBoxCPUAndStuff.Location = new System.Drawing.Point(408, 29); - groupBoxCPUAndStuff.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxCPUAndStuff.Location = new Point(408, 29); + groupBoxCPUAndStuff.Margin = new Padding(4, 5, 4, 5); groupBoxCPUAndStuff.Name = "groupBoxCPUAndStuff"; - groupBoxCPUAndStuff.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxCPUAndStuff.Size = new System.Drawing.Size(300, 197); + groupBoxCPUAndStuff.Padding = new Padding(4, 5, 4, 5); + groupBoxCPUAndStuff.Size = new Size(300, 197); groupBoxCPUAndStuff.TabIndex = 8; groupBoxCPUAndStuff.TabStop = false; groupBoxCPUAndStuff.Text = "CPU and stuff"; @@ -1464,10 +1486,10 @@ private void InitializeComponent() // checkBoxLegacyReader // checkBoxLegacyReader.AutoSize = true; - checkBoxLegacyReader.Location = new System.Drawing.Point(14, 138); - checkBoxLegacyReader.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxLegacyReader.Location = new Point(14, 138); + checkBoxLegacyReader.Margin = new Padding(4, 5, 4, 5); checkBoxLegacyReader.Name = "checkBoxLegacyReader"; - checkBoxLegacyReader.Size = new System.Drawing.Size(182, 19); + checkBoxLegacyReader.Size = new Size(182, 19); checkBoxLegacyReader.TabIndex = 9; checkBoxLegacyReader.Text = "Use legacy file reader (slower)"; toolTip.SetToolTip(checkBoxLegacyReader, "Slower but more compatible with strange linefeeds and encodings"); @@ -1476,10 +1498,10 @@ private void InitializeComponent() // checkBoxMultiThread // checkBoxMultiThread.AutoSize = true; - checkBoxMultiThread.Location = new System.Drawing.Point(14, 103); - checkBoxMultiThread.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + checkBoxMultiThread.Location = new Point(14, 103); + checkBoxMultiThread.Margin = new Padding(4, 5, 4, 5); checkBoxMultiThread.Name = "checkBoxMultiThread"; - checkBoxMultiThread.Size = new System.Drawing.Size(131, 19); + checkBoxMultiThread.Size = new Size(131, 19); checkBoxMultiThread.TabIndex = 5; checkBoxMultiThread.Text = "Multi threaded filter"; checkBoxMultiThread.UseVisualStyleBackColor = true; @@ -1487,21 +1509,21 @@ private void InitializeComponent() // labelFilePollingInterval // labelFilePollingInterval.AutoSize = true; - labelFilePollingInterval.Location = new System.Drawing.Point(9, 52); - labelFilePollingInterval.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelFilePollingInterval.Location = new Point(9, 52); + labelFilePollingInterval.Margin = new Padding(4, 0, 4, 0); labelFilePollingInterval.Name = "labelFilePollingInterval"; - labelFilePollingInterval.Size = new System.Drawing.Size(137, 15); + labelFilePollingInterval.Size = new Size(137, 15); labelFilePollingInterval.TabIndex = 7; labelFilePollingInterval.Text = "File polling interval (ms):"; // // upDownPollingInterval // - upDownPollingInterval.Location = new System.Drawing.Point(190, 49); - upDownPollingInterval.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + upDownPollingInterval.Location = new Point(190, 49); + upDownPollingInterval.Margin = new Padding(4, 5, 4, 5); upDownPollingInterval.Maximum = new decimal(new int[] { 5000, 0, 0, 0 }); upDownPollingInterval.Minimum = new decimal(new int[] { 20, 0, 0, 0 }); upDownPollingInterval.Name = "upDownPollingInterval"; - upDownPollingInterval.Size = new System.Drawing.Size(86, 23); + upDownPollingInterval.Size = new Size(86, 23); upDownPollingInterval.TabIndex = 6; upDownPollingInterval.Value = new decimal(new int[] { 20, 0, 0, 0 }); // @@ -1512,11 +1534,11 @@ private void InitializeComponent() groupBoxLineBufferUsage.Controls.Add(upDownLinesPerBlock); groupBoxLineBufferUsage.Controls.Add(upDownBlockCount); groupBoxLineBufferUsage.Controls.Add(labelLinesPerBlock); - groupBoxLineBufferUsage.Location = new System.Drawing.Point(10, 29); - groupBoxLineBufferUsage.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + groupBoxLineBufferUsage.Location = new Point(10, 29); + groupBoxLineBufferUsage.Margin = new Padding(4, 5, 4, 5); groupBoxLineBufferUsage.Name = "groupBoxLineBufferUsage"; - groupBoxLineBufferUsage.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - groupBoxLineBufferUsage.Size = new System.Drawing.Size(326, 197); + groupBoxLineBufferUsage.Padding = new Padding(4, 5, 4, 5); + groupBoxLineBufferUsage.Size = new Size(326, 197); groupBoxLineBufferUsage.TabIndex = 4; groupBoxLineBufferUsage.TabStop = false; groupBoxLineBufferUsage.Text = "Line buffer usage"; @@ -1524,63 +1546,63 @@ private void InitializeComponent() // labelInfo // labelInfo.AutoSize = true; - labelInfo.Location = new System.Drawing.Point(9, 145); - labelInfo.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelInfo.Location = new Point(9, 145); + labelInfo.Margin = new Padding(4, 0, 4, 0); labelInfo.Name = "labelInfo"; - labelInfo.Size = new System.Drawing.Size(219, 15); + labelInfo.Size = new Size(220, 15); labelInfo.TabIndex = 4; labelInfo.Text = "Changes will take effect on next file load"; // // labelNumberOfBlocks // labelNumberOfBlocks.AutoSize = true; - labelNumberOfBlocks.Location = new System.Drawing.Point(9, 52); - labelNumberOfBlocks.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelNumberOfBlocks.Location = new Point(9, 52); + labelNumberOfBlocks.Margin = new Padding(4, 0, 4, 0); labelNumberOfBlocks.Name = "labelNumberOfBlocks"; - labelNumberOfBlocks.Size = new System.Drawing.Size(102, 15); + labelNumberOfBlocks.Size = new Size(102, 15); labelNumberOfBlocks.TabIndex = 1; labelNumberOfBlocks.Text = "Number of blocks"; // // upDownLinesPerBlock // - upDownLinesPerBlock.Location = new System.Drawing.Point(210, 102); - upDownLinesPerBlock.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + upDownLinesPerBlock.Location = new Point(210, 102); + upDownLinesPerBlock.Margin = new Padding(4, 5, 4, 5); upDownLinesPerBlock.Maximum = new decimal(new int[] { 5000000, 0, 0, 0 }); upDownLinesPerBlock.Minimum = new decimal(new int[] { 1, 0, 0, 0 }); upDownLinesPerBlock.Name = "upDownLinesPerBlock"; - upDownLinesPerBlock.Size = new System.Drawing.Size(94, 23); + upDownLinesPerBlock.Size = new Size(94, 23); upDownLinesPerBlock.TabIndex = 3; upDownLinesPerBlock.Value = new decimal(new int[] { 50000, 0, 0, 0 }); upDownLinesPerBlock.ValueChanged += OnNumericUpDown1ValueChanged; // // upDownBlockCount // - upDownBlockCount.Location = new System.Drawing.Point(210, 49); - upDownBlockCount.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + upDownBlockCount.Location = new Point(210, 49); + upDownBlockCount.Margin = new Padding(4, 5, 4, 5); upDownBlockCount.Maximum = new decimal(new int[] { 5000, 0, 0, 0 }); upDownBlockCount.Minimum = new decimal(new int[] { 10, 0, 0, 0 }); upDownBlockCount.Name = "upDownBlockCount"; - upDownBlockCount.Size = new System.Drawing.Size(94, 23); + upDownBlockCount.Size = new Size(94, 23); upDownBlockCount.TabIndex = 0; upDownBlockCount.Value = new decimal(new int[] { 100, 0, 0, 0 }); // // labelLinesPerBlock // labelLinesPerBlock.AutoSize = true; - labelLinesPerBlock.Location = new System.Drawing.Point(9, 105); - labelLinesPerBlock.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + labelLinesPerBlock.Location = new Point(9, 105); + labelLinesPerBlock.Margin = new Padding(4, 0, 4, 0); labelLinesPerBlock.Name = "labelLinesPerBlock"; - labelLinesPerBlock.Size = new System.Drawing.Size(68, 15); + labelLinesPerBlock.Size = new Size(68, 15); labelLinesPerBlock.TabIndex = 2; labelLinesPerBlock.Text = "Lines/block"; // // buttonCancel // - buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - buttonCancel.Location = new System.Drawing.Point(818, 509); - buttonCancel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonCancel.DialogResult = DialogResult.Cancel; + buttonCancel.Location = new Point(818, 509); + buttonCancel.Margin = new Padding(4, 5, 4, 5); buttonCancel.Name = "buttonCancel"; - buttonCancel.Size = new System.Drawing.Size(112, 35); + buttonCancel.Size = new Size(112, 35); buttonCancel.TabIndex = 1; buttonCancel.Text = "Cancel"; buttonCancel.UseVisualStyleBackColor = true; @@ -1588,11 +1610,11 @@ private void InitializeComponent() // // buttonOk // - buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK; - buttonOk.Location = new System.Drawing.Point(696, 509); - buttonOk.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonOk.DialogResult = DialogResult.OK; + buttonOk.Location = new Point(696, 509); + buttonOk.Margin = new Padding(4, 5, 4, 5); buttonOk.Name = "buttonOk"; - buttonOk.Size = new System.Drawing.Size(112, 35); + buttonOk.Size = new Size(112, 35); buttonOk.TabIndex = 0; buttonOk.Text = "OK"; buttonOk.UseVisualStyleBackColor = true; @@ -1604,10 +1626,10 @@ private void InitializeComponent() // // buttonExport // - buttonExport.Location = new System.Drawing.Point(20, 509); - buttonExport.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonExport.Location = new Point(20, 509); + buttonExport.Margin = new Padding(4, 5, 4, 5); buttonExport.Name = "buttonExport"; - buttonExport.Size = new System.Drawing.Size(112, 35); + buttonExport.Size = new Size(112, 35); buttonExport.TabIndex = 2; buttonExport.Text = "Export..."; buttonExport.UseVisualStyleBackColor = true; @@ -1615,49 +1637,34 @@ private void InitializeComponent() // // buttonImport // - buttonImport.Location = new System.Drawing.Point(142, 509); - buttonImport.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + buttonImport.Location = new Point(142, 509); + buttonImport.Margin = new Padding(4, 5, 4, 5); buttonImport.Name = "buttonImport"; - buttonImport.Size = new System.Drawing.Size(112, 35); + buttonImport.Size = new Size(112, 35); buttonImport.TabIndex = 3; buttonImport.Text = "Import..."; buttonImport.UseVisualStyleBackColor = true; buttonImport.Click += OnBtnImportClick; // - // dataGridViewTextBoxColumn1 - // - dataGridViewTextBoxColumn1.HeaderText = "File name mask (RegEx)"; - dataGridViewTextBoxColumn1.MinimumWidth = 40; - dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; - dataGridViewTextBoxColumn1.Width = 99; - // - // dataGridViewTextBoxColumn2 - // - dataGridViewTextBoxColumn2.HeaderText = "File name mask (RegEx)"; - dataGridViewTextBoxColumn2.MinimumWidth = 40; - dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; - dataGridViewTextBoxColumn2.Width = 259; - // // SettingsDialog // AcceptButton = buttonOk; CancelButton = buttonCancel; - ClientSize = new System.Drawing.Size(956, 563); + ClientSize = new Size(956, 563); Controls.Add(buttonImport); Controls.Add(buttonExport); Controls.Add(buttonOk); Controls.Add(buttonCancel); Controls.Add(tabControlSettings); - FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + FormBorderStyle = FormBorderStyle.FixedDialog; helpProvider.SetHelpKeyword(this, "Settings.htm"); - helpProvider.SetHelpNavigator(this, System.Windows.Forms.HelpNavigator.Topic); - Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); - Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + helpProvider.SetHelpNavigator(this, HelpNavigator.Topic); + Margin = new Padding(4, 5, 4, 5); MaximizeBox = false; MinimizeBox = false; Name = "SettingsDialog"; helpProvider.SetShowHelp(this, true); - StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + StartPosition = FormStartPosition.CenterParent; Text = "Settings"; Load += OnSettingsDialogLoad; tabControlSettings.ResumeLayout(false); @@ -1743,10 +1750,9 @@ private void InitializeComponent() private System.Windows.Forms.Button buttonArguments; private System.Windows.Forms.TabPage tabPageColumnizers; private System.Windows.Forms.DataGridView dataGridViewColumnizer; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; private System.Windows.Forms.Button buttonDelete; - private System.Windows.Forms.DataGridViewTextBoxColumn columnFileMask; - private System.Windows.Forms.DataGridViewComboBoxColumn columnColumnizer; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumnFileMask; + private System.Windows.Forms.DataGridViewComboBoxColumn dataGridViewComboBoxColumnColumnizer; private System.Windows.Forms.CheckBox checkBoxSysout; private System.Windows.Forms.CheckBox checkBoxMaskPrio; private System.Windows.Forms.GroupBox groupBoxMisc; @@ -1798,9 +1804,8 @@ private void InitializeComponent() private System.Windows.Forms.Label labelInfo; private System.Windows.Forms.TabPage tabPageHighlightMask; private System.Windows.Forms.DataGridView dataGridViewHighlightMask; - private System.Windows.Forms.DataGridViewTextBoxColumn columnFileName; - private System.Windows.Forms.DataGridViewComboBoxColumn columnHighlightGroup; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumnFileName; + private System.Windows.Forms.DataGridViewComboBoxColumn dataGridViewComboBoxColumnHighlightGroup; private System.Windows.Forms.CheckBox checkBoxMultiThread; private System.Windows.Forms.Label labelFilePollingInterval; private System.Windows.Forms.NumericUpDown upDownPollingInterval; @@ -1841,5 +1846,7 @@ private void InitializeComponent() private System.Windows.Forms.CheckBox checkBoxDarkMode; private System.Windows.Forms.NumericUpDown upDownMaximumLineLength; private System.Windows.Forms.Label labelMaximumLineLength; - private System.Windows.Forms.Label labelWarningMaximumLineLenght; + private System.Windows.Forms.Label labelWarningMaximumLineLength; + private Label labelLanguage; + private ComboBox comboBoxLanguage; } diff --git a/src/LogExpert.UI/Dialogs/SettingsDialog.cs b/src/LogExpert.UI/Dialogs/SettingsDialog.cs index def435ed..578be2a0 100644 --- a/src/LogExpert.UI/Dialogs/SettingsDialog.cs +++ b/src/LogExpert.UI/Dialogs/SettingsDialog.cs @@ -1,4 +1,6 @@ +using System.Globalization; using System.Runtime.Versioning; +using System.Security; using System.Text; using LogExpert.Core.Classes; @@ -7,6 +9,7 @@ using LogExpert.Core.Entities; using LogExpert.Core.Enums; using LogExpert.Core.Interface; +using LogExpert.Extensions; using LogExpert.UI.Controls.LogTabWindow; using LogExpert.UI.Dialogs; using LogExpert.UI.Extensions; @@ -21,6 +24,7 @@ internal partial class SettingsDialog : Form private readonly Image _emptyImage = new Bitmap(16, 16); private readonly LogTabWindow _logTabWin; + private const string DEFAULT_FONT_NAME = "Courier New"; private ILogExpertPluginConfigurator _selectedPlugin; private ToolEntry _selectedTool; @@ -31,20 +35,27 @@ internal partial class SettingsDialog : Form private SettingsDialog (Preferences prefs, LogTabWindow logTabWin) { + SuspendLayout(); + Preferences = prefs; _logTabWin = logTabWin; //TODO: uses only HighlightGroupList. Can we pass IList instead? - InitializeComponent(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + + InitializeComponent(); + + LoadResources(); + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + + ResumeLayout(); } public SettingsDialog (Preferences prefs, LogTabWindow logTabWin, int tabToOpen, IConfigManager configManager) : this(prefs, logTabWin) { tabControlSettings.SelectedIndex = tabToOpen; ConfigManager = configManager; - } #endregion @@ -52,19 +63,64 @@ public SettingsDialog (Preferences prefs, LogTabWindow logTabWin, int tabToOpen, #region Properties public Preferences Preferences { get; private set; } + private IConfigManager ConfigManager { get; } #endregion #region Private Methods + private void LoadResources () + { + ApplyTextResources(); + ApplyToolTips(); + ApplyFormTitle(); + + // Form title + Text = Resources.SettingsDialog_Form_Text; + } + + private void ApplyFormTitle () + { + Text = Resources.SettingsDialog_Form_Text; + } + + private void ApplyToolTips () + { + foreach (var entry in GetToolTipMap()) + { + toolTip.SetToolTip(entry.Key, entry.Value); + } + } + + private void ApplyTextResources () + { + var map = ResourceHelper.GenerateTextMapFromNaming(this, nameof(SettingsDialog), "UI"); + + // Add exceptions or unrelated entries manually: + map[buttonCancel] = Resources.LogExpert_Common_UI_Button_Cancel; + map[buttonOk] = Resources.LogExpert_Common_UI_Button_OK; + map[buttonExport] = Resources.LogExpert_Common_UI_Button_Export; + map[buttonImport] = Resources.LogExpert_Common_UI_Button_Import; + + foreach (var entry in map) + { + entry.Key.Text = entry.Value; + } + + dataGridViewTextBoxColumnFileMask.HeaderText = Resources.SettingsDialog_UI_DataGridViewTextBoxColumn_FileMask; + dataGridViewComboBoxColumnColumnizer.HeaderText = Resources.SettingsDialog_UI_DataGridViewComboBoxColumn_Columnizer; + dataGridViewTextBoxColumnFileName.HeaderText = Resources.SettingsDialog_UI_DataGridViewTextBoxColumn_FileName; + dataGridViewComboBoxColumnHighlightGroup.HeaderText = Resources.SettingsDialog_UI_DataGridViewComboBoxColumn_HighlightGroup; + } + private void FillDialog () { Preferences ??= new Preferences(); if (Preferences.FontName == null) { - Preferences.FontName = "Courier New"; + Preferences.FontName = DEFAULT_FONT_NAME; } if (Math.Abs(Preferences.FontSize) < 0.1) @@ -118,15 +174,14 @@ private void FillDialog () case SessionSaveLocation.OwnDir: { radioButtonSessionSaveOwn.Checked = true; + break; } - - break; case SessionSaveLocation.SameDir: { radioButtonSessionSameDir.Checked = true; + break; } - break; case SessionSaveLocation.DocumentsDir: { radioButtonsessionSaveDocuments.Checked = true; @@ -137,6 +192,12 @@ private void FillDialog () radioButtonSessionApplicationStartupDir.Checked = true; break; } + case SessionSaveLocation.LoadedSessionFile: + // intentionally left blank + break; + default: + // intentionally left blank + break; } //overwrite preferences save location in portable mode to always be application startup directory @@ -166,10 +227,11 @@ private void FillDialog () FillToolListbox(); FillMultifileSettings(); FillEncodingList(); - - var temp = Encoding.GetEncoding(Preferences.DefaultEncoding); + FillLanguageList(); comboBoxEncoding.SelectedItem = Encoding.GetEncoding(Preferences.DefaultEncoding); + comboBoxLanguage.SelectedItem = CultureInfo.GetCultureInfo(Preferences.DefaultLanguage).Name; + checkBoxMaskPrio.Checked = Preferences.MaskPrio; checkBoxAutoPick.Checked = Preferences.AutoPick; checkBoxAskCloseTabs.Checked = Preferences.AskForClose; @@ -185,7 +247,7 @@ private void FillPortableMode () private void DisplayFontName () { - labelFont.Text = Preferences.FontName + @" " + (int)Preferences.FontSize; + labelFont.Text = $"{Preferences.FontName} {(int)Preferences.FontSize}"; labelFont.Font = new Font(new FontFamily(Preferences.FontName), Preferences.FontSize); } @@ -210,7 +272,7 @@ private void SaveMultifileData () Preferences.MultiFileOptions.MaxDayTry = (int)upDownMultifileDays.Value; } - private void OnBtnToolClickInternal (TextBox textBox) + private static void OnBtnToolClickInternal (TextBox textBox) { OpenFileDialog dlg = new() { @@ -246,12 +308,12 @@ private void OnBtnArgsClickInternal (TextBox textBox) } } - private void OnBtnWorkingDirClick (TextBox textBox) + private static void OnBtnWorkingDirClick (TextBox textBox) { FolderBrowserDialog dlg = new() { RootFolder = Environment.SpecialFolder.MyComputer, - Description = @"Select a working directory" + Description = Resources.SettingsDialog_UI_FolderBrowser_folderBrowserWorkingDir }; if (!string.IsNullOrEmpty(textBox.Text)) @@ -277,7 +339,7 @@ private void FillColumnizerForToolsList () } } - private void FillColumnizerForToolsList (ComboBox comboBox, string columnizerName) + private static void FillColumnizerForToolsList (ComboBox comboBox, string columnizerName) { var selIndex = 0; comboBox.Items.Clear(); @@ -305,7 +367,7 @@ private void FillColumnizerList () var comboColumn = (DataGridViewComboBoxColumn)dataGridViewColumnizer.Columns[1]; comboColumn.Items.Clear(); - var textColumn = (DataGridViewTextBoxColumn)dataGridViewColumnizer.Columns[0]; + //var textColumn = (DataGridViewTextBoxColumn)dataGridViewColumnizer.Columns[0]; var columnizers = PluginRegistry.PluginRegistry.Instance.RegisteredColumnizers; @@ -353,7 +415,7 @@ private void FillHighlightMaskList () comboColumn.Items.Clear(); //TODO Remove if not necessary - var textColumn = (DataGridViewTextBoxColumn)dataGridViewHighlightMask.Columns[0]; + //var textColumn = (DataGridViewTextBoxColumn)dataGridViewHighlightMask.Columns[0]; foreach (var group in (IList)_logTabWin.HighlightGroupList) { @@ -400,9 +462,11 @@ private void SaveColumnizerList () { if (!row.IsNewRow) { - ColumnizerMaskEntry entry = new(); - entry.Mask = (string)row.Cells[0].Value; - entry.ColumnizerName = (string)row.Cells[1].Value; + ColumnizerMaskEntry entry = new() + { + Mask = (string)row.Cells[0].Value, + ColumnizerName = (string)row.Cells[1].Value + }; Preferences.ColumnizerMaskList.Add(entry); } } @@ -416,9 +480,11 @@ private void SaveHighlightMaskList () { if (!row.IsNewRow) { - HighlightMaskEntry entry = new(); - entry.Mask = (string)row.Cells[0].Value; - entry.HighlightGroupName = (string)row.Cells[1].Value; + HighlightMaskEntry entry = new() + { + Mask = (string)row.Cells[0].Value, + HighlightGroupName = (string)row.Cells[1].Value + }; Preferences.HighlightMaskList.Add(entry); } } @@ -513,6 +579,9 @@ private void FillMultifileSettings () radioButtonAskWhatToDo.Checked = true; break; } + default: + //intentionally left blank + break; } textBoxMultifilePattern.Text = Preferences.MultiFileOptions.FormatPattern; //TODO: Impport settings file throws an exception. Fix or I caused it? @@ -577,6 +646,12 @@ private void DisplayCurrentIcon () } } + /// + /// Populates the encoding list in the combo box with a predefined set of character encodings. + /// + /// This method clears any existing items in the combo box and adds a selection of common + /// encodings, including ASCII, Default (UTF-8), ISO-8859-1, UTF-8, Unicode, and Windows-1252. The value member of the combo + /// box is set to a specific header name defined in the resources. private void FillEncodingList () { comboBoxEncoding.Items.Clear(); @@ -588,7 +663,20 @@ private void FillEncodingList () _ = comboBoxEncoding.Items.Add(Encoding.Unicode); _ = comboBoxEncoding.Items.Add(CodePagesEncodingProvider.Instance.GetEncoding(1252)); - comboBoxEncoding.ValueMember = "HeaderName"; + comboBoxEncoding.ValueMember = Resources.SettingsDialog_UI_ComboBox_Encoding_ValueMember_HeaderName; + } + + /// + /// Populates the language selection list with available language options. + /// + /// Clears any existing items in the language selection list and adds predefined language + /// options. Currently, it includes English (United States) and German (Germany). + private void FillLanguageList () + { + comboBoxLanguage.Items.Clear(); + + _ = comboBoxLanguage.Items.Add(CultureInfo.GetCultureInfo("en-US").Name); // Add English as default + _ = comboBoxLanguage.Items.Add(CultureInfo.GetCultureInfo("de-DE").Name); } #endregion @@ -649,22 +737,13 @@ private void OnBtnOkClick (object sender, EventArgs e) Preferences.SaveSessions = checkBoxSaveSessions.Checked; Preferences.SessionSaveDirectory = labelSessionSaveOwnDir.Text; - if (radioButtonsessionSaveDocuments.Checked) - { - Preferences.SaveLocation = SessionSaveLocation.DocumentsDir; - } - else if (radioButtonSessionSaveOwn.Checked) - { - Preferences.SaveLocation = SessionSaveLocation.OwnDir; - } - else if (radioButtonSessionApplicationStartupDir.Checked) - { - Preferences.SaveLocation = SessionSaveLocation.ApplicationStartupDir; - } - else - { - Preferences.SaveLocation = SessionSaveLocation.SameDir; - } + Preferences.SaveLocation = radioButtonsessionSaveDocuments.Checked + ? SessionSaveLocation.DocumentsDir + : radioButtonSessionSaveOwn.Checked + ? SessionSaveLocation.OwnDir + : radioButtonSessionApplicationStartupDir.Checked + ? SessionSaveLocation.ApplicationStartupDir + : SessionSaveLocation.SameDir; Preferences.SaveFilters = checkBoxSaveFilter.Checked; Preferences.BufferCount = (int)upDownBlockCount.Value; @@ -672,6 +751,7 @@ private void OnBtnOkClick (object sender, EventArgs e) Preferences.PollingInterval = (int)upDownPollingInterval.Value; Preferences.MultiThreadFilter = checkBoxMultiThread.Checked; Preferences.DefaultEncoding = comboBoxEncoding.SelectedItem != null ? (comboBoxEncoding.SelectedItem as Encoding).HeaderName : Encoding.Default.HeaderName; + Preferences.DefaultLanguage = comboBoxLanguage.SelectedItem != null ? (comboBoxLanguage.SelectedItem as string) : CultureInfo.GetCultureInfo("en-US").Name; Preferences.ShowColumnFinder = checkBoxColumnFinder.Checked; Preferences.UseLegacyReader = checkBoxLegacyReader.Checked; @@ -800,7 +880,7 @@ private void OnBtnSessionSaveDirClick (object sender, EventArgs e) } dlg.ShowNewFolderButton = true; - dlg.Description = @"Choose folder for LogExpert's session files"; + dlg.Description = Resources.SettingsDialog_UI_FolderBrowser_folderBrowserSessionSaveDir; if (dlg.ShowDialog() == DialogResult.OK) { @@ -816,7 +896,7 @@ private void OnPortableModeCheckedChanged (object sender, EventArgs e) { case CheckState.Checked when !File.Exists(ConfigManager.PortableModeDir + Path.DirectorySeparatorChar + ConfigManager.PortableModeSettingsFileName): { - if (Directory.Exists(ConfigManager.PortableModeDir) == false) + if (!Directory.Exists(ConfigManager.PortableModeDir)) { _ = Directory.CreateDirectory(ConfigManager.PortableModeDir); } @@ -831,28 +911,52 @@ private void OnPortableModeCheckedChanged (object sender, EventArgs e) File.Delete(ConfigManager.PortableModeDir + Path.DirectorySeparatorChar + ConfigManager.PortableModeSettingsFileName); break; } + + case CheckState.Unchecked: + //intentionally left blank + break; + case CheckState.Checked: + //intentionally left blank + break; + case CheckState.Indeterminate: + //intentionally left blank + break; + default: + //intentionally left blank + break; } switch (checkBoxPortableMode.CheckState) { case CheckState.Unchecked: { - checkBoxPortableMode.Text = @"Activate Portable Mode"; + checkBoxPortableMode.Text = Resources.SettingsDialog_UI_ActivatePortableMode; Preferences.PortableMode = false; break; } - case CheckState.Checked: { Preferences.PortableMode = true; - checkBoxPortableMode.Text = @"Deactivate Portable Mode"; + checkBoxPortableMode.Text = Resources.SettingsDialog_UI_DeActivatePortableMode; break; } + case CheckState.Indeterminate: + //intentionally left blank + break; + default: + //intentionally left blank + break; } } - catch (Exception exception) - { - _ = MessageBox.Show($@"Could not create / delete marker for Portable Mode: {exception}", @"Error", MessageBoxButtons.OK); + catch (Exception exception) when (exception is UnauthorizedAccessException + or IOException + or ArgumentException + or ArgumentNullException + or PathTooLongException + or DirectoryNotFoundException + or NotSupportedException) + { + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.SettingsDialog_UI_CouldNotCreatePortableMode, exception), Resources.LogExpert_Common_UI_Title_Error, MessageBoxButtons.OK); } } @@ -981,7 +1085,7 @@ private void OnBtnWorkingDirClick (object sender, EventArgs e) private void OnMultiFilePatternTextChanged (object sender, EventArgs e) { var pattern = textBoxMultifilePattern.Text; - upDownMultifileDays.Enabled = pattern.Contains("$D", System.StringComparison.Ordinal); + upDownMultifileDays.Enabled = pattern.Contains("$D", StringComparison.Ordinal); } [SupportedOSPlatform("windows")] @@ -989,10 +1093,10 @@ private void OnBtnExportClick (object sender, EventArgs e) { SaveFileDialog dlg = new() { - Title = @"Export Settings to file", + Title = @Resources.SettingsDialog_UI_Title_ExportSettings, DefaultExt = "json", AddExtension = true, - Filter = @"Settings (*.json)|*.json|All files (*.*)|*.*" + Filter = string.Format(CultureInfo.InvariantCulture, Resources.SettingsDialog_UI_Filter_ExportSettings, "(*.json)|*.json", "(*.*)|*.*") }; var result = dlg.ShowDialog(); @@ -1025,9 +1129,14 @@ private void OnBtnImportClick (object sender, EventArgs e) { fileInfo = new FileInfo(dlg.FileName); } - catch (Exception ex) + catch (Exception ex) when (ex is ArgumentException + or ArgumentNullException + or PathTooLongException + or SecurityException + or NotSupportedException + or UnauthorizedAccessException) { - _ = MessageBox.Show(this, $@"Settings could not be imported: {ex}", @"LogExpert"); + _ = MessageBox.Show(this, string.Format(CultureInfo.InvariantCulture, Resources.SettingsDialog_UI_Error_SettingsCouldNotBeImported, ex), Resources.LogExpert_Common_UI_Title_Error); return; } @@ -1070,10 +1179,32 @@ private void OnBtnImportClick (object sender, EventArgs e) Preferences = ConfigManager.Settings.Preferences; FillDialog(); - - _ = MessageBox.Show(this, @"Settings imported", @"LogExpert"); + _ = MessageBox.Show(this, Resources.SettingsDialog_UI_SettingsImported, Resources.LogExpert_Common_UI_Title_LogExpert); } } #endregion -} + + #region Resources Map + + /// + /// Creates a mapping of UI controls to their corresponding tooltip text. + /// + /// This method initializes a dictionary with predefined tooltips for specific UI controls. + /// Additional tooltips can be added to the dictionary as needed. + /// A where the keys are objects and the values are + /// strings representing the tooltip text for each control. + private Dictionary GetToolTipMap () + { + return new Dictionary + { + { comboBoxLanguage, Resources.SettingsDialog_UI_ComboBox_ToolTip_toolTipLanguage }, + { comboBoxEncoding, Resources.SettingsDialog_UI_ComboBox_ToolTip_toolTipEncoding }, + { checkBoxPortableMode, Resources.SettingsDialog_UI_CheckBox_ToolTip_toolTipPortableMode }, + { radioButtonSessionApplicationStartupDir, Resources.SettingsDialog_UI_RadioButton_ToolTip_toolTipSessionApplicationStartupDir }, + { checkBoxLegacyReader, Resources.SettingsDialog_UI_CheckBox_ToolTip_toolTipLegacyReader } + }; + } + + #endregion +} \ No newline at end of file diff --git a/src/LogExpert.UI/Dialogs/SettingsDialog.resx b/src/LogExpert.UI/Dialogs/SettingsDialog.resx index 7f3f0ea5..dda79304 100644 --- a/src/LogExpert.UI/Dialogs/SettingsDialog.resx +++ b/src/LogExpert.UI/Dialogs/SettingsDialog.resx @@ -120,54 +120,7 @@ 144, 17 - - 144, 17 - - - 144, 17 - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - 17, 17 - - - Note: You can always load your logfiles as MultiFile automatically if the files names follow the MultiFile naming rule (<filename>, <filename>.1, <filename>.2, ...). Simply choose 'MultiFile' from the File menu after loading the first file. - 17, 17 - - - - AAABAAEAEBAQAAAABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAABAA - AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AAAAAAAAAAAAP////////8A/////////wD/AAAAAAD/AP////////8A/wAAAAAA/wD/////// - //AP8ADwAAAP8A////D////wD/AA8AAP//AP///w////8A//APAAAP/wD/////////AP////////8AAA - AAAAAAAAAAAAAAAAAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIABAAD//wAA - - \ No newline at end of file diff --git a/src/LogExpert.UI/Dialogs/TabRenameDialog.Designer.cs b/src/LogExpert.UI/Dialogs/TabRenameDialog.Designer.cs index 1911909c..a2360d62 100644 --- a/src/LogExpert.UI/Dialogs/TabRenameDialog.Designer.cs +++ b/src/LogExpert.UI/Dialogs/TabRenameDialog.Designer.cs @@ -1,4 +1,4 @@ -namespace LogExpert.UI.Dialogs; +namespace LogExpert.UI.Dialogs; partial class TabRenameDialog { @@ -57,7 +57,7 @@ private void InitializeComponent() this.buttonOk.Name = "buttonOk"; this.buttonOk.Size = new System.Drawing.Size(75, 23); this.buttonOk.TabIndex = 2; - this.buttonOk.Text = "OK"; + this.buttonOk.Text = "&OK"; this.buttonOk.UseVisualStyleBackColor = true; // // buttonCancel @@ -67,7 +67,7 @@ private void InitializeComponent() this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(75, 23); this.buttonCancel.TabIndex = 3; - this.buttonCancel.Text = "Cancel"; + this.buttonCancel.Text = "&Cancel"; this.buttonCancel.UseVisualStyleBackColor = true; // // TabRenameDlg diff --git a/src/LogExpert.UI/Dialogs/TabRenameDialog.cs b/src/LogExpert.UI/Dialogs/TabRenameDialog.cs index 2f2455db..a974f149 100644 --- a/src/LogExpert.UI/Dialogs/TabRenameDialog.cs +++ b/src/LogExpert.UI/Dialogs/TabRenameDialog.cs @@ -7,12 +7,28 @@ internal partial class TabRenameDialog : Form { #region cTor - public TabRenameDialog() + public TabRenameDialog () { - InitializeComponent(); + SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + + InitializeComponent(); + ApplyResources(); + + ResumeLayout(); + } + + private void ApplyResources () + { + // Dialog title + Text = Resources.TabRenameDialog_UI_Title; + + labelName.Text = Resources.TabRenameDialog_UI_Label_Name; + + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; } #endregion @@ -29,7 +45,7 @@ public string TabName #region Events handler - private void OnTabRenameDlgKeyDown(object sender, KeyEventArgs e) + private void OnTabRenameDlgKeyDown (object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) { diff --git a/src/LogExpert.UI/Dialogs/ToolArgsDialog.cs b/src/LogExpert.UI/Dialogs/ToolArgsDialog.cs index f8a18284..2d3148b6 100644 --- a/src/LogExpert.UI/Dialogs/ToolArgsDialog.cs +++ b/src/LogExpert.UI/Dialogs/ToolArgsDialog.cs @@ -11,7 +11,7 @@ internal partial class ToolArgsDialog : Form { #region Fields - private readonly LogTabWindow logTabWin; + private readonly LogTabWindow _logTabWin; #endregion @@ -19,13 +19,30 @@ internal partial class ToolArgsDialog : Form public ToolArgsDialog (LogTabWindow logTabWin, Form parent) { - this.logTabWin = logTabWin; + SuspendLayout(); + + _logTabWin = logTabWin; parent.AddOwnedForm(this); TopMost = parent.TopMost; - InitializeComponent(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + + InitializeComponent(); + + ApplyResources(); + + ResumeLayout(); + } + + private void ApplyResources () + { + Text = Resources.ToolArgsDialog_UI_Title; + labelEnterArguments.Text = Resources.ToolArgsDialog_UI_Label_EnterCommandLine; + buttonTest.Text = Resources.ToolArgsDialog_UI_Button_Test; + buttonRegexHelp.Text = Resources.ToolArgsDialog_UI_Button_RegexHelp; + buttonOk.Text = Resources.LogExpert_Common_UI_Button_OK; + buttonCancel.Text = Resources.LogExpert_Common_UI_Button_Cancel; } #endregion @@ -40,23 +57,7 @@ public ToolArgsDialog (LogTabWindow logTabWin, Form parent) private void OnToolArgsDialogLoad (object sender, EventArgs e) { - labelHelp.Text = "" + - "%L = Current line number\n" + - "%N = Current log file name without path\n" + - "%P = Path (directory) of current log file\n" + - "%F = Full name (incl. path) of log file\n" + - "%E = Extension of log file name (e.g. 'txt')\n" + - "%M = Name of log file without extension\n" + - "%S = User (from URI)\n" + - "%R = Path (from URI)\n" + - "%H = Host (from URI)\n" + - "%T = Port (from URI)\n" + - "?\"\" = variable parameter 'name'\n" + - "?\"\"(def1,def2,...) = variable parameter with predefined values\n" + - "\n" + - "{}{}:\n" + - "Regex search/replace on current selected line."; - + labelHelp.Text = Resources.ToolArgsDialog_UI_HelpText; textBoxArguments.Text = Arg; } @@ -72,14 +73,14 @@ private void OnButtonRegexHelpClick (object sender, EventArgs e) //TODO: what is the purpose of this in the settings? Can we just send the line and info instead of the object? private void OnButtonTestClick (object sender, EventArgs e) { - if (logTabWin.CurrentLogWindow != null) + if (_logTabWin.CurrentLogWindow != null) { - var line = logTabWin.CurrentLogWindow.GetCurrentLine(); - var info = logTabWin.CurrentLogWindow.GetCurrentFileInfo(); + var line = _logTabWin.CurrentLogWindow.GetCurrentLine(); + var info = _logTabWin.CurrentLogWindow.GetCurrentFileInfo(); if (line != null && info != null) { ArgParser parser = new(textBoxArguments.Text); - var args = parser.BuildArgs(line, logTabWin.CurrentLogWindow.GetRealLineNum() + 1, info, this); + var args = parser.BuildArgs(line, _logTabWin.CurrentLogWindow.GetRealLineNum() + 1, info, this); labelTestResult.Text = args; } } diff --git a/src/LogExpert.UI/Entities/ArgParser.cs b/src/LogExpert.UI/Entities/ArgParser.cs index 5c4f9b8d..43a29ed6 100644 --- a/src/LogExpert.UI/Entities/ArgParser.cs +++ b/src/LogExpert.UI/Entities/ArgParser.cs @@ -84,12 +84,7 @@ public string BuildArgs (ILogLine logLine, int lineNum, ILogFileInfo logFileInfo end = end2; } - ParamRequesterDialog dlg = new() - { - ParamName = ask, - Values = values - }; - + ParamRequesterDialog dlg = new(ask, values); var res = dlg.ShowDialog(parent); if (res is DialogResult.OK) diff --git a/src/LogExpert.UI/Entities/PaintHelper.cs b/src/LogExpert.UI/Entities/PaintHelper.cs index 16df16ff..fd13fbba 100644 --- a/src/LogExpert.UI/Entities/PaintHelper.cs +++ b/src/LogExpert.UI/Entities/PaintHelper.cs @@ -122,7 +122,7 @@ public static DataGridViewTextBoxColumn CreateLineNumberColumn () { DataGridViewTextBoxColumn lineNumberColumn = new() { - HeaderText = "Line", + HeaderText = Resources.PaintHelper_HeaderText_LineNumberColumn, AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet, Resizable = DataGridViewTriState.NotSet, DividerWidth = 1, @@ -306,7 +306,12 @@ private static int GetBorderSize (DataGridViewAdvancedCellBorderStyle borderStyl { DataGridViewAdvancedCellBorderStyle.None => 0, DataGridViewAdvancedCellBorderStyle.InsetDouble or DataGridViewAdvancedCellBorderStyle.OutsetDouble => 2, - _ => 1 + DataGridViewAdvancedCellBorderStyle.NotSet => 0, // Default border size for NotSet + DataGridViewAdvancedCellBorderStyle.Single => 0, // Default border size for Single + DataGridViewAdvancedCellBorderStyle.Inset => 0, // Default border size for Inset + DataGridViewAdvancedCellBorderStyle.Outset => 0, // Default border size for Outset + DataGridViewAdvancedCellBorderStyle.OutsetPartial => 0, // Default border size for OutsetPartial + _ => 0 }; } @@ -377,7 +382,6 @@ private static void PaintHighlightedCell (ILogPaintContextUI logPaintCtx, DataGr valBounds.Height -= e.CellStyle.Padding.Vertical; } - var flags = TextFormatFlags.Left | TextFormatFlags.SingleLine @@ -434,7 +438,6 @@ private static void PaintHighlightedCell (ILogPaintContextUI logPaintCtx, DataGr { e.Graphics.FillRectangle(bgBrush, wordRect); } - } TextRenderer.DrawText(e.Graphics, matchWord, font, wordRect, foreColor, flags); diff --git a/src/LogExpert.UI/Extensions/BookmarkExporter.cs b/src/LogExpert.UI/Extensions/BookmarkExporter.cs index 62733fca..bbaafba6 100644 --- a/src/LogExpert.UI/Extensions/BookmarkExporter.cs +++ b/src/LogExpert.UI/Extensions/BookmarkExporter.cs @@ -16,17 +16,23 @@ internal static class BookmarkExporter public static void ExportBookmarkList (SortedList bookmarkList, string logfileName, string fileName) { ArgumentNullException.ThrowIfNull(bookmarkList, nameof(bookmarkList)); - FileStream fs = new(fileName, FileMode.Create, FileAccess.Write); - StreamWriter writer = new(fs); + using FileStream fs = new(fileName, FileMode.Create, FileAccess.Write); + using StreamWriter writer = new(fs); + writer.WriteLine("Log file name;Line number;Comment"); + foreach (var bookmark in bookmarkList.Values) { - var line = $"{logfileName};{bookmark.LineNum};{bookmark.Text.Replace(replacementForNewLine, @"\" + replacementForNewLine, StringComparison.OrdinalIgnoreCase).Replace("\r\n", replacementForNewLine, StringComparison.OrdinalIgnoreCase)}"; + var text = bookmark.Text ?? string.Empty; + + text = text + .Replace(replacementForNewLine, @"\" + replacementForNewLine, StringComparison.OrdinalIgnoreCase) + .Replace("\r\n", replacementForNewLine, StringComparison.OrdinalIgnoreCase); + + var line = $"{logfileName};{bookmark.LineNum};{text}"; + writer.WriteLine(line); } - - writer.Close(); - fs.Close(); } public static void ImportBookmarkList (string logfileName, string fileName, SortedList bookmarkList) @@ -43,25 +49,21 @@ public static void ImportBookmarkList (string logfileName, string fileName, Sort try { var line = reader.ReadLine(); - line = line.Replace(replacementForNewLine, "\r\n", StringComparison.OrdinalIgnoreCase).Replace("\\\r\n", replacementForNewLine, StringComparison.OrdinalIgnoreCase); + line = line + .Replace(replacementForNewLine, "\r\n", StringComparison.OrdinalIgnoreCase) + .Replace("\\\r\n", replacementForNewLine, StringComparison.OrdinalIgnoreCase); // Line is formatted: logfileName ";" bookmark.LineNum ";" bookmark.Text; - var firstSeparator = line.IndexOf(';', StringComparison.OrdinalIgnoreCase); - var secondSeparator = line.IndexOf(';', firstSeparator + 1); - - var fileStr = line[..firstSeparator]; - var lineStr = line.Substring(firstSeparator + 1, secondSeparator - firstSeparator - 1); - var comment = line[(secondSeparator + 1)..]; + var parts = line.Split(';', 3, StringSplitOptions.None); - if (int.TryParse(lineStr, out var lineNum)) + // parts[0] = fileStr + // parts[1] = line number + // parts[2] = comment + if (int.TryParse(parts[1], out var lineNum) && parts[0] == logfileName) { - Bookmark bookmark = new(lineNum, comment); + Bookmark bookmark = new(lineNum, parts[2]); bookmarkList.Add(lineNum, bookmark); } - else - { - //!!!log error: skipping a line entry - } } catch { diff --git a/src/LogExpert.UI/Extensions/FormExtensions.cs b/src/LogExpert.UI/Extensions/FormExtensions.cs new file mode 100644 index 00000000..b4f4af87 --- /dev/null +++ b/src/LogExpert.UI/Extensions/FormExtensions.cs @@ -0,0 +1,29 @@ +using System.Runtime.Versioning; + +namespace LogExpert.UI.Extensions; + +internal static class FormExtensions +{ + /// + /// Enumerates all controls within the specified parent control, including nested child controls. + /// + /// The parent control whose child controls are to be enumerated. Cannot be . + /// An of objects representing all controls within the parent, + /// including nested children. + [SupportedOSPlatform("windows")] + public static IEnumerable ControlsRecursive (this Control parent) + { + ArgumentNullException.ThrowIfNull(parent, nameof(parent)); + + foreach (Control control in parent.Controls) + { + yield return control; + + // recurse into children + foreach (var child in ControlsRecursive(control)) + { + yield return child; + } + } + } +} diff --git a/src/LogExpert.UI/Extensions/LockFinder.cs b/src/LogExpert.UI/Extensions/LockFinder.cs index bf7706de..b2979087 100644 --- a/src/LogExpert.UI/Extensions/LockFinder.cs +++ b/src/LogExpert.UI/Extensions/LockFinder.cs @@ -1,13 +1,11 @@ -using System; -using System.Collections.Generic; using System.Diagnostics; -using System.Runtime.InteropServices; +using System.Globalization; +using System.Runtime.Versioning; // Expanded with some helpers from: https://code.msdn.microsoft.com/windowsapps/How-to-know-the-process-704839f4/ -// Uses Windows Restart Manager. +// Uses Windows Restart Manager. // A more involved and cross platform solution to this problem is here: https://github.com/cklutz/LockCheck - namespace LogExpert.UI.Extensions; internal class LockFinder @@ -17,22 +15,19 @@ internal class LockFinder /// Method FindLockedProcessName Retrieve the first process name /// that is locking the file at the specified path ///
    - /// The path of a file with a write lock held by a + /// The path of a file with a write lock held by a /// process /// The name of the first process found with a lock /// /// Thrown when the file path is not locked /// - static public string FindLockedProcessName (string path) + [SupportedOSPlatform("windows")] + public static string FindLockedProcessName (string path) { var list = FindLockProcesses(path); - if (list.Count == 0) - { - throw new Exception( - "No processes are locking the path specified"); - } - - return list[0].ProcessName; + return list.Count == 0 + ? throw new Exception(Resources.Lockfinder_Exception_NoProcessesAreLockingThePathSpecified) + : list[0].ProcessName; } /// @@ -42,24 +37,23 @@ static public string FindLockedProcessName (string path) /// The path of a file being checked if a write lock /// held by a process /// true when one or more processes with lock - static public bool CheckIfFileIsLocked (string path) + [SupportedOSPlatform("windows")] + public static bool CheckIfFileIsLocked (string path) { var list = FindLockProcesses(path); - if (list.Count > 0) - { return true; } - - return false; + return list.Count > 0; } /// /// Used to find processes holding a lock on the file. This would cause - /// other usage, such as file truncation or write opretions to throw - /// IOException if an exclusive lock is attempted. + /// other usage, such as file truncation or write operations to throw + /// IOException if an exclusive lock is attempted. /// /// Path being checked /// List of processes holding file lock to path /// - static public List FindLockProcesses (string path) + [SupportedOSPlatform("windows")] + public static List FindLockProcesses (string path) { var key = Guid.NewGuid().ToString(); var processes = new List(); @@ -67,8 +61,7 @@ static public List FindLockProcesses (string path) var res = NativeMethods.RmStartSession(out var handle, 0, key); if (res != 0) { - throw new Exception("Could not begin restart session. " + - "Unable to determine file locker."); + throw new Exception(Resources.Lockfinder_Exception_CouldNotBeginRestartSessionUnableToDetermineFileLocker); } try @@ -77,20 +70,17 @@ static public List FindLockProcesses (string path) uint lpdwRebootReasons = NativeMethods.RmRebootReasonNone; string[] resources = [path]; - res = NativeMethods.RmRegisterResources(handle, (uint)resources.Length, - resources, 0, null, 0, null); + res = NativeMethods.RmRegisterResources(handle, (uint)resources.Length, resources, 0, null, 0, null); if (res != 0) { - throw new Exception("Could not register resource."); + throw new Exception(Resources.Lockfinder_Exception_CouldNotRegisterResource); } - res = NativeMethods.RmGetList(handle, out var pnProcInfoNeeded, ref pnProcInfo, null, - ref lpdwRebootReasons); + res = NativeMethods.RmGetList(handle, out var pnProcInfoNeeded, ref pnProcInfo, null, ref lpdwRebootReasons); const int ERROR_MORE_DATA = 234; if (res == ERROR_MORE_DATA) { - var processInfo = - new NativeMethods.RM_PROCESS_INFO[pnProcInfoNeeded]; + var processInfo = new NativeMethods.RM_PROCESS_INFO[pnProcInfoNeeded]; pnProcInfo = pnProcInfoNeeded; // Get the list. res = NativeMethods.RmGetList(handle, out pnProcInfoNeeded, ref pnProcInfo, processInfo, ref lpdwRebootReasons); @@ -109,22 +99,21 @@ static public List FindLockProcesses (string path) } else { - throw new Exception("Could not list processes locking resource"); + throw new Exception(Resources.Lockfinder_Exception_CouldNotListProcessesLockingResource); } } else if (res != 0) { - throw new Exception("Could not list processes locking resource." + - "Failed to get size of result."); + throw new Exception(Resources.Lockfinder_Exception_CouldNotListProcessesLockingResourceFailedToGetSizeOfResult); } } - catch (Exception exception) + catch (Exception e) { - Trace.WriteLine(exception.Message); + Trace.WriteLine(e.Message); } finally { - Trace.WriteLine($"RmEndSession: {NativeMethods.RmEndSession(handle)}"); + Trace.WriteLine(string.Format(CultureInfo.InvariantCulture, Resources.Lockfinder_Trace_RmEndSessionNativeMethodsRmEndSessionHandle, NativeMethods.RmEndSession(handle))); } return processes; diff --git a/src/LogExpert.UI/Extensions/NativeMethods.cs b/src/LogExpert.UI/Extensions/NativeMethods.cs index 23a7dfc5..9f330d7f 100644 --- a/src/LogExpert.UI/Extensions/NativeMethods.cs +++ b/src/LogExpert.UI/Extensions/NativeMethods.cs @@ -151,20 +151,19 @@ public static partial int RmStartSession ( public static Icon LoadIconFromExe (string fileName, int index) { - nint smallIcons = new(); - nint largeIcons = new(); - var num = (int)ExtractIconEx(fileName, index, out largeIcons, out smallIcons, 1); + var num = (int)ExtractIconEx(fileName, index, out var largeIcons, out var smallIcons, 1); + if (num > 0 && smallIcons != nint.Zero) { var icon = (Icon)Icon.FromHandle(smallIcons).Clone(); - DestroyIcon(smallIcons); + _ = DestroyIcon(smallIcons); return icon; } if (num > 0 && largeIcons != nint.Zero) { var icon = (Icon)Icon.FromHandle(largeIcons).Clone(); - DestroyIcon(largeIcons); + _ = DestroyIcon(largeIcons); return icon; } @@ -173,7 +172,8 @@ public static Icon LoadIconFromExe (string fileName, int index) public static Icon[,] ExtractIcons (string fileName) { - var iconCount = ExtractIconEx(fileName, -1, out var largeIcon, out var smallIcon, 0); + var iconCount = ExtractIconEx(fileName, -1, out var _, out var _, 0); + if (iconCount <= 0) { return null; @@ -187,7 +187,7 @@ public static Icon LoadIconFromExe (string fileName, int index) if (smallIcons != nint.Zero) { result[0, i] = (Icon)Icon.FromHandle(smallIcons).Clone(); - DestroyIcon(smallIcons); + _ = DestroyIcon(smallIcons); } else { @@ -197,7 +197,7 @@ public static Icon LoadIconFromExe (string fileName, int index) if (num > 0 && largeIcons != nint.Zero) { result[1, i] = (Icon)Icon.FromHandle(largeIcons).Clone(); - DestroyIcon(largeIcons); + _ = DestroyIcon(largeIcons); } else { diff --git a/src/LogExpert.UI/Extensions/ResourceHelper.cs b/src/LogExpert.UI/Extensions/ResourceHelper.cs new file mode 100644 index 00000000..47f6d9d0 --- /dev/null +++ b/src/LogExpert.UI/Extensions/ResourceHelper.cs @@ -0,0 +1,47 @@ +using System.Reflection; +using System.Runtime.Versioning; + +using LogExpert.UI.Extensions; + +namespace LogExpert.Extensions; + +internal static class ResourceHelper +{ + /// + /// Generates a mapping of controls to their corresponding text values based on resource naming conventions. + /// + /// The method constructs resource keys using the format + /// "{className}_{rescourceMainType}_{ControlType}_{ControlName}" and retrieves the associated text from the + /// resources. Only controls with matching resource entries will be included in the returned dictionary. + /// The form containing the controls to be mapped. + /// The class name used as part of the resource key. + /// The main type of the resource used in the resource key (UI, Logger, etc). + /// A dictionary where each key is a from the form, and each value is the text associated with + /// that control, as defined in the resources. The dictionary will only include controls for which a corresponding + /// resource text is found. + [SupportedOSPlatform("windows")] + public static Dictionary GenerateTextMapFromNaming (Form form, string className, string rescourceMainType) + { + var map = new Dictionary(); + var resourcesType = typeof(Resources); + var resourceProperties = resourcesType.GetProperties(BindingFlags.Public | BindingFlags.Static); + var controls = form.ControlsRecursive(); + + foreach (var control in controls) + { + var type = control.GetType(); + var resourceKey = $"{className}_{rescourceMainType}_{control.GetType().Name}_{control.Name}"; + var prop = resourceProperties.FirstOrDefault(p => p.Name == resourceKey); + if (prop != null) + { + var value = prop.GetValue(null) as string; + if (!string.IsNullOrEmpty(value)) + { + map[control] = value; + } + } + } + + return map; + } +} diff --git a/src/LogExpert.UI/Extensions/Utils.cs b/src/LogExpert.UI/Extensions/Utils.cs index fc6622e3..d9d0c650 100644 --- a/src/LogExpert.UI/Extensions/Utils.cs +++ b/src/LogExpert.UI/Extensions/Utils.cs @@ -2,7 +2,6 @@ namespace LogExpert.UI.Extensions; - internal static class Utils { [SupportedOSPlatform("windows")] diff --git a/src/LogExpert.UI/LogExpert.UI.csproj b/src/LogExpert.UI/LogExpert.UI.csproj index 0959af4b..4d401ccd 100644 --- a/src/LogExpert.UI/LogExpert.UI.csproj +++ b/src/LogExpert.UI/LogExpert.UI.csproj @@ -19,9 +19,7 @@ - - Form - + diff --git a/src/LogExpert.sln b/src/LogExpert.sln index 2918553f..b74f69c9 100644 --- a/src/LogExpert.sln +++ b/src/LogExpert.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.5.33502.453 +# Visual Studio Version 18 +VisualStudioVersion = 18.3.11206.111 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LogExpert", "LogExpert\LogExpert.csproj", "{F0C0D370-F416-44ED-939A-B4827D15AC14}" ProjectSection(ProjectDependencies) = postProject @@ -25,10 +25,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig Solution Items\AssemblyInfo.cs = Solution Items\AssemblyInfo.cs + ..\CHANGELOG.md = ..\CHANGELOG.md Directory.Build.props = Directory.Build.props Directory.Packages.props = Directory.Packages.props - ..\global.json = ..\global.json ..\GitVersion.yml = ..\GitVersion.yml + ..\README.md = ..\README.md Solution Items\usedComponents.json = Solution Items\usedComponents.json EndProjectSection EndProject @@ -73,6 +74,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Columnizers", "Columnizers" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{848C24BA-BEBA-48EC-90E6-526ECAB6BB4A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SftpFileSystem.Resources", "SftpFileSystem.Resources\SftpFileSystem.Resources.csproj", "{201CE6E2-776D-40B2-91B1-6AC578374385}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -161,6 +164,10 @@ Global {E2D8E653-B7DF-4ACE-8314-8059B1E20751}.Debug|Any CPU.Build.0 = Debug|Any CPU {E2D8E653-B7DF-4ACE-8314-8059B1E20751}.Release|Any CPU.ActiveCfg = Release|Any CPU {E2D8E653-B7DF-4ACE-8314-8059B1E20751}.Release|Any CPU.Build.0 = Release|Any CPU + {201CE6E2-776D-40B2-91B1-6AC578374385}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {201CE6E2-776D-40B2-91B1-6AC578374385}.Debug|Any CPU.Build.0 = Debug|Any CPU + {201CE6E2-776D-40B2-91B1-6AC578374385}.Release|Any CPU.ActiveCfg = Release|Any CPU + {201CE6E2-776D-40B2-91B1-6AC578374385}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/LogExpert/Classes/LogExpertApplicationContext.cs b/src/LogExpert/Classes/LogExpertApplicationContext.cs index 1b3940bb..8b6d6986 100644 --- a/src/LogExpert/Classes/LogExpertApplicationContext.cs +++ b/src/LogExpert/Classes/LogExpertApplicationContext.cs @@ -1,7 +1,8 @@ -using LogExpert.Core.Interface; -using System; +using System.Runtime.Versioning; using System.Windows.Forms; +using LogExpert.Core.Interface; + namespace LogExpert.Classes; internal class LogExpertApplicationContext : ApplicationContext @@ -14,7 +15,8 @@ internal class LogExpertApplicationContext : ApplicationContext #region cTor - public LogExpertApplicationContext(LogExpertProxy proxy, ILogTabWindow firstLogWin) + [SupportedOSPlatform("windows")] + public LogExpertApplicationContext (LogExpertProxy proxy, ILogTabWindow firstLogWin) { _proxy = proxy; _proxy.LastWindowClosed += OnProxyLastWindowClosed; @@ -25,7 +27,8 @@ public LogExpertApplicationContext(LogExpertProxy proxy, ILogTabWindow firstLogW #region Events handler - private void OnProxyLastWindowClosed(object sender, EventArgs e) + [SupportedOSPlatform("windows")] + private void OnProxyLastWindowClosed (object sender, EventArgs e) { ExitThread(); Application.Exit(); diff --git a/src/LogExpert/Classes/LogExpertProxy.cs b/src/LogExpert/Classes/LogExpertProxy.cs index 58c4603c..763e51d9 100644 --- a/src/LogExpert/Classes/LogExpertProxy.cs +++ b/src/LogExpert/Classes/LogExpertProxy.cs @@ -1,15 +1,12 @@ +using System.Runtime.Versioning; +using System.Windows.Forms; + using LogExpert.Config; using LogExpert.Core.Interface; -using LogExpert.UI.Controls.LogWindow; using LogExpert.UI.Extensions.LogWindow; using NLog; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Windows.Forms; - namespace LogExpert.Classes; internal class LogExpertProxy : ILogExpertProxy @@ -28,7 +25,7 @@ internal class LogExpertProxy : ILogExpertProxy #region cTor - public LogExpertProxy(ILogTabWindow logTabWindow) + public LogExpertProxy (ILogTabWindow logTabWindow) { AddWindow(logTabWindow); logTabWindow.LogExpertProxy = this; @@ -60,25 +57,25 @@ public LogExpertProxy(ILogTabWindow logTabWindow) #region Public methods - public void LoadFiles(string[] fileNames) + public void LoadFiles (string[] fileNames) { - _logger.Info(CultureInfo.InvariantCulture, "Loading files into existing LogTabWindow"); var logWin = _windowList[^1]; _ = logWin.Invoke(new MethodInvoker(logWin.SetForeground)); logWin.LoadFiles(fileNames); } - public void NewWindow(string[] fileNames) + [SupportedOSPlatform("windows")] + public void NewWindow (string[] fileNames) { if (_firstLogTabWindow.IsDisposed) { - _logger.Warn(CultureInfo.InvariantCulture, "first GUI thread window is disposed. Setting a new one."); + _logger.Warn("### NewWindow: first GUI thread window is disposed. Setting a new one."); // may occur if a window is closed because of unhandled exception. // Determine a new 'firstWindow'. If no window is left, start a new one. RemoveWindow(_firstLogTabWindow); if (_windowList.Count == 0) { - _logger.Info(CultureInfo.InvariantCulture, "No windows left. New created window will be the new 'first' GUI window"); + _logger.Info("### NewWindow: No windows left. New created window will be the new 'first' GUI window"); LoadFiles(fileNames); } else @@ -93,7 +90,8 @@ public void NewWindow(string[] fileNames) } } - public void NewWindowOrLockedWindow(string[] fileNames) + [SupportedOSPlatform("windows")] + public void NewWindowOrLockedWindow (string[] fileNames) { foreach (var logWin in _windowList) { @@ -108,25 +106,27 @@ public void NewWindowOrLockedWindow(string[] fileNames) NewWindow(fileNames); } - - public void NewWindowWorker(string[] fileNames) + [SupportedOSPlatform("windows")] + public void NewWindowWorker (string[] fileNames) { - _logger.Info(CultureInfo.InvariantCulture, "Creating new LogTabWindow"); IConfigManager configManager = ConfigManager.Instance; - var logWin = AbstractLogTabWindow.Create(fileNames.Length > 0 ? fileNames : null, _logWindowIndex++, true, configManager); + var logWin = AbstractLogTabWindow.Create(fileNames.Length > 0 + ? fileNames + : null, + _logWindowIndex++, + true, + configManager); logWin.LogExpertProxy = this; AddWindow(logWin); logWin.Show(); logWin.Activate(); } - - public void WindowClosed(ILogTabWindow logWin) + public void WindowClosed (ILogTabWindow logWin) { RemoveWindow(logWin); if (_windowList.Count == 0) { - _logger.Info(CultureInfo.InvariantCulture, "Last LogTabWindow was closed"); PluginRegistry.PluginRegistry.Instance.CleanupPlugins(); OnLastWindowClosed(); } @@ -140,7 +140,7 @@ public void WindowClosed(ILogTabWindow logWin) } } - public int GetLogWindowCount() + public int GetLogWindowCount () { return _windowList.Count; } @@ -154,24 +154,22 @@ public int GetLogWindowCount() #region Private Methods - private void AddWindow(ILogTabWindow window) + private void AddWindow (ILogTabWindow window) { - _logger.Info(CultureInfo.InvariantCulture, "Adding window to list"); _windowList.Add(window); } - private void RemoveWindow(ILogTabWindow window) + private void RemoveWindow (ILogTabWindow window) { - _logger.Info(CultureInfo.InvariantCulture, "Removing window from list"); _ = _windowList.Remove(window); } #endregion - protected void OnLastWindowClosed() + protected void OnLastWindowClosed () { LastWindowClosed?.Invoke(this, new EventArgs()); } - private delegate void NewWindowFx(string[] fileNames); + private delegate void NewWindowFx (string[] fileNames); } \ No newline at end of file diff --git a/src/LogExpert/Config/ConfigManager.cs b/src/LogExpert/Config/ConfigManager.cs index 8f67146f..41f70ec5 100644 --- a/src/LogExpert/Config/ConfigManager.cs +++ b/src/LogExpert/Config/ConfigManager.cs @@ -1,6 +1,6 @@ using System.Drawing; -using System.Globalization; using System.Reflection; +using System.Runtime.Versioning; using System.Security; using System.Windows.Forms; @@ -42,6 +42,8 @@ public class ConfigManager : IConfigManager PreserveReferencesHandling = PreserveReferencesHandling.Objects, }; + private const string SETTINGS_FILE_NAME = "settings.json"; + #endregion #region cTor @@ -78,7 +80,7 @@ public static ConfigManager Instance public string ConfigDir => Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + Path.DirectorySeparatorChar + "LogExpert"; //TODO: change to Path.Combine /// - /// Application.StartupPath + portable + /// Application.StartUpPath + portable /// public string PortableModeDir => Application.StartupPath + Path.DirectorySeparatorChar + "portable"; @@ -92,7 +94,6 @@ public static ConfigManager Instance IConfigManager IConfigManager.Instance => Instance; //Action IConfigManager.ConfigChanged { get => ((IConfigManager)_instance).ConfigChanged; set => ((IConfigManager)_instance).ConfigChanged = value; } - //public string PortableModeSettingsFileName => ((IConfigManager)_instance).PortableModeSettingsFileName; #endregion @@ -105,6 +106,7 @@ public static ConfigManager Instance /// The method saves the settings based on the provided . Ensure that the /// flags are correctly set to avoid saving unintended settings. /// The flags that determine which settings to save. This parameter cannot be null. + [SupportedOSPlatform("windows")] public void Save (SettingsFlags flags) { Instance.Save(Settings, flags); @@ -116,9 +118,10 @@ public void Save (SettingsFlags flags) /// The method saves the current instance data using the provided settings. Ensure that the file /// path specified in is accessible and writable. /// The object representing the file to which the data will be exported. Cannot be null. + [SupportedOSPlatform("windows")] public void Export (FileInfo fileInfo) { - Instance.Save(fileInfo, Settings); + Save(fileInfo, Settings); } /// @@ -126,6 +129,7 @@ public void Export (FileInfo fileInfo) /// /// /// + [SupportedOSPlatform("windows")] public void Export (FileInfo fileInfo, SettingsFlags highlightSettings) { Instance.Save(fileInfo, Settings, highlightSettings); @@ -138,6 +142,7 @@ public void Export (FileInfo fileInfo, SettingsFlags highlightSettings) /// The file to import from /// Flags controlling what to import /// ImportResult with operation outcome + [SupportedOSPlatform("windows")] public ImportResult Import (FileInfo fileInfo, ExportImportFlags importFlags) { _logger.Info($"Importing settings from: {fileInfo?.FullName ?? "null"}"); @@ -200,10 +205,13 @@ public ImportResult Import (FileInfo fileInfo, ExportImportFlags importFlags) } /// - /// Imports only the highlight settings from the specified file. + /// Imports the highlight settings from a file. + /// Throws ArgumentNullException if fileInfo is null, this should not happen. /// /// /// + /// + [SupportedOSPlatform("windows")] public void ImportHighlightSettings (FileInfo fileInfo, ExportImportFlags importFlags) { ArgumentNullException.ThrowIfNull(fileInfo, nameof(fileInfo)); @@ -244,7 +252,7 @@ private Settings Load () LoadResult result; - if (!File.Exists(Path.Combine(dir, "settings.json"))) + if (!File.Exists(Path.Combine(dir, SETTINGS_FILE_NAME))) { result = LoadOrCreateNew(null); } @@ -252,7 +260,7 @@ private Settings Load () { try { - FileInfo fileInfo = new(Path.Combine(dir, "settings.json")); + FileInfo fileInfo = new(Path.Combine(dir, SETTINGS_FILE_NAME)); result = LoadOrCreateNew(fileInfo); } catch (IOException ex) @@ -262,12 +270,12 @@ private Settings Load () } catch (UnauthorizedAccessException ex) { - _logger.Error($"Access denied: {ex.Message}"); + _logger.Error($"Access denied: {ex}"); result = LoadOrCreateNew(null); } catch (Exception ex) when (ex is not OperationCanceledException) { - _logger.Error($"Unexpected error: {ex.Message}"); + _logger.Error($"Access denied: {ex}"); result = LoadOrCreateNew(null); } } @@ -523,6 +531,8 @@ private static Settings InitializeSettings (Settings settings) settings.Preferences.DefaultEncoding ??= System.Text.Encoding.Default.HeaderName; + settings.Preferences.DefaultLanguage ??= "en-US"; + if (settings.Preferences.MaximumFilterEntriesDisplayed == 0) { settings.Preferences.MaximumFilterEntriesDisplayed = 20; @@ -543,11 +553,11 @@ private static Settings InitializeSettings (Settings settings) /// /// Settings to be saved /// Settings that "changed" + [SupportedOSPlatform("windows")] private void Save (Settings settings, SettingsFlags flags) { lock (_loadSaveLock) { - _logger.Info(CultureInfo.InvariantCulture, "Saving settings"); string dir = Settings.Preferences.PortableMode ? Application.StartupPath : ConfigDir; if (!Directory.Exists(dir)) @@ -555,7 +565,7 @@ private void Save (Settings settings, SettingsFlags flags) _ = Directory.CreateDirectory(dir); } - FileInfo fileInfo = new(dir + Path.DirectorySeparatorChar + "settings.json"); + FileInfo fileInfo = new(dir + Path.DirectorySeparatorChar + SETTINGS_FILE_NAME); Save(fileInfo, settings); OnConfigChanged(flags); @@ -578,13 +588,51 @@ private void Save (FileInfo fileInfo, Settings settings, SettingsFlags flags) switch (flags) { case SettingsFlags.HighlightSettings: - SaveHighlightgroupsAsJSON(fileInfo, settings.Preferences.HighlightGroupList); + SaveHighlightGroupsAsJSON(fileInfo, settings.Preferences.HighlightGroupList); + break; + case SettingsFlags.None: + // No action required for SettingsFlags.None + break; + case SettingsFlags.WindowPosition: + // No action required for SettingsFlags.WindowPosition + break; + case SettingsFlags.FileHistory: + // No action required for SettingsFlags.FileHistory + break; + case SettingsFlags.FilterList: + // No action required for SettingsFlags.FilterList + break; + case SettingsFlags.RegexHistory: + // No action required for SettingsFlags.RegexHistory + break; + case SettingsFlags.ToolSettings: + // No action required for SettingsFlags.ToolSettings + break; + case SettingsFlags.GuiOrColors: + // No action required for SettingsFlags.GuiOrColors + break; + case SettingsFlags.FilterHistory: + // No action required for SettingsFlags.FilterHistory + break; + case SettingsFlags.All: + // No action required for SettingsFlags.All + break; + case SettingsFlags.Settings: + // No action required for SettingsFlags.Settings + break; + default: break; } OnConfigChanged(flags); } + /// + /// Saves the settings as JSON file. + /// + /// + /// + /// private void SaveAsJSON (FileInfo fileInfo, Settings settings) { if (!ValidateSettings(settings)) @@ -672,20 +720,20 @@ PathTooLongException or { File.Delete(tempFile); } - catch (Exception cleanupException) when (cleanupException is ArgumentException or + catch (Exception cleanUpException) when (cleanUpException is ArgumentException or DirectoryNotFoundException or IOException or NotSupportedException or PathTooLongException or UnauthorizedAccessException) { - _logger.Warn($"Failed to cleanup temp file: {cleanupException.Message}"); + _logger.Warn($"Failed to clean up temp file: {cleanUpException.Message}"); } } } } - private static void SaveHighlightgroupsAsJSON (FileInfo fileInfo, List groups) + private static void SaveHighlightGroupsAsJSON (FileInfo fileInfo, List groups) { using StreamWriter sw = new(fileInfo.Create()); JsonSerializer serializer = new(); @@ -735,12 +783,13 @@ UnauthorizedAccessException or } /// - /// Imports all or some of the settings/prefs stored in the input stream. + /// Imports all or some of the settings/preferences stored in the input stream. /// This will overwrite appropriate parts of the current (own) settings with the imported ones. /// /// /// /// Flags to indicate which parts shall be imported + [SupportedOSPlatform("windows")] private Settings Import (Settings currentSettings, FileInfo fileInfo, ExportImportFlags flags) { LoadResult loadResult = LoadOrCreateNew(fileInfo); @@ -803,6 +852,7 @@ private static List ReplaceOrKeepExisting (ExportImportFlags flags, List [STAThread] + [SupportedOSPlatform("windows")] private static void Main (string[] args) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; @@ -85,10 +88,12 @@ private static void Main (string[] args) } else { - _ = MessageBox.Show(@"Config file not found", @"LogExpert"); + _ = MessageBox.Show(Resources.Program_UI_Error_ConfigFileNotFound, Resources.LogExpert_Common_UI_Title_LogExpert); } } + SetCulture(); + _ = PluginRegistry.PluginRegistry.Instance.Create(ConfigManager.Instance.ConfigDir, ConfigManager.Instance.Settings.Preferences.PollingInterval); var pId = Process.GetCurrentProcess().SessionId; @@ -104,7 +109,13 @@ private static void Main (string[] args) // first application instance Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - var logWin = AbstractLogTabWindow.Create(absoluteFilePaths.Length > 0 ? absoluteFilePaths : null, 1, false, ConfigManager.Instance); + var logWin = AbstractLogTabWindow.Create( + absoluteFilePaths.Length > 0 + ? absoluteFilePaths + : null, + 1, + false, + ConfigManager.Instance); // first instance var wi = WindowsIdentity.GetCurrent(); @@ -130,10 +141,13 @@ private static void Main (string[] args) SendCommandToServer(command); break; } - catch (Exception e) + catch (Exception ex) when (ex is ArgumentNullException + or ArgumentOutOfRangeException + or ArgumentException + or SecurityException) { - _logger.Warn(e, "IpcClientChannel error: "); - errMsg = e; + _logger.Error($"IpcClientChannel error: {ex}"); + errMsg = ex; counter--; Thread.Sleep(500); } @@ -141,11 +155,11 @@ private static void Main (string[] args) if (counter == 0) { - _logger.Error(errMsg, "IpcClientChannel error, giving up: "); - _ = MessageBox.Show($"Cannot open connection to first instance ({errMsg})", "LogExpert"); + _logger.Error($"IpcClientChannel error, giving up: {errMsg}"); + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.Program_UI_Error_Pipe_CannotConnectToFirstInstance, errMsg), Resources.LogExpert_Common_UI_Title_LogExpert); } - //TODO: Remove this from here? Why is it called from the Main project and not from the main window? + //Dont create a new separated instance of LogExpert if the settings allows only one instance if (settings.Preferences.AllowOnlyOneInstance && settings.Preferences.ShowErrorMessageAllowOnlyOneInstances) { AllowOnlyOneInstanceErrorDialog a = new(); @@ -160,20 +174,37 @@ private static void Main (string[] args) mutex.Close(); cts.Cancel(); } - catch (Exception ex) + catch (Exception ex) when (ex is UnauthorizedAccessException + or IOException + or DirectoryNotFoundException + or PathTooLongException + or WaitHandleCannotBeOpenedException + or InvalidOperationException + or SecurityException + or ArgumentNullException + or ArgumentException) { - _logger.Error(ex, "Mutex error, giving up: "); + _logger.Error($"Mutex error, giving up: {ex}"); cts.Cancel(); - _ = MessageBox.Show($"Cannot open connection to first instance ({ex.Message})", "LogExpert"); + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.Program_UI_Error_Pipe_CannotConnectToFirstInstance, ex.Message), Resources.LogExpert_Common_UI_Title_LogExpert); } } catch (SecurityException se) { - _ = MessageBox.Show("Insufficient system rights for LogExpert. Maybe you have started it from a network drive. Please start LogExpert from a local drive.\n(" + se.Message + ")", "LogExpert Error"); + _ = MessageBox.Show(string.Format(CultureInfo.InvariantCulture, Resources.Program_UI_Error_InsufficientRights, se.Message), Resources.LogExpert_Common_UI_Title_Error); cts.Cancel(); } } + [SupportedOSPlatform("windows")] + private static void SetCulture () + { + var defaultCulture = CultureInfo.GetCultureInfo(ConfigManager.Instance.Settings.Preferences.DefaultLanguage ?? "en-US"); + + CultureInfo.CurrentUICulture = defaultCulture; + CultureInfo.CurrentCulture = defaultCulture; + } + private static string SerializeCommandIntoNonFormattedJSON (string[] fileNames, bool allowOnlyOneInstance) { var message = new IpcMessage() @@ -199,7 +230,12 @@ private static string[] GenerateAbsoluteFilePaths (string[] remainingArgs) FileInfo info = new(fileArg); argsList.Add(info.Exists ? info.FullName : fileArg); } - catch (Exception) + catch (Exception ex) when (ex is ArgumentNullException + or SecurityException + or ArgumentException + or UnauthorizedAccessException + or PathTooLongException + or NotSupportedException) { argsList.Add(fileArg); } @@ -208,6 +244,7 @@ private static string[] GenerateAbsoluteFilePaths (string[] remainingArgs) return [.. argsList]; } + [SupportedOSPlatform("windows")] private static void SendMessageToProxy (IpcMessage message, LogExpertProxy proxy) { var payLoad = message.Payload.ToObject(); @@ -226,7 +263,7 @@ private static void SendMessageToProxy (IpcMessage message, LogExpertProxy proxy proxy.NewWindowOrLockedWindow([.. payLoad.Files]); break; default: - _logger.Error($"Unknown IPC Message Type: {message.Type}; with payload: {payLoad}"); + _logger.Error($"Unknown IPC Message Type: {message.Type} with payload: {payLoad}"); break; } } @@ -258,12 +295,17 @@ private static void SendCommandToServer (string command) } catch (IOException ex) { - _logger.Warn(ex, "An I/O error occurred while connecting to the pipe server."); + _logger.Warn($"An I/O error occurred while connecting to the pipe server: {ex}"); + return; + } + catch (InvalidOperationException ioe) + { + _logger.Warn($"Invalid Operation while connecting to the pipe server: {ioe}"); return; } catch (UnauthorizedAccessException ex) { - _logger.Warn(ex, "Unauthorized access while connecting to the pipe server."); + _logger.Warn($"Unauthorized access while connecting to the pipe server: {ex}"); return; } @@ -271,9 +313,10 @@ private static void SendCommandToServer (string command) writer.WriteLine(command); } + [SupportedOSPlatform("windows")] private static async Task RunServerLoopAsync (Action onCommand, LogExpertProxy proxy, CancellationToken cancellationToken) { - while (cancellationToken.IsCancellationRequested == false) + while (!cancellationToken.IsCancellationRequested) { using var server = new NamedPipeServerStream( PIPE_SERVER_NAME, @@ -284,9 +327,9 @@ private static async Task RunServerLoopAsync (Action try { - await server.WaitForConnectionAsync(cancellationToken); + await server.WaitForConnectionAsync(cancellationToken).ConfigureAwait(false); using var reader = new StreamReader(server, Encoding.UTF8); - var line = await reader.ReadLineAsync(cancellationToken); + var line = await reader.ReadLineAsync(cancellationToken).ConfigureAwait(false); if (line != null) { @@ -298,14 +341,23 @@ private static async Task RunServerLoopAsync (Action { break; } - catch (Exception ex) + catch (Exception ex) when (ex is IOException + or ObjectDisposedException + or TimeoutException + or InvalidOperationException + or UnauthorizedAccessException + or SecurityException + or ArgumentNullException + or ArgumentOutOfRangeException + or ArgumentException) { - _logger.Warn(ex, "Pipe server error"); + _logger.Warn($"Pipe server error: {ex}"); } } } [STAThread] + [SupportedOSPlatform("windows")] private static void ShowUnhandledException (object exceptionObject) { var errorText = string.Empty; @@ -335,6 +387,7 @@ private static void ShowUnhandledException (object exceptionObject) #region Events handler + [SupportedOSPlatform("windows")] private static void Application_ThreadException (object sender, ThreadExceptionEventArgs e) { _logger.Fatal(e); @@ -349,6 +402,7 @@ private static void Application_ThreadException (object sender, ThreadExceptionE thread.Join(); } + [SupportedOSPlatform("windows")] private static void CurrentDomain_UnhandledException (object sender, UnhandledExceptionEventArgs e) { _logger.Fatal(e); diff --git a/src/RegexColumnizer/RegexColumnizer.csproj b/src/RegexColumnizer/RegexColumnizer.csproj index b85e7eac..ecd68455 100644 --- a/src/RegexColumnizer/RegexColumnizer.csproj +++ b/src/RegexColumnizer/RegexColumnizer.csproj @@ -12,4 +12,24 @@
    + + + PublicResXFileCodeGenerator + Resources.Designer.cs + RegexColumnizer + + + + Resources.resx + + + + + + True + True + Resources.resx + + + \ No newline at end of file diff --git a/src/RegexColumnizer/RegexColumnizerConfigDialog.cs b/src/RegexColumnizer/RegexColumnizerConfigDialog.cs index 0e26cdee..e9cee9ea 100644 --- a/src/RegexColumnizer/RegexColumnizerConfigDialog.cs +++ b/src/RegexColumnizer/RegexColumnizerConfigDialog.cs @@ -1,27 +1,38 @@ -using System; using System.Data; -using System.Drawing; -using System.Linq; using System.Text.RegularExpressions; -using System.Windows.Forms; namespace RegexColumnizer; public partial class RegexColumnizerConfigDialog : Form { - public RegexColumnizerConfigDialog() + public RegexColumnizerConfigDialog () { SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; InitializeComponent(); + + ApplyResources(); + ResumeLayout(); } + private void ApplyResources () + { + Text = Resources.RegexColumnizerConfigDialog_UI_Title; + lblRegEx.Text = Resources.RegexColumnizerConfigDialog_UI_Label_Regex; + label2.Text = Resources.RegexColumnizerConfigDialog_UI_Label_Name; + gbTestZone.Text = Resources.RegexColumnizerConfigDialog_UI_GroupBox_TestZone; + label1.Text = Resources.RegexColumnizerConfigDialog_UI_Label_Line; + tbCheck.Text = Resources.RegexColumnizerConfigDialog_UI_Button_Check; + btnOk.Text = Resources.RegexColumnizerConfigDialog_UI_Button_OK; + btnCancel.Text = Resources.RegexColumnizerConfigDialog_UI_Button_Cancel; + } + public RegexColumnizerConfig Config { get; set; } - private void OnBtnOkClick(object sender, EventArgs e) + private void OnBtnOkClick (object sender, EventArgs e) { if (Check()) { @@ -31,18 +42,18 @@ private void OnBtnOkClick(object sender, EventArgs e) } - private void RegexColumnizerConfigDialog_Load(object sender, EventArgs e) + private void RegexColumnizerConfigDialog_Load (object sender, EventArgs e) { tbExpression.Text = Config.Expression; tbName.Text = Config.Name; } - private void OnButtonCheckClick(object sender, EventArgs e) + private void OnButtonCheckClick (object sender, EventArgs e) { Check(); } - private bool Check() + private bool Check () { DataTable table = new(); @@ -70,7 +81,7 @@ private bool Check() } catch (Exception ex) { - MessageBox.Show($@"Invalid Regex !{Environment.NewLine}{ex.Message}", @"Regex Columnizer Configuration", MessageBoxButtons.OK, MessageBoxIcon.Error); + _ = MessageBox.Show($@"Invalid Regex !{Environment.NewLine}{ex.Message}", @"Regex Columnizer Configuration", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } finally diff --git a/src/RegexColumnizer/Resources.Designer.cs b/src/RegexColumnizer/Resources.Designer.cs new file mode 100644 index 00000000..58a890a5 --- /dev/null +++ b/src/RegexColumnizer/Resources.Designer.cs @@ -0,0 +1,135 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace RegexColumnizer { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LogExpert.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + public static string RegexColumnizerConfigDialog_UI_Button_Cancel { + get { + return ResourceManager.GetString("RegexColumnizerConfigDialog_UI_Button_Cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Check. + /// + public static string RegexColumnizerConfigDialog_UI_Button_Check { + get { + return ResourceManager.GetString("RegexColumnizerConfigDialog_UI_Button_Check", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ok. + /// + public static string RegexColumnizerConfigDialog_UI_Button_OK { + get { + return ResourceManager.GetString("RegexColumnizerConfigDialog_UI_Button_OK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test Zone. + /// + public static string RegexColumnizerConfigDialog_UI_GroupBox_TestZone { + get { + return ResourceManager.GetString("RegexColumnizerConfigDialog_UI_GroupBox_TestZone", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Line. + /// + public static string RegexColumnizerConfigDialog_UI_Label_Line { + get { + return ResourceManager.GetString("RegexColumnizerConfigDialog_UI_Label_Line", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Name. + /// + public static string RegexColumnizerConfigDialog_UI_Label_Name { + get { + return ResourceManager.GetString("RegexColumnizerConfigDialog_UI_Label_Name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Regex. + /// + public static string RegexColumnizerConfigDialog_UI_Label_Regex { + get { + return ResourceManager.GetString("RegexColumnizerConfigDialog_UI_Label_Regex", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Regex Columnizer. + /// + public static string RegexColumnizerConfigDialog_UI_Title { + get { + return ResourceManager.GetString("RegexColumnizerConfigDialog_UI_Title", resourceCulture); + } + } + } +} diff --git a/src/RegexColumnizer/Resources.de.resx b/src/RegexColumnizer/Resources.de.resx new file mode 100644 index 00000000..3a9c80f3 --- /dev/null +++ b/src/RegexColumnizer/Resources.de.resx @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Regex Columnizer + + + Regex + + + Name + + + Testbereich + + + Zeile + + + Pruefen + + + OK + + + Abbrechen + + diff --git a/src/RegexColumnizer/Resources.resx b/src/RegexColumnizer/Resources.resx new file mode 100644 index 00000000..fe25e41c --- /dev/null +++ b/src/RegexColumnizer/Resources.resx @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Regex Columnizer + + + Regex + + + Name + + + Test Zone + + + Line + + + Check + + + Ok + + + Cancel + + diff --git a/src/SftpFileSystem.Resources/Resources.Designer.cs b/src/SftpFileSystem.Resources/Resources.Designer.cs new file mode 100644 index 00000000..c3d0af8d --- /dev/null +++ b/src/SftpFileSystem.Resources/Resources.Designer.cs @@ -0,0 +1,261 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SftpFileSystem { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LogExpert.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Select file.... + /// + public static string ConfigDialog_UI_Button_SelectFile { + get { + return ResourceManager.GetString("ConfigDialog_UI_Button_SelectFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use keyfile. + /// + public static string ConfigDialog_UI_CheckBox_UseKeyfile { + get { + return ResourceManager.GetString("ConfigDialog_UI_CheckBox_UseKeyfile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Key type. + /// + public static string ConfigDialog_UI_GroupBox_KeyType { + get { + return ResourceManager.GetString("ConfigDialog_UI_GroupBox_KeyType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Key will be loaded once on first usage. Password will be asked then.. + /// + public static string ConfigDialog_UI_Label_KeyInfo { + get { + return ResourceManager.GetString("ConfigDialog_UI_Label_KeyInfo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Putty private key. + /// + public static string ConfigDialog_UI_RadioButton_PuttyKey { + get { + return ResourceManager.GetString("ConfigDialog_UI_RadioButton_PuttyKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open SSH private key. + /// + public static string ConfigDialog_UI_RadioButton_SSHKey { + get { + return ResourceManager.GetString("ConfigDialog_UI_RadioButton_SSHKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to SFTP Configuration. + /// + public static string ConfigDialog_UI_Title { + get { + return ResourceManager.GetString("ConfigDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + public static string FailedKeyDialog_UI_Button_Cancel { + get { + return ResourceManager.GetString("FailedKeyDialog_UI_Button_Cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Retry with key. + /// + public static string FailedKeyDialog_UI_Button_Retry { + get { + return ResourceManager.GetString("FailedKeyDialog_UI_Button_Retry", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use password authentication. + /// + public static string FailedKeyDialog_UI_Button_UsePassword { + get { + return ResourceManager.GetString("FailedKeyDialog_UI_Button_UsePassword", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Key authentication failed. What would you like to do?. + /// + public static string FailedKeyDialog_UI_Label_Message { + get { + return ResourceManager.GetString("FailedKeyDialog_UI_Label_Message", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Key Authentication Failed. + /// + public static string FailedKeyDialog_UI_Title { + get { + return ResourceManager.GetString("FailedKeyDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + public static string LoginDialog_UI_Button_Cancel { + get { + return ResourceManager.GetString("LoginDialog_UI_Button_Cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to OK. + /// + public static string LoginDialog_UI_Button_OK { + get { + return ResourceManager.GetString("LoginDialog_UI_Button_OK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Password:. + /// + public static string LoginDialog_UI_Label_Password { + get { + return ResourceManager.GetString("LoginDialog_UI_Label_Password", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Server:. + /// + public static string LoginDialog_UI_Label_Server { + get { + return ResourceManager.GetString("LoginDialog_UI_Label_Server", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User name:. + /// + public static string LoginDialog_UI_Label_Username { + get { + return ResourceManager.GetString("LoginDialog_UI_Label_Username", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to LogExpert SFTP Plugin. + /// + public static string LoginDialog_UI_Title { + get { + return ResourceManager.GetString("LoginDialog_UI_Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + public static string PrivateKeyPasswordDialog_UI_Button_Cancel { + get { + return ResourceManager.GetString("PrivateKeyPasswordDialog_UI_Button_Cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to OK. + /// + public static string PrivateKeyPasswordDialog_UI_Button_OK { + get { + return ResourceManager.GetString("PrivateKeyPasswordDialog_UI_Button_OK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enter private key password:. + /// + public static string PrivateKeyPasswordDialog_UI_Label_Password { + get { + return ResourceManager.GetString("PrivateKeyPasswordDialog_UI_Label_Password", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Private Key Password. + /// + public static string PrivateKeyPasswordDialog_UI_Title { + get { + return ResourceManager.GetString("PrivateKeyPasswordDialog_UI_Title", resourceCulture); + } + } + } +} diff --git a/src/SftpFileSystem.Resources/Resources.de.resx b/src/SftpFileSystem.Resources/Resources.de.resx new file mode 100644 index 00000000..5a194a02 --- /dev/null +++ b/src/SftpFileSystem.Resources/Resources.de.resx @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + SFTP-Konfiguration + + + Schlüsseldatei verwenden + + + Datei auswählen... + + + Schlüsseltyp + + + Putty privater Schlüssel + + + Open SSH privater Schlüssel + + + Der Schlüssel wird beim ersten Gebrauch geladen. Das Passwort wird dann abgefragt. + + + LogExpert SFTP-Plugin + + + Server: + + + Benutzername: + + + Passwort: + + + OK + + + Abbrechen + + + Schlüsselauthentifizierung fehlgeschlagen + + + Schlüsselauthentifizierung fehlgeschlagen. Was möchten Sie tun? + + + Mit Schlüssel wiederholen + + + Passwortauthentifizierung verwenden + + + Abbrechen + + + Privater Schlüssel Passwort + + + Passwort für privaten Schlüssel eingeben: + + + OK + + + Abbrechen + + \ No newline at end of file diff --git a/src/SftpFileSystem.Resources/Resources.resx b/src/SftpFileSystem.Resources/Resources.resx new file mode 100644 index 00000000..0299aff9 --- /dev/null +++ b/src/SftpFileSystem.Resources/Resources.resx @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + SFTP Configuration + + + Use keyfile + + + Select file... + + + Key type + + + Putty private key + + + Open SSH private key + + + Key will be loaded once on first usage. Password will be asked then. + + + + + LogExpert SFTP Plugin + + + Server: + + + User name: + + + Password: + + + OK + + + Cancel + + + + + Key Authentication Failed + + + Key authentication failed. What would you like to do? + + + Retry with key + + + Use password authentication + + + Cancel + + + + + Private Key Password + + + Enter private key password: + + + OK + + + Cancel + + diff --git a/src/SftpFileSystem.Resources/SftpFileSystem.Resources.csproj b/src/SftpFileSystem.Resources/SftpFileSystem.Resources.csproj new file mode 100644 index 00000000..9cb18fe3 --- /dev/null +++ b/src/SftpFileSystem.Resources/SftpFileSystem.Resources.csproj @@ -0,0 +1,30 @@ + + + + net8.0 + True + False + ..\Solution Items\Key.snk + + + + + Resources.resx + True + True + + + + + + Designer + Resources.resx + + + SftpFileSystem + Resources.Designer.cs + PublicResXFileCodeGenerator + + + + diff --git a/src/SftpFileSystemx64/ConfigDialog.cs b/src/SftpFileSystemx64/ConfigDialog.cs index c3515d9d..bd2b1fad 100644 --- a/src/SftpFileSystemx64/ConfigDialog.cs +++ b/src/SftpFileSystemx64/ConfigDialog.cs @@ -1,7 +1,4 @@ -using System; -using System.Drawing; using System.Runtime.Versioning; -using System.Windows.Forms; [assembly: SupportedOSPlatform("windows")] namespace SftpFileSystem; @@ -10,21 +7,37 @@ public partial class ConfigDialog : Form { #region Ctor - public ConfigDialog(ConfigData configData) + public ConfigDialog (ConfigData configData) { SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); + + ApplyResources(); + TopLevel = false; ConfigData = configData; chkBoxPK.Checked = ConfigData.UseKeyfile; radioBtnPuttyKey.Checked = ConfigData.KeyType == KeyType.Putty; radioBtnSSHKey.Checked = ConfigData.KeyType == KeyType.Ssh; lblFile.Text = ConfigData.KeyFile; + ResumeLayout(); } + private void ApplyResources () + { + Text = Resources.ConfigDialog_UI_Title; + chkBoxPK.Text = Resources.ConfigDialog_UI_CheckBox_UseKeyfile; + keyFileButton.Text = Resources.ConfigDialog_UI_Button_SelectFile; + keyTypeGroupBox.Text = Resources.ConfigDialog_UI_GroupBox_KeyType; + radioBtnPuttyKey.Text = Resources.ConfigDialog_UI_RadioButton_PuttyKey; + radioBtnSSHKey.Text = Resources.ConfigDialog_UI_RadioButton_SSHKey; + label1.Text = Resources.ConfigDialog_UI_Label_KeyInfo; + } + #endregion #region Properties / Indexers @@ -35,7 +48,7 @@ public ConfigDialog(ConfigData configData) #region Event handling Methods - private void OnBtnKeyFileClick(object sender, EventArgs e) + private void OnBtnKeyFileClick (object sender, EventArgs e) { FileDialog dlg = new OpenFileDialog(); if (DialogResult.OK == dlg.ShowDialog()) @@ -45,23 +58,23 @@ private void OnBtnKeyFileClick(object sender, EventArgs e) } } - private void OnChkBoxPKCheckedChanged(object sender, EventArgs e) + private void OnChkBoxPKCheckedChanged (object sender, EventArgs e) { ConfigData.UseKeyfile = chkBoxPK.Checked; } - private void OnChkBoxPKCheckStateChanged(object sender, EventArgs e) + private void OnChkBoxPKCheckStateChanged (object sender, EventArgs e) { keyFileButton.Enabled = chkBoxPK.Checked; keyTypeGroupBox.Enabled = chkBoxPK.Checked; } - private void OnRadioButtonPuttyKeyCheckedChanged(object sender, EventArgs e) + private void OnRadioButtonPuttyKeyCheckedChanged (object sender, EventArgs e) { ConfigData.KeyType = KeyType.Putty; } - private void OnRadioButtonSSHKeyCheckedChanged(object sender, EventArgs e) + private void OnRadioButtonSSHKeyCheckedChanged (object sender, EventArgs e) { ConfigData.KeyType = KeyType.Ssh; } diff --git a/src/SftpFileSystemx64/FailedKeyDialog.cs b/src/SftpFileSystemx64/FailedKeyDialog.cs index 6084c33d..d3179b43 100644 --- a/src/SftpFileSystemx64/FailedKeyDialog.cs +++ b/src/SftpFileSystemx64/FailedKeyDialog.cs @@ -1,39 +1,48 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - namespace SftpFileSystem; public partial class FailedKeyDialog : Form { #region Ctor - public FailedKeyDialog() + public FailedKeyDialog () { SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); + + ApplyResources(); + ResumeLayout(); } + private void ApplyResources () + { + Text = Resources.FailedKeyDialog_UI_Title; + label1.Text = Resources.FailedKeyDialog_UI_Label_Message; + btnRetry.Text = Resources.FailedKeyDialog_UI_Button_Retry; + btnUsePasswordAuthentication.Text = Resources.FailedKeyDialog_UI_Button_UsePassword; + btnCancel.Text = Resources.FailedKeyDialog_UI_Button_Cancel; + } + #endregion #region Event handling Methods - private void OnBtnCancelClick(object sender, EventArgs e) + private void OnBtnCancelClick (object sender, EventArgs e) { DialogResult = DialogResult.Cancel; Close(); } - private void OnBtnRetryClick(object sender, EventArgs e) + private void OnBtnRetryClick (object sender, EventArgs e) { DialogResult = DialogResult.Retry; Close(); } - private void OnBtnUsePasswordAuthenticationClick(object sender, EventArgs e) + private void OnBtnUsePasswordAuthenticationClick (object sender, EventArgs e) { DialogResult = DialogResult.OK; Close(); diff --git a/src/SftpFileSystemx64/LoginDialog.cs b/src/SftpFileSystemx64/LoginDialog.cs index 7f9581a7..ec4fbc8a 100644 --- a/src/SftpFileSystemx64/LoginDialog.cs +++ b/src/SftpFileSystemx64/LoginDialog.cs @@ -1,8 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Windows.Forms; - namespace SftpFileSystem; public partial class LoginDialog : Form @@ -15,21 +10,26 @@ public partial class LoginDialog : Form #region Ctor - public LoginDialog(string host, IList userNames, bool hidePasswordField) + public LoginDialog (string host, IList userNames, bool hidePasswordField) { SuspendLayout(); + AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; InitializeComponent(); + + ApplyResources(); + serverNameLabel.Text = host; + if (userNames != null) { foreach (var name in userNames) { if (name != null) { - cmbUsername.Items.Add(name); + _ = cmbUsername.Items.Add(name); } } } @@ -43,6 +43,16 @@ public LoginDialog(string host, IList userNames, bool hidePasswordField) ResumeLayout(); } + private void ApplyResources () + { + Text = Resources.LoginDialog_UI_Title; + label3.Text = Resources.LoginDialog_UI_Label_Server; + label1.Text = Resources.LoginDialog_UI_Label_Username; + lblPassword.Text = Resources.LoginDialog_UI_Label_Password; + btnOk.Text = Resources.LoginDialog_UI_Button_OK; + btnCancel.Text = Resources.LoginDialog_UI_Button_Cancel; + } + #endregion #region Properties / Indexers @@ -63,17 +73,17 @@ public string Username #region Event handling Methods - private void OnBtnOKClick(object sender, EventArgs e) + private void OnBtnOKClick (object sender, EventArgs e) { Password = txtBoxPassword.Text; _username = cmbUsername.Text; } - private void OnLoginDialogLoad(object sender, EventArgs e) + private void OnLoginDialogLoad (object sender, EventArgs e) { if (cmbUsername.Text.Length > 0) { - txtBoxPassword.Focus(); + _ = txtBoxPassword.Focus(); } } diff --git a/src/SftpFileSystemx64/PrivateKeyPasswordDialog.cs b/src/SftpFileSystemx64/PrivateKeyPasswordDialog.cs index 21c2c269..84c02802 100644 --- a/src/SftpFileSystemx64/PrivateKeyPasswordDialog.cs +++ b/src/SftpFileSystemx64/PrivateKeyPasswordDialog.cs @@ -1,22 +1,30 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - namespace SftpFileSystem; public partial class PrivateKeyPasswordDialog : Form { #region Ctor - public PrivateKeyPasswordDialog() + public PrivateKeyPasswordDialog () { SuspendLayout(); AutoScaleDimensions = new SizeF(96F, 96F); AutoScaleMode = AutoScaleMode.Dpi; + InitializeComponent(); + + ApplyResources(); + ResumeLayout(); } + private void ApplyResources () + { + Text = Resources.PrivateKeyPasswordDialog_UI_Title; + label2.Text = Resources.PrivateKeyPasswordDialog_UI_Label_Password; + btnOk.Text = Resources.PrivateKeyPasswordDialog_UI_Button_OK; + btnCancel.Text = Resources.PrivateKeyPasswordDialog_UI_Button_Cancel; + } + #endregion #region Properties / Indexers @@ -27,12 +35,12 @@ public PrivateKeyPasswordDialog() #region Event handling Methods - private void OnLoginDialogLoad(object sender, EventArgs e) + private void OnLoginDialogLoad (object sender, EventArgs e) { - passwordTextBox.Focus(); + _ = passwordTextBox.Focus(); } - private void OnBtnOkClick(object sender, EventArgs e) + private void OnBtnOkClick (object sender, EventArgs e) { Password = passwordTextBox.Text; } diff --git a/src/SftpFileSystemx64/SftpFileSystemx64.csproj b/src/SftpFileSystemx64/SftpFileSystemx64.csproj index 2627ca27..dd0197fb 100644 --- a/src/SftpFileSystemx64/SftpFileSystemx64.csproj +++ b/src/SftpFileSystemx64/SftpFileSystemx64.csproj @@ -14,6 +14,7 @@ + diff --git a/src/SftpFileSystemx86/SftpFileSystemx86.csproj b/src/SftpFileSystemx86/SftpFileSystemx86.csproj index eb96b544..7f60bbd8 100644 --- a/src/SftpFileSystemx86/SftpFileSystemx86.csproj +++ b/src/SftpFileSystemx86/SftpFileSystemx86.csproj @@ -55,5 +55,13 @@ + + + + + + Designer + Resources.resx +