Add download speed limit
This commit is contained in:
parent
0ed5062683
commit
9ec877999e
11 changed files with 280 additions and 21 deletions
|
|
@ -43,6 +43,8 @@
|
|||
this.panel3 = new System.Windows.Forms.Panel();
|
||||
this.virtualFlowControl2 = new LibationWinForms.ProcessQueue.VirtualFlowControl();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.numericUpDown1 = new LibationWinForms.ProcessQueue.NumericUpDownSuffix();
|
||||
this.btnCleanFinished = new System.Windows.Forms.Button();
|
||||
this.cancelAllBtn = new System.Windows.Forms.Button();
|
||||
this.tabPage2 = new System.Windows.Forms.TabPage();
|
||||
|
|
@ -58,6 +60,7 @@
|
|||
this.tabControl1.SuspendLayout();
|
||||
this.tabPage1.SuspendLayout();
|
||||
this.panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
|
||||
this.tabPage2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.logDGV)).BeginInit();
|
||||
this.panel2.SuspendLayout();
|
||||
|
|
@ -166,6 +169,8 @@
|
|||
//
|
||||
this.panel1.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel1.Controls.Add(this.label1);
|
||||
this.panel1.Controls.Add(this.numericUpDown1);
|
||||
this.panel1.Controls.Add(this.btnCleanFinished);
|
||||
this.panel1.Controls.Add(this.cancelAllBtn);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
|
|
@ -174,6 +179,44 @@
|
|||
this.panel1.Size = new System.Drawing.Size(390, 25);
|
||||
this.panel1.TabIndex = 2;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(148, 4);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(54, 15);
|
||||
this.label1.TabIndex = 5;
|
||||
this.label1.Text = "DL Limit:";
|
||||
//
|
||||
// numericUpDown1
|
||||
//
|
||||
this.numericUpDown1.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.numericUpDown1.DecimalPlaces = 1;
|
||||
this.numericUpDown1.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
this.numericUpDown1.Location = new System.Drawing.Point(208, 0);
|
||||
this.numericUpDown1.Maximum = new decimal(new int[] {
|
||||
999,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown1.Name = "numericUpDown1";
|
||||
this.numericUpDown1.Size = new System.Drawing.Size(84, 23);
|
||||
this.numericUpDown1.Suffix = " MB/s";
|
||||
this.numericUpDown1.TabIndex = 4;
|
||||
this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.numericUpDown1.ThousandsSeparator = true;
|
||||
this.numericUpDown1.Value = new decimal(new int[] {
|
||||
999,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
|
||||
//
|
||||
// btnCleanFinished
|
||||
//
|
||||
this.btnCleanFinished.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
|
|
@ -305,6 +348,8 @@
|
|||
this.tabControl1.ResumeLayout(false);
|
||||
this.tabPage1.ResumeLayout(false);
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
|
||||
this.tabPage2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.logDGV)).EndInit();
|
||||
this.panel2.ResumeLayout(false);
|
||||
|
|
@ -337,5 +382,7 @@
|
|||
private System.Windows.Forms.DataGridViewTextBoxColumn timestampColumn;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn logEntryColumn;
|
||||
private System.Windows.Forms.Button logCopyBtn;
|
||||
private NumericUpDownSuffix numericUpDown1;
|
||||
private System.Windows.Forms.Label label1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using ApplicationServices;
|
||||
using LibationFileManager;
|
||||
|
||||
namespace LibationWinForms.ProcessQueue
|
||||
{
|
||||
|
|
@ -46,6 +48,9 @@ namespace LibationWinForms.ProcessQueue
|
|||
{
|
||||
InitializeComponent();
|
||||
|
||||
var speedLimitMBps = Configuration.Instance.DownloadSpeedLimit / 1024m / 1024;
|
||||
numericUpDown1.Value = speedLimitMBps > numericUpDown1.Maximum || speedLimitMBps < numericUpDown1.Minimum ? 0 : speedLimitMBps;
|
||||
|
||||
popoutBtn.DisplayStyle = ToolStripItemDisplayStyle.Text;
|
||||
popoutBtn.Name = "popoutBtn";
|
||||
popoutBtn.Text = "Pop Out";
|
||||
|
|
@ -424,5 +429,57 @@ This error appears to be caused by a temporary interruption of service that some
|
|||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
var newValue = (long)(numericUpDown1.Value * 1024 * 1024);
|
||||
|
||||
var config = Configuration.Instance;
|
||||
config.DownloadSpeedLimit = newValue;
|
||||
if (config.DownloadSpeedLimit > newValue)
|
||||
numericUpDown1.Value =
|
||||
numericUpDown1.Value == 0.01m ? config.DownloadSpeedLimit / 1024m / 1024
|
||||
: 0;
|
||||
|
||||
numericUpDown1.Increment =
|
||||
numericUpDown1.Value > 100 ? 10
|
||||
: numericUpDown1.Value > 10 ? 1
|
||||
: numericUpDown1.Value > 1 ? 0.1m
|
||||
: 0.01m;
|
||||
|
||||
numericUpDown1.DecimalPlaces =
|
||||
numericUpDown1.Value >= 10 ? 0
|
||||
: numericUpDown1.Value >= 1 ? 1
|
||||
: 2;
|
||||
}
|
||||
}
|
||||
public class NumericUpDownSuffix : NumericUpDown
|
||||
{
|
||||
[Description("Suffix displayed after numeric value."), Category("Data")]
|
||||
[Browsable(true)]
|
||||
[EditorBrowsable(EditorBrowsableState.Always)]
|
||||
[DisallowNull]
|
||||
public string Suffix
|
||||
{
|
||||
get => _suffix;
|
||||
set
|
||||
{
|
||||
base.Text = string.IsNullOrEmpty(_suffix) ? base.Text : base.Text.Replace(_suffix, value);
|
||||
_suffix = value;
|
||||
ChangingText = true;
|
||||
}
|
||||
}
|
||||
private string _suffix = string.Empty;
|
||||
public override string Text
|
||||
{
|
||||
get => string.IsNullOrEmpty(Suffix) ? base.Text : base.Text.Replace(Suffix, string.Empty);
|
||||
set
|
||||
{
|
||||
if (Value == Minimum)
|
||||
base.Text = "∞";
|
||||
else
|
||||
base.Text = value + Suffix;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue