From fd02c34ac1786de9361135fbf8672b90174134ab Mon Sep 17 00:00:00 2001 From: Jaex Date: Tue, 15 Apr 2014 22:30:46 +0300 Subject: [PATCH] Amazon S3 folder name handling --- ShareX/Program.cs | 23 +- UploadersLib/FileUploaders/AmazonS3.cs | 21 +- .../GUI/UploadersConfigForm.Designer.cs | 417 ++++++++++-------- UploadersLib/GUI/UploadersConfigForm.cs | 20 +- UploadersLib/GUI/UploadersConfigForm.resx | 3 - UploadersLib/UploadersConfig.cs | 4 +- 6 files changed, 258 insertions(+), 230 deletions(-) diff --git a/ShareX/Program.cs b/ShareX/Program.cs index 1fbea3952..e9ca7e909 100644 --- a/ShareX/Program.cs +++ b/ShareX/Program.cs @@ -494,23 +494,17 @@ private static bool WaitFormLoad(int wait) public static void ConfigureUploadersConfigWatcher() { - if (Program.Settings.DetectUploaderConfigFileChanges) + if (Program.Settings.DetectUploaderConfigFileChanges && uploaderConfigWatcher == null) { - if (uploaderConfigWatcher == null) - { - uploaderConfigWatcher = new FileSystemWatcher(Path.GetDirectoryName(Program.UploadersConfigFilePath), Path.GetFileName(Program.UploadersConfigFilePath)); - uploaderConfigWatcher.Changed += uploaderConfigWatcher_Changed; - uploaderConfigWatcherTimer = new WatchFolderDuplicateEventTimer(Program.UploadersConfigFilePath); - uploaderConfigWatcher.EnableRaisingEvents = true; - } + uploaderConfigWatcher = new FileSystemWatcher(Path.GetDirectoryName(Program.UploadersConfigFilePath), Path.GetFileName(Program.UploadersConfigFilePath)); + uploaderConfigWatcher.Changed += uploaderConfigWatcher_Changed; + uploaderConfigWatcherTimer = new WatchFolderDuplicateEventTimer(Program.UploadersConfigFilePath); + uploaderConfigWatcher.EnableRaisingEvents = true; } - else + else if (uploaderConfigWatcher != null) { - if (uploaderConfigWatcher != null) - { - uploaderConfigWatcher.EnableRaisingEvents = false; - uploaderConfigWatcher = null; - } + uploaderConfigWatcher.Dispose(); + uploaderConfigWatcher = null; } } @@ -527,7 +521,6 @@ private static void uploaderConfigWatcher_Changed(object sender, FileSystemEvent private static void ReloadUploadersConfig(string filePath) { - DebugHelper.WriteLine("uploaderConfigWatcher_Changed"); UploadersConfig = UploadersLib.UploadersConfig.Load(filePath); } diff --git a/UploadersLib/FileUploaders/AmazonS3.cs b/UploadersLib/FileUploaders/AmazonS3.cs index 45173ae84..7d661ff5c 100644 --- a/UploadersLib/FileUploaders/AmazonS3.cs +++ b/UploadersLib/FileUploaders/AmazonS3.cs @@ -50,12 +50,6 @@ private string GetObjectStorageClass() return S3Settings.UseReducedRedundancyStorage ? "REDUCED_REDUNDANCY" : "STANDARD"; } - private string GetObjectKey(string fileName) - { - var parser = new NameParser(NameParserType.FolderPath); - return string.Format("{0}{1}", parser.Parse(S3Settings.ObjectPrefix), fileName); - } - // Helper class to construct the S3 policy document (below) private class S3PolicyCondition : Dictionary { @@ -104,16 +98,25 @@ private string CreateSignature(string secretKey, byte[] policyBytes) return Convert.ToBase64String(signatureBytes); } + private string GetObjectKey(string fileName) + { + NameParser parser = new NameParser(NameParserType.FolderPath); + string objectPrefix = S3Settings.ObjectPrefix.Trim('/'); + return Helpers.CombineURL(parser.Parse(objectPrefix), fileName); + } + private string GetObjectURL(string objectName) { - var urlEncodedObjectName = Helpers.URLPathEncode(objectName); + objectName = objectName.Trim('/'); + objectName = Helpers.URLPathEncode(objectName); + if (S3Settings.UseCustomCNAME) { - return string.Format("http://{0}/{1}", S3Settings.Bucket, urlEncodedObjectName); + return "http://" + Helpers.CombineURL(S3Settings.Bucket, objectName); } else { - return string.Format("{0}/{1}", GetEndpoint(), urlEncodedObjectName); + return Helpers.CombineURL(GetEndpoint(), objectName); } } diff --git a/UploadersLib/GUI/UploadersConfigForm.Designer.cs b/UploadersLib/GUI/UploadersConfigForm.Designer.cs index 4c5584d9e..b7a1c68e8 100644 --- a/UploadersLib/GUI/UploadersConfigForm.Designer.cs +++ b/UploadersLib/GUI/UploadersConfigForm.Designer.cs @@ -34,7 +34,6 @@ private void InitializeComponent() this.tpImageUploaders = new System.Windows.Forms.TabPage(); this.tcImageUploaders = new System.Windows.Forms.TabControl(); this.tpImgur = new System.Windows.Forms.TabPage(); - this.oauth2Imgur = new UploadersLib.GUI.OAuth2Control(); this.txtImgurAlbumID = new System.Windows.Forms.TextBox(); this.lblImgurAlbumID = new System.Windows.Forms.Label(); this.lvImgurAlbumList = new System.Windows.Forms.ListView(); @@ -44,9 +43,7 @@ private void InitializeComponent() this.btnImgurRefreshAlbumList = new System.Windows.Forms.Button(); this.cbImgurThumbnailType = new System.Windows.Forms.ComboBox(); this.lblImgurThumbnailType = new System.Windows.Forms.Label(); - this.atcImgurAccountType = new UploadersLib.GUI.AccountTypeControl(); this.tpImageShack = new System.Windows.Forms.TabPage(); - this.atcImageShackAccountType = new UploadersLib.GUI.AccountTypeControl(); this.btnImageShackLogin = new System.Windows.Forms.Button(); this.btnImageShackOpenPublicProfile = new System.Windows.Forms.Button(); this.cbImageShackIsPublic = new System.Windows.Forms.CheckBox(); @@ -56,7 +53,6 @@ private void InitializeComponent() this.txtImageShackPassword = new System.Windows.Forms.TextBox(); this.lblImageShackPassword = new System.Windows.Forms.Label(); this.tpTinyPic = new System.Windows.Forms.TabPage(); - this.atcTinyPicAccountType = new UploadersLib.GUI.AccountTypeControl(); this.btnTinyPicLogin = new System.Windows.Forms.Button(); this.txtTinyPicPassword = new System.Windows.Forms.TextBox(); this.lblTinyPicPassword = new System.Windows.Forms.Label(); @@ -109,7 +105,6 @@ private void InitializeComponent() this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.btnPicasaRefreshAlbumList = new System.Windows.Forms.Button(); - this.oauth2Picasa = new UploadersLib.GUI.OAuth2Control(); this.tpTextUploaders = new System.Windows.Forms.TabPage(); this.tcTextUploaders = new System.Windows.Forms.TabControl(); this.tpPastebin = new System.Windows.Forms.TabPage(); @@ -120,8 +115,6 @@ private void InitializeComponent() this.txtPaste_eeUserAPIKey = new System.Windows.Forms.TextBox(); this.tpGist = new System.Windows.Forms.TabPage(); this.chkGistPublishPublic = new System.Windows.Forms.CheckBox(); - this.oAuth2Gist = new UploadersLib.GUI.OAuth2Control(); - this.atcGistAccountType = new UploadersLib.GUI.AccountTypeControl(); this.tpUpaste = new System.Windows.Forms.TabPage(); this.cbUpasteIsPublic = new System.Windows.Forms.CheckBox(); this.lblUpasteUserKey = new System.Windows.Forms.Label(); @@ -146,7 +139,6 @@ private void InitializeComponent() this.btnFtpClient = new System.Windows.Forms.Button(); this.btnFTPExport = new System.Windows.Forms.Button(); this.btnFTPImport = new System.Windows.Forms.Button(); - this.ucFTPAccounts = new UploadersLib.AccountsControl(); this.gbFtpSettings = new System.Windows.Forms.GroupBox(); this.lblFtpFiles = new System.Windows.Forms.Label(); this.lblFtpText = new System.Windows.Forms.Label(); @@ -168,6 +160,7 @@ private void InitializeComponent() this.btnMegaLogin = new System.Windows.Forms.Button(); this.lblMegaStatusTitle = new System.Windows.Forms.Label(); this.tpAmazonS3 = new System.Windows.Forms.TabPage(); + this.btnAmazonS3AccessKeyOpen = new System.Windows.Forms.Button(); this.cbAmazonS3CustomCNAME = new System.Windows.Forms.CheckBox(); this.cbAmazonS3Endpoint = new System.Windows.Forms.ComboBox(); this.lblAmazonS3BucketName = new System.Windows.Forms.Label(); @@ -188,7 +181,6 @@ private void InitializeComponent() this.txtPushbulletUserKey = new System.Windows.Forms.TextBox(); this.tpGoogleDrive = new System.Windows.Forms.TabPage(); this.cbGoogleDriveIsPublic = new System.Windows.Forms.CheckBox(); - this.oauth2GoogleDrive = new UploadersLib.GUI.OAuth2Control(); this.tpBox = new System.Windows.Forms.TabPage(); this.txtBoxFolderID = new System.Windows.Forms.TextBox(); this.lblBoxFolderID = new System.Windows.Forms.Label(); @@ -211,7 +203,6 @@ private void InitializeComponent() this.lblSendSpaceUsername = new System.Windows.Forms.Label(); this.txtSendSpacePassword = new System.Windows.Forms.TextBox(); this.txtSendSpaceUserName = new System.Windows.Forms.TextBox(); - this.atcSendSpaceAccountType = new UploadersLib.GUI.AccountTypeControl(); this.tpGe_tt = new System.Windows.Forms.TabPage(); this.lblGe_ttAccessToken = new System.Windows.Forms.Label(); this.lblGe_ttPassword = new System.Windows.Forms.Label(); @@ -249,7 +240,6 @@ private void InitializeComponent() this.txtJiraConfigHelp = new System.Windows.Forms.TextBox(); this.txtJiraHost = new System.Windows.Forms.TextBox(); this.lblJiraHost = new System.Windows.Forms.Label(); - this.oAuthJira = new UploadersLib.GUI.OAuth2Control(); this.tpEmail = new System.Windows.Forms.TabPage(); this.chkEmailConfirm = new System.Windows.Forms.CheckBox(); this.lblEmailSmtpServer = new System.Windows.Forms.Label(); @@ -267,7 +257,6 @@ private void InitializeComponent() this.txtEmailDefaultSubject = new System.Windows.Forms.TextBox(); this.tpSharedFolder = new System.Windows.Forms.TabPage(); this.tlpSharedFolders = new System.Windows.Forms.TableLayoutPanel(); - this.ucLocalhostAccounts = new UploadersLib.AccountsControl(); this.gbSharedFolder = new System.Windows.Forms.GroupBox(); this.lblSharedFolderFiles = new System.Windows.Forms.Label(); this.lblSharedFolderText = new System.Windows.Forms.Label(); @@ -278,10 +267,7 @@ private void InitializeComponent() this.tpURLShorteners = new System.Windows.Forms.TabPage(); this.tcURLShorteners = new System.Windows.Forms.TabControl(); this.tpBitly = new System.Windows.Forms.TabPage(); - this.oauth2Bitly = new UploadersLib.GUI.OAuth2Control(); this.tpGoogleURLShortener = new System.Windows.Forms.TabPage(); - this.oauth2GoogleURLShortener = new UploadersLib.GUI.OAuth2Control(); - this.atcGoogleURLShortenerAccountType = new UploadersLib.GUI.AccountTypeControl(); this.tpYourls = new System.Windows.Forms.TabPage(); this.txtYourlsPassword = new System.Windows.Forms.TextBox(); this.txtYourlsUsername = new System.Windows.Forms.TextBox(); @@ -296,7 +282,6 @@ private void InitializeComponent() this.tcSocialNetworkingServices = new System.Windows.Forms.TabControl(); this.tpTwitter = new System.Windows.Forms.TabPage(); this.btnTwitterLogin = new System.Windows.Forms.Button(); - this.ucTwitterAccounts = new UploadersLib.AccountsControl(); this.tpCustomUploaders = new System.Windows.Forms.TabPage(); this.btnCustomUploaderHelp = new System.Windows.Forms.Button(); this.lblCustomUploaderImageUploader = new System.Windows.Forms.Label(); @@ -355,7 +340,24 @@ private void InitializeComponent() this.txtCustomUploaderArgName = new System.Windows.Forms.TextBox(); this.txtRapidSharePremiumUserName = new System.Windows.Forms.TextBox(); this.ttHelpTip = new System.Windows.Forms.ToolTip(this.components); + this.oauth2Imgur = new UploadersLib.GUI.OAuth2Control(); + this.atcImgurAccountType = new UploadersLib.GUI.AccountTypeControl(); + this.atcImageShackAccountType = new UploadersLib.GUI.AccountTypeControl(); + this.atcTinyPicAccountType = new UploadersLib.GUI.AccountTypeControl(); + this.oauth2Picasa = new UploadersLib.GUI.OAuth2Control(); + this.oAuth2Gist = new UploadersLib.GUI.OAuth2Control(); + this.atcGistAccountType = new UploadersLib.GUI.AccountTypeControl(); + this.ucFTPAccounts = new UploadersLib.AccountsControl(); + this.oauth2GoogleDrive = new UploadersLib.GUI.OAuth2Control(); + this.atcSendSpaceAccountType = new UploadersLib.GUI.AccountTypeControl(); + this.oAuthJira = new UploadersLib.GUI.OAuth2Control(); + this.ucLocalhostAccounts = new UploadersLib.AccountsControl(); + this.oauth2Bitly = new UploadersLib.GUI.OAuth2Control(); + this.oauth2GoogleURLShortener = new UploadersLib.GUI.OAuth2Control(); + this.atcGoogleURLShortenerAccountType = new UploadersLib.GUI.AccountTypeControl(); + this.ucTwitterAccounts = new UploadersLib.AccountsControl(); this.actRapidShareAccountType = new UploadersLib.GUI.AccountTypeControl(); + this.btnAmazonS3BucketNameOpen = new System.Windows.Forms.Button(); this.tcUploaders.SuspendLayout(); this.tpImageUploaders.SuspendLayout(); this.tcImageUploaders.SuspendLayout(); @@ -482,18 +484,6 @@ private void InitializeComponent() this.tpImgur.Text = "Imgur"; this.tpImgur.UseVisualStyleBackColor = true; // - // oauth2Imgur - // - this.oauth2Imgur.Location = new System.Drawing.Point(16, 16); - this.oauth2Imgur.LoginStatus = false; - this.oauth2Imgur.Name = "oauth2Imgur"; - this.oauth2Imgur.Size = new System.Drawing.Size(328, 207); - this.oauth2Imgur.Status = "Status: Login required."; - this.oauth2Imgur.TabIndex = 6; - this.oauth2Imgur.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oauth2Imgur_OpenButtonClicked); - this.oauth2Imgur.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oauth2Imgur_CompleteButtonClicked); - this.oauth2Imgur.RefreshButtonClicked += new UploadersLib.GUI.OAuth2Control.RefreshButtonClickedEventHandler(this.oauth2Imgur_RefreshButtonClicked); - // // txtImgurAlbumID // this.txtImgurAlbumID.Location = new System.Drawing.Point(592, 28); @@ -572,15 +562,6 @@ private void InitializeComponent() this.lblImgurThumbnailType.TabIndex = 1; this.lblImgurThumbnailType.Text = "Thumbnail type:"; // - // atcImgurAccountType - // - this.atcImgurAccountType.Location = new System.Drawing.Point(8, 232); - this.atcImgurAccountType.Name = "atcImgurAccountType"; - this.atcImgurAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; - this.atcImgurAccountType.Size = new System.Drawing.Size(272, 29); - this.atcImgurAccountType.TabIndex = 0; - this.atcImgurAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcImgurAccountType_AccountTypeChanged); - // // tpImageShack // this.tpImageShack.Controls.Add(this.atcImageShackAccountType); @@ -600,15 +581,6 @@ private void InitializeComponent() this.tpImageShack.Text = "ImageShack"; this.tpImageShack.UseVisualStyleBackColor = true; // - // atcImageShackAccountType - // - this.atcImageShackAccountType.Location = new System.Drawing.Point(8, 16); - this.atcImageShackAccountType.Name = "atcImageShackAccountType"; - this.atcImageShackAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; - this.atcImageShackAccountType.Size = new System.Drawing.Size(272, 29); - this.atcImageShackAccountType.TabIndex = 10; - this.atcImageShackAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcImageShackAccountType_AccountTypeChanged); - // // btnImageShackLogin // this.btnImageShackLogin.Location = new System.Drawing.Point(296, 82); @@ -702,15 +674,6 @@ private void InitializeComponent() this.tpTinyPic.Text = "TinyPic"; this.tpTinyPic.UseVisualStyleBackColor = true; // - // atcTinyPicAccountType - // - this.atcTinyPicAccountType.Location = new System.Drawing.Point(8, 16); - this.atcTinyPicAccountType.Name = "atcTinyPicAccountType"; - this.atcTinyPicAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; - this.atcTinyPicAccountType.Size = new System.Drawing.Size(272, 29); - this.atcTinyPicAccountType.TabIndex = 0; - this.atcTinyPicAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcTinyPicAccountType_AccountTypeChanged); - // // btnTinyPicLogin // this.btnTinyPicLogin.Location = new System.Drawing.Point(296, 82); @@ -1242,18 +1205,6 @@ private void InitializeComponent() this.btnPicasaRefreshAlbumList.UseVisualStyleBackColor = true; this.btnPicasaRefreshAlbumList.Click += new System.EventHandler(this.btnPicasaRefreshAlbumList_Click); // - // oauth2Picasa - // - this.oauth2Picasa.Location = new System.Drawing.Point(16, 16); - this.oauth2Picasa.LoginStatus = false; - this.oauth2Picasa.Name = "oauth2Picasa"; - this.oauth2Picasa.Size = new System.Drawing.Size(328, 207); - this.oauth2Picasa.Status = "Login required."; - this.oauth2Picasa.TabIndex = 0; - this.oauth2Picasa.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oauth2Picasa_OpenButtonClicked); - this.oauth2Picasa.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oauth2Picasa_CompleteButtonClicked); - this.oauth2Picasa.RefreshButtonClicked += new UploadersLib.GUI.OAuth2Control.RefreshButtonClickedEventHandler(this.oauth2Picasa_RefreshButtonClicked); - // // tpTextUploaders // this.tpTextUploaders.Controls.Add(this.tcTextUploaders); @@ -1361,28 +1312,6 @@ private void InitializeComponent() this.chkGistPublishPublic.UseVisualStyleBackColor = true; this.chkGistPublishPublic.CheckedChanged += new System.EventHandler(this.chkGistPublishPublic_CheckedChanged); // - // oAuth2Gist - // - this.oAuth2Gist.Enabled = false; - this.oAuth2Gist.IsRefreshable = false; - this.oAuth2Gist.Location = new System.Drawing.Point(16, 51); - this.oAuth2Gist.LoginStatus = false; - this.oAuth2Gist.Name = "oAuth2Gist"; - this.oAuth2Gist.Size = new System.Drawing.Size(328, 173); - this.oAuth2Gist.Status = "Status: Login required."; - this.oAuth2Gist.TabIndex = 16; - this.oAuth2Gist.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oAuth2Gist_OpenButtonClicked); - this.oAuth2Gist.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oAuth2Gist_CompleteButtonClicked); - // - // atcGistAccountType - // - this.atcGistAccountType.Location = new System.Drawing.Point(15, 16); - this.atcGistAccountType.Name = "atcGistAccountType"; - this.atcGistAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; - this.atcGistAccountType.Size = new System.Drawing.Size(214, 29); - this.atcGistAccountType.TabIndex = 15; - this.atcGistAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcGistAccountType_AccountTypeChanged); - // // tpUpaste // this.tpUpaste.Controls.Add(this.cbUpasteIsPublic); @@ -1668,15 +1597,6 @@ private void InitializeComponent() this.btnFTPImport.UseVisualStyleBackColor = true; this.btnFTPImport.Click += new System.EventHandler(this.btnFTPImport_Click); // - // ucFTPAccounts - // - this.ucFTPAccounts.Dock = System.Windows.Forms.DockStyle.Fill; - this.ucFTPAccounts.Location = new System.Drawing.Point(0, 0); - this.ucFTPAccounts.Margin = new System.Windows.Forms.Padding(4); - this.ucFTPAccounts.Name = "ucFTPAccounts"; - this.ucFTPAccounts.Size = new System.Drawing.Size(792, 332); - this.ucFTPAccounts.TabIndex = 0; - // // gbFtpSettings // this.gbFtpSettings.Controls.Add(this.lblFtpFiles); @@ -1882,6 +1802,8 @@ private void InitializeComponent() // // tpAmazonS3 // + this.tpAmazonS3.Controls.Add(this.btnAmazonS3BucketNameOpen); + this.tpAmazonS3.Controls.Add(this.btnAmazonS3AccessKeyOpen); this.tpAmazonS3.Controls.Add(this.cbAmazonS3CustomCNAME); this.tpAmazonS3.Controls.Add(this.cbAmazonS3Endpoint); this.tpAmazonS3.Controls.Add(this.lblAmazonS3BucketName); @@ -1902,6 +1824,16 @@ private void InitializeComponent() this.tpAmazonS3.Text = "Amazon S3"; this.tpAmazonS3.UseVisualStyleBackColor = true; // + // btnAmazonS3AccessKeyOpen + // + this.btnAmazonS3AccessKeyOpen.Location = new System.Drawing.Point(464, 21); + this.btnAmazonS3AccessKeyOpen.Name = "btnAmazonS3AccessKeyOpen"; + this.btnAmazonS3AccessKeyOpen.Size = new System.Drawing.Size(24, 24); + this.btnAmazonS3AccessKeyOpen.TabIndex = 21; + this.btnAmazonS3AccessKeyOpen.Text = "?"; + this.btnAmazonS3AccessKeyOpen.UseVisualStyleBackColor = true; + this.btnAmazonS3AccessKeyOpen.Click += new System.EventHandler(this.btnAmazonS3AccessKeyOpen_Click); + // // cbAmazonS3CustomCNAME // this.cbAmazonS3CustomCNAME.AutoSize = true; @@ -1931,7 +1863,7 @@ private void InitializeComponent() "https://s3.amazonaws.com/"}); this.cbAmazonS3Endpoint.Location = new System.Drawing.Point(108, 78); this.cbAmazonS3Endpoint.Name = "cbAmazonS3Endpoint"; - this.cbAmazonS3Endpoint.Size = new System.Drawing.Size(346, 21); + this.cbAmazonS3Endpoint.Size = new System.Drawing.Size(348, 21); this.cbAmazonS3Endpoint.TabIndex = 19; this.cbAmazonS3Endpoint.SelectionChangeCommitted += new System.EventHandler(this.cbAmazonS3Endpoint_SelectionChangeCommitted); this.cbAmazonS3Endpoint.TextChanged += new System.EventHandler(this.cbAmazonS3Endpoint_TextChanged); @@ -1941,15 +1873,15 @@ private void InitializeComponent() this.lblAmazonS3BucketName.AutoSize = true; this.lblAmazonS3BucketName.Location = new System.Drawing.Point(21, 109); this.lblAmazonS3BucketName.Name = "lblAmazonS3BucketName"; - this.lblAmazonS3BucketName.Size = new System.Drawing.Size(75, 13); + this.lblAmazonS3BucketName.Size = new System.Drawing.Size(73, 13); this.lblAmazonS3BucketName.TabIndex = 18; - this.lblAmazonS3BucketName.Text = "Bucket Name:"; + this.lblAmazonS3BucketName.Text = "Bucket name:"; // // txtAmazonS3BucketName // this.txtAmazonS3BucketName.Location = new System.Drawing.Point(108, 106); this.txtAmazonS3BucketName.Name = "txtAmazonS3BucketName"; - this.txtAmazonS3BucketName.Size = new System.Drawing.Size(184, 20); + this.txtAmazonS3BucketName.Size = new System.Drawing.Size(348, 20); this.txtAmazonS3BucketName.TabIndex = 17; this.txtAmazonS3BucketName.TextChanged += new System.EventHandler(this.txtAmazonS3BucketName_TextChanged); // @@ -1966,10 +1898,9 @@ private void InitializeComponent() // this.txtAmazonS3ObjectPrefix.Location = new System.Drawing.Point(108, 132); this.txtAmazonS3ObjectPrefix.Name = "txtAmazonS3ObjectPrefix"; - this.txtAmazonS3ObjectPrefix.Size = new System.Drawing.Size(184, 20); + this.txtAmazonS3ObjectPrefix.Size = new System.Drawing.Size(348, 20); this.txtAmazonS3ObjectPrefix.TabIndex = 14; - this.ttHelpTip.SetToolTip(this.txtAmazonS3ObjectPrefix, "The name to prefix objects with when storing them. The first \"/\" isn\'t necessary." + - ""); + this.ttHelpTip.SetToolTip(this.txtAmazonS3ObjectPrefix, "The name to prefix objects with when storing them."); this.txtAmazonS3ObjectPrefix.TextChanged += new System.EventHandler(this.txtAmazonS3ObjectPrefix_TextChanged); // // lblAmazonS3ObjectPrefix @@ -1977,9 +1908,9 @@ private void InitializeComponent() this.lblAmazonS3ObjectPrefix.AutoSize = true; this.lblAmazonS3ObjectPrefix.Location = new System.Drawing.Point(26, 135); this.lblAmazonS3ObjectPrefix.Name = "lblAmazonS3ObjectPrefix"; - this.lblAmazonS3ObjectPrefix.Size = new System.Drawing.Size(70, 13); + this.lblAmazonS3ObjectPrefix.Size = new System.Drawing.Size(69, 13); this.lblAmazonS3ObjectPrefix.TabIndex = 13; - this.lblAmazonS3ObjectPrefix.Text = "Object Prefix:"; + this.lblAmazonS3ObjectPrefix.Text = "Object prefix:"; // // cbAmazonS3UseRRS // @@ -1997,7 +1928,7 @@ private void InitializeComponent() // this.txtAmazonS3SecretKey.Location = new System.Drawing.Point(108, 52); this.txtAmazonS3SecretKey.Name = "txtAmazonS3SecretKey"; - this.txtAmazonS3SecretKey.Size = new System.Drawing.Size(346, 20); + this.txtAmazonS3SecretKey.Size = new System.Drawing.Size(348, 20); this.txtAmazonS3SecretKey.TabIndex = 4; this.txtAmazonS3SecretKey.UseSystemPasswordChar = true; this.txtAmazonS3SecretKey.TextChanged += new System.EventHandler(this.txtAmazonS3SecretKey_TextChanged); @@ -2007,24 +1938,24 @@ private void InitializeComponent() this.lblAmazonS3SecretKey.AutoSize = true; this.lblAmazonS3SecretKey.Location = new System.Drawing.Point(34, 55); this.lblAmazonS3SecretKey.Name = "lblAmazonS3SecretKey"; - this.lblAmazonS3SecretKey.Size = new System.Drawing.Size(62, 13); + this.lblAmazonS3SecretKey.Size = new System.Drawing.Size(61, 13); this.lblAmazonS3SecretKey.TabIndex = 3; - this.lblAmazonS3SecretKey.Text = "Secret Key:"; + this.lblAmazonS3SecretKey.Text = "Secret key:"; // // lblAmazonS3AccessKey // this.lblAmazonS3AccessKey.AutoSize = true; this.lblAmazonS3AccessKey.Location = new System.Drawing.Point(30, 26); this.lblAmazonS3AccessKey.Name = "lblAmazonS3AccessKey"; - this.lblAmazonS3AccessKey.Size = new System.Drawing.Size(66, 13); + this.lblAmazonS3AccessKey.Size = new System.Drawing.Size(65, 13); this.lblAmazonS3AccessKey.TabIndex = 1; - this.lblAmazonS3AccessKey.Text = "Access Key:"; + this.lblAmazonS3AccessKey.Text = "Access key:"; // // txtAmazonS3AccessKey // this.txtAmazonS3AccessKey.Location = new System.Drawing.Point(108, 23); this.txtAmazonS3AccessKey.Name = "txtAmazonS3AccessKey"; - this.txtAmazonS3AccessKey.Size = new System.Drawing.Size(346, 20); + this.txtAmazonS3AccessKey.Size = new System.Drawing.Size(348, 20); this.txtAmazonS3AccessKey.TabIndex = 2; this.txtAmazonS3AccessKey.TextChanged += new System.EventHandler(this.txtAmazonS3AccessKey_TextChanged); // @@ -2114,18 +2045,6 @@ private void InitializeComponent() this.cbGoogleDriveIsPublic.UseVisualStyleBackColor = true; this.cbGoogleDriveIsPublic.CheckedChanged += new System.EventHandler(this.cbGoogleDriveIsPublic_CheckedChanged); // - // oauth2GoogleDrive - // - this.oauth2GoogleDrive.Location = new System.Drawing.Point(16, 16); - this.oauth2GoogleDrive.LoginStatus = false; - this.oauth2GoogleDrive.Name = "oauth2GoogleDrive"; - this.oauth2GoogleDrive.Size = new System.Drawing.Size(328, 207); - this.oauth2GoogleDrive.Status = "Status: Login required."; - this.oauth2GoogleDrive.TabIndex = 0; - this.oauth2GoogleDrive.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oauth2GoogleDrive_OpenButtonClicked); - this.oauth2GoogleDrive.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oauth2GoogleDrive_CompleteButtonClicked); - this.oauth2GoogleDrive.RefreshButtonClicked += new UploadersLib.GUI.OAuth2Control.RefreshButtonClickedEventHandler(this.oauth2GoogleDrive_RefreshButtonClicked); - // // tpBox // this.tpBox.Controls.Add(this.txtBoxFolderID); @@ -2347,15 +2266,6 @@ private void InitializeComponent() this.txtSendSpaceUserName.TabIndex = 3; this.txtSendSpaceUserName.TextChanged += new System.EventHandler(this.txtSendSpaceUserName_TextChanged); // - // atcSendSpaceAccountType - // - this.atcSendSpaceAccountType.Location = new System.Drawing.Point(8, 16); - this.atcSendSpaceAccountType.Name = "atcSendSpaceAccountType"; - this.atcSendSpaceAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; - this.atcSendSpaceAccountType.Size = new System.Drawing.Size(214, 29); - this.atcSendSpaceAccountType.TabIndex = 0; - this.atcSendSpaceAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcSendSpaceAccountType_AccountTypeChanged); - // // tpGe_tt // this.tpGe_tt.Controls.Add(this.lblGe_ttAccessToken); @@ -2734,18 +2644,6 @@ private void InitializeComponent() this.lblJiraHost.TabIndex = 0; this.lblJiraHost.Text = "Jira host: "; // - // oAuthJira - // - this.oAuthJira.Location = new System.Drawing.Point(473, 13); - this.oAuthJira.LoginStatus = false; - this.oAuthJira.Name = "oAuthJira"; - this.oAuthJira.Size = new System.Drawing.Size(328, 207); - this.oAuthJira.Status = "Status: Login required."; - this.oAuthJira.TabIndex = 1; - this.oAuthJira.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oAuthJira_OpenButtonClicked); - this.oAuthJira.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oAuthJira_CompleteButtonClicked); - this.oAuthJira.RefreshButtonClicked += new UploadersLib.GUI.OAuth2Control.RefreshButtonClickedEventHandler(this.oAuthJira_RefreshButtonClicked); - // // tpEmail // this.tpEmail.Controls.Add(this.chkEmailConfirm); @@ -2938,15 +2836,6 @@ private void InitializeComponent() this.tlpSharedFolders.Size = new System.Drawing.Size(798, 451); this.tlpSharedFolders.TabIndex = 0; // - // ucLocalhostAccounts - // - this.ucLocalhostAccounts.Dock = System.Windows.Forms.DockStyle.Fill; - this.ucLocalhostAccounts.Location = new System.Drawing.Point(4, 4); - this.ucLocalhostAccounts.Margin = new System.Windows.Forms.Padding(4); - this.ucLocalhostAccounts.Name = "ucLocalhostAccounts"; - this.ucLocalhostAccounts.Size = new System.Drawing.Size(790, 330); - this.ucLocalhostAccounts.TabIndex = 0; - // // gbSharedFolder // this.gbSharedFolder.Controls.Add(this.lblSharedFolderFiles); @@ -3054,18 +2943,6 @@ private void InitializeComponent() this.tpBitly.Text = "bit.ly"; this.tpBitly.UseVisualStyleBackColor = true; // - // oauth2Bitly - // - this.oauth2Bitly.IsRefreshable = false; - this.oauth2Bitly.Location = new System.Drawing.Point(16, 16); - this.oauth2Bitly.LoginStatus = false; - this.oauth2Bitly.Name = "oauth2Bitly"; - this.oauth2Bitly.Size = new System.Drawing.Size(328, 168); - this.oauth2Bitly.Status = "Login required."; - this.oauth2Bitly.TabIndex = 0; - this.oauth2Bitly.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oauth2Bitly_OpenButtonClicked); - this.oauth2Bitly.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oauth2Bitly_CompleteButtonClicked); - // // tpGoogleURLShortener // this.tpGoogleURLShortener.Controls.Add(this.oauth2GoogleURLShortener); @@ -3078,27 +2955,6 @@ private void InitializeComponent() this.tpGoogleURLShortener.Text = "Google"; this.tpGoogleURLShortener.UseVisualStyleBackColor = true; // - // oauth2GoogleURLShortener - // - this.oauth2GoogleURLShortener.Location = new System.Drawing.Point(16, 56); - this.oauth2GoogleURLShortener.LoginStatus = false; - this.oauth2GoogleURLShortener.Name = "oauth2GoogleURLShortener"; - this.oauth2GoogleURLShortener.Size = new System.Drawing.Size(328, 207); - this.oauth2GoogleURLShortener.Status = "Status: Login required."; - this.oauth2GoogleURLShortener.TabIndex = 1; - this.oauth2GoogleURLShortener.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oauth2GoogleURLShortener_OpenButtonClicked); - this.oauth2GoogleURLShortener.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oauth2GoogleURLShortener_CompleteButtonClicked); - this.oauth2GoogleURLShortener.RefreshButtonClicked += new UploadersLib.GUI.OAuth2Control.RefreshButtonClickedEventHandler(this.oauth2GoogleURLShortener_RefreshButtonClicked); - // - // atcGoogleURLShortenerAccountType - // - this.atcGoogleURLShortenerAccountType.Location = new System.Drawing.Point(8, 16); - this.atcGoogleURLShortenerAccountType.Name = "atcGoogleURLShortenerAccountType"; - this.atcGoogleURLShortenerAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; - this.atcGoogleURLShortenerAccountType.Size = new System.Drawing.Size(214, 29); - this.atcGoogleURLShortenerAccountType.TabIndex = 0; - this.atcGoogleURLShortenerAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcGoogleURLShortenerAccountType_AccountTypeChanged); - // // tpYourls // this.tpYourls.Controls.Add(this.txtYourlsPassword); @@ -3239,14 +3095,6 @@ private void InitializeComponent() this.btnTwitterLogin.UseVisualStyleBackColor = true; this.btnTwitterLogin.Click += new System.EventHandler(this.btnTwitterLogin_Click); // - // ucTwitterAccounts - // - this.ucTwitterAccounts.Dock = System.Windows.Forms.DockStyle.Fill; - this.ucTwitterAccounts.Location = new System.Drawing.Point(3, 3); - this.ucTwitterAccounts.Name = "ucTwitterAccounts"; - this.ucTwitterAccounts.Size = new System.Drawing.Size(798, 469); - this.ucTwitterAccounts.TabIndex = 0; - // // tpCustomUploaders // this.tpCustomUploaders.Controls.Add(this.btnCustomUploaderHelp); @@ -3838,6 +3686,171 @@ private void InitializeComponent() this.ttHelpTip.UseAnimation = false; this.ttHelpTip.UseFading = false; // + // oauth2Imgur + // + this.oauth2Imgur.Location = new System.Drawing.Point(16, 16); + this.oauth2Imgur.LoginStatus = false; + this.oauth2Imgur.Name = "oauth2Imgur"; + this.oauth2Imgur.Size = new System.Drawing.Size(328, 207); + this.oauth2Imgur.Status = "Status: Login required."; + this.oauth2Imgur.TabIndex = 6; + this.oauth2Imgur.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oauth2Imgur_OpenButtonClicked); + this.oauth2Imgur.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oauth2Imgur_CompleteButtonClicked); + this.oauth2Imgur.RefreshButtonClicked += new UploadersLib.GUI.OAuth2Control.RefreshButtonClickedEventHandler(this.oauth2Imgur_RefreshButtonClicked); + // + // atcImgurAccountType + // + this.atcImgurAccountType.Location = new System.Drawing.Point(8, 232); + this.atcImgurAccountType.Name = "atcImgurAccountType"; + this.atcImgurAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; + this.atcImgurAccountType.Size = new System.Drawing.Size(272, 29); + this.atcImgurAccountType.TabIndex = 0; + this.atcImgurAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcImgurAccountType_AccountTypeChanged); + // + // atcImageShackAccountType + // + this.atcImageShackAccountType.Location = new System.Drawing.Point(8, 16); + this.atcImageShackAccountType.Name = "atcImageShackAccountType"; + this.atcImageShackAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; + this.atcImageShackAccountType.Size = new System.Drawing.Size(272, 29); + this.atcImageShackAccountType.TabIndex = 10; + this.atcImageShackAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcImageShackAccountType_AccountTypeChanged); + // + // atcTinyPicAccountType + // + this.atcTinyPicAccountType.Location = new System.Drawing.Point(8, 16); + this.atcTinyPicAccountType.Name = "atcTinyPicAccountType"; + this.atcTinyPicAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; + this.atcTinyPicAccountType.Size = new System.Drawing.Size(272, 29); + this.atcTinyPicAccountType.TabIndex = 0; + this.atcTinyPicAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcTinyPicAccountType_AccountTypeChanged); + // + // oauth2Picasa + // + this.oauth2Picasa.Location = new System.Drawing.Point(16, 16); + this.oauth2Picasa.LoginStatus = false; + this.oauth2Picasa.Name = "oauth2Picasa"; + this.oauth2Picasa.Size = new System.Drawing.Size(328, 207); + this.oauth2Picasa.Status = "Login required."; + this.oauth2Picasa.TabIndex = 0; + this.oauth2Picasa.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oauth2Picasa_OpenButtonClicked); + this.oauth2Picasa.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oauth2Picasa_CompleteButtonClicked); + this.oauth2Picasa.RefreshButtonClicked += new UploadersLib.GUI.OAuth2Control.RefreshButtonClickedEventHandler(this.oauth2Picasa_RefreshButtonClicked); + // + // oAuth2Gist + // + this.oAuth2Gist.Enabled = false; + this.oAuth2Gist.IsRefreshable = false; + this.oAuth2Gist.Location = new System.Drawing.Point(16, 51); + this.oAuth2Gist.LoginStatus = false; + this.oAuth2Gist.Name = "oAuth2Gist"; + this.oAuth2Gist.Size = new System.Drawing.Size(328, 173); + this.oAuth2Gist.Status = "Status: Login required."; + this.oAuth2Gist.TabIndex = 16; + this.oAuth2Gist.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oAuth2Gist_OpenButtonClicked); + this.oAuth2Gist.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oAuth2Gist_CompleteButtonClicked); + // + // atcGistAccountType + // + this.atcGistAccountType.Location = new System.Drawing.Point(15, 16); + this.atcGistAccountType.Name = "atcGistAccountType"; + this.atcGistAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; + this.atcGistAccountType.Size = new System.Drawing.Size(214, 29); + this.atcGistAccountType.TabIndex = 15; + this.atcGistAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcGistAccountType_AccountTypeChanged); + // + // ucFTPAccounts + // + this.ucFTPAccounts.Dock = System.Windows.Forms.DockStyle.Fill; + this.ucFTPAccounts.Location = new System.Drawing.Point(0, 0); + this.ucFTPAccounts.Margin = new System.Windows.Forms.Padding(4); + this.ucFTPAccounts.Name = "ucFTPAccounts"; + this.ucFTPAccounts.Size = new System.Drawing.Size(792, 332); + this.ucFTPAccounts.TabIndex = 0; + // + // oauth2GoogleDrive + // + this.oauth2GoogleDrive.Location = new System.Drawing.Point(16, 16); + this.oauth2GoogleDrive.LoginStatus = false; + this.oauth2GoogleDrive.Name = "oauth2GoogleDrive"; + this.oauth2GoogleDrive.Size = new System.Drawing.Size(328, 207); + this.oauth2GoogleDrive.Status = "Status: Login required."; + this.oauth2GoogleDrive.TabIndex = 0; + this.oauth2GoogleDrive.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oauth2GoogleDrive_OpenButtonClicked); + this.oauth2GoogleDrive.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oauth2GoogleDrive_CompleteButtonClicked); + this.oauth2GoogleDrive.RefreshButtonClicked += new UploadersLib.GUI.OAuth2Control.RefreshButtonClickedEventHandler(this.oauth2GoogleDrive_RefreshButtonClicked); + // + // atcSendSpaceAccountType + // + this.atcSendSpaceAccountType.Location = new System.Drawing.Point(8, 16); + this.atcSendSpaceAccountType.Name = "atcSendSpaceAccountType"; + this.atcSendSpaceAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; + this.atcSendSpaceAccountType.Size = new System.Drawing.Size(214, 29); + this.atcSendSpaceAccountType.TabIndex = 0; + this.atcSendSpaceAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcSendSpaceAccountType_AccountTypeChanged); + // + // oAuthJira + // + this.oAuthJira.Location = new System.Drawing.Point(473, 13); + this.oAuthJira.LoginStatus = false; + this.oAuthJira.Name = "oAuthJira"; + this.oAuthJira.Size = new System.Drawing.Size(328, 207); + this.oAuthJira.Status = "Status: Login required."; + this.oAuthJira.TabIndex = 1; + this.oAuthJira.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oAuthJira_OpenButtonClicked); + this.oAuthJira.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oAuthJira_CompleteButtonClicked); + this.oAuthJira.RefreshButtonClicked += new UploadersLib.GUI.OAuth2Control.RefreshButtonClickedEventHandler(this.oAuthJira_RefreshButtonClicked); + // + // ucLocalhostAccounts + // + this.ucLocalhostAccounts.Dock = System.Windows.Forms.DockStyle.Fill; + this.ucLocalhostAccounts.Location = new System.Drawing.Point(4, 4); + this.ucLocalhostAccounts.Margin = new System.Windows.Forms.Padding(4); + this.ucLocalhostAccounts.Name = "ucLocalhostAccounts"; + this.ucLocalhostAccounts.Size = new System.Drawing.Size(790, 330); + this.ucLocalhostAccounts.TabIndex = 0; + // + // oauth2Bitly + // + this.oauth2Bitly.IsRefreshable = false; + this.oauth2Bitly.Location = new System.Drawing.Point(16, 16); + this.oauth2Bitly.LoginStatus = false; + this.oauth2Bitly.Name = "oauth2Bitly"; + this.oauth2Bitly.Size = new System.Drawing.Size(328, 168); + this.oauth2Bitly.Status = "Login required."; + this.oauth2Bitly.TabIndex = 0; + this.oauth2Bitly.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oauth2Bitly_OpenButtonClicked); + this.oauth2Bitly.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oauth2Bitly_CompleteButtonClicked); + // + // oauth2GoogleURLShortener + // + this.oauth2GoogleURLShortener.Location = new System.Drawing.Point(16, 56); + this.oauth2GoogleURLShortener.LoginStatus = false; + this.oauth2GoogleURLShortener.Name = "oauth2GoogleURLShortener"; + this.oauth2GoogleURLShortener.Size = new System.Drawing.Size(328, 207); + this.oauth2GoogleURLShortener.Status = "Status: Login required."; + this.oauth2GoogleURLShortener.TabIndex = 1; + this.oauth2GoogleURLShortener.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oauth2GoogleURLShortener_OpenButtonClicked); + this.oauth2GoogleURLShortener.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oauth2GoogleURLShortener_CompleteButtonClicked); + this.oauth2GoogleURLShortener.RefreshButtonClicked += new UploadersLib.GUI.OAuth2Control.RefreshButtonClickedEventHandler(this.oauth2GoogleURLShortener_RefreshButtonClicked); + // + // atcGoogleURLShortenerAccountType + // + this.atcGoogleURLShortenerAccountType.Location = new System.Drawing.Point(8, 16); + this.atcGoogleURLShortenerAccountType.Name = "atcGoogleURLShortenerAccountType"; + this.atcGoogleURLShortenerAccountType.SelectedAccountType = UploadersLib.AccountType.Anonymous; + this.atcGoogleURLShortenerAccountType.Size = new System.Drawing.Size(214, 29); + this.atcGoogleURLShortenerAccountType.TabIndex = 0; + this.atcGoogleURLShortenerAccountType.AccountTypeChanged += new UploadersLib.GUI.AccountTypeControl.AccountTypeChangedEventHandler(this.atcGoogleURLShortenerAccountType_AccountTypeChanged); + // + // ucTwitterAccounts + // + this.ucTwitterAccounts.Dock = System.Windows.Forms.DockStyle.Fill; + this.ucTwitterAccounts.Location = new System.Drawing.Point(3, 3); + this.ucTwitterAccounts.Name = "ucTwitterAccounts"; + this.ucTwitterAccounts.Size = new System.Drawing.Size(798, 469); + this.ucTwitterAccounts.TabIndex = 0; + // // actRapidShareAccountType // this.actRapidShareAccountType.Location = new System.Drawing.Point(8, 16); @@ -3846,6 +3859,16 @@ private void InitializeComponent() this.actRapidShareAccountType.Size = new System.Drawing.Size(214, 29); this.actRapidShareAccountType.TabIndex = 16; // + // btnAmazonS3BucketNameOpen + // + this.btnAmazonS3BucketNameOpen.Location = new System.Drawing.Point(464, 104); + this.btnAmazonS3BucketNameOpen.Name = "btnAmazonS3BucketNameOpen"; + this.btnAmazonS3BucketNameOpen.Size = new System.Drawing.Size(24, 24); + this.btnAmazonS3BucketNameOpen.TabIndex = 22; + this.btnAmazonS3BucketNameOpen.Text = "?"; + this.btnAmazonS3BucketNameOpen.UseVisualStyleBackColor = true; + this.btnAmazonS3BucketNameOpen.Click += new System.EventHandler(this.btnAmazonS3BucketNameOpen_Click); + // // UploadersConfigForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -4292,5 +4315,7 @@ private void InitializeComponent() private System.Windows.Forms.Button btnPushbulletGetDeviceList; private System.Windows.Forms.Label lblPushbulletUserKey; private System.Windows.Forms.TextBox txtPushbulletUserKey; + private System.Windows.Forms.Button btnAmazonS3AccessKeyOpen; + private System.Windows.Forms.Button btnAmazonS3BucketNameOpen; } } \ No newline at end of file diff --git a/UploadersLib/GUI/UploadersConfigForm.cs b/UploadersLib/GUI/UploadersConfigForm.cs index f9b62ec52..da5eaf264 100644 --- a/UploadersLib/GUI/UploadersConfigForm.cs +++ b/UploadersLib/GUI/UploadersConfigForm.cs @@ -950,16 +950,16 @@ private void txtAmazonS3AccessKey_TextChanged(object sender, EventArgs e) Config.AmazonS3Settings.AccessKeyID = txtAmazonS3AccessKey.Text; } + private void btnAmazonS3AccessKeyOpen_Click(object sender, EventArgs e) + { + Helpers.LoadBrowserAsync("https://console.aws.amazon.com/iam/home?#security_credential"); + } + private void txtAmazonS3SecretKey_TextChanged(object sender, EventArgs e) { Config.AmazonS3Settings.SecretAccessKey = txtAmazonS3SecretKey.Text; } - private void txtAmazonS3ObjectPrefix_TextChanged(object sender, EventArgs e) - { - Config.AmazonS3Settings.ObjectPrefix = txtAmazonS3ObjectPrefix.Text; - } - private void cbAmazonS3Endpoint_SelectionChangeCommitted(object sender, EventArgs e) { Config.AmazonS3Settings.Endpoint = cbAmazonS3Endpoint.Text; @@ -975,6 +975,16 @@ private void txtAmazonS3BucketName_TextChanged(object sender, EventArgs e) Config.AmazonS3Settings.Bucket = txtAmazonS3BucketName.Text; } + private void btnAmazonS3BucketNameOpen_Click(object sender, EventArgs e) + { + Helpers.LoadBrowserAsync("https://console.aws.amazon.com/s3/home"); + } + + private void txtAmazonS3ObjectPrefix_TextChanged(object sender, EventArgs e) + { + Config.AmazonS3Settings.ObjectPrefix = txtAmazonS3ObjectPrefix.Text; + } + private void cbAmazonS3UseRRS_CheckedChanged(object sender, EventArgs e) { Config.AmazonS3Settings.UseReducedRedundancyStorage = cbAmazonS3UseRRS.Checked; diff --git a/UploadersLib/GUI/UploadersConfigForm.resx b/UploadersLib/GUI/UploadersConfigForm.resx index 8986f98c7..729e9c971 100644 --- a/UploadersLib/GUI/UploadersConfigForm.resx +++ b/UploadersLib/GUI/UploadersConfigForm.resx @@ -242,9 +242,6 @@ With this option, objects are cheaper to store, but have 99.99% durability, instead of 99.999999999%. This means that they may be lost from Amazon S3 at some point. - - 17, 17 - 72 diff --git a/UploadersLib/UploadersConfig.cs b/UploadersLib/UploadersConfig.cs index 87338c81d..afaf84293 100644 --- a/UploadersLib/UploadersConfig.cs +++ b/UploadersLib/UploadersConfig.cs @@ -118,7 +118,7 @@ public class UploadersConfig : SettingsBase public OAuthInfo DropboxOAuthInfo = null; public DropboxAccountInfo DropboxAccountInfo = null; - public string DropboxUploadPath = "Public/" + Application.ProductName + "/%y-%mo"; + public string DropboxUploadPath = "Public/ShareX/%y/%mo"; public bool DropboxAutoCreateShareableLink = false; public bool DropboxShortURL = true; @@ -202,7 +202,7 @@ public class UploadersConfig : SettingsBase public AmazonS3Settings AmazonS3Settings = new AmazonS3Settings() { - ObjectPrefix = Application.ProductName + "/%y-%mo/", + ObjectPrefix = "ShareX/%y/%mo", UseReducedRedundancyStorage = true };