First Selector and Logic

This commit is contained in:
Marterich 2024-08-20 22:33:01 +02:00
parent 2748767a47
commit bd730b5418
3 changed files with 46 additions and 0 deletions

View File

@ -0,0 +1,28 @@
function Set-DownloadEngine {
$CheckBoxes = $sync.GetEnumerator() | Where-Object { $_.Value -is [System.Windows.Controls.CheckBox] }
foreach ($CheckBox in $CheckBoxes) {
if ($CheckBox.Key.StartsWith("WPFInstall")) {
Switch ($sync.DownloadEngine) {
"Winget" {
if ($($sync.configs.applications.$($CheckBox.Name).winget) -eq "na"){
$CheckBox.Value.Visibility = "Collapsed"
}
else{
$CheckBox.Value.Visibility = "Visible"
}
}
"Chocolatey"{
if ($($sync.configs.applications.$($CheckBox.Name).chocolatey) -eq "na"){
$CheckBox.Value.Visibility = "Collapsed"
}
else {
$CheckBox.Value.Visibility = "Visible"
}
}
default{
$CheckBox.Value.Visibility = "Visible"
}
}
}
}
}

View File

@ -87,6 +87,19 @@ try {
$xaml.SelectNodes("//*[@Name]") | ForEach-Object {$sync["$("$($psitem.Name)")"] = $sync["Form"].FindName($psitem.Name)}
#Initialize Download Engine
$selectedItem = $sync.WPFselectDownloadEngine.SelectedItem
$selectedText = $selectedItem.Content
$sync.DownloadEngine = $selectedText
Set-DownloadEngine
$sync.WPFselectDownloadEngine.Add_SelectionChanged({
$selectedItem = $sync.WPFselectDownloadEngine.SelectedItem
$selectedText = $selectedItem.Content
$sync.DownloadEngine = $selectedText
Set-DownloadEngine
})
$sync.keys | ForEach-Object {
if($sync.$psitem) {
if($($sync["$psitem"].GetType() | Select-Object -ExpandProperty Name) -eq "CheckBox" `

View File

@ -793,6 +793,11 @@
<Button Name="WPFuninstall" Content=" Uninstall Selected" Margin="2"/>
<Button Name="WPFGetInstalled" Content=" Get Installed" Margin="2"/>
<Button Name="WPFclearWinget" Content=" Clear Selection" Margin="2"/>
<ComboBox Name="WPFselectDownloadEngine" SelectedIndex="0" Margin="2">
<ComboBoxItem Content="Auto" />
<ComboBoxItem Content="Winget"/>
<ComboBoxItem Content="Chocolatey"/>
</ComboBox>
</StackPanel>
<ScrollViewer x:Name="scrollViewer" Grid.Row="1" Grid.Column="0" Padding="-1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"