Refactor seems to work so far:
- IActionItems now hold their own logic (WIP)
- ImageUploader + FormsUploader now IUploadService + MultipartFormDataUploadService
Fix RegionSelector action
- forgot to call Show()!
- Fix TaskCompletionSource pattern
- Promote region selector to a global application resource
Continued refactoring:
- Clarified relationship between preview & actions. Preview calls actions, not vice versa
- Moved logic for deletion into DeleteAction
- Moved logic for saving into SaveAction
- LatestScreenshot => CurrentScreenshot in Preview. It probably makes sense to rename it for the Actions as well. (There's nothing necessarily 'latest' about the screenshot being operated on)
- Standardized on using the full assembly path for all my Trace calls, so there's no using for Threading unless otherwise needed. Just nicer.
Partial solution for 'End' false positives
- aka, activating when there's no active scrolling screenshot
- need to figure out a real solution, though. Pass more state through the chain?
UpdateHeart -> GroomHeartIcon
- consistant with groom forward/back
Don't do this
- when there is no CurrentScreenshot, single left clicking the tray icon needs to bring up something...
Groomed usings, whitespace
- removed obsolete references
Don't show the window if there's nothing to show
Setting to null breaks since the preview advances to the next screenshot
- Luckily the action returns the screenshot, so the fix is simple
- Whether or not the action should be also responsible for advancing the preview is up for debate
Move upload UI update event subscription into the action
- now the UI updates if part of a non-click action chain (but via click too)
- also clarified that the preview's non-private 'external' interfacing methods are thread safe (self invoke)
A bit more concise
Don't show upload progress if the uploading screenshot isn't current
- so this means the uploading screenshot needs to be in the event args, so we can check it
- and doing that and also passing along the links seemed dumb, so now the action stuffs the data into screenshot.remote
Whenever a screenshot is created, groom the forward/back buttons
- that means GroomBackForwardIcons is now part of the preview thread safe api
Merge pull request #16 from factormystic/action-devolvement

IActionItem refactoring