Expose Q_PROPERTY lastDiff, signal diffShown(), and Q_INVOKABLE
registerDiffAction() so other KTextEditor plugins (e.g. ollie) can
register actions that appear in the tree view context menu.
When a registered action is picked, computeDiffForFiles() runs
git diff synchronously for the selected files before triggering
the action, ensuring the consumer always gets a fresh diff
regardless of whether the user previously viewed it.
Listen for Kate project switches via kateprojectplugin projectChanged()
signal. When fired, re-detect workspace and refresh all state. This
ensures the repo combo hides when switching to a non-workspace project.
- Log tab: shows last 200 commits, double-click to diff against HEAD,
context menu with show commit and copy hash
- Tab visibility: right-click tab bar to toggle optional tabs
(Branches, Stashes, Worktrees, Log); Status always visible
- Tabs are drag-reorderable; order and visibility persist via QSettings
- Branches: add Soft Reset to Merge Base context menu action
The delete button and context menu action now detect whether the
selected branch is remote (tracked via Qt::UserRole on list items).
Remote branches are deleted with `git push --delete <remote> <branch>`
with an appropriate confirmation dialog warning about server-side
removal. Local branches continue using `git branch -D`.
- Integrate with libkateprivate's Utils::showDiff() to use Kate's built-in
diff widget (respects user's Unified/SideBySide/Raw style preference)
- Add bundled kate-compat headers for DiffParams and Utils::showDiff decl
- CMakeLists.txt auto-detects libkateprivate, falls back to plain text diff
- Add 'Diff selected' button: shows diff for selected files with
stage/unstage/discard actions available in the diff viewer
- Add 'Diff All' button: shows git diff HEAD for full changeset review
- Staged diffs show unstage action, unstaged diffs show stage+discard
- ReloadOnShow flag keeps diff views fresh after interactive operations
Full-featured Git integration for Kate with tabbed side panel:
Status tab:
- Live file status tree (staged/changed/untracked)
- Stage, unstage, discard with double-click support
- Commit with inline message editor and amend support
- Push, pull, fetch with progress spinner
- Filesystem watcher for auto-refresh
Branches tab:
- Filterable list of local and remote branches
- Checkout, create, delete, compare
- Create worktree from branch
- Copy branch name to clipboard
Stashes tab:
- List all stashes with apply, pop, drop, diff
Worktrees tab:
- List active worktrees
- Create (with branch picker), remove, prune
- Open worktree as Kate project
Indicators:
- Panel header with repo/branch/dirty state
- Status bar widget always visible
- Detached HEAD warning
- Remote operation progress