feat: persistent DB host config, async DB ops, Exit button, test connection

- Save/load DB host from config.json (works both in dev and built .exe)
- All DB operations moved to background threads to prevent UI blocking
- Connection timeout set to 5s to avoid long hangs on unreachable host
- Added Test Connection button to Settings popup
- Added red Exit button fixed to bottom-right corner of main screen
- Updated DatabaseApp.spec with full Kivy deps (sdl2, glew, angle) and hidden imports
- PyInstaller-aware base path using sys.frozen for config.json persistence
This commit is contained in:
scheianu
2026-04-01 21:00:45 +03:00
parent 8ae60a77e4
commit c912bac2dc
4 changed files with 220 additions and 57 deletions

View File

@@ -1,12 +1,36 @@
# -*- mode: python ; coding: utf-8 -*-
from kivy_deps import sdl2, glew, angle
a = Analysis(
['main.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=['mysql.connector', 'kivy.core.window.window_sdl2', 'win32timezone'],
hiddenimports=[
'mysql.connector',
'mysql.connector.locales',
'mysql.connector.locales.eng',
'kivy',
'kivy.core.window',
'kivy.core.window.window_sdl2',
'kivy.core.text',
'kivy.core.text.text_sdl2',
'kivy.core.image',
'kivy.core.image.img_sdl2',
'kivy.core.image.img_pil',
'kivy.core.audio',
'kivy.core.clipboard',
'kivy.core.clipboard.clipboard_sdl2',
'kivy.core.spelling',
'kivy.graphics',
'kivy.graphics.cgl_backend',
'kivy.graphics.cgl_backend.cgl_glew',
'kivy.input.providers',
'kivy.input.providers.wm_touch',
'kivy.input.providers.wm_pen',
'win32timezone',
'pkg_resources.py2_compat',
],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
@@ -21,6 +45,7 @@ exe = EXE(
a.scripts,
a.binaries,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins + angle.dep_bins)],
[],
name='DatabaseApp',
debug=False,