Commit Graph

59 Commits

Author SHA1 Message Date
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
Jeff Mesnil b8161654c5 HistoryView: Add tooltips for subviews 2008-10-13 17:45:34 +02:00
Pieter de Bie 40e9726254 WebControllers: Refactor to use common code 2008-10-10 21:59:21 +02:00
Pieter de Bie b2cd87cb72 GitWindow: Don't try to be smart with the view selector
Previously, we would try to copy the view selector from within
the RepositoryWindow, so we could reuse it and change it if we
need to.

However, that causes problems if you have another window open:
if we try to add an item using the insertItemWithIdentifier:atIndex:
method, the item will be added to _all_ toolbars with the same
identifier, even if those toolbars already have the item!

As I see no easy way to fix that, we completely avoid the issue
by not inserting any objects and just copying the view selector
from view to view.
2008-10-04 23:00:11 +02:00
Pieter de Bie bae7566cde HistoryView: Allow tripple-clicking on header to undo sorting 2008-10-03 19:07:05 +02:00
Pieter de Bie e329493154 Move toolbar to view xib 2008-10-03 17:18:26 +02:00