Add --db and let the user choose where the database lives
- `kareer --db <path>` works for the GUI and every subcommand, before or after the subcommand name, and creates the file if missing. main() strips it from argv before CLI/GUI routing; every parser declares it so it shows in --help. - Path precedence: --db > KAREER_DB_PATH > the location chosen in the GUI (kareerrc [Database] Path, read at startup for GUI and CLI alike) > $XDG_DATA_HOME/kareer/kareer.sqlite. - First GUI run (nothing forced, no file yet, or the configured file has gone missing): DatabaseSetupDialog offers the default location, a folder of the user's choice, or an existing database used in place. Until then JobsDatabase opens nothing. - Preferences gains a Database section: Move to... (copies, leaves the original), Open Existing..., Use Default Location. Refuses foreign SQLite files and unwritable ones. - Models call JobsDatabase::reopenIfPathChanged() on refresh, so switching databases needs no restart. - Link KF6::ConfigCore; add a QuickDialogs2 configure-time guard; add kconfig to the Arch dependencies and a note to the Flatpak manifest. - README documents --db, the precedence, and the first-run choice, and gains Fedora 44 build dependencies; CONTRIBUTING gets a dev recipe. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01BxDf7HqD1xPnsZP8wt3NTk
This commit is contained in:
@@ -25,6 +25,27 @@ Kirigami.ApplicationWindow {
|
||||
id: jobsModel
|
||||
}
|
||||
|
||||
// The database moved (first-run choice or Preferences): reload the list,
|
||||
// which cascades to the dashboard via countChanged, and leave any open
|
||||
// edit form, since its job id belonged to the previous database.
|
||||
Connections {
|
||||
target: DatabaseLocation
|
||||
function onChanged(): void {
|
||||
jobsModel.refresh();
|
||||
root.showDashboard();
|
||||
}
|
||||
}
|
||||
|
||||
DatabaseSetupDialog {
|
||||
id: setupDialog
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
if (DatabaseLocation.setupPending) {
|
||||
setupDialog.open();
|
||||
}
|
||||
}
|
||||
|
||||
// The job currently open in the edit form, so the sidebar can keep it highlighted.
|
||||
property int currentJobId: -1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user