Skip to content

Commit 658966e

Browse files
committed
Layout simplification for GridLayout, less RAM usage
1 parent 60d7df6 commit 658966e

3 files changed

Lines changed: 65 additions & 99 deletions

File tree

src/UniGetUI/Controls/PackageWrapper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ public PackageWrapper(IPackage package, AbstractPackagesPage page)
7272
VersionComboString = package.IsUpgradable ? $"{package.VersionString} -> {package.NewVersionString}" : package.VersionString;
7373
}
7474

75-
public void RightClick()
75+
public async void RightClick()
7676
{
77-
_page.ShowContextMenu(this);
77+
await _page.ShowContextMenu(this);
7878
}
7979

8080
public void Package_PropertyChanged(object? sender, PropertyChangedEventArgs e)

src/UniGetUI/Pages/SoftwarePages/AbstractPackagesPage.xaml

Lines changed: 62 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -204,132 +204,106 @@
204204

205205
<Grid
206206
Padding="4,4,4,4"
207+
HorizontalAlignment="Stretch"
207208
ColumnSpacing="4"
208209
Opacity="{x:Bind ListedOpacity, Mode=OneWay}">
209210
<Grid.RowDefinitions>
210-
<RowDefinition Height="Auto" />
211-
<RowDefinition Height="Auto" />
212-
<RowDefinition Height="Auto" />
211+
<RowDefinition Height="48" />
213212
</Grid.RowDefinitions>
214213
<Grid.ColumnDefinitions>
215-
<ColumnDefinition Width="Auto" />
216-
<ColumnDefinition Width="*" MinWidth="200" />
217-
<ColumnDefinition Width="Auto" />
214+
<ColumnDefinition Width="48" />
215+
<ColumnDefinition Width="*" />
216+
<ColumnDefinition Width="22" />
218217
</Grid.ColumnDefinitions>
219218

220219
<!-- Regular or package icon -->
221-
<Grid
222-
Grid.Row="0"
223-
Grid.RowSpan="3"
220+
<widgets:LocalIcon
224221
Grid.Column="0"
225-
Width="48"
226-
Height="48">
227-
<widgets:LocalIcon
228-
Grid.Row="0"
229-
Grid.RowSpan="3"
230-
Grid.Column="0"
231-
Margin="-4,0"
232-
HorizontalAlignment="Center"
233-
VerticalAlignment="Center"
234-
FontSize="48"
235-
FontWeight="ExtraLight"
236-
Icon="Package"
237-
ToolTipService.ToolTip="{x:Bind ListedNameTooltip, Mode=OneWay}"
238-
Visibility="{x:Bind ShowDefaultPackageIcon, Mode=OneWay}" />
239-
240-
<Image
241-
Width="48"
242-
Height="48"
243-
HorizontalAlignment="Center"
244-
VerticalAlignment="Center"
245-
Source="{x:Bind MainIconSource, Mode=OneWay}"
246-
ToolTipService.ToolTip="{x:Bind ListedNameTooltip, Mode=OneWay}"
247-
Visibility="{x:Bind ShowCustomPackageIcon, Mode=OneWay}" />
222+
HorizontalAlignment="Center"
223+
VerticalAlignment="Center"
224+
FontSize="48"
225+
FontWeight="ExtraLight"
226+
Icon="Package"
227+
ToolTipService.ToolTip="{x:Bind ListedNameTooltip, Mode=OneWay}"
228+
Visibility="{x:Bind ShowDefaultPackageIcon, Mode=OneWay}" />
248229

249-
<widgets:LocalIcon
250-
Grid.Row="0"
251-
Grid.Column="1"
252-
Width="30"
253-
Height="30"
254-
Margin="0,0,-4,-2"
255-
HorizontalAlignment="Right"
256-
VerticalAlignment="Bottom"
257-
FontSize="30"
258-
FontWeight="ExtraLight"
259-
Foreground="{ThemeResource AccentAAFillColorTertiaryBrush}"
260-
Icon="{x:Bind AlternateIconId, Mode=OneWay}"
261-
ToolTipService.ToolTip="{x:Bind ListedNameTooltip, Mode=OneWay}"
262-
Visibility="{x:Bind AlternateIdIconVisible, Mode=OneWay}" />
230+
<Image
231+
Grid.Column="0"
232+
Width="44"
233+
HorizontalAlignment="Center"
234+
VerticalAlignment="Center"
235+
Source="{x:Bind MainIconSource, Mode=OneWay}"
236+
ToolTipService.ToolTip="{x:Bind ListedNameTooltip, Mode=OneWay}"
237+
Visibility="{x:Bind ShowCustomPackageIcon, Mode=OneWay}" />
263238

264-
<widgets:LocalIcon
265-
Grid.Row="0"
266-
Grid.Column="1"
267-
Width="30"
268-
Height="30"
269-
Margin="0,0,-4,-2"
270-
HorizontalAlignment="Right"
271-
VerticalAlignment="Bottom"
272-
FontSize="30"
273-
FontWeight="ExtraLight"
274-
Icon="{x:Bind MainIconId, Mode=OneWay}"
275-
ToolTipService.ToolTip="{x:Bind ListedNameTooltip, Mode=OneWay}"
276-
Visibility="{x:Bind AlternateIdIconVisible, Mode=OneWay}" />
239+
<widgets:LocalIcon
240+
Grid.Column="0"
241+
Margin="0,0,-4,-2"
242+
HorizontalAlignment="Right"
243+
VerticalAlignment="Bottom"
244+
FontSize="30"
245+
FontWeight="ExtraLight"
246+
Foreground="{ThemeResource AccentAAFillColorTertiaryBrush}"
247+
Icon="{x:Bind AlternateIconId, Mode=OneWay}"
248+
ToolTipService.ToolTip="{x:Bind ListedNameTooltip, Mode=OneWay}"
249+
Visibility="{x:Bind AlternateIdIconVisible, Mode=OneWay}" />
277250

278-
</Grid>
251+
<widgets:LocalIcon
252+
Grid.Column="0"
253+
Margin="0,0,-4,-2"
254+
HorizontalAlignment="Right"
255+
VerticalAlignment="Bottom"
256+
FontSize="30"
257+
FontWeight="ExtraLight"
258+
Icon="{x:Bind MainIconId, Mode=OneWay}"
259+
ToolTipService.ToolTip="{x:Bind ListedNameTooltip, Mode=OneWay}"
260+
Visibility="{x:Bind AlternateIdIconVisible, Mode=OneWay}" />
279261

280-
<StackPanel
281-
Grid.Row="0"
282-
Grid.RowSpan="3"
262+
<CheckBox
283263
Grid.Column="2"
284-
Width="24"
285-
Orientation="Vertical">
286-
<CheckBox
287-
Margin="2,-4,0,0"
288-
HorizontalAlignment="Left"
289-
VerticalAlignment="Top"
290-
IsChecked="{x:Bind IsChecked, Mode=TwoWay}" />
291-
<Button
292-
Width="24"
293-
Height="24"
294-
Margin="0"
295-
Padding="0"
296-
Background="Transparent"
297-
BorderThickness="0"
298-
Click="{x:Bind RightClick}"
299-
Tapped="ContextMenuButton_Tapped">
300-
<SymbolIcon Symbol="More" />
301-
</Button>
302-
</StackPanel>
303-
<!-- Package tag icon -->
264+
Margin="1,-4,0,0"
265+
HorizontalAlignment="Left"
266+
VerticalAlignment="Top"
267+
IsChecked="{x:Bind IsChecked, Mode=TwoWay}" />
268+
<Button
269+
Grid.Column="2"
270+
Width="22"
271+
Height="22"
272+
Padding="0"
273+
VerticalAlignment="Bottom"
274+
Background="Transparent"
275+
BorderThickness="0"
276+
Click="{x:Bind RightClick}"
277+
Tapped="ContextMenuButton_Tapped">
278+
<SymbolIcon Symbol="More" />
279+
</Button>
304280

305281
<TextBlock
306-
Grid.Row="0"
307282
Grid.Column="1"
308-
VerticalAlignment="Center"
283+
VerticalAlignment="Top"
309284
FontFamily="Segoe UI Variable Text"
310285
FontSize="14"
311286
FontWeight="SemiBold"
312287
Text="{x:Bind Package.Name}"
313288
ToolTipService.ToolTip="{x:Bind ListedNameTooltip, Mode=OneWay}" />
314289

315290
<TextBlock
316-
Grid.Row="1"
317291
Grid.Column="1"
292+
VerticalAlignment="Center"
318293
FontFamily="Segoe UI Variable Text"
319294
FontSize="11"
320295
Opacity="0.8"
321296
Text="{x:Bind Package.Id}"
322297
ToolTipService.ToolTip="{x:Bind Package.Id}" />
323298

324299
<TextBlock
325-
Grid.Row="2"
326300
Grid.Column="1"
301+
VerticalAlignment="Bottom"
327302
FontFamily="Segoe UI Variable Text"
328303
FontSize="11"
329304
Opacity="0.5"
330305
Text="{x:Bind VersionComboString, Mode=OneWay}"
331306
ToolTipService.ToolTip="{x:Bind Package.VersionString}" />
332-
333307
</Grid>
334308
</widgets:PackageItemContainer>
335309
</DataTemplate>

src/UniGetUI/Pages/SoftwarePages/AbstractPackagesPage.xaml.cs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -935,22 +935,13 @@ public async Task ShowContextMenu(PackageWrapper wrapper)
935935
}
936936

937937
private void PackageItemContainer_RightTapped(object sender, RightTappedRoutedEventArgs e)
938-
=> PackageItemContainer_RightTapped(sender, new RoutedEventArgs());
939-
940-
private void PackageItemContainer_RightTapped(object sender, RoutedEventArgs e)
941938
{
942939
if (sender is PackageItemContainer container && container.Package is not null)
943940
{
944941
PackageList.Select(container.Wrapper.Index);
945942
container.Focus(FocusState.Keyboard);
946943
WhenShowingContextMenu(container.Package);
947944
}
948-
else if((((sender as Button)?.Parent as StackPanel)?.Parent as Grid)?.Parent is PackageItemContainer container2 && container2.Package is not null)
949-
{
950-
PackageList.Select(container2.Wrapper.Index);
951-
container2.Focus(FocusState.Keyboard);
952-
WhenShowingContextMenu(container2.Package);
953-
}
954945
}
955946

956947
private void PackageItemContainer_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
@@ -1248,6 +1239,7 @@ private void LoadGridLayout()
12481239
ItemsStretch = UniformGridLayoutItemsStretch.Fill,
12491240
MinColumnSpacing = 8,
12501241
MinRowSpacing = 8,
1242+
MinItemWidth = 275,
12511243
};
12521244
}
12531245

0 commit comments

Comments
 (0)