Replaces the two hard-coded .qss files with a single
resources/style_template.qss that uses @{token} placeholders.
apply_qss() now does regex substitution at runtime, so adding a
theme only requires a palette dict — no duplicate stylesheets.
New themes (Preferences → Color theme):
• One Dark Pro — VS Code classic dark
• Nord — arctic blue-gray dark
• Tokyo Night — deep purple-dark
• Dracula — classic purple-dark
• GitHub Light — clean minimal light
Existing Catppuccin Frappé (dark) and Latte (light) are unchanged.
Ctrl+Shift+T quick-toggle now recognises all dark themes via is_dark().
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- PreferencesDialog (Tools → Preferences, Ctrl+,): font family/size,
word wrap, default page size, query timeout, max history, auto-commit;
font changes apply live to all open editors via apply_settings() cascade
- CodeEditor and TableViewer now read initial values from settings singleton
- SQL formatter (≡ Format button): uses sqlparse to reindent and uppercase
keywords; gracefully prompts to install sqlparse if missing
- Table viewer context menu: "Filter by this value" (populates WHERE and
reloads), "Copy row as SQL INSERT" (ready-to-paste INSERT statements),
renamed "Copy row" → "Copy row as TSV" for clarity
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>