-
Notifications
You must be signed in to change notification settings - Fork 0
/
ProjectSettings.cs
91 lines (78 loc) · 3.17 KB
/
ProjectSettings.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DATPacker
{
public partial class ProjectSettings : Form
{
public ProjectSettings()
{
InitializeComponent();
BuildFolderButton.Image = IconExtractor.Extract(@"shell32.dll", 45, false).ToBitmap();
OutputFolderButton.Image = IconExtractor.Extract(@"shell32.dll", 45, false).ToBitmap();
DPProject currentProject = Main.currentProject;
ProjectNameTextBox.Text = currentProject.ProjectName;
BuildFolderTextBox.Text = currentProject.BuildLocation;
OutputFolderTextBox.Text = currentProject.OutputLocation;
}
private void ButtonClick(TextBox textBox)
{
var dialog = new FolderPicker();
if (Directory.Exists(textBox.Text))
{
dialog.InputPath = textBox.Text;
}
if (dialog.ShowDialog(Handle) == true)
{
textBox.Text = dialog.ResultPath;
}
}
private void BuildFolderButton_Click(object sender, EventArgs e)
{
ButtonClick(BuildFolderTextBox);
}
private void OutputFolderButton_Click(object sender, EventArgs e)
{
ButtonClick(OutputFolderTextBox);
}
private void SaveButton_Click(object sender, EventArgs e)
{
DPProject currentProject = Main.currentProject;
if (ProjectNameTextBox.Text.Trim() == "") { MessageBox.Show("Project name is required!"); return; }
if (BuildFolderTextBox.Text.Trim() == "") { MessageBox.Show("Build folder is required!"); return; }
if (OutputFolderTextBox.Text.Trim() == "") { MessageBox.Show("Output folder is required!"); return; }
bool needsSaving = false;
if (currentProject.ProjectName != ProjectNameTextBox.Text)
{
currentProject.ProjectName = ProjectNameTextBox.Text;
currentProject.NeedsSaving = currentProject.NameNeedsSaving = needsSaving = true;
}
if (currentProject.BuildLocation != BuildFolderTextBox.Text)
{
currentProject.BuildLocation = BuildFolderTextBox.Text;
currentProject.NeedsSaving = needsSaving = true;
}
if (currentProject.OutputLocation != OutputFolderTextBox.Text)
{
currentProject.OutputLocation = OutputFolderTextBox.Text;
currentProject.NeedsSaving = needsSaving = true;
Overwatch.WatchLocation(currentProject.OutputLocation);
}
if (needsSaving)
{
var shouldSave = MessageBox.Show("Would you like to save your project to file now?", "Save project now?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (shouldSave == DialogResult.Yes)
{
Project.Save(currentProject);
}
}
this.Close();
}
}
}