Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/UniGetUI.Avalonia/Assets/Images/relax.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions src/UniGetUI.Avalonia/UniGetUI.Avalonia.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,9 @@
<AvaloniaResource Include="..\SharedAssets\Assets\Images\icon.png" Link="Assets\icon.png" />
<AvaloniaResource Include="..\SharedAssets\Assets\Images\icon_unsquare.png" Link="Assets\icon_unsquare.png" />
<AvaloniaResource Include="..\SharedAssets\Assets\Images\package_color.png" Link="Assets\package_color.png" />
<AvaloniaResource Include="Assets\Images\jetpack_Maurice2-blue.png" />
<AvaloniaResource Include="Assets\Images\relax.png" />
<AvaloniaResource Include="Assets\Images\maurice_penseur.png" />
<AvaloniaResource Include="..\SharedAssets\Assets\SplashScreen.png" Link="Assets\SplashScreen.png" />
<AvaloniaResource Include="..\SharedAssets\Assets\SplashScreen.theme-dark.png" Link="Assets\SplashScreen.theme-dark.png" />
<!-- Tray status icon variants: status colour encoded by the corner dot; light/dark tone per taskbar theme. -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
using Avalonia.Controls;
using Avalonia.Layout;
using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
using Avalonia.Threading;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
Expand Down Expand Up @@ -55,6 +57,7 @@
public string IconName; // SVG filename without extension, e.g. "search"

public string NoPackages_BackgroundText;
public string NoPackages_ImagePath; // optional avares:// illustration shown when no packages are present
public string NoPackages_SourcesText;
public string NoPackages_SubtitleText_Base;
public string MainSubtitle_StillLoading;
Expand Down Expand Up @@ -145,6 +148,9 @@
[ObservableProperty] private string _subtitle = "";
[ObservableProperty] private bool _isLoading;
[ObservableProperty] private bool _backgroundTextVisible;
[ObservableProperty] private bool _loadingImageVisible;
[ObservableProperty] private Bitmap? _noPackagesImage;
[ObservableProperty] private bool _noPackagesImageVisible;
[ObservableProperty] private string _backgroundText = "";
[ObservableProperty] private bool _sourcesPlaceholderVisible = true;
[ObservableProperty] private bool _sourcesTreeVisible;
Expand Down Expand Up @@ -194,7 +200,7 @@
// ─── Events (replace abstract methods) ───────────────────────────────────
public event Action<ReloadReason>? PackagesLoaded;
public event Action? PackageCountUpdated;
public event Action<IPackage>? ShowingContextMenu;

Check warning on line 203 in src/UniGetUI.Avalonia/ViewModels/SoftwarePages/PackagesPageViewModel.cs

View workflow job for this annotation

GitHub Actions / Linux (Avalonia)

The event 'PackagesPageViewModel.ShowingContextMenu' is never used

Check warning on line 203 in src/UniGetUI.Avalonia/ViewModels/SoftwarePages/PackagesPageViewModel.cs

View workflow job for this annotation

GitHub Actions / Windows (Avalonia)

The event 'PackagesPageViewModel.ShowingContextMenu' is never used

Check warning on line 203 in src/UniGetUI.Avalonia/ViewModels/SoftwarePages/PackagesPageViewModel.cs

View workflow job for this annotation

GitHub Actions / test-codebase

The event 'PackagesPageViewModel.ShowingContextMenu' is never used
public event Action? FocusListRequested;

// ─── Events: view-side dialog/navigation requests ─────────────────────────
Expand All @@ -216,6 +222,11 @@
_showLastCheckedTime = data.ShowLastLoadTime;
NoPackagesText = data.NoPackages_BackgroundText;
NoMatchesText = data.NoMatches_BackgroundText;
if (!string.IsNullOrEmpty(data.NoPackages_ImagePath))
{
using var stream = AssetLoader.Open(new Uri(data.NoPackages_ImagePath));
NoPackagesImage = new Bitmap(stream);
}
_noPackagesSubtitleBase = data.NoPackages_SubtitleText_Base;
_stillLoadingSubtitle = data.MainSubtitle_StillLoading;
SimilarSearchEnabled = !data.DisableSuggestedResultsRadio;
Expand Down Expand Up @@ -544,15 +555,22 @@
{
BackgroundText = _stillLoadingSubtitle;
BackgroundTextVisible = true;
LoadingImageVisible = true;
NoPackagesImageVisible = false;
}
else if (FilteredPackages.Count == 0)
{
BackgroundText = string.IsNullOrWhiteSpace(query) ? NoPackagesText : NoMatchesText;
BackgroundTextVisible = !MegaQueryBoxEnabled || !string.IsNullOrWhiteSpace(query);
bool noQuery = string.IsNullOrWhiteSpace(query);
BackgroundText = noQuery ? NoPackagesText : NoMatchesText;
BackgroundTextVisible = !MegaQueryBoxEnabled || !noQuery;
LoadingImageVisible = false;
NoPackagesImageVisible = noQuery && BackgroundTextVisible && NoPackagesImage is not null;
}
else
{
BackgroundTextVisible = false;
LoadingImageVisible = false;
NoPackagesImageVisible = false;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -795,17 +795,30 @@
</ItemsControl>
</ScrollViewer>

<!-- Background text (no packages / no matches) -->
<TextBlock x:Name="BackgroundText"
VerticalAlignment="Center"
<!-- Background text (no packages / no matches), with a loading illustration above it -->
<StackPanel VerticalAlignment="Center"
HorizontalAlignment="Center"
Spacing="16">
<Image Source="avares://UniGetUI/Assets/Images/jetpack_Maurice2-blue.png"
Width="360"
Stretch="Uniform"
HorizontalAlignment="Center"
FontSize="30"
FontWeight="Bold"
Opacity="0.5"
TextAlignment="Center"
TextWrapping="Wrap"
Text="{Binding BackgroundText}"
IsVisible="{Binding BackgroundTextVisible}"/>
IsVisible="{Binding LoadingImageVisible}"/>
<Image Source="{Binding NoPackagesImage}"
Width="260"
Stretch="Uniform"
HorizontalAlignment="Center"
IsVisible="{Binding NoPackagesImageVisible}"/>
<TextBlock x:Name="BackgroundText"
HorizontalAlignment="Center"
FontSize="30"
FontWeight="Bold"
Opacity="0.5"
TextAlignment="Center"
TextWrapping="Wrap"
Text="{Binding BackgroundText}"
IsVisible="{Binding BackgroundTextVisible}"/>
</StackPanel>
</Panel>
</Grid>
</Border>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public InstalledPackagesPage() : base(new PackagesPageData
DisableFilterOnQueryChange = false,
DisableReload = false,
NoPackages_BackgroundText = CoreTools.Translate("No packages were found"),
NoPackages_ImagePath = "avares://UniGetUI/Assets/Images/maurice_penseur.png",
NoPackages_SourcesText = CoreTools.Translate("No packages were found"),
NoPackages_SubtitleText_Base = CoreTools.Translate("No packages were found"),
MainSubtitle_StillLoading = CoreTools.Translate("Loading packages"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ public PackageBundlesPage() : base(new PackagesPageData
DisableFilterOnQueryChange = false,
DisableReload = true,
NoPackages_BackgroundText = CoreTools.Translate("Add packages or open an existing package bundle"),
NoPackages_ImagePath = "avares://UniGetUI/Assets/Images/maurice_penseur.png",
NoPackages_SourcesText = CoreTools.Translate("Add packages to start"),
NoPackages_SubtitleText_Base = CoreTools.Translate("The current bundle has no packages. Add some packages to get started"),
MainSubtitle_StillLoading = CoreTools.Translate("Loading packages"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public SoftwareUpdatesPage() : base(new PackagesPageData
DisableFilterOnQueryChange = false,
DisableReload = false,
NoPackages_BackgroundText = CoreTools.Translate("Hooray! No updates were found."),
NoPackages_ImagePath = "avares://UniGetUI/Assets/Images/relax.png",
NoPackages_SourcesText = CoreTools.Translate("Everything is up to date"),
NoPackages_SubtitleText_Base = CoreTools.Translate("Everything is up to date"),
MainSubtitle_StillLoading = CoreTools.Translate("Loading packages"),
Expand Down
Loading