OneDrive folder upload support in UI

Fixed Box selected folder not being saved
This commit is contained in:
mcored 2014-12-27 07:23:50 +08:00
parent 1af3dc6a9d
commit 83b915b024
5 changed files with 24 additions and 21 deletions

View file

@ -220,6 +220,8 @@ public OneDrivePathInfo GetPathInfo(string path)
Dictionary<string, string> args = new Dictionary<string, string>();
args.Add("access_token", AuthInfo.Token.access_token);
if (!path.EndsWith("files")) path += "/files";
string url = CreateQuery(URLHelpers.CombineURL("https://apis.live.net/v5.0", path), args);
string response = SendRequest(HttpMethod.GET, url);

View file

@ -339,6 +339,7 @@ public void LoadSettings(UploadersConfig uploadersConfig)
}
cbOneDriveCreateShareableLink.Checked = Config.OneDriveAutoCreateShareableLink;
lblOneDriveFolderID.Text = Resources.UploadersConfigForm_LoadSettings_Selected_folder_ + " " + Config.OneDriveSelectedFolder.name;
// Minus
@ -1148,6 +1149,19 @@ private void btnOneDriveRefreshFolders_Click(object sender, EventArgs e)
OneDriveListFolders();
}
private void lvOneDriveFolders_SelectedIndexChanged(object sender, EventArgs e)
{
if (lvOneDriveFolders.SelectedItems.Count > 0)
{
ListViewItem lvi = lvOneDriveFolders.SelectedItems[0];
OneDriveFileInfo file = lvi.Tag as OneDriveFileInfo;
if (file != null)
{
lblOneDriveFolderID.Text = Resources.UploadersConfigForm_LoadSettings_Selected_folder_ + " " + file.name;
}
}
}
private void lvOneDriveFolders_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && lvOneDriveFolders.SelectedItems.Count > 0)
@ -1158,6 +1172,7 @@ private void lvOneDriveFolders_MouseDoubleClick(object sender, MouseEventArgs e)
{
lvOneDriveFolders.Items.Clear();
OneDriveListFolders(file);
Config.OneDriveSelectedFolder = file;
}
}
}
@ -1277,6 +1292,7 @@ private void lvBoxFolders_MouseDoubleClick(object sender, MouseEventArgs e)
{
lvBoxFolders.Items.Clear();
BoxListFolders(file);
Config.BoxSelectedFolder = file;
}
}
}

View file

@ -992,14 +992,10 @@ public void OneDriveListFolders(OneDriveFileInfo fileEntry)
else
{
OneDrive onedrive = new OneDrive(Config.OneDriveOAuth2Info);
//OneDriveFileInfo files = onedrive.GetFiles(fileEntry);
//if (files != null && files.entries != null && files.entries.Length > 0)
//{
// foreach (OneDriveFileInfo folder in files.entries.Where(x => x.type == "folder"))
// {
// OneDriveAddFolder(folder);
// }
//}
foreach (OneDriveFileInfo folder in onedrive.GetPathInfo(fileEntry.id).data.Where(x => x.id.StartsWith("folder.")))
{
OneDriveAddFolder(folder);
}
}
}
@ -1010,19 +1006,6 @@ private void OneDriveAddFolder(OneDriveFileInfo folder)
lvOneDriveFolders.Items.Add(lvi);
}
private void lvOneDriveFolders_SelectedIndexChanged(object sender, EventArgs e)
{
if (lvOneDriveFolders.SelectedItems.Count > 0)
{
ListViewItem lvi = lvOneDriveFolders.SelectedItems[0];
OneDriveFileInfo file = lvi.Tag as OneDriveFileInfo;
if (file != null)
{
lblOneDriveFolderID.Text = Resources.UploadersConfigForm_LoadSettings_Selected_folder_ + " " + file.name;
}
}
}
#endregion OneDrive
#region Minus

View file

@ -124,6 +124,7 @@ public class UploadersConfig : SettingsBase<UploadersConfig>
// OneDrive
public OAuth2Info OneDriveOAuth2Info = null;
public OneDriveFileInfo OneDriveSelectedFolder = OneDrive.RootFolder;
public bool OneDriveAutoCreateShareableLink = true;
// Copy

View file

@ -832,6 +832,7 @@ public UploadResult UploadFile(Stream stream, string fileName)
case FileDestination.OneDrive:
fileUploader = new OneDrive(Program.UploadersConfig.OneDriveOAuth2Info)
{
FolderID = Program.UploadersConfig.OneDriveSelectedFolder.id,
AutoCreateShareableLink = Program.UploadersConfig.OneDriveAutoCreateShareableLink
};
break;