90 lines
2.8 KiB
C#
90 lines
2.8 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Windows.Forms;
|
|
|
|
namespace BetterDiscordWI.panels {
|
|
public partial class Panel1: UserControl, IPanel {
|
|
public Panel1() {
|
|
InitializeComponent();
|
|
}
|
|
|
|
public void SetVisible() {
|
|
|
|
GetParent().btnBack.Visible = true;
|
|
GetParent().btnNext.Enabled = true;
|
|
GetParent().btnBack.Enabled = true;
|
|
GetParent().btnNext.Text = @"Install";
|
|
GetParent().lblPanelTitle.Text = @"BetterDiscord Installation";
|
|
|
|
PickVersion();
|
|
}
|
|
|
|
public FormMain GetParent() {
|
|
return (FormMain)ParentForm;
|
|
}
|
|
|
|
public void BtnNext() {
|
|
GetParent().DiscordPath = tbPath.Text;
|
|
GetParent().RestartDiscord = cbRestart.Checked;
|
|
GetParent().SwitchPanel(2);
|
|
}
|
|
|
|
public void BtnPrev() {
|
|
GetParent().SwitchPanel(0);
|
|
}
|
|
|
|
private void btnBrowser_Click(object sender, EventArgs e) {
|
|
FolderBrowserDialog fbd = new FolderBrowserDialog { SelectedPath = tbPath.Text };
|
|
fbd.ShowDialog(GetParent());
|
|
|
|
tbPath.Text = fbd.SelectedPath;
|
|
}
|
|
|
|
private void checkBox1_CheckedChanged(object sender, EventArgs e) {
|
|
PickVersion();
|
|
}
|
|
|
|
private void checkBox2_CheckedChanged(object sender, EventArgs e) {
|
|
PickVersion();
|
|
}
|
|
|
|
private void PickVersion() {
|
|
string dirPath;
|
|
if(checkBox1.Checked) {
|
|
dirPath = $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\\DiscordCanary";
|
|
if(!Directory.Exists(dirPath)) checkBox1.Checked = false;
|
|
|
|
checkBox2.Checked = false;
|
|
} else if(checkBox2.Checked) {
|
|
dirPath = $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\\DiscordPTB";
|
|
if(!Directory.Exists(dirPath)) checkBox2.Checked = false;
|
|
|
|
checkBox1.Checked = false;
|
|
} else {
|
|
dirPath = $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\\Discord";
|
|
}
|
|
|
|
if (!Directory.Exists(dirPath)) return;
|
|
string[] directories = Directory.GetDirectories(dirPath);
|
|
|
|
string highestVersion = null;
|
|
|
|
foreach(string s in directories) {
|
|
Debug.Print(s);
|
|
if(!s.Contains("app-"))
|
|
continue;
|
|
if(string.IsNullOrEmpty(highestVersion)) {
|
|
highestVersion = s;
|
|
continue;
|
|
}
|
|
|
|
if(string.CompareOrdinal(s, highestVersion) > 0) {
|
|
highestVersion = s;
|
|
}
|
|
}
|
|
|
|
tbPath.Text = highestVersion;
|
|
}
|
|
}
|
|
} |