Add the ability to choose the database path at startup. Add more tests. Add bandit
This commit is contained in:
parent
8c7226964a
commit
6bc5b66d3f
16 changed files with 297 additions and 97 deletions
|
|
@ -13,15 +13,31 @@ def get_settings() -> QSettings:
|
|||
return QSettings(APP_ORG, APP_NAME)
|
||||
|
||||
|
||||
def _default_db_location() -> Path:
|
||||
"""Where we put the notebook if nothing has been configured yet."""
|
||||
base = Path(QStandardPaths.writableLocation(QStandardPaths.AppDataLocation))
|
||||
base.mkdir(parents=True, exist_ok=True)
|
||||
return base / "notebook.db"
|
||||
|
||||
|
||||
def load_db_config() -> DBConfig:
|
||||
s = get_settings()
|
||||
default_db_path = str(
|
||||
Path(QStandardPaths.writableLocation(QStandardPaths.AppDataLocation))
|
||||
/ "notebook.db"
|
||||
)
|
||||
|
||||
path = Path(s.value("db/path", default_db_path))
|
||||
# --- DB Path -------------------------------------------------------
|
||||
# Prefer the new key; fall back to the legacy one.
|
||||
path_str = s.value("db/default_db", "", type=str)
|
||||
if not path_str:
|
||||
legacy = s.value("db/path", "", type=str)
|
||||
if legacy:
|
||||
path_str = legacy
|
||||
# Optional: migrate and clean up the old key
|
||||
s.setValue("db/default_db", legacy)
|
||||
s.remove("db/path")
|
||||
path = Path(path_str) if path_str else _default_db_location()
|
||||
|
||||
# --- Other settings ------------------------------------------------
|
||||
key = s.value("db/key", "")
|
||||
|
||||
idle = s.value("ui/idle_minutes", 15, type=int)
|
||||
theme = s.value("ui/theme", "system", type=str)
|
||||
move_todos = s.value("ui/move_todos", False, type=bool)
|
||||
|
|
@ -38,7 +54,7 @@ def load_db_config() -> DBConfig:
|
|||
|
||||
def save_db_config(cfg: DBConfig) -> None:
|
||||
s = get_settings()
|
||||
s.setValue("db/path", str(cfg.path))
|
||||
s.setValue("db/default_db", str(cfg.path))
|
||||
s.setValue("db/key", str(cfg.key))
|
||||
s.setValue("ui/idle_minutes", str(cfg.idle_minutes))
|
||||
s.setValue("ui/theme", str(cfg.theme))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue