mirror of
https://github.com/netchx/netch.git
synced 2026-04-17 21:09:01 +08:00
SubscribeForm: Refactor
This commit is contained in:
24
Netch/Forms/SubscribeForm.Designer.cs
generated
24
Netch/Forms/SubscribeForm.Designer.cs
generated
@@ -32,7 +32,7 @@
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SubscribeForm));
|
||||
this.AddSubscriptionBox = new System.Windows.Forms.GroupBox();
|
||||
this.UserAgentTextBox = new System.Windows.Forms.TextBox();
|
||||
this.ClearButton = new System.Windows.Forms.Button();
|
||||
this.UnselectButton = new System.Windows.Forms.Button();
|
||||
this.AddButton = new System.Windows.Forms.Button();
|
||||
this.UserAgentLabel = new System.Windows.Forms.Label();
|
||||
this.LinkTextBox = new System.Windows.Forms.TextBox();
|
||||
@@ -60,7 +60,7 @@
|
||||
// AddSubscriptionBox
|
||||
//
|
||||
this.AddSubscriptionBox.Controls.Add(this.UserAgentTextBox);
|
||||
this.AddSubscriptionBox.Controls.Add(this.ClearButton);
|
||||
this.AddSubscriptionBox.Controls.Add(this.UnselectButton);
|
||||
this.AddSubscriptionBox.Controls.Add(this.AddButton);
|
||||
this.AddSubscriptionBox.Controls.Add(this.UserAgentLabel);
|
||||
this.AddSubscriptionBox.Controls.Add(this.LinkTextBox);
|
||||
@@ -81,15 +81,15 @@
|
||||
this.UserAgentTextBox.Size = new System.Drawing.Size(545, 23);
|
||||
this.UserAgentTextBox.TabIndex = 6;
|
||||
//
|
||||
// ClearButton
|
||||
// UnselectButton
|
||||
//
|
||||
this.ClearButton.Location = new System.Drawing.Point(448, 103);
|
||||
this.ClearButton.Name = "ClearButton";
|
||||
this.ClearButton.Size = new System.Drawing.Size(87, 26);
|
||||
this.ClearButton.TabIndex = 7;
|
||||
this.ClearButton.Text = "Unselect";
|
||||
this.ClearButton.UseVisualStyleBackColor = true;
|
||||
this.ClearButton.Click += new System.EventHandler(this.ClearButton_Click);
|
||||
this.UnselectButton.Location = new System.Drawing.Point(448, 103);
|
||||
this.UnselectButton.Name = "UnselectButton";
|
||||
this.UnselectButton.Size = new System.Drawing.Size(87, 26);
|
||||
this.UnselectButton.TabIndex = 7;
|
||||
this.UnselectButton.Text = "Unselect";
|
||||
this.UnselectButton.UseVisualStyleBackColor = true;
|
||||
this.UnselectButton.Click += new System.EventHandler(this.UnselectButton_Click);
|
||||
//
|
||||
// AddButton
|
||||
//
|
||||
@@ -97,7 +97,7 @@
|
||||
this.AddButton.Name = "AddButton";
|
||||
this.AddButton.Size = new System.Drawing.Size(113, 26);
|
||||
this.AddButton.TabIndex = 7;
|
||||
this.AddButton.Text = "Add / Modify";
|
||||
this.AddButton.Text = "Add";
|
||||
this.AddButton.UseVisualStyleBackColor = true;
|
||||
this.AddButton.Click += new System.EventHandler(this.AddButton_Click);
|
||||
//
|
||||
@@ -278,7 +278,7 @@
|
||||
|
||||
private System.Windows.Forms.Panel ControlsPanel;
|
||||
private System.Windows.Forms.TableLayoutPanel MainTableLayoutPanel;
|
||||
private System.Windows.Forms.Button ClearButton;
|
||||
private System.Windows.Forms.Button UnselectButton;
|
||||
private System.Windows.Forms.GroupBox AddSubscriptionBox;
|
||||
private System.Windows.Forms.Label RemarkLabel;
|
||||
private System.Windows.Forms.TextBox LinkTextBox;
|
||||
|
||||
@@ -8,7 +8,16 @@ namespace Netch.Forms
|
||||
{
|
||||
public partial class SubscribeForm : Form
|
||||
{
|
||||
private int _editingIndex = -1;
|
||||
private int SelectedIndex
|
||||
{
|
||||
get
|
||||
{
|
||||
if (SubscribeLinkListView.MultiSelect)
|
||||
throw new Exception();
|
||||
|
||||
return SubscribeLinkListView.SelectedIndices.Count == 0 ? -1 : SubscribeLinkListView.SelectedIndices[0];
|
||||
}
|
||||
}
|
||||
|
||||
public SubscribeForm()
|
||||
{
|
||||
@@ -20,51 +29,37 @@ namespace Netch.Forms
|
||||
UseSelectedServerCheckBox.Checked = Global.Settings.Server.Any() && Global.Settings.UseProxyToUpdateSubscription;
|
||||
|
||||
InitSubscribeLink();
|
||||
ResetEditingGroup();
|
||||
}
|
||||
|
||||
#region EventHandler
|
||||
|
||||
/// <summary>
|
||||
/// 订阅列表选中节点
|
||||
/// </summary>
|
||||
private void SubscribeLinkListView_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
var listView = (ListView) sender;
|
||||
if (listView.SelectedItems.Count == 0)
|
||||
{
|
||||
// 重置
|
||||
ResetEditingGroup();
|
||||
return;
|
||||
}
|
||||
_editingIndex = listView.SelectedItems[0].Index;
|
||||
|
||||
var target = SubscribeLinkListView.Items[_editingIndex];
|
||||
|
||||
AddSubscriptionBox.Text = target.SubItems[1].Text;
|
||||
RemarkTextBox.Text = target.SubItems[1].Text;
|
||||
LinkTextBox.Text = target.SubItems[2].Text;
|
||||
UserAgentTextBox.Text = target.SubItems[3].Text;
|
||||
}
|
||||
|
||||
private void SubscribeLinkListView_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
if (SubscribeLinkListView.SelectedItems.Count > 0)
|
||||
if (SelectedIndex != -1)
|
||||
{
|
||||
pContextMenuStrip.Show(SubscribeLinkListView, e.Location);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SubscribeLinkListView_ItemChecked(object sender, ItemCheckedEventArgs e)
|
||||
/// <summary>
|
||||
/// 选中/取消选中
|
||||
/// </summary>
|
||||
private void SubscribeLinkListView_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
var viewItem = SubscribeLinkListView.Items[e.Item.Index];
|
||||
var subscribeLink = Global.Settings.SubscribeLink[e.Item.Index];
|
||||
subscribeLink.Enable = viewItem.Checked;
|
||||
SetEditingGroup(SelectedIndex);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 订阅启/禁用
|
||||
/// </summary>
|
||||
private void SubscribeLinkListView_ItemChecked(object sender, ItemCheckedEventArgs e)
|
||||
{
|
||||
var index = e.Item.Index;
|
||||
Global.Settings.SubscribeLink[index].Enable = SubscribeLinkListView.Items[index].Checked;
|
||||
}
|
||||
|
||||
private void SubscribeForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
@@ -76,7 +71,7 @@ namespace Netch.Forms
|
||||
|
||||
#region EditBox
|
||||
|
||||
private void ClearButton_Click(object sender, EventArgs e)
|
||||
private void UnselectButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
ResetEditingGroup();
|
||||
}
|
||||
@@ -101,7 +96,7 @@ namespace Netch.Forms
|
||||
return;
|
||||
}
|
||||
|
||||
if (_editingIndex == -1)
|
||||
if (SelectedIndex == -1)
|
||||
{
|
||||
if (Global.Settings.SubscribeLink.Any(link => link.Remark.Equals(RemarkTextBox.Text)))
|
||||
{
|
||||
@@ -119,9 +114,9 @@ namespace Netch.Forms
|
||||
}
|
||||
else
|
||||
{
|
||||
var subscribeLink = Global.Settings.SubscribeLink[_editingIndex];
|
||||
var subscribeLink = Global.Settings.SubscribeLink[SelectedIndex];
|
||||
|
||||
RenameServersGroup(subscribeLink.Remark, RemarkTextBox.Text);
|
||||
RenameServers(subscribeLink.Remark, RemarkTextBox.Text);
|
||||
subscribeLink.Link = LinkTextBox.Text;
|
||||
subscribeLink.Remark = RemarkTextBox.Text;
|
||||
subscribeLink.UserAgent = UserAgentTextBox.Text;
|
||||
@@ -130,7 +125,6 @@ namespace Netch.Forms
|
||||
MessageBoxX.Show(i18N.Translate("Saved"));
|
||||
|
||||
InitSubscribeLink();
|
||||
ResetEditingGroup();
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -142,13 +136,11 @@ namespace Netch.Forms
|
||||
if (MessageBoxX.Show(i18N.Translate("Delete or not ? Will clean up the corresponding group of items in the server list"), confirm: true) != DialogResult.OK)
|
||||
return;
|
||||
|
||||
var viewItem = SubscribeLinkListView.SelectedItems[0];
|
||||
var subscribeLink = Global.Settings.SubscribeLink[viewItem.Index];
|
||||
|
||||
DeleteServersInGroup(subscribeLink.Remark);
|
||||
var subscribeLink = Global.Settings.SubscribeLink[SelectedIndex];
|
||||
DeleteServers(subscribeLink.Remark);
|
||||
Global.Settings.SubscribeLink.Remove(subscribeLink);
|
||||
SubscribeLinkListView.Items.Remove(viewItem);
|
||||
ResetEditingGroup();
|
||||
|
||||
InitSubscribeLink();
|
||||
}
|
||||
|
||||
private void deleteServerToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
@@ -156,27 +148,24 @@ namespace Netch.Forms
|
||||
if (MessageBoxX.Show(i18N.Translate("Confirm deletion?"), confirm: true) != DialogResult.OK)
|
||||
return;
|
||||
|
||||
var viewItem = SubscribeLinkListView.SelectedItems[0];
|
||||
DeleteServersInGroup(viewItem.SubItems[1].Text);
|
||||
DeleteServers(Global.Settings.SubscribeLink[SelectedIndex].Remark);
|
||||
}
|
||||
|
||||
private void CopyLinkToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
var viewItem = SubscribeLinkListView.SelectedItems[0];
|
||||
var subscribeLink = Global.Settings.SubscribeLink[viewItem.Index];
|
||||
Clipboard.SetText(subscribeLink.Link);
|
||||
Clipboard.SetText(Global.Settings.SubscribeLink[SelectedIndex].Link);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Helper
|
||||
|
||||
private static void DeleteServersInGroup(string group)
|
||||
private static void DeleteServers(string group)
|
||||
{
|
||||
Global.Settings.Server.RemoveAll(server => server.Group == group);
|
||||
}
|
||||
|
||||
private static void RenameServersGroup(string oldGroup, string newGroup)
|
||||
private static void RenameServers(string oldGroup, string newGroup)
|
||||
{
|
||||
foreach (var server in Global.Settings.Server.Where(server => server.Group == oldGroup))
|
||||
{
|
||||
@@ -190,7 +179,7 @@ namespace Netch.Forms
|
||||
|
||||
foreach (var item in Global.Settings.SubscribeLink)
|
||||
{
|
||||
var viewItem = new ListViewItem(new[]
|
||||
SubscribeLinkListView.Items.Add(new ListViewItem(new[]
|
||||
{
|
||||
"",
|
||||
item.Remark,
|
||||
@@ -199,19 +188,36 @@ namespace Netch.Forms
|
||||
})
|
||||
{
|
||||
Checked = item.Enable
|
||||
};
|
||||
SubscribeLinkListView.Items.Add(viewItem);
|
||||
});
|
||||
}
|
||||
|
||||
ResetEditingGroup();
|
||||
}
|
||||
|
||||
private void ResetEditingGroup()
|
||||
{
|
||||
_editingIndex = -1;
|
||||
AddSubscriptionBox.Text = string.Empty;
|
||||
RemarkTextBox.Text = string.Empty;
|
||||
LinkTextBox.Text = string.Empty;
|
||||
UserAgentTextBox.Text = WebUtil.DefaultUserAgent;
|
||||
}
|
||||
private void SetEditingGroup(int index)
|
||||
{
|
||||
if (index == -1)
|
||||
{
|
||||
ResetEditingGroup();
|
||||
AddButton.Text = i18N.Translate("Add");
|
||||
return;
|
||||
}
|
||||
|
||||
var item = Global.Settings.SubscribeLink[index];
|
||||
AddSubscriptionBox.Text = item.Remark;
|
||||
RemarkTextBox.Text = item.Remark;
|
||||
LinkTextBox.Text = item.Link;
|
||||
UserAgentTextBox.Text = item.UserAgent;
|
||||
|
||||
AddButton.Text = i18N.Translate("Modify");
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
"Add": "添加",
|
||||
"Scan": "扫描",
|
||||
"Save": "保存",
|
||||
"Add / Modify": "保存/修改",
|
||||
"Modify": "修改",
|
||||
"Select a folder": "选择一个目录",
|
||||
"Please enter an process name (xxx.exe)": "请输入一个进程名(xxx.exe)",
|
||||
"Rule does not conform to C++ regular expression syntax": "规则不符合C ++正则表达式语法",
|
||||
|
||||
Reference in New Issue
Block a user