Commit Graph

64 Commits

Author SHA1 Message Date
André Berg d276c5eac4 PBGitHistoryView.xib: Set Key Equiv. of QuickLook button to Space. 2010-03-24 04:56:59 +01:00
Nathan Kinsinger 096a176fbd Show the full width of text in the file content text view
The text view was wrapping text well before it reached the edge of the view.

In PBGitHistory.xib in the textview for the file contents check the Resizable Horizontally checkbox in the Size Inspector
2010-03-22 13:06:51 -06:00
Nathan Kinsinger 783e38d623 Remove the lower toolbar from the history and stage views
- in the history view move the detail/tree view and quick look buttons to the top toolbar
2010-03-22 12:26:57 -06:00
Nathan Kinsinger 4ccd9356be Maintain the selection in the file browser when the commit selection changes
- only maintains one item, if multiple items are selected then only the first one will stay selected
    - if the file is removed in the new commit then don't select anything, then if a new commit is selected that does have that file it will be selected again
    - this does not maintain the expanded state of folders other than the one(s) that contain the selected file
    - in PBGitHistory.xib Tree Controller turn off:
        - Avoid Empty Selection
        - Select Inserted Objects
2010-03-22 12:25:12 -06:00
Nathan Kinsinger 6a8f495318 Add support for QuickLook in 10.6+
In 10.6 Apple removed the private QL API that existed in 10.5 and added a new public API. However they did not port the new API back to 10.5 so we have to do some work to get it working in both.

This patch has GitX choose the correct version at run time.
    - The delegate code is based on Apple's QuickLookDownloader example project
    - added three of the public API methods to CWQuickLook.h to avoid warnings about unknown method calls
    - In ApplicationController try to load the public API first then load the private one if it fails
    - Created PBQLTextView, a subclass of NSTextView to allow the space key event to toggle the preview panel
    - PBGitHistoryView.xib:
        - set the text view's class to PBQLTextView
        - connected the history controller to the controller outlet
        - bound the quick look button's enabled binding to File's Owner.selectedCommitDetailsIndex
        - added "Quick Look" to the quick look button's tooltip
    - The commit list table view toggles the panel if the tree view is active
    - changed name of the toggle IBAction method which caused MainMenu.xib and PBGitHistoryView.xib to update
2010-03-22 12:25:02 -06:00
Nathan Kinsinger 4a8c524692 Add branch view filters to history scope bar
- filters for All, Local/Remote, and the selected branch
        - "Local" includes both branches and tags
        - "Remote" includes all branches from the same remote as the selected remote branch (i.e. not other remotes)

Changes to make the above work:
    - add a history list class between the repository and rev list
        - store a project rev list with all the commits from the project
        - use the project rev list to graph the history for individual branches when there have been no changes
        - use a different rev list to show non-simple revs (history of a file, revs from the gitx tool)
        - update the commits in chunks to a mutable array so the table view's array controller has less work to do
        - only update the project rev list from git when actually necessary
    - don't add the All Branches and Local Branches revs to the branches array
    - some changes related to forcing the project's rev list to update when changes are made
    - some changes related to not causing updates too often
    - store the selected filter in user defaults
    - when the graphing is done select the commit for the branch
2010-03-13 22:16:44 -07:00
Nathan Kinsinger 1b75af3805 Fix the tree view menu item
It was no longer opening the tree view because the index in setTreeView: was wrong.

Removing the raw view was started in 34394d056b. Finish removing the raw view stuff and clean things up.
    - remove the rawCommit property
    - fix the incorrect index of the tree view setter
    - define symbols for the indexes
    - rename the selectedTab property to indicate what is being selected
    - rename realCommit to selectedCommit to better indicate what it's for
    - define a key for the defaults
2010-03-13 22:16:37 -07:00
Nathan Kinsinger 4903145243 Change the commit list font to be 12 pt
More closely matches Mail.app's list view
2010-03-13 22:15:52 -07:00
Nathan Kinsinger ad3ea443ca Add items to the History view's upper toolbar
- add Create Branch and Create Tag buttons
        - icons are modified versions of Kim Does's icons (from ca7816b523) made a bit smaller to fit in the buttons better
    - add Merge, Cherry Pick, and Rebase buttons
        - icons by Nathan Kinsinger
2010-03-13 22:15:24 -07:00
Nathan Kinsinger 1b41171d92 Add a bottom content border/toolbar to the repository window
- add an action menu for the selected ref in the source view
    - add Add Remote, Fetch, Pull and Push buttons to the bottom bar
        - Add Remote icon by Nathan Kinsinger
        - Fetch, Pull and Push icons are modified versions of André Berg's icons (from 4396081c07) made a bit smaller to fit in the UI better.
    - move the status message for both the history view and the commit/stage view
        - all PBViewControllers now have status and isBusy properties and can use those to put a message in the bottom bar when they are the active content controller of the window
2010-03-13 22:15:13 -07:00
Nathan Kinsinger 90f80f01b4 Add a new cell class for the source view items
The new cell handles:
    - showing contextual menus
    - drawing a badge for the checked out branch

Needed to add the reference to the ref controller to the history controller.
2010-03-13 22:14:49 -07:00
Nathan Kinsinger 64f4276e21 Delete old toolbars and create new ones
- remove the separate window toolbars from the history and commit views and create a new window toolbar in the repository window
    - add new toolbars inside the history view
        - new class to draw a gradient in the background of a view
        - moved the search field from the main toolbar to the scope bar
2010-03-13 22:14:36 -07:00
Nathan Kinsinger b1e632cf6f Move the sidebar to the window controller
Remove the sidebar from the history controller and put it under the control of the window controller.
    - the window controller is the delegate of the split view and controls resizing so the source list stays the same width as the window resizes
    - the sidebar controller tells the window controller which content view to show
    - removed the view selector from the toolbars of the history and commit xibs (the menu and keyboard shortcuts command-1 and command-2 still switch between the views)
    - added horizontal lines to the history and commit xibs to delineate the bottom toolbar area
2010-03-13 22:13:12 -07:00
Nathan Kinsinger c36726b985 Update the GUI to be more iApp like
- In PBGitSidebarView.xib
        - change indentation to 12
        - change font size to 11
        - disable the editable behavior
        - disable autoresizing
        - disable user resizing (column should resize with view)
        - remove the window
        - remove the shared user defaults controller (not being used)
    - add a project item with the project's name
    - a "Stage" item to go to what has been called the commit view
    - new icons for branches, remote branches and tags (created by Nathan Kinsinger)
    - remove the old tiff icons, PBSourceViewRemote.h/m and PBSourceViewAction.h/m from the xcode project
    - uses system icon for folder
    - uses Network icon for remotes
    - capitalize group names
    - rename the Custom group to Other (you can't really customize items in the traditional sense)
    - create a class for each item type that takes care of it's image (instead of trying to guess the image from it or it's parent's name)
    - remove the branch menu toolbar item from the history view, it's redundant now
2010-03-13 22:13:06 -07:00
Nathan Kinsinger 9f048f6363 Update Create Branch
Update the methods for creating a branch.
    - create new class and xib PBCreateBranchSheet
    - remove old addRef: methods and iVars from PBRefController
    - remove old sheet from PBHistoryView.xib
    - put the implementation method in PBGitRepository
    - add a contextual menu item for commits
    - shows an error sheet
    - ask the commitController to rearrangeObjects to make sure the new branch is shown
    - switch from using "update-ref" to "branch" so that branches starting at a remote branch will track automatically (or not depending on the repo's settings)
2010-03-06 16:30:50 -07:00
Pieter de Bie 34394d056b HistoryView: Remove raw view
I don't think anybody has ever used this, so let's just remove it.
2009-09-17 23:32:35 +02:00
Pieter de Bie ff5388cc24 HistoryView: Remove focus border
That's so 1999!
2009-09-08 16:42:55 +02:00
Johannes Gilger 8243cf58b3 PBGitTree: Don't try to print binary-file contents
This patch prevents the plaintext display of files with binary content
in tree-view by connecting the content to the textContents attribute.

PBGitTree is extended with the method textContents, which returns the
textual representation of a PBGitTree-object. The methods first checks
the output of "git check-attr binary <file>" to see if the user
set/unset the binary attribute manually. Then it checks for common
binary file-extensions. If this method can't determine whether the file
is binary, the file-content is loaded and Unix "file" is run on the
first 100 bytes of the file to make a decision.

It also adds the -[PBGitTree fileSize] method to check the size
of the file before actually loading its contents.

Signed-off-by: Johannes Gilger <heipei@hackvalue.de>
Edited-by: Pieter de Bie <pdebie@ai.rug.nl>
2009-09-07 14:38:44 +02:00
Pieter de Bie 26c3cd1f48 HistoryView: Add "SHA" Column and make it hidden by default 2009-09-06 14:46:58 +02:00
Johannes Gilger 6af38e934a Statusbar: Bring View-Mode buttons to front
When resizing the GitX-window to small widths the buttons for switching
the view-mode would eventually "disappear" behind the label for loaded
commits. This fixes that behaviour, so that the buttons always go in
front of it, and therefore remain usable.

Signed-off-by: Johannes Gilger <heipei@hackvalue.de>
2009-08-19 13:01:31 +02:00
Johannes Gilger d669050551 Add PBCollapsibleSplitView as subclass of PBNiceSplitView
This adds a subclass to PBNiceSplitView which has collapsible subviews
as well as an uncollapse-method. The initWithTopMin method is used to
set the minimum sizes for the subviews.

Signed-off-by: Johannes Gilger <heipei@hackvalue.de>
2009-07-07 18:46:00 +01:00
Pieter de Bie 04db47d8e6 Merge commit 'origin/master'
* commit 'origin/master':
  CommitController: Don't turn of off automatic rearranging
  PBGitRepository: Clean up the readFromURL: method
  PBGitRepository: Fix opening of large directories due to bug in NSFileWrapper.
  PBGitIndexController: Renamed "Revert" to "Discard"
  CommitController: Reject merges
  HistoryController: Add "Open Files" menu item
  WebHistoryView: Also use the tree context menu
  HistoryController: Use a programatically created context menu
  WebHistoryController: Refactor menu search to be recursive
  HistoryController: Add some marks
  PBGitHistory: Add "Show in Finder" to files
  Display context menu in the history tree to show related commits
  History fileview: select current item on rightclick
  PBGitConfig: Add missing sentinel
  Remove use of deprecated stringWithCString
  HistoryView: only add parents if parents array exists
  keyboardNavigation: Fix keys 'c' and 'v' from webView
  Site: add link to Twitter

Conflicts:
	PBGitHistoryView.xib
	PBGitIndexController.m
2009-07-07 12:02:27 +01:00
Nicholas Riley 3bed4975fc Clean up UI and add keyboard support for create branch sheet.
Maps Return to OK and Escape/Command-Period to Cancel.

Renames OK to Create (a verb is better).

Fixes autoresizing masks so the layout doesn't break when you resize
the sheet.
2009-07-07 11:56:40 +01:00
Pieter de Bie 1199c56e93 HistoryController: Use a programatically created context menu
This allows us to differentiate between one or multiple files,
and will also come in use when we want to create a context menu
from the webview later on

We now use representedObjects to store the selected paths.
That should make it possible to reuse the menu's from somewhere else.
2009-06-16 19:41:52 +01:00
Johannes Gilger dc234cfdc9 PBGitHistory: Add "Show in Finder" to files
This adds the "Show in Finder" menu-entry and logic to files in the
tree-view of the history. Also the button "Show commits touching paths"
was renamed to "Show history of files".

Signed-off-by: Johannes Gilger <heipei@hackvalue.de>
2009-06-16 19:30:11 +01:00
Pieter de Bie d973dc5ba7 Display context menu in the history tree to show related commits
Signed-off-by: Johannes Gilger <heipei@hackvalue.de>
2009-06-16 19:30:11 +01:00
Pieter de Bie 78eeab4bef Merge branch 'stable'
* stable:
  HistoryView: Resize the detail webview
  Remove a .DS_Store
2009-06-10 18:28:53 +01:00
Pieter de Bie 6ccaf8ff8b HistoryView: Resize the detail webview
This view was one pixel too big, causing weird scrolling behaviour when
selecting text.

This fixes #128: Automatic scrolling when highlighting any text
2009-06-10 18:26:28 +01:00
Pieter de Bie 38198a9e27 Merge branch 'stable'
* stable:
  GitRevList -- Try to read the encoding of the commit message
  GitRevList: fix crash when loading 0 commits
  Tickets #151 and #155: check for illegal branch names before creating.
2009-05-28 15:12:16 +01:00
Charles O'Rourke 353d1053b0 Tickets #151 and #155: check for illegal branch names before creating. 2009-05-28 13:46:12 +01:00
Pieter de Bie 4e4ffcc653 HistoryView: Autosave column information
This allows columns to save their information, such as
whether or not they are hidden.
2009-05-28 12:05:23 +01:00
Johannes Gilger 85df0f0675 GitX: Make toolbar in history and commit view equal height
This fixes ticket #123, it restricts the branch-selector in history-view
to a maximum-height of 25pixels, which is the height of the button to
select history/commit-mode.

Signed-off-by: Johannes Gilger <heipei@hackvalue.de>
2009-05-18 23:17:51 +01:00
Pieter de Bie 29641f3746 HistoryView: Use the realSha for the searchfield predicate
This still used the old sha value that we used before switching
to libgit2, and thus caused  searching for sha's to fail
2009-01-25 17:54:19 +00:00
Pieter de Bie 4dd7a46b86 Allow Toolbar customization
This allows both toolbars to be customized.
2008-12-01 13:50:51 +01:00
Pieter de Bie d2eafc2d52 Include libgit2 as submodule and use it to store sha's
This reduces GitX's memory usage and makes some operations much faster,
like graphing, by having a cheaper comparison
2008-11-24 22:53:48 +01:00
Kim Does 86ec95f6d6 HistoryView: Add a tooltip for 'Create Branch' button 2008-11-20 15:13:48 +01:00
Kim Does ac0327249d Add icons for the history view and commit view 2008-11-20 15:09:55 +01:00
Pieter de Bie a62e14ffe7 HistoryView: Remove the BranchController
This wasn't used anyway. A good idea would be to create a new
branchcontroller that takes care of all these revs, rather than
letting PBGitRepository take care of that
2008-11-19 01:54:14 +01:00
Pieter de Bie 92437c6663 WIP: Use a nicer branches menu 2008-11-19 01:41:27 +01:00
Pieter de Bie aaca7d6e67 HistoryView: Don't make the tree contents field editable
This would cause some heavy errors because the PBGitTree
class in not KVC compatible for the contents.
2008-11-18 23:59:25 +01:00
Pieter de Bie 82aa6a3232 Autosave divider position
This autosaves the position of the divider in the splitviews
of the commit view and the history view
2008-11-17 13:56:33 +01:00
Pieter de Bie 8dcb8553ed Fix XIB inconsistencies in naming 2008-11-17 13:54:11 +01:00
Kim Does ca7816b523 Add new icons for "Add Branch" and "Add Label"
The "Add Label"/tag will be used in the future
2008-11-17 13:52:25 +01:00
Pieter de Bie 058fbcff58 RefController: Refactor ref menu to its own class 2008-11-01 23:16:41 +01:00
Pieter de Bie a9dad9dd31 GitRevisionCell: Allow right-clicking on refs
This reuses the code in the RefController to show context menus
when right-clicking on refs.
2008-11-01 22:51:10 +01:00
Pieter de Bie e02ee5231c WebHistoryController: Move ref deletion to RefController
That's why it's there, after all. This also makes the system
more robust and catches some more errors.

The next thing this enables is to also allow right-clicking
on refs in the commit list.
2008-11-01 22:51:10 +01:00
Pieter de Bie 23c918660c HistoryView: Allow creation of branches 2008-11-01 22:51:10 +01:00
Pieter de Bie 4cefe8ee92 HistoryView: Allow dragging of refs to move them 2008-11-01 21:14:24 +01:00
Pieter de Bie b7645ec967 PBWebHistoryController: show the commit diff async
This should make the GUI more responsive by allowing the diff
to be read in the background. This assumes that

[PBGitCommit details] is threadsafe, so we should keep it that
way.
2008-10-31 23:45:39 +01:00
Pieter de Bie 77ad37a76a History/CommitView: Use a nice-looking splitview divider
This uses images based on those in Mail.app to create a nice
looking splitview (Hush, don't tell Apple!)
2008-10-31 23:44:24 +01:00