ActionEnabling » History » Version 4

Chris Cannam, 2010-11-24 01:15 PM

1 1 Chris Cannam
h1. When actions should be enabled
2 1 Chris Cannam
3 1 Chris Cannam
h2. Simple cases
4 1 Chris Cannam
5 1 Chris Cannam
* *Open* - always
6 2 Chris Cannam
7 2 Chris Cannam
Apart from Open, everything depends in the first instance on having a valid local work path -- this will be assumed below.
8 2 Chris Cannam
9 1 Chris Cannam
* *Refresh* - always
10 1 Chris Cannam
* *Preview* - whenever a remote URL is set
11 1 Chris Cannam
* *Pull* - whenever a remote URL is set
12 1 Chris Cannam
* *Push* - whenever a remote URL is set
13 2 Chris Cannam
14 2 Chris Cannam
h2. More complicated things
15 2 Chris Cannam
16 2 Chris Cannam
* *Revert* - whenever a file has been modified, added, or removed since commit
17 2 Chris Cannam
* *Commit* - whenever a file has been modified, added, or removed since commit
18 2 Chris Cannam
19 4 Chris Cannam
Some of the remaining functions look like they should behave differently depending on whether the Work tab or History tab is active.  However, I think that's probably confusing -- they should behave the same regardless of which tab is selected; that behaviour should be the "most obvious" behaviour where possible; and they should notify you quite clearly of what you are about to do in a confirmation dialog (which should be the same dialog as asks for your commit message, if appropriate).
20 2 Chris Cannam
21 4 Chris Cannam
Generally speaking, when I've characterised in the past behaviour as varying by tab, that's because I've been imagining having a separate selection in both tabs.  But I think that's wrong -- there should be no selection in the History tab.  If you want to use a specific changeset in a function, there should be a right-button menu for that.  There are no "beginner" functions that need a specific changeset, only "expert" ones.
22 2 Chris Cannam
23 4 Chris Cannam
* *Add* - when at least one untracked file is selected, and no other files are
24 4 Chris Cannam
* *Remove* - when at least one tracked file is selected, and no untracked files are
25 1 Chris Cannam
26 4 Chris Cannam
N.B. the latter implies we need to be able to show unmodified, tracked files.
27 4 Chris Cannam
28 4 Chris Cannam
h3. Diff
29 4 Chris Cannam
30 1 Chris Cannam
* *No changes since commit* - inactive
31 2 Chris Cannam
* *No modified files selected* - show diff for folder against parent
32 2 Chris Cannam
* *Modified files selected* - show diff for files against parent
33 1 Chris Cannam
34 4 Chris Cannam
h3. Update
35 2 Chris Cannam
36 1 Chris Cannam
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.
37 2 Chris Cannam
38 4 Chris Cannam
h3. Merge
39 2 Chris Cannam
40 2 Chris Cannam
Review this.
41 2 Chris Cannam
42 4 Chris Cannam
h2. Functions currently missing entirely
43 2 Chris Cannam
44 4 Chris Cannam
* *Create branch*
45 4 Chris Cannam
* *Tag*
46 4 Chris Cannam
* *Rename*