Skip to content

Commit

Permalink
Total overhaul. No more metadata requests. Metadata instead part of S…
Browse files Browse the repository at this point in the history
…3 object key
  • Loading branch information
Ove Bakken committed Sep 27, 2020
1 parent b9e2013 commit 432026f
Show file tree
Hide file tree
Showing 16 changed files with 1,915 additions and 1,534 deletions.
306 changes: 158 additions & 148 deletions MyS3.CLI/Client.cs

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion MyS3.CLI/MyS3.CLI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<TargetFramework>netcoreapp3.1</TargetFramework>
<LangVersion>preview</LangVersion>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<Version>3.0.1</Version>
<Version>4.0.0</Version>
<Authors>Ove Bakken</Authors>
<Copyright>MIT</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
Expand Down
115 changes: 115 additions & 0 deletions MyS3.GUI/ListViewColumnSorter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace MyS3.GUI
{
using System.Collections;
using System.Windows.Forms;

/// <summary>
/// This class is an implementation of the 'IComparer' interface.
/// </summary>
public class ListViewColumnSorter : IComparer
{
/// <summary>
/// Specifies the column to be sorted
/// </summary>
private int ColumnToSort;

/// <summary>
/// Specifies the order in which to sort (i.e. 'Ascending').
/// </summary>
private SortOrder OrderOfSort;

/// <summary>
/// Case insensitive comparer object
/// </summary>
private CaseInsensitiveComparer ObjectCompare;

/// <summary>
/// Class constructor. Initializes various elements
/// </summary>
public ListViewColumnSorter()
{
// Initialize the column to '0'
ColumnToSort = 0;

// Initialize the sort order to 'none'
OrderOfSort = SortOrder.None;

// Initialize the CaseInsensitiveComparer object
ObjectCompare = new CaseInsensitiveComparer();
}

/// <summary>
/// This method is inherited from the IComparer interface. It compares the two objects passed using a case insensitive comparison.
/// </summary>
/// <param name="x">First object to be compared</param>
/// <param name="y">Second object to be compared</param>
/// <returns>The result of the comparison. "0" if equal, negative if 'x' is less than 'y' and positive if 'x' is greater than 'y'</returns>
public int Compare(object x, object y)
{
int compareResult = 0;
ListViewItem listviewX, listviewY;

// Cast the objects to be compared to ListViewItem objects
listviewX = (ListViewItem)x;
listviewY = (ListViewItem)y;

// Compare the two items
try
{
compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, listviewY.SubItems[ColumnToSort].Text);
}
catch (Exception) { }

// Calculate correct return value based on object comparison
if (OrderOfSort == SortOrder.Ascending)
{
// Ascending sort is selected, return normal result of compare operation
return compareResult;
}
else if (OrderOfSort == SortOrder.Descending)
{
// Descending sort is selected, return negative result of compare operation
return (-compareResult);
}
else
{
// Return '0' to indicate they are equal
return 0;
}
}

/// <summary>
/// Gets or sets the number of the column to which to apply the sorting operation (Defaults to '0').
/// </summary>
public int SortColumn
{
set
{
ColumnToSort = value;
}
get
{
return ColumnToSort;
}
}

/// <summary>
/// Gets or sets the order of sorting to apply (for example, 'Ascending' or 'Descending').
/// </summary>
public SortOrder Order
{
set
{
OrderOfSort = value;
}
get
{
return OrderOfSort;
}
}
}
}
9 changes: 4 additions & 5 deletions MyS3.GUI/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ private long GetDownloadedBytes()
{
long downloaded = 0;
foreach (MyS3Runner MyS3Runner in myS3s)
downloaded += MyS3Runner.Downloaded;
downloaded += MyS3Runner.DownloadedTotalBytes + MyS3Runner.RestoreDownloadedTotalBytes;
return downloaded;
}

private long GetUploadedBytes()
{
long downloaded = 0;
foreach (MyS3Runner MyS3Runner in myS3s)
downloaded += MyS3Runner.Uploaded;
downloaded += MyS3Runner.UploadedTotalBytes;
return downloaded;
}

Expand All @@ -51,7 +51,7 @@ public MainForm()
StartInternetChecker();
CreateEditSetupMenuItems();

UseMyS3Setups();
TriggerUseMyS3Setups();
}

private void StartInternetChecker()
Expand Down Expand Up @@ -136,8 +136,6 @@ public void UseMyS3Setups()
// Show or hide instructions and MyS3 tabs
noSetupsLabel.Visible = SetupStore.Entries.Count == 0;

if (!Tools.HasInternet()) return;

// ---

// Remove old or test overview controls
Expand Down Expand Up @@ -186,6 +184,7 @@ public void UseMyS3Setups()
{
myS3.Setup();
if (pauseMenuItem.Checked) myS3.Pause(true);

myS3.Start();

myS3s.Add(myS3);
Expand Down
2 changes: 1 addition & 1 deletion MyS3.GUI/MyS3.GUI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<Authors>Ove Bakken</Authors>
<Company>Ove Bakken</Company>
<Version>3.0.1</Version>
<Version>4.0.0</Version>
<Copyright>MIT</Copyright>
</PropertyGroup>

Expand Down
Loading

0 comments on commit 432026f

Please sign in to comment.