SubscribeForm: Fix Enable Checked Event, Organize code

This commit is contained in:
ChsBuffer
2021-01-12 17:46:52 +08:00
parent 45bf31e9f3
commit 651fbb6ff9
2 changed files with 106 additions and 103 deletions

View File

@@ -160,6 +160,7 @@
this.SubscribeLinkListView.TabIndex = 0;
this.SubscribeLinkListView.UseCompatibleStateImageBehavior = false;
this.SubscribeLinkListView.View = System.Windows.Forms.View.Details;
this.SubscribeLinkListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.SubscribeLinkListView_ItemChecked);
this.SubscribeLinkListView.SelectedIndexChanged += new System.EventHandler(this.SubscribeLinkListView_SelectedIndexChanged);
this.SubscribeLinkListView.MouseUp += new System.Windows.Forms.MouseEventHandler(this.SubscribeLinkListView_MouseUp);
//

View File

@@ -23,62 +23,64 @@ namespace Netch.Forms
ResetEditingGroup();
}
public void InitSubscribeLink()
{
SubscribeLinkListView.Items.Clear();
#region EventHandler
foreach (var item in Global.Settings.SubscribeLink)
/// <summary>
/// 订阅列表选中节点
/// </summary>
private void SubscribeLinkListView_SelectedIndexChanged(object sender, EventArgs e)
{
var listView = (ListView) sender;
if (listView.SelectedItems.Count == 0)
{
var viewItem = new ListViewItem(new[]
{
"",
item.Remark,
item.Link,
!string.IsNullOrEmpty(item.UserAgent) ? item.UserAgent : WebUtil.DefaultUserAgent
});
viewItem.Checked = item.Enable;
SubscribeLinkListView.Items.Add(viewItem);
// 重置
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 SubscribeForm_FormClosing(object sender, FormClosingEventArgs e)
private void SubscribeLinkListView_MouseUp(object sender, MouseEventArgs e)
{
Configuration.Save();
Global.Settings.UseProxyToUpdateSubscription = UseSelectedServerCheckBox.Checked;
}
private void CopyLinkToolStripMenuItem_Click(object sender, EventArgs e)
{
if (SubscribeLinkListView.SelectedItems.Count > 0)
{
for (var i = SubscribeLinkListView.SelectedItems.Count - 1; i >= 0; i--)
{
var item = SubscribeLinkListView.SelectedItems[i];
var link = Global.Settings.SubscribeLink[item.Index];
Clipboard.SetText(link.Link);
}
}
}
private void DeleteToolStripMenuItem_Click(object sender, EventArgs e)
{
if (MessageBoxX.Show(i18N.Translate("Delete or not ? Will clean up the corresponding group of items in the server list"), confirm: true) == DialogResult.OK)
if (e.Button == MouseButtons.Right)
{
if (SubscribeLinkListView.SelectedItems.Count > 0)
{
for (var i = SubscribeLinkListView.SelectedItems.Count - 1; i >= 0; i--)
{
var item = SubscribeLinkListView.SelectedItems[i];
DeleteServersInGroup(item.SubItems[0].Text);
Global.Settings.SubscribeLink.RemoveAt(item.Index);
SubscribeLinkListView.Items.Remove(item);
ResetEditingGroup();
}
pContextMenuStrip.Show(SubscribeLinkListView, e.Location);
}
}
}
private void SubscribeLinkListView_ItemChecked(object sender, ItemCheckedEventArgs e)
{
var viewItem = SubscribeLinkListView.Items[e.Item.Index];
var subscribeLink = Global.Settings.SubscribeLink[e.Item.Index];
subscribeLink.Enable = viewItem.Checked;
}
private void SubscribeForm_FormClosing(object sender, FormClosingEventArgs e)
{
Global.Settings.UseProxyToUpdateSubscription = UseSelectedServerCheckBox.Checked;
Configuration.Save();
}
#endregion
#region EditBox
private void ClearButton_Click(object sender, EventArgs e)
{
ResetEditingGroup();
}
private void AddButton_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(RemarkTextBox.Text))
@@ -117,25 +119,58 @@ namespace Netch.Forms
}
else
{
var target = Global.Settings.SubscribeLink[_editingIndex];
RenameServersGroup(target.Remark, RemarkTextBox.Text);
var subscribeLink = Global.Settings.SubscribeLink[_editingIndex];
var listViewItem = SubscribeLinkListView.Items[_editingIndex];
target.Enable = listViewItem.Checked;
target.Link = LinkTextBox.Text;
target.Remark = RemarkTextBox.Text;
target.UserAgent = UserAgentTextBox.Text;
RenameServersGroup(subscribeLink.Remark, RemarkTextBox.Text);
subscribeLink.Link = LinkTextBox.Text;
subscribeLink.Remark = RemarkTextBox.Text;
subscribeLink.UserAgent = UserAgentTextBox.Text;
}
MessageBoxX.Show(i18N.Translate("Saved"));
Global.Settings.UseProxyToUpdateSubscription = UseSelectedServerCheckBox.Checked;
Configuration.Save();
InitSubscribeLink();
ResetEditingGroup();
}
#endregion
#region ContextMenu
private void DeleteToolStripMenuItem_Click(object sender, EventArgs e)
{
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);
Global.Settings.SubscribeLink.Remove(subscribeLink);
SubscribeLinkListView.Items.Remove(viewItem);
ResetEditingGroup();
}
private void deleteServerToolStripMenuItem_Click(object sender, EventArgs e)
{
if (MessageBoxX.Show(i18N.Translate("Confirm deletion?"), confirm: true) != DialogResult.OK)
return;
var viewItem = SubscribeLinkListView.SelectedItems[0];
DeleteServersInGroup(viewItem.SubItems[1].Text);
}
private void CopyLinkToolStripMenuItem_Click(object sender, EventArgs e)
{
var viewItem = SubscribeLinkListView.SelectedItems[0];
var subscribeLink = Global.Settings.SubscribeLink[viewItem.Index];
Clipboard.SetText(subscribeLink.Link);
}
#endregion
#region Helper
private static void DeleteServersInGroup(string group)
{
Global.Settings.Server.RemoveAll(server => server.Group == group);
@@ -143,47 +178,29 @@ namespace Netch.Forms
private static void RenameServersGroup(string oldGroup, string newGroup)
{
foreach (var server in Global.Settings.Server)
foreach (var server in Global.Settings.Server.Where(server => server.Group == oldGroup))
{
if (server.Group == oldGroup)
{
server.Group = newGroup;
}
server.Group = newGroup;
}
}
/// <summary>
/// 订阅列表选中节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void SubscribeLinkListView_SelectedIndexChanged(object sender, EventArgs e)
private void InitSubscribeLink()
{
var listView = (ListView) sender;
if (listView.SelectedItems.Count == 0)
SubscribeLinkListView.Items.Clear();
foreach (var item in Global.Settings.SubscribeLink)
{
// 重置
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)
var viewItem = new ListViewItem(new[]
{
pContextMenuStrip.Show(SubscribeLinkListView, e.Location);
}
"",
item.Remark,
item.Link,
!string.IsNullOrEmpty(item.UserAgent) ? item.UserAgent : WebUtil.DefaultUserAgent
})
{
Checked = item.Enable
};
SubscribeLinkListView.Items.Add(viewItem);
}
}
@@ -196,21 +213,6 @@ namespace Netch.Forms
UserAgentTextBox.Text = WebUtil.DefaultUserAgent;
}
private void ClearButton_Click(object sender, EventArgs e)
{
ResetEditingGroup();
}
private void deleteServerToolStripMenuItem_Click(object sender, EventArgs e)
{
if (SubscribeLinkListView.SelectedItems.Count > 0)
{
var item = SubscribeLinkListView.SelectedItems[0];
if (MessageBoxX.Show(i18N.Translate("Confirm deletion?"), confirm: true) != DialogResult.OK)
return;
DeleteServersInGroup(item.SubItems[1].Text);
}
}
#endregion
}
}