Compare commits
8 Commits
e7d4b7a04c
...
2dc9c98d1e
| Author | SHA1 | Date | |
|---|---|---|---|
| 2dc9c98d1e | |||
| 89f039e355 | |||
| 661c464b7a | |||
| c27066ffe4 | |||
| 3c31d1ea8a | |||
| 8ebde15535 | |||
| dfad967eae | |||
| 3484c23683 |
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#define MyAppName "PROSERVE Launcher"
|
#define MyAppName "PROSERVE Launcher"
|
||||||
#define MyAppShortName "PSLauncher"
|
#define MyAppShortName "PSLauncher"
|
||||||
#define MyAppVersion "0.5.0"
|
#define MyAppVersion "0.8.0"
|
||||||
#define MyAppPublisher "ASTERION VR"
|
#define MyAppPublisher "ASTERION VR"
|
||||||
#define MyAppURL "https://asterionvr.com"
|
#define MyAppURL "https://asterionvr.com"
|
||||||
#define MyAppExeName "PSLauncher.exe"
|
#define MyAppExeName "PSLauncher.exe"
|
||||||
@@ -35,7 +35,7 @@ DefaultGroupName={#MyAppName}
|
|||||||
DisableProgramGroupPage=yes
|
DisableProgramGroupPage=yes
|
||||||
OutputDir=output
|
OutputDir=output
|
||||||
OutputBaseFilename=PSLauncher-Setup-{#MyAppVersion}
|
OutputBaseFilename=PSLauncher-Setup-{#MyAppVersion}
|
||||||
SetupIconFile=
|
SetupIconFile=..\src\PSLauncher.App\Resources\favicon.ico
|
||||||
Compression=lzma2/ultra
|
Compression=lzma2/ultra
|
||||||
SolidCompression=yes
|
SolidCompression=yes
|
||||||
WizardStyle=modern
|
WizardStyle=modern
|
||||||
|
|||||||
BIN
src/Logo ASTERION - Small - White.png
Normal file
BIN
src/Logo ASTERION - Small - White.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.3 KiB |
@@ -9,12 +9,15 @@
|
|||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<ApplicationIcon></ApplicationIcon>
|
<ApplicationIcon>Resources\favicon.ico</ApplicationIcon>
|
||||||
<AssemblyName>PSLauncher</AssemblyName>
|
<AssemblyName>PSLauncher</AssemblyName>
|
||||||
|
<Company>ASTERION VR</Company>
|
||||||
|
<Product>PROSERVE Launcher</Product>
|
||||||
|
<Copyright>© 2026 ASTERION VR — All rights reserved</Copyright>
|
||||||
<RootNamespace>PSLauncher.App</RootNamespace>
|
<RootNamespace>PSLauncher.App</RootNamespace>
|
||||||
<Version>0.7.0</Version>
|
<Version>0.8.0</Version>
|
||||||
<AssemblyVersion>0.7.0.0</AssemblyVersion>
|
<AssemblyVersion>0.8.0.0</AssemblyVersion>
|
||||||
<FileVersion>0.7.0.0</FileVersion>
|
<FileVersion>0.8.0.0</FileVersion>
|
||||||
|
|
||||||
<!-- Single-file self-contained publish profile (used by `dotnet publish`) -->
|
<!-- Single-file self-contained publish profile (used by `dotnet publish`) -->
|
||||||
<PublishSingleFile>true</PublishSingleFile>
|
<PublishSingleFile>true</PublishSingleFile>
|
||||||
@@ -47,6 +50,8 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Resource Include="Resources\Background.png" />
|
<Resource Include="Resources\Background.png" />
|
||||||
<Resource Include="Resources\pirulen.otf" />
|
<Resource Include="Resources\pirulen.otf" />
|
||||||
|
<Resource Include="Resources\favicon.ico" />
|
||||||
|
<Resource Include="Resources\logo-asterion-white.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<!-- Après chaque `dotnet publish -c Release`, copie le single-file exe à la racine du repo
|
<!-- Après chaque `dotnet publish -c Release`, copie le single-file exe à la racine du repo
|
||||||
|
|||||||
@@ -154,7 +154,8 @@
|
|||||||
</Border>
|
</Border>
|
||||||
<ControlTemplate.Triggers>
|
<ControlTemplate.Triggers>
|
||||||
<Trigger Property="IsMouseOver" Value="True">
|
<Trigger Property="IsMouseOver" Value="True">
|
||||||
<Setter TargetName="Bd" Property="Background" Value="#FFFFFF22" />
|
<Setter TargetName="Bd" Property="Background" Value="{StaticResource Brush.Accent}" />
|
||||||
|
<Setter Property="Foreground" Value="White" />
|
||||||
</Trigger>
|
</Trigger>
|
||||||
</ControlTemplate.Triggers>
|
</ControlTemplate.Triggers>
|
||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
|
|||||||
BIN
src/PSLauncher.App/Resources/favicon.ico
Normal file
BIN
src/PSLauncher.App/Resources/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
BIN
src/PSLauncher.App/Resources/favicon.jpg
Normal file
BIN
src/PSLauncher.App/Resources/favicon.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
BIN
src/PSLauncher.App/Resources/logo-asterion-white.png
Normal file
BIN
src/PSLauncher.App/Resources/logo-asterion-white.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.3 KiB |
@@ -427,6 +427,10 @@ public sealed partial class MainViewModel : ObservableObject
|
|||||||
_processLauncher.Launch(row.Installed);
|
_processLauncher.Launch(row.Installed);
|
||||||
_config.LastLaunchedVersion = row.Version;
|
_config.LastLaunchedVersion = row.Version;
|
||||||
_configStore.Save(_config);
|
_configStore.Save(_config);
|
||||||
|
|
||||||
|
// Réduit la fenêtre du launcher pour ne pas gêner Proserve qui démarre
|
||||||
|
if (Application.Current.MainWindow is { } mw)
|
||||||
|
mw.WindowState = WindowState.Minimized;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
Title="Mise à jour du launcher"
|
Title="Mise à jour du launcher"
|
||||||
|
Icon="pack://application:,,,/Resources/favicon.ico"
|
||||||
Width="500" Height="320"
|
Width="500" Height="320"
|
||||||
ResizeMode="NoResize"
|
ResizeMode="NoResize"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
Title="License"
|
Title="License"
|
||||||
|
Icon="pack://application:,,,/Resources/favicon.ico"
|
||||||
Width="500" Height="480"
|
Width="500" Height="480"
|
||||||
ResizeMode="NoResize"
|
ResizeMode="NoResize"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
xmlns:vm="clr-namespace:PSLauncher.App.ViewModels"
|
xmlns:vm="clr-namespace:PSLauncher.App.ViewModels"
|
||||||
xmlns:shell="clr-namespace:System.Windows.Shell;assembly=PresentationFramework"
|
xmlns:shell="clr-namespace:System.Windows.Shell;assembly=PresentationFramework"
|
||||||
Title="PROSERVE Launcher"
|
Title="PROSERVE Launcher"
|
||||||
|
Icon="pack://application:,,,/Resources/favicon.ico"
|
||||||
Background="Black"
|
Background="Black"
|
||||||
Width="1280" Height="720"
|
Width="1280" Height="720"
|
||||||
MinWidth="980" MinHeight="600"
|
MinWidth="980" MinHeight="600"
|
||||||
@@ -165,15 +166,20 @@
|
|||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<!-- Background image (sous tout le reste, ne capte pas la souris).
|
<!-- Background image : limité au body uniquement (Grid.Row="1") pour ne pas
|
||||||
Le fond noir du Grid garantit que les zones transparentes de l'image
|
se faire chevaucher par le footer quand un download tourne. ImageBrush
|
||||||
(et l'image dans son ensemble à faible opacity) reposent sur du noir
|
avec AlignmentX=Right + AlignmentY=Bottom : si le ratio fenêtre force
|
||||||
pur, sans héritage du brush système. -->
|
un crop, on rogne en haut/à gauche — le logo ASTERION VR en bas-droite
|
||||||
<Image Grid.Row="0" Grid.RowSpan="3"
|
reste TOUJOURS visible. -->
|
||||||
Source="pack://application:,,,/Resources/Background.png"
|
<Rectangle Grid.Row="1" IsHitTestVisible="False">
|
||||||
Stretch="UniformToFill"
|
<Rectangle.Fill>
|
||||||
Opacity="0.25"
|
<ImageBrush ImageSource="pack://application:,,,/Resources/Background.png"
|
||||||
IsHitTestVisible="False" />
|
Stretch="UniformToFill"
|
||||||
|
AlignmentX="Right"
|
||||||
|
AlignmentY="Bottom"
|
||||||
|
Opacity="0.25" />
|
||||||
|
</Rectangle.Fill>
|
||||||
|
</Rectangle>
|
||||||
|
|
||||||
<!-- Top bar : 3 colonnes (brand / license center / chrome) -->
|
<!-- Top bar : 3 colonnes (brand / license center / chrome) -->
|
||||||
<Border Grid.Row="0" Background="{StaticResource Brush.Bg.Sidebar}"
|
<Border Grid.Row="0" Background="{StaticResource Brush.Bg.Sidebar}"
|
||||||
@@ -187,6 +193,12 @@
|
|||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<!-- Col 1 : brand -->
|
<!-- Col 1 : brand -->
|
||||||
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center">
|
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center">
|
||||||
|
<Image Source="pack://application:,,,/Resources/logo-asterion-white.png"
|
||||||
|
Height="36"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Margin="0,0,14,0"
|
||||||
|
SnapsToDevicePixels="True"
|
||||||
|
RenderOptions.BitmapScalingMode="HighQuality" />
|
||||||
<TextBlock Text="PROSERVE"
|
<TextBlock Text="PROSERVE"
|
||||||
FontFamily="{StaticResource Font.Brand}"
|
FontFamily="{StaticResource Font.Brand}"
|
||||||
FontSize="22"
|
FontSize="22"
|
||||||
@@ -494,6 +506,18 @@
|
|||||||
Style="{StaticResource SecondaryButton}"
|
Style="{StaticResource SecondaryButton}"
|
||||||
Content="🔄 Vérifier les MAJ"
|
Content="🔄 Vérifier les MAJ"
|
||||||
Command="{Binding CheckForUpdatesCommand}" />
|
Command="{Binding CheckForUpdatesCommand}" />
|
||||||
|
|
||||||
|
<!-- Copyright flottant en bas centré, sur une pill sombre pour rester
|
||||||
|
lisible quel que soit l'arrière-plan (image, voile noir, etc.). -->
|
||||||
|
<Border HorizontalAlignment="Center" VerticalAlignment="Bottom"
|
||||||
|
Margin="0,0,0,28"
|
||||||
|
Background="#A0000000"
|
||||||
|
CornerRadius="10"
|
||||||
|
Padding="10,4">
|
||||||
|
<TextBlock Text="© 2026 ASTERION VR — Tous droits réservés"
|
||||||
|
FontSize="11"
|
||||||
|
Foreground="White" />
|
||||||
|
</Border>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- Footer : visible uniquement quand busy / status à afficher.
|
<!-- Footer : visible uniquement quand busy / status à afficher.
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
Title="Activation PROSERVE Launcher"
|
Title="Activation PROSERVE Launcher"
|
||||||
|
Icon="pack://application:,,,/Resources/favicon.ico"
|
||||||
Width="540" Height="420"
|
Width="540" Height="420"
|
||||||
MinWidth="480" MinHeight="380"
|
MinWidth="480" MinHeight="380"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
Title="Notes de version"
|
Title="Notes de version"
|
||||||
|
Icon="pack://application:,,,/Resources/favicon.ico"
|
||||||
Width="640" Height="540"
|
Width="640" Height="540"
|
||||||
MinWidth="480" MinHeight="400"
|
MinWidth="480" MinHeight="400"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:vm="clr-namespace:PSLauncher.App.ViewModels"
|
xmlns:vm="clr-namespace:PSLauncher.App.ViewModels"
|
||||||
Title="Paramètres"
|
Title="Paramètres"
|
||||||
|
Icon="pack://application:,,,/Resources/favicon.ico"
|
||||||
Width="640" Height="720"
|
Width="640" Height="720"
|
||||||
MinWidth="540" MinHeight="500"
|
MinWidth="540" MinHeight="500"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
@@ -234,6 +235,10 @@
|
|||||||
<Run Text="Version : " />
|
<Run Text="Version : " />
|
||||||
<Run Text="{Binding LauncherVersion, Mode=OneWay}" FontWeight="SemiBold" />
|
<Run Text="{Binding LauncherVersion, Mode=OneWay}" FontWeight="SemiBold" />
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
|
<TextBlock Text="© 2026 ASTERION VR — Tous droits réservés"
|
||||||
|
FontSize="12"
|
||||||
|
Foreground="{StaticResource Brush.Text.Secondary}"
|
||||||
|
Margin="0,4,0,0" />
|
||||||
<Grid Margin="0,8,0,0">
|
<Grid Margin="0,8,0,0">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
Title="Mise à jour disponible"
|
Title="Mise à jour disponible"
|
||||||
|
Icon="pack://application:,,,/Resources/favicon.ico"
|
||||||
Width="640" Height="540"
|
Width="640" Height="540"
|
||||||
MinWidth="480" MinHeight="400"
|
MinWidth="480" MinHeight="400"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
|
|||||||
@@ -65,17 +65,21 @@ public sealed class ConfigStore : IConfigStore
|
|||||||
File.Move(tmp, _configFile, overwrite: true);
|
File.Move(tmp, _configFile, overwrite: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Cible standard pour les déploiements clients : <c>C:\ASTERION_VR</c>.
|
||||||
|
/// Si un dossier ASTERION_VR existe déjà à côté de l'exe (mode dev / portable),
|
||||||
|
/// il est préféré pour ne pas casser l'environnement de développement.
|
||||||
|
/// </summary>
|
||||||
private static string ResolveDefaultInstallRoot()
|
private static string ResolveDefaultInstallRoot()
|
||||||
{
|
{
|
||||||
|
// Mode dev / portable : ASTERION_VR à côté de l'exe (par ex. dans le repo)
|
||||||
var exeDir = AppContext.BaseDirectory;
|
var exeDir = AppContext.BaseDirectory;
|
||||||
var sibling = Path.Combine(Path.GetDirectoryName(exeDir.TrimEnd(Path.DirectorySeparatorChar))!, "ASTERION_VR");
|
var sibling = Path.Combine(
|
||||||
|
Path.GetDirectoryName(exeDir.TrimEnd(Path.DirectorySeparatorChar))!,
|
||||||
|
"ASTERION_VR");
|
||||||
if (Directory.Exists(sibling)) return sibling;
|
if (Directory.Exists(sibling)) return sibling;
|
||||||
|
|
||||||
var dev = @"C:\ASTERION\GIT\PS_Launcher\ASTERION_VR";
|
// Cible standard pour les clients (créée au premier install si absente)
|
||||||
if (Directory.Exists(dev)) return dev;
|
return @"C:\ASTERION_VR";
|
||||||
|
|
||||||
return Path.Combine(
|
|
||||||
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
|
|
||||||
"ASTERION_VR");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,10 @@
|
|||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
<AssemblyName>PSLauncher.Updater</AssemblyName>
|
<AssemblyName>PSLauncher.Updater</AssemblyName>
|
||||||
<RootNamespace>PSLauncher.Updater</RootNamespace>
|
<RootNamespace>PSLauncher.Updater</RootNamespace>
|
||||||
<Version>0.5.0</Version>
|
<Version>0.8.0</Version>
|
||||||
|
<ApplicationIcon>..\PSLauncher.App\Resources\favicon.ico</ApplicationIcon>
|
||||||
|
<Company>ASTERION VR</Company>
|
||||||
|
<Copyright>© 2026 ASTERION VR — All rights reserved</Copyright>
|
||||||
|
|
||||||
<!-- Single-file self-contained pour le publish (~10 Mo) -->
|
<!-- Single-file self-contained pour le publish (~10 Mo) -->
|
||||||
<PublishSingleFile>true</PublishSingleFile>
|
<PublishSingleFile>true</PublishSingleFile>
|
||||||
|
|||||||
BIN
src/favicon64.jpg
Normal file
BIN
src/favicon64.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
Reference in New Issue
Block a user