/Horizon/Snapshots/SnapshotPreviewForm.cs |
@@ -1,8 +1,11 @@ |
using System; |
using System.Drawing; |
using System.Security.Policy; |
using System.Threading; |
using System.Windows.Forms; |
using Horizon.Database; |
using Horizon.Utilities; |
using Serilog; |
|
namespace Horizon.Snapshots |
{ |
@@ -27,6 +30,8 @@ |
private readonly SnapshotDatabase _snapshotDatabase; |
|
private readonly SnapshotManagerForm _snapshotManagerForm; |
private readonly string _snapshotHash; |
private readonly CancellationToken _cancellationToken; |
|
#endregion |
|
@@ -38,16 +43,18 @@ |
Utilities.WindowState.FormTracker.Track(this); |
} |
|
public SnapshotPreviewForm(SnapshotManagerForm snapshotManagerForm, SnapshotDatabase snapshotDatabase) : this() |
public SnapshotPreviewForm(SnapshotManagerForm snapshotManagerForm, string hash, |
SnapshotDatabase snapshotDatabase, CancellationToken cancellationToken) : this() |
{ |
_snapshotManagerForm = snapshotManagerForm; |
_snapshotHash = hash; |
_snapshotManagerForm.Move += SnapshotManagerFormMove; |
_snapshotManagerForm.Resize += SnapshotManagerFormResize; |
_snapshotManagerForm.PreviewRetrieved += SnapshotManagerForm_PreviewRetrieved; |
; |
|
_snapshotDatabase = snapshotDatabase; |
_snapshotDatabase.SnapshotNoteUpdate += SnapshotDatabase_SnapshotNoteUpdate; |
|
_cancellationToken = cancellationToken; |
} |
|
/// <summary> |
@@ -62,7 +69,6 @@ |
} |
|
_snapshotDatabase.SnapshotNoteUpdate -= SnapshotDatabase_SnapshotNoteUpdate; |
_snapshotManagerForm.PreviewRetrieved -= SnapshotManagerForm_PreviewRetrieved; |
|
_snapshotManagerForm.Move -= SnapshotManagerFormMove; |
_snapshotManagerForm.Resize -= SnapshotManagerFormResize; |
@@ -74,23 +80,7 @@ |
|
#region Event Handlers |
|
private void SnapshotManagerForm_PreviewRetrieved(object sender, PreviewRetrievedEventArgs e) |
{ |
using (var image = pictureBox1.Image) |
{ |
pictureBox1.Image = e.SnapshotPreview.Shot; |
richTextBox1.Text = e.SnapshotPreview.Note; |
} |
|
if (string.IsNullOrEmpty(e.SnapshotPreview.Note)) |
{ |
splitContainer1.Panel2Collapsed = true; |
return; |
} |
|
splitContainer1.Panel2Collapsed = false; |
} |
|
private void SnapshotDatabase_SnapshotNoteUpdate(object sender, SnapshotNoteUpdateEventArgs e) |
{ |
switch (e) |
@@ -123,11 +113,42 @@ |
Relocate(); |
} |
|
private void SnapshotPreviewForm_Load(object sender, EventArgs e) |
private async void SnapshotPreviewForm_Load(object sender, EventArgs e) |
{ |
Relocate(); |
|
try |
{ |
var snapshotPreview = await _snapshotDatabase.RetrievePreviewAsync(_snapshotHash, _cancellationToken); |
|
if (snapshotPreview == null) |
{ |
return; |
} |
|
this.InvokeIfRequired(form => |
{ |
using (var image = form.pictureBox1.Image) |
{ |
form.pictureBox1.Image = snapshotPreview.Shot; |
form.richTextBox1.Text = snapshotPreview.Note; |
} |
|
if (string.IsNullOrEmpty(snapshotPreview.Note)) |
{ |
form.splitContainer1.Panel2Collapsed = true; |
return; |
} |
|
form.splitContainer1.Panel2Collapsed = false; |
}); |
} |
catch (Exception exception) |
{ |
Log.Error(exception, "Could not retrieve preview."); |
} |
} |
|
private void SnapshotManagerFormMove(object sender, EventArgs e) |
{ |
Relocate(); |