======
Usability, bells and whistles
-----------------------------
* The Diff Editor can now send diffs to your favorite editor before the diffs are applied.
The right-click "Edit Diff ..." menu actions and the `Ctrl + Shift + S` /
`Ctrl + Shift + U` hotkeys send the current diff hunk, or the selected diff, to your
editor before they are applied to the worktree / staging area.
(`1290 <https://github.com/git-cola/git-cola/pull/1290>`_)
(`794 <https://github.com/git-cola/git-cola/issues/794>`_)
* The Diff Editor and DAG viewer can now search within their diffs using
`Ctrl + F` and `Ctrl + G` hotkeys.
(`1116 <https://github.com/git-cola/git-cola/issues/1116>`_)
* A new *Diff Mode* can be used to diff and unstage edits relative to any commit.
(`816 <https://github.com/git-cola/git-cola/issues/816>`_)
* The Commit Message Editor can now spell-check the summary field. Previously only the
"Extended Description..." field supported spell checking.
(`633 <https://github.com/git-cola/git-cola/issues/633>`_)
(`1070 <https://github.com/git-cola/git-cola/issues/1070>`_)
* Repositories in your "Recents" and "Favorites" can now be searched using the new
"Search" tool button. Quickly switch between these repositories using the `Alt + P`
hotkey and "Quick Open..." File menu action.
(`1282 <https://github.com/git-cola/git-cola/pull/1282>`_)
* "Favorites", "Recents" and the startup dialog now display a case-insensitively
sorted list of repositories.
(`1047 <https://github.com/git-cola/git-cola/issues/1047>`_)
* The startup dialog now has a right-click context menu that allows you to prune
stale entries and other actions that were not previously accessible from
the startup dialog.
(`1199 <https://github.com/git-cola/git-cola/issues/1199>`_)
(`1280 <https://github.com/git-cola/git-cola/pull/1280>`_)
* The "Copy Leading Paths" action in the Status tool's right-click "Copy" sub-menu
can now strip off an arbitrary number of leading paths.
(`784 <https://github.com/git-cola/git-cola/issues/784>`_)
* The "Cherry-Pick" action now reports errors when "git cherry-pick" fails.
A new "Abort Cherry-Pick" action has been added for aborting a failed cherry-pick.
(`1062 <https://github.com/git-cola/git-cola/issues/1062>`_)
* The diff text can now be quickly zoomed using `Ctrl + Mouse wheel` scroll.
This will quickly change the text size within the current session only.
(`1029 <https://github.com/git-cola/git-cola/issues/1029>`_)
* The Console and Diff widgets learned to open URLs. Right-click on a line
that contains http URLs and context-menu actions for opening each URL
using your default web browser will be displayed.
(`1139 <https://github.com/git-cola/git-cola/issues/1139>`_)
* Drag-and-drop has been improved when dragging filenames from the Status tool.
Dragging multiple files requires special handling to improve usability.
Some terminals (such as `kitty`) consume multiple file URLs by separating paths with
newlines. This is useful when you'd like to capture raw filenames but is less
convenient when dropping filenames onto a command-line. Drag with the `Alt`-modifier
held down to drag-and-drop filenames for command-line use. Using the `Alt` modifier
omits URLs so that the drag-and-drop payload includes only space-delimited,
shell-quoted paths.
(`719 <https://github.com/git-cola/git-cola/issues/719>`_)
* The DAG viewer now displays the diff between the start and end commits when
multiple commits are selected. The diffs are displayed in the DAG's diff viewer.
(`552 <https://github.com/git-cola/git-cola/issues/552>`_)
* The DAG viewer learned to checkout branches and initiate rebases from its right-click menu.
(`1113 <https://github.com/git-cola/git-cola/issues/1113>`_)
* The DAG diff viewer learned to word-wrap the diff text.
(`1242 <https://github.com/git-cola/git-cola/issues/1242>`_)
* The spelling dictionaries are now discovered dynamically at runtime.
`dict/words` and `dict/propernames` are now discovered via `$XDG_DATA_DIRS`
by the spell checker. This allows a spelling dictionary to be placed in e.g..
`~/.local/share/dict/words` to override the default `/usr/share/dict/words`.
(`873 <https://github.com/git-cola/git-cola/issues/873>`_)
* The File menu now has a "Patches" sub-menu with a full set of "git am" Patch actions.
* The Diff Editor and various Diff widgets now have a "Copy Diff" action with an
`Alt + Shift + C` hotkey that copies the selected diff text to the clipboard with the
`+`, `-` and `<Space>` diff prefix characters removed.
(`1288 <https://github.com/git-cola/git-cola/issues/1288>`_)
* The "Revert" action for reverting commits from the DAG tool now displays error
messages when ``git revert`` fails.
(`885 <https://github.com/git-cola/git-cola/issues/885>`_)
* The Diff Editor now uses an easier-to-see *block cursor* by default.
Disable `cola.blockcursor <https://git-cola.readthedocs.io/en/latest/git-cola.html#cola-blockcursor>`_
to continue using original *line cursor* by running
``git config --global cola.blockcursor false``, or by editing the settings in the menu.
* The "Unmerged" header item in the Status tool now displays a summary list of unmerged files.
* The hotkeys documentation has been updated to clarify that the "Copy Commit ID"
action is available in several tools.
(`779 <https://github.com/git-cola/git-cola/issues/779>`_)
* Saving files when using "Browse Other Branch" now displays errors from
``git show`` when saving files from arbitrary commits.
(`1065 <https://github.com/git-cola/git-cola/issues/1065>`_)
* The Apply Patches dialog now reports errors when patches fail to apply.
(`673 <https://github.com/git-cola/git-cola/issues/673>`_)
* The "Status" tool now disables "Copy" actions in its context menu when no
files have been selected.
(`697 <https://github.com/git-cola/git-cola/issues/697>`_)
* The "Unstage" menu item in the Status tool now uses a "Remove" icon.
(`1289 <https://github.com/git-cola/git-cola/pull/1289>`_)
Development
-----------
* The vendored `qtpy` module was modified to sever its dependency on the
`packaging.version` module. This mostly affects users that want to run
Git Cola directly from the source tree outside of any virtualenv.
(`1286 <https://github.com/git-cola/git-cola/issues/1286>`_)