cemu-DS4Windows/DS4Tool/SaveWhere.cs
jays2kings f3d63fb505 Even better localization support
95% finished French Translation (I forgot to update the translations page so a few lines are missing, the French page has been updated, but the rest still need to be updated) Thanks to DirtyShady and Neur0Nerd for the Translations
2014-08-16 18:09:15 -04:00

103 lines
3.5 KiB
C#

using DS4Control;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
namespace ScpServer
{
public partial class SaveWhere : Form
{
private bool multisaves;
string exepath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName;
public SaveWhere(bool multisavespots)
{
InitializeComponent();
Icon = Properties.Resources.DS4;
multisaves = multisavespots;
lbMultiSaves.Visible = multisaves;
cBDeleteOther.Visible = multisaves;
if (multisaves)
lbPickWhere.Text += "other location files will be deleted";
if (Global.AdminNeeded())
bnPrgmFolder.Enabled = false;
}
private void bnPrgmFolder_Click(object sender, EventArgs e)
{
Global.SaveWhere(Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName);
if (multisaves && !cBDeleteOther.Checked)
{
try { Directory.Delete(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool", true); }
catch { }
}
else if (!multisaves)
Save(Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + "\\Profiles.xml");
Close();
}
private void bnAppdataFolder_Click(object sender, EventArgs e)
{
if (multisaves && !cBDeleteOther.Checked)
try
{
Directory.Delete(exepath + "\\Profiles", true);
File.Delete(exepath + "\\Profiles.xml");
File.Delete(exepath + "\\Auto Profiles.xml");
}
catch (UnauthorizedAccessException) { MessageBox.Show("Cannot Delete old settings, please manaully delete", "DS4Windows"); }
else if (!multisaves)
Save(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool\\Profiles.xml");
Global.SaveWhere(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool");
Close();
}
public bool Save(String path)
{
Boolean Saved = true;
XmlDocument m_Xdoc = new XmlDocument();
try
{
XmlNode Node;
m_Xdoc.RemoveAll();
Node = m_Xdoc.CreateXmlDeclaration("1.0", "utf-8", String.Empty);
m_Xdoc.AppendChild(Node);
Node = m_Xdoc.CreateComment(String.Format(" Profile Configuration Data. {0} ", DateTime.Now));
m_Xdoc.AppendChild(Node);
Node = m_Xdoc.CreateWhitespace("\r\n");
m_Xdoc.AppendChild(Node);
Node = m_Xdoc.CreateNode(XmlNodeType.Element, "Profile", null);
m_Xdoc.AppendChild(Node);
m_Xdoc.Save(path);
}
catch { Saved = false; }
return Saved;
}
private void SaveWhere_FormClosing(object sender, FormClosingEventArgs e)
{
if (String.IsNullOrEmpty(Global.appdatapath))
if (MessageBox.Show("Close DS4Windows?\nA location must be picked to continue", "DS4Windows",
MessageBoxButtons.YesNo) == DialogResult.No)
e.Cancel = true;
}
}
}