mirror of
https://github.com/n00mkrad/flowframes.git
synced 2025-12-15 16:07:45 +01:00
121 lines
3.7 KiB
C#
121 lines
3.7 KiB
C#
using Flowframes.IO;
|
|
using Flowframes.MiscUtils;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Specialized;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Flowframes.Ui
|
|
{
|
|
class DebugFormHelper
|
|
{
|
|
#region Log Viewer
|
|
|
|
public static void FillLogDropdown(ComboBox dd)
|
|
{
|
|
int oldIndex = dd.SelectedIndex;
|
|
dd.Items.Clear();
|
|
|
|
FileInfo[] logFiles = IoUtils.GetFileInfosSorted(Paths.GetLogPath(), false, "*.txt");
|
|
|
|
foreach (FileInfo file in logFiles)
|
|
dd.Items.Add(file.Name);
|
|
|
|
if (oldIndex < 0)
|
|
{
|
|
if (dd.Items.Count > 0)
|
|
dd.SelectedIndex = 0;
|
|
|
|
for (int i = 0; i < dd.Items.Count; i++)
|
|
{
|
|
if (((string)dd.Items[i]).Split('.').FirstOrDefault() == Logger.defaultLogName)
|
|
dd.SelectedIndex = i;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
dd.SelectedIndex = oldIndex;
|
|
}
|
|
}
|
|
|
|
public static void RefreshLogBox(TextBox logBox, string logFilename)
|
|
{
|
|
//bool wrap = logBox.WordWrap;
|
|
//logBox.WordWrap = true;
|
|
logBox.Text = File.ReadAllText(Path.Combine(Paths.GetLogPath(), logFilename)).Trim('\r', '\n');
|
|
logBox.SelectionStart = logBox.Text.Length;
|
|
logBox.ScrollToCaret();
|
|
//logBox.WordWrap = wrap;
|
|
}
|
|
|
|
public static void ToggleMonospace(TextBox logBox)
|
|
{
|
|
bool isMonospace = logBox.Font.Name.Lower().Contains("consolas");
|
|
|
|
if (isMonospace)
|
|
logBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.5f);
|
|
else
|
|
logBox.Font = new System.Drawing.Font("Consolas", 8.0f);
|
|
}
|
|
|
|
public static void CopyLogToClipboard(string logFilename)
|
|
{
|
|
StringCollection paths = new StringCollection();
|
|
string path = Path.Combine(Paths.GetLogPath(), logFilename);
|
|
paths.Add(path);
|
|
Clipboard.SetFileDropList(paths);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Config Editor Grid
|
|
|
|
public static void LoadGrid(DataGridView grid)
|
|
{
|
|
if (grid.Columns.Count < 2)
|
|
{
|
|
grid.Columns.Add("keys", "Key Name");
|
|
grid.Columns.Add("vals", "Saved Value");
|
|
}
|
|
|
|
grid.Rows.Clear();
|
|
|
|
foreach (KeyValuePair<string, string> keyValuePair in Config.cachedValues)
|
|
{
|
|
grid.Rows.Add(keyValuePair.Key, keyValuePair.Value);
|
|
}
|
|
|
|
grid.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
|
grid.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
|
grid.Columns[0].FillWeight = 50;
|
|
grid.Columns[1].FillWeight = 50;
|
|
}
|
|
|
|
public static void SaveGrid(DataGridView grid)
|
|
{
|
|
NmkdStopwatch sw = new NmkdStopwatch();
|
|
Dictionary<string, string> dict = new Dictionary<string, string>();
|
|
|
|
foreach (DataGridViewRow row in grid.Rows)
|
|
{
|
|
string key = row.Cells[0].Value?.ToString();
|
|
string val = row.Cells[1].Value?.ToString();
|
|
|
|
if (key == null || val == null || string.IsNullOrWhiteSpace(key.Trim()) || string.IsNullOrWhiteSpace(val.Trim()))
|
|
continue;
|
|
|
|
dict.Add(key, val);
|
|
}
|
|
|
|
Config.Set(dict);
|
|
Logger.Log($"Config Editor: Saved {grid.Rows.Count} config keys in {sw}", true);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|