using Quadarax.Foundation.Core.Value.Extensions; using System.Text; namespace qdr.app.tools.qfu.gui.Subforms { public partial class CtrlImgList : UserControl, ICommanControl { public CtrlImgList() { InitializeComponent(); } public string Description => "Image List Command\r\nList all image files from a directory with their dimensions, resolution, and size information.\r\n\r\nSyntax:\r\n`qfu img_list [options]`\r\n\r\nArguments:\r\n- `source`: Path to directory to scan for image files\r\nOptions:\r\n`-s`: Include subdirectories in the scan\r\n`-exclude `: Exclude files matching patterns (pipe-separated, e.g., `*.tmp|backup*`)\r\nOutput Format:\r\nDimensions Resolution Size File Path\r\n------------ --------------- --------- --------------------------------------------------\r\n1920x1080 72x72 DPI 2.5 MB photos/vacation.jpg\r\n800x600 96x96 DPI 145.2 KB thumbnails/small.png\r\n"; public string ViewName => "Image List"; public void Execute() { var arguments = new StringBuilder(); arguments.Append("img_list"); arguments.Append(" "); arguments.Append("\"").Append(ctrlDirSelection.SelectedPath).Append("\""); if (chbIncludeSubdirs.Checked) { arguments.Append(" "); arguments.Append(" -s"); } if(ctrlFilter.FilterEnabled) { arguments.Append(" "); arguments.Append(" -exclude:\"").Append(ctrlFilter.FilterText).Append("\""); } ConsoleRunner.Run(arguments.ToString().SplitQuoted(" ", "\"", removeEmptyItems:true, trimValues:false, keepBracket:true)); } } }