Skip to content

Commit 77a59e9

Browse files
committed
StorageUI and RestoreUI
1 parent 1411643 commit 77a59e9

File tree

2 files changed

+90
-71
lines changed

2 files changed

+90
-71
lines changed

v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@
116116
<ComboBox
117117
x:Name="cmbMoveToGroup"
118118
Width="200"
119+
DisplayMemberBinding="{Binding remarks}"
120+
ItemsSource="{Binding SubItems}"
119121
ToolTip.Tip="{x:Static resx:ResUI.menuSubscription}" />
120122
</DockPanel>
121123
</MenuItem.Header>
@@ -141,36 +143,46 @@
141143
</DataGrid.ContextMenu>
142144

143145
<DataGrid.Columns>
144-
<DataGridCheckBoxColumn Width="40" Binding="{Binding isActive}" />
146+
<DataGridCheckBoxColumn
147+
Width="40"
148+
Binding="{Binding isActive}"
149+
Tag="isActive" />
145150
<DataGridTextColumn
146151
Width="80"
147152
Binding="{Binding configType}"
148-
Header="{x:Static resx:ResUI.LvServiceType}" />
153+
Header="{x:Static resx:ResUI.LvServiceType}"
154+
Tag="configType" />
149155
<DataGridTextColumn
150156
Width="150"
151157
Binding="{Binding remarks}"
152-
Header="{x:Static resx:ResUI.LvRemarks}" />
158+
Header="{x:Static resx:ResUI.LvRemarks}"
159+
Tag="remarks" />
153160
<DataGridTextColumn
154161
Width="120"
155162
Binding="{Binding address}"
156-
Header="{x:Static resx:ResUI.LvAddress}" />
163+
Header="{x:Static resx:ResUI.LvAddress}"
164+
Tag="address" />
157165
<DataGridTextColumn
158166
Width="60"
159167
Binding="{Binding port}"
160-
Header="{x:Static resx:ResUI.LvPort}" />
168+
Header="{x:Static resx:ResUI.LvPort}"
169+
Tag="port" />
161170
<DataGridTextColumn
162171
Width="100"
163172
Binding="{Binding network}"
164-
Header="{x:Static resx:ResUI.LvTransportProtocol}" />
173+
Header="{x:Static resx:ResUI.LvTransportProtocol}"
174+
Tag="network" />
165175
<DataGridTextColumn
166176
Width="100"
167177
Binding="{Binding streamSecurity}"
168-
Header="{x:Static resx:ResUI.LvTLS}" />
178+
Header="{x:Static resx:ResUI.LvTLS}"
179+
Tag="streamSecurity" />
169180
<DataGridTextColumn
170181
Width="100"
171182
Binding="{Binding subRemarks}"
172-
Header="{x:Static resx:ResUI.LvSubscription}" />
173-
<DataGridTemplateColumn SortMemberPath="delay">
183+
Header="{x:Static resx:ResUI.LvSubscription}"
184+
Tag="subRemarks" />
185+
<DataGridTemplateColumn SortMemberPath="delay" Tag="delay">
174186
<DataGridTemplateColumn.Header>
175187
<TextBlock Text="{x:Static resx:ResUI.LvTestDelay}" />
176188
</DataGridTemplateColumn.Header>
@@ -188,24 +200,29 @@
188200
<DataGridTextColumn
189201
Width="100"
190202
Binding="{Binding speedVal}"
191-
Header="{x:Static resx:ResUI.LvTestSpeed}" />
203+
Header="{x:Static resx:ResUI.LvTestSpeed}"
204+
Tag="speedVal" />
192205

193206
<DataGridTextColumn
194207
Width="100"
195208
Binding="{Binding todayUp}"
196-
Header="{x:Static resx:ResUI.LvTodayUploadDataAmount}" />
209+
Header="{x:Static resx:ResUI.LvTodayUploadDataAmount}"
210+
Tag="todayUp" />
197211
<DataGridTextColumn
198212
Width="100"
199213
Binding="{Binding todayDown}"
200-
Header="{x:Static resx:ResUI.LvTodayDownloadDataAmount}" />
214+
Header="{x:Static resx:ResUI.LvTodayDownloadDataAmount}"
215+
Tag="todayDown" />
201216
<DataGridTextColumn
202217
Width="100"
203218
Binding="{Binding totalUp}"
204-
Header="{x:Static resx:ResUI.LvTotalUploadDataAmount}" />
219+
Header="{x:Static resx:ResUI.LvTotalUploadDataAmount}"
220+
Tag="totalUp" />
205221
<DataGridTextColumn
206222
Width="100"
207223
Binding="{Binding totalDown}"
208-
Header="{x:Static resx:ResUI.LvTotalDownloadDataAmount}" />
224+
Header="{x:Static resx:ResUI.LvTotalDownloadDataAmount}"
225+
Tag="totalDown" />
209226
</DataGrid.Columns>
210227
</DataGrid>
211228
</DockPanel>

v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml.cs

Lines changed: 59 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public ProfilesView(Window window)
6464
this.BindCommand(ViewModel, vm => vm.SetDefaultLoadBalanceServerCmd, v => v.menuSetDefaultLoadBalanceServer).DisposeWith(disposables);
6565

6666
//servers move
67-
this.OneWayBind(ViewModel, vm => vm.SubItems, v => v.cmbMoveToGroup.ItemsSource).DisposeWith(disposables);
67+
//this.OneWayBind(ViewModel, vm => vm.SubItems, v => v.cmbMoveToGroup.ItemsSource).DisposeWith(disposables);
6868
this.Bind(ViewModel, vm => vm.SelectedMoveToGroup, v => v.cmbMoveToGroup.SelectedItem).DisposeWith(disposables);
6969

7070
this.BindCommand(ViewModel, vm => vm.MoveTopCmd, v => v.menuMoveTop).DisposeWith(disposables);
@@ -86,9 +86,9 @@ public ProfilesView(Window window)
8686
this.BindCommand(ViewModel, vm => vm.Export2ShareUrlBase64Cmd, v => v.menuExport2ShareUrlBase64).DisposeWith(disposables);
8787
});
8888

89-
//RestoreUI();
89+
RestoreUI();
9090
ViewModel?.RefreshServers();
91-
}
91+
}
9292

9393
//#region Event
9494

@@ -194,6 +194,7 @@ private void LstProfiles_DoubleTapped(object? sender, Avalonia.Input.TappedEvent
194194
{
195195
ViewModel?.EditServerAsync(EConfigType.Custom);
196196
}
197+
StorageUI();
197198
}
198199

199200
private void LstProfiles_LoadingRow(object? sender, DataGridRowEventArgs e)
@@ -301,6 +302,7 @@ private void AutofitColumnWidth()
301302
{
302303
it.Width = new DataGridLength(1, DataGridLengthUnitType.Auto);
303304
}
305+
StorageUI();
304306
}
305307

306308
private void TxtServerFilter_KeyDown(object? sender, KeyEventArgs e)
@@ -315,61 +317,61 @@ private void TxtServerFilter_KeyDown(object? sender, KeyEventArgs e)
315317

316318
//#region UI
317319

318-
//private void RestoreUI()
319-
//{
320-
// var lvColumnItem = _config.uiItem.mainColumnItem.OrderBy(t => t.Index).ToList();
321-
// var displayIndex = 0;
322-
// foreach (var item in lvColumnItem)
323-
// {
324-
// foreach (MyDGTextColumn item2 in lstProfiles.Columns)
325-
// {
326-
// if (item2.ExName == item.Name)
327-
// {
328-
// if (item.Width < 0)
329-
// {
330-
// item2.IsVisible = false;
331-
// }
332-
// else
333-
// {
334-
// item2.Width = item.Width;
335-
// item2.DisplayIndex = displayIndex++;
336-
// }
337-
// }
338-
// }
339-
// }
340-
341-
// if (!_config.guiItem.enableStatistics)
342-
// {
343-
// colTodayUp.IsVisible =
344-
// colTodayDown.IsVisible =
345-
// colTotalUp.IsVisible =
346-
// colTotalDown.IsVisible = false;
347-
// }
348-
// else
349-
// {
350-
// colTodayUp.IsVisible =
351-
// colTodayDown.IsVisible =
352-
// colTotalUp.IsVisible =
353-
// colTotalDown.IsVisible = true;
354-
// }
355-
//}
320+
private void RestoreUI()
321+
{
322+
var lvColumnItem = _config.uiItem.mainColumnItem.OrderBy(t => t.Index).ToList();
323+
var displayIndex = 0;
324+
foreach (var item in lvColumnItem)
325+
{
326+
foreach (var item2 in lstProfiles.Columns)
327+
{
328+
if (item2.Tag == null)
329+
{
330+
continue;
331+
}
332+
if (item2.Tag.Equals(item.Name))
333+
{
334+
if (item.Width < 0)
335+
{
336+
item2.IsVisible = false;
337+
}
338+
else
339+
{
340+
item2.Width = new DataGridLength(item.Width, DataGridLengthUnitType.Pixel); ;
341+
item2.DisplayIndex = displayIndex++;
342+
}
343+
if (item.Name.StartsWith("to"))
344+
{
345+
if (!_config.guiItem.enableStatistics)
346+
{
347+
item2.IsVisible = false;
348+
}
349+
}
350+
}
351+
}
352+
}
353+
}
356354

357-
//private void StorageUI()
358-
//{
359-
// List<ColumnItem> lvColumnItem = new();
360-
// for (int k = 0; k < lstProfiles.Columns.Count; k++)
361-
// {
362-
// var item2 = (MyDGTextColumn)lstProfiles.Columns[k];
363-
// lvColumnItem.Add(new()
364-
// {
365-
// Name = item2.ExName,
366-
// Width = item2.IsVisible == true ? Utils.ToInt(item2.ActualWidth) : -1,
367-
// Index = item2.DisplayIndex
368-
// });
369-
// }
370-
// _config.uiItem.mainColumnItem = lvColumnItem;
371-
// ConfigHandler.SaveConfig(_config);
372-
//}
355+
private void StorageUI()
356+
{
357+
List<ColumnItem> lvColumnItem = new();
358+
for (int k = 0; k < lstProfiles.Columns.Count; k++)
359+
{
360+
var item2 = lstProfiles.Columns[k];
361+
if (item2.Tag == null)
362+
{
363+
continue;
364+
}
365+
lvColumnItem.Add(new()
366+
{
367+
Name = (string)item2.Tag,
368+
Width = item2.IsVisible == true ? Utils.ToInt(item2.ActualWidth) : -1,
369+
Index = item2.DisplayIndex
370+
});
371+
}
372+
_config.uiItem.mainColumnItem = lvColumnItem;
373+
ConfigHandler.SaveConfig(_config);
374+
}
373375

374376
//#endregion UI
375377

0 commit comments

Comments
 (0)