mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-02 18:26:27 +13:00
Added ShowSizeInfo option for directory indexer
This commit is contained in:
parent
be553e5ed5
commit
add42b69a3
4 changed files with 59 additions and 21 deletions
|
@ -117,19 +117,26 @@ protected FolderInfo GetFolderInfo(string folderPath, int level = 0)
|
||||||
|
|
||||||
protected virtual string GetFolderNameRow(FolderInfo dir, int level = 0)
|
protected virtual string GetFolderNameRow(FolderInfo dir, int level = 0)
|
||||||
{
|
{
|
||||||
string text = string.Format("{0}{1}", config.IndentationText.Repeat(level), dir.FolderName);
|
string folderNameRow = string.Format("{0}{1}", config.IndentationText.Repeat(level), dir.FolderName);
|
||||||
|
|
||||||
if (dir.Size > 0)
|
if (config.ShowSizeInfo && dir.Size > 0)
|
||||||
{
|
{
|
||||||
text += string.Format(" [{0}]", dir.Size.ToSizeString(config.BinaryUnits));
|
folderNameRow += string.Format(" [{0}]", dir.Size.ToSizeString(config.BinaryUnits));
|
||||||
}
|
}
|
||||||
|
|
||||||
return text;
|
return folderNameRow;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual string GetFileNameRow(FileInfo fi, int level = 0)
|
protected virtual string GetFileNameRow(FileInfo fi, int level = 0)
|
||||||
{
|
{
|
||||||
return string.Format("{0}{1} [{2}]", config.IndentationText.Repeat(level), fi.Name, fi.Length.ToSizeString(config.BinaryUnits));
|
string fileNameRow = config.IndentationText.Repeat(level) + fi.Name;
|
||||||
|
|
||||||
|
if (config.ShowSizeInfo)
|
||||||
|
{
|
||||||
|
fileNameRow += string.Format(" [{0}]", fi.Length.ToSizeString(config.BinaryUnits));
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileNameRow;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual string GetFooter()
|
protected virtual string GetFooter()
|
||||||
|
|
|
@ -85,41 +85,53 @@ protected override void IndexFolder(FolderInfo dir, int level)
|
||||||
|
|
||||||
protected override string GetFolderNameRow(FolderInfo dir, int level)
|
protected override string GetFolderNameRow(FolderInfo dir, int level)
|
||||||
{
|
{
|
||||||
int heading = (level + 1).Between(1, 6);
|
string folderNameRow = "";
|
||||||
|
|
||||||
string folderInfoText = string.Empty;
|
|
||||||
|
|
||||||
if (!dir.IsEmpty)
|
if (!dir.IsEmpty)
|
||||||
{
|
{
|
||||||
folderInfoText = dir.Size.ToSizeString(config.BinaryUnits) + " (";
|
if (config.ShowSizeInfo)
|
||||||
|
{
|
||||||
|
folderNameRow += dir.Size.ToSizeString(config.BinaryUnits) + " ";
|
||||||
|
}
|
||||||
|
|
||||||
|
folderNameRow += "(";
|
||||||
|
|
||||||
if (dir.TotalFileCount > 0)
|
if (dir.TotalFileCount > 0)
|
||||||
{
|
{
|
||||||
folderInfoText += dir.TotalFileCount + " file" + (dir.TotalFileCount > 1 ? "s" : "");
|
folderNameRow += dir.TotalFileCount + " file" + (dir.TotalFileCount > 1 ? "s" : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dir.TotalFolderCount > 0)
|
if (dir.TotalFolderCount > 0)
|
||||||
{
|
{
|
||||||
if (dir.TotalFileCount > 0)
|
if (dir.TotalFileCount > 0)
|
||||||
{
|
{
|
||||||
folderInfoText += ", ";
|
folderNameRow += ", ";
|
||||||
}
|
}
|
||||||
|
|
||||||
folderInfoText += dir.TotalFolderCount + " folder" + (dir.TotalFolderCount > 1 ? "s" : "");
|
folderNameRow += dir.TotalFolderCount + " folder" + (dir.TotalFolderCount > 1 ? "s" : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
folderInfoText += ")";
|
folderNameRow += ")";
|
||||||
folderInfoText = " " + HtmlHelper.Tag("span", folderInfoText, "", "class=\"FolderInfo\"");
|
folderNameRow = " " + HtmlHelper.Tag("span", folderNameRow, "", "class=\"FolderInfo\"");
|
||||||
}
|
}
|
||||||
|
|
||||||
return HtmlHelper.StartTag("h" + heading) + URLHelpers.HtmlEncode(dir.FolderName) + folderInfoText + HtmlHelper.EndTag("h" + heading);
|
int heading = (level + 1).Between(1, 6);
|
||||||
|
|
||||||
|
return HtmlHelper.StartTag("h" + heading) + URLHelpers.HtmlEncode(dir.FolderName) + folderNameRow + HtmlHelper.EndTag("h" + heading);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override string GetFileNameRow(FileInfo fi, int level)
|
protected override string GetFileNameRow(FileInfo fi, int level)
|
||||||
{
|
{
|
||||||
string size = " " + HtmlHelper.Tag("span", fi.Length.ToSizeString(config.BinaryUnits), "", "class=\"FileSize\"");
|
string fileNameRow = HtmlHelper.StartTag("li") + URLHelpers.HtmlEncode(fi.Name);
|
||||||
|
|
||||||
return HtmlHelper.StartTag("li") + URLHelpers.HtmlEncode(fi.Name) + size + HtmlHelper.EndTag("li");
|
if (config.ShowSizeInfo)
|
||||||
|
{
|
||||||
|
fileNameRow += " " + HtmlHelper.Tag("span", fi.Length.ToSizeString(config.BinaryUnits), "", "class=\"FileSize\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
fileNameRow += HtmlHelper.EndTag("li");
|
||||||
|
|
||||||
|
return fileNameRow;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override string GetFooter()
|
protected override string GetFooter()
|
||||||
|
|
|
@ -44,6 +44,9 @@ public class IndexerSettings
|
||||||
[Category("Indexer"), DefaultValue(0), Description("Maximum folder depth level for indexing. 0 means unlimited.")]
|
[Category("Indexer"), DefaultValue(0), Description("Maximum folder depth level for indexing. 0 means unlimited.")]
|
||||||
public int MaxDepthLevel { get; set; }
|
public int MaxDepthLevel { get; set; }
|
||||||
|
|
||||||
|
[Category("Indexer"), DefaultValue(true), Description("Write folder and file size.")]
|
||||||
|
public bool ShowSizeInfo { get; set; }
|
||||||
|
|
||||||
[Category("Indexer"), DefaultValue(true), Description("Add footer information to show application and generated time.")]
|
[Category("Indexer"), DefaultValue(true), Description("Add footer information to show application and generated time.")]
|
||||||
public bool AddFooter { get; set; }
|
public bool AddFooter { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -70,12 +70,20 @@ protected override void IndexFolder(FolderInfo dir, int level = 0)
|
||||||
if (config.UseAttribute)
|
if (config.UseAttribute)
|
||||||
{
|
{
|
||||||
xmlWriter.WriteAttributeString("Name", dir.FolderName);
|
xmlWriter.WriteAttributeString("Name", dir.FolderName);
|
||||||
if (!dir.IsEmpty) xmlWriter.WriteAttributeString("Size", dir.Size.ToSizeString(config.BinaryUnits));
|
|
||||||
|
if (config.ShowSizeInfo && !dir.IsEmpty)
|
||||||
|
{
|
||||||
|
xmlWriter.WriteAttributeString("Size", dir.Size.ToSizeString(config.BinaryUnits));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
xmlWriter.WriteElementString("Name", dir.FolderName);
|
xmlWriter.WriteElementString("Name", dir.FolderName);
|
||||||
if (!dir.IsEmpty) xmlWriter.WriteElementString("Size", dir.Size.ToSizeString(config.BinaryUnits));
|
|
||||||
|
if (config.ShowSizeInfo && !dir.IsEmpty)
|
||||||
|
{
|
||||||
|
xmlWriter.WriteElementString("Size", dir.Size.ToSizeString(config.BinaryUnits));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dir.Files.Count > 0)
|
if (dir.Files.Count > 0)
|
||||||
|
@ -89,12 +97,20 @@ protected override void IndexFolder(FolderInfo dir, int level = 0)
|
||||||
if (config.UseAttribute)
|
if (config.UseAttribute)
|
||||||
{
|
{
|
||||||
xmlWriter.WriteAttributeString("Name", fi.Name);
|
xmlWriter.WriteAttributeString("Name", fi.Name);
|
||||||
xmlWriter.WriteAttributeString("Size", fi.Length.ToSizeString(config.BinaryUnits));
|
|
||||||
|
if (config.ShowSizeInfo)
|
||||||
|
{
|
||||||
|
xmlWriter.WriteAttributeString("Size", fi.Length.ToSizeString(config.BinaryUnits));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
xmlWriter.WriteElementString("Name", fi.Name);
|
xmlWriter.WriteElementString("Name", fi.Name);
|
||||||
xmlWriter.WriteElementString("Size", fi.Length.ToSizeString(config.BinaryUnits));
|
|
||||||
|
if (config.ShowSizeInfo)
|
||||||
|
{
|
||||||
|
xmlWriter.WriteElementString("Size", fi.Length.ToSizeString(config.BinaryUnits));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
xmlWriter.WriteEndElement();
|
xmlWriter.WriteEndElement();
|
||||||
|
|
Loading…
Reference in a new issue