mirror of
https://github.com/2dust/v2rayN.git
synced 2025-10-14 20:39:12 +00:00
服务器右键上下移:支持同时移动多个服务器
This commit is contained in:
parent
8aa3354b20
commit
d5cf3c18e3
1 changed files with 38 additions and 6 deletions
|
@ -1318,17 +1318,44 @@ namespace v2rayN.Forms
|
||||||
|
|
||||||
private void MoveServer(EMove eMove)
|
private void MoveServer(EMove eMove)
|
||||||
{
|
{
|
||||||
int index = GetLvSelectedIndex();
|
if (lvServers.SelectedItems.Count == 0)
|
||||||
if (index < 0)
|
|
||||||
{
|
{
|
||||||
UI.Show(UIRes.I18N("PleaseSelectServer"));
|
UI.Show(UIRes.I18N("PleaseSelectServer"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ConfigHandler.MoveServer(ref config, ref lstVmess, index, eMove) == 0)
|
|
||||||
|
var listItems = lvServers.Items;
|
||||||
|
var selectedItems = lvServers.SelectedItems;
|
||||||
|
|
||||||
|
switch (eMove)
|
||||||
{
|
{
|
||||||
//TODO: reload is not good.
|
case EMove.Top:
|
||||||
RefreshServers();
|
MoveSelectedServer(0);
|
||||||
//LoadV2ray();
|
listItems[0].EnsureVisible();
|
||||||
|
break;
|
||||||
|
case EMove.Up:
|
||||||
|
int firstSelectedIndex = selectedItems[0].Index; ;
|
||||||
|
bool isAlreadyTop = firstSelectedIndex == 0;
|
||||||
|
if (!isAlreadyTop)
|
||||||
|
{
|
||||||
|
MoveSelectedServer(firstSelectedIndex - 1);
|
||||||
|
selectedItems[0].EnsureVisible();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case EMove.Down:
|
||||||
|
int lastSelectedIndex = selectedItems[selectedItems.Count - 1].Index;
|
||||||
|
int lastListIndex = listItems[listItems.Count - 1].Index;
|
||||||
|
bool isAlreadBottom = lastSelectedIndex == lastListIndex;
|
||||||
|
if (!isAlreadBottom)
|
||||||
|
{
|
||||||
|
MoveSelectedServer(lastSelectedIndex + 2);
|
||||||
|
selectedItems[selectedItems.Count - 1].EnsureVisible();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case EMove.Bottom:
|
||||||
|
MoveSelectedServer(lvServers.Items.Count);
|
||||||
|
lvServers.Items[lvServers.Items.Count - 1].EnsureVisible();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void menuSelectAll_Click(object sender, EventArgs e)
|
private void menuSelectAll_Click(object sender, EventArgs e)
|
||||||
|
@ -1680,6 +1707,11 @@ namespace v2rayN.Forms
|
||||||
targetIndex++;
|
targetIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MoveSelectedServer(targetIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MoveSelectedServer(int targetIndex)
|
||||||
|
{
|
||||||
bool isChanged = false;
|
bool isChanged = false;
|
||||||
lvServers.BeginUpdate();
|
lvServers.BeginUpdate();
|
||||||
foreach (ListViewItem listItem in lvServers.SelectedItems)
|
foreach (ListViewItem listItem in lvServers.SelectedItems)
|
||||||
|
|
Loading…
Reference in a new issue