public ProgressWindow(Wallbase wall)
        {
            InitializeComponent();

            bw.RunWorkerCompleted += (sender, e) =>
            {
                bw.Dispose();
            };

            bw.DoWork += (sender, e) =>
            {
                try
                {
                    wall.OnWallbaseDownload += wall_OnWallbaseDownload;
                    wall.DownloadWallpapers();
                }
                catch (Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show("There was an error trying to download: " + ex.Message + "\n\nPerhaps your login was wrong?", "Error",
                        MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            };

            bw.RunWorkerAsync();
        }
        private void Download()
        {
            if (Directory.Exists(FolderPath))
                if (!HandleExistingDir(FolderPath))
                    return;

            if (!Directory.Exists(FolderPath))
                Directory.CreateDirectory(FolderPath);

            LockGUI(false);

            var wall = new Wallbase(FolderPath, Username, Password, UsePermissions,
                 txtUrl.Text, CreateList, CreateLog, Sort);
            {
                var wnd = new ProgressWindow(wall);
                wnd.Closed += (sender, e) => { LockGUI(true); };
                wnd.ShowDialog();
            }
        }