More fixes
This commit is contained in:
parent
2f3c60c068
commit
b16a098339
@ -33,10 +33,15 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
private void ReloadEditors()
|
private void ReloadEditors()
|
||||||
{
|
{
|
||||||
stComboBox1.Items.Clear();
|
stComboBox1.Items.Clear();
|
||||||
|
stComboBox1.Items.Add("Properties");
|
||||||
stComboBox1.Items.Add("Hex Editor");
|
stComboBox1.Items.Add("Hex Editor");
|
||||||
stComboBox1.Items.Add("File Editor");
|
stComboBox1.Items.Add("File Editor");
|
||||||
stComboBox1.Items.Add("Text Editor");
|
stComboBox1.Items.Add("Text Editor");
|
||||||
stComboBox1.SelectedIndex = 0;
|
|
||||||
|
if (Runtime.ObjectEditor.EditorDiplayIndex < stComboBox1.Items.Count)
|
||||||
|
stComboBox1.SelectedIndex = Runtime.ObjectEditor.EditorDiplayIndex;
|
||||||
|
else
|
||||||
|
stComboBox1.SelectedIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetEditor(int Index) { stComboBox1.SelectedIndex = Index; }
|
public void SetEditor(int Index) { stComboBox1.SelectedIndex = Index; }
|
||||||
@ -55,10 +60,12 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
public void UpdateEditor()
|
public void UpdateEditor()
|
||||||
{
|
{
|
||||||
if (GetEditor() == 0)
|
if (GetEditor() == 0)
|
||||||
UpdateHexView();
|
UpdatePropertiesView();
|
||||||
if (GetEditor() == 1)
|
if (GetEditor() == 1)
|
||||||
UpdateFileEditor();
|
UpdateHexView();
|
||||||
if (GetEditor() == 2)
|
if (GetEditor() == 2)
|
||||||
|
UpdateFileEditor();
|
||||||
|
if (GetEditor() == 3)
|
||||||
UpdateTextView();
|
UpdateTextView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,6 +169,19 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UpdatePropertiesView()
|
||||||
|
{
|
||||||
|
STPropertyGrid editor = (STPropertyGrid)GetActiveEditor(typeof(STPropertyGrid));
|
||||||
|
if (editor == null)
|
||||||
|
{
|
||||||
|
editor = new STPropertyGrid();
|
||||||
|
editor.Dock = DockStyle.Fill;
|
||||||
|
AddControl(editor);
|
||||||
|
}
|
||||||
|
editor.Text = Text;
|
||||||
|
editor.LoadProperty(ArchiveFileInfo.DisplayProperties);
|
||||||
|
}
|
||||||
|
|
||||||
private void UpdateHexView()
|
private void UpdateHexView()
|
||||||
{
|
{
|
||||||
HexEditor editor = (HexEditor)GetActiveEditor(typeof(HexEditor));
|
HexEditor editor = (HexEditor)GetActiveEditor(typeof(HexEditor));
|
||||||
@ -172,7 +192,10 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
AddControl(editor);
|
AddControl(editor);
|
||||||
}
|
}
|
||||||
editor.Text = Text;
|
editor.Text = Text;
|
||||||
editor.LoadData(ArchiveFileInfo.FileData);
|
byte[] Data = ArchiveFileInfo.FileData;
|
||||||
|
|
||||||
|
//Only load a certain about of bytes to prevent memory dispose issues
|
||||||
|
editor.LoadData(Utils.SubArray(Data, 0, 3000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -188,9 +211,11 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
|
|
||||||
private void stComboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
private void stComboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (_IsLoaded)
|
if (_IsLoaded && stComboBox1.SelectedIndex != -1)
|
||||||
|
{
|
||||||
|
Runtime.ObjectEditor.EditorDiplayIndex = stComboBox1.SelectedIndex;
|
||||||
UpdateEditor();
|
UpdateEditor();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -177,7 +177,7 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
ListViewItem item = new ListViewItem(System.IO.Path.GetFileName(file.FileName));
|
ListViewItem item = new ListViewItem(System.IO.Path.GetFileName(file.FileName));
|
||||||
item.ImageKey = "texture";
|
item.ImageKey = "texture";
|
||||||
item.Group = listViewCustom1.Groups[0];
|
item.Group = listViewCustom1.Groups[0];
|
||||||
item.SubItems.Add(file.GetSize());
|
item.SubItems.Add(file.FileSize);
|
||||||
item.SubItems.Add("");
|
item.SubItems.Add("");
|
||||||
item.SubItems.Add(file.State.ToString());
|
item.SubItems.Add(file.State.ToString());
|
||||||
listViewCustom1.Items.Add(item);
|
listViewCustom1.Items.Add(item);
|
||||||
|
@ -7,6 +7,7 @@ using System.Windows.Forms;
|
|||||||
using Switch_Toolbox.Library.Forms;
|
using Switch_Toolbox.Library.Forms;
|
||||||
using Switch_Toolbox.Library.IO;
|
using Switch_Toolbox.Library.IO;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using System.ComponentModel;
|
||||||
|
|
||||||
namespace Switch_Toolbox.Library
|
namespace Switch_Toolbox.Library
|
||||||
{
|
{
|
||||||
@ -34,18 +35,33 @@ namespace Switch_Toolbox.Library
|
|||||||
}
|
}
|
||||||
public class ArchiveFileInfo
|
public class ArchiveFileInfo
|
||||||
{
|
{
|
||||||
|
[Browsable(false)]
|
||||||
public STContextMenuStrip STContextMenuStrip;
|
public STContextMenuStrip STContextMenuStrip;
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
public virtual STToolStripItem[] Menus { get; set; }
|
public virtual STToolStripItem[] Menus { get; set; }
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
public FileType FileDataType = FileType.Default;
|
public FileType FileDataType = FileType.Default;
|
||||||
|
|
||||||
|
//Wether or not to check the file magic to determine the type
|
||||||
|
//This sets the icons if there's no proper extension, and may add more special operations
|
||||||
|
//This should be disabled on larger archives!
|
||||||
|
[Browsable(false)]
|
||||||
|
public virtual bool CheckFileMagic { get; set; } = false;
|
||||||
|
|
||||||
|
//Properties to show for the archive file when selected
|
||||||
|
[Browsable(false)]
|
||||||
|
public virtual object DisplayProperties { get; set; }
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
public virtual IFileFormat OpenFile()
|
public virtual IFileFormat OpenFile()
|
||||||
{
|
{
|
||||||
return STFileLoader.OpenFileFormat(
|
return STFileLoader.OpenFileFormat(
|
||||||
IOExtensions.RemoveIllegaleFolderNameCharacters(FileName), FileData, true);
|
IOExtensions.RemoveIllegaleFolderNameCharacters(FileName), FileData, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
public bool IsSupportedFileFormat()
|
public bool IsSupportedFileFormat()
|
||||||
{
|
{
|
||||||
if (FileData == null || FileData.Length <= 4)
|
if (FileData == null || FileData.Length <= 4)
|
||||||
@ -96,17 +112,18 @@ namespace Switch_Toolbox.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetSize()
|
public virtual string FileSize => STMath.GetFileSize(FileData.Length, 4);
|
||||||
{
|
|
||||||
return STMath.GetFileSize(FileData.Length, 4);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
public IFileFormat FileFormat = null; //Format attached for saving
|
public IFileFormat FileFormat = null; //Format attached for saving
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
protected byte[] _fileData = null;
|
protected byte[] _fileData = null;
|
||||||
|
|
||||||
//Full File Name
|
//Full File Name
|
||||||
private string _fileName = string.Empty;
|
private string _fileName = string.Empty;
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
public string FileName
|
public string FileName
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -118,7 +135,11 @@ namespace Switch_Toolbox.Library
|
|||||||
_fileName = value;
|
_fileName = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
public string Name { get; set; } = string.Empty; //File Name (No Path)
|
public string Name { get; set; } = string.Empty; //File Name (No Path)
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
public virtual byte[] FileData
|
public virtual byte[] FileData
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -131,6 +152,7 @@ namespace Switch_Toolbox.Library
|
|||||||
set { _fileData = value; }
|
set { _fileData = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
public ArchiveFileState State { get; set; } = ArchiveFileState.Empty;
|
public ArchiveFileState State { get; set; } = ArchiveFileState.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -391,18 +413,30 @@ namespace Switch_Toolbox.Library
|
|||||||
|
|
||||||
ArchiveFileInfo = archiveFileInfo;
|
ArchiveFileInfo = archiveFileInfo;
|
||||||
|
|
||||||
if (archiveFileInfo.FileData != null)
|
string Extension = "";
|
||||||
|
if (ArchiveFileInfo.CheckFileMagic)
|
||||||
{
|
{
|
||||||
string Extension = FindMatch(archiveFileInfo.FileData);
|
Extension = FindMatch(archiveFileInfo.FileData);
|
||||||
switch (Extension)
|
}
|
||||||
{
|
|
||||||
case ".bntx": SetImageKey("bntx"); break;
|
switch (Extension)
|
||||||
case ".byaml": SetImageKey("byaml"); break;
|
{
|
||||||
case ".aamp": SetImageKey("aamp"); break;
|
case ".bntx": SetImageKey("bntx"); break;
|
||||||
case ".bfres": SetImageKey("bfres"); break;
|
case ".byaml": SetImageKey("byaml"); break;
|
||||||
case ".sbfres": SetImageKey("sbfres"); break;
|
case ".aamp": SetImageKey("aamp"); break;
|
||||||
default: SetImageKey("fileBlank"); break;
|
case ".bfres": SetImageKey("bfres"); break;
|
||||||
}
|
case ".sbfres": SetImageKey("sbfres"); break;
|
||||||
|
case ".dds":
|
||||||
|
case ".tga":
|
||||||
|
case ".jpg":
|
||||||
|
case ".jpeg":
|
||||||
|
case ".tiff":
|
||||||
|
case ".png":
|
||||||
|
case ".gif":
|
||||||
|
case ".astc":
|
||||||
|
SetImageKey("texture"); break;
|
||||||
|
|
||||||
|
default: SetImageKey("fileBlank"); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,11 +30,11 @@ namespace Switch_Toolbox.Library
|
|||||||
var asGb = Math.Round((double)value / SizeOfGb, decimalPlaces);
|
var asGb = Math.Round((double)value / SizeOfGb, decimalPlaces);
|
||||||
var asMb = Math.Round((double)value / SizeOfMb, decimalPlaces);
|
var asMb = Math.Round((double)value / SizeOfMb, decimalPlaces);
|
||||||
var asKb = Math.Round((double)value / SizeOfKb, decimalPlaces);
|
var asKb = Math.Round((double)value / SizeOfKb, decimalPlaces);
|
||||||
string chosenValue = asTb > 1 ? string.Format("{0}Tb", asTb)
|
string chosenValue = asTb > 1 ? string.Format("{0} TB", asTb)
|
||||||
: asGb > 1 ? string.Format("{0}Gb", asGb)
|
: asGb > 1 ? string.Format("{0} GB", asGb)
|
||||||
: asMb > 1 ? string.Format("{0}Mb", asMb)
|
: asMb > 1 ? string.Format("{0} MB", asMb)
|
||||||
: asKb > 1 ? string.Format("{0}Kb", asKb)
|
: asKb > 1 ? string.Format("{0} KB", asKb)
|
||||||
: string.Format("{0}B", Math.Round((double)value, decimalPlaces));
|
: string.Format("{0} bytes", Math.Round((double)value, decimalPlaces));
|
||||||
return chosenValue;
|
return chosenValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,6 +47,8 @@ namespace Switch_Toolbox.Library
|
|||||||
|
|
||||||
public static Point Location = new Point(364, 0);
|
public static Point Location = new Point(364, 0);
|
||||||
|
|
||||||
|
public static int EditorDiplayIndex = 0;
|
||||||
|
|
||||||
public static int ListPanelWidth;
|
public static int ListPanelWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user