ActionEnabling » History » Version 3

« Previous - Version 3/8 (diff) - Next » - Current version
Chris Cannam, 2010-11-23 02:45 PM


When actions should be enabled

Simple cases

  • Open - always

Apart from Open, everything depends in the first instance on having a valid local work path -- this will be assumed below.

  • Refresh - always
  • Preview - whenever a remote URL is set
  • Pull - whenever a remote URL is set
  • Push - whenever a remote URL is set

More complicated things

  • Revert - whenever a file has been modified, added, or removed since commit
  • Commit - whenever a file has been modified, added, or removed since commit

Things that depend on which tab is active

With Work tab active

Diff

  • No changes since commit - inactive
  • No modified files selected - show diff for folder against parent
  • Modified files selected - show diff for files against parent

Update

In principle, should be active only when current branch has something to update to. In practice that may be too complicated, so probably just make it active always.

Merge

Review this.

Add, Remove

  • Add - when at least one untracked file is selected, and no other files are
  • Remove - when at least one tracked file is selected, and no untracked files are

N.B. the latter implies we need to be able to show unmodified, tracked files.

With History tab active

Diff

  • No changeset selected - inactive
  • One changeset selected - diff against its parent
  • Two changesets selected - diff between them

Merge

Review this.