Files
Cleaner/GUIS/filter/filter.ps1
Florian Späth 6ba4884590 init
2025-01-31 01:47:45 +01:00

128 lines
4.9 KiB
PowerShell

function Load_filter {
param ($root)
#0=Office;1=Bilder;2=Videos;3=Audios;4=Unterordner einbeziehen
$Script:filtercheck=@($false,$false,$false,$false,$false)
# Lädt das Fenster
[xml]$Form = Get-Content "$PSScriptRoot\filter.xaml" -Encoding utf8
$NR=(New-Object System.Xml.XmlNodeReader $Form)
$window=[Windows.Markup.XamlReader]::Load($NR)
# Objekt - Variablen Verknüpfung
$Office=$window.FindName("imgoffice")
$Bilder=$window.FindName("imgbilder")
$Videos=$window.FindName("imgvideos")
$Audios=$window.FindName("imgaudios")
$Script:Filteroffice = $window.FindName("btnoffice")
$Script:Filterbilder = $window.FindName("btnbilder")
$Script:Filtervideos = $window.FindName("btnvideos")
$Script:Filteraudios = $window.FindName("btnaudios")
$Script:filterok = $window.FindName("btnsetzen")
$Script:filterreset = $window.FindName("btnreset")
# Verknüpft feste Elemente
$window.Title = $Script:Version
$window.icon="$root/Source/Logo.png"
$Office.Source = "$root/Source/Office.png"
$Bilder.Source = "$root/Source/Bild.png"
$Videos.Source = "$root/Source/Video.png"
$Audios.Source = "$root/Source/Audio.png"
return $window
}
function Reset_Filter {
#0=Office;1=Bilder;2=Videos;3=Audios;4=Unterordner einbeziehen
$Script:filtercheck=@($false,$false,$false,$false,$false)
$Filteroffice.background = "#444444"
$Filterbilder.background = "#444444"
$Filtervideos.background = "#444444"
$Filteraudios.background = "#444444"
$mainimgswitch.Source = "$ScriptRoot/Source/swfalse.png"
}
function Filter_data {
param($tag)
$Script:data = @()
main_loading $true
Filter_deep $tag
main_loading $false
$item = [System.Windows.Data.ListCollectionView]$Script:data
$mainbrowser.Remove
$mainbrowser.ItemsSource = $item
}
function Filter_deep {
param ($tag)
#Log "### Main: Filter deep ###" -clear
$folder = $Script:folderdb[$tag]
for ($i = 5; $i -lt $folder.count; $i++) {
if ($folder[$i] -match "f") {
if ($Script:filtercheck[4]) {
$string=$folder[$i].Substring(1)
$int = [int]$string
if (!$Script:folderdb[$int][4]) {
Filter_deep $int
}
}
}else {
if (!$Script:filedb[$folder[$i]][4]) {
for ($t = 0; $t -lt 3; $t++) {
if ($Script:filtercheck[$t]) {
for ($ti = 0; $ti -lt $Script:types[$t].Count; $ti++) {
if ($Script:types[$t][$ti] -eq $Script:filedb[$folder[$i]][5]) {
if ($Script:filedb[$folder[$i]][3]) {
$cp = "$Script:ScriptRoot\Source\checked.png"
}else {
$cp = "$Script:ScriptRoot\Source\unchecked.png"
}
$Length = calc_Size $Script:filedb[$folder[$i]][1]
$icon = $Script:icontypes[$Script:filedb[$folder[$i]][5]]
$Script:data += New-Object PSObject -prop @{Source="$Script:ScriptRoot\icons\$icon.ico";Name=$Script:filedb[$folder[$i]][0];Size="$Length";Tag=$folder[$i];SourceChecked="$cp"}
Write-Host $Script:filedb[$folder[$i]][0]
}
[System.Windows.Forms.Application]::DoEvents()
}
}
[System.Windows.Forms.Application]::DoEvents()
}
}
}
[System.Windows.Forms.Application]::DoEvents()
}
return $data
}
function Update_Filter {
$ok = @($true,$true,$true,$true)
$btnname = @("Office","Bilder","Videos","Audios")
$Script:mainchoosen1.Content = $null
$Script:mainchoosen2.Content = $null
$Script:mainchoosen3.Content = $null
$Script:mainchoosen4.Content = $null
for ($i = 0; $i -lt 4; $i++) {
if ($Script:filtercheck[$i]) {
if ($ok[0]) {
$Script:mainchoosen1.Content = "- "+$btnname[$i]
$ok[0] = $false
#Log "### Filter "+$btnname[$i]+" gesetzt ###" -clear
}elseif ($ok[1]) {
$Script:mainchoosen2.Content = "- "+$btnname[$i]
$ok[1] = $false
#Log "### Filter "+$btnname[$i]+" gesetzt ###" -clear
}elseif ($ok[2]) {
$Script:mainchoosen3.Content = "- "+$btnname[$i]
$ok[2] = $false
#Log "### Filter "+$btnname[$i]+" gesetzt ###" -clear
}elseif ($ok[3]) {
$Script:mainchoosen4.Content = "- "+$btnname[$i]
$ok[3] = $false
#Log "### Filter "+$btnname[$i]+" gesetzt ###" -clear
}
}
[System.Windows.Forms.Application]::DoEvents()
}
}
#Log "### Filter geladen ###" -clear