Merge pull request #173 from char101/master

Show the worktree path in the window title.
prefs: fix saving repo-specific configuration

Set the source to 'repo' for the "Current Repository" tab to
ensure that we save configuration values to the local git
repository's .git/config.  The resulting logic for displaying
the values ended up being simpler since it was originally
papering over the logic typo in the constructor.

Closes #174

Reported-by: @scit2010 via github.com
Signed-off-by: David Aguilar <davvid@gmail.com>
#158: Implement loading/saving commit message
#158: Fix small mistake with argument
#158: Change double-quotes to single-quotes
Merge pull request #175 from Snegovikufa/save_commit_msg

#158: Implement loading/saving commit message
cmds: ignore inotify updates when staging/unstaging

Staging operations with thousands of items can take a while, and inotify
may send updates while they are running.  The GUI already updates at the
end of the operation so there's no need to process the inotify events
while staging.

Add a CommandDisabled context manager to disable any command inside of a
"with" block.  Use CommandDisabled to ignore the UpdateFileStatus
command while we are inside a lengthy stage/unstage command.

Reported-by: Christian <horschi@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
perf: improve staging large numbers of files

In 6aa01795e05ac4354387c409dd38dcda52392a3e we started slicing up the
argument list when calling "git reset" and "git add" to avoid:

	errno: Argument list too long

When we did so we chose an arbitrarily small number of individual items
to process at a time.  We could have chosen a larger number to minimize
the number of times "git add" and "git reset" are called.

Choose a better heuristic so that more files are processed at a time.
This can drastically reduce the number of needed git operations when
staging hundreds or thousands of files.

Signed-off-by: David Aguilar <davvid@gmail.com>
cosmetic: make the 'Rescan' button say 'Refresh' instead

Users know what 'Refresh' means.  It's the same as the web browser.

Signed-off-by: David Aguilar <davvid@gmail.com>
cmds: add a command to delete remote branches

Signed-off-by: David Aguilar <davvid@gmail.com>
git: cleanup docstrings and remove unused parameters

Signed-off-by: David Aguilar <davvid@gmail.com>
widgets.completion: trivial tweaks
widgets.completion: simplify GitLogCompletionModel.gather_matches()

Signed-off-by: David Aguilar <davvid@gmail.com>
widgets.completion: default to matching all entries

Preset a match string of '' so that we match all entries by default.

Signed-off-by: David Aguilar <davvid@gmail.com>
widgets.completion: refactor and add completers for branches

Create a common GitCompletionModel and use it to provide completers
for refs, branches, and remote branches.

Add new line edits to use the completers.

Signed-off-by: David Aguilar <davvid@gmail.com>
qt: refactor and add dialogs for branches

Create a common GitDialog class and use it to provide completers for
refs, branches, and remote branches.

Signed-off-by: David Aguilar <davvid@gmail.com>
guicmds: use the new completion dialogs

Signed-off-by: David Aguilar <davvid@gmail.com>
cola: add a simple GUI for deleting remote branches

Closes #152

Signed-off-by: David Aguilar <davvid@gmail.com>
dag: avoid calling show() multiple times

Signed-off-by: David Aguilar <davvid@gmail.com>
widgets.standard: simplify how we bind mixins

We had a huge class inside a function, which is unsightly.

Make it simpler by pulling the functionality out into a mixin and use a
tiny closure to bind the mixin with each Qt-specific widget class.

Signed-off-by: David Aguilar <davvid@gmail.com>