mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-02 18:26:27 +13:00
Supports all SpecialFolder enums
This commit is contained in:
parent
52c77a034d
commit
8a4e57ffc6
5 changed files with 14 additions and 9 deletions
|
@ -607,7 +607,7 @@ public static bool BrowseFile(string title, TextBox tb, string initialDirectory
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool BrowseFolder(string title, TextBox tb, string initialDirectory = "")
|
public static bool BrowseFolder(string title, TextBox tb, string initialDirectory = "", bool detectSpecialFolders = true)
|
||||||
{
|
{
|
||||||
using (FolderSelectDialog fsd = new FolderSelectDialog())
|
using (FolderSelectDialog fsd = new FolderSelectDialog())
|
||||||
{
|
{
|
||||||
|
@ -626,7 +626,7 @@ public static bool BrowseFolder(string title, TextBox tb, string initialDirector
|
||||||
|
|
||||||
if (fsd.ShowDialog())
|
if (fsd.ShowDialog())
|
||||||
{
|
{
|
||||||
tb.Text = GetVariableFolderPath(fsd.FileName);
|
tb.Text = detectSpecialFolders ? GetVariableFolderPath(fsd.FileName) : fsd.FileName;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -636,15 +636,20 @@ public static bool BrowseFolder(string title, TextBox tb, string initialDirector
|
||||||
|
|
||||||
public static string GetVariableFolderPath(string folderPath)
|
public static string GetVariableFolderPath(string folderPath)
|
||||||
{
|
{
|
||||||
folderPath = folderPath.Replace(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), "%MyPictures%", StringComparison.InvariantCultureIgnoreCase);
|
if (Directory.Exists(folderPath))
|
||||||
folderPath = folderPath.Replace(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "%UserProfile%", StringComparison.InvariantCultureIgnoreCase);
|
{
|
||||||
|
Helpers.GetEnums<Environment.SpecialFolder>().ForEach(x => folderPath = folderPath.Replace(Environment.GetFolderPath(x), string.Format("%{0}%", x), StringComparison.InvariantCultureIgnoreCase));
|
||||||
|
}
|
||||||
|
|
||||||
return folderPath;
|
return folderPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string ExpandFolderVariables(string folderPath)
|
public static string ExpandFolderVariables(string folderPath)
|
||||||
{
|
{
|
||||||
folderPath = folderPath.Replace("%MyPictures%", Environment.GetFolderPath(Environment.SpecialFolder.MyPictures));
|
if (Directory.Exists(folderPath))
|
||||||
|
{
|
||||||
|
Helpers.GetEnums<Environment.SpecialFolder>().ForEach(x => folderPath = folderPath.Replace(string.Format("%{0}%", x), Environment.GetFolderPath(x), StringComparison.InvariantCultureIgnoreCase));
|
||||||
|
}
|
||||||
|
|
||||||
return Environment.ExpandEnvironmentVariables(folderPath);
|
return Environment.ExpandEnvironmentVariables(folderPath);
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ public override object EditValue(ITypeDescriptorContext context, IServiceProvide
|
||||||
dlg.Title = Resources.DirectoryNameEditor_EditValue_Browse_for_a_folder___;
|
dlg.Title = Resources.DirectoryNameEditor_EditValue_Browse_for_a_folder___;
|
||||||
if (dlg.ShowDialog())
|
if (dlg.ShowDialog())
|
||||||
{
|
{
|
||||||
value = dlg.FileName;
|
value = Helpers.GetVariableFolderPath(dlg.FileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
|
|
|
@ -253,7 +253,7 @@ private void UpdatePersonalFolderPathPreview()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
personalPath = Environment.ExpandEnvironmentVariables(personalPath);
|
personalPath = Helpers.ExpandFolderVariables(personalPath);
|
||||||
personalPath = Helpers.GetAbsolutePath(personalPath);
|
personalPath = Helpers.GetAbsolutePath(personalPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -476,7 +476,7 @@ private static void CheckPersonalPathConfig()
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(customPersonalPath))
|
if (!string.IsNullOrEmpty(customPersonalPath))
|
||||||
{
|
{
|
||||||
customPersonalPath = Environment.ExpandEnvironmentVariables(customPersonalPath);
|
customPersonalPath = Helpers.ExpandFolderVariables(customPersonalPath);
|
||||||
CustomPersonalPath = Helpers.GetAbsolutePath(customPersonalPath);
|
CustomPersonalPath = Helpers.GetAbsolutePath(customPersonalPath);
|
||||||
}
|
}
|
||||||
else if (IsPortableApps)
|
else if (IsPortableApps)
|
||||||
|
|
|
@ -235,7 +235,7 @@ public string CaptureFolder
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(AdvancedSettings.CapturePath))
|
if (!string.IsNullOrEmpty(AdvancedSettings.CapturePath))
|
||||||
{
|
{
|
||||||
return AdvancedSettings.CapturePath;
|
return Helpers.ExpandFolderVariables(AdvancedSettings.CapturePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Program.ScreenshotsFolder;
|
return Program.ScreenshotsFolder;
|
||||||
|
|
Loading…
Reference in a new issue