Skip to content

Commit

Permalink
Refactoring.
Browse files Browse the repository at this point in the history
  • Loading branch information
TBXin committed Feb 29, 2016
1 parent 5fe1f24 commit 95d0adb
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 14 deletions.
17 changes: 8 additions & 9 deletions src/NFirmwareEditor/Firmware/FirmwareImageProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,14 @@ private static List<ImageMetadata> ReadImagesTable<T>(ImageTableDefinition image
return metadata.ReadImage(imageData);
}

public static List<bool[,]> ReadImages(byte[] firmware, IEnumerable<ImageMetadata> metadata)
{
if (firmware == null) throw new ArgumentNullException("firmware");
if (metadata == null) throw new ArgumentNullException("metadata");

return metadata.Select(x => ReadImage(firmware, x)).ToList();
}

public static void WriteImage(byte[] firmware, bool[,] imageData, ImageMetadata metadata)
{
if (firmware == null) throw new ArgumentNullException("firmware");
Expand Down Expand Up @@ -196,15 +204,6 @@ public static void WriteImage(byte[] firmware, bool[,] imageData, ImageMetadata
return result;
}

public static ExportedImage CreateExportedImage(byte[] firmware, ImageMetadata metadata)
{
if (firmware == null) throw new ArgumentNullException("firmware");
if (metadata == null) throw new ArgumentNullException("metadata");

var imageData = ReadImage(firmware, metadata);
return new ExportedImage(metadata.Index, imageData);
}

private static byte[] GetImageBytes(byte[] firmware, ImageMetadata metadata)
{
return firmware
Expand Down
16 changes: 11 additions & 5 deletions src/NFirmwareEditor/MainWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using NFirmwareEditor.Core;
using NFirmwareEditor.Firmware;
Expand Down Expand Up @@ -473,12 +472,19 @@ private void ExportContextMenuItem_Click(object sender, EventArgs e)
var selectedItems = GetSelectedImagesMetadata(ImagesListBox);
if (selectedItems.Count == 0) return;

var images = selectedItems.Select(x => FirmwareImageProcessor.CreateExportedImage(m_firmware, x)).ToList();
using (var sf = new SaveFileDialog { Filter = Consts.ExportImageFilter})
string fileName;
using (var sf = new SaveFileDialog { Filter = Consts.ExportImageFilter })
{
if (sf.ShowDialog() != DialogResult.OK) return;
ImageExporter.Export(sf.FileName, images);
fileName = sf.FileName;
}

var images = selectedItems.Select(x =>
{
var imageData = FirmwareImageProcessor.ReadImage(m_firmware, x);
return new ExportedImage(x.Index, imageData);
}).ToList();
ImageExporter.Export(fileName, images);
}

private void ImportContextMenuItem_Click(object sender, EventArgs e)
Expand All @@ -497,7 +503,7 @@ private void ImportContextMenuItem_Click(object sender, EventArgs e)
if (exportedImages.Count == 0) return;

var importedImages = exportedImages.Select(x => x.Data).ToList();
var originalImages = selectedItems.Select(x => FirmwareImageProcessor.ReadImage(m_firmware, x)).ToList();
var originalImages = FirmwareImageProcessor.ReadImages(m_firmware, selectedItems);

var minimumImagesCount = Math.Min(originalImages.Count, importedImages.Count);
using (var importWindow = new ImportImageWindow(originalImages.Take(minimumImagesCount), importedImages.Take(minimumImagesCount)))
Expand Down

0 comments on commit 95d0adb

Please sign in to comment.