DBViewer improvements

This commit is contained in:
Infi
2024-05-22 15:25:05 +02:00
parent c2131eb07b
commit 6e0dd15ac0
4 changed files with 378 additions and 16 deletions
+270
View File
@@ -1364,6 +1364,276 @@ namespace ChatTwo.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Fri.
/// </summary>
internal static string DateWidget_Day_Fri {
get {
return ResourceManager.GetString("DateWidget_Day_Fri", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Mon.
/// </summary>
internal static string DateWidget_Day_Mon {
get {
return ResourceManager.GetString("DateWidget_Day_Mon", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Sat.
/// </summary>
internal static string DateWidget_Day_Sat {
get {
return ResourceManager.GetString("DateWidget_Day_Sat", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Sun.
/// </summary>
internal static string DateWidget_Day_Sun {
get {
return ResourceManager.GetString("DateWidget_Day_Sun", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Thu.
/// </summary>
internal static string DateWidget_Day_Thu {
get {
return ResourceManager.GetString("DateWidget_Day_Thu", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Tue.
/// </summary>
internal static string DateWidget_Day_Tue {
get {
return ResourceManager.GetString("DateWidget_Day_Tue", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Wed.
/// </summary>
internal static string DateWidget_Day_Wed {
get {
return ResourceManager.GetString("DateWidget_Day_Wed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Date before {0} is not possible.
/// </summary>
internal static string DateWidget_InvalidDate {
get {
return ResourceManager.GetString("DateWidget_InvalidDate", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to April.
/// </summary>
internal static string DateWidget_Month_April {
get {
return ResourceManager.GetString("DateWidget_Month_April", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to August.
/// </summary>
internal static string DateWidget_Month_August {
get {
return ResourceManager.GetString("DateWidget_Month_August", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to December.
/// </summary>
internal static string DateWidget_Month_December {
get {
return ResourceManager.GetString("DateWidget_Month_December", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to February.
/// </summary>
internal static string DateWidget_Month_February {
get {
return ResourceManager.GetString("DateWidget_Month_February", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to January.
/// </summary>
internal static string DateWidget_Month_January {
get {
return ResourceManager.GetString("DateWidget_Month_January", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to July.
/// </summary>
internal static string DateWidget_Month_July {
get {
return ResourceManager.GetString("DateWidget_Month_July", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to June.
/// </summary>
internal static string DateWidget_Month_June {
get {
return ResourceManager.GetString("DateWidget_Month_June", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to March.
/// </summary>
internal static string DateWidget_Month_March {
get {
return ResourceManager.GetString("DateWidget_Month_March", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to May.
/// </summary>
internal static string DateWidget_Month_May {
get {
return ResourceManager.GetString("DateWidget_Month_May", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to November.
/// </summary>
internal static string DateWidget_Month_November {
get {
return ResourceManager.GetString("DateWidget_Month_November", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to October.
/// </summary>
internal static string DateWidget_Month_October {
get {
return ResourceManager.GetString("DateWidget_Month_October", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to September.
/// </summary>
internal static string DateWidget_Month_September {
get {
return ResourceManager.GetString("DateWidget_Month_September", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Only current character.
/// </summary>
internal static string DbViewer_CharacterOption {
get {
return ResourceManager.GetString("DbViewer_CharacterOption", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to FromTo:.
/// </summary>
internal static string DbViewer_DatePicker_FromTo {
get {
return ResourceManager.GetString("DbViewer_DatePicker_FromTo", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Loading...].
/// </summary>
internal static string DbViewer_LoadingIndicator {
get {
return ResourceManager.GetString("DbViewer_LoadingIndicator", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Page: {0} / {1} ({2} Rows) {3}.
/// </summary>
internal static string DbViewer_Page {
get {
return ResourceManager.GetString("DbViewer_Page", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Simple Sender/Content Search.
/// </summary>
internal static string DbViewer_SearcHint {
get {
return ResourceManager.GetString("DbViewer_SearcHint", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Search had no match on this page..
/// </summary>
internal static string DbViewer_Status_NoSearchResult {
get {
return ResourceManager.GetString("DbViewer_Status_NoSearchResult", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Nothing Found..
/// </summary>
internal static string DbViewer_Status_NothingFound {
get {
return ResourceManager.GetString("DbViewer_Status_NothingFound", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Content.
/// </summary>
internal static string DbViewer_TableField_Content {
get {
return ResourceManager.GetString("DbViewer_TableField_Content", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Date.
/// </summary>
internal static string DbViewer_TableField_Date {
get {
return ResourceManager.GetString("DbViewer_TableField_Date", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Sender.
/// </summary>
internal static string DbViewer_TableField_Sender {
get {
return ResourceManager.GetString("DbViewer_TableField_Sender", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Chinese (full).
/// </summary>
+90
View File
@@ -1105,4 +1105,94 @@
<data name="Options_Changelog_Header" xml:space="preserve">
<value>Changelog:</value>
</data>
<data name="DateWidget_InvalidDate" xml:space="preserve">
<value>Date before {0} is not possible</value>
</data>
<data name="DateWidget_Day_Sun" xml:space="preserve">
<value>Sun</value>
</data>
<data name="DateWidget_Day_Mon" xml:space="preserve">
<value>Mon</value>
</data>
<data name="DateWidget_Day_Tue" xml:space="preserve">
<value>Tue</value>
</data>
<data name="DateWidget_Day_Wed" xml:space="preserve">
<value>Wed</value>
</data>
<data name="DateWidget_Day_Thu" xml:space="preserve">
<value>Thu</value>
</data>
<data name="DateWidget_Day_Fri" xml:space="preserve">
<value>Fri</value>
</data>
<data name="DateWidget_Day_Sat" xml:space="preserve">
<value>Sat</value>
</data>
<data name="DateWidget_Month_January" xml:space="preserve">
<value>January</value>
</data>
<data name="DateWidget_Month_February" xml:space="preserve">
<value>February</value>
</data>
<data name="DateWidget_Month_March" xml:space="preserve">
<value>March</value>
</data>
<data name="DateWidget_Month_April" xml:space="preserve">
<value>April</value>
</data>
<data name="DateWidget_Month_May" xml:space="preserve">
<value>May</value>
</data>
<data name="DateWidget_Month_June" xml:space="preserve">
<value>June</value>
</data>
<data name="DateWidget_Month_July" xml:space="preserve">
<value>July</value>
</data>
<data name="DateWidget_Month_August" xml:space="preserve">
<value>August</value>
</data>
<data name="DateWidget_Month_September" xml:space="preserve">
<value>September</value>
</data>
<data name="DateWidget_Month_October" xml:space="preserve">
<value>October</value>
</data>
<data name="DateWidget_Month_November" xml:space="preserve">
<value>November</value>
</data>
<data name="DateWidget_Month_December" xml:space="preserve">
<value>December</value>
</data>
<data name="DbViewer_TableField_Date" xml:space="preserve">
<value>Date</value>
</data>
<data name="DbViewer_TableField_Sender" xml:space="preserve">
<value>Sender</value>
</data>
<data name="DbViewer_TableField_Content" xml:space="preserve">
<value>Content</value>
</data>
<data name="DbViewer_Status_NothingFound" xml:space="preserve">
<value>Nothing Found.</value>
</data>
<data name="DbViewer_Status_NoSearchResult" xml:space="preserve">
<value>Search had no match on this page.</value>
</data>
<data name="DbViewer_SearcHint" xml:space="preserve">
<value>Simple Sender/Content Search</value>
</data>
<data name="DbViewer_Page" xml:space="preserve">
<value>Page: {0} / {1} ({2} Rows) {3}</value>
</data>
<data name="DbViewer_LoadingIndicator" xml:space="preserve">
<value>[Loading...]</value>
</data>
<data name="DbViewer_CharacterOption" xml:space="preserve">
<value>Only current character</value>
</data>
<data name="DbViewer_DatePicker_FromTo" xml:space="preserve">
<value>FromTo:</value>
</data>
</root>
+12 -11
View File
@@ -1,6 +1,7 @@
using System.Collections.Concurrent;
using System.Globalization;
using System.Numerics;
using ChatTwo.Resources;
using ChatTwo.Util;
using Dalamud.Interface;
using Dalamud.Interface.Colors;
@@ -77,7 +78,7 @@ public class DbViewer : Window
CurrentPage = 1;
ImGui.AlignTextToFramePadding();
ImGui.TextColored(ImGuiColors.DalamudViolet, "FromTo:");
ImGui.TextColored(ImGuiColors.DalamudViolet, Language.DbViewer_DatePicker_FromTo);
ImGui.SameLine();
var spacing = 3.0f * ImGuiHelpers.GlobalScale;
@@ -88,7 +89,7 @@ public class DbViewer : Window
DateReset();
ImGuiUtil.DrawArrows(ref CurrentPage, 1, totalPages, spacing);
var skipText = "Only current character";
var skipText = Language.DbViewer_CharacterOption;
var textLength = ImGui.GetTextLineHeight() + ImGui.CalcTextSize(skipText).X + ImGui.GetStyle().ItemInnerSpacing.X + ImGui.GetStyle().FramePadding.X * 2;
ImGui.SameLine(ImGui.GetContentRegionMax().X - textLength);
ImGui.Checkbox(skipText, ref OnlyCurrentCharacter);
@@ -97,10 +98,10 @@ public class DbViewer : Window
var loadingIndicator = IsProcessing && ProcessingStart < Environment.TickCount64;
ImGui.AlignTextToFramePadding();
ImGui.TextUnformatted($"Page: {CurrentPage} / {totalPages} ({Count} Rows) {(loadingIndicator ? "[Loading...]" : "")}");
ImGui.TextUnformatted(string.Format(Language.DbViewer_Page, CurrentPage, totalPages, Count, loadingIndicator ? Language.DbViewer_LoadingIndicator : ""));
ImGui.SameLine(ImGui.GetContentRegionMax().X - width);
ImGui.SetNextItemWidth(width);
if (ImGui.InputTextWithHint("##searchbar", "Simple Sender/Content Search", ref SimpleSearchTerm, 30))
if (ImGui.InputTextWithHint("##searchbar", Language.DbViewer_SearcHint, ref SimpleSearchTerm, 30))
Filter();
if (DateWidget.Validate(MinimalDate, ref AfterDate, ref BeforeDate))
@@ -144,7 +145,7 @@ public class DbViewer : Window
if (Filtered.IsEmpty)
{
ImGui.TextUnformatted(SimpleSearchTerm == "" ? "Nothing Found." : "Search had no match on this page.");
ImGui.TextUnformatted(SimpleSearchTerm == "" ? Language.DbViewer_Status_NothingFound : Language.DbViewer_Status_NoSearchResult);
return;
}
@@ -156,9 +157,9 @@ public class DbViewer : Window
if (!table.Success)
return;
ImGui.TableSetupColumn("Date", ImGuiTableColumnFlags.WidthFixed);
ImGui.TableSetupColumn("Sender");
ImGui.TableSetupColumn("Content");
ImGui.TableSetupColumn(Language.DbViewer_TableField_Date, ImGuiTableColumnFlags.WidthFixed);
ImGui.TableSetupColumn(Language.DbViewer_TableField_Sender);
ImGui.TableSetupColumn(Language.DbViewer_TableField_Content);
ImGui.TableHeadersRow();
foreach (var message in Filtered)
@@ -184,9 +185,9 @@ public class DbViewer : Window
Filtered = new ConcurrentStack<Message>(
Messages.Reverse().Where(m =>
ChunkUtil.ToRawString(m.Sender).Contains(SimpleSearchTerm) ||
ChunkUtil.ToRawString(m.Content).Contains(SimpleSearchTerm))
);
ChunkUtil.ToRawString(m.Sender).Contains(SimpleSearchTerm, StringComparison.InvariantCultureIgnoreCase) ||
ChunkUtil.ToRawString(m.Content).Contains(SimpleSearchTerm, StringComparison.InvariantCultureIgnoreCase)
));
}
private void DateRefresh()
+6 -5
View File
@@ -1,5 +1,6 @@
using System.Globalization;
using System.Numerics;
using ChatTwo.Resources;
using Dalamud.Interface;
using Dalamud.Interface.Colors;
using Dalamud.Interface.ImGuiNotification;
@@ -16,8 +17,8 @@ public static class DateWidget
private const int HeightInItems = 1 + 1 + 1 + 4;
private static readonly Vector4 Transparent = new(1, 1, 1, 0);
private static readonly string[] DayNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
private static readonly string[] MonthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
private static readonly string[] DayNames = [Language.DateWidget_Day_Sun, Language.DateWidget_Day_Mon, Language.DateWidget_Day_Tue, Language.DateWidget_Day_Wed, Language.DateWidget_Day_Thu, Language.DateWidget_Day_Fri, Language.DateWidget_Day_Sat];
private static readonly string[] MonthNames = [Language.DateWidget_Month_January, Language.DateWidget_Month_February, Language.DateWidget_Month_March, Language.DateWidget_Month_April, Language.DateWidget_Month_May, Language.DateWidget_Month_June, Language.DateWidget_Month_July, Language.DateWidget_Month_August, Language.DateWidget_Month_September, Language.DateWidget_Month_October, Language.DateWidget_Month_November, Language.DateWidget_Month_December];
private static readonly int[] NumDaysPerMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
private static uint LastOpenComboID;
@@ -50,7 +51,7 @@ public static class DateWidget
currentMin = minimal;
Plugin.Notification.AddNotification(new Notification
{
Content = "Date before {0} is not possible".Format(minimal.ToShortDateString()),
Content = Language.DateWidget_InvalidDate.Format(minimal.ToShortDateString()),
Type = NotificationType.Warning,
Minimized = false,
});
@@ -84,7 +85,7 @@ public static class DateWidget
dateString = date.ToString(format);
}
public static bool DatePicker(string label, ref DateTime dateOut, bool closeWhenMouseLeavesIt, string leftArrow = "", string rightArrow = "")
private static bool DatePicker(string label, ref DateTime dateOut, bool closeWhenMouseLeavesIt, string leftArrow = "", string rightArrow = "")
{
var id = ImGui.GetID(label);
var style = ImGui.GetStyle();
@@ -253,7 +254,7 @@ public static class DateWidget
return valueChanged;
}
public static string Center(string source, int length)
private static string Center(string source, int length)
{
var spaces = length - source.Length;
var padLeft = (spaces / 2) + source.Length;