/UploadersLib/GUI/UploadersConfigForm.cs
C# | 2104 lines | 1622 code | 427 blank | 55 comment | 138 complexity | 8c40180bfc0b17097b21de91b12ce9ed MD5 | raw file
Possible License(s): GPL-3.0
Large files files are truncated, but you can click here to view the full file
- #region License Information (GPL v3)
- /*
- ShareX - A program that allows you to take screenshots and share any file type
- Copyright (C) 2007-2014 ShareX Developers
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- Optionally you can also view the license at <http://www.gnu.org/licenses/>.
- */
- #endregion License Information (GPL v3)
- using CG.Web.MegaApiClient;
- using HelpersLib;
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Linq;
- using System.Windows.Forms;
- using UploadersLib.FileUploaders;
- using UploadersLib.HelperClasses;
- using UploadersLib.ImageUploaders;
- using UploadersLib.Properties;
- namespace UploadersLib
- {
- public partial class UploadersConfigForm : Form
- {
- public UploadersConfig Config { get; private set; }
- public UploadersConfigForm(UploadersConfig uploadersConfig)
- {
- Config = uploadersConfig;
- InitializeComponent();
- string title = "ShareX - Outputs Configuration";
- if (!string.IsNullOrEmpty(Config.FilePath))
- {
- title += " - " + Config.FilePath;
- }
- Text = title;
- Icon = ShareXResources.Icon;
- }
- private void UploadersConfigForm_Shown(object sender, EventArgs e)
- {
- FormSettings();
- LoadSettings(Config);
- }
- private void UploadersConfigForm_Resize(object sender, EventArgs e)
- {
- Refresh();
- }
- private void FormSettings()
- {
- ImageList uploadersImageList = new ImageList();
- uploadersImageList.ColorDepth = ColorDepth.Depth32Bit;
- uploadersImageList.Images.Add("ImageShack", Resources.ImageShack);
- uploadersImageList.Images.Add("TinyPic", Resources.TinyPic);
- uploadersImageList.Images.Add("Imgur", Resources.Imgur);
- uploadersImageList.Images.Add("Flickr", Resources.Flickr);
- uploadersImageList.Images.Add("Photobucket", Resources.Photobucket);
- uploadersImageList.Images.Add("Picasa", Resources.Picasa);
- uploadersImageList.Images.Add("TwitPic", Resources.TwitPic);
- uploadersImageList.Images.Add("TwitSnaps", Resources.TwitSnaps);
- uploadersImageList.Images.Add("YFrog", Resources.YFrog);
- uploadersImageList.Images.Add("Dropbox", Resources.Dropbox);
- uploadersImageList.Images.Add("Copy", Resources.Copy);
- uploadersImageList.Images.Add("GoogleDrive", Resources.GoogleDrive);
- uploadersImageList.Images.Add("Box", Resources.Box);
- uploadersImageList.Images.Add("Minus", Resources.Minus);
- uploadersImageList.Images.Add("FTP", Resources.folder_network);
- uploadersImageList.Images.Add("RapidShare", Resources.RapidShare);
- uploadersImageList.Images.Add("SendSpace", Resources.SendSpace);
- uploadersImageList.Images.Add("Gett", Resources.Gett);
- uploadersImageList.Images.Add("Localhostr", Resources.Localhostr);
- uploadersImageList.Images.Add("CustomUploader", Resources.globe_network);
- uploadersImageList.Images.Add("SharedFolders", Resources.server_network);
- uploadersImageList.Images.Add("Email", Resources.mail);
- uploadersImageList.Images.Add("Jira", Resources.jira);
- uploadersImageList.Images.Add("Mega", Resources.Mega);
- uploadersImageList.Images.Add("AmazonS3", Resources.AmazonS3);
- uploadersImageList.Images.Add("Pushbullet", Resources.Pushbullet);
- uploadersImageList.Images.Add("Pastebin", Resources.Pastebin);
- uploadersImageList.Images.Add("Gist", Resources.GitHub);
- uploadersImageList.Images.Add("Upaste", Resources.Upaste);
- uploadersImageList.Images.Add("Google", Resources.Google);
- uploadersImageList.Images.Add("Bitly", Resources.Bitly);
- uploadersImageList.Images.Add("Yourls", Resources.Yourls);
- uploadersImageList.Images.Add("Twitter", Resources.Twitter);
- tpImageShack.ImageKey = "ImageShack";
- tpTinyPic.ImageKey = "TinyPic";
- tpImgur.ImageKey = "Imgur";
- tpFlickr.ImageKey = "Flickr";
- tpPhotobucket.ImageKey = "Photobucket";
- tpPicasa.ImageKey = "Picasa";
- tpTwitPic.ImageKey = "TwitPic";
- tpTwitSnaps.ImageKey = "TwitSnaps";
- tpYFrog.ImageKey = "YFrog";
- tpDropbox.ImageKey = "Dropbox";
- tpCopy.ImageKey = "Copy";
- tpGoogleDrive.ImageKey = "GoogleDrive";
- tpBox.ImageKey = "Box";
- tpMinus.ImageKey = "Minus";
- tpFTP.ImageKey = "FTP";
- tpRapidShare.ImageKey = "RapidShare";
- tpSendSpace.ImageKey = "SendSpace";
- tpSharedFolder.ImageKey = "SharedFolders";
- tpEmail.ImageKey = "Email";
- tpJira.ImageKey = "Jira";
- tpGe_tt.ImageKey = "Gett";
- tpHostr.ImageKey = "Localhostr";
- tpCustomUploaders.ImageKey = "CustomUploader";
- tpPastebin.ImageKey = "Pastebin";
- tpPushbullet.ImageKey = "Pushbullet";
- tpGoogleURLShortener.ImageKey = "Google";
- tpBitly.ImageKey = "Bitly";
- tpYourls.ImageKey = "Yourls";
- tpTwitter.ImageKey = "Twitter";
- tpMega.ImageKey = "Mega";
- tpGist.ImageKey = "Gist";
- tpUpaste.ImageKey = "Upaste";
- tpAmazonS3.ImageKey = "AmazonS3";
- ttlvMain.ImageList = uploadersImageList;
- ttlvMain.MainTabControl = tcUploaders;
- ttlvMain.FocusListView();
- NameParser.CreateCodesMenu(txtDropboxPath, ReplacementVariables.n, ReplacementVariables.t, ReplacementVariables.pn);
- NameParser.CreateCodesMenu(txtAmazonS3ObjectPrefix, ReplacementVariables.n, ReplacementVariables.t, ReplacementVariables.pn);
- NameParser.CreateCodesMenu(txtCustomUploaderArgValue, ReplacementVariables.n);
- txtCustomUploaderLog.AddContextMenu();
- // FTP
- ucFTPAccounts.btnAdd.Click += FTPAccountAddButton_Click;
- ucFTPAccounts.btnRemove.Click += FTPAccountRemoveButton_Click;
- ucFTPAccounts.btnDuplicate.Click += FTPAccountDuplicateButton_Click;
- ucFTPAccounts.btnTest.Click += FTPAccountTestButton_Click;
- ucFTPAccounts.pgSettings.PropertyValueChanged += FtpAccountSettingsGrid_PropertyValueChanged;
- // Localhost
- ucLocalhostAccounts.btnAdd.Click += LocalhostAccountAddButton_Click;
- ucLocalhostAccounts.btnRemove.Click += LocalhostAccountRemoveButton_Click;
- ucLocalhostAccounts.btnDuplicate.Click += LocalhostAccountDuplicateButton_Click;
- ucLocalhostAccounts.btnTest.Visible = false;
- ucLocalhostAccounts.pgSettings.PropertyValueChanged += SettingsGrid_LocalhostPropertyValueChanged;
- // Twitter
- ucTwitterAccounts.btnAdd.Click += TwitterAccountAddButton_Click;
- ucTwitterAccounts.btnRemove.Click += TwitterAccountRemoveButton_Click;
- ucTwitterAccounts.btnDuplicate.Click += TwitterAccountDuplicateButton_Click;
- ucTwitterAccounts.btnTest.Text = "Authorize";
- ucTwitterAccounts.btnTest.Click += TwitterAccountAuthButton_Click;
- ucTwitterAccounts.lbAccounts.SelectedIndexChanged += TwitterAccountSelectedIndexChanged;
- eiFTP.ObjectType = typeof(FTPAccount);
- eiCustomUploaders.ObjectType = typeof(CustomUploaderItem);
- }
- public void LoadSettings(UploadersConfig uploadersConfig)
- {
- #region Image uploaders
- // ImageShack
- atcImageShackAccountType.SelectedAccountType = Config.ImageShackSettings.AccountType;
- txtImageShackUsername.Text = Config.ImageShackSettings.Username;
- txtImageShackPassword.Text = Config.ImageShackSettings.Password;
- cbImageShackIsPublic.Checked = Config.ImageShackSettings.IsPublic;
- // TinyPic
- atcTinyPicAccountType.SelectedAccountType = Config.TinyPicAccountType;
- txtTinyPicUsername.Text = Config.TinyPicUsername;
- txtTinyPicPassword.Text = Config.TinyPicPassword;
- // Imgur
- atcImgurAccountType.SelectedAccountType = Config.ImgurAccountType;
- cbImgurThumbnailType.Items.Clear();
- cbImgurThumbnailType.Items.AddRange(Helpers.GetEnumDescriptions<ImgurThumbnailType>());
- cbImgurThumbnailType.SelectedIndex = (int)Config.ImgurThumbnailType;
- txtImgurAlbumID.Text = Config.ImgurAlbumID;
- if (OAuth2Info.CheckOAuth(Config.ImgurOAuth2Info))
- {
- oauth2Imgur.Status = "Login successful.";
- oauth2Imgur.LoginStatus = true;
- btnImgurRefreshAlbumList.Enabled = true;
- }
- // Photobucket
- if (OAuthInfo.CheckOAuth(Config.PhotobucketOAuthInfo))
- {
- lblPhotobucketAccountStatus.Text = "Login successful.";
- txtPhotobucketDefaultAlbumName.Text = Config.PhotobucketAccountInfo.AlbumID;
- lblPhotobucketParentAlbumPath.Text = "Parent album path e.g. " + Config.PhotobucketAccountInfo.AlbumID + "/Personal/" + DateTime.Now.Year;
- }
- if (Config.PhotobucketAccountInfo != null)
- {
- cboPhotobucketAlbumPaths.Items.Clear();
- if (Config.PhotobucketAccountInfo.AlbumList.Count > 0)
- {
- cboPhotobucketAlbumPaths.Items.AddRange(Config.PhotobucketAccountInfo.AlbumList.ToArray());
- cboPhotobucketAlbumPaths.SelectedIndex = Config.PhotobucketAccountInfo.ActiveAlbumID.
- BetweenOrDefault(0, Config.PhotobucketAccountInfo.AlbumList.Count - 1);
- }
- }
- // Picasa
- if (OAuth2Info.CheckOAuth(Config.PicasaOAuth2Info))
- {
- oauth2Picasa.Status = "Login successful.";
- oauth2Picasa.LoginStatus = true;
- btnPicasaRefreshAlbumList.Enabled = true;
- }
- txtPicasaAlbumID.Text = Config.PicasaAlbumID;
- // Flickr
- pgFlickrAuthInfo.SelectedObject = Config.FlickrAuthInfo;
- pgFlickrSettings.SelectedObject = Config.FlickrSettings;
- // TwitPic
- chkTwitPicShowFull.Checked = Config.TwitPicShowFull;
- cboTwitPicThumbnailMode.Items.Clear();
- cboTwitPicThumbnailMode.Items.AddRange(Helpers.GetEnumDescriptions<TwitPicThumbnailType>());
- cboTwitPicThumbnailMode.SelectedIndex = (int)Config.TwitPicThumbnailMode;
- // YFrog
- txtYFrogUsername.Text = Config.YFrogUsername;
- txtYFrogPassword.Text = Config.YFrogPassword;
- #endregion Image uploaders
- #region Text uploaders
- // Pastebin
- pgPastebinSettings.SelectedObject = Config.PastebinSettings;
- // Paste.ee
- txtPaste_eeUserAPIKey.Text = Config.Paste_eeUserAPIKey;
- // Gist
- atcGistAccountType.SelectedAccountType = Config.GistAnonymousLogin ? AccountType.Anonymous : AccountType.User;
- chkGistPublishPublic.Checked = Config.GistPublishPublic;
- if (OAuth2Info.CheckOAuth(Config.GistOAuth2Info))
- {
- oAuth2Gist.Status = "Login successful.";
- oAuth2Gist.LoginStatus = true;
- }
- // Upaste
- txtUpasteUserKey.Text = Config.UpasteUserKey;
- cbUpasteIsPublic.Checked = Config.UpasteIsPublic;
- #endregion Text uploaders
- #region File uploaders
- // Dropbox
- if (OAuth2Info.CheckOAuth(Config.DropboxOAuth2Info))
- {
- oauth2Dropbox.Status = "Login successful.";
- oauth2Dropbox.LoginStatus = true;
- }
- txtDropboxPath.Text = Config.DropboxUploadPath;
- cbDropboxAutoCreateShareableLink.Checked = Config.DropboxAutoCreateShareableLink;
- cbDropboxURLType.Enabled = Config.DropboxAutoCreateShareableLink;
- cbDropboxURLType.Items.AddRange(Helpers.GetEnumNamesProper<DropboxURLType>());
- cbDropboxURLType.SelectedIndex = (int)Config.DropboxURLType;
- UpdateDropboxStatus();
- // Copy
- if (OAuthInfo.CheckOAuth(Config.CopyOAuthInfo))
- {
- oAuthCopy.Status = "Login successful.";
- oAuthCopy.LoginStatus = true;
- }
- txtCopyPath.Text = Config.CopyUploadPath;
- cbCopyURLType.Items.AddRange(Helpers.GetEnumNamesProper<CopyURLType>());
- cbCopyURLType.SelectedIndex = (int)Config.CopyURLType;
- UpdateCopyStatus();
- // Google Drive
- if (OAuth2Info.CheckOAuth(Config.GoogleDriveOAuth2Info))
- {
- oauth2GoogleDrive.Status = "Login successful.";
- oauth2GoogleDrive.LoginStatus = true;
- }
- cbGoogleDriveIsPublic.Checked = Config.GoogleDriveIsPublic;
- // Minus
- cbMinusURLType.Items.Clear();
- cbMinusURLType.Items.AddRange(Enum.GetNames(typeof(MinusLinkType)));
- MinusUpdateControls();
- // Box
- if (OAuth2Info.CheckOAuth(Config.BoxOAuth2Info))
- {
- oauth2Box.Status = "Login successful.";
- oauth2Box.LoginStatus = true;
- btnBoxRefreshFolders.Enabled = true;
- }
- cbBoxShare.Checked = Config.BoxShare;
- lblBoxFolderID.Text = "Selected folder: " + Config.BoxSelectedFolder.name;
- // Ge.tt
- if (Config.Ge_ttLogin != null && !string.IsNullOrEmpty(Config.Ge_ttLogin.AccessToken))
- {
- lblGe_ttStatus.Text = "Login successful.";
- }
- // Localhostr
- txtLocalhostrEmail.Text = Config.LocalhostrEmail;
- txtLocalhostrPassword.Text = Config.LocalhostrPassword;
- cbLocalhostrDirectURL.Checked = Config.LocalhostrDirectURL;
- // FTP
- if (Config.FTPAccountList == null || Config.FTPAccountList.Count == 0)
- {
- FTPSetup(new List<FTPAccount>());
- }
- else
- {
- FTPSetup(Config.FTPAccountList);
- if (ucFTPAccounts.lbAccounts.Items.Count > 0)
- {
- ucFTPAccounts.lbAccounts.SelectedIndex = 0;
- }
- }
- // Email
- txtEmailSmtpServer.Text = Config.EmailSmtpServer;
- nudEmailSmtpPort.Value = Config.EmailSmtpPort;
- txtEmailFrom.Text = Config.EmailFrom;
- txtEmailPassword.Text = Config.EmailPassword;
- chkEmailConfirm.Checked = Config.EmailConfirmSend;
- cbEmailRememberLastTo.Checked = Config.EmailRememberLastTo;
- txtEmailDefaultSubject.Text = Config.EmailDefaultSubject;
- txtEmailDefaultBody.Text = Config.EmailDefaultBody;
- // RapidShare
- txtRapidShareUsername.Text = Config.RapidShareUsername;
- txtRapidSharePassword.Text = Config.RapidSharePassword;
- txtRapidShareFolderID.Text = Config.RapidShareFolderID;
- // SendSpace
- atcSendSpaceAccountType.SelectedAccountType = Config.SendSpaceAccountType;
- txtSendSpacePassword.Text = Config.SendSpacePassword;
- txtSendSpaceUserName.Text = Config.SendSpaceUsername;
- // Localhost
- if (Config.LocalhostAccountList == null || Config.LocalhostAccountList.Count == 0)
- {
- LocalhostAccountsSetup(new List<LocalhostAccount>());
- }
- else
- {
- LocalhostAccountsSetup(Config.LocalhostAccountList);
- if (ucLocalhostAccounts.lbAccounts.Items.Count > 0)
- {
- ucLocalhostAccounts.lbAccounts.SelectedIndex = 0;
- cboSharedFolderImages.SelectedIndex = Config.LocalhostSelectedImages.Between(0, ucLocalhostAccounts.lbAccounts.Items.Count - 1);
- cboSharedFolderText.SelectedIndex = Config.LocalhostSelectedText.Between(0, ucLocalhostAccounts.lbAccounts.Items.Count - 1);
- cboSharedFolderFiles.SelectedIndex = Config.LocalhostSelectedFiles.Between(0, ucLocalhostAccounts.lbAccounts.Items.Count - 1);
- }
- }
- // Custom uploaders
- lbCustomUploaderList.Items.Clear();
- if (Config.CustomUploadersList == null)
- {
- Config.CustomUploadersList = new List<CustomUploaderItem>();
- }
- else
- {
- foreach (CustomUploaderItem customUploader in Config.CustomUploadersList)
- {
- lbCustomUploaderList.Items.Add(customUploader.Name);
- }
- PrepareCustomUploaderList();
- }
- cbCustomUploaderRequestType.Items.AddRange(Enum.GetNames(typeof(CustomUploaderRequestType)));
- cbCustomUploaderResponseType.Items.AddRange(Helpers.GetEnumDescriptions<ResponseType>());
- CustomUploaderClear();
- // Jira
- txtJiraHost.Text = Config.JiraHost;
- txtJiraIssuePrefix.Text = Config.JiraIssuePrefix;
- txtJiraConfigHelp.Text = string.Format(@"Howto configure your Jira server:
- - Go to 'Administration' -> 'Add-ons'
- - Select 'Application Links'
- - Add a new 'Application Link' with following settings:
- - Server URL: {0}
- - Application Name: {1}
- - Application Type: Generic Application
- - Now, you have to configure Incoming Authentication
- - Consumer Key: {2}
- - Consumer Name: {1}
- - Public Key (without quotes): '{3}'
- - You can now authenticate to Jira", Links.URL_WEBSITE, Application.ProductName, APIKeys.JiraConsumerKey, Jira.PublicKey);
- if (OAuthInfo.CheckOAuth(Config.JiraOAuthInfo))
- {
- oAuthJira.Status = "Login successful.";
- oAuthJira.LoginStatus = true;
- }
- // Mega
- MegaConfigureTab(false);
- //Pushbullet
- txtPushbulletUserKey.Text = Config.PushbulletSettings.UserAPIKey;
- if (Config.PushbulletSettings.DeviceList.Count > 0)
- {
- Config.PushbulletSettings.DeviceList.ForEach(x => cboPushbulletDevices.Items.Add(x.Name ?? "Invalid device name"));
- if (Config.PushbulletSettings.DeviceList.IsValidIndex(Config.PushbulletSettings.SelectedDevice))
- {
- cboPushbulletDevices.SelectedIndex = Config.PushbulletSettings.SelectedDevice;
- }
- else
- {
- cboPushbulletDevices.SelectedIndex = 0;
- }
- }
- // Amazon S3
- txtAmazonS3AccessKey.Text = Config.AmazonS3Settings.AccessKeyID;
- txtAmazonS3SecretKey.Text = Config.AmazonS3Settings.SecretAccessKey;
- cbAmazonS3Endpoint.Text = Config.AmazonS3Settings.Endpoint;
- txtAmazonS3BucketName.Text = Config.AmazonS3Settings.Bucket;
- txtAmazonS3ObjectPrefix.Text = Config.AmazonS3Settings.ObjectPrefix;
- cbAmazonS3CustomCNAME.Checked = Config.AmazonS3Settings.UseCustomCNAME;
- txtAmazonS3CustomDomain.Enabled = Config.AmazonS3Settings.UseCustomCNAME;
- txtAmazonS3CustomDomain.Text = Config.AmazonS3Settings.CustomDomain;
- cbAmazonS3UseRRS.Checked = Config.AmazonS3Settings.UseReducedRedundancyStorage;
- UpdateAmazonS3Status();
- #endregion File uploaders
- #region URL Shorteners
- // Google URL Shortener
- atcGoogleURLShortenerAccountType.SelectedAccountType = Config.GoogleURLShortenerAccountType;
- if (OAuth2Info.CheckOAuth(Config.GoogleURLShortenerOAuth2Info))
- {
- oauth2GoogleURLShortener.Status = "Login successful.";
- oauth2GoogleURLShortener.LoginStatus = true;
- }
- // bit.ly
- if (OAuth2Info.CheckOAuth(Config.BitlyOAuth2Info))
- {
- oauth2Bitly.Status = "Login successful.";
- oauth2Bitly.LoginStatus = true;
- }
- // yourls.org
- txtYourlsAPIURL.Text = Config.YourlsAPIURL;
- txtYourlsSignature.Text = Config.YourlsSignature;
- txtYourlsUsername.Enabled = txtYourlsPassword.Enabled = string.IsNullOrEmpty(Config.YourlsSignature);
- txtYourlsUsername.Text = Config.YourlsUsername;
- txtYourlsPassword.Text = Config.YourlsPassword;
- #endregion URL Shorteners
- #region Other Services
- ucTwitterAccounts.lbAccounts.Items.Clear();
- foreach (OAuthInfo acc in Config.TwitterOAuthInfoList)
- {
- ucTwitterAccounts.lbAccounts.Items.Add(acc);
- }
- if (ucTwitterAccounts.lbAccounts.Items.Count > 0)
- {
- ucTwitterAccounts.lbAccounts.SelectedIndex = Config.TwitterSelectedAccount;
- }
- #endregion Other Services
- }
- #region Image Uploaders
- #region ImageShack
- private void atcImageShackAccountType_AccountTypeChanged(AccountType accountType)
- {
- Config.ImageShackSettings.AccountType = accountType;
- }
- private void txtImageShackUsername_TextChanged(object sender, EventArgs e)
- {
- Config.ImageShackSettings.Username = txtImageShackUsername.Text;
- }
- private void txtImageShackPassword_TextChanged(object sender, EventArgs e)
- {
- Config.ImageShackSettings.Password = txtImageShackPassword.Text;
- }
- private void btnImageShackLogin_Click(object sender, EventArgs e)
- {
- ImageShackUploader imageShackUploader = new ImageShackUploader(APIKeys.ImageShackKey, Config.ImageShackSettings);
- try
- {
- if (imageShackUploader.GetAccessToken())
- {
- MessageBox.Show("Login successful.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- else
- {
- MessageBox.Show("Login failed.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- catch (Exception ex)
- {
- DebugHelper.WriteException(ex);
- MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- private void cbImageShackIsPublic_CheckedChanged(object sender, EventArgs e)
- {
- Config.ImageShackSettings.IsPublic = cbImageShackIsPublic.Checked;
- }
- private void btnImageShackOpenPublicProfile_Click(object sender, EventArgs e)
- {
- if (!string.IsNullOrEmpty(Config.ImageShackSettings.Username))
- {
- Helpers.OpenURL("https://imageshack.com/user/" + Config.ImageShackSettings.Username);
- }
- else
- {
- txtImageShackUsername.Focus();
- }
- }
- private void btnImageShackOpenMyImages_Click(object sender, EventArgs e)
- {
- Helpers.OpenURL("https://imageshack.com/my/images");
- }
- #endregion ImageShack
- #region TinyPic
- private void atcTinyPicAccountType_AccountTypeChanged(AccountType accountType)
- {
- Config.TinyPicAccountType = accountType;
- }
- private void txtTinyPicUsername_TextChanged(object sender, EventArgs e)
- {
- if (Config.TinyPicRememberUserPass)
- {
- Config.TinyPicUsername = txtTinyPicUsername.Text;
- }
- }
- private void txtTinyPicPassword_TextChanged(object sender, EventArgs e)
- {
- if (Config.TinyPicRememberUserPass)
- {
- Config.TinyPicPassword = txtTinyPicPassword.Text;
- }
- }
- private void btnTinyPicLogin_Click(object sender, EventArgs e)
- {
- string username = txtTinyPicUsername.Text;
- string password = txtTinyPicPassword.Text;
- if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
- {
- try
- {
- TinyPicUploader tpu = new TinyPicUploader(APIKeys.TinyPicID, APIKeys.TinyPicKey);
- string registrationCode = tpu.UserAuth(username, password);
- if (!string.IsNullOrEmpty(registrationCode))
- {
- Config.TinyPicRegistrationCode = registrationCode;
- MessageBox.Show("Login successful.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- else
- {
- MessageBox.Show("Login failed.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- catch (Exception ex)
- {
- DebugHelper.WriteException(ex);
- MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
- private void btnTinyPicOpenMyImages_Click(object sender, EventArgs e)
- {
- Helpers.OpenURL("http://tinypic.com/yourstuff.php");
- }
- #endregion TinyPic
- #region Imgur
- private void atcImgurAccountType_AccountTypeChanged(AccountType accountType)
- {
- Config.ImgurAccountType = accountType;
- }
- private void cbImgurThumbnailType_SelectedIndexChanged(object sender, EventArgs e)
- {
- Config.ImgurThumbnailType = (ImgurThumbnailType)cbImgurThumbnailType.SelectedIndex;
- }
- private void txtImgurAlbumID_TextChanged(object sender, EventArgs e)
- {
- Config.ImgurAlbumID = txtImgurAlbumID.Text;
- }
- private void btnImgurRefreshAlbumList_Click(object sender, EventArgs e)
- {
- ImgurRefreshAlbumList();
- }
- private void lvImgurAlbumList_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (lvImgurAlbumList.SelectedItems.Count > 0)
- {
- ListViewItem lvi = lvImgurAlbumList.SelectedItems[0];
- if (lvi.Tag is ImgurAlbumData)
- {
- ImgurAlbumData album = (ImgurAlbumData)lvi.Tag;
- txtImgurAlbumID.Text = album.id;
- }
- }
- }
- private void oauth2Imgur_OpenButtonClicked()
- {
- ImgurAuthOpen();
- }
- private void oauth2Imgur_CompleteButtonClicked(string code)
- {
- ImgurAuthComplete(code);
- }
- private void oauth2Imgur_RefreshButtonClicked()
- {
- ImgurAuthRefresh();
- }
- #endregion Imgur
- #region Photobucket
- private void btnPhotobucketAuthOpen_Click(object sender, EventArgs e)
- {
- PhotobucketAuthOpen();
- }
- private void btnPhotobucketAuthComplete_Click(object sender, EventArgs e)
- {
- PhotobucketAuthComplete();
- }
- private void btnPhotobucketCreateAlbum_Click(object sender, EventArgs e)
- {
- PhotobucketCreateAlbum();
- }
- private void cboPhotobucketAlbumPaths_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (Config.PhotobucketAccountInfo != null)
- {
- Config.PhotobucketAccountInfo.ActiveAlbumID = cboPhotobucketAlbumPaths.SelectedIndex;
- }
- }
- private void btnPhotobucketAddAlbum_Click(object sender, EventArgs e)
- {
- string albumPath = cboPhotobucketAlbumPaths.Text;
- if (!Config.PhotobucketAccountInfo.AlbumList.Contains(albumPath))
- {
- Config.PhotobucketAccountInfo.AlbumList.Add(albumPath);
- cboPhotobucketAlbumPaths.Items.Add(albumPath);
- }
- }
- private void btnPhotobucketRemoveAlbum_Click(object sender, EventArgs e)
- {
- if (cboPhotobucketAlbumPaths.Items.Count > 1)
- {
- cboPhotobucketAlbumPaths.Items.RemoveAt(cboPhotobucketAlbumPaths.SelectedIndex);
- cboPhotobucketAlbumPaths.SelectedIndex = cboPhotobucketAlbumPaths.Items.Count - 1;
- }
- }
- #endregion Photobucket
- #region Picasa
- private void oauth2Picasa_OpenButtonClicked()
- {
- PicasaAuthOpen();
- }
- private void oauth2Picasa_CompleteButtonClicked(string code)
- {
- PicasaAuthComplete(code);
- }
- private void oauth2Picasa_RefreshButtonClicked()
- {
- PicasaAuthRefresh();
- }
- private void txtPicasaAlbumID_TextChanged(object sender, EventArgs e)
- {
- Config.PicasaAlbumID = txtPicasaAlbumID.Text;
- }
- private void btnPicasaRefreshAlbumList_Click(object sender, EventArgs e)
- {
- PicasaRefreshAlbumList();
- }
- private void lvPicasaAlbumList_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (lvPicasaAlbumList.SelectedItems.Count > 0)
- {
- ListViewItem lvi = lvPicasaAlbumList.SelectedItems[0];
- if (lvi.Tag is PicasaAlbumInfo)
- {
- PicasaAlbumInfo album = (PicasaAlbumInfo)lvi.Tag;
- txtPicasaAlbumID.Text = album.ID;
- }
- }
- }
- #endregion Picasa
- #region Flickr
- private void btnFlickrOpenAuthorize_Click(object sender, EventArgs e)
- {
- FlickrAuthOpen();
- }
- private void btnFlickrCompleteAuth_Click(object sender, EventArgs e)
- {
- FlickrAuthComplete();
- }
- private void btnFlickrCheckToken_Click(object sender, EventArgs e)
- {
- FlickrCheckToken();
- }
- private void btnFlickrOpenImages_Click(object sender, EventArgs e)
- {
- FlickrOpenImages();
- }
- #endregion Flickr
- #region TwitPic
- private void cboTwitPicThumbnailMode_SelectedIndexChanged(object sender, EventArgs e)
- {
- Config.TwitPicThumbnailMode = (TwitPicThumbnailType)cboTwitPicThumbnailMode.SelectedIndex;
- }
- private void chkTwitPicShowFull_CheckedChanged(object sender, EventArgs e)
- {
- Config.TwitPicShowFull = chkTwitPicShowFull.Checked;
- }
- #endregion TwitPic
- #region YFrog
- private void txtYFrogUsername_TextChanged(object sender, EventArgs e)
- {
- Config.YFrogUsername = txtYFrogUsername.Text;
- }
- private void txtYFrogPassword_TextChanged(object sender, EventArgs e)
- {
- Config.YFrogPassword = txtYFrogPassword.Text;
- }
- #endregion YFrog
- #endregion Image Uploaders
- #region Text Uploaders
- #region Pastebin
- private void btnPastebinLogin_Click(object sender, EventArgs e)
- {
- PastebinLogin();
- }
- #endregion Pastebin
- #region Paste.ee
- private void txtPaste_eeUserAPIKey_TextChanged(object sender, EventArgs e)
- {
- Config.Paste_eeUserAPIKey = txtPaste_eeUserAPIKey.Text;
- }
- #endregion Paste.ee
- #region Gist
- private void atcGistAccountType_AccountTypeChanged(AccountType accountType)
- {
- Config.GistAnonymousLogin = accountType == AccountType.Anonymous;
- oAuth2Gist.Enabled = !Config.GistAnonymousLogin;
- }
- private void oAuth2Gist_OpenButtonClicked()
- {
- GistAuthOpen();
- }
- private void oAuth2Gist_CompleteButtonClicked(string code)
- {
- GistAuthComplete(code);
- }
- private void chkGistPublishPublic_CheckedChanged(object sender, EventArgs e)
- {
- Config.GistPublishPublic = ((CheckBox)sender).Checked;
- }
- #endregion Gist
- #region uPaste
- private void txtUpasteUserKey_TextChanged(object sender, EventArgs e)
- {
- Config.UpasteUserKey = txtUpasteUserKey.Text;
- }
- private void cbUpasteIsPublic_CheckedChanged(object sender, EventArgs e)
- {
- Config.UpasteIsPublic = cbUpasteIsPublic.Checked;
- }
- #endregion uPaste
- #endregion Text Uploaders
- #region File Uploaders
- #region Dropbox
- private void pbDropboxLogo_Click(object sender, EventArgs e)
- {
- Helpers.OpenURL("https://www.dropbox.com");
- }
- private void btnDropboxRegister_Click(object sender, EventArgs e)
- {
- Helpers.OpenURL("http://db.tt/CtPYXvu");
- }
- private void oauth2Dropbox_OpenButtonClicked()
- {
- DropboxAuthOpen();
- }
- private void oauth2Dropbox_CompleteButtonClicked(string code)
- {
- DropboxAuthComplete(code);
- }
- private void txtDropboxPath_TextChanged(object sender, EventArgs e)
- {
- Config.DropboxUploadPath = txtDropboxPath.Text;
- UpdateDropboxStatus();
- }
- private void btnDropboxShowFiles_Click(object sender, EventArgs e)
- {
- DropboxOpenFiles();
- }
- private void cbDropboxAutoCreateShareableLink_CheckedChanged(object sender, EventArgs e)
- {
- Config.DropboxAutoCreateShareableLink = cbDropboxAutoCreateShareableLink.Checked;
- cbDropboxURLType.Enabled = Config.DropboxAutoCreateShareableLink;
- }
- private void cbDropboxURLType_SelectedIndexChanged(object sender, EventArgs e)
- {
- Config.DropboxURLType = (DropboxURLType)cbDropboxURLType.SelectedIndex;
- }
- #endregion Dropbox
- #region Copy
- private void pbCopyLogo_Click(object sender, EventArgs e)
- {
- Helpers.OpenURL("https://copy.com");
- }
- private void btnCopyRegister_Click(object sender, EventArgs e)
- {
- Helpers.OpenURL("https://copy.com?r=hC3DMW");
- }
- private void txtCopyPath_TextChanged(object sender, EventArgs e)
- {
- Config.CopyUploadPath = txtCopyPath.Text;
- UpdateCopyStatus();
- }
- private void oAuthCopy_OpenButtonClicked()
- {
- CopyAuthOpen();
- }
- private void oAuthCopy_CompleteButtonClicked(string code)
- {
- CopyAuthComplete(code);
- }
- private void cbCopyURLType_SelectedIndexChanged(object sender, EventArgs e)
- {
- Config.CopyURLType = (CopyURLType)cbCopyURLType.SelectedIndex;
- }
- #endregion Copy
- #region Google Drive
- private void oauth2GoogleDrive_OpenButtonClicked()
- {
- GoogleDriveAuthOpen();
- }
- private void oauth2GoogleDrive_CompleteButtonClicked(string code)
- {
- GoogleDriveAuthComplete(code);
- }
- private void oauth2GoogleDrive_RefreshButtonClicked()
- {
- GoogleDriveAuthRefresh();
- }
- private void cbGoogleDriveIsPublic_CheckedChanged(object sender, EventArgs e)
- {
- Config.GoogleDriveIsPublic = cbGoogleDriveIsPublic.Checked;
- }
- #endregion Google Drive
- #region Box
- private void oauth2Box_OpenButtonClicked()
- {
- BoxAuthOpen();
- }
- private void oauth2Box_CompleteButtonClicked(string code)
- {
- BoxAuthComplete(code);
- }
- private void oauth2Box_RefreshButtonClicked()
- {
- BoxAuthRefresh();
- }
- private void cbBoxShare_CheckedChanged(object sender, EventArgs e)
- {
- Config.BoxShare = cbBoxShare.Checked;
- }
- private void btnBoxRefreshFolders_Click(object sender, EventArgs e)
- {
- BoxListFolders();
- }
- private void lvBoxFolders_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (lvBoxFolders.SelectedItems.Count > 0)
- {
- ListViewItem lvi = lvBoxFolders.SelectedItems[0];
- BoxFileEntry file = lvi.Tag as BoxFileEntry;
- if (file != null)
- {
- lblBoxFolderID.Text = "Selected folder: " + file.name;
- }
- }
- }
- private void lvBoxFolders_MouseDoubleClick(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left && lvBoxFolders.SelectedItems.Count > 0)
- {
- ListViewItem lvi = lvBoxFolders.SelectedItems[0];
- BoxFileEntry file = lvi.Tag as BoxFileEntry;
- if (file != null)
- {
- lvBoxFolders.Items.Clear();
- BoxListFolders(file);
- }
- }
- }
- #endregion Box
- #region Minus
- private void btnMinusAuth_Click(object sender, EventArgs e)
- {
- MinusAuth();
- }
- private void btnAuthRefresh_Click(object sender, EventArgs e)
- {
- MinusAuthRefresh();
- }
- private void cboMinusFolders_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (Config.MinusConfig != null)
- {
- Config.MinusConfig.FolderID = cboMinusFolders.SelectedIndex;
- MinusFolder tempMf = Config.MinusConfig.GetActiveFolder();
- chkMinusPublic.Checked = tempMf.is_public;
- }
- }
- private void btnMinusFolderAdd_Click(object sender, EventArgs e)
- {
- if (!string.IsNullOrEmpty(cboMinusFolders.Text) && !MinusHasFolder(cboMinusFolders.Text))
- {
- btnMinusFolderAdd.Enabled = false;
- Minus minus = new Minus(Config.MinusConfig, Config.MinusOAuth2Info);
- MinusFolder dir = minus.CreateFolder(cboMinusFolders.Text, chkMinusPublic.Checked);
- if (dir != null)
- {
- cboMinusFolders.Items.Add(dir);
- cboMinusFolders.SelectedIndex = cboMinusFolders.Items.Count - 1;
- }
- btnMinusFolderAdd.Enabled = true;
- }
- }
- private void btnMinusFolderRemove_Click(object sender, EventArgs e)
- {
- if (!string.IsNullOrEmpty(cboMinusFolders.Text) && MinusHasFolder(cboMinusFolders.Text))
- {
- btnMinusFolderRemove.Enabled = false;
- Minus minus = new Minus(Config.MinusConfig, Config.MinusOAuth2Info);
- int index = cboMinusFolders.SelectedIndex;
- if (minus.DeleteFolder(index))
- {
- cboMinusFolders.Items.RemoveAt(index);
- if (cboMinusFolders.Items.Count > 0)
- {
- cboMinusFolders.SelectedIndex = 0;
- }
- }
- btnMinusFolderRemove.Enabled = true;
- }
- }
- private void btnMinusReadFolderList_Click(object sender, EventArgs e)
- {
- if (Config.MinusConfig != null)
- {
- btnMinusReadFolderList.Enabled = false;
- List<MinusFolder> tempListMf = new Minus(Config.MinusConfig, Config.MinusOAuth2Info).ReadFolderList();
- if (tempListMf.Count > 0)
- {
- cboMinusFolders.Items.Clear();
- cboMinusFolders.Items.AddRange(tempListMf.ToArray());
- cboMinusFolders.SelectedIndex = Config.MinusConfig.FolderID;
- }
- btnMinusReadFolderList.Enabled = true;
- }
- }
- private void cbMinusURLType_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (Config.MinusConfig != null)
- {
- Config.MinusConfig.LinkType = (MinusLinkType)cbMinusURLType.SelectedIndex;
- }
- }
- #endregion Minus
- #region FTP
- private void cboFtpImages_SelectedIndexChanged(object sender, EventArgs e)
- {
- Config.FTPSelectedImage = cboFtpImages.SelectedIndex;
- }
- private void cboFtpText_SelectedIndexChanged(object sender, EventArgs e)
- {
- Config.FTPSelectedText = cboFtpText.SelectedIndex;
- }
- private void cboFtpFiles_SelectedIndexChanged(object sender, EventArgs e)
- {
- Config.FTPSelectedFile = cboFtpFiles.SelectedIndex;
- }
- private void btnFtpClient_Click(object sender, EventArgs e)
- {
- FTPOpenClient();
- }
- private object eiFTP_ExportRequested()
- {
- return GetSelectedFTPAccount();
- }
- private void eiFTP_ImportRequested(object obj)
- {
- AddFTPAccount(obj as FTPAccount);
- }
- private void FTPSetup(IEnumerable<FTPAccount> accs)
- {
- if (accs != null)
- {
- int selFtpList = ucFTPAccounts.lbAccounts.SelectedIndex;
- ucFTPAccounts.lbAccounts.Items.Clear();
- ucFTPAccounts.pgSettings.PropertySort = PropertySort.Categorized;
- cboFtpImages.Items.Clear();
- cboFtpText.Items.Clear();
- cboFtpFiles.Items.Clear();
- Config.FTPAccountList = new List<FTPAccount>();
- Config.FTPAccountList.AddRange(accs);
- foreach (FTPAccount acc in Config.FTPAccountList)
- {
- ucFTPAccounts.lbAccounts.Items.Add(acc);
- cboFtpImages.Items.Add(acc);
- cboFtpText.Items.Add(acc);
- cboFtpFiles.Items.Add(acc);
- }
- if (ucFTPAccounts.lbAccounts.Items.Count > 0)
- {
- ucFTPAccounts.lbAccounts.SelectedIndex = selFtpList.Between(0, ucFTPAccounts.lbAccounts.Items.Count - 1);
- cboFtpImages.SelectedIndex = Config.FTPSelectedImage.Between(0, ucFTPAccounts.lbAccounts.Items.Count - 1);
- cboFtpText.SelectedIndex = Config.FTPSelectedText.Between(0, ucFTPAccounts.lbAccounts.Items.Count - 1);
- cboFtpFiles.SelectedIndex = Config.FTPSelectedFile.Between(0, ucFTPAccounts.lbAccounts.Items.Count - 1);
- }
- }
- }
- private void FTPAccountAddButton_Click(object sender, EventArgs e)
- {
- AddFTPAccount(new FTPAccount());
- }
- private void FTPAccountRemoveButton_Click(object sender, EventArgs e)
- {
- int sel = ucFTPAccounts.lbAccounts.SelectedIndex;
- if (ucFTPAccounts.RemoveItem(sel))
- {
- Config.FTPAccountList.RemoveAt(sel);
- }
- FTPSetup(Config.FTPAccountList);
- }
- private void FTPAccountDuplicateButton_Click(object sender, EventArgs e)
- {
- FTPAccount src = (FTPAccount)ucFTPAccounts.lbAccounts.Items[ucFTPAccounts.lbAccounts.SelectedIndex];
- FTPAccount clone = (FTPAccount)src.Clone();
- AddFTPAccount(clone);
- }
- private void FTPAccountTestButton_Click(object sender, EventArgs e)
- {
- TestFTPAccountAsync(GetSelectedFTPAccount());
- }
- private void FtpAccountSettingsGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
- {
- FTPSetup(Config.FTPAccountList);
- }
- #endregion FTP
- #region Email
- private void txtSmtpServer_TextChanged(object sender, EventArgs e)
- {
- Config.EmailSmtpServer = txtEmailSmtpServer.Text;
- }
- private void nudSmtpPort_ValueChanged(object sender, EventArgs e)
- {
- Config.EmailSmtpPort = (int)nudEmailSmtpPort.Value;
- }
- private void txtEmail_TextChanged(object sender, EventArgs e)
- {
- Config.EmailFrom = txtEmailFrom.Text;
- }
- private void txtPassword_TextChanged(object sender, EventArgs e)
- {
- Config.EmailPassword = txtEmailPassword.Text;
- }
- private void chkEmailConfirm_CheckedChanged(object sender, EventArgs e)
- {
- Config.EmailConfirmSend = chkEmailConfirm.Checked;
- }
- private void cbRememberLastToEmail_CheckedChanged(object sender, EventArgs e)
- {
- Config.EmailRememberLastTo = cbEmailRememberLastTo.Checked;
- }
- private void txtDefaultSubject_TextChanged(object sender, EventArgs e)
- {
- Config.EmailDefaultSubject = txtEmailDefaultSubject.Text;
- }
- private void txtDefaultBody_TextChanged(object sender, EventArgs e)
- {
- Config.EmailDefaultBody = txtEmailDefaultBody.Text;
- }
- #endregion Email
- #region RapidShare
- private void txtRapidShareUsername_TextChanged(object sender, EventArgs e)
- {
- Config.RapidShareUsername = txtRapidShareUsername.Text;
- }
- private void txtRapidSharePassword_TextChanged(object sender, EventArgs e)
- {
- Config.RapidSharePassword = txtRapidSharePassword.Text;
- }
- private void txtRapidShareFolderID_TextChanged(object sender, EventArgs e)
- {
- Config.RapidShareFolderID = txtRapidShareFolderID.Text;
- }
- private void btnRapidShareRefreshFolders_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrEmpty(Config.RapidShareUsername) || string.IsNullOrEmpty(Config.RapidSharePassword))
- {
- MessageBox.Show("RapidShare account username or password is empty.", "RapidShare refresh folders list failed", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- }
- else
- {
- tvRapidShareFolders.Nodes.Clear();
- RapidShareFolderInfo root = new RapidShare(Config.RapidShareUsername, Config.RapidSharePassword).GetRootFolderWithChilds();
- RapidShareRecursiveAddChilds(tvRapidShareFolders.Nodes, root);
- tvRapidShareFolders.ExpandAll();
- }
- }
- private void RapidShareRecursiveAddChilds(TreeNodeCollection treeNodes, RapidShareFolderInfo folderInfo)
- {
- TreeNode treeNode = treeNodes.Add(folderInfo.FolderName);
- treeNode.Tag = folderInfo;
- foreach (RapidShareFolderInfo folderInfo2 in folderInfo.ChildFolders)
- {
- RapidShareRecursiveAddChilds(treeNode.Nodes, folderInfo2);
- }
- }
- private void tvRapidShareFolders_AfterSelect(object sender, TreeViewEventArgs e)
- {
- if (e.Node != null && e.Node.Tag is RapidShareFolderInfo)
- {
- RapidShareFolderInfo folderInfo = (RapidShareFolderInfo)e.Node.Tag;
- txtRapidShareFolderID.Text = folderInfo.RealFolderID;
- }
- }
- #endregion RapidShare
- #region SendSpace
- private void atcSendSpaceAccountType_AccountTypeChanged(AccountType accountType)
- {
- Config.SendSpaceAccountType = accountType;
- }
- private void btnSendSpaceRegister_Click(object sender, EventArgs e)
- {
- using (UserPassBox upb = SendSpaceRegister())
- {
- if (upb.Success)
- {
- txtSendSpaceUserName.Text = upb.UserName;
- txtSendSpacePassword.Text = upb.Password;
- atcSendSpaceAccountType.SelectedAccountType = AccountType.User;
- }
- }
- }
- private void txtSendSpaceUserName_TextChanged(object sender, EventArgs e)
- {
- Config.SendSpaceUsername = txtSendSpaceUserName.Text;
- }
- private void txtSendSpacePassword_TextChanged(object sender, EventArgs e)
- {
- Config.SendSpacePassword = txtSendSpacePassword.Text;
- }
- #endregion SendSpace
- #region Ge.tt
- private void btnGe_ttLogin_Click(object sender, EventArgs e)
- {
- Ge_ttLogin();
- }
- #endregion Ge.tt
- #region Localhostr
- private void txtLocalhostrEmail_TextChanged(object sender, EventArgs e)
- {
- Config.LocalhostrEmail = txtLocalhostrEmail.Text;
- }
- private void txtLocalhostrPassword_TextChanged(object sender, EventArgs e)
- {
- Config.LocalhostrPassword = txtLocalhost…
Large files files are truncated, but you can click here to view the full file