support customize the server order
This commit is contained in:
@@ -42,6 +42,8 @@ Remarks=备注
|
||||
OK=确定
|
||||
Cancel=取消
|
||||
New server=未配置的服务器
|
||||
Move &Up=上移
|
||||
Move D&own=下移
|
||||
|
||||
# QRCode Form
|
||||
|
||||
|
||||
+53
-1
@@ -47,6 +47,9 @@
|
||||
this.ServerGroupBox = new System.Windows.Forms.GroupBox();
|
||||
this.ServersListBox = new System.Windows.Forms.ListBox();
|
||||
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.MoveDownButton = new System.Windows.Forms.Button();
|
||||
this.MoveUpButton = new System.Windows.Forms.Button();
|
||||
this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.ProxyPortTextBox = new System.Windows.Forms.TextBox();
|
||||
this.ProxyPortLabel = new System.Windows.Forms.Label();
|
||||
@@ -55,6 +58,7 @@
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.ServerGroupBox.SuspendLayout();
|
||||
this.tableLayoutPanel2.SuspendLayout();
|
||||
this.tableLayoutPanel6.SuspendLayout();
|
||||
this.tableLayoutPanel5.SuspendLayout();
|
||||
this.tableLayoutPanel3.SuspendLayout();
|
||||
this.tableLayoutPanel4.SuspendLayout();
|
||||
@@ -184,7 +188,7 @@
|
||||
//
|
||||
// EncryptionSelect
|
||||
//
|
||||
this.EncryptionSelect.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
this.EncryptionSelect.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.EncryptionSelect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.EncryptionSelect.FormattingEnabled = true;
|
||||
@@ -281,6 +285,7 @@
|
||||
//
|
||||
this.ServersListBox.FormattingEnabled = true;
|
||||
this.ServersListBox.IntegralHeight = false;
|
||||
this.ServersListBox.ItemHeight = 12;
|
||||
this.ServersListBox.Location = new System.Drawing.Point(0, 0);
|
||||
this.ServersListBox.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.ServersListBox.Name = "ServersListBox";
|
||||
@@ -295,6 +300,7 @@
|
||||
this.tableLayoutPanel2.ColumnCount = 2;
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel6, 0, 2);
|
||||
this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel5, 1, 1);
|
||||
this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel3, 1, 2);
|
||||
this.tableLayoutPanel2.Controls.Add(this.ServersListBox, 0, 0);
|
||||
@@ -310,6 +316,48 @@
|
||||
this.tableLayoutPanel2.Size = new System.Drawing.Size(427, 238);
|
||||
this.tableLayoutPanel2.TabIndex = 7;
|
||||
//
|
||||
// tableLayoutPanel6
|
||||
//
|
||||
this.tableLayoutPanel6.AutoSize = true;
|
||||
this.tableLayoutPanel6.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||
this.tableLayoutPanel6.ColumnCount = 2;
|
||||
this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel6.Controls.Add(this.MoveDownButton, 1, 0);
|
||||
this.tableLayoutPanel6.Controls.Add(this.MoveUpButton, 0, 0);
|
||||
this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.tableLayoutPanel6.Location = new System.Drawing.Point(0, 211);
|
||||
this.tableLayoutPanel6.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.tableLayoutPanel6.Name = "tableLayoutPanel6";
|
||||
this.tableLayoutPanel6.RowCount = 1;
|
||||
this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel6.Size = new System.Drawing.Size(166, 32);
|
||||
this.tableLayoutPanel6.TabIndex = 10;
|
||||
//
|
||||
// MoveDownButton
|
||||
//
|
||||
this.MoveDownButton.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.MoveDownButton.Location = new System.Drawing.Point(86, 6);
|
||||
this.MoveDownButton.Margin = new System.Windows.Forms.Padding(3, 6, 0, 3);
|
||||
this.MoveDownButton.Name = "MoveDownButton";
|
||||
this.MoveDownButton.Size = new System.Drawing.Size(80, 23);
|
||||
this.MoveDownButton.TabIndex = 7;
|
||||
this.MoveDownButton.Text = "Move D&own";
|
||||
this.MoveDownButton.UseVisualStyleBackColor = true;
|
||||
this.MoveDownButton.Click += new System.EventHandler(this.MoveDownButton_Click);
|
||||
//
|
||||
// MoveUpButton
|
||||
//
|
||||
this.MoveUpButton.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.MoveUpButton.Location = new System.Drawing.Point(0, 6);
|
||||
this.MoveUpButton.Margin = new System.Windows.Forms.Padding(0, 6, 3, 3);
|
||||
this.MoveUpButton.Name = "MoveUpButton";
|
||||
this.MoveUpButton.Size = new System.Drawing.Size(80, 23);
|
||||
this.MoveUpButton.TabIndex = 6;
|
||||
this.MoveUpButton.Text = "Move &Up";
|
||||
this.MoveUpButton.UseVisualStyleBackColor = true;
|
||||
this.MoveUpButton.Click += new System.EventHandler(this.MoveUpButton_Click);
|
||||
//
|
||||
// tableLayoutPanel5
|
||||
//
|
||||
this.tableLayoutPanel5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
@@ -418,6 +466,7 @@
|
||||
this.ServerGroupBox.PerformLayout();
|
||||
this.tableLayoutPanel2.ResumeLayout(false);
|
||||
this.tableLayoutPanel2.PerformLayout();
|
||||
this.tableLayoutPanel6.ResumeLayout(false);
|
||||
this.tableLayoutPanel5.ResumeLayout(false);
|
||||
this.tableLayoutPanel5.PerformLayout();
|
||||
this.tableLayoutPanel3.ResumeLayout(false);
|
||||
@@ -453,6 +502,9 @@
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5;
|
||||
private System.Windows.Forms.TextBox ProxyPortTextBox;
|
||||
private System.Windows.Forms.Label ProxyPortLabel;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel6;
|
||||
private System.Windows.Forms.Button MoveDownButton;
|
||||
private System.Windows.Forms.Button MoveUpButton;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -51,6 +51,8 @@ namespace Shadowsocks.View
|
||||
ServerGroupBox.Text = I18N.GetString("Server");
|
||||
OKButton.Text = I18N.GetString("OK");
|
||||
MyCancelButton.Text = I18N.GetString("Cancel");
|
||||
MoveUpButton.Text = I18N.GetString("Move &Up");
|
||||
MoveDownButton.Text = I18N.GetString("Move D&own");
|
||||
this.Text = I18N.GetString("Edit Servers");
|
||||
}
|
||||
|
||||
@@ -58,7 +60,7 @@ namespace Shadowsocks.View
|
||||
{
|
||||
LoadCurrentConfiguration();
|
||||
}
|
||||
|
||||
|
||||
private void ShowWindow()
|
||||
{
|
||||
this.Opacity = 1;
|
||||
@@ -87,7 +89,7 @@ namespace Shadowsocks.View
|
||||
Configuration.CheckLocalPort(localPort);
|
||||
_modifiedConfiguration.configs[_oldSelectedIndex] = server;
|
||||
_modifiedConfiguration.localPort = localPort;
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (FormatException)
|
||||
@@ -113,12 +115,6 @@ namespace Shadowsocks.View
|
||||
ProxyPortTextBox.Text = _modifiedConfiguration.localPort.ToString();
|
||||
EncryptionSelect.Text = server.method ?? "aes-256-cfb";
|
||||
RemarksTextBox.Text = server.remarks;
|
||||
ServerGroupBox.Visible = true;
|
||||
//IPTextBox.Focus();
|
||||
}
|
||||
else
|
||||
{
|
||||
ServerGroupBox.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,6 +137,7 @@ namespace Shadowsocks.View
|
||||
_oldSelectedIndex = 0;
|
||||
}
|
||||
ServersListBox.SelectedIndex = _oldSelectedIndex;
|
||||
UpdateMoveUpAndDownButton();
|
||||
LoadSelectedServer();
|
||||
}
|
||||
|
||||
@@ -162,6 +159,7 @@ namespace Shadowsocks.View
|
||||
ServersListBox.SelectedIndex = _oldSelectedIndex;
|
||||
return;
|
||||
}
|
||||
UpdateMoveUpAndDownButton();
|
||||
LoadSelectedServer();
|
||||
_oldSelectedIndex = ServersListBox.SelectedIndex;
|
||||
}
|
||||
@@ -208,7 +206,9 @@ namespace Shadowsocks.View
|
||||
MessageBox.Show(I18N.GetString("Please add at least one server"));
|
||||
return;
|
||||
}
|
||||
int index = _modifiedConfiguration.index;
|
||||
controller.SaveServers(_modifiedConfiguration.configs, _modifiedConfiguration.localPort);
|
||||
controller.SelectServerIndex(index);
|
||||
this.Close();
|
||||
}
|
||||
|
||||
@@ -227,5 +227,61 @@ namespace Shadowsocks.View
|
||||
controller.ConfigChanged -= controller_ConfigChanged;
|
||||
}
|
||||
|
||||
private void MoveConfigItem(int step)
|
||||
{
|
||||
int index = ServersListBox.SelectedIndex;
|
||||
Server server = _modifiedConfiguration.configs[index];
|
||||
object item = ServersListBox.SelectedItem;
|
||||
|
||||
_modifiedConfiguration.configs.Remove(server);
|
||||
_modifiedConfiguration.configs.Insert(index + step, server);
|
||||
_modifiedConfiguration.index += step;
|
||||
|
||||
ServersListBox.BeginUpdate();
|
||||
_oldSelectedIndex = index + step;
|
||||
ServersListBox.Items.Remove(item);
|
||||
ServersListBox.Items.Insert(index + step, item);
|
||||
ServersListBox.SelectedIndex = index + step;
|
||||
ServersListBox.EndUpdate();
|
||||
|
||||
UpdateMoveUpAndDownButton();
|
||||
}
|
||||
|
||||
private void UpdateMoveUpAndDownButton()
|
||||
{
|
||||
if (ServersListBox.SelectedIndex == 0)
|
||||
{
|
||||
MoveUpButton.Enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
MoveUpButton.Enabled = true;
|
||||
}
|
||||
if (ServersListBox.SelectedIndex == ServersListBox.Items.Count - 1)
|
||||
{
|
||||
MoveDownButton.Enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
MoveDownButton.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void MoveUpButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (ServersListBox.SelectedIndex > 0)
|
||||
{
|
||||
MoveConfigItem(-1); // -1 means move backward
|
||||
}
|
||||
}
|
||||
|
||||
private void MoveDownButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (ServersListBox.SelectedIndex < ServersListBox.Items.Count - 1)
|
||||
{
|
||||
MoveConfigItem(+1); // +1 means move forward
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,9 +112,9 @@
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
Reference in New Issue
Block a user