2023-11-23 19:34:52 +01:00

101 lines
3.2 KiB
VB.net

Imports System.Data.SQLite
Public Class frmSettings
Dim ToAdd As New List(Of String)
Dim ToDelete As New List(Of String)
Private Sub frmSettings_Load(sender As Object, e As EventArgs) Handles MyBase.Load
LoadSettings()
End Sub
Private Sub LoadSettings()
txtFavDir.Text = My.Settings.FavDir
fillPaths()
End Sub
Private Async Sub fillPaths()
Dim con = DB.getConnection
Dim cmd As New SqliteCommand(Nothing, con)
Dim reader As SQLiteDataReader
cmd.CommandText = "SELECT p_path FROM t_paths ORDER BY p_path"
Await con.OpenAsync()
reader = cmd.ExecuteReader
lstPaths.Items.Clear()
Do While Await reader.ReadAsync
lstPaths.Items.Add(CStr(reader("p_path")))
Loop
reader.Close()
con.Close()
End Sub
Private Sub btnPathAdd_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnPathAdd.ItemClick
If FBD.ShowDialog = DialogResult.OK Then
Dim pfad As String = FBD.SelectedPath
ToAdd.Add(pfad)
lstPaths.Items.Add(pfad)
End If
End Sub
Private Sub btnSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSave.ItemClick
SaveSettings()
Me.DialogResult = DialogResult.OK
End Sub
Private Sub SaveSettings()
'Allgemein speichern
My.Settings.FavDir = txtFavDir.Text
My.Settings.Save()
'Pfade speichern
Dim con = DB.getConnection
Dim cmd As New SqliteCommand(Nothing, con)
cmd.Parameters.Add("@path", DbType.String)
con.OpenAsync()
cmd.CommandText = "INSERT INTO t_paths (p_path) VALUES (@path)"
For Each pfad As String In ToAdd
cmd.Parameters("@path").Value = pfad
cmd.ExecuteNonQuery()
Next
ToAdd.Clear()
cmd.CommandText = "DELETE FROM t_paths WHERE p_path = @path"
For Each pfad As String In ToDelete
cmd.Parameters("@path").Value = pfad
cmd.ExecuteNonQuery()
Next
ToDelete.Clear()
con.Close()
End Sub
Private Sub btnPathDelete_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnPathDelete.ItemClick
If lstPaths.SelectedItem IsNot Nothing Then
ToDelete.Add(CStr(lstPaths.SelectedItem))
lstPaths.Items.Remove(CStr(lstPaths.SelectedItem))
End If
End Sub
Private Sub frmSettings_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If (ToAdd.Count + ToDelete.Count) > 0 Then
Dim ds = MessageBox.Show("Möchten Sie die Änderungen speichern?", Me.Text, MessageBoxButtons.YesNo)
If ds = DialogResult.Yes Then
SaveSettings()
Me.DialogResult = DialogResult.OK
ElseIf ds <> DialogResult.No Then
e.Cancel = True
End If
End If
End Sub
Private Sub btnUSDX_Click(sender As Object, e As EventArgs) Handles btnFavDir.Click
If FBD.ShowDialog = DialogResult.OK Then
txtFavDir.Text = FBD.SelectedPath
End If
End Sub
End Class