ActionEnabling » History » Version 2
Version 1 (Chris Cannam, 2010-11-23 02:25 PM) → Version 2/8 (Chris Cannam, 2010-11-23 02:41 PM)
h1. When actions should be enabled
h2. 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
h2. 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
h2. Things that depend on which tab is active
h3. With Work tab active
h4. 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
h4. 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.
h4. Merge
Review this.
h4. 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
h3. With History tab active
h4. Diff
* *No changeset selected* - inactive
* *One changeset selected* - diff against its parent
* *Two changesets selected* - diff between them
h4. Merge
Review this.
h2. 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
h2. 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
h2. Things that depend on which tab is active
h3. With Work tab active
h4. 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
h4. 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.
h4. Merge
Review this.
h4. 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
h3. With History tab active
h4. Diff
* *No changeset selected* - inactive
* *One changeset selected* - diff against its parent
* *Two changesets selected* - diff between them
h4. Merge
Review this.