Add GUI console.

This commit is contained in:
2018-08-27 18:25:11 +01:00
parent 5a2de92355
commit f2757dc24c
10 changed files with 316 additions and 12 deletions

View File

@@ -1,5 +1,7 @@
using System;
using System.ComponentModel;
using System.Linq;
using DiscImageChef.Console;
using DiscImageChef.Devices;
using Eto.Forms;
using Eto.Serialization.Xaml;
@@ -8,14 +10,19 @@ namespace DiscImageChef.Gui
{
public class frmMain : Form
{
bool closing;
Splitter splMain;
TreeGridView treeImages;
TreeGridItemCollection treeImagesItems;
public frmMain()
public frmMain(bool debug, bool verbose)
{
XamlReader.Load(this);
ConsoleHandler.Init();
ConsoleHandler.Debug = debug;
ConsoleHandler.Verbose = verbose;
treeImagesItems = new TreeGridItemCollection();
treeImages.Columns.Add(new GridColumn {HeaderText = "Name", DataCell = new TextBoxCell(0)});
@@ -24,11 +31,22 @@ namespace DiscImageChef.Gui
treeImages.ShowHeader = false;
treeImages.DataStore = treeImagesItems;
imagesRoot = new TreeGridItem {Values = new object[] {"Images"}};
imagesRoot = new TreeGridItem {Values = new object[] {"Images"}};
devicesRoot = new TreeGridItem {Values = new object[] {"Devices"}};
treeImagesItems.Add(imagesRoot);
treeImagesItems.Add(devicesRoot);
Closing += OnClosing;
}
void OnClosing(object sender, CancelEventArgs e)
{
// This prevents an infinite loop of crashes :p
if(closing) return;
closing = true;
Application.Instance.Quit();
}
protected void OnMenuOpen(object sender, EventArgs e)
@@ -60,11 +78,15 @@ namespace DiscImageChef.Gui
void RefreshDevices()
{
DicConsole.WriteLine("Refreshing devices");
devicesRoot.Children.Clear();
foreach(DeviceInfo device in Device.ListDevices().Where(d => d.Supported).OrderBy(d => d.Vendor)
.ThenBy(d => d.Model))
{
DicConsole.DebugWriteLine("Main window",
"Found support device model {0} by manufacturer {1} on bus {2} and path {3}",
device.Model, device.Vendor, device.Bus, device.Path);
devicesRoot.Children.Add(new TreeGridItem
{
Values = new object[] {$"{device.Vendor} {device.Model} ({device.Bus})", device.Path}
@@ -74,6 +96,11 @@ namespace DiscImageChef.Gui
treeImages.ReloadData();
}
protected void OnMenuConsole(object sender, EventArgs e)
{
new frmConsole().Show();
}
#region XAML IDs
TreeGridItem devicesRoot;
GridView grdFiles;